aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/libraries
diff options
context:
space:
mode:
authorDavid Walter Seikel2012-01-23 23:30:42 +1000
committerDavid Walter Seikel2012-01-23 23:30:42 +1000
commit825a3d837a33f226c879cd02ad15c3fba57e8b2c (patch)
tree75f57bd9c4253508d338dc79ba8e57a7abc42255 /libraries
parentAdd ability to disable the test harness, or the Lua compile test. (diff)
downloadSledjHamr-825a3d837a33f226c879cd02ad15c3fba57e8b2c.zip
SledjHamr-825a3d837a33f226c879cd02ad15c3fba57e8b2c.tar.gz
SledjHamr-825a3d837a33f226c879cd02ad15c3fba57e8b2c.tar.bz2
SledjHamr-825a3d837a33f226c879cd02ad15c3fba57e8b2c.tar.xz
Update the EFL to what I'm actually using, coz I'm using some stuff not yet released.
Diffstat (limited to 'libraries')
-rw-r--r--libraries/ecore/AUTHORS4
-rw-r--r--libraries/ecore/ChangeLog115
-rw-r--r--libraries/ecore/Makefile.am5
-rw-r--r--libraries/ecore/Makefile.in36
-rw-r--r--libraries/ecore/NEWS36
-rw-r--r--libraries/ecore/TODO2
-rw-r--r--libraries/ecore/aclocal.m462
-rwxr-xr-xlibraries/ecore/autogen.sh1
-rw-r--r--libraries/ecore/config.h.in15
-rwxr-xr-xlibraries/ecore/configure2735
-rw-r--r--libraries/ecore/configure.ac159
-rw-r--r--libraries/ecore/doc/Makefile.in14
-rw-r--r--libraries/ecore/ecore-wayland.pc.in12
-rw-r--r--libraries/ecore/ecore.spec3
-rw-r--r--libraries/ecore/ecore.spec.in1
-rw-r--r--libraries/ecore/ecore.supp2
-rwxr-xr-xlibraries/ecore/ltmain.sh4
-rw-r--r--libraries/ecore/po/cs.gmobin3004 -> 3004 bytes
-rw-r--r--libraries/ecore/po/cs.po80
-rw-r--r--libraries/ecore/po/de.gmobin3001 -> 3001 bytes
-rw-r--r--libraries/ecore/po/de.po80
-rw-r--r--libraries/ecore/po/ecore.pot81
-rw-r--r--libraries/ecore/po/el.gmobin3487 -> 3487 bytes
-rw-r--r--libraries/ecore/po/el.po80
-rw-r--r--libraries/ecore/po/fr.gmobin3199 -> 3199 bytes
-rw-r--r--libraries/ecore/po/fr.po80
-rw-r--r--libraries/ecore/po/it.gmobin2931 -> 2931 bytes
-rw-r--r--libraries/ecore/po/it.po80
-rw-r--r--libraries/ecore/po/nl.gmobin2978 -> 2978 bytes
-rw-r--r--libraries/ecore/po/nl.po80
-rw-r--r--libraries/ecore/po/pt.gmobin3020 -> 3020 bytes
-rw-r--r--libraries/ecore/po/pt.po80
-rw-r--r--libraries/ecore/po/sl.gmobin3015 -> 3015 bytes
-rw-r--r--libraries/ecore/po/sl.po80
-rw-r--r--libraries/ecore/sha1-for-source.txt1
-rw-r--r--libraries/ecore/src/Makefile.in14
-rw-r--r--libraries/ecore/src/bin/Makefile.in14
-rw-r--r--libraries/ecore/src/examples/Makefile.am6
-rw-r--r--libraries/ecore/src/examples/Makefile.in76
-rw-r--r--libraries/ecore/src/lib/Makefile.am4
-rw-r--r--libraries/ecore/src/lib/Makefile.in33
-rw-r--r--libraries/ecore/src/lib/ecore/Ecore.h572
-rw-r--r--libraries/ecore/src/lib/ecore/Makefile.am1
-rw-r--r--libraries/ecore/src/lib/ecore/Makefile.in45
-rw-r--r--libraries/ecore/src/lib/ecore/ecore.c24
-rw-r--r--libraries/ecore/src/lib/ecore/ecore_alloc.c132
-rw-r--r--libraries/ecore/src/lib/ecore/ecore_anim.c19
-rw-r--r--libraries/ecore/src/lib/ecore/ecore_events.c25
-rw-r--r--libraries/ecore/src/lib/ecore/ecore_getopt.c11
-rw-r--r--libraries/ecore/src/lib/ecore/ecore_glib.c8
-rw-r--r--libraries/ecore/src/lib/ecore/ecore_idle_enterer.c9
-rw-r--r--libraries/ecore/src/lib/ecore/ecore_idle_exiter.c7
-rw-r--r--libraries/ecore/src/lib/ecore/ecore_idler.c7
-rw-r--r--libraries/ecore/src/lib/ecore/ecore_job.c9
-rw-r--r--libraries/ecore/src/lib/ecore/ecore_main.c33
-rw-r--r--libraries/ecore/src/lib/ecore/ecore_pipe.c9
-rw-r--r--libraries/ecore/src/lib/ecore/ecore_poll.c17
-rw-r--r--libraries/ecore/src/lib/ecore/ecore_private.h29
-rw-r--r--libraries/ecore/src/lib/ecore/ecore_thread.c15
-rw-r--r--libraries/ecore/src/lib/ecore/ecore_timer.c46
-rw-r--r--libraries/ecore/src/lib/ecore_cocoa/Makefile.in14
-rw-r--r--libraries/ecore/src/lib/ecore_con/Ecore_Con.h124
-rw-r--r--libraries/ecore/src/lib/ecore_con/Makefile.am1
-rw-r--r--libraries/ecore/src/lib/ecore_con/Makefile.in38
-rw-r--r--libraries/ecore/src/lib/ecore_con/ecore_con.c646
-rw-r--r--libraries/ecore/src/lib/ecore_con/ecore_con_alloc.c4
-rw-r--r--libraries/ecore/src/lib/ecore_con/ecore_con_ares.c14
-rw-r--r--libraries/ecore/src/lib/ecore_con/ecore_con_info.c9
-rw-r--r--libraries/ecore/src/lib/ecore_con/ecore_con_local_win32.c29
-rw-r--r--libraries/ecore/src/lib/ecore_con/ecore_con_private.h101
-rw-r--r--libraries/ecore/src/lib/ecore_con/ecore_con_socks.c496
-rw-r--r--libraries/ecore/src/lib/ecore_con/ecore_con_ssl.c471
-rw-r--r--libraries/ecore/src/lib/ecore_con/ecore_con_url.c734
-rw-r--r--libraries/ecore/src/lib/ecore_config/Makefile.in14
-rw-r--r--libraries/ecore/src/lib/ecore_directfb/Makefile.in14
-rw-r--r--libraries/ecore/src/lib/ecore_directfb/ecore_directfb.c70
-rw-r--r--libraries/ecore/src/lib/ecore_evas/Ecore_Evas.h263
-rw-r--r--libraries/ecore/src/lib/ecore_evas/Makefile.am38
-rw-r--r--libraries/ecore/src/lib/ecore_evas/Makefile.in57
-rw-r--r--libraries/ecore/src/lib/ecore_evas/ecore_evas.c153
-rw-r--r--libraries/ecore/src/lib/ecore_evas/ecore_evas_buffer.c164
-rw-r--r--libraries/ecore/src/lib/ecore_evas/ecore_evas_cocoa.c4
-rw-r--r--libraries/ecore/src/lib/ecore_evas/ecore_evas_ews.c5
-rw-r--r--libraries/ecore/src/lib/ecore_evas/ecore_evas_extn.c2152
-rw-r--r--libraries/ecore/src/lib/ecore_evas/ecore_evas_fb.c22
-rw-r--r--libraries/ecore/src/lib/ecore_evas/ecore_evas_private.h52
-rw-r--r--libraries/ecore/src/lib/ecore_evas/ecore_evas_psl1ght.c46
-rw-r--r--libraries/ecore/src/lib/ecore_evas/ecore_evas_sdl.c3
-rw-r--r--libraries/ecore/src/lib/ecore_evas/ecore_evas_util.c12
-rw-r--r--libraries/ecore/src/lib/ecore_evas/ecore_evas_wayland_egl.c1131
-rw-r--r--libraries/ecore/src/lib/ecore_evas/ecore_evas_wayland_shm.c1257
-rw-r--r--libraries/ecore/src/lib/ecore_evas/ecore_evas_win32.c8
-rw-r--r--libraries/ecore/src/lib/ecore_evas/ecore_evas_x.c53
-rw-r--r--libraries/ecore/src/lib/ecore_fb/Makefile.in14
-rw-r--r--libraries/ecore/src/lib/ecore_fb/ecore_fb_li.c8
-rw-r--r--libraries/ecore/src/lib/ecore_fb/ecore_fb_private.h3
-rw-r--r--libraries/ecore/src/lib/ecore_file/Makefile.in14
-rw-r--r--libraries/ecore/src/lib/ecore_file/ecore_file.c17
-rw-r--r--libraries/ecore/src/lib/ecore_file/ecore_file_download.c3
-rw-r--r--libraries/ecore/src/lib/ecore_file/ecore_file_monitor_inotify.c1
-rw-r--r--libraries/ecore/src/lib/ecore_file/ecore_file_monitor_poll.c1
-rw-r--r--libraries/ecore/src/lib/ecore_file/ecore_file_path.c3
-rw-r--r--libraries/ecore/src/lib/ecore_imf/Ecore_IMF.h19
-rw-r--r--libraries/ecore/src/lib/ecore_imf/Makefile.in14
-rw-r--r--libraries/ecore/src/lib/ecore_imf/ecore_imf_context.c141
-rw-r--r--libraries/ecore/src/lib/ecore_imf/ecore_imf_private.h9
-rw-r--r--libraries/ecore/src/lib/ecore_imf_evas/Makefile.in14
-rw-r--r--libraries/ecore/src/lib/ecore_input/Makefile.in14
-rw-r--r--libraries/ecore/src/lib/ecore_input_evas/Makefile.in14
-rw-r--r--libraries/ecore/src/lib/ecore_input_evas/ecore_input_evas.c1
-rw-r--r--libraries/ecore/src/lib/ecore_ipc/Makefile.in14
-rw-r--r--libraries/ecore/src/lib/ecore_ipc/ecore_ipc.c3
-rw-r--r--libraries/ecore/src/lib/ecore_psl1ght/Ecore_Psl1ght.h13
-rw-r--r--libraries/ecore/src/lib/ecore_psl1ght/Makefile.in14
-rw-r--r--libraries/ecore/src/lib/ecore_psl1ght/ecore_psl1ght.c111
-rw-r--r--libraries/ecore/src/lib/ecore_sdl/Makefile.in14
-rw-r--r--libraries/ecore/src/lib/ecore_wayland/Ecore_Wayland.h123
-rw-r--r--libraries/ecore/src/lib/ecore_wayland/Makefile.am31
-rw-r--r--libraries/ecore/src/lib/ecore_wayland/Makefile.in829
-rw-r--r--libraries/ecore/src/lib/ecore_wayland/ecore_wl.c1213
-rw-r--r--libraries/ecore/src/lib/ecore_wayland/ecore_wl_private.h85
-rw-r--r--libraries/ecore/src/lib/ecore_win32/Ecore_Win32.h36
-rw-r--r--libraries/ecore/src/lib/ecore_win32/Makefile.in14
-rw-r--r--libraries/ecore/src/lib/ecore_win32/ecore_win32.c61
-rw-r--r--libraries/ecore/src/lib/ecore_win32/ecore_win32_event.c192
-rw-r--r--libraries/ecore/src/lib/ecore_win32/ecore_win32_private.h19
-rw-r--r--libraries/ecore/src/lib/ecore_wince/Makefile.in14
-rw-r--r--libraries/ecore/src/lib/ecore_x/Ecore_X.h7
-rw-r--r--libraries/ecore/src/lib/ecore_x/Makefile.in14
-rw-r--r--libraries/ecore/src/lib/ecore_x/xcb/Makefile.in14
-rw-r--r--libraries/ecore/src/lib/ecore_x/xcb/ecore_xcb_damage.c2
-rw-r--r--libraries/ecore/src/lib/ecore_x/xcb/ecore_xcb_dnd.c5
-rw-r--r--libraries/ecore/src/lib/ecore_x/xcb/ecore_xcb_dpms.c6
-rw-r--r--libraries/ecore/src/lib/ecore_x/xcb/ecore_xcb_error.c14
-rw-r--r--libraries/ecore/src/lib/ecore_x/xcb/ecore_xcb_icccm.c3
-rw-r--r--libraries/ecore/src/lib/ecore_x/xcb/ecore_xcb_randr.c45
-rw-r--r--libraries/ecore/src/lib/ecore_x/xcb/ecore_xcb_window.c5
-rw-r--r--libraries/ecore/src/lib/ecore_x/xcb/ecore_xcb_xfixes.c14
-rw-r--r--libraries/ecore/src/lib/ecore_x/xlib/Makefile.in14
-rw-r--r--libraries/ecore/src/lib/ecore_x/xlib/ecore_x.c324
-rw-r--r--libraries/ecore/src/lib/ecore_x/xlib/ecore_x_atoms.c18
-rw-r--r--libraries/ecore/src/lib/ecore_x/xlib/ecore_x_composite.c42
-rw-r--r--libraries/ecore/src/lib/ecore_x/xlib/ecore_x_cursor.c24
-rw-r--r--libraries/ecore/src/lib/ecore_x/xlib/ecore_x_damage.c12
-rw-r--r--libraries/ecore/src/lib/ecore_x/xlib/ecore_x_dnd.c86
-rw-r--r--libraries/ecore/src/lib/ecore_x/xlib/ecore_x_dpms.c32
-rw-r--r--libraries/ecore/src/lib/ecore_x/xlib/ecore_x_drawable.c26
-rw-r--r--libraries/ecore/src/lib/ecore_x/xlib/ecore_x_e.c232
-rw-r--r--libraries/ecore/src/lib/ecore_x/xlib/ecore_x_error.c36
-rw-r--r--libraries/ecore/src/lib/ecore_x/xlib/ecore_x_events.c421
-rw-r--r--libraries/ecore/src/lib/ecore_x/xlib/ecore_x_fixes.c99
-rw-r--r--libraries/ecore/src/lib/ecore_x/xlib/ecore_x_gc.c10
-rw-r--r--libraries/ecore/src/lib/ecore_x/xlib/ecore_x_gesture.c18
-rw-r--r--libraries/ecore/src/lib/ecore_x/xlib/ecore_x_icccm.c248
-rw-r--r--libraries/ecore/src/lib/ecore_x/xlib/ecore_x_image.c100
-rw-r--r--libraries/ecore/src/lib/ecore_x/xlib/ecore_x_mwm.c10
-rw-r--r--libraries/ecore/src/lib/ecore_x/xlib/ecore_x_netwm.c424
-rw-r--r--libraries/ecore/src/lib/ecore_x/xlib/ecore_x_pixmap.c40
-rw-r--r--libraries/ecore/src/lib/ecore_x/xlib/ecore_x_randr_11.c49
-rw-r--r--libraries/ecore/src/lib/ecore_x/xlib/ecore_x_randr_12.c339
-rw-r--r--libraries/ecore/src/lib/ecore_x/xlib/ecore_x_randr_12_edid.c46
-rw-r--r--libraries/ecore/src/lib/ecore_x/xlib/ecore_x_randr_13.c9
-rw-r--r--libraries/ecore/src/lib/ecore_x/xlib/ecore_x_region.c40
-rw-r--r--libraries/ecore/src/lib/ecore_x/xlib/ecore_x_screensaver.c24
-rw-r--r--libraries/ecore/src/lib/ecore_x/xlib/ecore_x_selection.c333
-rw-r--r--libraries/ecore/src/lib/ecore_x/xlib/ecore_x_sync.c30
-rw-r--r--libraries/ecore/src/lib/ecore_x/xlib/ecore_x_test.c8
-rw-r--r--libraries/ecore/src/lib/ecore_x/xlib/ecore_x_vsync.c38
-rw-r--r--libraries/ecore/src/lib/ecore_x/xlib/ecore_x_window.c344
-rw-r--r--libraries/ecore/src/lib/ecore_x/xlib/ecore_x_window_prop.c190
-rw-r--r--libraries/ecore/src/lib/ecore_x/xlib/ecore_x_window_shape.c150
-rw-r--r--libraries/ecore/src/lib/ecore_x/xlib/ecore_x_xi2.c10
-rw-r--r--libraries/ecore/src/lib/ecore_x/xlib/ecore_x_xinerama.c6
-rw-r--r--libraries/ecore/src/modules/Makefile.in14
-rw-r--r--libraries/ecore/src/modules/immodules/Makefile.am4
-rw-r--r--libraries/ecore/src/modules/immodules/Makefile.in19
-rw-r--r--libraries/ecore/src/modules/immodules/scim/Makefile.am36
-rw-r--r--libraries/ecore/src/modules/immodules/scim/Makefile.in849
-rw-r--r--libraries/ecore/src/modules/immodules/scim/scim_imcontext.cpp2839
-rw-r--r--libraries/ecore/src/modules/immodules/scim/scim_imcontext.h40
-rw-r--r--libraries/ecore/src/modules/immodules/scim/scim_module.cpp93
-rw-r--r--libraries/ecore/src/modules/immodules/xim/Makefile.in14
-rw-r--r--libraries/ecore/src/modules/immodules/xim/ecore_imf_xim.c614
-rw-r--r--libraries/ecore/src/tests/Makefile.in14
-rw-r--r--libraries/ecore/src/util/Makefile.in14
-rw-r--r--libraries/edje/ChangeLog66
-rw-r--r--libraries/edje/Makefile.in2
-rw-r--r--libraries/edje/NEWS17
-rw-r--r--libraries/edje/README8
-rw-r--r--libraries/edje/aclocal.m464
-rwxr-xr-xlibraries/edje/configure2045
-rw-r--r--libraries/edje/configure.ac39
-rw-r--r--libraries/edje/data/Makefile.in2
-rw-r--r--libraries/edje/data/include/Makefile.in2
-rw-r--r--libraries/edje/doc/Makefile.in2
-rw-r--r--libraries/edje/edje.spec4
-rw-r--r--libraries/edje/edje.spec.in2
-rwxr-xr-xlibraries/edje/ltmain.sh4
-rw-r--r--libraries/edje/m4/libtool.m4144
-rw-r--r--libraries/edje/m4/ltoptions.m42
-rw-r--r--libraries/edje/sha1-for-source.txt1
-rw-r--r--libraries/edje/src/Makefile.in2
-rw-r--r--libraries/edje/src/bin/Makefile.in2
-rw-r--r--libraries/edje/src/bin/edje_cc.h1
-rw-r--r--libraries/edje/src/bin/edje_cc_handlers.c129
-rw-r--r--libraries/edje/src/bin/edje_cc_out.c35
-rw-r--r--libraries/edje/src/bin/edje_cc_parse.c6
-rw-r--r--libraries/edje/src/bin/edje_decc.c3
-rw-r--r--libraries/edje/src/bin/edje_inspector.c202
-rw-r--r--libraries/edje/src/bin/edje_multisense_convert.c2
-rw-r--r--libraries/edje/src/bin/epp/Makefile.in2
-rw-r--r--libraries/edje/src/bin/epp/cppmain.c13
-rw-r--r--libraries/edje/src/examples/Makefile.am104
-rw-r--r--libraries/edje/src/examples/Makefile.in135
-rw-r--r--libraries/edje/src/examples/Vera.ttfbin0 -> 65932 bytes
-rw-r--r--libraries/edje/src/examples/lua_script.edc12
-rw-r--r--libraries/edje/src/examples/multisense.edc139
-rw-r--r--libraries/edje/src/examples/signals-messages.edc8
-rw-r--r--libraries/edje/src/lib/Edje.h40
-rw-r--r--libraries/edje/src/lib/Makefile.in2
-rw-r--r--libraries/edje/src/lib/edje_cache.c13
-rw-r--r--libraries/edje/src/lib/edje_calc.c447
-rw-r--r--libraries/edje/src/lib/edje_callbacks.c5
-rw-r--r--libraries/edje/src/lib/edje_data.c3
-rw-r--r--libraries/edje/src/lib/edje_edit.c131
-rw-r--r--libraries/edje/src/lib/edje_embryo.c2
-rw-r--r--libraries/edje/src/lib/edje_entry.c350
-rw-r--r--libraries/edje/src/lib/edje_load.c151
-rw-r--r--libraries/edje/src/lib/edje_lua2.c269
-rw-r--r--libraries/edje/src/lib/edje_main.c5
-rw-r--r--libraries/edje/src/lib/edje_message_queue.c4
-rw-r--r--libraries/edje/src/lib/edje_module.c4
-rw-r--r--libraries/edje/src/lib/edje_multisense.c12
-rw-r--r--libraries/edje/src/lib/edje_private.h13
-rw-r--r--libraries/edje/src/lib/edje_program.c4
-rw-r--r--libraries/edje/src/lib/edje_util.c44
-rw-r--r--libraries/edje/src/modules/Makefile.in2
-rw-r--r--libraries/edje/src/modules/alsa_snd_player/Makefile.in2
-rw-r--r--libraries/edje/src/modules/eet_snd_reader/Makefile.in2
-rw-r--r--libraries/edje/src/modules/multisense_factory/Makefile.in2
-rw-r--r--libraries/edje/src/modules/multisense_factory/multisense_factory.c66
-rw-r--r--libraries/edje/src/tests/Makefile.in2
-rw-r--r--libraries/edje/utils/Makefile.in2
-rw-r--r--libraries/eet/ChangeLog21
-rw-r--r--libraries/eet/Makefile.am8
-rw-r--r--libraries/eet/Makefile.in10
-rw-r--r--libraries/eet/NEWS12
-rw-r--r--libraries/eet/aclocal.m462
-rwxr-xr-xlibraries/eet/config.guess149
-rwxr-xr-xlibraries/eet/config.sub47
-rwxr-xr-xlibraries/eet/configure656
-rw-r--r--libraries/eet/configure.ac6
-rw-r--r--libraries/eet/doc/Doxyfile1689
-rw-r--r--libraries/eet/doc/Doxyfile.in1687
-rw-r--r--libraries/eet/doc/Makefile.am3
-rw-r--r--libraries/eet/doc/Makefile.in5
-rw-r--r--libraries/eet/eet.spec3
-rw-r--r--libraries/eet/eet.spec.in1
-rwxr-xr-xlibraries/eet/ltmain.sh4
-rw-r--r--libraries/eet/sha1-for-source.txt1
-rw-r--r--libraries/eet/src/Makefile.in2
-rw-r--r--libraries/eet/src/bin/Makefile.in2
-rw-r--r--libraries/eet/src/bin/eet_main.c88
-rw-r--r--libraries/eet/src/examples/Makefile.am4
-rw-r--r--libraries/eet/src/examples/Makefile.in64
-rw-r--r--libraries/eet/src/lib/Eet.h17
-rw-r--r--libraries/eet/src/lib/Eet_private.h135
-rw-r--r--libraries/eet/src/lib/Makefile.am1
-rw-r--r--libraries/eet/src/lib/Makefile.in27
-rw-r--r--libraries/eet/src/lib/eet_alloc.c93
-rw-r--r--libraries/eet/src/lib/eet_cipher.c26
-rw-r--r--libraries/eet/src/lib/eet_connection.c129
-rw-r--r--libraries/eet/src/lib/eet_data.c238
-rw-r--r--libraries/eet/src/lib/eet_dictionary.c55
-rw-r--r--libraries/eet/src/lib/eet_image.c74
-rw-r--r--libraries/eet/src/lib/eet_lib.c297
-rw-r--r--libraries/eet/src/lib/eet_node.c58
-rw-r--r--libraries/eet/src/lib/eet_utils.c2
-rw-r--r--libraries/eet/src/tests/Makefile.am1
-rw-r--r--libraries/eet/src/tests/Makefile.in3
-rw-r--r--libraries/eet/src/tests/eet_suite.c42
-rw-r--r--libraries/eina/AUTHORS1
-rw-r--r--libraries/eina/ChangeLog51
-rw-r--r--libraries/eina/Makefile.am10
-rw-r--r--libraries/eina/Makefile.in14
-rw-r--r--libraries/eina/NEWS17
-rw-r--r--libraries/eina/README2
-rw-r--r--libraries/eina/aclocal.m462
-rwxr-xr-xlibraries/eina/config.guess149
-rw-r--r--libraries/eina/config.h.in27
-rwxr-xr-xlibraries/eina/config.sub47
-rwxr-xr-xlibraries/eina/configure1837
-rw-r--r--libraries/eina/configure.ac184
-rw-r--r--libraries/eina/doc/Doxyfile.in1531
-rw-r--r--libraries/eina/doc/Makefile.am1
-rw-r--r--libraries/eina/doc/Makefile.in5
-rw-r--r--libraries/eina/eina.pc4
-rw-r--r--libraries/eina/eina.spec2
-rwxr-xr-xlibraries/eina/ltmain.sh4
-rw-r--r--libraries/eina/m4/libtool.m4144
-rw-r--r--libraries/eina/m4/ltoptions.m42
-rw-r--r--libraries/eina/sha1-for-source.txt1
-rw-r--r--libraries/eina/src/Makefile.in4
-rw-r--r--libraries/eina/src/examples/Makefile.am10
-rw-r--r--libraries/eina/src/examples/Makefile.in68
-rw-r--r--libraries/eina/src/examples/eina_array_01.c4
-rw-r--r--libraries/eina/src/include/Eina.h9
-rw-r--r--libraries/eina/src/include/Makefile.am6
-rw-r--r--libraries/eina/src/include/Makefile.in52
-rw-r--r--libraries/eina/src/include/eina_array.h17
-rw-r--r--libraries/eina/src/include/eina_benchmark.h8
-rw-r--r--libraries/eina/src/include/eina_binbuf.h18
-rw-r--r--libraries/eina/src/include/eina_clist.h160
-rw-r--r--libraries/eina/src/include/eina_config.h10
-rw-r--r--libraries/eina/src/include/eina_config.h.in10
-rw-r--r--libraries/eina/src/include/eina_file.h40
-rw-r--r--libraries/eina/src/include/eina_hash.h4
-rw-r--r--libraries/eina/src/include/eina_inarray.h572
-rw-r--r--libraries/eina/src/include/eina_inline_array.x20
-rw-r--r--libraries/eina/src/include/eina_inline_clist.x135
-rw-r--r--libraries/eina/src/include/eina_inline_hash.x2
-rw-r--r--libraries/eina/src/include/eina_inline_lock_posix.x51
-rw-r--r--libraries/eina/src/include/eina_inline_lock_void.x62
-rw-r--r--libraries/eina/src/include/eina_inline_lock_win32.x46
-rw-r--r--libraries/eina/src/include/eina_inline_lock_wince.x34
-rw-r--r--libraries/eina/src/include/eina_inline_log.x4
-rw-r--r--libraries/eina/src/include/eina_inline_mempool.x49
-rw-r--r--libraries/eina/src/include/eina_inline_value.x1705
-rw-r--r--libraries/eina/src/include/eina_inlist.h101
-rw-r--r--libraries/eina/src/include/eina_iterator.h8
-rw-r--r--libraries/eina/src/include/eina_list.h26
-rw-r--r--libraries/eina/src/include/eina_lock.h4
-rw-r--r--libraries/eina/src/include/eina_log.h51
-rw-r--r--libraries/eina/src/include/eina_magic.h8
-rw-r--r--libraries/eina/src/include/eina_main.h5
-rw-r--r--libraries/eina/src/include/eina_module.h47
-rw-r--r--libraries/eina/src/include/eina_simple_xml_parser.h62
-rw-r--r--libraries/eina/src/include/eina_str.h16
-rw-r--r--libraries/eina/src/include/eina_strbuf.h18
-rw-r--r--libraries/eina/src/include/eina_stringshare.h1
-rw-r--r--libraries/eina/src/include/eina_types.h4
-rw-r--r--libraries/eina/src/include/eina_unicode.h23
-rw-r--r--libraries/eina/src/include/eina_ustrbuf.h20
-rw-r--r--libraries/eina/src/include/eina_value.h3114
-rw-r--r--libraries/eina/src/include/eina_xattr.h53
-rw-r--r--libraries/eina/src/lib/Makefile.am10
-rw-r--r--libraries/eina/src/lib/Makefile.in68
-rw-r--r--libraries/eina/src/lib/eina_array.c4
-rw-r--r--libraries/eina/src/lib/eina_binbuf_template_c.x9
-rw-r--r--libraries/eina/src/lib/eina_cpu.c4
-rw-r--r--libraries/eina/src/lib/eina_file.c128
-rw-r--r--libraries/eina/src/lib/eina_hash.c6
-rw-r--r--libraries/eina/src/lib/eina_inarray.c777
-rw-r--r--libraries/eina/src/lib/eina_log.c145
-rw-r--r--libraries/eina/src/lib/eina_magic.c11
-rw-r--r--libraries/eina/src/lib/eina_main.c16
-rw-r--r--libraries/eina/src/lib/eina_mmap.c5
-rw-r--r--libraries/eina/src/lib/eina_module.c1
-rw-r--r--libraries/eina/src/lib/eina_prefix.c37
-rw-r--r--libraries/eina/src/lib/eina_private.h6
-rw-r--r--libraries/eina/src/lib/eina_rbtree.c10
-rw-r--r--libraries/eina/src/lib/eina_simple_xml_parser.c19
-rw-r--r--libraries/eina/src/lib/eina_strbuf.c6
-rw-r--r--libraries/eina/src/lib/eina_value.c4977
-rw-r--r--libraries/eina/src/lib/eina_xattr.c191
-rw-r--r--libraries/eina/src/modules/Makefile.in4
-rw-r--r--libraries/eina/src/modules/mp/Makefile.in4
-rw-r--r--libraries/eina/src/modules/mp/buddy/Makefile.in4
-rw-r--r--libraries/eina/src/modules/mp/buddy/eina_buddy.c20
-rw-r--r--libraries/eina/src/modules/mp/chained_pool/Makefile.in4
-rw-r--r--libraries/eina/src/modules/mp/chained_pool/eina_chained_mempool.c31
-rw-r--r--libraries/eina/src/modules/mp/ememoa_fixed/Makefile.in4
-rw-r--r--libraries/eina/src/modules/mp/ememoa_unknown/Makefile.in4
-rw-r--r--libraries/eina/src/modules/mp/fixed_bitmap/Makefile.in4
-rw-r--r--libraries/eina/src/modules/mp/one_big/Makefile.in4
-rw-r--r--libraries/eina/src/modules/mp/pass_through/Makefile.in4
-rw-r--r--libraries/eina/src/tests/Makefile.am9
-rw-r--r--libraries/eina/src/tests/Makefile.in77
-rw-r--r--libraries/eina/src/tests/cxx_compile_test.cxx34
-rw-r--r--libraries/eina/src/tests/eina_bench.c3
-rw-r--r--libraries/eina/src/tests/eina_bench_hash.c2
-rw-r--r--libraries/eina/src/tests/eina_bench_quad.c2
-rw-r--r--libraries/eina/src/tests/eina_bench_stringshare.c8
-rw-r--r--libraries/eina/src/tests/eina_suite.c2
-rw-r--r--libraries/eina/src/tests/eina_suite.h2
-rw-r--r--libraries/eina/src/tests/eina_test_array.c6
-rw-r--r--libraries/eina/src/tests/eina_test_binbuf.c36
-rw-r--r--libraries/eina/src/tests/eina_test_file.c4
-rw-r--r--libraries/eina/src/tests/eina_test_inarray.c401
-rw-r--r--libraries/eina/src/tests/eina_test_value.c1799
-rw-r--r--libraries/eina/src/tests/evas_list.c2
-rw-r--r--libraries/eina/src/tests/evas_mempool.c2
-rw-r--r--libraries/embryo/ChangeLog4
-rw-r--r--libraries/embryo/Makefile.in2
-rw-r--r--libraries/embryo/aclocal.m462
-rwxr-xr-xlibraries/embryo/configure515
-rw-r--r--libraries/embryo/configure.ac6
-rw-r--r--libraries/embryo/doc/Makefile.in2
-rwxr-xr-x[-rw-r--r--]libraries/embryo/doc/img/e.pngbin3825 -> 3825 bytes
-rwxr-xr-x[-rw-r--r--]libraries/embryo/doc/img/e_big.pngbin30052 -> 30052 bytes
-rwxr-xr-x[-rw-r--r--]libraries/embryo/doc/img/edoxy.css0
-rwxr-xr-x[-rw-r--r--]libraries/embryo/doc/img/foot_bg.pngbin173 -> 173 bytes
-rwxr-xr-x[-rw-r--r--]libraries/embryo/doc/img/head_bg.pngbin214 -> 214 bytes
-rwxr-xr-x[-rw-r--r--]libraries/embryo/doc/img/menu_bg.pngbin192 -> 192 bytes
-rwxr-xr-x[-rw-r--r--]libraries/embryo/doc/img/menu_bg_current.pngbin1200 -> 1200 bytes
-rwxr-xr-x[-rw-r--r--]libraries/embryo/doc/img/menu_bg_hover.pngbin3278 -> 3278 bytes
-rwxr-xr-x[-rw-r--r--]libraries/embryo/doc/img/menu_bg_last.pngbin637 -> 637 bytes
-rwxr-xr-x[-rw-r--r--]libraries/embryo/doc/img/menu_bg_unsel.pngbin1596 -> 1596 bytes
-rw-r--r--libraries/embryo/embryo.spec2
-rw-r--r--libraries/embryo/include/Makefile.in2
-rwxr-xr-xlibraries/embryo/ltmain.sh4
-rw-r--r--libraries/embryo/sha1-for-source.txt1
-rw-r--r--libraries/embryo/src/Makefile.in2
-rw-r--r--libraries/embryo/src/bin/Makefile.in2
-rw-r--r--libraries/embryo/src/bin/embryo_cc_sc5.scp2
-rw-r--r--libraries/embryo/src/bin/embryo_cc_sc7.scp2
-rw-r--r--libraries/embryo/src/lib/Embryo.h2
-rw-r--r--libraries/embryo/src/lib/Makefile.in2
-rw-r--r--libraries/evas/AUTHORS1
-rw-r--r--libraries/evas/ChangeLog131
-rw-r--r--libraries/evas/Makefile.am10
-rw-r--r--libraries/evas/Makefile.in29
-rw-r--r--libraries/evas/NEWS15
-rw-r--r--libraries/evas/aclocal.m462
-rwxr-xr-xlibraries/evas/compile142
-rw-r--r--libraries/evas/config.h.in36
-rwxr-xr-xlibraries/evas/configure2718
-rw-r--r--libraries/evas/configure.ac130
-rw-r--r--libraries/evas/doc/Makefile.in8
-rwxr-xr-x[-rw-r--r--]libraries/evas/doc/img/e_big.pngbin30052 -> 30052 bytes
-rwxr-xr-x[-rw-r--r--]libraries/evas/doc/img/foot_bg.pngbin173 -> 173 bytes
-rwxr-xr-x[-rw-r--r--]libraries/evas/doc/img/head_bg.pngbin214 -> 214 bytes
-rwxr-xr-x[-rw-r--r--]libraries/evas/doc/img/menu_bg.pngbin192 -> 192 bytes
-rwxr-xr-x[-rw-r--r--]libraries/evas/doc/img/menu_bg_current.pngbin1200 -> 1200 bytes
-rwxr-xr-x[-rw-r--r--]libraries/evas/doc/img/menu_bg_hover.pngbin3278 -> 3278 bytes
-rwxr-xr-x[-rw-r--r--]libraries/evas/doc/img/menu_bg_last.pngbin637 -> 637 bytes
-rwxr-xr-x[-rw-r--r--]libraries/evas/doc/img/menu_bg_unsel.pngbin1596 -> 1596 bytes
-rw-r--r--libraries/evas/evas-wayland-egl.pc.in3
-rw-r--r--libraries/evas/evas-wayland-shm.pc.in3
-rw-r--r--libraries/evas/evas.spec2
-rwxr-xr-xlibraries/evas/ltmain.sh4
-rw-r--r--libraries/evas/m4/evas_check_engine.m473
-rw-r--r--libraries/evas/sha1-for-source.txt1
-rw-r--r--libraries/evas/src/Makefile.in8
-rw-r--r--libraries/evas/src/bin/Makefile.in8
-rw-r--r--libraries/evas/src/examples/Makefile.am30
-rw-r--r--libraries/evas/src/examples/Makefile.in70
-rw-r--r--libraries/evas/src/lib/Evas.h433
-rw-r--r--libraries/evas/src/lib/Evas_GL.h52
-rw-r--r--libraries/evas/src/lib/Makefile.am9
-rw-r--r--libraries/evas/src/lib/Makefile.in139
-rw-r--r--libraries/evas/src/lib/cache/Makefile.in8
-rw-r--r--libraries/evas/src/lib/cache/evas_cache_engine_image.c4
-rw-r--r--libraries/evas/src/lib/cache/evas_cache_image.c17
-rw-r--r--libraries/evas/src/lib/cache/evas_preload.c4
-rw-r--r--libraries/evas/src/lib/canvas/Makefile.in8
-rw-r--r--libraries/evas/src/lib/canvas/evas_callbacks.c274
-rw-r--r--libraries/evas/src/lib/canvas/evas_events.c520
-rw-r--r--libraries/evas/src/lib/canvas/evas_focus.c22
-rw-r--r--libraries/evas/src/lib/canvas/evas_gl.c27
-rw-r--r--libraries/evas/src/lib/canvas/evas_main.c41
-rw-r--r--libraries/evas/src/lib/canvas/evas_map.c18
-rw-r--r--libraries/evas/src/lib/canvas/evas_name.c32
-rw-r--r--libraries/evas/src/lib/canvas/evas_object_box.c3
-rw-r--r--libraries/evas/src/lib/canvas/evas_object_grid.c2
-rw-r--r--libraries/evas/src/lib/canvas/evas_object_image.c46
-rw-r--r--libraries/evas/src/lib/canvas/evas_object_inform.c16
-rw-r--r--libraries/evas/src/lib/canvas/evas_object_intercept.c112
-rw-r--r--libraries/evas/src/lib/canvas/evas_object_main.c112
-rw-r--r--libraries/evas/src/lib/canvas/evas_object_smart.c31
-rw-r--r--libraries/evas/src/lib/canvas/evas_object_table.c2
-rw-r--r--libraries/evas/src/lib/canvas/evas_object_text.c4
-rw-r--r--libraries/evas/src/lib/canvas/evas_object_textblock.c909
-rw-r--r--libraries/evas/src/lib/canvas/evas_render.c31
-rw-r--r--libraries/evas/src/lib/cserve/Makefile.in8
-rw-r--r--libraries/evas/src/lib/engines/Makefile.in8
-rw-r--r--libraries/evas/src/lib/engines/common/Makefile.in8
-rw-r--r--libraries/evas/src/lib/engines/common/evas_convert_rgb_16.c84
-rw-r--r--libraries/evas/src/lib/engines/common/evas_convert_rgb_32.c347
-rw-r--r--libraries/evas/src/lib/engines/common/evas_convert_yuv.c4
-rw-r--r--libraries/evas/src/lib/engines/common/evas_cpu.c4
-rw-r--r--libraries/evas/src/lib/engines/common/evas_draw_main.c68
-rw-r--r--libraries/evas/src/lib/engines/common/evas_font_draw.c135
-rw-r--r--libraries/evas/src/lib/engines/common/evas_font_main.c4
-rw-r--r--libraries/evas/src/lib/engines/common/evas_image_data.c4
-rw-r--r--libraries/evas/src/lib/engines/common/evas_image_load.c4
-rw-r--r--libraries/evas/src/lib/engines/common/evas_image_main.c56
-rw-r--r--libraries/evas/src/lib/engines/common/evas_image_scalecache.c2
-rw-r--r--libraries/evas/src/lib/engines/common/evas_line_main.c475
-rw-r--r--libraries/evas/src/lib/engines/common/evas_op_add/Makefile.in8
-rw-r--r--libraries/evas/src/lib/engines/common/evas_op_blend/Makefile.in8
-rw-r--r--libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_color_sse3.c3
-rw-r--r--libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_mask_color_sse3.c3
-rw-r--r--libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_pixel_sse3.c1
-rw-r--r--libraries/evas/src/lib/engines/common/evas_op_copy/Makefile.in8
-rw-r--r--libraries/evas/src/lib/engines/common/evas_op_mask/Makefile.in8
-rw-r--r--libraries/evas/src/lib/engines/common/evas_op_mul/Makefile.in8
-rw-r--r--libraries/evas/src/lib/engines/common/evas_op_sub/Makefile.in8
-rw-r--r--libraries/evas/src/lib/engines/common/evas_polygon_main.c40
-rw-r--r--libraries/evas/src/lib/engines/common/evas_rectangle_main.c34
-rw-r--r--libraries/evas/src/lib/engines/common/evas_scale_sample.c113
-rw-r--r--libraries/evas/src/lib/engines/common/evas_tiler.c4
-rw-r--r--libraries/evas/src/lib/engines/common/language/evas_bidi_utils.c4
-rw-r--r--libraries/evas/src/lib/engines/common/language/evas_language_utils.c6
-rw-r--r--libraries/evas/src/lib/engines/common_16/Makefile.in8
-rw-r--r--libraries/evas/src/lib/engines/common_8/Makefile.in8
-rw-r--r--libraries/evas/src/lib/file/Makefile.in8
-rw-r--r--libraries/evas/src/lib/file/evas_module.c4
-rw-r--r--libraries/evas/src/lib/file/evas_path.c2
-rw-r--r--libraries/evas/src/lib/include/Makefile.in8
-rw-r--r--libraries/evas/src/lib/include/evas_common.h64
-rw-r--r--libraries/evas/src/lib/include/evas_private.h18
-rw-r--r--libraries/evas/src/modules/Makefile.in8
-rw-r--r--libraries/evas/src/modules/engines/Makefile.am7
-rw-r--r--libraries/evas/src/modules/engines/Makefile.in15
-rw-r--r--libraries/evas/src/modules/engines/buffer/Makefile.in8
-rw-r--r--libraries/evas/src/modules/engines/direct3d/Makefile.in8
-rw-r--r--libraries/evas/src/modules/engines/directfb/Makefile.in8
-rw-r--r--libraries/evas/src/modules/engines/fb/Makefile.in8
-rw-r--r--libraries/evas/src/modules/engines/gl_cocoa/Makefile.in8
-rw-r--r--libraries/evas/src/modules/engines/gl_common/Makefile.in8
-rw-r--r--libraries/evas/src/modules/engines/gl_common/evas_gl_common.h2
-rw-r--r--libraries/evas/src/modules/engines/gl_common/evas_gl_texture.c7
-rw-r--r--libraries/evas/src/modules/engines/gl_sdl/Makefile.in8
-rw-r--r--libraries/evas/src/modules/engines/gl_x11/Makefile.in8
-rw-r--r--libraries/evas/src/modules/engines/gl_x11/evas_engine.c104
-rw-r--r--libraries/evas/src/modules/engines/gl_x11/evas_x_main.c2
-rw-r--r--libraries/evas/src/modules/engines/psl1ght/Makefile.in8
-rw-r--r--libraries/evas/src/modules/engines/software_16/Makefile.in8
-rw-r--r--libraries/evas/src/modules/engines/software_16_ddraw/Makefile.in8
-rw-r--r--libraries/evas/src/modules/engines/software_16_sdl/Makefile.in8
-rw-r--r--libraries/evas/src/modules/engines/software_16_wince/Makefile.in8
-rw-r--r--libraries/evas/src/modules/engines/software_16_x11/Makefile.in8
-rw-r--r--libraries/evas/src/modules/engines/software_8/Makefile.in8
-rw-r--r--libraries/evas/src/modules/engines/software_8_x11/Makefile.in8
-rw-r--r--libraries/evas/src/modules/engines/software_ddraw/Makefile.in8
-rw-r--r--libraries/evas/src/modules/engines/software_gdi/Makefile.in8
-rw-r--r--libraries/evas/src/modules/engines/software_generic/Makefile.in8
-rw-r--r--libraries/evas/src/modules/engines/software_generic/evas_engine.c1612
-rw-r--r--libraries/evas/src/modules/engines/software_sdl/Makefile.in8
-rw-r--r--libraries/evas/src/modules/engines/software_x11/Makefile.in8
-rw-r--r--libraries/evas/src/modules/engines/software_x11/evas_xlib_outbuf.c2
-rw-r--r--libraries/evas/src/modules/engines/wayland_egl/Evas_Engine_Wayland_Egl.h42
-rw-r--r--libraries/evas/src/modules/engines/wayland_egl/Makefile.am47
-rw-r--r--libraries/evas/src/modules/engines/wayland_egl/Makefile.in816
-rw-r--r--libraries/evas/src/modules/engines/wayland_egl/evas_engine.c3174
-rw-r--r--libraries/evas/src/modules/engines/wayland_egl/evas_engine.h82
-rw-r--r--libraries/evas/src/modules/engines/wayland_egl/evas_wl_main.c323
-rw-r--r--libraries/evas/src/modules/engines/wayland_shm/Evas_Engine_Wayland_Shm.h20
-rw-r--r--libraries/evas/src/modules/engines/wayland_shm/Makefile.am45
-rw-r--r--libraries/evas/src/modules/engines/wayland_shm/Makefile.in816
-rw-r--r--libraries/evas/src/modules/engines/wayland_shm/evas_engine.c370
-rw-r--r--libraries/evas/src/modules/engines/wayland_shm/evas_engine.h60
-rw-r--r--libraries/evas/src/modules/engines/wayland_shm/evas_outbuf.c100
-rw-r--r--libraries/evas/src/modules/loaders/Makefile.in10
-rw-r--r--libraries/evas/src/modules/loaders/TODO5
-rw-r--r--libraries/evas/src/modules/loaders/bmp/Makefile.in8
-rw-r--r--libraries/evas/src/modules/loaders/bmp/evas_image_load_bmp.c485
-rw-r--r--libraries/evas/src/modules/loaders/edb/Makefile.in8
-rw-r--r--libraries/evas/src/modules/loaders/edb/evas_image_load_edb.c3
-rw-r--r--libraries/evas/src/modules/loaders/eet/Makefile.in8
-rw-r--r--libraries/evas/src/modules/loaders/eet/evas_image_load_eet.c3
-rw-r--r--libraries/evas/src/modules/loaders/generic/Makefile.in8
-rw-r--r--libraries/evas/src/modules/loaders/generic/evas_image_load_generic.c8
-rw-r--r--libraries/evas/src/modules/loaders/gif/Makefile.in8
-rw-r--r--libraries/evas/src/modules/loaders/gif/evas_image_load_gif.c3
-rw-r--r--libraries/evas/src/modules/loaders/ico/Makefile.in8
-rw-r--r--libraries/evas/src/modules/loaders/ico/evas_image_load_ico.c216
-rw-r--r--libraries/evas/src/modules/loaders/jpeg/Makefile.in8
-rw-r--r--libraries/evas/src/modules/loaders/jpeg/evas_image_load_jpeg.c3
-rw-r--r--libraries/evas/src/modules/loaders/pmaps/Makefile.in8
-rw-r--r--libraries/evas/src/modules/loaders/pmaps/evas_image_load_pmaps.c54
-rw-r--r--libraries/evas/src/modules/loaders/png/Makefile.in8
-rw-r--r--libraries/evas/src/modules/loaders/png/evas_image_load_png.c3
-rw-r--r--libraries/evas/src/modules/loaders/psd/Makefile.in8
-rw-r--r--libraries/evas/src/modules/loaders/psd/evas_image_load_psd.c264
-rw-r--r--libraries/evas/src/modules/loaders/svg/Makefile.in8
-rw-r--r--libraries/evas/src/modules/loaders/svg/evas_image_load_svg.c3
-rw-r--r--libraries/evas/src/modules/loaders/tga/Makefile.in8
-rw-r--r--libraries/evas/src/modules/loaders/tga/evas_image_load_tga.c3
-rw-r--r--libraries/evas/src/modules/loaders/tiff/Makefile.in8
-rw-r--r--libraries/evas/src/modules/loaders/tiff/evas_image_load_tiff.c3
-rw-r--r--libraries/evas/src/modules/loaders/wbmp/Makefile.in8
-rw-r--r--libraries/evas/src/modules/loaders/wbmp/evas_image_load_wbmp.c113
-rw-r--r--libraries/evas/src/modules/loaders/xpm/Makefile.in8
-rw-r--r--libraries/evas/src/modules/loaders/xpm/evas_image_load_xpm.c162
-rw-r--r--libraries/evas/src/modules/savers/Makefile.in8
-rw-r--r--libraries/evas/src/modules/savers/edb/Makefile.in8
-rw-r--r--libraries/evas/src/modules/savers/eet/Makefile.in8
-rw-r--r--libraries/evas/src/modules/savers/jpeg/Makefile.in8
-rw-r--r--libraries/evas/src/modules/savers/png/Makefile.in8
-rw-r--r--libraries/evas/src/modules/savers/tiff/Makefile.in8
-rw-r--r--libraries/evas/src/static_deps/Makefile.in8
-rw-r--r--libraries/evas/src/static_deps/liblinebreak/AUTHORS2
-rw-r--r--libraries/evas/src/static_deps/liblinebreak/Makefile.am6
-rw-r--r--libraries/evas/src/static_deps/liblinebreak/Makefile.in17
-rw-r--r--libraries/evas/src/static_deps/liblinebreak/wordbreak.c435
-rw-r--r--libraries/evas/src/static_deps/liblinebreak/wordbreak.h72
-rw-r--r--libraries/evas/src/static_deps/liblinebreak/wordbreakdata.x858
-rw-r--r--libraries/evas/src/static_deps/liblinebreak/wordbreakdef.h80
-rw-r--r--libraries/evas/src/tests/Makefile.in8
-rw-r--r--libraries/evas/src/tests/evas_test_callbacks.c6
-rw-r--r--libraries/evas/src/tests/evas_test_textblock.c319
603 files changed, 60073 insertions, 14667 deletions
diff --git a/libraries/ecore/AUTHORS b/libraries/ecore/AUTHORS
index 16f95f0..8fc1f10 100644
--- a/libraries/ecore/AUTHORS
+++ b/libraries/ecore/AUTHORS
@@ -35,7 +35,7 @@ Nicolas Aguirre <aguirre.nicolas@gmail.com>
35Brett Nash <nash@nash.id.au> 35Brett Nash <nash@nash.id.au>
36Mike Blumenkrantz <michael.blumenkrantz@gmail.com> 36Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
37Leif Middelschulte <leif.middelschulte@gmail.com> 37Leif Middelschulte <leif.middelschulte@gmail.com>
38Mike McCormack <mj.mccormack@samsung.com> 38Mike McCormack <mikem@ring3k.org>
39Sangho Park <gouache95@gmail.com> 39Sangho Park <gouache95@gmail.com>
40Jihoon Kim <jihoon48.kim@samsung.com> <imfine98@gmail.com> 40Jihoon Kim <jihoon48.kim@samsung.com> <imfine98@gmail.com>
41PnB <Poor.NewBie@gmail.com> 41PnB <Poor.NewBie@gmail.com>
@@ -47,3 +47,5 @@ Rafael Antognolli <antognolli@profusion.mobi>
47Kim Yunhan <spbear@gmail.com> 47Kim Yunhan <spbear@gmail.com>
48Youness Alaoui <kakaroto@kakaroto.homelinux.net> 48Youness Alaoui <kakaroto@kakaroto.homelinux.net>
49Bluezery <ohpowel@gmail.com> 49Bluezery <ohpowel@gmail.com>
50Doyoun Kang <wayofmine@gmail.com> <doyoun.kang@samsung.com>
51Haifeng Deng <haifeng.deng@samsung.com>
diff --git a/libraries/ecore/ChangeLog b/libraries/ecore/ChangeLog
index 410bffe..5c32d20 100644
--- a/libraries/ecore/ChangeLog
+++ b/libraries/ecore/ChangeLog
@@ -350,3 +350,118 @@
3502011-11-27 Vincent Torri 3502011-11-27 Vincent Torri
351 351
352 * Fix and improve key management on Windows XP 352 * Fix and improve key management on Windows XP
353
3542011-11-29 Vincent Torri
355
356 * Discard left Ctrl when AltGr is pressed (Windows XP)
357 * Fix the string value for the Delete key (Windows XP)
358 * Fix the key release values for non keystroke keys (Windows XP)
359
3602011-11-29 Mike McCormack
361
362 * Allow quitting before entering the glib version of the main loop
363
3642011-12-02 Carsten Haitzler (The Rasterman)
365
366 1.1.0 release
367
3682011-12-02 Mike Blumenkrantz
369
370 * Use mempools for allocations
371
3722011-12-02 Term <term@twistedpath.org>
373
374 * added ecore_x_randr_output_backlight_available()
375
3762011-12-03 Vincent Torri
377
378 * Fix the modifiers value (Windows XP)
379
3802011-12-04 Mike Blumenkrantz
381
382 * added ecore_timer_reset()
383
3842011-12-05 Mike Blumenkrantz
385
386 * added ecore_con_socks api
387
3882011-12-07 Mike Blumenkrantz
389
390 * Allow SSL certificates to be loaded for STARTTLS
391 * Added functions to set/get the hostname used for SSL certificate verification
392 * ecore_con_ssl_server_cafile_add() now accepts directories
393
3942011-12-10 Mike Blumenkrantz
395
396 * Fix case where SSL certificates would not be used
397 * Added ECORE_CON_REMOTE_CORK for applying TCP_CORK to sends
398
3992011-12-12 Carsten Haitzler (The Rasterman)
400
401 * Fix bug where an animator that just keeps adding another
402 animator keeps the animator handler in an infinite loop. Do
403 the same as timers and mark them as "just added" to skip in
404 this run of animators
405
4062011-12-13 Doyun Kang
407
408 * Add ability to get resource id of last x error in ecore_x.
409
4102011-12-16 Carsten Haitzler (The Rasterman)
411
412 * Clean up some ecore-evas-buffer code
413 * Add Ecore-evas extn (external) plug and socket canvas wrappers
414 allowing for any ecore-evas to contain an image object that is
415 a "socket" for other processes to plug into with "plugs" and
416 thus provide image content via a canvas remotely (from another
417 process) as well as the socket process passing in events to the
418 plug process to it can see key, mouse, multi etc. events.
419
420
4212011-12-16 Mike Blumenkrantz
422
423 * Fix possible 0 byte allocation in ecore-x
424
4252011-12-20 Carsten Haitzler (The Rasterman)
426
427 * Fix probable leak for g_static_mutex's on some architectures
428
4292011-12-20 Jihoon Kim
430
431 * Add XIM attribute support to Ecore_IMF
432
4332011-12-21 Tae-Hwan Kim (Bluezery)
434
435 * Add proxy set and timeout set functions in ecore_con.
436
4372011-12-26 Tae-Hwan Kim (Bluezery)
438
439 * Add proxy username/password set functions in ecore_con.
440
4412011-12-26 Christopher Michael (devilhorns)
442
443 * Add Ecore_Wayland (backend to support Wayland).
444 * Add Shm and Egl engines for ecore_evas to draw in Wayland.
445
4462011-12-27 Carsten Haitzler (The Rasterman)
447
448 * Fix mouse down grab counts going bad by missing events.
449
4502011-12-29 Carsten Haitzler (The Rasterman)
451
452 * Fix massive post data probile in ecore-con that would cause
453 post data to be corrupted (as it was never copied into the
454 ecore con url struct) or could cause crashes if the memory
455 pointed to became invalid.
456
4572012-01-04 Carsten Haitzler (The Rasterman)
458
459 * Add HEX, TERMINAL and PASSWORD layouts to ecore-imf
460
4612011-01-05 Jiyoun Park (Jypark)
462
463 * Fix Ecore-evas extn (external) for multi client model.
464 "Socket" creates canvas and other process can show that canvas
465 using "Plug" image object. Before only one to one communication
466 is possible, but now many "plug"s can show socket's canvas.
467
diff --git a/libraries/ecore/Makefile.am b/libraries/ecore/Makefile.am
index 3de7673..8a6ef9a 100644
--- a/libraries/ecore/Makefile.am
+++ b/libraries/ecore/Makefile.am
@@ -106,6 +106,7 @@ ecore-cocoa.pc.in \
106ecore-psl1ght.pc.in \ 106ecore-psl1ght.pc.in \
107ecore-input.pc.in \ 107ecore-input.pc.in \
108ecore-wince.pc.in \ 108ecore-wince.pc.in \
109ecore-wayland.pc.in \
109ecore.spec.in \ 110ecore.spec.in \
110ecore.spec \ 111ecore.spec \
111m4/ac_abstract_socket.m4 \ 112m4/ac_abstract_socket.m4 \
@@ -190,6 +191,10 @@ if BUILD_ECORE_PSL1GHT
190pkgconfig_DATA += ecore-psl1ght.pc 191pkgconfig_DATA += ecore-psl1ght.pc
191endif 192endif
192 193
194if BUILD_ECORE_WAYLAND
195pkgconfig_DATA += ecore-wayland.pc
196endif
197
193.PHONY: doc 198.PHONY: doc
194 199
195# Documentation 200# Documentation
diff --git a/libraries/ecore/Makefile.in b/libraries/ecore/Makefile.in
index e78b5dc..7ae3118 100644
--- a/libraries/ecore/Makefile.in
+++ b/libraries/ecore/Makefile.in
@@ -64,6 +64,7 @@ host_triplet = @host@
64@BUILD_ECORE_SDL_TRUE@am__append_17 = ecore-sdl.pc 64@BUILD_ECORE_SDL_TRUE@am__append_17 = ecore-sdl.pc
65@BUILD_ECORE_COCOA_TRUE@am__append_18 = ecore-cocoa.pc 65@BUILD_ECORE_COCOA_TRUE@am__append_18 = ecore-cocoa.pc
66@BUILD_ECORE_PSL1GHT_TRUE@am__append_19 = ecore-psl1ght.pc 66@BUILD_ECORE_PSL1GHT_TRUE@am__append_19 = ecore-psl1ght.pc
67@BUILD_ECORE_WAYLAND_TRUE@am__append_20 = ecore-wayland.pc
67subdir = . 68subdir = .
68DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ 69DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
69 $(srcdir)/Makefile.in $(srcdir)/config.h.in \ 70 $(srcdir)/Makefile.in $(srcdir)/config.h.in \
@@ -74,12 +75,12 @@ DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
74 $(srcdir)/ecore-imf.pc.in $(srcdir)/ecore-input-evas.pc.in \ 75 $(srcdir)/ecore-imf.pc.in $(srcdir)/ecore-input-evas.pc.in \
75 $(srcdir)/ecore-input.pc.in $(srcdir)/ecore-ipc.pc.in \ 76 $(srcdir)/ecore-input.pc.in $(srcdir)/ecore-ipc.pc.in \
76 $(srcdir)/ecore-psl1ght.pc.in $(srcdir)/ecore-sdl.pc.in \ 77 $(srcdir)/ecore-psl1ght.pc.in $(srcdir)/ecore-sdl.pc.in \
77 $(srcdir)/ecore-win32.pc.in $(srcdir)/ecore-wince.pc.in \ 78 $(srcdir)/ecore-wayland.pc.in $(srcdir)/ecore-win32.pc.in \
78 $(srcdir)/ecore-x.pc.in $(srcdir)/ecore.pc.in \ 79 $(srcdir)/ecore-wince.pc.in $(srcdir)/ecore-x.pc.in \
79 $(srcdir)/ecore.spec.in $(top_srcdir)/configure ABOUT-NLS \ 80 $(srcdir)/ecore.pc.in $(srcdir)/ecore.spec.in \
80 AUTHORS COPYING ChangeLog INSTALL NEWS TODO config.guess \ 81 $(top_srcdir)/configure ABOUT-NLS AUTHORS COPYING ChangeLog \
81 config.rpath config.sub depcomp install-sh ltmain.sh missing \ 82 INSTALL NEWS config.guess config.rpath config.sub depcomp \
82 mkinstalldirs 83 install-sh ltmain.sh missing mkinstalldirs
83ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 84ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
84am__aclocal_m4_deps = $(top_srcdir)/m4/ac_attribute.m4 \ 85am__aclocal_m4_deps = $(top_srcdir)/m4/ac_attribute.m4 \
85 $(top_srcdir)/m4/ac_path_generic.m4 \ 86 $(top_srcdir)/m4/ac_path_generic.m4 \
@@ -109,7 +110,8 @@ CONFIG_CLEAN_FILES = ecore-con.pc ecore-config.pc ecore-directfb.pc \
109 ecore-evas.pc ecore-fb.pc ecore-file.pc ecore-imf.pc \ 110 ecore-evas.pc ecore-fb.pc ecore-file.pc ecore-imf.pc \
110 ecore-imf-evas.pc ecore-ipc.pc ecore-x.pc ecore-input.pc \ 111 ecore-imf-evas.pc ecore-ipc.pc ecore-x.pc ecore-input.pc \
111 ecore-input-evas.pc ecore-win32.pc ecore-sdl.pc ecore-cocoa.pc \ 112 ecore-input-evas.pc ecore-win32.pc ecore-sdl.pc ecore-cocoa.pc \
112 ecore-psl1ght.pc ecore-wince.pc ecore.pc ecore.spec 113 ecore-psl1ght.pc ecore-wince.pc ecore-wayland.pc ecore.pc \
114 ecore.spec
113CONFIG_CLEAN_VPATH_FILES = 115CONFIG_CLEAN_VPATH_FILES =
114am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; 116am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
115am__vpath_adj = case $$p in \ 117am__vpath_adj = case $$p in \
@@ -312,10 +314,10 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
312PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 314PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
313PIXMAN_LIBS = @PIXMAN_LIBS@ 315PIXMAN_LIBS = @PIXMAN_LIBS@
314PKG_CONFIG = @PKG_CONFIG@ 316PKG_CONFIG = @PKG_CONFIG@
315PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
316PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
317POSUB = @POSUB@ 317POSUB = @POSUB@
318RANLIB = @RANLIB@ 318RANLIB = @RANLIB@
319SCIM_CFLAGS = @SCIM_CFLAGS@
320SCIM_LIBS = @SCIM_LIBS@
319SDL_CFLAGS = @SDL_CFLAGS@ 321SDL_CFLAGS = @SDL_CFLAGS@
320SDL_CONFIG = @SDL_CONFIG@ 322SDL_CONFIG = @SDL_CONFIG@
321SDL_LIBS = @SDL_LIBS@ 323SDL_LIBS = @SDL_LIBS@
@@ -334,6 +336,10 @@ TSLIB_LIBS = @TSLIB_LIBS@
334USE_NLS = @USE_NLS@ 336USE_NLS = @USE_NLS@
335VERSION = @VERSION@ 337VERSION = @VERSION@
336VMAJ = @VMAJ@ 338VMAJ = @VMAJ@
339WAYLAND_CFLAGS = @WAYLAND_CFLAGS@
340WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
341WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
342WAYLAND_LIBS = @WAYLAND_LIBS@
337WIN32_CFLAGS = @WIN32_CFLAGS@ 343WIN32_CFLAGS = @WIN32_CFLAGS@
338WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 344WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
339WIN32_LIBS = @WIN32_LIBS@ 345WIN32_LIBS = @WIN32_LIBS@
@@ -447,6 +453,8 @@ ecore_imf_cflags = @ecore_imf_cflags@
447ecore_imf_evas_cflags = @ecore_imf_evas_cflags@ 453ecore_imf_evas_cflags = @ecore_imf_evas_cflags@
448ecore_imf_evas_libs = @ecore_imf_evas_libs@ 454ecore_imf_evas_libs = @ecore_imf_evas_libs@
449ecore_imf_libs = @ecore_imf_libs@ 455ecore_imf_libs = @ecore_imf_libs@
456ecore_imf_scim_cflags = @ecore_imf_scim_cflags@
457ecore_imf_scim_libs = @ecore_imf_scim_libs@
450ecore_imf_xim_cflags = @ecore_imf_xim_cflags@ 458ecore_imf_xim_cflags = @ecore_imf_xim_cflags@
451ecore_imf_xim_libs = @ecore_imf_xim_libs@ 459ecore_imf_xim_libs = @ecore_imf_xim_libs@
452ecore_input_cflags = @ecore_input_cflags@ 460ecore_input_cflags = @ecore_input_cflags@
@@ -459,6 +467,8 @@ ecore_psl1ght_cflags = @ecore_psl1ght_cflags@
459ecore_psl1ght_libs = @ecore_psl1ght_libs@ 467ecore_psl1ght_libs = @ecore_psl1ght_libs@
460ecore_sdl_cflags = @ecore_sdl_cflags@ 468ecore_sdl_cflags = @ecore_sdl_cflags@
461ecore_sdl_libs = @ecore_sdl_libs@ 469ecore_sdl_libs = @ecore_sdl_libs@
470ecore_wayland_cflags = @ecore_wayland_cflags@
471ecore_wayland_libs = @ecore_wayland_libs@
462ecore_win32_cflags = @ecore_win32_cflags@ 472ecore_win32_cflags = @ecore_win32_cflags@
463ecore_win32_libs = @ecore_win32_libs@ 473ecore_win32_libs = @ecore_win32_libs@
464ecore_wince_cflags = @ecore_wince_cflags@ 474ecore_wince_cflags = @ecore_wince_cflags@
@@ -503,12 +513,14 @@ requirements_ecore_fb = @requirements_ecore_fb@
503requirements_ecore_file = @requirements_ecore_file@ 513requirements_ecore_file = @requirements_ecore_file@
504requirements_ecore_imf = @requirements_ecore_imf@ 514requirements_ecore_imf = @requirements_ecore_imf@
505requirements_ecore_imf_evas = @requirements_ecore_imf_evas@ 515requirements_ecore_imf_evas = @requirements_ecore_imf_evas@
516requirements_ecore_imf_scim = @requirements_ecore_imf_scim@
506requirements_ecore_imf_xim = @requirements_ecore_imf_xim@ 517requirements_ecore_imf_xim = @requirements_ecore_imf_xim@
507requirements_ecore_input = @requirements_ecore_input@ 518requirements_ecore_input = @requirements_ecore_input@
508requirements_ecore_input_evas = @requirements_ecore_input_evas@ 519requirements_ecore_input_evas = @requirements_ecore_input_evas@
509requirements_ecore_ipc = @requirements_ecore_ipc@ 520requirements_ecore_ipc = @requirements_ecore_ipc@
510requirements_ecore_psl1ght = @requirements_ecore_psl1ght@ 521requirements_ecore_psl1ght = @requirements_ecore_psl1ght@
511requirements_ecore_sdl = @requirements_ecore_sdl@ 522requirements_ecore_sdl = @requirements_ecore_sdl@
523requirements_ecore_wayland = @requirements_ecore_wayland@
512requirements_ecore_win32 = @requirements_ecore_win32@ 524requirements_ecore_win32 = @requirements_ecore_win32@
513requirements_ecore_wince = @requirements_ecore_wince@ 525requirements_ecore_wince = @requirements_ecore_wince@
514requirements_ecore_x = @requirements_ecore_x@ 526requirements_ecore_x = @requirements_ecore_x@
@@ -567,6 +579,7 @@ ecore-cocoa.pc.in \
567ecore-psl1ght.pc.in \ 579ecore-psl1ght.pc.in \
568ecore-input.pc.in \ 580ecore-input.pc.in \
569ecore-wince.pc.in \ 581ecore-wince.pc.in \
582ecore-wayland.pc.in \
570ecore.spec.in \ 583ecore.spec.in \
571ecore.spec \ 584ecore.spec \
572m4/ac_abstract_socket.m4 \ 585m4/ac_abstract_socket.m4 \
@@ -585,7 +598,8 @@ pkgconfig_DATA = ecore.pc $(am__append_3) $(am__append_4) \
585 $(am__append_8) $(am__append_9) $(am__append_10) \ 598 $(am__append_8) $(am__append_9) $(am__append_10) \
586 $(am__append_11) $(am__append_12) $(am__append_13) \ 599 $(am__append_11) $(am__append_12) $(am__append_13) \
587 $(am__append_14) $(am__append_15) $(am__append_16) \ 600 $(am__append_14) $(am__append_15) $(am__append_16) \
588 $(am__append_17) $(am__append_18) $(am__append_19) 601 $(am__append_17) $(am__append_18) $(am__append_19) \
602 $(am__append_20)
589all: config.h 603all: config.h
590 $(MAKE) $(AM_MAKEFLAGS) all-recursive 604 $(MAKE) $(AM_MAKEFLAGS) all-recursive
591 605
@@ -675,6 +689,8 @@ ecore-psl1ght.pc: $(top_builddir)/config.status $(srcdir)/ecore-psl1ght.pc.in
675 cd $(top_builddir) && $(SHELL) ./config.status $@ 689 cd $(top_builddir) && $(SHELL) ./config.status $@
676ecore-wince.pc: $(top_builddir)/config.status $(srcdir)/ecore-wince.pc.in 690ecore-wince.pc: $(top_builddir)/config.status $(srcdir)/ecore-wince.pc.in
677 cd $(top_builddir) && $(SHELL) ./config.status $@ 691 cd $(top_builddir) && $(SHELL) ./config.status $@
692ecore-wayland.pc: $(top_builddir)/config.status $(srcdir)/ecore-wayland.pc.in
693 cd $(top_builddir) && $(SHELL) ./config.status $@
678ecore.pc: $(top_builddir)/config.status $(srcdir)/ecore.pc.in 694ecore.pc: $(top_builddir)/config.status $(srcdir)/ecore.pc.in
679 cd $(top_builddir) && $(SHELL) ./config.status $@ 695 cd $(top_builddir) && $(SHELL) ./config.status $@
680ecore.spec: $(top_builddir)/config.status $(srcdir)/ecore.spec.in 696ecore.spec: $(top_builddir)/config.status $(srcdir)/ecore.spec.in
diff --git a/libraries/ecore/NEWS b/libraries/ecore/NEWS
index 701eae6..f558bb4 100644
--- a/libraries/ecore/NEWS
+++ b/libraries/ecore/NEWS
@@ -1,3 +1,37 @@
1Ecore 1.2.0
2
3Changes since Ecore 1.1.0:
4--------------------------
5
6Additions:
7 * ecore
8 - ecore_timer_reset()
9 * ecore_con
10 - ecore_con_socks api
11 - ecore_con_ssl_server_verify_name_set/get
12 - ecore_con_ssl_server_cafile_add() now accepts directories
13 - ECORE_CON_REMOTE_CORK
14 - ecore_con_url_proxy_set()
15 - ecore_con_url_timeout_set()
16 - ecore_con_url_proxy_username_set
17 - ecore_con_url_proxy_password_set()
18 * ecore_x:
19 - ecore_x_randr_output_backlight_available()
20 * ecore_evas:
21 - Add Shm and Egl engines for ecore_evas to draw in Wayland.
22 - Add Socket and Plug to draw other process area.
23 * ecore_wayland
24 - Add Ecore_Wayland (backend to support Wayland).
25
26Improvements:
27 * ecore:
28 - most allocations moved to mempools
29 * ecore_con:
30 - certificates can now be added for STARTTTLS
31 * ecore_win32:
32 - fix modifiers value on Windows XP
33
34
1Ecore 1.1.0 35Ecore 1.1.0
2 36
3Changes since Ecore 1.0.0: 37Changes since Ecore 1.0.0:
@@ -75,7 +109,7 @@ Fixes:
75 * NULL pointer dereference in ecore_x selection notification code 109 * NULL pointer dereference in ecore_x selection notification code
76 * sync GNUTLS thread activation with eina changes 110 * sync GNUTLS thread activation with eina changes
77 * ecore_ipc compilation on Windows 111 * ecore_ipc compilation on Windows
78 * fix Shift, Control and Alt keys detection on Windows 112 * fix Shift, Control, Alt and AltGr keys detection on Windows XP
79 * "mouse-down inside and mouse-up outside" issue on Windows 113 * "mouse-down inside and mouse-up outside" issue on Windows
80 * ecore_x shadow tree search fixed to respect shape input of windows 114 * ecore_x shadow tree search fixed to respect shape input of windows
81 * fd handlers fixed when idler callbacks add jobs or events 115 * fd handlers fixed when idler callbacks add jobs or events
diff --git a/libraries/ecore/TODO b/libraries/ecore/TODO
deleted file mode 100644
index 78c060b..0000000
--- a/libraries/ecore/TODO
+++ /dev/null
@@ -1,2 +0,0 @@
1* ecore_file - has fd inside. elm_quicklaunch fork fun kills it. store
2pid with fd and detect change of pid and re-init then
diff --git a/libraries/ecore/aclocal.m4 b/libraries/ecore/aclocal.m4
index 386d6ef..859816b 100644
--- a/libraries/ecore/aclocal.m4
+++ b/libraries/ecore/aclocal.m4
@@ -13,14 +13,13 @@
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.67],, 16m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.65],,
17[m4_warning([this file was generated for autoconf 2.67. 17[m4_warning([this file was generated for autoconf 2.65.
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)
24# 23#
25# Copyright © 2004 Scott James Remnant <scott@netsplit.com>. 24# Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
26# 25#
@@ -48,10 +47,7 @@ To do so, use the procedure documented by the package, typically `autoreconf'.])
48AC_DEFUN([PKG_PROG_PKG_CONFIG], 47AC_DEFUN([PKG_PROG_PKG_CONFIG],
49[m4_pattern_forbid([^_?PKG_[A-Z_]+$]) 48[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
50m4_pattern_allow([^PKG_CONFIG(_PATH)?$]) 49m4_pattern_allow([^PKG_CONFIG(_PATH)?$])
51AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) 50AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl
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
55if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then 51if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
56 AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) 52 AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
57fi 53fi
@@ -64,6 +60,7 @@ if test -n "$PKG_CONFIG"; then
64 AC_MSG_RESULT([no]) 60 AC_MSG_RESULT([no])
65 PKG_CONFIG="" 61 PKG_CONFIG=""
66 fi 62 fi
63
67fi[]dnl 64fi[]dnl
68])# PKG_PROG_PKG_CONFIG 65])# PKG_PROG_PKG_CONFIG
69 66
@@ -72,31 +69,34 @@ fi[]dnl
72# Check to see whether a particular set of modules exists. Similar 69# Check to see whether a particular set of modules exists. Similar
73# to PKG_CHECK_MODULES(), but does not set variables or print errors. 70# to PKG_CHECK_MODULES(), but does not set variables or print errors.
74# 71#
75# Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) 72#
76# only at the first occurence in configure.ac, so if the first place 73# Similar to PKG_CHECK_MODULES, make sure that the first instance of
77# it's called might be skipped (such as if it is within an "if", you 74# this or PKG_CHECK_MODULES is called, or make sure to call
78# have to call PKG_CHECK_EXISTS manually 75# PKG_CHECK_EXISTS manually
79# -------------------------------------------------------------- 76# --------------------------------------------------------------
80AC_DEFUN([PKG_CHECK_EXISTS], 77AC_DEFUN([PKG_CHECK_EXISTS],
81[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl 78[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
82if test -n "$PKG_CONFIG" && \ 79if test -n "$PKG_CONFIG" && \
83 AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then 80 AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
84 m4_default([$2], [:]) 81 m4_ifval([$2], [$2], [:])
85m4_ifvaln([$3], [else 82m4_ifvaln([$3], [else
86 $3])dnl 83 $3])dnl
87fi]) 84fi])
88 85
86
89# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) 87# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
90# --------------------------------------------- 88# ---------------------------------------------
91m4_define([_PKG_CONFIG], 89m4_define([_PKG_CONFIG],
92[if test -n "$$1"; then 90[if test -n "$PKG_CONFIG"; then
93 pkg_cv_[]$1="$$1" 91 if test -n "$$1"; then
94 elif test -n "$PKG_CONFIG"; then 92 pkg_cv_[]$1="$$1"
95 PKG_CHECK_EXISTS([$3], 93 else
96 [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`], 94 PKG_CHECK_EXISTS([$3],
97 [pkg_failed=yes]) 95 [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`],
98 else 96 [pkg_failed=yes])
99 pkg_failed=untried 97 fi
98else
99 pkg_failed=untried
100fi[]dnl 100fi[]dnl
101])# _PKG_CONFIG 101])# _PKG_CONFIG
102 102
@@ -138,17 +138,16 @@ 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])
142 _PKG_SHORT_ERRORS_SUPPORTED 141 _PKG_SHORT_ERRORS_SUPPORTED
143 if test $_pkg_short_errors_supported = yes; then 142 if test $_pkg_short_errors_supported = yes; then
144 $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1` 143 $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$2"`
145 else 144 else
146 $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1` 145 $1[]_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"`
147 fi 146 fi
148 # Put the nasty error message in config.log where it belongs 147 # Put the nasty error message in config.log where it belongs
149 echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD 148 echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
150 149
151 m4_default([$4], [AC_MSG_ERROR( 150 ifelse([$4], , [AC_MSG_ERROR(dnl
152[Package requirements ($2) were not met: 151[Package requirements ($2) were not met:
153 152
154$$1_PKG_ERRORS 153$$1_PKG_ERRORS
@@ -156,24 +155,25 @@ $$1_PKG_ERRORS
156Consider adjusting the PKG_CONFIG_PATH environment variable if you 155Consider adjusting the PKG_CONFIG_PATH environment variable if you
157installed software in a non-standard prefix. 156installed software in a non-standard prefix.
158 157
159_PKG_TEXT])[]dnl 158_PKG_TEXT
160 ]) 159])],
160 [AC_MSG_RESULT([no])
161 $4])
161elif test $pkg_failed = untried; then 162elif test $pkg_failed = untried; then
162 AC_MSG_RESULT([no]) 163 ifelse([$4], , [AC_MSG_FAILURE(dnl
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/>.])[]dnl 170To get pkg-config, see <http://pkg-config.freedesktop.org/>.])],
171 ]) 171 [$4])
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 $3 176 ifelse([$3], , :, [$3])
177fi[]dnl 177fi[]dnl
178])# PKG_CHECK_MODULES 178])# PKG_CHECK_MODULES
179 179
diff --git a/libraries/ecore/autogen.sh b/libraries/ecore/autogen.sh
index 2a59cac..81e1956 100755
--- a/libraries/ecore/autogen.sh
+++ b/libraries/ecore/autogen.sh
@@ -20,6 +20,7 @@ echo "OLD_CFLAGS=\"$CFLAGS\"" >> config.cache-env.tmp
20echo "OLD_PATH=\"$PATH\"" >> config.cache-env.tmp 20echo "OLD_PATH=\"$PATH\"" >> config.cache-env.tmp
21echo "OLD_PKG_CONFIG_PATH=\"$PKG_CONFIG_PATH\"" >> config.cache-env.tmp 21echo "OLD_PKG_CONFIG_PATH=\"$PKG_CONFIG_PATH\"" >> config.cache-env.tmp
22echo "OLD_LDFLAGS=\"$LDFLAGS\"" >> config.cache-env.tmp 22echo "OLD_LDFLAGS=\"$LDFLAGS\"" >> config.cache-env.tmp
23echo "OLD_CXXFLAGS=\"$CXXFLAGS\"" >> config.cache-env.tmp
23 24
24cmp config.cache-env.tmp config.cache-env >> /dev/null 25cmp config.cache-env.tmp config.cache-env >> /dev/null
25if [ $? -ne 0 ]; then 26if [ $? -ne 0 ]; then
diff --git a/libraries/ecore/config.h.in b/libraries/ecore/config.h.in
index d4308f6..06c1d8e 100644
--- a/libraries/ecore/config.h.in
+++ b/libraries/ecore/config.h.in
@@ -90,6 +90,12 @@
90/* Evas Software Xlib Engine Support */ 90/* Evas Software Xlib Engine Support */
91#undef BUILD_ECORE_EVAS_SOFTWARE_XLIB 91#undef BUILD_ECORE_EVAS_SOFTWARE_XLIB
92 92
93/* Support for Wayland Egl Engine in Ecore_Evas */
94#undef BUILD_ECORE_EVAS_WAYLAND_EGL
95
96/* Support for Wayland Shm Engine in Ecore_Evas */
97#undef BUILD_ECORE_EVAS_WAYLAND_SHM
98
93/* Support for Win32 Engine in Ecore_Evas */ 99/* Support for Win32 Engine in Ecore_Evas */
94#undef BUILD_ECORE_EVAS_WIN32 100#undef BUILD_ECORE_EVAS_WIN32
95 101
@@ -108,6 +114,9 @@
108/* Build Ecore_Imf_Evas Module */ 114/* Build Ecore_Imf_Evas Module */
109#undef BUILD_ECORE_IMF_EVAS 115#undef BUILD_ECORE_IMF_EVAS
110 116
117/* Build Ecore_Imf_SCIM Module */
118#undef BUILD_ECORE_IMF_SCIM
119
111/* Build Ecore_Imf_XIM Module */ 120/* Build Ecore_Imf_XIM Module */
112#undef BUILD_ECORE_IMF_XIM 121#undef BUILD_ECORE_IMF_XIM
113 122
@@ -126,6 +135,9 @@
126/* Build Ecore_Sdl Module */ 135/* Build Ecore_Sdl Module */
127#undef BUILD_ECORE_SDL 136#undef BUILD_ECORE_SDL
128 137
138/* Build Ecore_Wayland Module */
139#undef BUILD_ECORE_WAYLAND
140
129/* Build Ecore_Win32 Module */ 141/* Build Ecore_Win32 Module */
130#undef BUILD_ECORE_WIN32 142#undef BUILD_ECORE_WIN32
131 143
@@ -379,6 +391,9 @@
379/* Define to 1 if you have the <netinet/tcp.h> header file. */ 391/* Define to 1 if you have the <netinet/tcp.h> header file. */
380#undef HAVE_NETINET_TCP_H 392#undef HAVE_NETINET_TCP_H
381 393
394/* Define to 1 if you have the <net/if.h> header file. */
395#undef HAVE_NET_IF_H
396
382/* File monitoring with Windows notification */ 397/* File monitoring with Windows notification */
383#undef HAVE_NOTIFY_WIN32 398#undef HAVE_NOTIFY_WIN32
384 399
diff --git a/libraries/ecore/configure b/libraries/ecore/configure
index 6ac7715..2ea7dd2 100755
--- a/libraries/ecore/configure
+++ b/libraries/ecore/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.67 for ecore 1.1.0. 3# Generated by GNU Autoconf 2.65 for ecore 1.1.99.67344.
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, 2010 Free Software 9# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
10# Foundation, Inc. 10# 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 STATUS ERROR [LINENO LOG_FD] 362# as_fn_error 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=$1; test $as_status -eq 0 && as_status=1 369 as_status=$?; test $as_status -eq 0 && as_status=1
370 if test "$4"; then 370 if test "$3"; then
371 as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 371 as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
372 $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 372 $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
373 fi 373 fi
374 $as_echo "$as_me: error: $2" >&2 374 $as_echo "$as_me: error: $1" >&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, old GNU/Linux) returns a bogus exit status, 685# hostname on some systems (SVR3.2, 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='ecore' 702PACKAGE_NAME='ecore'
703PACKAGE_TARNAME='ecore' 703PACKAGE_TARNAME='ecore'
704PACKAGE_VERSION='1.1.0' 704PACKAGE_VERSION='1.1.99.67344'
705PACKAGE_STRING='ecore 1.1.0' 705PACKAGE_STRING='ecore 1.1.99.67344'
706PACKAGE_BUGREPORT='enlightenment-devel@lists.sourceforge.net' 706PACKAGE_BUGREPORT='enlightenment-devel@lists.sourceforge.net'
707PACKAGE_URL='' 707PACKAGE_URL=''
708 708
@@ -748,6 +748,8 @@ ac_subst_vars='am__EXEEXT_FALSE
748am__EXEEXT_TRUE 748am__EXEEXT_TRUE
749LTLIBOBJS 749LTLIBOBJS
750LIBOBJS 750LIBOBJS
751requirements_ecore_wayland
752requirements_ecore_imf_scim
751requirements_ecore_imf_xim 753requirements_ecore_imf_xim
752requirements_ecore_wince 754requirements_ecore_wince
753requirements_ecore_win32 755requirements_ecore_win32
@@ -770,6 +772,14 @@ EFL_INSTALL_EXAMPLES_FALSE
770EFL_INSTALL_EXAMPLES_TRUE 772EFL_INSTALL_EXAMPLES_TRUE
771EFL_BUILD_EXAMPLES_FALSE 773EFL_BUILD_EXAMPLES_FALSE
772EFL_BUILD_EXAMPLES_TRUE 774EFL_BUILD_EXAMPLES_TRUE
775WAYLAND_EGL_LIBS
776WAYLAND_EGL_CFLAGS
777ecore_wayland_libs
778ecore_wayland_cflags
779BUILD_ECORE_WAYLAND_FALSE
780BUILD_ECORE_WAYLAND_TRUE
781WAYLAND_LIBS
782WAYLAND_CFLAGS
773XCB_X11_LIBS 783XCB_X11_LIBS
774XCB_X11_CFLAGS 784XCB_X11_CFLAGS
775ecore_evas_libs 785ecore_evas_libs
@@ -810,6 +820,12 @@ ecore_x_libs
810ecore_x_cflags 820ecore_x_cflags
811BUILD_ECORE_X_FALSE 821BUILD_ECORE_X_FALSE
812BUILD_ECORE_X_TRUE 822BUILD_ECORE_X_TRUE
823ecore_imf_scim_libs
824ecore_imf_scim_cflags
825BUILD_ECORE_IMF_SCIM_FALSE
826BUILD_ECORE_IMF_SCIM_TRUE
827SCIM_LIBS
828SCIM_CFLAGS
813ecore_imf_xim_libs 829ecore_imf_xim_libs
814ecore_imf_xim_cflags 830ecore_imf_xim_cflags
815BUILD_ECORE_IMF_XIM_FALSE 831BUILD_ECORE_IMF_XIM_FALSE
@@ -1002,8 +1018,6 @@ EFL_ENABLE_TESTS_FALSE
1002EFL_ENABLE_TESTS_TRUE 1018EFL_ENABLE_TESTS_TRUE
1003CHECK_LIBS 1019CHECK_LIBS
1004CHECK_CFLAGS 1020CHECK_CFLAGS
1005PKG_CONFIG_LIBDIR
1006PKG_CONFIG_PATH
1007PKG_CONFIG 1021PKG_CONFIG
1008HAVE_PO_FALSE 1022HAVE_PO_FALSE
1009HAVE_PO_TRUE 1023HAVE_PO_TRUE
@@ -1208,6 +1222,7 @@ enable_ecore_imf_evas
1208enable_ecore_input 1222enable_ecore_input
1209enable_ecore_input_evas 1223enable_ecore_input_evas
1210enable_ecore_imf_xim 1224enable_ecore_imf_xim
1225enable_ecore_imf_scim
1211enable_ecore_x 1226enable_ecore_x
1212enable_ecore_win32 1227enable_ecore_win32
1213enable_ecore_cocoa 1228enable_ecore_cocoa
@@ -1236,6 +1251,9 @@ enable_ecore_evas_fb
1236enable_ecore_evas_software_16_wince 1251enable_ecore_evas_software_16_wince
1237enable_ecore_evas_ews 1252enable_ecore_evas_ews
1238enable_ecore_evas_psl1ght 1253enable_ecore_evas_psl1ght
1254enable_ecore_wayland
1255enable_ecore_evas_wayland_shm
1256enable_ecore_evas_wayland_egl
1239enable_build_examples 1257enable_build_examples
1240enable_install_examples 1258enable_install_examples
1241' 1259'
@@ -1249,8 +1267,6 @@ LIBS
1249CPPFLAGS 1267CPPFLAGS
1250CPP 1268CPP
1251PKG_CONFIG 1269PKG_CONFIG
1252PKG_CONFIG_PATH
1253PKG_CONFIG_LIBDIR
1254CHECK_CFLAGS 1270CHECK_CFLAGS
1255CHECK_LIBS 1271CHECK_LIBS
1256OBJC 1272OBJC
@@ -1318,10 +1334,16 @@ SSL_CFLAGS
1318SSL_LIBS 1334SSL_LIBS
1319CARES_CFLAGS 1335CARES_CFLAGS
1320CARES_LIBS 1336CARES_LIBS
1337SCIM_CFLAGS
1338SCIM_LIBS
1321TSLIB_CFLAGS 1339TSLIB_CFLAGS
1322TSLIB_LIBS 1340TSLIB_LIBS
1323XCB_X11_CFLAGS 1341XCB_X11_CFLAGS
1324XCB_X11_LIBS' 1342XCB_X11_LIBS
1343WAYLAND_CFLAGS
1344WAYLAND_LIBS
1345WAYLAND_EGL_CFLAGS
1346WAYLAND_EGL_LIBS'
1325 1347
1326 1348
1327# Initialize some variables set by options. 1349# Initialize some variables set by options.
@@ -1384,9 +1406,8 @@ do
1384 fi 1406 fi
1385 1407
1386 case $ac_option in 1408 case $ac_option in
1387 *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; 1409 *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
1388 *=) ac_optarg= ;; 1410 *) ac_optarg=yes ;;
1389 *) ac_optarg=yes ;;
1390 esac 1411 esac
1391 1412
1392 # Accept the important Cygnus configure options, so we can diagnose typos. 1413 # Accept the important Cygnus configure options, so we can diagnose typos.
@@ -1431,7 +1452,7 @@ do
1431 ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` 1452 ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
1432 # Reject names that are not valid shell variable names. 1453 # Reject names that are not valid shell variable names.
1433 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && 1454 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
1434 as_fn_error $? "invalid feature name: $ac_useropt" 1455 as_fn_error "invalid feature name: $ac_useropt"
1435 ac_useropt_orig=$ac_useropt 1456 ac_useropt_orig=$ac_useropt
1436 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` 1457 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
1437 case $ac_user_opts in 1458 case $ac_user_opts in
@@ -1457,7 +1478,7 @@ do
1457 ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` 1478 ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
1458 # Reject names that are not valid shell variable names. 1479 # Reject names that are not valid shell variable names.
1459 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && 1480 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
1460 as_fn_error $? "invalid feature name: $ac_useropt" 1481 as_fn_error "invalid feature name: $ac_useropt"
1461 ac_useropt_orig=$ac_useropt 1482 ac_useropt_orig=$ac_useropt
1462 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` 1483 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
1463 case $ac_user_opts in 1484 case $ac_user_opts in
@@ -1661,7 +1682,7 @@ do
1661 ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` 1682 ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
1662 # Reject names that are not valid shell variable names. 1683 # Reject names that are not valid shell variable names.
1663 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && 1684 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
1664 as_fn_error $? "invalid package name: $ac_useropt" 1685 as_fn_error "invalid package name: $ac_useropt"
1665 ac_useropt_orig=$ac_useropt 1686 ac_useropt_orig=$ac_useropt
1666 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` 1687 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
1667 case $ac_user_opts in 1688 case $ac_user_opts in
@@ -1677,7 +1698,7 @@ do
1677 ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` 1698 ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
1678 # Reject names that are not valid shell variable names. 1699 # Reject names that are not valid shell variable names.
1679 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && 1700 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
1680 as_fn_error $? "invalid package name: $ac_useropt" 1701 as_fn_error "invalid package name: $ac_useropt"
1681 ac_useropt_orig=$ac_useropt 1702 ac_useropt_orig=$ac_useropt
1682 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` 1703 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
1683 case $ac_user_opts in 1704 case $ac_user_opts in
@@ -1707,8 +1728,8 @@ do
1707 | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) 1728 | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
1708 x_libraries=$ac_optarg ;; 1729 x_libraries=$ac_optarg ;;
1709 1730
1710 -*) as_fn_error $? "unrecognized option: \`$ac_option' 1731 -*) as_fn_error "unrecognized option: \`$ac_option'
1711Try \`$0 --help' for more information" 1732Try \`$0 --help' for more information."
1712 ;; 1733 ;;
1713 1734
1714 *=*) 1735 *=*)
@@ -1716,7 +1737,7 @@ Try \`$0 --help' for more information"
1716 # Reject names that are not valid shell variable names. 1737 # Reject names that are not valid shell variable names.
1717 case $ac_envvar in #( 1738 case $ac_envvar in #(
1718 '' | [0-9]* | *[!_$as_cr_alnum]* ) 1739 '' | [0-9]* | *[!_$as_cr_alnum]* )
1719 as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; 1740 as_fn_error "invalid variable name: \`$ac_envvar'" ;;
1720 esac 1741 esac
1721 eval $ac_envvar=\$ac_optarg 1742 eval $ac_envvar=\$ac_optarg
1722 export $ac_envvar ;; 1743 export $ac_envvar ;;
@@ -1734,13 +1755,13 @@ done
1734 1755
1735if test -n "$ac_prev"; then 1756if test -n "$ac_prev"; then
1736 ac_option=--`echo $ac_prev | sed 's/_/-/g'` 1757 ac_option=--`echo $ac_prev | sed 's/_/-/g'`
1737 as_fn_error $? "missing argument to $ac_option" 1758 as_fn_error "missing argument to $ac_option"
1738fi 1759fi
1739 1760
1740if test -n "$ac_unrecognized_opts"; then 1761if test -n "$ac_unrecognized_opts"; then
1741 case $enable_option_checking in 1762 case $enable_option_checking in
1742 no) ;; 1763 no) ;;
1743 fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; 1764 fatal) as_fn_error "unrecognized options: $ac_unrecognized_opts" ;;
1744 *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; 1765 *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
1745 esac 1766 esac
1746fi 1767fi
@@ -1763,7 +1784,7 @@ do
1763 [\\/$]* | ?:[\\/]* ) continue;; 1784 [\\/$]* | ?:[\\/]* ) continue;;
1764 NONE | '' ) case $ac_var in *prefix ) continue;; esac;; 1785 NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
1765 esac 1786 esac
1766 as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" 1787 as_fn_error "expected an absolute directory name for --$ac_var: $ac_val"
1767done 1788done
1768 1789
1769# There might be people who depend on the old broken behavior: `$host' 1790# There might be people who depend on the old broken behavior: `$host'
@@ -1777,8 +1798,8 @@ target=$target_alias
1777if test "x$host_alias" != x; then 1798if test "x$host_alias" != x; then
1778 if test "x$build_alias" = x; then 1799 if test "x$build_alias" = x; then
1779 cross_compiling=maybe 1800 cross_compiling=maybe
1780 $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host. 1801 $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
1781 If a cross compiler is detected then cross compile mode will be used" >&2 1802 If a cross compiler is detected then cross compile mode will be used." >&2
1782 elif test "x$build_alias" != "x$host_alias"; then 1803 elif test "x$build_alias" != "x$host_alias"; then
1783 cross_compiling=yes 1804 cross_compiling=yes
1784 fi 1805 fi
@@ -1793,9 +1814,9 @@ test "$silent" = yes && exec 6>/dev/null
1793ac_pwd=`pwd` && test -n "$ac_pwd" && 1814ac_pwd=`pwd` && test -n "$ac_pwd" &&
1794ac_ls_di=`ls -di .` && 1815ac_ls_di=`ls -di .` &&
1795ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || 1816ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
1796 as_fn_error $? "working directory cannot be determined" 1817 as_fn_error "working directory cannot be determined"
1797test "X$ac_ls_di" = "X$ac_pwd_ls_di" || 1818test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
1798 as_fn_error $? "pwd does not report name of working directory" 1819 as_fn_error "pwd does not report name of working directory"
1799 1820
1800 1821
1801# Find the source files, if location was not specified. 1822# Find the source files, if location was not specified.
@@ -1834,11 +1855,11 @@ else
1834fi 1855fi
1835if test ! -r "$srcdir/$ac_unique_file"; then 1856if test ! -r "$srcdir/$ac_unique_file"; then
1836 test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." 1857 test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
1837 as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" 1858 as_fn_error "cannot find sources ($ac_unique_file) in $srcdir"
1838fi 1859fi
1839ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" 1860ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
1840ac_abs_confdir=`( 1861ac_abs_confdir=`(
1841 cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" 1862 cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error "$ac_msg"
1842 pwd)` 1863 pwd)`
1843# When building in place, set srcdir=. 1864# When building in place, set srcdir=.
1844if test "$ac_abs_confdir" = "$ac_pwd"; then 1865if test "$ac_abs_confdir" = "$ac_pwd"; then
@@ -1864,7 +1885,7 @@ if test "$ac_init_help" = "long"; then
1864 # Omit some internal or obsolete options to make the list less imposing. 1885 # Omit some internal or obsolete options to make the list less imposing.
1865 # This message is too long to be a string in the A/UX 3.1 sh. 1886 # This message is too long to be a string in the A/UX 3.1 sh.
1866 cat <<_ACEOF 1887 cat <<_ACEOF
1867\`configure' configures ecore 1.1.0 to adapt to many kinds of systems. 1888\`configure' configures ecore 1.1.99.67344 to adapt to many kinds of systems.
1868 1889
1869Usage: $0 [OPTION]... [VAR=VALUE]... 1890Usage: $0 [OPTION]... [VAR=VALUE]...
1870 1891
@@ -1878,7 +1899,7 @@ Configuration:
1878 --help=short display options specific to this package 1899 --help=short display options specific to this package
1879 --help=recursive display the short help of all the included packages 1900 --help=recursive display the short help of all the included packages
1880 -V, --version display version information and exit 1901 -V, --version display version information and exit
1881 -q, --quiet, --silent do not print \`checking ...' messages 1902 -q, --quiet, --silent do not print \`checking...' messages
1882 --cache-file=FILE cache test results in FILE [disabled] 1903 --cache-file=FILE cache test results in FILE [disabled]
1883 -C, --config-cache alias for \`--cache-file=config.cache' 1904 -C, --config-cache alias for \`--cache-file=config.cache'
1884 -n, --no-create do not create output files 1905 -n, --no-create do not create output files
@@ -1938,7 +1959,7 @@ fi
1938 1959
1939if test -n "$ac_init_help"; then 1960if test -n "$ac_init_help"; then
1940 case $ac_init_help in 1961 case $ac_init_help in
1941 short | recursive ) echo "Configuration of ecore 1.1.0:";; 1962 short | recursive ) echo "Configuration of ecore 1.1.99.67344:";;
1942 esac 1963 esac
1943 cat <<\_ACEOF 1964 cat <<\_ACEOF
1944 1965
@@ -2042,6 +2063,7 @@ Optional Features:
2042 --enable-ecore-input-evas 2063 --enable-ecore-input-evas
2043 enable the ecore_input_evas module 2064 enable the ecore_input_evas module
2044 --enable-ecore-imf-xim enable the ecore_imf_xim module 2065 --enable-ecore-imf-xim enable the ecore_imf_xim module
2066 --enable-ecore-imf-scim enable the ecore_imf_scim module
2045 --enable-ecore-x enable the ecore_x module 2067 --enable-ecore-x enable the ecore_x module
2046 --enable-ecore-win32 enable the ecore_win32 module 2068 --enable-ecore-win32 enable the ecore_win32 module
2047 --enable-ecore-cocoa enable the ecore_cocoa module 2069 --enable-ecore-cocoa enable the ecore_cocoa module
@@ -2099,6 +2121,11 @@ Optional Features:
2099 support in the ecore_evas module. 2121 support in the ecore_evas module.
2100 --enable-ecore-evas-psl1ght 2122 --enable-ecore-evas-psl1ght
2101 enable PSL1GHT support in the ecore_evas module. 2123 enable PSL1GHT support in the ecore_evas module.
2124 --enable-ecore-wayland enable the ecore_wayland module
2125 --enable-ecore-evas-wayland-shm
2126 enable Wayland Shm support in the ecore_evas module.
2127 --enable-ecore-evas-wayland-egl
2128 enable Wayland Egl support in the ecore_evas module.
2102 --enable-build-examples enable building examples [default=disabled] 2129 --enable-build-examples enable building examples [default=disabled]
2103 --enable-install-examples 2130 --enable-install-examples
2104 enable installing example source files 2131 enable installing example source files
@@ -2138,10 +2165,6 @@ Some influential environment variables:
2138 you have headers in a nonstandard directory <include dir> 2165 you have headers in a nonstandard directory <include dir>
2139 CPP C preprocessor 2166 CPP C preprocessor
2140 PKG_CONFIG path to pkg-config utility 2167 PKG_CONFIG path to pkg-config utility
2141 PKG_CONFIG_PATH
2142 directories to add to pkg-config's search path
2143 PKG_CONFIG_LIBDIR
2144 path overriding pkg-config's built-in search path
2145 CHECK_CFLAGS 2168 CHECK_CFLAGS
2146 C compiler flags for CHECK, overriding pkg-config 2169 C compiler flags for CHECK, overriding pkg-config
2147 CHECK_LIBS linker flags for CHECK, overriding pkg-config 2170 CHECK_LIBS linker flags for CHECK, overriding pkg-config
@@ -2246,6 +2269,8 @@ Some influential environment variables:
2246 CARES_CFLAGS 2269 CARES_CFLAGS
2247 C compiler flags for CARES, overriding pkg-config 2270 C compiler flags for CARES, overriding pkg-config
2248 CARES_LIBS linker flags for CARES, overriding pkg-config 2271 CARES_LIBS linker flags for CARES, overriding pkg-config
2272 SCIM_CFLAGS C compiler flags for SCIM, overriding pkg-config
2273 SCIM_LIBS linker flags for SCIM, overriding pkg-config
2249 TSLIB_CFLAGS 2274 TSLIB_CFLAGS
2250 C compiler flags for TSLIB, overriding pkg-config 2275 C compiler flags for TSLIB, overriding pkg-config
2251 TSLIB_LIBS linker flags for TSLIB, overriding pkg-config 2276 TSLIB_LIBS linker flags for TSLIB, overriding pkg-config
@@ -2253,6 +2278,14 @@ Some influential environment variables:
2253 C compiler flags for XCB_X11, overriding pkg-config 2278 C compiler flags for XCB_X11, overriding pkg-config
2254 XCB_X11_LIBS 2279 XCB_X11_LIBS
2255 linker flags for XCB_X11, overriding pkg-config 2280 linker flags for XCB_X11, overriding pkg-config
2281 WAYLAND_CFLAGS
2282 C compiler flags for WAYLAND, overriding pkg-config
2283 WAYLAND_LIBS
2284 linker flags for WAYLAND, overriding pkg-config
2285 WAYLAND_EGL_CFLAGS
2286 C compiler flags for WAYLAND_EGL, overriding pkg-config
2287 WAYLAND_EGL_LIBS
2288 linker flags for WAYLAND_EGL, overriding pkg-config
2256 2289
2257Use these variables to override the choices made by `configure' or to help 2290Use these variables to override the choices made by `configure' or to help
2258it to find libraries and programs with nonstandard names/locations. 2291it to find libraries and programs with nonstandard names/locations.
@@ -2320,10 +2353,10 @@ fi
2320test -n "$ac_init_help" && exit $ac_status 2353test -n "$ac_init_help" && exit $ac_status
2321if $ac_init_version; then 2354if $ac_init_version; then
2322 cat <<\_ACEOF 2355 cat <<\_ACEOF
2323ecore configure 1.1.0 2356ecore configure 1.1.99.67344
2324generated by GNU Autoconf 2.67 2357generated by GNU Autoconf 2.65
2325 2358
2326Copyright (C) 2010 Free Software Foundation, Inc. 2359Copyright (C) 2009 Free Software Foundation, Inc.
2327This configure script is free software; the Free Software Foundation 2360This configure script is free software; the Free Software Foundation
2328gives unlimited permission to copy, distribute and modify it. 2361gives unlimited permission to copy, distribute and modify it.
2329_ACEOF 2362_ACEOF
@@ -2393,7 +2426,7 @@ $as_echo "$ac_try_echo"; } >&5
2393 mv -f conftest.er1 conftest.err 2426 mv -f conftest.er1 conftest.err
2394 fi 2427 fi
2395 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 2428 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
2396 test $ac_status = 0; } > conftest.i && { 2429 test $ac_status = 0; } >/dev/null && {
2397 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || 2430 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
2398 test ! -s conftest.err 2431 test ! -s conftest.err
2399 }; then : 2432 }; then :
@@ -2417,10 +2450,10 @@ fi
2417ac_fn_c_check_header_mongrel () 2450ac_fn_c_check_header_mongrel ()
2418{ 2451{
2419 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 2452 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
2420 if eval "test \"\${$3+set}\"" = set; then : 2453 if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
2421 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 2454 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
2422$as_echo_n "checking for $2... " >&6; } 2455$as_echo_n "checking for $2... " >&6; }
2423if eval "test \"\${$3+set}\"" = set; then : 2456if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
2424 $as_echo_n "(cached) " >&6 2457 $as_echo_n "(cached) " >&6
2425fi 2458fi
2426eval ac_res=\$$3 2459eval ac_res=\$$3
@@ -2456,7 +2489,7 @@ if ac_fn_c_try_cpp "$LINENO"; then :
2456else 2489else
2457 ac_header_preproc=no 2490 ac_header_preproc=no
2458fi 2491fi
2459rm -f conftest.err conftest.i conftest.$ac_ext 2492rm -f conftest.err conftest.$ac_ext
2460{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 2493{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
2461$as_echo "$ac_header_preproc" >&6; } 2494$as_echo "$ac_header_preproc" >&6; }
2462 2495
@@ -2479,15 +2512,17 @@ $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
2479$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} 2512$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;}
2480 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 2513 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
2481$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} 2514$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
2482( $as_echo "## -------------------------------------------------------- ## 2515( cat <<\_ASBOX
2516## -------------------------------------------------------- ##
2483## Report this to enlightenment-devel@lists.sourceforge.net ## 2517## Report this to enlightenment-devel@lists.sourceforge.net ##
2484## -------------------------------------------------------- ##" 2518## -------------------------------------------------------- ##
2519_ASBOX
2485 ) | sed "s/^/$as_me: WARNING: /" >&2 2520 ) | sed "s/^/$as_me: WARNING: /" >&2
2486 ;; 2521 ;;
2487esac 2522esac
2488 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 2523 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
2489$as_echo_n "checking for $2... " >&6; } 2524$as_echo_n "checking for $2... " >&6; }
2490if eval "test \"\${$3+set}\"" = set; then : 2525if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
2491 $as_echo_n "(cached) " >&6 2526 $as_echo_n "(cached) " >&6
2492else 2527else
2493 eval "$3=\$ac_header_compiler" 2528 eval "$3=\$ac_header_compiler"
@@ -2551,7 +2586,7 @@ ac_fn_c_check_header_compile ()
2551 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 2586 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
2552 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 2587 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
2553$as_echo_n "checking for $2... " >&6; } 2588$as_echo_n "checking for $2... " >&6; }
2554if eval "test \"\${$3+set}\"" = set; then : 2589if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
2555 $as_echo_n "(cached) " >&6 2590 $as_echo_n "(cached) " >&6
2556else 2591else
2557 cat confdefs.h - <<_ACEOF >conftest.$ac_ext 2592 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -2627,7 +2662,7 @@ ac_fn_c_check_func ()
2627 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 2662 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
2628 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 2663 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
2629$as_echo_n "checking for $2... " >&6; } 2664$as_echo_n "checking for $2... " >&6; }
2630if eval "test \"\${$3+set}\"" = set; then : 2665if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
2631 $as_echo_n "(cached) " >&6 2666 $as_echo_n "(cached) " >&6
2632else 2667else
2633 cat confdefs.h - <<_ACEOF >conftest.$ac_ext 2668 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -2686,18 +2721,15 @@ $as_echo "$ac_res" >&6; }
2686 2721
2687} # ac_fn_c_check_func 2722} # ac_fn_c_check_func
2688 2723
2689# ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES 2724# ac_fn_c_check_decl LINENO SYMBOL VAR
2690# --------------------------------------------- 2725# ------------------------------------
2691# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR 2726# Tests whether SYMBOL is declared, setting cache variable VAR accordingly.
2692# accordingly.
2693ac_fn_c_check_decl () 2727ac_fn_c_check_decl ()
2694{ 2728{
2695 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 2729 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
2696 as_decl_name=`echo $2|sed 's/ *(.*//'` 2730 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $2 is declared" >&5
2697 as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'` 2731$as_echo_n "checking whether $2 is declared... " >&6; }
2698 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5 2732if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
2699$as_echo_n "checking whether $as_decl_name is declared... " >&6; }
2700if eval "test \"\${$3+set}\"" = set; then :
2701 $as_echo_n "(cached) " >&6 2733 $as_echo_n "(cached) " >&6
2702else 2734else
2703 cat confdefs.h - <<_ACEOF >conftest.$ac_ext 2735 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -2706,12 +2738,8 @@ $4
2706int 2738int
2707main () 2739main ()
2708{ 2740{
2709#ifndef $as_decl_name 2741#ifndef $2
2710#ifdef __cplusplus 2742 (void) $2;
2711 (void) $as_decl_use;
2712#else
2713 (void) $as_decl_name;
2714#endif
2715#endif 2743#endif
2716 2744
2717 ; 2745 ;
@@ -2829,7 +2857,7 @@ $as_echo "$ac_try_echo"; } >&5
2829 mv -f conftest.er1 conftest.err 2857 mv -f conftest.er1 conftest.err
2830 fi 2858 fi
2831 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 2859 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
2832 test $ac_status = 0; } > conftest.i && { 2860 test $ac_status = 0; } >/dev/null && {
2833 test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || 2861 test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
2834 test ! -s conftest.err 2862 test ! -s conftest.err
2835 }; then : 2863 }; then :
@@ -3124,7 +3152,7 @@ ac_fn_c_check_type ()
3124 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 3152 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
3125 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 3153 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
3126$as_echo_n "checking for $2... " >&6; } 3154$as_echo_n "checking for $2... " >&6; }
3127if eval "test \"\${$3+set}\"" = set; then : 3155if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
3128 $as_echo_n "(cached) " >&6 3156 $as_echo_n "(cached) " >&6
3129else 3157else
3130 eval "$3=no" 3158 eval "$3=no"
@@ -3172,8 +3200,8 @@ cat >config.log <<_ACEOF
3172This file contains any messages produced by compilers while 3200This file contains any messages produced by compilers while
3173running configure, to aid debugging if configure makes a mistake. 3201running configure, to aid debugging if configure makes a mistake.
3174 3202
3175It was created by ecore $as_me 1.1.0, which was 3203It was created by ecore $as_me 1.1.99.67344, which was
3176generated by GNU Autoconf 2.67. Invocation command line was 3204generated by GNU Autoconf 2.65. Invocation command line was
3177 3205
3178 $ $0 $@ 3206 $ $0 $@
3179 3207
@@ -3283,9 +3311,11 @@ trap 'exit_status=$?
3283 { 3311 {
3284 echo 3312 echo
3285 3313
3286 $as_echo "## ---------------- ## 3314 cat <<\_ASBOX
3315## ---------------- ##
3287## Cache variables. ## 3316## Cache variables. ##
3288## ---------------- ##" 3317## ---------------- ##
3318_ASBOX
3289 echo 3319 echo
3290 # The following way of writing the cache mishandles newlines in values, 3320 # The following way of writing the cache mishandles newlines in values,
3291( 3321(
@@ -3319,9 +3349,11 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
3319) 3349)
3320 echo 3350 echo
3321 3351
3322 $as_echo "## ----------------- ## 3352 cat <<\_ASBOX
3353## ----------------- ##
3323## Output variables. ## 3354## Output variables. ##
3324## ----------------- ##" 3355## ----------------- ##
3356_ASBOX
3325 echo 3357 echo
3326 for ac_var in $ac_subst_vars 3358 for ac_var in $ac_subst_vars
3327 do 3359 do
@@ -3334,9 +3366,11 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
3334 echo 3366 echo
3335 3367
3336 if test -n "$ac_subst_files"; then 3368 if test -n "$ac_subst_files"; then
3337 $as_echo "## ------------------- ## 3369 cat <<\_ASBOX
3370## ------------------- ##
3338## File substitutions. ## 3371## File substitutions. ##
3339## ------------------- ##" 3372## ------------------- ##
3373_ASBOX
3340 echo 3374 echo
3341 for ac_var in $ac_subst_files 3375 for ac_var in $ac_subst_files
3342 do 3376 do
@@ -3350,9 +3384,11 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
3350 fi 3384 fi
3351 3385
3352 if test -s confdefs.h; then 3386 if test -s confdefs.h; then
3353 $as_echo "## ----------- ## 3387 cat <<\_ASBOX
3388## ----------- ##
3354## confdefs.h. ## 3389## confdefs.h. ##
3355## ----------- ##" 3390## ----------- ##
3391_ASBOX
3356 echo 3392 echo
3357 cat confdefs.h 3393 cat confdefs.h
3358 echo 3394 echo
@@ -3407,12 +3443,7 @@ _ACEOF
3407ac_site_file1=NONE 3443ac_site_file1=NONE
3408ac_site_file2=NONE 3444ac_site_file2=NONE
3409if test -n "$CONFIG_SITE"; then 3445if test -n "$CONFIG_SITE"; then
3410 # We do not want a PATH search for config.site. 3446 ac_site_file1=$CONFIG_SITE
3411 case $CONFIG_SITE in #((
3412 -*) ac_site_file1=./$CONFIG_SITE;;
3413 */*) ac_site_file1=$CONFIG_SITE;;
3414 *) ac_site_file1=./$CONFIG_SITE;;
3415 esac
3416elif test "x$prefix" != xNONE; then 3447elif test "x$prefix" != xNONE; then
3417 ac_site_file1=$prefix/share/config.site 3448 ac_site_file1=$prefix/share/config.site
3418 ac_site_file2=$prefix/etc/config.site 3449 ac_site_file2=$prefix/etc/config.site
@@ -3427,11 +3458,7 @@ do
3427 { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 3458 { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
3428$as_echo "$as_me: loading site script $ac_site_file" >&6;} 3459$as_echo "$as_me: loading site script $ac_site_file" >&6;}
3429 sed 's/^/| /' "$ac_site_file" >&5 3460 sed 's/^/| /' "$ac_site_file" >&5
3430 . "$ac_site_file" \ 3461 . "$ac_site_file"
3431 || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
3432$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
3433as_fn_error $? "failed to load site script $ac_site_file
3434See \`config.log' for more details" "$LINENO" 5 ; }
3435 fi 3462 fi
3436done 3463done
3437 3464
@@ -3508,7 +3535,7 @@ if $ac_cache_corrupted; then
3508$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 3535$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
3509 { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 3536 { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
3510$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} 3537$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
3511 as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 3538 as_fn_error "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
3512fi 3539fi
3513## -------------------- ## 3540## -------------------- ##
3514## Main body of script. ## 3541## Main body of script. ##
@@ -3534,22 +3561,16 @@ am__api_version='1.11'
3534 3561
3535ac_aux_dir= 3562ac_aux_dir=
3536for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do 3563for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
3537 if test -f "$ac_dir/install-sh"; then 3564 for ac_t in install-sh install.sh shtool; do
3538 ac_aux_dir=$ac_dir 3565 if test -f "$ac_dir/$ac_t"; then
3539 ac_install_sh="$ac_aux_dir/install-sh -c" 3566 ac_aux_dir=$ac_dir
3540 break 3567 ac_install_sh="$ac_aux_dir/$ac_t -c"
3541 elif test -f "$ac_dir/install.sh"; then 3568 break 2
3542 ac_aux_dir=$ac_dir 3569 fi
3543 ac_install_sh="$ac_aux_dir/install.sh -c" 3570 done
3544 break
3545 elif test -f "$ac_dir/shtool"; then
3546 ac_aux_dir=$ac_dir
3547 ac_install_sh="$ac_aux_dir/shtool install -c"
3548 break
3549 fi
3550done 3571done
3551if test -z "$ac_aux_dir"; then 3572if test -z "$ac_aux_dir"; then
3552 as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 3573 as_fn_error "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
3553fi 3574fi
3554 3575
3555# These three variables are undocumented and unsupported, 3576# These three variables are undocumented and unsupported,
@@ -3665,11 +3686,11 @@ am_lf='
3665' 3686'
3666case `pwd` in 3687case `pwd` in
3667 *[\\\"\#\$\&\'\`$am_lf]*) 3688 *[\\\"\#\$\&\'\`$am_lf]*)
3668 as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5 ;; 3689 as_fn_error "unsafe absolute working directory name" "$LINENO" 5;;
3669esac 3690esac
3670case $srcdir in 3691case $srcdir in
3671 *[\\\"\#\$\&\'\`$am_lf\ \ ]*) 3692 *[\\\"\#\$\&\'\`$am_lf\ \ ]*)
3672 as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5 ;; 3693 as_fn_error "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;;
3673esac 3694esac
3674 3695
3675# Do `set' in a subshell so we don't clobber the current shell's 3696# Do `set' in a subshell so we don't clobber the current shell's
@@ -3691,7 +3712,7 @@ if (
3691 # if, for instance, CONFIG_SHELL is bash and it inherits a 3712 # if, for instance, CONFIG_SHELL is bash and it inherits a
3692 # broken ls alias from the environment. This has actually 3713 # broken ls alias from the environment. This has actually
3693 # happened. Such a system could not be considered "sane". 3714 # happened. Such a system could not be considered "sane".
3694 as_fn_error $? "ls -t appears to fail. Make sure there is not a broken 3715 as_fn_error "ls -t appears to fail. Make sure there is not a broken
3695alias in your environment" "$LINENO" 5 3716alias in your environment" "$LINENO" 5
3696 fi 3717 fi
3697 3718
@@ -3701,7 +3722,7 @@ then
3701 # Ok. 3722 # Ok.
3702 : 3723 :
3703else 3724else
3704 as_fn_error $? "newly created file is older than distributed files! 3725 as_fn_error "newly created file is older than distributed files!
3705Check your system clock" "$LINENO" 5 3726Check your system clock" "$LINENO" 5
3706fi 3727fi
3707{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 3728{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
@@ -3939,7 +3960,7 @@ done
3939$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } 3960$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
3940set x ${MAKE-make} 3961set x ${MAKE-make}
3941ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` 3962ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
3942if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\"" = set; then : 3963if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then :
3943 $as_echo_n "(cached) " >&6 3964 $as_echo_n "(cached) " >&6
3944else 3965else
3945 cat >conftest.make <<\_ACEOF 3966 cat >conftest.make <<\_ACEOF
@@ -3947,7 +3968,7 @@ SHELL = /bin/sh
3947all: 3968all:
3948 @echo '@@@%%%=$(MAKE)=@@@%%%' 3969 @echo '@@@%%%=$(MAKE)=@@@%%%'
3949_ACEOF 3970_ACEOF
3950# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. 3971# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
3951case `${MAKE-make} -f conftest.make 2>/dev/null` in 3972case `${MAKE-make} -f conftest.make 2>/dev/null` in
3952 *@@@%%%=?*=@@@%%%*) 3973 *@@@%%%=?*=@@@%%%*)
3953 eval ac_cv_prog_make_${ac_make}_set=yes;; 3974 eval ac_cv_prog_make_${ac_make}_set=yes;;
@@ -3981,7 +4002,7 @@ if test "`cd $srcdir && pwd`" != "`pwd`"; then
3981 am__isrc=' -I$(srcdir)' 4002 am__isrc=' -I$(srcdir)'
3982 # test to see if srcdir already configured 4003 # test to see if srcdir already configured
3983 if test -f $srcdir/config.status; then 4004 if test -f $srcdir/config.status; then
3984 as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 4005 as_fn_error "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
3985 fi 4006 fi
3986fi 4007fi
3987 4008
@@ -3997,7 +4018,7 @@ fi
3997 4018
3998# Define the identity of the package. 4019# Define the identity of the package.
3999 PACKAGE='ecore' 4020 PACKAGE='ecore'
4000 VERSION='1.1.0' 4021 VERSION='1.1.99.67344'
4001 4022
4002 4023
4003cat >>confdefs.h <<_ACEOF 4024cat >>confdefs.h <<_ACEOF
@@ -4412,8 +4433,8 @@ fi
4412 4433
4413test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 4434test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
4414$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 4435$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
4415as_fn_error $? "no acceptable C compiler found in \$PATH 4436as_fn_error "no acceptable C compiler found in \$PATH
4416See \`config.log' for more details" "$LINENO" 5 ; } 4437See \`config.log' for more details." "$LINENO" 5; }
4417 4438
4418# Provide some information about the compiler. 4439# Provide some information about the compiler.
4419$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 4440$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
@@ -4527,8 +4548,9 @@ sed 's/^/| /' conftest.$ac_ext >&5
4527 4548
4528{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 4549{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
4529$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 4550$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
4530as_fn_error 77 "C compiler cannot create executables 4551{ as_fn_set_status 77
4531See \`config.log' for more details" "$LINENO" 5 ; } 4552as_fn_error "C compiler cannot create executables
4553See \`config.log' for more details." "$LINENO" 5; }; }
4532else 4554else
4533 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 4555 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
4534$as_echo "yes" >&6; } 4556$as_echo "yes" >&6; }
@@ -4570,8 +4592,8 @@ done
4570else 4592else
4571 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 4593 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
4572$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 4594$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
4573as_fn_error $? "cannot compute suffix of executables: cannot compile and link 4595as_fn_error "cannot compute suffix of executables: cannot compile and link
4574See \`config.log' for more details" "$LINENO" 5 ; } 4596See \`config.log' for more details." "$LINENO" 5; }
4575fi 4597fi
4576rm -f conftest conftest$ac_cv_exeext 4598rm -f conftest conftest$ac_cv_exeext
4577{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 4599{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
@@ -4628,9 +4650,9 @@ $as_echo "$ac_try_echo"; } >&5
4628 else 4650 else
4629 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 4651 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
4630$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 4652$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
4631as_fn_error $? "cannot run C compiled programs. 4653as_fn_error "cannot run C compiled programs.
4632If you meant to cross compile, use \`--host'. 4654If you meant to cross compile, use \`--host'.
4633See \`config.log' for more details" "$LINENO" 5 ; } 4655See \`config.log' for more details." "$LINENO" 5; }
4634 fi 4656 fi
4635 fi 4657 fi
4636fi 4658fi
@@ -4681,8 +4703,8 @@ sed 's/^/| /' conftest.$ac_ext >&5
4681 4703
4682{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 4704{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
4683$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 4705$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
4684as_fn_error $? "cannot compute suffix of object files: cannot compile 4706as_fn_error "cannot compute suffix of object files: cannot compile
4685See \`config.log' for more details" "$LINENO" 5 ; } 4707See \`config.log' for more details." "$LINENO" 5; }
4686fi 4708fi
4687rm -f conftest.$ac_cv_objext conftest.$ac_ext 4709rm -f conftest.$ac_cv_objext conftest.$ac_ext
4688fi 4710fi
@@ -5072,7 +5094,7 @@ else
5072 # Broken: fails on valid input. 5094 # Broken: fails on valid input.
5073continue 5095continue
5074fi 5096fi
5075rm -f conftest.err conftest.i conftest.$ac_ext 5097rm -f conftest.err conftest.$ac_ext
5076 5098
5077 # OK, works on sane cases. Now check whether nonexistent headers 5099 # OK, works on sane cases. Now check whether nonexistent headers
5078 # can be detected and how. 5100 # can be detected and how.
@@ -5088,11 +5110,11 @@ else
5088ac_preproc_ok=: 5110ac_preproc_ok=:
5089break 5111break
5090fi 5112fi
5091rm -f conftest.err conftest.i conftest.$ac_ext 5113rm -f conftest.err conftest.$ac_ext
5092 5114
5093done 5115done
5094# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. 5116# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
5095rm -f conftest.i conftest.err conftest.$ac_ext 5117rm -f conftest.err conftest.$ac_ext
5096if $ac_preproc_ok; then : 5118if $ac_preproc_ok; then :
5097 break 5119 break
5098fi 5120fi
@@ -5131,7 +5153,7 @@ else
5131 # Broken: fails on valid input. 5153 # Broken: fails on valid input.
5132continue 5154continue
5133fi 5155fi
5134rm -f conftest.err conftest.i conftest.$ac_ext 5156rm -f conftest.err conftest.$ac_ext
5135 5157
5136 # OK, works on sane cases. Now check whether nonexistent headers 5158 # OK, works on sane cases. Now check whether nonexistent headers
5137 # can be detected and how. 5159 # can be detected and how.
@@ -5147,18 +5169,18 @@ else
5147ac_preproc_ok=: 5169ac_preproc_ok=:
5148break 5170break
5149fi 5171fi
5150rm -f conftest.err conftest.i conftest.$ac_ext 5172rm -f conftest.err conftest.$ac_ext
5151 5173
5152done 5174done
5153# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. 5175# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
5154rm -f conftest.i conftest.err conftest.$ac_ext 5176rm -f conftest.err conftest.$ac_ext
5155if $ac_preproc_ok; then : 5177if $ac_preproc_ok; then :
5156 5178
5157else 5179else
5158 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 5180 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
5159$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 5181$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
5160as_fn_error $? "C preprocessor \"$CPP\" fails sanity check 5182as_fn_error "C preprocessor \"$CPP\" fails sanity check
5161See \`config.log' for more details" "$LINENO" 5 ; } 5183See \`config.log' for more details." "$LINENO" 5; }
5162fi 5184fi
5163 5185
5164ac_ext=c 5186ac_ext=c
@@ -5219,7 +5241,7 @@ esac
5219 done 5241 done
5220IFS=$as_save_IFS 5242IFS=$as_save_IFS
5221 if test -z "$ac_cv_path_GREP"; then 5243 if test -z "$ac_cv_path_GREP"; then
5222 as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 5244 as_fn_error "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
5223 fi 5245 fi
5224else 5246else
5225 ac_cv_path_GREP=$GREP 5247 ac_cv_path_GREP=$GREP
@@ -5285,7 +5307,7 @@ esac
5285 done 5307 done
5286IFS=$as_save_IFS 5308IFS=$as_save_IFS
5287 if test -z "$ac_cv_path_EGREP"; then 5309 if test -z "$ac_cv_path_EGREP"; then
5288 as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 5310 as_fn_error "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
5289 fi 5311 fi
5290else 5312else
5291 ac_cv_path_EGREP=$EGREP 5313 ac_cv_path_EGREP=$EGREP
@@ -5417,7 +5439,8 @@ do :
5417 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` 5439 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
5418ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default 5440ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
5419" 5441"
5420if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : 5442eval as_val=\$$as_ac_Header
5443 if test "x$as_val" = x""yes; then :
5421 cat >>confdefs.h <<_ACEOF 5444 cat >>confdefs.h <<_ACEOF
5422#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 5445#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
5423_ACEOF 5446_ACEOF
@@ -5492,7 +5515,7 @@ $as_echo "$ac_cv_safe_to_define___extensions__" >&6; }
5492 5515
5493# Make sure we can run config.sub. 5516# Make sure we can run config.sub.
5494$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || 5517$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
5495 as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 5518 as_fn_error "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
5496 5519
5497{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 5520{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
5498$as_echo_n "checking build system type... " >&6; } 5521$as_echo_n "checking build system type... " >&6; }
@@ -5503,16 +5526,16 @@ else
5503test "x$ac_build_alias" = x && 5526test "x$ac_build_alias" = x &&
5504 ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` 5527 ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
5505test "x$ac_build_alias" = x && 5528test "x$ac_build_alias" = x &&
5506 as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 5529 as_fn_error "cannot guess build type; you must specify one" "$LINENO" 5
5507ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || 5530ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
5508 as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 5531 as_fn_error "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
5509 5532
5510fi 5533fi
5511{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 5534{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
5512$as_echo "$ac_cv_build" >&6; } 5535$as_echo "$ac_cv_build" >&6; }
5513case $ac_cv_build in 5536case $ac_cv_build in
5514*-*-*) ;; 5537*-*-*) ;;
5515*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5 ;; 5538*) as_fn_error "invalid value of canonical build" "$LINENO" 5;;
5516esac 5539esac
5517build=$ac_cv_build 5540build=$ac_cv_build
5518ac_save_IFS=$IFS; IFS='-' 5541ac_save_IFS=$IFS; IFS='-'
@@ -5537,7 +5560,7 @@ else
5537 ac_cv_host=$ac_cv_build 5560 ac_cv_host=$ac_cv_build
5538else 5561else
5539 ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || 5562 ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
5540 as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 5563 as_fn_error "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
5541fi 5564fi
5542 5565
5543fi 5566fi
@@ -5545,7 +5568,7 @@ fi
5545$as_echo "$ac_cv_host" >&6; } 5568$as_echo "$ac_cv_host" >&6; }
5546case $ac_cv_host in 5569case $ac_cv_host in
5547*-*-*) ;; 5570*-*-*) ;;
5548*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5 ;; 5571*) as_fn_error "invalid value of canonical host" "$LINENO" 5;;
5549esac 5572esac
5550host=$ac_cv_host 5573host=$ac_cv_host
5551ac_save_IFS=$IFS; IFS='-' 5574ac_save_IFS=$IFS; IFS='-'
@@ -5946,7 +5969,7 @@ esac
5946 done 5969 done
5947IFS=$as_save_IFS 5970IFS=$as_save_IFS
5948 if test -z "$ac_cv_path_SED"; then 5971 if test -z "$ac_cv_path_SED"; then
5949 as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 5972 as_fn_error "no acceptable sed could be found in \$PATH" "$LINENO" 5
5950 fi 5973 fi
5951else 5974else
5952 ac_cv_path_SED=$SED 5975 ac_cv_path_SED=$SED
@@ -6025,7 +6048,7 @@ esac
6025 done 6048 done
6026IFS=$as_save_IFS 6049IFS=$as_save_IFS
6027 if test -z "$ac_cv_path_FGREP"; then 6050 if test -z "$ac_cv_path_FGREP"; then
6028 as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 6051 as_fn_error "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
6029 fi 6052 fi
6030else 6053else
6031 ac_cv_path_FGREP=$FGREP 6054 ac_cv_path_FGREP=$FGREP
@@ -6141,7 +6164,7 @@ else
6141 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 6164 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
6142$as_echo "no" >&6; } 6165$as_echo "no" >&6; }
6143fi 6166fi
6144test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 6167test -z "$LD" && as_fn_error "no acceptable ld found in \$PATH" "$LINENO" 5
6145{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 6168{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
6146$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } 6169$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
6147if test "${lt_cv_prog_gnu_ld+set}" = set; then : 6170if test "${lt_cv_prog_gnu_ld+set}" = set; then :
@@ -6343,13 +6366,13 @@ if test "${lt_cv_nm_interface+set}" = set; then :
6343else 6366else
6344 lt_cv_nm_interface="BSD nm" 6367 lt_cv_nm_interface="BSD nm"
6345 echo "int some_variable = 0;" > conftest.$ac_ext 6368 echo "int some_variable = 0;" > conftest.$ac_ext
6346 (eval echo "\"\$as_me:6346: $ac_compile\"" >&5) 6369 (eval echo "\"\$as_me:6369: $ac_compile\"" >&5)
6347 (eval "$ac_compile" 2>conftest.err) 6370 (eval "$ac_compile" 2>conftest.err)
6348 cat conftest.err >&5 6371 cat conftest.err >&5
6349 (eval echo "\"\$as_me:6349: $NM \\\"conftest.$ac_objext\\\"\"" >&5) 6372 (eval echo "\"\$as_me:6372: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
6350 (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) 6373 (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
6351 cat conftest.err >&5 6374 cat conftest.err >&5
6352 (eval echo "\"\$as_me:6352: output\"" >&5) 6375 (eval echo "\"\$as_me:6375: output\"" >&5)
6353 cat conftest.out >&5 6376 cat conftest.out >&5
6354 if $GREP 'External.*some_variable' conftest.out > /dev/null; then 6377 if $GREP 'External.*some_variable' conftest.out > /dev/null; then
6355 lt_cv_nm_interface="MS dumpbin" 6378 lt_cv_nm_interface="MS dumpbin"
@@ -7551,7 +7574,7 @@ ia64-*-hpux*)
7551 ;; 7574 ;;
7552*-*-irix6*) 7575*-*-irix6*)
7553 # Find out which ABI we are using. 7576 # Find out which ABI we are using.
7554 echo '#line 7554 "configure"' > conftest.$ac_ext 7577 echo '#line 7577 "configure"' > conftest.$ac_ext
7555 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 7578 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
7556 (eval $ac_compile) 2>&5 7579 (eval $ac_compile) 2>&5
7557 ac_status=$? 7580 ac_status=$?
@@ -8811,11 +8834,11 @@ else
8811 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ 8834 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
8812 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ 8835 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
8813 -e 's:$: $lt_compiler_flag:'` 8836 -e 's:$: $lt_compiler_flag:'`
8814 (eval echo "\"\$as_me:8814: $lt_compile\"" >&5) 8837 (eval echo "\"\$as_me:8837: $lt_compile\"" >&5)
8815 (eval "$lt_compile" 2>conftest.err) 8838 (eval "$lt_compile" 2>conftest.err)
8816 ac_status=$? 8839 ac_status=$?
8817 cat conftest.err >&5 8840 cat conftest.err >&5
8818 echo "$as_me:8818: \$? = $ac_status" >&5 8841 echo "$as_me:8841: \$? = $ac_status" >&5
8819 if (exit $ac_status) && test -s "$ac_outfile"; then 8842 if (exit $ac_status) && test -s "$ac_outfile"; then
8820 # The compiler can only warn and ignore the option if not recognized 8843 # The compiler can only warn and ignore the option if not recognized
8821 # So say no if there are warnings other than the usual output. 8844 # So say no if there are warnings other than the usual output.
@@ -9150,11 +9173,11 @@ else
9150 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ 9173 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
9151 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ 9174 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
9152 -e 's:$: $lt_compiler_flag:'` 9175 -e 's:$: $lt_compiler_flag:'`
9153 (eval echo "\"\$as_me:9153: $lt_compile\"" >&5) 9176 (eval echo "\"\$as_me:9176: $lt_compile\"" >&5)
9154 (eval "$lt_compile" 2>conftest.err) 9177 (eval "$lt_compile" 2>conftest.err)
9155 ac_status=$? 9178 ac_status=$?
9156 cat conftest.err >&5 9179 cat conftest.err >&5
9157 echo "$as_me:9157: \$? = $ac_status" >&5 9180 echo "$as_me:9180: \$? = $ac_status" >&5
9158 if (exit $ac_status) && test -s "$ac_outfile"; then 9181 if (exit $ac_status) && test -s "$ac_outfile"; then
9159 # The compiler can only warn and ignore the option if not recognized 9182 # The compiler can only warn and ignore the option if not recognized
9160 # So say no if there are warnings other than the usual output. 9183 # So say no if there are warnings other than the usual output.
@@ -9255,11 +9278,11 @@ else
9255 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ 9278 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
9256 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ 9279 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
9257 -e 's:$: $lt_compiler_flag:'` 9280 -e 's:$: $lt_compiler_flag:'`
9258 (eval echo "\"\$as_me:9258: $lt_compile\"" >&5) 9281 (eval echo "\"\$as_me:9281: $lt_compile\"" >&5)
9259 (eval "$lt_compile" 2>out/conftest.err) 9282 (eval "$lt_compile" 2>out/conftest.err)
9260 ac_status=$? 9283 ac_status=$?
9261 cat out/conftest.err >&5 9284 cat out/conftest.err >&5
9262 echo "$as_me:9262: \$? = $ac_status" >&5 9285 echo "$as_me:9285: \$? = $ac_status" >&5
9263 if (exit $ac_status) && test -s out/conftest2.$ac_objext 9286 if (exit $ac_status) && test -s out/conftest2.$ac_objext
9264 then 9287 then
9265 # The compiler can only warn and ignore the option if not recognized 9288 # The compiler can only warn and ignore the option if not recognized
@@ -9310,11 +9333,11 @@ else
9310 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ 9333 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
9311 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ 9334 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
9312 -e 's:$: $lt_compiler_flag:'` 9335 -e 's:$: $lt_compiler_flag:'`
9313 (eval echo "\"\$as_me:9313: $lt_compile\"" >&5) 9336 (eval echo "\"\$as_me:9336: $lt_compile\"" >&5)
9314 (eval "$lt_compile" 2>out/conftest.err) 9337 (eval "$lt_compile" 2>out/conftest.err)
9315 ac_status=$? 9338 ac_status=$?
9316 cat out/conftest.err >&5 9339 cat out/conftest.err >&5
9317 echo "$as_me:9317: \$? = $ac_status" >&5 9340 echo "$as_me:9340: \$? = $ac_status" >&5
9318 if (exit $ac_status) && test -s out/conftest2.$ac_objext 9341 if (exit $ac_status) && test -s out/conftest2.$ac_objext
9319 then 9342 then
9320 # The compiler can only warn and ignore the option if not recognized 9343 # The compiler can only warn and ignore the option if not recognized
@@ -11694,7 +11717,7 @@ else
11694 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 11717 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
11695 lt_status=$lt_dlunknown 11718 lt_status=$lt_dlunknown
11696 cat > conftest.$ac_ext <<_LT_EOF 11719 cat > conftest.$ac_ext <<_LT_EOF
11697#line 11697 "configure" 11720#line 11720 "configure"
11698#include "confdefs.h" 11721#include "confdefs.h"
11699 11722
11700#if HAVE_DLFCN_H 11723#if HAVE_DLFCN_H
@@ -11790,7 +11813,7 @@ else
11790 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 11813 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
11791 lt_status=$lt_dlunknown 11814 lt_status=$lt_dlunknown
11792 cat > conftest.$ac_ext <<_LT_EOF 11815 cat > conftest.$ac_ext <<_LT_EOF
11793#line 11793 "configure" 11816#line 11816 "configure"
11794#include "confdefs.h" 11817#include "confdefs.h"
11795 11818
11796#if HAVE_DLFCN_H 11819#if HAVE_DLFCN_H
@@ -12034,15 +12057,15 @@ _ACEOF
12034 12057
12035 12058
12036cat >>confdefs.h <<_ACEOF 12059cat >>confdefs.h <<_ACEOF
12037#define VERS_MIC 0 12060#define VERS_MIC 99
12038_ACEOF 12061_ACEOF
12039 12062
12040 12063
12041cat >>confdefs.h <<_ACEOF 12064cat >>confdefs.h <<_ACEOF
12042#define VERS_REV 0 12065#define VERS_REV 67344
12043_ACEOF 12066_ACEOF
12044 12067
12045version_info="2:0:1" 12068version_info="2:99:1"
12046release_info="" 12069release_info=""
12047 12070
12048 12071
@@ -12466,7 +12489,7 @@ else
12466 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 12489 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
12467$as_echo "no" >&6; } 12490$as_echo "no" >&6; }
12468fi 12491fi
12469test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 12492test -z "$LD" && as_fn_error "no acceptable ld found in \$PATH" "$LINENO" 5
12470{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 12493{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
12471$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } 12494$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
12472if test "${acl_cv_prog_gnu_ld+set}" = set; then : 12495if test "${acl_cv_prog_gnu_ld+set}" = set; then :
@@ -13113,7 +13136,7 @@ typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
13113 13136
13114 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libc" >&5 13137 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libc" >&5
13115$as_echo_n "checking for GNU gettext in libc... " >&6; } 13138$as_echo_n "checking for GNU gettext in libc... " >&6; }
13116if eval "test \"\${$gt_func_gnugettext_libc+set}\"" = set; then : 13139if { as_var=$gt_func_gnugettext_libc; eval "test \"\${$as_var+set}\" = set"; }; then :
13117 $as_echo_n "(cached) " >&6 13140 $as_echo_n "(cached) " >&6
13118else 13141else
13119 cat confdefs.h - <<_ACEOF >conftest.$ac_ext 13142 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -13784,7 +13807,7 @@ fi
13784 13807
13785 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libintl" >&5 13808 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libintl" >&5
13786$as_echo_n "checking for GNU gettext in libintl... " >&6; } 13809$as_echo_n "checking for GNU gettext in libintl... " >&6; }
13787if eval "test \"\${$gt_func_gnugettext_libintl+set}\"" = set; then : 13810if { as_var=$gt_func_gnugettext_libintl; eval "test \"\${$as_var+set}\" = set"; }; then :
13788 $as_echo_n "(cached) " >&6 13811 $as_echo_n "(cached) " >&6
13789else 13812else
13790 gt_save_CPPFLAGS="$CPPFLAGS" 13813 gt_save_CPPFLAGS="$CPPFLAGS"
@@ -13993,7 +14016,7 @@ _ACEOF
13993 14016
13994 with_max_log_level="${withval}" 14017 with_max_log_level="${withval}"
13995 else 14018 else
13996 as_fn_error $? "--with-internal-maximum-log-level takes a decimal number, got \"${withval}\" instead." "$LINENO" 5 14019 as_fn_error "--with-internal-maximum-log-level takes a decimal number, got \"${withval}\" instead." "$LINENO" 5
13997 fi 14020 fi
13998 fi 14021 fi
13999 14022
@@ -14042,6 +14065,7 @@ want_ecore_psl1ght="no"
14042want_ecore_fb="no" 14065want_ecore_fb="no"
14043want_ecore_directfb="no" 14066want_ecore_directfb="no"
14044want_ecore_wince="no" 14067want_ecore_wince="no"
14068want_ecore_wayland="no"
14045 14069
14046# ecore_x options (both xlib and xcb) 14070# ecore_x options (both xlib and xcb)
14047want_ecore_x_composite="yes" 14071want_ecore_x_composite="yes"
@@ -14082,9 +14106,12 @@ want_ecore_evas_directfb="no"
14082want_ecore_evas_fb="no" 14106want_ecore_evas_fb="no"
14083want_ecore_evas_software_16_wince="no" 14107want_ecore_evas_software_16_wince="no"
14084want_ecore_evas_ews="yes" 14108want_ecore_evas_ews="yes"
14109want_ecore_evas_wayland_shm="no"
14110want_ecore_evas_wayland_egl="no"
14085 14111
14086# ecore_imf modules 14112# ecore_imf modules
14087want_ecore_imf_xim="no" 14113want_ecore_imf_xim="no"
14114want_ecore_imf_scim="no"
14088 14115
14089case "$host_os" in 14116case "$host_os" in
14090 mingw32ce* | cegcc*) 14117 mingw32ce* | cegcc*)
@@ -14133,6 +14160,7 @@ case "$host_os" in
14133 want_ecore_fb="yes" 14160 want_ecore_fb="yes"
14134 want_ecore_imf="yes" 14161 want_ecore_imf="yes"
14135 want_ecore_x="yes" 14162 want_ecore_x="yes"
14163 want_ecore_wayland="yes"
14136 want_ecore_evas_software_x11="yes" 14164 want_ecore_evas_software_x11="yes"
14137 want_ecore_evas_opengl_x11="yes" 14165 want_ecore_evas_opengl_x11="yes"
14138 want_ecore_evas_software_16_x11="yes" 14166 want_ecore_evas_software_16_x11="yes"
@@ -14143,7 +14171,10 @@ case "$host_os" in
14143 want_ecore_evas_gl_cocoa="no" 14171 want_ecore_evas_gl_cocoa="no"
14144 want_ecore_evas_directfb="yes" 14172 want_ecore_evas_directfb="yes"
14145 want_ecore_evas_fb="yes" 14173 want_ecore_evas_fb="yes"
14174 want_ecore_evas_wayland_shm="yes"
14175 want_ecore_evas_wayland_egl="yes"
14146 want_ecore_imf_xim="yes" 14176 want_ecore_imf_xim="yes"
14177 want_ecore_imf_scim="yes"
14147 ;; 14178 ;;
14148esac 14179esac
14149 14180
@@ -14171,6 +14202,8 @@ requirements_ecore_x=""
14171requirements_ecore_win32="" 14202requirements_ecore_win32=""
14172requirements_ecore_wince="" 14203requirements_ecore_wince=""
14173requirements_ecore_imf_xim="" 14204requirements_ecore_imf_xim=""
14205requirements_ecore_imf_scim=""
14206requirements_ecore_wayland=""
14174 14207
14175ac_fn_c_check_decl "$LINENO" "MAXHOSTNAMELEN" "ac_cv_have_decl_MAXHOSTNAMELEN" "$ac_includes_default" 14208ac_fn_c_check_decl "$LINENO" "MAXHOSTNAMELEN" "ac_cv_have_decl_MAXHOSTNAMELEN" "$ac_includes_default"
14176if test "x$ac_cv_have_decl_MAXHOSTNAMELEN" = x""yes; then : 14209if test "x$ac_cv_have_decl_MAXHOSTNAMELEN" = x""yes; then :
@@ -14257,7 +14290,7 @@ $as_echo "#define USE_G_MAIN_LOOP 1" >>confdefs.h
14257fi 14290fi
14258 14291
14259if test "x${want_glib_integration_always}" = "xyes" -a "x${want_g_main_loop}" = "xyes"; then 14292if test "x${want_glib_integration_always}" = "xyes" -a "x${want_g_main_loop}" = "xyes"; then
14260 as_fn_error $? "--enable-glib-integration-always and --enable-glib-main-loop are mutually exclusive" "$LINENO" 5 14293 as_fn_error "--enable-glib-integration-always and --enable-glib-main-loop are mutually exclusive" "$LINENO" 5
14261fi 14294fi
14262 14295
14263# local sockets (ecore_con.c) 14296# local sockets (ecore_con.c)
@@ -14335,10 +14368,6 @@ fi
14335 14368
14336 14369
14337 14370
14338
14339
14340
14341
14342if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then 14371if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
14343 if test -n "$ac_tool_prefix"; then 14372 if test -n "$ac_tool_prefix"; then
14344 # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. 14373 # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
@@ -14451,6 +14480,7 @@ $as_echo "yes" >&6; }
14451$as_echo "no" >&6; } 14480$as_echo "no" >&6; }
14452 PKG_CONFIG="" 14481 PKG_CONFIG=""
14453 fi 14482 fi
14483
14454fi 14484fi
14455 14485
14456 14486
@@ -14482,10 +14512,11 @@ pkg_failed=no
14482{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CHECK" >&5 14512{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CHECK" >&5
14483$as_echo_n "checking for CHECK... " >&6; } 14513$as_echo_n "checking for CHECK... " >&6; }
14484 14514
14485if test -n "$CHECK_CFLAGS"; then 14515if test -n "$PKG_CONFIG"; then
14486 pkg_cv_CHECK_CFLAGS="$CHECK_CFLAGS" 14516 if test -n "$CHECK_CFLAGS"; then
14487 elif test -n "$PKG_CONFIG"; then 14517 pkg_cv_CHECK_CFLAGS="$CHECK_CFLAGS"
14488 if test -n "$PKG_CONFIG" && \ 14518 else
14519 if test -n "$PKG_CONFIG" && \
14489 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"check >= 0.9.5\""; } >&5 14520 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"check >= 0.9.5\""; } >&5
14490 ($PKG_CONFIG --exists --print-errors "check >= 0.9.5") 2>&5 14521 ($PKG_CONFIG --exists --print-errors "check >= 0.9.5") 2>&5
14491 ac_status=$? 14522 ac_status=$?
@@ -14495,13 +14526,15 @@ if test -n "$CHECK_CFLAGS"; then
14495else 14526else
14496 pkg_failed=yes 14527 pkg_failed=yes
14497fi 14528fi
14498 else 14529 fi
14499 pkg_failed=untried 14530else
14531 pkg_failed=untried
14500fi 14532fi
14501if test -n "$CHECK_LIBS"; then 14533if test -n "$PKG_CONFIG"; then
14502 pkg_cv_CHECK_LIBS="$CHECK_LIBS" 14534 if test -n "$CHECK_LIBS"; then
14503 elif test -n "$PKG_CONFIG"; then 14535 pkg_cv_CHECK_LIBS="$CHECK_LIBS"
14504 if test -n "$PKG_CONFIG" && \ 14536 else
14537 if test -n "$PKG_CONFIG" && \
14505 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"check >= 0.9.5\""; } >&5 14538 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"check >= 0.9.5\""; } >&5
14506 ($PKG_CONFIG --exists --print-errors "check >= 0.9.5") 2>&5 14539 ($PKG_CONFIG --exists --print-errors "check >= 0.9.5") 2>&5
14507 ac_status=$? 14540 ac_status=$?
@@ -14511,15 +14544,14 @@ if test -n "$CHECK_LIBS"; then
14511else 14544else
14512 pkg_failed=yes 14545 pkg_failed=yes
14513fi 14546fi
14514 else 14547 fi
14515 pkg_failed=untried 14548else
14549 pkg_failed=untried
14516fi 14550fi
14517 14551
14518 14552
14519 14553
14520if test $pkg_failed = yes; then 14554if test $pkg_failed = yes; then
14521 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
14522$as_echo "no" >&6; }
14523 14555
14524if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 14556if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
14525 _pkg_short_errors_supported=yes 14557 _pkg_short_errors_supported=yes
@@ -14527,17 +14559,17 @@ else
14527 _pkg_short_errors_supported=no 14559 _pkg_short_errors_supported=no
14528fi 14560fi
14529 if test $_pkg_short_errors_supported = yes; then 14561 if test $_pkg_short_errors_supported = yes; then
14530 CHECK_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "check >= 0.9.5" 2>&1` 14562 CHECK_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "check >= 0.9.5"`
14531 else 14563 else
14532 CHECK_PKG_ERRORS=`$PKG_CONFIG --print-errors "check >= 0.9.5" 2>&1` 14564 CHECK_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "check >= 0.9.5"`
14533 fi 14565 fi
14534 # Put the nasty error message in config.log where it belongs 14566 # Put the nasty error message in config.log where it belongs
14535 echo "$CHECK_PKG_ERRORS" >&5 14567 echo "$CHECK_PKG_ERRORS" >&5
14536 14568
14537 _efl_enable_tests="no" 14569 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
14538elif test $pkg_failed = untried; then
14539 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
14540$as_echo "no" >&6; } 14570$as_echo "no" >&6; }
14571 _efl_enable_tests="no"
14572elif test $pkg_failed = untried; then
14541 _efl_enable_tests="no" 14573 _efl_enable_tests="no"
14542else 14574else
14543 CHECK_CFLAGS=$pkg_cv_CHECK_CFLAGS 14575 CHECK_CFLAGS=$pkg_cv_CHECK_CFLAGS
@@ -15891,7 +15923,7 @@ else
15891 # Broken: fails on valid input. 15923 # Broken: fails on valid input.
15892continue 15924continue
15893fi 15925fi
15894rm -f conftest.err conftest.i conftest.$ac_ext 15926rm -f conftest.err conftest.$ac_ext
15895 15927
15896 # OK, works on sane cases. Now check whether nonexistent headers 15928 # OK, works on sane cases. Now check whether nonexistent headers
15897 # can be detected and how. 15929 # can be detected and how.
@@ -15907,11 +15939,11 @@ else
15907ac_preproc_ok=: 15939ac_preproc_ok=:
15908break 15940break
15909fi 15941fi
15910rm -f conftest.err conftest.i conftest.$ac_ext 15942rm -f conftest.err conftest.$ac_ext
15911 15943
15912done 15944done
15913# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. 15945# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
15914rm -f conftest.i conftest.err conftest.$ac_ext 15946rm -f conftest.err conftest.$ac_ext
15915if $ac_preproc_ok; then : 15947if $ac_preproc_ok; then :
15916 break 15948 break
15917fi 15949fi
@@ -15950,7 +15982,7 @@ else
15950 # Broken: fails on valid input. 15982 # Broken: fails on valid input.
15951continue 15983continue
15952fi 15984fi
15953rm -f conftest.err conftest.i conftest.$ac_ext 15985rm -f conftest.err conftest.$ac_ext
15954 15986
15955 # OK, works on sane cases. Now check whether nonexistent headers 15987 # OK, works on sane cases. Now check whether nonexistent headers
15956 # can be detected and how. 15988 # can be detected and how.
@@ -15966,11 +15998,11 @@ else
15966ac_preproc_ok=: 15998ac_preproc_ok=:
15967break 15999break
15968fi 16000fi
15969rm -f conftest.err conftest.i conftest.$ac_ext 16001rm -f conftest.err conftest.$ac_ext
15970 16002
15971done 16003done
15972# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. 16004# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
15973rm -f conftest.i conftest.err conftest.$ac_ext 16005rm -f conftest.err conftest.$ac_ext
15974if $ac_preproc_ok; then : 16006if $ac_preproc_ok; then :
15975 16007
15976else 16008else
@@ -16199,7 +16231,7 @@ else
16199 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 16231 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
16200$as_echo "no" >&6; } 16232$as_echo "no" >&6; }
16201fi 16233fi
16202test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 16234test -z "$LD" && as_fn_error "no acceptable ld found in \$PATH" "$LINENO" 5
16203{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 16235{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
16204$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } 16236$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
16205if test "${lt_cv_prog_gnu_ld+set}" = set; then : 16237if test "${lt_cv_prog_gnu_ld+set}" = set; then :
@@ -17740,11 +17772,11 @@ else
17740 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ 17772 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
17741 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ 17773 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
17742 -e 's:$: $lt_compiler_flag:'` 17774 -e 's:$: $lt_compiler_flag:'`
17743 (eval echo "\"\$as_me:17743: $lt_compile\"" >&5) 17775 (eval echo "\"\$as_me:17775: $lt_compile\"" >&5)
17744 (eval "$lt_compile" 2>conftest.err) 17776 (eval "$lt_compile" 2>conftest.err)
17745 ac_status=$? 17777 ac_status=$?
17746 cat conftest.err >&5 17778 cat conftest.err >&5
17747 echo "$as_me:17747: \$? = $ac_status" >&5 17779 echo "$as_me:17779: \$? = $ac_status" >&5
17748 if (exit $ac_status) && test -s "$ac_outfile"; then 17780 if (exit $ac_status) && test -s "$ac_outfile"; then
17749 # The compiler can only warn and ignore the option if not recognized 17781 # The compiler can only warn and ignore the option if not recognized
17750 # So say no if there are warnings other than the usual output. 17782 # So say no if there are warnings other than the usual output.
@@ -17839,11 +17871,11 @@ else
17839 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ 17871 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
17840 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ 17872 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
17841 -e 's:$: $lt_compiler_flag:'` 17873 -e 's:$: $lt_compiler_flag:'`
17842 (eval echo "\"\$as_me:17842: $lt_compile\"" >&5) 17874 (eval echo "\"\$as_me:17874: $lt_compile\"" >&5)
17843 (eval "$lt_compile" 2>out/conftest.err) 17875 (eval "$lt_compile" 2>out/conftest.err)
17844 ac_status=$? 17876 ac_status=$?
17845 cat out/conftest.err >&5 17877 cat out/conftest.err >&5
17846 echo "$as_me:17846: \$? = $ac_status" >&5 17878 echo "$as_me:17878: \$? = $ac_status" >&5
17847 if (exit $ac_status) && test -s out/conftest2.$ac_objext 17879 if (exit $ac_status) && test -s out/conftest2.$ac_objext
17848 then 17880 then
17849 # The compiler can only warn and ignore the option if not recognized 17881 # The compiler can only warn and ignore the option if not recognized
@@ -17891,11 +17923,11 @@ else
17891 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ 17923 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
17892 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ 17924 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
17893 -e 's:$: $lt_compiler_flag:'` 17925 -e 's:$: $lt_compiler_flag:'`
17894 (eval echo "\"\$as_me:17894: $lt_compile\"" >&5) 17926 (eval echo "\"\$as_me:17926: $lt_compile\"" >&5)
17895 (eval "$lt_compile" 2>out/conftest.err) 17927 (eval "$lt_compile" 2>out/conftest.err)
17896 ac_status=$? 17928 ac_status=$?
17897 cat out/conftest.err >&5 17929 cat out/conftest.err >&5
17898 echo "$as_me:17898: \$? = $ac_status" >&5 17930 echo "$as_me:17930: \$? = $ac_status" >&5
17899 if (exit $ac_status) && test -s out/conftest2.$ac_objext 17931 if (exit $ac_status) && test -s out/conftest2.$ac_objext
17900 then 17932 then
17901 # The compiler can only warn and ignore the option if not recognized 17933 # The compiler can only warn and ignore the option if not recognized
@@ -19139,8 +19171,8 @@ fi
19139 19171
19140test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 19172test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
19141$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 19173$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
19142as_fn_error $? "no acceptable C compiler found in \$PATH 19174as_fn_error "no acceptable C compiler found in \$PATH
19143See \`config.log' for more details" "$LINENO" 5 ; } 19175See \`config.log' for more details." "$LINENO" 5; }
19144 19176
19145# Provide some information about the compiler. 19177# Provide some information about the compiler.
19146$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 19178$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
@@ -19766,10 +19798,6 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
19766# so we should include this here: 19798# so we should include this here:
19767 19799
19768 19800
19769
19770
19771
19772
19773if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then 19801if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
19774 if test -n "$ac_tool_prefix"; then 19802 if test -n "$ac_tool_prefix"; then
19775 # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. 19803 # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
@@ -19882,6 +19910,7 @@ $as_echo "yes" >&6; }
19882$as_echo "no" >&6; } 19910$as_echo "no" >&6; }
19883 PKG_CONFIG="" 19911 PKG_CONFIG=""
19884 fi 19912 fi
19913
19885fi 19914fi
19886 19915
19887# Check whether pkg-config supports Requires.private 19916# Check whether pkg-config supports Requires.private
@@ -19906,7 +19935,7 @@ fi
19906done 19935done
19907 19936
19908 19937
19909want_ecore_timer_dump="yes" 19938want_ecore_timer_dump="no"
19910 19939
19911# Check whether --enable-ecore-timer-dump was given. 19940# Check whether --enable-ecore-timer-dump was given.
19912if test "${enable_ecore_timer_dump+set}" = set; then : 19941if test "${enable_ecore_timer_dump+set}" = set; then :
@@ -19931,10 +19960,11 @@ pkg_failed=no
19931{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EVIL" >&5 19960{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EVIL" >&5
19932$as_echo_n "checking for EVIL... " >&6; } 19961$as_echo_n "checking for EVIL... " >&6; }
19933 19962
19934if test -n "$EVIL_CFLAGS"; then 19963if test -n "$PKG_CONFIG"; then
19935 pkg_cv_EVIL_CFLAGS="$EVIL_CFLAGS" 19964 if test -n "$EVIL_CFLAGS"; then
19936 elif test -n "$PKG_CONFIG"; then 19965 pkg_cv_EVIL_CFLAGS="$EVIL_CFLAGS"
19937 if test -n "$PKG_CONFIG" && \ 19966 else
19967 if test -n "$PKG_CONFIG" && \
19938 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evil >= 1.0.0\""; } >&5 19968 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evil >= 1.0.0\""; } >&5
19939 ($PKG_CONFIG --exists --print-errors "evil >= 1.0.0") 2>&5 19969 ($PKG_CONFIG --exists --print-errors "evil >= 1.0.0") 2>&5
19940 ac_status=$? 19970 ac_status=$?
@@ -19944,13 +19974,15 @@ if test -n "$EVIL_CFLAGS"; then
19944else 19974else
19945 pkg_failed=yes 19975 pkg_failed=yes
19946fi 19976fi
19947 else 19977 fi
19948 pkg_failed=untried 19978else
19979 pkg_failed=untried
19949fi 19980fi
19950if test -n "$EVIL_LIBS"; then 19981if test -n "$PKG_CONFIG"; then
19951 pkg_cv_EVIL_LIBS="$EVIL_LIBS" 19982 if test -n "$EVIL_LIBS"; then
19952 elif test -n "$PKG_CONFIG"; then 19983 pkg_cv_EVIL_LIBS="$EVIL_LIBS"
19953 if test -n "$PKG_CONFIG" && \ 19984 else
19985 if test -n "$PKG_CONFIG" && \
19954 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evil >= 1.0.0\""; } >&5 19986 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evil >= 1.0.0\""; } >&5
19955 ($PKG_CONFIG --exists --print-errors "evil >= 1.0.0") 2>&5 19987 ($PKG_CONFIG --exists --print-errors "evil >= 1.0.0") 2>&5
19956 ac_status=$? 19988 ac_status=$?
@@ -19960,15 +19992,14 @@ if test -n "$EVIL_LIBS"; then
19960else 19992else
19961 pkg_failed=yes 19993 pkg_failed=yes
19962fi 19994fi
19963 else 19995 fi
19964 pkg_failed=untried 19996else
19997 pkg_failed=untried
19965fi 19998fi
19966 19999
19967 20000
19968 20001
19969if test $pkg_failed = yes; then 20002if test $pkg_failed = yes; then
19970 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
19971$as_echo "no" >&6; }
19972 20003
19973if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 20004if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
19974 _pkg_short_errors_supported=yes 20005 _pkg_short_errors_supported=yes
@@ -19976,14 +20007,14 @@ else
19976 _pkg_short_errors_supported=no 20007 _pkg_short_errors_supported=no
19977fi 20008fi
19978 if test $_pkg_short_errors_supported = yes; then 20009 if test $_pkg_short_errors_supported = yes; then
19979 EVIL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "evil >= 1.0.0" 2>&1` 20010 EVIL_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "evil >= 1.0.0"`
19980 else 20011 else
19981 EVIL_PKG_ERRORS=`$PKG_CONFIG --print-errors "evil >= 1.0.0" 2>&1` 20012 EVIL_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "evil >= 1.0.0"`
19982 fi 20013 fi
19983 # Put the nasty error message in config.log where it belongs 20014 # Put the nasty error message in config.log where it belongs
19984 echo "$EVIL_PKG_ERRORS" >&5 20015 echo "$EVIL_PKG_ERRORS" >&5
19985 20016
19986 as_fn_error $? "Package requirements (evil >= 1.0.0) were not met: 20017 as_fn_error "Package requirements (evil >= 1.0.0) were not met:
19987 20018
19988$EVIL_PKG_ERRORS 20019$EVIL_PKG_ERRORS
19989 20020
@@ -19992,13 +20023,12 @@ installed software in a non-standard prefix.
19992 20023
19993Alternatively, you may set the environment variables EVIL_CFLAGS 20024Alternatively, you may set the environment variables EVIL_CFLAGS
19994and EVIL_LIBS to avoid the need to call pkg-config. 20025and EVIL_LIBS to avoid the need to call pkg-config.
19995See the pkg-config man page for more details." "$LINENO" 5 20026See the pkg-config man page for more details.
20027" "$LINENO" 5
19996elif test $pkg_failed = untried; then 20028elif test $pkg_failed = untried; then
19997 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
19998$as_echo "no" >&6; }
19999 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 20029 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
20000$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 20030$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
20001as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it 20031as_fn_error "The pkg-config script could not be found or is too old. Make sure it
20002is in your PATH or set the PKG_CONFIG environment variable to the full 20032is in your PATH or set the PKG_CONFIG environment variable to the full
20003path to pkg-config. 20033path to pkg-config.
20004 20034
@@ -20007,13 +20037,13 @@ and EVIL_LIBS to avoid the need to call pkg-config.
20007See the pkg-config man page for more details. 20037See the pkg-config man page for more details.
20008 20038
20009To get pkg-config, see <http://pkg-config.freedesktop.org/>. 20039To get pkg-config, see <http://pkg-config.freedesktop.org/>.
20010See \`config.log' for more details" "$LINENO" 5 ; } 20040See \`config.log' for more details." "$LINENO" 5; }
20011else 20041else
20012 EVIL_CFLAGS=$pkg_cv_EVIL_CFLAGS 20042 EVIL_CFLAGS=$pkg_cv_EVIL_CFLAGS
20013 EVIL_LIBS=$pkg_cv_EVIL_LIBS 20043 EVIL_LIBS=$pkg_cv_EVIL_LIBS
20014 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 20044 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
20015$as_echo "yes" >&6; } 20045$as_echo "yes" >&6; }
20016 20046 :
20017fi 20047fi
20018 20048
20019$as_echo "#define HAVE_EVIL 1" >>confdefs.h 20049$as_echo "#define HAVE_EVIL 1" >>confdefs.h
@@ -20061,10 +20091,11 @@ pkg_failed=no
20061{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ESCAPE" >&5 20091{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ESCAPE" >&5
20062$as_echo_n "checking for ESCAPE... " >&6; } 20092$as_echo_n "checking for ESCAPE... " >&6; }
20063 20093
20064if test -n "$ESCAPE_CFLAGS"; then 20094if test -n "$PKG_CONFIG"; then
20065 pkg_cv_ESCAPE_CFLAGS="$ESCAPE_CFLAGS" 20095 if test -n "$ESCAPE_CFLAGS"; then
20066 elif test -n "$PKG_CONFIG"; then 20096 pkg_cv_ESCAPE_CFLAGS="$ESCAPE_CFLAGS"
20067 if test -n "$PKG_CONFIG" && \ 20097 else
20098 if test -n "$PKG_CONFIG" && \
20068 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"escape\""; } >&5 20099 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"escape\""; } >&5
20069 ($PKG_CONFIG --exists --print-errors "escape") 2>&5 20100 ($PKG_CONFIG --exists --print-errors "escape") 2>&5
20070 ac_status=$? 20101 ac_status=$?
@@ -20074,13 +20105,15 @@ if test -n "$ESCAPE_CFLAGS"; then
20074else 20105else
20075 pkg_failed=yes 20106 pkg_failed=yes
20076fi 20107fi
20077 else 20108 fi
20078 pkg_failed=untried 20109else
20110 pkg_failed=untried
20079fi 20111fi
20080if test -n "$ESCAPE_LIBS"; then 20112if test -n "$PKG_CONFIG"; then
20081 pkg_cv_ESCAPE_LIBS="$ESCAPE_LIBS" 20113 if test -n "$ESCAPE_LIBS"; then
20082 elif test -n "$PKG_CONFIG"; then 20114 pkg_cv_ESCAPE_LIBS="$ESCAPE_LIBS"
20083 if test -n "$PKG_CONFIG" && \ 20115 else
20116 if test -n "$PKG_CONFIG" && \
20084 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"escape\""; } >&5 20117 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"escape\""; } >&5
20085 ($PKG_CONFIG --exists --print-errors "escape") 2>&5 20118 ($PKG_CONFIG --exists --print-errors "escape") 2>&5
20086 ac_status=$? 20119 ac_status=$?
@@ -20090,15 +20123,14 @@ if test -n "$ESCAPE_LIBS"; then
20090else 20123else
20091 pkg_failed=yes 20124 pkg_failed=yes
20092fi 20125fi
20093 else 20126 fi
20094 pkg_failed=untried 20127else
20128 pkg_failed=untried
20095fi 20129fi
20096 20130
20097 20131
20098 20132
20099if test $pkg_failed = yes; then 20133if test $pkg_failed = yes; then
20100 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
20101$as_echo "no" >&6; }
20102 20134
20103if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 20135if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
20104 _pkg_short_errors_supported=yes 20136 _pkg_short_errors_supported=yes
@@ -20106,14 +20138,14 @@ else
20106 _pkg_short_errors_supported=no 20138 _pkg_short_errors_supported=no
20107fi 20139fi
20108 if test $_pkg_short_errors_supported = yes; then 20140 if test $_pkg_short_errors_supported = yes; then
20109 ESCAPE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "escape" 2>&1` 20141 ESCAPE_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "escape"`
20110 else 20142 else
20111 ESCAPE_PKG_ERRORS=`$PKG_CONFIG --print-errors "escape" 2>&1` 20143 ESCAPE_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "escape"`
20112 fi 20144 fi
20113 # Put the nasty error message in config.log where it belongs 20145 # Put the nasty error message in config.log where it belongs
20114 echo "$ESCAPE_PKG_ERRORS" >&5 20146 echo "$ESCAPE_PKG_ERRORS" >&5
20115 20147
20116 as_fn_error $? "Package requirements (escape) were not met: 20148 as_fn_error "Package requirements (escape) were not met:
20117 20149
20118$ESCAPE_PKG_ERRORS 20150$ESCAPE_PKG_ERRORS
20119 20151
@@ -20122,13 +20154,12 @@ installed software in a non-standard prefix.
20122 20154
20123Alternatively, you may set the environment variables ESCAPE_CFLAGS 20155Alternatively, you may set the environment variables ESCAPE_CFLAGS
20124and ESCAPE_LIBS to avoid the need to call pkg-config. 20156and ESCAPE_LIBS to avoid the need to call pkg-config.
20125See the pkg-config man page for more details." "$LINENO" 5 20157See the pkg-config man page for more details.
20158" "$LINENO" 5
20126elif test $pkg_failed = untried; then 20159elif test $pkg_failed = untried; then
20127 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
20128$as_echo "no" >&6; }
20129 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 20160 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
20130$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 20161$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
20131as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it 20162as_fn_error "The pkg-config script could not be found or is too old. Make sure it
20132is in your PATH or set the PKG_CONFIG environment variable to the full 20163is in your PATH or set the PKG_CONFIG environment variable to the full
20133path to pkg-config. 20164path to pkg-config.
20134 20165
@@ -20137,13 +20168,13 @@ and ESCAPE_LIBS to avoid the need to call pkg-config.
20137See the pkg-config man page for more details. 20168See the pkg-config man page for more details.
20138 20169
20139To get pkg-config, see <http://pkg-config.freedesktop.org/>. 20170To get pkg-config, see <http://pkg-config.freedesktop.org/>.
20140See \`config.log' for more details" "$LINENO" 5 ; } 20171See \`config.log' for more details." "$LINENO" 5; }
20141else 20172else
20142 ESCAPE_CFLAGS=$pkg_cv_ESCAPE_CFLAGS 20173 ESCAPE_CFLAGS=$pkg_cv_ESCAPE_CFLAGS
20143 ESCAPE_LIBS=$pkg_cv_ESCAPE_LIBS 20174 ESCAPE_LIBS=$pkg_cv_ESCAPE_LIBS
20144 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 20175 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
20145$as_echo "yes" >&6; } 20176$as_echo "yes" >&6; }
20146 20177 :
20147fi 20178fi
20148 CFLAGS="$CFLAGS $ESCAPE_CFLAGS" 20179 CFLAGS="$CFLAGS $ESCAPE_CFLAGS"
20149 20180
@@ -20400,10 +20431,11 @@ pkg_failed=no
20400{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EINA" >&5 20431{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EINA" >&5
20401$as_echo_n "checking for EINA... " >&6; } 20432$as_echo_n "checking for EINA... " >&6; }
20402 20433
20403if test -n "$EINA_CFLAGS"; then 20434if test -n "$PKG_CONFIG"; then
20404 pkg_cv_EINA_CFLAGS="$EINA_CFLAGS" 20435 if test -n "$EINA_CFLAGS"; then
20405 elif test -n "$PKG_CONFIG"; then 20436 pkg_cv_EINA_CFLAGS="$EINA_CFLAGS"
20406 if test -n "$PKG_CONFIG" && \ 20437 else
20438 if test -n "$PKG_CONFIG" && \
20407 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eina >= 1.1.0\""; } >&5 20439 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eina >= 1.1.0\""; } >&5
20408 ($PKG_CONFIG --exists --print-errors "eina >= 1.1.0") 2>&5 20440 ($PKG_CONFIG --exists --print-errors "eina >= 1.1.0") 2>&5
20409 ac_status=$? 20441 ac_status=$?
@@ -20413,13 +20445,15 @@ if test -n "$EINA_CFLAGS"; then
20413else 20445else
20414 pkg_failed=yes 20446 pkg_failed=yes
20415fi 20447fi
20416 else 20448 fi
20417 pkg_failed=untried 20449else
20450 pkg_failed=untried
20418fi 20451fi
20419if test -n "$EINA_LIBS"; then 20452if test -n "$PKG_CONFIG"; then
20420 pkg_cv_EINA_LIBS="$EINA_LIBS" 20453 if test -n "$EINA_LIBS"; then
20421 elif test -n "$PKG_CONFIG"; then 20454 pkg_cv_EINA_LIBS="$EINA_LIBS"
20422 if test -n "$PKG_CONFIG" && \ 20455 else
20456 if test -n "$PKG_CONFIG" && \
20423 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eina >= 1.1.0\""; } >&5 20457 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eina >= 1.1.0\""; } >&5
20424 ($PKG_CONFIG --exists --print-errors "eina >= 1.1.0") 2>&5 20458 ($PKG_CONFIG --exists --print-errors "eina >= 1.1.0") 2>&5
20425 ac_status=$? 20459 ac_status=$?
@@ -20429,15 +20463,14 @@ if test -n "$EINA_LIBS"; then
20429else 20463else
20430 pkg_failed=yes 20464 pkg_failed=yes
20431fi 20465fi
20432 else 20466 fi
20433 pkg_failed=untried 20467else
20468 pkg_failed=untried
20434fi 20469fi
20435 20470
20436 20471
20437 20472
20438if test $pkg_failed = yes; then 20473if test $pkg_failed = yes; then
20439 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
20440$as_echo "no" >&6; }
20441 20474
20442if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 20475if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
20443 _pkg_short_errors_supported=yes 20476 _pkg_short_errors_supported=yes
@@ -20445,14 +20478,14 @@ else
20445 _pkg_short_errors_supported=no 20478 _pkg_short_errors_supported=no
20446fi 20479fi
20447 if test $_pkg_short_errors_supported = yes; then 20480 if test $_pkg_short_errors_supported = yes; then
20448 EINA_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "eina >= 1.1.0" 2>&1` 20481 EINA_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "eina >= 1.1.0"`
20449 else 20482 else
20450 EINA_PKG_ERRORS=`$PKG_CONFIG --print-errors "eina >= 1.1.0" 2>&1` 20483 EINA_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "eina >= 1.1.0"`
20451 fi 20484 fi
20452 # Put the nasty error message in config.log where it belongs 20485 # Put the nasty error message in config.log where it belongs
20453 echo "$EINA_PKG_ERRORS" >&5 20486 echo "$EINA_PKG_ERRORS" >&5
20454 20487
20455 as_fn_error $? "Package requirements (eina >= 1.1.0) were not met: 20488 as_fn_error "Package requirements (eina >= 1.1.0) were not met:
20456 20489
20457$EINA_PKG_ERRORS 20490$EINA_PKG_ERRORS
20458 20491
@@ -20461,13 +20494,12 @@ installed software in a non-standard prefix.
20461 20494
20462Alternatively, you may set the environment variables EINA_CFLAGS 20495Alternatively, you may set the environment variables EINA_CFLAGS
20463and EINA_LIBS to avoid the need to call pkg-config. 20496and EINA_LIBS to avoid the need to call pkg-config.
20464See the pkg-config man page for more details." "$LINENO" 5 20497See the pkg-config man page for more details.
20498" "$LINENO" 5
20465elif test $pkg_failed = untried; then 20499elif test $pkg_failed = untried; then
20466 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
20467$as_echo "no" >&6; }
20468 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 20500 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
20469$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 20501$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
20470as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it 20502as_fn_error "The pkg-config script could not be found or is too old. Make sure it
20471is in your PATH or set the PKG_CONFIG environment variable to the full 20503is in your PATH or set the PKG_CONFIG environment variable to the full
20472path to pkg-config. 20504path to pkg-config.
20473 20505
@@ -20476,33 +20508,33 @@ and EINA_LIBS to avoid the need to call pkg-config.
20476See the pkg-config man page for more details. 20508See the pkg-config man page for more details.
20477 20509
20478To get pkg-config, see <http://pkg-config.freedesktop.org/>. 20510To get pkg-config, see <http://pkg-config.freedesktop.org/>.
20479See \`config.log' for more details" "$LINENO" 5 ; } 20511See \`config.log' for more details." "$LINENO" 5; }
20480else 20512else
20481 EINA_CFLAGS=$pkg_cv_EINA_CFLAGS 20513 EINA_CFLAGS=$pkg_cv_EINA_CFLAGS
20482 EINA_LIBS=$pkg_cv_EINA_LIBS 20514 EINA_LIBS=$pkg_cv_EINA_LIBS
20483 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 20515 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
20484$as_echo "yes" >&6; } 20516$as_echo "yes" >&6; }
20485 20517 :
20486fi 20518fi
20487#FIXME check all the requirements when the eina move will be finished 20519#FIXME check all the requirements when the eina move will be finished
20488requirements_ecore="eina >= 1.1.0 ${requirements_ecore}" 20520requirements_ecore="eina >= 1.1.0 ${requirements_ecore}"
20489requirements_ecore_con="ecore >= 1.1.0 eina >= 1.1.0 ${requirements_ecore_con}" 20521requirements_ecore_con="ecore >= 1.1.0 eina >= 1.1.0 ${requirements_ecore_con}"
20490#requirements_ecore_config="ecore >= 1.1.0 eina >= 1.1.0 ${requirements_ecore_config}" 20522#requirements_ecore_config="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_config}"
20491requirements_ecore_directfb="ecore >= 1.1.0 eina >= 1.1.0 ${requirements_ecore_directfb}" 20523requirements_ecore_directfb="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_directfb}"
20492requirements_ecore_evas="ecore >= 1.1.0 eina >= 1.1.0 ${requirements_ecore_evas}" 20524requirements_ecore_evas="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_evas}"
20493requirements_ecore_fb="ecore >= 1.1.0 eina >= 1.1.0 ${requirements_ecore_fb}" 20525requirements_ecore_fb="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_fb}"
20494requirements_ecore_file="ecore >= 1.1.0 eina >= 1.1.0 ${requirements_ecore_file}" 20526requirements_ecore_file="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_file}"
20495requirements_ecore_imf="ecore >= 1.1.0 eina >= 1.1.0 ${requirements_ecore_imf}" 20527requirements_ecore_imf="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_imf}"
20496requirements_ecore_imf_evas="ecore >= 1.1.0 eina >= 1.1.0 ${requirements_ecore_imf_evas}" 20528requirements_ecore_imf_evas="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_imf_evas}"
20497requirements_ecore_input="ecore >= 1.1.0 eina >= 1.1.0 ${requirements_ecore_input}" 20529requirements_ecore_input="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_input}"
20498requirements_ecore_input_evas="ecore >= 1.1.0 eina >= 1.1.0 ${requirements_ecore_input_evas}" 20530requirements_ecore_input_evas="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_input_evas}"
20499requirements_ecore_ipc="ecore >= 1.1.0 eina >= 1.1.0 ${requirements_ecore_ipc}" 20531requirements_ecore_ipc="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_ipc}"
20500requirements_ecore_cocoa="ecore >= 1.1.0 eina >= 1.1.0 ${requirements_ecore_cocoa}" 20532requirements_ecore_cocoa="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_cocoa}"
20501requirements_ecore_sdl="ecore >= 1.1.0 eina >= 1.1.0 ${requirements_ecore_sdl}" 20533requirements_ecore_sdl="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_sdl}"
20502requirements_ecore_psl1ght="ecore >= 1.1.0 eina >= 1.1.0 ${requirements_ecore_sdl}" 20534requirements_ecore_psl1ght="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_sdl}"
20503requirements_ecore_win32="ecore >= 1.1.0 eina >= 1.1.0 ${requirements_ecore_win32}" 20535requirements_ecore_win32="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_win32}"
20504requirements_ecore_wince="ecore >= 1.1.0 eina >= 1.1.0 ${requirements_ecore_wince}" 20536requirements_ecore_wince="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_wince}"
20505requirements_ecore_x="ecore >= 1.1.0 eina >= 1.1.0 ${requirements_ecore_x}" 20537requirements_ecore_x="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_x}"
20506 20538
20507 20539
20508# glib support (main loop integration) 20540# glib support (main loop integration)
@@ -20518,10 +20550,11 @@ pkg_failed=no
20518{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GLIB" >&5 20550{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GLIB" >&5
20519$as_echo_n "checking for GLIB... " >&6; } 20551$as_echo_n "checking for GLIB... " >&6; }
20520 20552
20521if test -n "$GLIB_CFLAGS"; then 20553if test -n "$PKG_CONFIG"; then
20522 pkg_cv_GLIB_CFLAGS="$GLIB_CFLAGS" 20554 if test -n "$GLIB_CFLAGS"; then
20523 elif test -n "$PKG_CONFIG"; then 20555 pkg_cv_GLIB_CFLAGS="$GLIB_CFLAGS"
20524 if test -n "$PKG_CONFIG" && \ 20556 else
20557 if test -n "$PKG_CONFIG" && \
20525 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0\""; } >&5 20558 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0\""; } >&5
20526 ($PKG_CONFIG --exists --print-errors "glib-2.0") 2>&5 20559 ($PKG_CONFIG --exists --print-errors "glib-2.0") 2>&5
20527 ac_status=$? 20560 ac_status=$?
@@ -20531,13 +20564,15 @@ if test -n "$GLIB_CFLAGS"; then
20531else 20564else
20532 pkg_failed=yes 20565 pkg_failed=yes
20533fi 20566fi
20534 else 20567 fi
20535 pkg_failed=untried 20568else
20569 pkg_failed=untried
20536fi 20570fi
20537if test -n "$GLIB_LIBS"; then 20571if test -n "$PKG_CONFIG"; then
20538 pkg_cv_GLIB_LIBS="$GLIB_LIBS" 20572 if test -n "$GLIB_LIBS"; then
20539 elif test -n "$PKG_CONFIG"; then 20573 pkg_cv_GLIB_LIBS="$GLIB_LIBS"
20540 if test -n "$PKG_CONFIG" && \ 20574 else
20575 if test -n "$PKG_CONFIG" && \
20541 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0\""; } >&5 20576 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0\""; } >&5
20542 ($PKG_CONFIG --exists --print-errors "glib-2.0") 2>&5 20577 ($PKG_CONFIG --exists --print-errors "glib-2.0") 2>&5
20543 ac_status=$? 20578 ac_status=$?
@@ -20547,15 +20582,14 @@ if test -n "$GLIB_LIBS"; then
20547else 20582else
20548 pkg_failed=yes 20583 pkg_failed=yes
20549fi 20584fi
20550 else 20585 fi
20551 pkg_failed=untried 20586else
20587 pkg_failed=untried
20552fi 20588fi
20553 20589
20554 20590
20555 20591
20556if test $pkg_failed = yes; then 20592if test $pkg_failed = yes; then
20557 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
20558$as_echo "no" >&6; }
20559 20593
20560if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 20594if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
20561 _pkg_short_errors_supported=yes 20595 _pkg_short_errors_supported=yes
@@ -20563,17 +20597,17 @@ else
20563 _pkg_short_errors_supported=no 20597 _pkg_short_errors_supported=no
20564fi 20598fi
20565 if test $_pkg_short_errors_supported = yes; then 20599 if test $_pkg_short_errors_supported = yes; then
20566 GLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "glib-2.0" 2>&1` 20600 GLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "glib-2.0"`
20567 else 20601 else
20568 GLIB_PKG_ERRORS=`$PKG_CONFIG --print-errors "glib-2.0" 2>&1` 20602 GLIB_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "glib-2.0"`
20569 fi 20603 fi
20570 # Put the nasty error message in config.log where it belongs 20604 # Put the nasty error message in config.log where it belongs
20571 echo "$GLIB_PKG_ERRORS" >&5 20605 echo "$GLIB_PKG_ERRORS" >&5
20572 20606
20573 have_glib="no" 20607 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
20574elif test $pkg_failed = untried; then
20575 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
20576$as_echo "no" >&6; } 20608$as_echo "no" >&6; }
20609 have_glib="no"
20610elif test $pkg_failed = untried; then
20577 have_glib="no" 20611 have_glib="no"
20578else 20612else
20579 GLIB_CFLAGS=$pkg_cv_GLIB_CFLAGS 20613 GLIB_CFLAGS=$pkg_cv_GLIB_CFLAGS
@@ -20586,7 +20620,7 @@ else
20586 have_glib="no" 20620 have_glib="no"
20587fi 20621fi
20588if test "x$want_glib" = "xyes" -a "x$have_glib" = "xno"; then 20622if test "x$want_glib" = "xyes" -a "x$have_glib" = "xno"; then
20589 as_fn_error $? "GLib support requested, but no GLib found by pkg-config." "$LINENO" 5 20623 as_fn_error "GLib support requested, but no GLib found by pkg-config." "$LINENO" 5
20590elif test "x$have_glib" = "xyes"; then 20624elif test "x$have_glib" = "xyes"; then
20591 20625
20592$as_echo "#define HAVE_GLIB 1" >>confdefs.h 20626$as_echo "#define HAVE_GLIB 1" >>confdefs.h
@@ -20603,10 +20637,11 @@ pkg_failed=no
20603{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SDL" >&5 20637{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SDL" >&5
20604$as_echo_n "checking for SDL... " >&6; } 20638$as_echo_n "checking for SDL... " >&6; }
20605 20639
20606if test -n "$SDL_CFLAGS"; then 20640if test -n "$PKG_CONFIG"; then
20607 pkg_cv_SDL_CFLAGS="$SDL_CFLAGS" 20641 if test -n "$SDL_CFLAGS"; then
20608 elif test -n "$PKG_CONFIG"; then 20642 pkg_cv_SDL_CFLAGS="$SDL_CFLAGS"
20609 if test -n "$PKG_CONFIG" && \ 20643 else
20644 if test -n "$PKG_CONFIG" && \
20610 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sdl >= 1.2.0\""; } >&5 20645 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sdl >= 1.2.0\""; } >&5
20611 ($PKG_CONFIG --exists --print-errors "sdl >= 1.2.0") 2>&5 20646 ($PKG_CONFIG --exists --print-errors "sdl >= 1.2.0") 2>&5
20612 ac_status=$? 20647 ac_status=$?
@@ -20616,13 +20651,15 @@ if test -n "$SDL_CFLAGS"; then
20616else 20651else
20617 pkg_failed=yes 20652 pkg_failed=yes
20618fi 20653fi
20619 else 20654 fi
20620 pkg_failed=untried 20655else
20656 pkg_failed=untried
20621fi 20657fi
20622if test -n "$SDL_LIBS"; then 20658if test -n "$PKG_CONFIG"; then
20623 pkg_cv_SDL_LIBS="$SDL_LIBS" 20659 if test -n "$SDL_LIBS"; then
20624 elif test -n "$PKG_CONFIG"; then 20660 pkg_cv_SDL_LIBS="$SDL_LIBS"
20625 if test -n "$PKG_CONFIG" && \ 20661 else
20662 if test -n "$PKG_CONFIG" && \
20626 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sdl >= 1.2.0\""; } >&5 20663 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sdl >= 1.2.0\""; } >&5
20627 ($PKG_CONFIG --exists --print-errors "sdl >= 1.2.0") 2>&5 20664 ($PKG_CONFIG --exists --print-errors "sdl >= 1.2.0") 2>&5
20628 ac_status=$? 20665 ac_status=$?
@@ -20632,15 +20669,14 @@ if test -n "$SDL_LIBS"; then
20632else 20669else
20633 pkg_failed=yes 20670 pkg_failed=yes
20634fi 20671fi
20635 else 20672 fi
20636 pkg_failed=untried 20673else
20674 pkg_failed=untried
20637fi 20675fi
20638 20676
20639 20677
20640 20678
20641if test $pkg_failed = yes; then 20679if test $pkg_failed = yes; then
20642 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
20643$as_echo "no" >&6; }
20644 20680
20645if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 20681if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
20646 _pkg_short_errors_supported=yes 20682 _pkg_short_errors_supported=yes
@@ -20648,17 +20684,17 @@ else
20648 _pkg_short_errors_supported=no 20684 _pkg_short_errors_supported=no
20649fi 20685fi
20650 if test $_pkg_short_errors_supported = yes; then 20686 if test $_pkg_short_errors_supported = yes; then
20651 SDL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "sdl >= 1.2.0" 2>&1` 20687 SDL_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "sdl >= 1.2.0"`
20652 else 20688 else
20653 SDL_PKG_ERRORS=`$PKG_CONFIG --print-errors "sdl >= 1.2.0" 2>&1` 20689 SDL_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "sdl >= 1.2.0"`
20654 fi 20690 fi
20655 # Put the nasty error message in config.log where it belongs 20691 # Put the nasty error message in config.log where it belongs
20656 echo "$SDL_PKG_ERRORS" >&5 20692 echo "$SDL_PKG_ERRORS" >&5
20657 20693
20658 have_sdl="no" 20694 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
20659elif test $pkg_failed = untried; then
20660 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
20661$as_echo "no" >&6; } 20695$as_echo "no" >&6; }
20696 have_sdl="no"
20697elif test $pkg_failed = untried; then
20662 have_sdl="no" 20698 have_sdl="no"
20663else 20699else
20664 SDL_CFLAGS=$pkg_cv_SDL_CFLAGS 20700 SDL_CFLAGS=$pkg_cv_SDL_CFLAGS
@@ -20752,10 +20788,11 @@ pkg_failed=no
20752{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for DIRECTFB" >&5 20788{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for DIRECTFB" >&5
20753$as_echo_n "checking for DIRECTFB... " >&6; } 20789$as_echo_n "checking for DIRECTFB... " >&6; }
20754 20790
20755if test -n "$DIRECTFB_CFLAGS"; then 20791if test -n "$PKG_CONFIG"; then
20756 pkg_cv_DIRECTFB_CFLAGS="$DIRECTFB_CFLAGS" 20792 if test -n "$DIRECTFB_CFLAGS"; then
20757 elif test -n "$PKG_CONFIG"; then 20793 pkg_cv_DIRECTFB_CFLAGS="$DIRECTFB_CFLAGS"
20758 if test -n "$PKG_CONFIG" && \ 20794 else
20795 if test -n "$PKG_CONFIG" && \
20759 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"directfb >= 0.9.16\""; } >&5 20796 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"directfb >= 0.9.16\""; } >&5
20760 ($PKG_CONFIG --exists --print-errors "directfb >= 0.9.16") 2>&5 20797 ($PKG_CONFIG --exists --print-errors "directfb >= 0.9.16") 2>&5
20761 ac_status=$? 20798 ac_status=$?
@@ -20765,13 +20802,15 @@ if test -n "$DIRECTFB_CFLAGS"; then
20765else 20802else
20766 pkg_failed=yes 20803 pkg_failed=yes
20767fi 20804fi
20768 else 20805 fi
20769 pkg_failed=untried 20806else
20807 pkg_failed=untried
20770fi 20808fi
20771if test -n "$DIRECTFB_LIBS"; then 20809if test -n "$PKG_CONFIG"; then
20772 pkg_cv_DIRECTFB_LIBS="$DIRECTFB_LIBS" 20810 if test -n "$DIRECTFB_LIBS"; then
20773 elif test -n "$PKG_CONFIG"; then 20811 pkg_cv_DIRECTFB_LIBS="$DIRECTFB_LIBS"
20774 if test -n "$PKG_CONFIG" && \ 20812 else
20813 if test -n "$PKG_CONFIG" && \
20775 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"directfb >= 0.9.16\""; } >&5 20814 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"directfb >= 0.9.16\""; } >&5
20776 ($PKG_CONFIG --exists --print-errors "directfb >= 0.9.16") 2>&5 20815 ($PKG_CONFIG --exists --print-errors "directfb >= 0.9.16") 2>&5
20777 ac_status=$? 20816 ac_status=$?
@@ -20781,15 +20820,14 @@ if test -n "$DIRECTFB_LIBS"; then
20781else 20820else
20782 pkg_failed=yes 20821 pkg_failed=yes
20783fi 20822fi
20784 else 20823 fi
20785 pkg_failed=untried 20824else
20825 pkg_failed=untried
20786fi 20826fi
20787 20827
20788 20828
20789 20829
20790if test $pkg_failed = yes; then 20830if test $pkg_failed = yes; then
20791 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
20792$as_echo "no" >&6; }
20793 20831
20794if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 20832if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
20795 _pkg_short_errors_supported=yes 20833 _pkg_short_errors_supported=yes
@@ -20797,17 +20835,17 @@ else
20797 _pkg_short_errors_supported=no 20835 _pkg_short_errors_supported=no
20798fi 20836fi
20799 if test $_pkg_short_errors_supported = yes; then 20837 if test $_pkg_short_errors_supported = yes; then
20800 DIRECTFB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "directfb >= 0.9.16" 2>&1` 20838 DIRECTFB_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "directfb >= 0.9.16"`
20801 else 20839 else
20802 DIRECTFB_PKG_ERRORS=`$PKG_CONFIG --print-errors "directfb >= 0.9.16" 2>&1` 20840 DIRECTFB_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "directfb >= 0.9.16"`
20803 fi 20841 fi
20804 # Put the nasty error message in config.log where it belongs 20842 # Put the nasty error message in config.log where it belongs
20805 echo "$DIRECTFB_PKG_ERRORS" >&5 20843 echo "$DIRECTFB_PKG_ERRORS" >&5
20806 20844
20807 have_directfb="no" 20845 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
20808elif test $pkg_failed = untried; then
20809 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
20810$as_echo "no" >&6; } 20846$as_echo "no" >&6; }
20847 have_directfb="no"
20848elif test $pkg_failed = untried; then
20811 have_directfb="no" 20849 have_directfb="no"
20812else 20850else
20813 DIRECTFB_CFLAGS=$pkg_cv_DIRECTFB_CFLAGS 20851 DIRECTFB_CFLAGS=$pkg_cv_DIRECTFB_CFLAGS
@@ -20957,7 +20995,7 @@ $as_echo_n "checking keysym definitions... " >&6; }
20957 if test -f "$KEYSYMDEFDIR/$i"; then 20995 if test -f "$KEYSYMDEFDIR/$i"; then
20958 KEYSYMDEFS="$KEYSYMDEFS $KEYSYMDEFDIR/$i" 20996 KEYSYMDEFS="$KEYSYMDEFS $KEYSYMDEFDIR/$i"
20959 elif test "x$i" = "xkeysymdef.h"; then 20997 elif test "x$i" = "xkeysymdef.h"; then
20960 as_fn_error $? "Cannot find keysymdef.h" "$LINENO" 5 20998 as_fn_error "Cannot find keysymdef.h" "$LINENO" 5
20961 fi 20999 fi
20962 done 21000 done
20963 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $KEYSYMDEFS" >&5 21001 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $KEYSYMDEFS" >&5
@@ -21121,10 +21159,11 @@ pkg_failed=no
21121{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ECORE_XCB" >&5 21159{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ECORE_XCB" >&5
21122$as_echo_n "checking for ECORE_XCB... " >&6; } 21160$as_echo_n "checking for ECORE_XCB... " >&6; }
21123 21161
21124if test -n "$ECORE_XCB_CFLAGS"; then 21162if test -n "$PKG_CONFIG"; then
21125 pkg_cv_ECORE_XCB_CFLAGS="$ECORE_XCB_CFLAGS" 21163 if test -n "$ECORE_XCB_CFLAGS"; then
21126 elif test -n "$PKG_CONFIG"; then 21164 pkg_cv_ECORE_XCB_CFLAGS="$ECORE_XCB_CFLAGS"
21127 if test -n "$PKG_CONFIG" && \ 21165 else
21166 if test -n "$PKG_CONFIG" && \
21128 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"x11-xcb xcb xcb-shm xcb-event xcb-icccm >= 0.3.8 xcb-util >= 0.3.8 xcb-image xcb-keysyms >= 0.3.8\""; } >&5 21167 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"x11-xcb xcb xcb-shm xcb-event xcb-icccm >= 0.3.8 xcb-util >= 0.3.8 xcb-image xcb-keysyms >= 0.3.8\""; } >&5
21129 ($PKG_CONFIG --exists --print-errors "x11-xcb xcb xcb-shm xcb-event xcb-icccm >= 0.3.8 xcb-util >= 0.3.8 xcb-image xcb-keysyms >= 0.3.8") 2>&5 21168 ($PKG_CONFIG --exists --print-errors "x11-xcb xcb xcb-shm xcb-event xcb-icccm >= 0.3.8 xcb-util >= 0.3.8 xcb-image xcb-keysyms >= 0.3.8") 2>&5
21130 ac_status=$? 21169 ac_status=$?
@@ -21134,13 +21173,15 @@ if test -n "$ECORE_XCB_CFLAGS"; then
21134else 21173else
21135 pkg_failed=yes 21174 pkg_failed=yes
21136fi 21175fi
21137 else 21176 fi
21138 pkg_failed=untried 21177else
21178 pkg_failed=untried
21139fi 21179fi
21140if test -n "$ECORE_XCB_LIBS"; then 21180if test -n "$PKG_CONFIG"; then
21141 pkg_cv_ECORE_XCB_LIBS="$ECORE_XCB_LIBS" 21181 if test -n "$ECORE_XCB_LIBS"; then
21142 elif test -n "$PKG_CONFIG"; then 21182 pkg_cv_ECORE_XCB_LIBS="$ECORE_XCB_LIBS"
21143 if test -n "$PKG_CONFIG" && \ 21183 else
21184 if test -n "$PKG_CONFIG" && \
21144 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"x11-xcb xcb xcb-shm xcb-event xcb-icccm >= 0.3.8 xcb-util >= 0.3.8 xcb-image xcb-keysyms >= 0.3.8\""; } >&5 21185 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"x11-xcb xcb xcb-shm xcb-event xcb-icccm >= 0.3.8 xcb-util >= 0.3.8 xcb-image xcb-keysyms >= 0.3.8\""; } >&5
21145 ($PKG_CONFIG --exists --print-errors "x11-xcb xcb xcb-shm xcb-event xcb-icccm >= 0.3.8 xcb-util >= 0.3.8 xcb-image xcb-keysyms >= 0.3.8") 2>&5 21186 ($PKG_CONFIG --exists --print-errors "x11-xcb xcb xcb-shm xcb-event xcb-icccm >= 0.3.8 xcb-util >= 0.3.8 xcb-image xcb-keysyms >= 0.3.8") 2>&5
21146 ac_status=$? 21187 ac_status=$?
@@ -21150,15 +21191,14 @@ if test -n "$ECORE_XCB_LIBS"; then
21150else 21191else
21151 pkg_failed=yes 21192 pkg_failed=yes
21152fi 21193fi
21153 else 21194 fi
21154 pkg_failed=untried 21195else
21196 pkg_failed=untried
21155fi 21197fi
21156 21198
21157 21199
21158 21200
21159if test $pkg_failed = yes; then 21201if test $pkg_failed = yes; then
21160 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21161$as_echo "no" >&6; }
21162 21202
21163if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 21203if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
21164 _pkg_short_errors_supported=yes 21204 _pkg_short_errors_supported=yes
@@ -21166,23 +21206,26 @@ else
21166 _pkg_short_errors_supported=no 21206 _pkg_short_errors_supported=no
21167fi 21207fi
21168 if test $_pkg_short_errors_supported = yes; then 21208 if test $_pkg_short_errors_supported = yes; then
21169 ECORE_XCB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "x11-xcb xcb xcb-shm xcb-event xcb-icccm >= 0.3.8 xcb-util >= 0.3.8 xcb-image xcb-keysyms >= 0.3.8" 2>&1` 21209 ECORE_XCB_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "x11-xcb xcb xcb-shm xcb-event xcb-icccm >= 0.3.8 xcb-util >= 0.3.8 xcb-image xcb-keysyms >= 0.3.8"`
21170 else 21210 else
21171 ECORE_XCB_PKG_ERRORS=`$PKG_CONFIG --print-errors "x11-xcb xcb xcb-shm xcb-event xcb-icccm >= 0.3.8 xcb-util >= 0.3.8 xcb-image xcb-keysyms >= 0.3.8" 2>&1` 21211 ECORE_XCB_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "x11-xcb xcb xcb-shm xcb-event xcb-icccm >= 0.3.8 xcb-util >= 0.3.8 xcb-image xcb-keysyms >= 0.3.8"`
21172 fi 21212 fi
21173 # Put the nasty error message in config.log where it belongs 21213 # Put the nasty error message in config.log where it belongs
21174 echo "$ECORE_XCB_PKG_ERRORS" >&5 21214 echo "$ECORE_XCB_PKG_ERRORS" >&5
21175 21215
21216 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21217$as_echo "no" >&6; }
21176 21218
21177 21219
21178pkg_failed=no 21220pkg_failed=no
21179{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ECORE_XCB" >&5 21221{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ECORE_XCB" >&5
21180$as_echo_n "checking for ECORE_XCB... " >&6; } 21222$as_echo_n "checking for ECORE_XCB... " >&6; }
21181 21223
21182if test -n "$ECORE_XCB_CFLAGS"; then 21224if test -n "$PKG_CONFIG"; then
21183 pkg_cv_ECORE_XCB_CFLAGS="$ECORE_XCB_CFLAGS" 21225 if test -n "$ECORE_XCB_CFLAGS"; then
21184 elif test -n "$PKG_CONFIG"; then 21226 pkg_cv_ECORE_XCB_CFLAGS="$ECORE_XCB_CFLAGS"
21185 if test -n "$PKG_CONFIG" && \ 21227 else
21228 if test -n "$PKG_CONFIG" && \
21186 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"x11-xcb xcb xcb-event xcb-shm xcb-icccm xcb-image xcb-keysyms\""; } >&5 21229 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"x11-xcb xcb xcb-event xcb-shm xcb-icccm xcb-image xcb-keysyms\""; } >&5
21187 ($PKG_CONFIG --exists --print-errors "x11-xcb xcb xcb-event xcb-shm xcb-icccm xcb-image xcb-keysyms") 2>&5 21230 ($PKG_CONFIG --exists --print-errors "x11-xcb xcb xcb-event xcb-shm xcb-icccm xcb-image xcb-keysyms") 2>&5
21188 ac_status=$? 21231 ac_status=$?
@@ -21192,13 +21235,15 @@ if test -n "$ECORE_XCB_CFLAGS"; then
21192else 21235else
21193 pkg_failed=yes 21236 pkg_failed=yes
21194fi 21237fi
21195 else 21238 fi
21196 pkg_failed=untried 21239else
21240 pkg_failed=untried
21197fi 21241fi
21198if test -n "$ECORE_XCB_LIBS"; then 21242if test -n "$PKG_CONFIG"; then
21199 pkg_cv_ECORE_XCB_LIBS="$ECORE_XCB_LIBS" 21243 if test -n "$ECORE_XCB_LIBS"; then
21200 elif test -n "$PKG_CONFIG"; then 21244 pkg_cv_ECORE_XCB_LIBS="$ECORE_XCB_LIBS"
21201 if test -n "$PKG_CONFIG" && \ 21245 else
21246 if test -n "$PKG_CONFIG" && \
21202 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"x11-xcb xcb xcb-event xcb-shm xcb-icccm xcb-image xcb-keysyms\""; } >&5 21247 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"x11-xcb xcb xcb-event xcb-shm xcb-icccm xcb-image xcb-keysyms\""; } >&5
21203 ($PKG_CONFIG --exists --print-errors "x11-xcb xcb xcb-event xcb-shm xcb-icccm xcb-image xcb-keysyms") 2>&5 21248 ($PKG_CONFIG --exists --print-errors "x11-xcb xcb xcb-event xcb-shm xcb-icccm xcb-image xcb-keysyms") 2>&5
21204 ac_status=$? 21249 ac_status=$?
@@ -21208,15 +21253,14 @@ if test -n "$ECORE_XCB_LIBS"; then
21208else 21253else
21209 pkg_failed=yes 21254 pkg_failed=yes
21210fi 21255fi
21211 else 21256 fi
21212 pkg_failed=untried 21257else
21258 pkg_failed=untried
21213fi 21259fi
21214 21260
21215 21261
21216 21262
21217if test $pkg_failed = yes; then 21263if test $pkg_failed = yes; then
21218 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21219$as_echo "no" >&6; }
21220 21264
21221if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 21265if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
21222 _pkg_short_errors_supported=yes 21266 _pkg_short_errors_supported=yes
@@ -21224,17 +21268,17 @@ else
21224 _pkg_short_errors_supported=no 21268 _pkg_short_errors_supported=no
21225fi 21269fi
21226 if test $_pkg_short_errors_supported = yes; then 21270 if test $_pkg_short_errors_supported = yes; then
21227 ECORE_XCB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "x11-xcb xcb xcb-event xcb-shm xcb-icccm xcb-image xcb-keysyms" 2>&1` 21271 ECORE_XCB_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "x11-xcb xcb xcb-event xcb-shm xcb-icccm xcb-image xcb-keysyms"`
21228 else 21272 else
21229 ECORE_XCB_PKG_ERRORS=`$PKG_CONFIG --print-errors "x11-xcb xcb xcb-event xcb-shm xcb-icccm xcb-image xcb-keysyms" 2>&1` 21273 ECORE_XCB_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "x11-xcb xcb xcb-event xcb-shm xcb-icccm xcb-image xcb-keysyms"`
21230 fi 21274 fi
21231 # Put the nasty error message in config.log where it belongs 21275 # Put the nasty error message in config.log where it belongs
21232 echo "$ECORE_XCB_PKG_ERRORS" >&5 21276 echo "$ECORE_XCB_PKG_ERRORS" >&5
21233 21277
21234 have_ecore_x_xcb="no" 21278 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21235elif test $pkg_failed = untried; then
21236 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21237$as_echo "no" >&6; } 21279$as_echo "no" >&6; }
21280 have_ecore_x_xcb="no"
21281elif test $pkg_failed = untried; then
21238 have_ecore_x_xcb="no" 21282 have_ecore_x_xcb="no"
21239else 21283else
21240 ECORE_XCB_CFLAGS=$pkg_cv_ECORE_XCB_CFLAGS 21284 ECORE_XCB_CFLAGS=$pkg_cv_ECORE_XCB_CFLAGS
@@ -21249,18 +21293,17 @@ $as_echo "#define OLD_XCB_VERSION 1" >>confdefs.h
21249fi 21293fi
21250 21294
21251elif test $pkg_failed = untried; then 21295elif test $pkg_failed = untried; then
21252 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21253$as_echo "no" >&6; }
21254 21296
21255 21297
21256pkg_failed=no 21298pkg_failed=no
21257{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ECORE_XCB" >&5 21299{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ECORE_XCB" >&5
21258$as_echo_n "checking for ECORE_XCB... " >&6; } 21300$as_echo_n "checking for ECORE_XCB... " >&6; }
21259 21301
21260if test -n "$ECORE_XCB_CFLAGS"; then 21302if test -n "$PKG_CONFIG"; then
21261 pkg_cv_ECORE_XCB_CFLAGS="$ECORE_XCB_CFLAGS" 21303 if test -n "$ECORE_XCB_CFLAGS"; then
21262 elif test -n "$PKG_CONFIG"; then 21304 pkg_cv_ECORE_XCB_CFLAGS="$ECORE_XCB_CFLAGS"
21263 if test -n "$PKG_CONFIG" && \ 21305 else
21306 if test -n "$PKG_CONFIG" && \
21264 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"x11-xcb xcb xcb-event xcb-shm xcb-icccm xcb-image xcb-keysyms\""; } >&5 21307 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"x11-xcb xcb xcb-event xcb-shm xcb-icccm xcb-image xcb-keysyms\""; } >&5
21265 ($PKG_CONFIG --exists --print-errors "x11-xcb xcb xcb-event xcb-shm xcb-icccm xcb-image xcb-keysyms") 2>&5 21308 ($PKG_CONFIG --exists --print-errors "x11-xcb xcb xcb-event xcb-shm xcb-icccm xcb-image xcb-keysyms") 2>&5
21266 ac_status=$? 21309 ac_status=$?
@@ -21270,13 +21313,15 @@ if test -n "$ECORE_XCB_CFLAGS"; then
21270else 21313else
21271 pkg_failed=yes 21314 pkg_failed=yes
21272fi 21315fi
21273 else 21316 fi
21274 pkg_failed=untried 21317else
21318 pkg_failed=untried
21275fi 21319fi
21276if test -n "$ECORE_XCB_LIBS"; then 21320if test -n "$PKG_CONFIG"; then
21277 pkg_cv_ECORE_XCB_LIBS="$ECORE_XCB_LIBS" 21321 if test -n "$ECORE_XCB_LIBS"; then
21278 elif test -n "$PKG_CONFIG"; then 21322 pkg_cv_ECORE_XCB_LIBS="$ECORE_XCB_LIBS"
21279 if test -n "$PKG_CONFIG" && \ 21323 else
21324 if test -n "$PKG_CONFIG" && \
21280 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"x11-xcb xcb xcb-event xcb-shm xcb-icccm xcb-image xcb-keysyms\""; } >&5 21325 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"x11-xcb xcb xcb-event xcb-shm xcb-icccm xcb-image xcb-keysyms\""; } >&5
21281 ($PKG_CONFIG --exists --print-errors "x11-xcb xcb xcb-event xcb-shm xcb-icccm xcb-image xcb-keysyms") 2>&5 21326 ($PKG_CONFIG --exists --print-errors "x11-xcb xcb xcb-event xcb-shm xcb-icccm xcb-image xcb-keysyms") 2>&5
21282 ac_status=$? 21327 ac_status=$?
@@ -21286,15 +21331,14 @@ if test -n "$ECORE_XCB_LIBS"; then
21286else 21331else
21287 pkg_failed=yes 21332 pkg_failed=yes
21288fi 21333fi
21289 else 21334 fi
21290 pkg_failed=untried 21335else
21336 pkg_failed=untried
21291fi 21337fi
21292 21338
21293 21339
21294 21340
21295if test $pkg_failed = yes; then 21341if test $pkg_failed = yes; then
21296 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21297$as_echo "no" >&6; }
21298 21342
21299if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 21343if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
21300 _pkg_short_errors_supported=yes 21344 _pkg_short_errors_supported=yes
@@ -21302,17 +21346,17 @@ else
21302 _pkg_short_errors_supported=no 21346 _pkg_short_errors_supported=no
21303fi 21347fi
21304 if test $_pkg_short_errors_supported = yes; then 21348 if test $_pkg_short_errors_supported = yes; then
21305 ECORE_XCB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "x11-xcb xcb xcb-event xcb-shm xcb-icccm xcb-image xcb-keysyms" 2>&1` 21349 ECORE_XCB_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "x11-xcb xcb xcb-event xcb-shm xcb-icccm xcb-image xcb-keysyms"`
21306 else 21350 else
21307 ECORE_XCB_PKG_ERRORS=`$PKG_CONFIG --print-errors "x11-xcb xcb xcb-event xcb-shm xcb-icccm xcb-image xcb-keysyms" 2>&1` 21351 ECORE_XCB_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "x11-xcb xcb xcb-event xcb-shm xcb-icccm xcb-image xcb-keysyms"`
21308 fi 21352 fi
21309 # Put the nasty error message in config.log where it belongs 21353 # Put the nasty error message in config.log where it belongs
21310 echo "$ECORE_XCB_PKG_ERRORS" >&5 21354 echo "$ECORE_XCB_PKG_ERRORS" >&5
21311 21355
21312 have_ecore_x_xcb="no" 21356 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21313elif test $pkg_failed = untried; then
21314 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21315$as_echo "no" >&6; } 21357$as_echo "no" >&6; }
21358 have_ecore_x_xcb="no"
21359elif test $pkg_failed = untried; then
21316 have_ecore_x_xcb="no" 21360 have_ecore_x_xcb="no"
21317else 21361else
21318 ECORE_XCB_CFLAGS=$pkg_cv_ECORE_XCB_CFLAGS 21362 ECORE_XCB_CFLAGS=$pkg_cv_ECORE_XCB_CFLAGS
@@ -21343,10 +21387,11 @@ pkg_failed=no
21343{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PIXMAN" >&5 21387{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PIXMAN" >&5
21344$as_echo_n "checking for PIXMAN... " >&6; } 21388$as_echo_n "checking for PIXMAN... " >&6; }
21345 21389
21346if test -n "$PIXMAN_CFLAGS"; then 21390if test -n "$PKG_CONFIG"; then
21347 pkg_cv_PIXMAN_CFLAGS="$PIXMAN_CFLAGS" 21391 if test -n "$PIXMAN_CFLAGS"; then
21348 elif test -n "$PKG_CONFIG"; then 21392 pkg_cv_PIXMAN_CFLAGS="$PIXMAN_CFLAGS"
21349 if test -n "$PKG_CONFIG" && \ 21393 else
21394 if test -n "$PKG_CONFIG" && \
21350 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"pixman-1\""; } >&5 21395 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"pixman-1\""; } >&5
21351 ($PKG_CONFIG --exists --print-errors "pixman-1") 2>&5 21396 ($PKG_CONFIG --exists --print-errors "pixman-1") 2>&5
21352 ac_status=$? 21397 ac_status=$?
@@ -21356,13 +21401,15 @@ if test -n "$PIXMAN_CFLAGS"; then
21356else 21401else
21357 pkg_failed=yes 21402 pkg_failed=yes
21358fi 21403fi
21359 else 21404 fi
21360 pkg_failed=untried 21405else
21406 pkg_failed=untried
21361fi 21407fi
21362if test -n "$PIXMAN_LIBS"; then 21408if test -n "$PKG_CONFIG"; then
21363 pkg_cv_PIXMAN_LIBS="$PIXMAN_LIBS" 21409 if test -n "$PIXMAN_LIBS"; then
21364 elif test -n "$PKG_CONFIG"; then 21410 pkg_cv_PIXMAN_LIBS="$PIXMAN_LIBS"
21365 if test -n "$PKG_CONFIG" && \ 21411 else
21412 if test -n "$PKG_CONFIG" && \
21366 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"pixman-1\""; } >&5 21413 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"pixman-1\""; } >&5
21367 ($PKG_CONFIG --exists --print-errors "pixman-1") 2>&5 21414 ($PKG_CONFIG --exists --print-errors "pixman-1") 2>&5
21368 ac_status=$? 21415 ac_status=$?
@@ -21372,15 +21419,14 @@ if test -n "$PIXMAN_LIBS"; then
21372else 21419else
21373 pkg_failed=yes 21420 pkg_failed=yes
21374fi 21421fi
21375 else 21422 fi
21376 pkg_failed=untried 21423else
21424 pkg_failed=untried
21377fi 21425fi
21378 21426
21379 21427
21380 21428
21381if test $pkg_failed = yes; then 21429if test $pkg_failed = yes; then
21382 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21383$as_echo "no" >&6; }
21384 21430
21385if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 21431if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
21386 _pkg_short_errors_supported=yes 21432 _pkg_short_errors_supported=yes
@@ -21388,24 +21434,24 @@ else
21388 _pkg_short_errors_supported=no 21434 _pkg_short_errors_supported=no
21389fi 21435fi
21390 if test $_pkg_short_errors_supported = yes; then 21436 if test $_pkg_short_errors_supported = yes; then
21391 PIXMAN_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "pixman-1" 2>&1` 21437 PIXMAN_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "pixman-1"`
21392 else 21438 else
21393 PIXMAN_PKG_ERRORS=`$PKG_CONFIG --print-errors "pixman-1" 2>&1` 21439 PIXMAN_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "pixman-1"`
21394 fi 21440 fi
21395 # Put the nasty error message in config.log where it belongs 21441 # Put the nasty error message in config.log where it belongs
21396 echo "$PIXMAN_PKG_ERRORS" >&5 21442 echo "$PIXMAN_PKG_ERRORS" >&5
21397 21443
21444 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21445$as_echo "no" >&6; }
21398 21446
21399 if test "x${want_pixman}" = "xyes" -a "x${use_strict}" = "xyes" ; then 21447 if test "x${want_pixman}" = "xyes" -a "x${use_strict}" = "xyes" ; then
21400 as_fn_error $? "Pixman not found (strict dependencies checking)" "$LINENO" 5 21448 as_fn_error "Pixman not found (strict dependencies checking)" "$LINENO" 5
21401 fi 21449 fi
21402 21450
21403elif test $pkg_failed = untried; then 21451elif test $pkg_failed = untried; then
21404 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21405$as_echo "no" >&6; }
21406 21452
21407 if test "x${want_pixman}" = "xyes" -a "x${use_strict}" = "xyes" ; then 21453 if test "x${want_pixman}" = "xyes" -a "x${use_strict}" = "xyes" ; then
21408 as_fn_error $? "Pixman not found (strict dependencies checking)" "$LINENO" 5 21454 as_fn_error "Pixman not found (strict dependencies checking)" "$LINENO" 5
21409 fi 21455 fi
21410 21456
21411else 21457else
@@ -21428,10 +21474,11 @@ pkg_failed=no
21428{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_COMPOSITE" >&5 21474{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_COMPOSITE" >&5
21429$as_echo_n "checking for XCB_COMPOSITE... " >&6; } 21475$as_echo_n "checking for XCB_COMPOSITE... " >&6; }
21430 21476
21431if test -n "$XCB_COMPOSITE_CFLAGS"; then 21477if test -n "$PKG_CONFIG"; then
21432 pkg_cv_XCB_COMPOSITE_CFLAGS="$XCB_COMPOSITE_CFLAGS" 21478 if test -n "$XCB_COMPOSITE_CFLAGS"; then
21433 elif test -n "$PKG_CONFIG"; then 21479 pkg_cv_XCB_COMPOSITE_CFLAGS="$XCB_COMPOSITE_CFLAGS"
21434 if test -n "$PKG_CONFIG" && \ 21480 else
21481 if test -n "$PKG_CONFIG" && \
21435 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-composite\""; } >&5 21482 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-composite\""; } >&5
21436 ($PKG_CONFIG --exists --print-errors "xcb-composite") 2>&5 21483 ($PKG_CONFIG --exists --print-errors "xcb-composite") 2>&5
21437 ac_status=$? 21484 ac_status=$?
@@ -21441,13 +21488,15 @@ if test -n "$XCB_COMPOSITE_CFLAGS"; then
21441else 21488else
21442 pkg_failed=yes 21489 pkg_failed=yes
21443fi 21490fi
21444 else 21491 fi
21445 pkg_failed=untried 21492else
21493 pkg_failed=untried
21446fi 21494fi
21447if test -n "$XCB_COMPOSITE_LIBS"; then 21495if test -n "$PKG_CONFIG"; then
21448 pkg_cv_XCB_COMPOSITE_LIBS="$XCB_COMPOSITE_LIBS" 21496 if test -n "$XCB_COMPOSITE_LIBS"; then
21449 elif test -n "$PKG_CONFIG"; then 21497 pkg_cv_XCB_COMPOSITE_LIBS="$XCB_COMPOSITE_LIBS"
21450 if test -n "$PKG_CONFIG" && \ 21498 else
21499 if test -n "$PKG_CONFIG" && \
21451 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-composite\""; } >&5 21500 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-composite\""; } >&5
21452 ($PKG_CONFIG --exists --print-errors "xcb-composite") 2>&5 21501 ($PKG_CONFIG --exists --print-errors "xcb-composite") 2>&5
21453 ac_status=$? 21502 ac_status=$?
@@ -21457,15 +21506,14 @@ if test -n "$XCB_COMPOSITE_LIBS"; then
21457else 21506else
21458 pkg_failed=yes 21507 pkg_failed=yes
21459fi 21508fi
21460 else 21509 fi
21461 pkg_failed=untried 21510else
21511 pkg_failed=untried
21462fi 21512fi
21463 21513
21464 21514
21465 21515
21466if test $pkg_failed = yes; then 21516if test $pkg_failed = yes; then
21467 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21468$as_echo "no" >&6; }
21469 21517
21470if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 21518if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
21471 _pkg_short_errors_supported=yes 21519 _pkg_short_errors_supported=yes
@@ -21473,17 +21521,17 @@ else
21473 _pkg_short_errors_supported=no 21521 _pkg_short_errors_supported=no
21474fi 21522fi
21475 if test $_pkg_short_errors_supported = yes; then 21523 if test $_pkg_short_errors_supported = yes; then
21476 XCB_COMPOSITE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "xcb-composite" 2>&1` 21524 XCB_COMPOSITE_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "xcb-composite"`
21477 else 21525 else
21478 XCB_COMPOSITE_PKG_ERRORS=`$PKG_CONFIG --print-errors "xcb-composite" 2>&1` 21526 XCB_COMPOSITE_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "xcb-composite"`
21479 fi 21527 fi
21480 # Put the nasty error message in config.log where it belongs 21528 # Put the nasty error message in config.log where it belongs
21481 echo "$XCB_COMPOSITE_PKG_ERRORS" >&5 21529 echo "$XCB_COMPOSITE_PKG_ERRORS" >&5
21482 21530
21483 have_ecore_x_xcb_composite="no" 21531 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21484elif test $pkg_failed = untried; then
21485 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21486$as_echo "no" >&6; } 21532$as_echo "no" >&6; }
21533 have_ecore_x_xcb_composite="no"
21534elif test $pkg_failed = untried; then
21487 have_ecore_x_xcb_composite="no" 21535 have_ecore_x_xcb_composite="no"
21488else 21536else
21489 XCB_COMPOSITE_CFLAGS=$pkg_cv_XCB_COMPOSITE_CFLAGS 21537 XCB_COMPOSITE_CFLAGS=$pkg_cv_XCB_COMPOSITE_CFLAGS
@@ -21508,10 +21556,11 @@ pkg_failed=no
21508{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_DAMAGE" >&5 21556{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_DAMAGE" >&5
21509$as_echo_n "checking for XCB_DAMAGE... " >&6; } 21557$as_echo_n "checking for XCB_DAMAGE... " >&6; }
21510 21558
21511if test -n "$XCB_DAMAGE_CFLAGS"; then 21559if test -n "$PKG_CONFIG"; then
21512 pkg_cv_XCB_DAMAGE_CFLAGS="$XCB_DAMAGE_CFLAGS" 21560 if test -n "$XCB_DAMAGE_CFLAGS"; then
21513 elif test -n "$PKG_CONFIG"; then 21561 pkg_cv_XCB_DAMAGE_CFLAGS="$XCB_DAMAGE_CFLAGS"
21514 if test -n "$PKG_CONFIG" && \ 21562 else
21563 if test -n "$PKG_CONFIG" && \
21515 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-damage\""; } >&5 21564 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-damage\""; } >&5
21516 ($PKG_CONFIG --exists --print-errors "xcb-damage") 2>&5 21565 ($PKG_CONFIG --exists --print-errors "xcb-damage") 2>&5
21517 ac_status=$? 21566 ac_status=$?
@@ -21521,13 +21570,15 @@ if test -n "$XCB_DAMAGE_CFLAGS"; then
21521else 21570else
21522 pkg_failed=yes 21571 pkg_failed=yes
21523fi 21572fi
21524 else 21573 fi
21525 pkg_failed=untried 21574else
21575 pkg_failed=untried
21526fi 21576fi
21527if test -n "$XCB_DAMAGE_LIBS"; then 21577if test -n "$PKG_CONFIG"; then
21528 pkg_cv_XCB_DAMAGE_LIBS="$XCB_DAMAGE_LIBS" 21578 if test -n "$XCB_DAMAGE_LIBS"; then
21529 elif test -n "$PKG_CONFIG"; then 21579 pkg_cv_XCB_DAMAGE_LIBS="$XCB_DAMAGE_LIBS"
21530 if test -n "$PKG_CONFIG" && \ 21580 else
21581 if test -n "$PKG_CONFIG" && \
21531 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-damage\""; } >&5 21582 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-damage\""; } >&5
21532 ($PKG_CONFIG --exists --print-errors "xcb-damage") 2>&5 21583 ($PKG_CONFIG --exists --print-errors "xcb-damage") 2>&5
21533 ac_status=$? 21584 ac_status=$?
@@ -21537,15 +21588,14 @@ if test -n "$XCB_DAMAGE_LIBS"; then
21537else 21588else
21538 pkg_failed=yes 21589 pkg_failed=yes
21539fi 21590fi
21540 else 21591 fi
21541 pkg_failed=untried 21592else
21593 pkg_failed=untried
21542fi 21594fi
21543 21595
21544 21596
21545 21597
21546if test $pkg_failed = yes; then 21598if test $pkg_failed = yes; then
21547 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21548$as_echo "no" >&6; }
21549 21599
21550if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 21600if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
21551 _pkg_short_errors_supported=yes 21601 _pkg_short_errors_supported=yes
@@ -21553,17 +21603,17 @@ else
21553 _pkg_short_errors_supported=no 21603 _pkg_short_errors_supported=no
21554fi 21604fi
21555 if test $_pkg_short_errors_supported = yes; then 21605 if test $_pkg_short_errors_supported = yes; then
21556 XCB_DAMAGE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "xcb-damage" 2>&1` 21606 XCB_DAMAGE_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "xcb-damage"`
21557 else 21607 else
21558 XCB_DAMAGE_PKG_ERRORS=`$PKG_CONFIG --print-errors "xcb-damage" 2>&1` 21608 XCB_DAMAGE_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "xcb-damage"`
21559 fi 21609 fi
21560 # Put the nasty error message in config.log where it belongs 21610 # Put the nasty error message in config.log where it belongs
21561 echo "$XCB_DAMAGE_PKG_ERRORS" >&5 21611 echo "$XCB_DAMAGE_PKG_ERRORS" >&5
21562 21612
21563 have_ecore_x_xcb_damage="no" 21613 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21564elif test $pkg_failed = untried; then
21565 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21566$as_echo "no" >&6; } 21614$as_echo "no" >&6; }
21615 have_ecore_x_xcb_damage="no"
21616elif test $pkg_failed = untried; then
21567 have_ecore_x_xcb_damage="no" 21617 have_ecore_x_xcb_damage="no"
21568else 21618else
21569 XCB_DAMAGE_CFLAGS=$pkg_cv_XCB_DAMAGE_CFLAGS 21619 XCB_DAMAGE_CFLAGS=$pkg_cv_XCB_DAMAGE_CFLAGS
@@ -21588,10 +21638,11 @@ pkg_failed=no
21588{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_DPMS" >&5 21638{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_DPMS" >&5
21589$as_echo_n "checking for XCB_DPMS... " >&6; } 21639$as_echo_n "checking for XCB_DPMS... " >&6; }
21590 21640
21591if test -n "$XCB_DPMS_CFLAGS"; then 21641if test -n "$PKG_CONFIG"; then
21592 pkg_cv_XCB_DPMS_CFLAGS="$XCB_DPMS_CFLAGS" 21642 if test -n "$XCB_DPMS_CFLAGS"; then
21593 elif test -n "$PKG_CONFIG"; then 21643 pkg_cv_XCB_DPMS_CFLAGS="$XCB_DPMS_CFLAGS"
21594 if test -n "$PKG_CONFIG" && \ 21644 else
21645 if test -n "$PKG_CONFIG" && \
21595 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-dpms\""; } >&5 21646 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-dpms\""; } >&5
21596 ($PKG_CONFIG --exists --print-errors "xcb-dpms") 2>&5 21647 ($PKG_CONFIG --exists --print-errors "xcb-dpms") 2>&5
21597 ac_status=$? 21648 ac_status=$?
@@ -21601,13 +21652,15 @@ if test -n "$XCB_DPMS_CFLAGS"; then
21601else 21652else
21602 pkg_failed=yes 21653 pkg_failed=yes
21603fi 21654fi
21604 else 21655 fi
21605 pkg_failed=untried 21656else
21657 pkg_failed=untried
21606fi 21658fi
21607if test -n "$XCB_DPMS_LIBS"; then 21659if test -n "$PKG_CONFIG"; then
21608 pkg_cv_XCB_DPMS_LIBS="$XCB_DPMS_LIBS" 21660 if test -n "$XCB_DPMS_LIBS"; then
21609 elif test -n "$PKG_CONFIG"; then 21661 pkg_cv_XCB_DPMS_LIBS="$XCB_DPMS_LIBS"
21610 if test -n "$PKG_CONFIG" && \ 21662 else
21663 if test -n "$PKG_CONFIG" && \
21611 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-dpms\""; } >&5 21664 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-dpms\""; } >&5
21612 ($PKG_CONFIG --exists --print-errors "xcb-dpms") 2>&5 21665 ($PKG_CONFIG --exists --print-errors "xcb-dpms") 2>&5
21613 ac_status=$? 21666 ac_status=$?
@@ -21617,15 +21670,14 @@ if test -n "$XCB_DPMS_LIBS"; then
21617else 21670else
21618 pkg_failed=yes 21671 pkg_failed=yes
21619fi 21672fi
21620 else 21673 fi
21621 pkg_failed=untried 21674else
21675 pkg_failed=untried
21622fi 21676fi
21623 21677
21624 21678
21625 21679
21626if test $pkg_failed = yes; then 21680if test $pkg_failed = yes; then
21627 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21628$as_echo "no" >&6; }
21629 21681
21630if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 21682if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
21631 _pkg_short_errors_supported=yes 21683 _pkg_short_errors_supported=yes
@@ -21633,17 +21685,17 @@ else
21633 _pkg_short_errors_supported=no 21685 _pkg_short_errors_supported=no
21634fi 21686fi
21635 if test $_pkg_short_errors_supported = yes; then 21687 if test $_pkg_short_errors_supported = yes; then
21636 XCB_DPMS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "xcb-dpms" 2>&1` 21688 XCB_DPMS_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "xcb-dpms"`
21637 else 21689 else
21638 XCB_DPMS_PKG_ERRORS=`$PKG_CONFIG --print-errors "xcb-dpms" 2>&1` 21690 XCB_DPMS_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "xcb-dpms"`
21639 fi 21691 fi
21640 # Put the nasty error message in config.log where it belongs 21692 # Put the nasty error message in config.log where it belongs
21641 echo "$XCB_DPMS_PKG_ERRORS" >&5 21693 echo "$XCB_DPMS_PKG_ERRORS" >&5
21642 21694
21643 have_ecore_x_xcb_dpms="no" 21695 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21644elif test $pkg_failed = untried; then
21645 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21646$as_echo "no" >&6; } 21696$as_echo "no" >&6; }
21697 have_ecore_x_xcb_dpms="no"
21698elif test $pkg_failed = untried; then
21647 have_ecore_x_xcb_dpms="no" 21699 have_ecore_x_xcb_dpms="no"
21648else 21700else
21649 XCB_DPMS_CFLAGS=$pkg_cv_XCB_DPMS_CFLAGS 21701 XCB_DPMS_CFLAGS=$pkg_cv_XCB_DPMS_CFLAGS
@@ -21668,10 +21720,11 @@ pkg_failed=no
21668{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_RANDR" >&5 21720{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_RANDR" >&5
21669$as_echo_n "checking for XCB_RANDR... " >&6; } 21721$as_echo_n "checking for XCB_RANDR... " >&6; }
21670 21722
21671if test -n "$XCB_RANDR_CFLAGS"; then 21723if test -n "$PKG_CONFIG"; then
21672 pkg_cv_XCB_RANDR_CFLAGS="$XCB_RANDR_CFLAGS" 21724 if test -n "$XCB_RANDR_CFLAGS"; then
21673 elif test -n "$PKG_CONFIG"; then 21725 pkg_cv_XCB_RANDR_CFLAGS="$XCB_RANDR_CFLAGS"
21674 if test -n "$PKG_CONFIG" && \ 21726 else
21727 if test -n "$PKG_CONFIG" && \
21675 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-randr\""; } >&5 21728 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-randr\""; } >&5
21676 ($PKG_CONFIG --exists --print-errors "xcb-randr") 2>&5 21729 ($PKG_CONFIG --exists --print-errors "xcb-randr") 2>&5
21677 ac_status=$? 21730 ac_status=$?
@@ -21681,13 +21734,15 @@ if test -n "$XCB_RANDR_CFLAGS"; then
21681else 21734else
21682 pkg_failed=yes 21735 pkg_failed=yes
21683fi 21736fi
21684 else 21737 fi
21685 pkg_failed=untried 21738else
21739 pkg_failed=untried
21686fi 21740fi
21687if test -n "$XCB_RANDR_LIBS"; then 21741if test -n "$PKG_CONFIG"; then
21688 pkg_cv_XCB_RANDR_LIBS="$XCB_RANDR_LIBS" 21742 if test -n "$XCB_RANDR_LIBS"; then
21689 elif test -n "$PKG_CONFIG"; then 21743 pkg_cv_XCB_RANDR_LIBS="$XCB_RANDR_LIBS"
21690 if test -n "$PKG_CONFIG" && \ 21744 else
21745 if test -n "$PKG_CONFIG" && \
21691 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-randr\""; } >&5 21746 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-randr\""; } >&5
21692 ($PKG_CONFIG --exists --print-errors "xcb-randr") 2>&5 21747 ($PKG_CONFIG --exists --print-errors "xcb-randr") 2>&5
21693 ac_status=$? 21748 ac_status=$?
@@ -21697,15 +21752,14 @@ if test -n "$XCB_RANDR_LIBS"; then
21697else 21752else
21698 pkg_failed=yes 21753 pkg_failed=yes
21699fi 21754fi
21700 else 21755 fi
21701 pkg_failed=untried 21756else
21757 pkg_failed=untried
21702fi 21758fi
21703 21759
21704 21760
21705 21761
21706if test $pkg_failed = yes; then 21762if test $pkg_failed = yes; then
21707 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21708$as_echo "no" >&6; }
21709 21763
21710if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 21764if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
21711 _pkg_short_errors_supported=yes 21765 _pkg_short_errors_supported=yes
@@ -21713,17 +21767,17 @@ else
21713 _pkg_short_errors_supported=no 21767 _pkg_short_errors_supported=no
21714fi 21768fi
21715 if test $_pkg_short_errors_supported = yes; then 21769 if test $_pkg_short_errors_supported = yes; then
21716 XCB_RANDR_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "xcb-randr" 2>&1` 21770 XCB_RANDR_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "xcb-randr"`
21717 else 21771 else
21718 XCB_RANDR_PKG_ERRORS=`$PKG_CONFIG --print-errors "xcb-randr" 2>&1` 21772 XCB_RANDR_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "xcb-randr"`
21719 fi 21773 fi
21720 # Put the nasty error message in config.log where it belongs 21774 # Put the nasty error message in config.log where it belongs
21721 echo "$XCB_RANDR_PKG_ERRORS" >&5 21775 echo "$XCB_RANDR_PKG_ERRORS" >&5
21722 21776
21723 have_ecore_x_xcb_randr="no" 21777 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21724elif test $pkg_failed = untried; then
21725 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21726$as_echo "no" >&6; } 21778$as_echo "no" >&6; }
21779 have_ecore_x_xcb_randr="no"
21780elif test $pkg_failed = untried; then
21727 have_ecore_x_xcb_randr="no" 21781 have_ecore_x_xcb_randr="no"
21728else 21782else
21729 XCB_RANDR_CFLAGS=$pkg_cv_XCB_RANDR_CFLAGS 21783 XCB_RANDR_CFLAGS=$pkg_cv_XCB_RANDR_CFLAGS
@@ -21748,10 +21802,11 @@ pkg_failed=no
21748{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_RENDER" >&5 21802{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_RENDER" >&5
21749$as_echo_n "checking for XCB_RENDER... " >&6; } 21803$as_echo_n "checking for XCB_RENDER... " >&6; }
21750 21804
21751if test -n "$XCB_RENDER_CFLAGS"; then 21805if test -n "$PKG_CONFIG"; then
21752 pkg_cv_XCB_RENDER_CFLAGS="$XCB_RENDER_CFLAGS" 21806 if test -n "$XCB_RENDER_CFLAGS"; then
21753 elif test -n "$PKG_CONFIG"; then 21807 pkg_cv_XCB_RENDER_CFLAGS="$XCB_RENDER_CFLAGS"
21754 if test -n "$PKG_CONFIG" && \ 21808 else
21809 if test -n "$PKG_CONFIG" && \
21755 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-render xcb-renderutil\""; } >&5 21810 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-render xcb-renderutil\""; } >&5
21756 ($PKG_CONFIG --exists --print-errors "xcb-render xcb-renderutil") 2>&5 21811 ($PKG_CONFIG --exists --print-errors "xcb-render xcb-renderutil") 2>&5
21757 ac_status=$? 21812 ac_status=$?
@@ -21761,13 +21816,15 @@ if test -n "$XCB_RENDER_CFLAGS"; then
21761else 21816else
21762 pkg_failed=yes 21817 pkg_failed=yes
21763fi 21818fi
21764 else 21819 fi
21765 pkg_failed=untried 21820else
21821 pkg_failed=untried
21766fi 21822fi
21767if test -n "$XCB_RENDER_LIBS"; then 21823if test -n "$PKG_CONFIG"; then
21768 pkg_cv_XCB_RENDER_LIBS="$XCB_RENDER_LIBS" 21824 if test -n "$XCB_RENDER_LIBS"; then
21769 elif test -n "$PKG_CONFIG"; then 21825 pkg_cv_XCB_RENDER_LIBS="$XCB_RENDER_LIBS"
21770 if test -n "$PKG_CONFIG" && \ 21826 else
21827 if test -n "$PKG_CONFIG" && \
21771 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-render xcb-renderutil\""; } >&5 21828 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-render xcb-renderutil\""; } >&5
21772 ($PKG_CONFIG --exists --print-errors "xcb-render xcb-renderutil") 2>&5 21829 ($PKG_CONFIG --exists --print-errors "xcb-render xcb-renderutil") 2>&5
21773 ac_status=$? 21830 ac_status=$?
@@ -21777,15 +21834,14 @@ if test -n "$XCB_RENDER_LIBS"; then
21777else 21834else
21778 pkg_failed=yes 21835 pkg_failed=yes
21779fi 21836fi
21780 else 21837 fi
21781 pkg_failed=untried 21838else
21839 pkg_failed=untried
21782fi 21840fi
21783 21841
21784 21842
21785 21843
21786if test $pkg_failed = yes; then 21844if test $pkg_failed = yes; then
21787 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21788$as_echo "no" >&6; }
21789 21845
21790if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 21846if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
21791 _pkg_short_errors_supported=yes 21847 _pkg_short_errors_supported=yes
@@ -21793,17 +21849,17 @@ else
21793 _pkg_short_errors_supported=no 21849 _pkg_short_errors_supported=no
21794fi 21850fi
21795 if test $_pkg_short_errors_supported = yes; then 21851 if test $_pkg_short_errors_supported = yes; then
21796 XCB_RENDER_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "xcb-render xcb-renderutil" 2>&1` 21852 XCB_RENDER_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "xcb-render xcb-renderutil"`
21797 else 21853 else
21798 XCB_RENDER_PKG_ERRORS=`$PKG_CONFIG --print-errors "xcb-render xcb-renderutil" 2>&1` 21854 XCB_RENDER_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "xcb-render xcb-renderutil"`
21799 fi 21855 fi
21800 # Put the nasty error message in config.log where it belongs 21856 # Put the nasty error message in config.log where it belongs
21801 echo "$XCB_RENDER_PKG_ERRORS" >&5 21857 echo "$XCB_RENDER_PKG_ERRORS" >&5
21802 21858
21803 have_ecore_x_xcb_render="no" 21859 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21804elif test $pkg_failed = untried; then
21805 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21806$as_echo "no" >&6; } 21860$as_echo "no" >&6; }
21861 have_ecore_x_xcb_render="no"
21862elif test $pkg_failed = untried; then
21807 have_ecore_x_xcb_render="no" 21863 have_ecore_x_xcb_render="no"
21808else 21864else
21809 XCB_RENDER_CFLAGS=$pkg_cv_XCB_RENDER_CFLAGS 21865 XCB_RENDER_CFLAGS=$pkg_cv_XCB_RENDER_CFLAGS
@@ -21828,10 +21884,11 @@ pkg_failed=no
21828{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_SCREENSAVER" >&5 21884{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_SCREENSAVER" >&5
21829$as_echo_n "checking for XCB_SCREENSAVER... " >&6; } 21885$as_echo_n "checking for XCB_SCREENSAVER... " >&6; }
21830 21886
21831if test -n "$XCB_SCREENSAVER_CFLAGS"; then 21887if test -n "$PKG_CONFIG"; then
21832 pkg_cv_XCB_SCREENSAVER_CFLAGS="$XCB_SCREENSAVER_CFLAGS" 21888 if test -n "$XCB_SCREENSAVER_CFLAGS"; then
21833 elif test -n "$PKG_CONFIG"; then 21889 pkg_cv_XCB_SCREENSAVER_CFLAGS="$XCB_SCREENSAVER_CFLAGS"
21834 if test -n "$PKG_CONFIG" && \ 21890 else
21891 if test -n "$PKG_CONFIG" && \
21835 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-screensaver\""; } >&5 21892 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-screensaver\""; } >&5
21836 ($PKG_CONFIG --exists --print-errors "xcb-screensaver") 2>&5 21893 ($PKG_CONFIG --exists --print-errors "xcb-screensaver") 2>&5
21837 ac_status=$? 21894 ac_status=$?
@@ -21841,13 +21898,15 @@ if test -n "$XCB_SCREENSAVER_CFLAGS"; then
21841else 21898else
21842 pkg_failed=yes 21899 pkg_failed=yes
21843fi 21900fi
21844 else 21901 fi
21845 pkg_failed=untried 21902else
21903 pkg_failed=untried
21846fi 21904fi
21847if test -n "$XCB_SCREENSAVER_LIBS"; then 21905if test -n "$PKG_CONFIG"; then
21848 pkg_cv_XCB_SCREENSAVER_LIBS="$XCB_SCREENSAVER_LIBS" 21906 if test -n "$XCB_SCREENSAVER_LIBS"; then
21849 elif test -n "$PKG_CONFIG"; then 21907 pkg_cv_XCB_SCREENSAVER_LIBS="$XCB_SCREENSAVER_LIBS"
21850 if test -n "$PKG_CONFIG" && \ 21908 else
21909 if test -n "$PKG_CONFIG" && \
21851 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-screensaver\""; } >&5 21910 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-screensaver\""; } >&5
21852 ($PKG_CONFIG --exists --print-errors "xcb-screensaver") 2>&5 21911 ($PKG_CONFIG --exists --print-errors "xcb-screensaver") 2>&5
21853 ac_status=$? 21912 ac_status=$?
@@ -21857,15 +21916,14 @@ if test -n "$XCB_SCREENSAVER_LIBS"; then
21857else 21916else
21858 pkg_failed=yes 21917 pkg_failed=yes
21859fi 21918fi
21860 else 21919 fi
21861 pkg_failed=untried 21920else
21921 pkg_failed=untried
21862fi 21922fi
21863 21923
21864 21924
21865 21925
21866if test $pkg_failed = yes; then 21926if test $pkg_failed = yes; then
21867 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21868$as_echo "no" >&6; }
21869 21927
21870if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 21928if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
21871 _pkg_short_errors_supported=yes 21929 _pkg_short_errors_supported=yes
@@ -21873,17 +21931,17 @@ else
21873 _pkg_short_errors_supported=no 21931 _pkg_short_errors_supported=no
21874fi 21932fi
21875 if test $_pkg_short_errors_supported = yes; then 21933 if test $_pkg_short_errors_supported = yes; then
21876 XCB_SCREENSAVER_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "xcb-screensaver" 2>&1` 21934 XCB_SCREENSAVER_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "xcb-screensaver"`
21877 else 21935 else
21878 XCB_SCREENSAVER_PKG_ERRORS=`$PKG_CONFIG --print-errors "xcb-screensaver" 2>&1` 21936 XCB_SCREENSAVER_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "xcb-screensaver"`
21879 fi 21937 fi
21880 # Put the nasty error message in config.log where it belongs 21938 # Put the nasty error message in config.log where it belongs
21881 echo "$XCB_SCREENSAVER_PKG_ERRORS" >&5 21939 echo "$XCB_SCREENSAVER_PKG_ERRORS" >&5
21882 21940
21883 have_ecore_x_xcb_screensaver="no" 21941 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21884elif test $pkg_failed = untried; then
21885 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21886$as_echo "no" >&6; } 21942$as_echo "no" >&6; }
21943 have_ecore_x_xcb_screensaver="no"
21944elif test $pkg_failed = untried; then
21887 have_ecore_x_xcb_screensaver="no" 21945 have_ecore_x_xcb_screensaver="no"
21888else 21946else
21889 XCB_SCREENSAVER_CFLAGS=$pkg_cv_XCB_SCREENSAVER_CFLAGS 21947 XCB_SCREENSAVER_CFLAGS=$pkg_cv_XCB_SCREENSAVER_CFLAGS
@@ -21908,10 +21966,11 @@ pkg_failed=no
21908{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_SHAPE" >&5 21966{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_SHAPE" >&5
21909$as_echo_n "checking for XCB_SHAPE... " >&6; } 21967$as_echo_n "checking for XCB_SHAPE... " >&6; }
21910 21968
21911if test -n "$XCB_SHAPE_CFLAGS"; then 21969if test -n "$PKG_CONFIG"; then
21912 pkg_cv_XCB_SHAPE_CFLAGS="$XCB_SHAPE_CFLAGS" 21970 if test -n "$XCB_SHAPE_CFLAGS"; then
21913 elif test -n "$PKG_CONFIG"; then 21971 pkg_cv_XCB_SHAPE_CFLAGS="$XCB_SHAPE_CFLAGS"
21914 if test -n "$PKG_CONFIG" && \ 21972 else
21973 if test -n "$PKG_CONFIG" && \
21915 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-shape\""; } >&5 21974 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-shape\""; } >&5
21916 ($PKG_CONFIG --exists --print-errors "xcb-shape") 2>&5 21975 ($PKG_CONFIG --exists --print-errors "xcb-shape") 2>&5
21917 ac_status=$? 21976 ac_status=$?
@@ -21921,13 +21980,15 @@ if test -n "$XCB_SHAPE_CFLAGS"; then
21921else 21980else
21922 pkg_failed=yes 21981 pkg_failed=yes
21923fi 21982fi
21924 else 21983 fi
21925 pkg_failed=untried 21984else
21985 pkg_failed=untried
21926fi 21986fi
21927if test -n "$XCB_SHAPE_LIBS"; then 21987if test -n "$PKG_CONFIG"; then
21928 pkg_cv_XCB_SHAPE_LIBS="$XCB_SHAPE_LIBS" 21988 if test -n "$XCB_SHAPE_LIBS"; then
21929 elif test -n "$PKG_CONFIG"; then 21989 pkg_cv_XCB_SHAPE_LIBS="$XCB_SHAPE_LIBS"
21930 if test -n "$PKG_CONFIG" && \ 21990 else
21991 if test -n "$PKG_CONFIG" && \
21931 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-shape\""; } >&5 21992 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-shape\""; } >&5
21932 ($PKG_CONFIG --exists --print-errors "xcb-shape") 2>&5 21993 ($PKG_CONFIG --exists --print-errors "xcb-shape") 2>&5
21933 ac_status=$? 21994 ac_status=$?
@@ -21937,15 +21998,14 @@ if test -n "$XCB_SHAPE_LIBS"; then
21937else 21998else
21938 pkg_failed=yes 21999 pkg_failed=yes
21939fi 22000fi
21940 else 22001 fi
21941 pkg_failed=untried 22002else
22003 pkg_failed=untried
21942fi 22004fi
21943 22005
21944 22006
21945 22007
21946if test $pkg_failed = yes; then 22008if test $pkg_failed = yes; then
21947 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21948$as_echo "no" >&6; }
21949 22009
21950if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 22010if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
21951 _pkg_short_errors_supported=yes 22011 _pkg_short_errors_supported=yes
@@ -21953,17 +22013,17 @@ else
21953 _pkg_short_errors_supported=no 22013 _pkg_short_errors_supported=no
21954fi 22014fi
21955 if test $_pkg_short_errors_supported = yes; then 22015 if test $_pkg_short_errors_supported = yes; then
21956 XCB_SHAPE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "xcb-shape" 2>&1` 22016 XCB_SHAPE_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "xcb-shape"`
21957 else 22017 else
21958 XCB_SHAPE_PKG_ERRORS=`$PKG_CONFIG --print-errors "xcb-shape" 2>&1` 22018 XCB_SHAPE_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "xcb-shape"`
21959 fi 22019 fi
21960 # Put the nasty error message in config.log where it belongs 22020 # Put the nasty error message in config.log where it belongs
21961 echo "$XCB_SHAPE_PKG_ERRORS" >&5 22021 echo "$XCB_SHAPE_PKG_ERRORS" >&5
21962 22022
21963 have_ecore_x_xcb_shape="no" 22023 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21964elif test $pkg_failed = untried; then
21965 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21966$as_echo "no" >&6; } 22024$as_echo "no" >&6; }
22025 have_ecore_x_xcb_shape="no"
22026elif test $pkg_failed = untried; then
21967 have_ecore_x_xcb_shape="no" 22027 have_ecore_x_xcb_shape="no"
21968else 22028else
21969 XCB_SHAPE_CFLAGS=$pkg_cv_XCB_SHAPE_CFLAGS 22029 XCB_SHAPE_CFLAGS=$pkg_cv_XCB_SHAPE_CFLAGS
@@ -21988,10 +22048,11 @@ pkg_failed=no
21988{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_XGESTURE" >&5 22048{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_XGESTURE" >&5
21989$as_echo_n "checking for XCB_XGESTURE... " >&6; } 22049$as_echo_n "checking for XCB_XGESTURE... " >&6; }
21990 22050
21991if test -n "$XCB_XGESTURE_CFLAGS"; then 22051if test -n "$PKG_CONFIG"; then
21992 pkg_cv_XCB_XGESTURE_CFLAGS="$XCB_XGESTURE_CFLAGS" 22052 if test -n "$XCB_XGESTURE_CFLAGS"; then
21993 elif test -n "$PKG_CONFIG"; then 22053 pkg_cv_XCB_XGESTURE_CFLAGS="$XCB_XGESTURE_CFLAGS"
21994 if test -n "$PKG_CONFIG" && \ 22054 else
22055 if test -n "$PKG_CONFIG" && \
21995 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-gesture\""; } >&5 22056 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-gesture\""; } >&5
21996 ($PKG_CONFIG --exists --print-errors "xcb-gesture") 2>&5 22057 ($PKG_CONFIG --exists --print-errors "xcb-gesture") 2>&5
21997 ac_status=$? 22058 ac_status=$?
@@ -22001,13 +22062,15 @@ if test -n "$XCB_XGESTURE_CFLAGS"; then
22001else 22062else
22002 pkg_failed=yes 22063 pkg_failed=yes
22003fi 22064fi
22004 else 22065 fi
22005 pkg_failed=untried 22066else
22067 pkg_failed=untried
22006fi 22068fi
22007if test -n "$XCB_XGESTURE_LIBS"; then 22069if test -n "$PKG_CONFIG"; then
22008 pkg_cv_XCB_XGESTURE_LIBS="$XCB_XGESTURE_LIBS" 22070 if test -n "$XCB_XGESTURE_LIBS"; then
22009 elif test -n "$PKG_CONFIG"; then 22071 pkg_cv_XCB_XGESTURE_LIBS="$XCB_XGESTURE_LIBS"
22010 if test -n "$PKG_CONFIG" && \ 22072 else
22073 if test -n "$PKG_CONFIG" && \
22011 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-gesture\""; } >&5 22074 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-gesture\""; } >&5
22012 ($PKG_CONFIG --exists --print-errors "xcb-gesture") 2>&5 22075 ($PKG_CONFIG --exists --print-errors "xcb-gesture") 2>&5
22013 ac_status=$? 22076 ac_status=$?
@@ -22017,15 +22080,14 @@ if test -n "$XCB_XGESTURE_LIBS"; then
22017else 22080else
22018 pkg_failed=yes 22081 pkg_failed=yes
22019fi 22082fi
22020 else 22083 fi
22021 pkg_failed=untried 22084else
22085 pkg_failed=untried
22022fi 22086fi
22023 22087
22024 22088
22025 22089
22026if test $pkg_failed = yes; then 22090if test $pkg_failed = yes; then
22027 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
22028$as_echo "no" >&6; }
22029 22091
22030if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 22092if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
22031 _pkg_short_errors_supported=yes 22093 _pkg_short_errors_supported=yes
@@ -22033,17 +22095,17 @@ else
22033 _pkg_short_errors_supported=no 22095 _pkg_short_errors_supported=no
22034fi 22096fi
22035 if test $_pkg_short_errors_supported = yes; then 22097 if test $_pkg_short_errors_supported = yes; then
22036 XCB_XGESTURE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "xcb-gesture" 2>&1` 22098 XCB_XGESTURE_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "xcb-gesture"`
22037 else 22099 else
22038 XCB_XGESTURE_PKG_ERRORS=`$PKG_CONFIG --print-errors "xcb-gesture" 2>&1` 22100 XCB_XGESTURE_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "xcb-gesture"`
22039 fi 22101 fi
22040 # Put the nasty error message in config.log where it belongs 22102 # Put the nasty error message in config.log where it belongs
22041 echo "$XCB_XGESTURE_PKG_ERRORS" >&5 22103 echo "$XCB_XGESTURE_PKG_ERRORS" >&5
22042 22104
22043 have_ecore_x_xcb_gesture="no" 22105 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
22044elif test $pkg_failed = untried; then
22045 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
22046$as_echo "no" >&6; } 22106$as_echo "no" >&6; }
22107 have_ecore_x_xcb_gesture="no"
22108elif test $pkg_failed = untried; then
22047 have_ecore_x_xcb_gesture="no" 22109 have_ecore_x_xcb_gesture="no"
22048else 22110else
22049 XCB_XGESTURE_CFLAGS=$pkg_cv_XCB_XGESTURE_CFLAGS 22111 XCB_XGESTURE_CFLAGS=$pkg_cv_XCB_XGESTURE_CFLAGS
@@ -22068,10 +22130,11 @@ pkg_failed=no
22068{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_SYNC" >&5 22130{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_SYNC" >&5
22069$as_echo_n "checking for XCB_SYNC... " >&6; } 22131$as_echo_n "checking for XCB_SYNC... " >&6; }
22070 22132
22071if test -n "$XCB_SYNC_CFLAGS"; then 22133if test -n "$PKG_CONFIG"; then
22072 pkg_cv_XCB_SYNC_CFLAGS="$XCB_SYNC_CFLAGS" 22134 if test -n "$XCB_SYNC_CFLAGS"; then
22073 elif test -n "$PKG_CONFIG"; then 22135 pkg_cv_XCB_SYNC_CFLAGS="$XCB_SYNC_CFLAGS"
22074 if test -n "$PKG_CONFIG" && \ 22136 else
22137 if test -n "$PKG_CONFIG" && \
22075 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-sync\""; } >&5 22138 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-sync\""; } >&5
22076 ($PKG_CONFIG --exists --print-errors "xcb-sync") 2>&5 22139 ($PKG_CONFIG --exists --print-errors "xcb-sync") 2>&5
22077 ac_status=$? 22140 ac_status=$?
@@ -22081,13 +22144,15 @@ if test -n "$XCB_SYNC_CFLAGS"; then
22081else 22144else
22082 pkg_failed=yes 22145 pkg_failed=yes
22083fi 22146fi
22084 else 22147 fi
22085 pkg_failed=untried 22148else
22149 pkg_failed=untried
22086fi 22150fi
22087if test -n "$XCB_SYNC_LIBS"; then 22151if test -n "$PKG_CONFIG"; then
22088 pkg_cv_XCB_SYNC_LIBS="$XCB_SYNC_LIBS" 22152 if test -n "$XCB_SYNC_LIBS"; then
22089 elif test -n "$PKG_CONFIG"; then 22153 pkg_cv_XCB_SYNC_LIBS="$XCB_SYNC_LIBS"
22090 if test -n "$PKG_CONFIG" && \ 22154 else
22155 if test -n "$PKG_CONFIG" && \
22091 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-sync\""; } >&5 22156 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-sync\""; } >&5
22092 ($PKG_CONFIG --exists --print-errors "xcb-sync") 2>&5 22157 ($PKG_CONFIG --exists --print-errors "xcb-sync") 2>&5
22093 ac_status=$? 22158 ac_status=$?
@@ -22097,15 +22162,14 @@ if test -n "$XCB_SYNC_LIBS"; then
22097else 22162else
22098 pkg_failed=yes 22163 pkg_failed=yes
22099fi 22164fi
22100 else 22165 fi
22101 pkg_failed=untried 22166else
22167 pkg_failed=untried
22102fi 22168fi
22103 22169
22104 22170
22105 22171
22106if test $pkg_failed = yes; then 22172if test $pkg_failed = yes; then
22107 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
22108$as_echo "no" >&6; }
22109 22173
22110if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 22174if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
22111 _pkg_short_errors_supported=yes 22175 _pkg_short_errors_supported=yes
@@ -22113,17 +22177,17 @@ else
22113 _pkg_short_errors_supported=no 22177 _pkg_short_errors_supported=no
22114fi 22178fi
22115 if test $_pkg_short_errors_supported = yes; then 22179 if test $_pkg_short_errors_supported = yes; then
22116 XCB_SYNC_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "xcb-sync" 2>&1` 22180 XCB_SYNC_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "xcb-sync"`
22117 else 22181 else
22118 XCB_SYNC_PKG_ERRORS=`$PKG_CONFIG --print-errors "xcb-sync" 2>&1` 22182 XCB_SYNC_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "xcb-sync"`
22119 fi 22183 fi
22120 # Put the nasty error message in config.log where it belongs 22184 # Put the nasty error message in config.log where it belongs
22121 echo "$XCB_SYNC_PKG_ERRORS" >&5 22185 echo "$XCB_SYNC_PKG_ERRORS" >&5
22122 22186
22123 have_ecore_x_xcb_sync="no" 22187 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
22124elif test $pkg_failed = untried; then
22125 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
22126$as_echo "no" >&6; } 22188$as_echo "no" >&6; }
22189 have_ecore_x_xcb_sync="no"
22190elif test $pkg_failed = untried; then
22127 have_ecore_x_xcb_sync="no" 22191 have_ecore_x_xcb_sync="no"
22128else 22192else
22129 XCB_SYNC_CFLAGS=$pkg_cv_XCB_SYNC_CFLAGS 22193 XCB_SYNC_CFLAGS=$pkg_cv_XCB_SYNC_CFLAGS
@@ -22148,10 +22212,11 @@ pkg_failed=no
22148{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_XFIXES" >&5 22212{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_XFIXES" >&5
22149$as_echo_n "checking for XCB_XFIXES... " >&6; } 22213$as_echo_n "checking for XCB_XFIXES... " >&6; }
22150 22214
22151if test -n "$XCB_XFIXES_CFLAGS"; then 22215if test -n "$PKG_CONFIG"; then
22152 pkg_cv_XCB_XFIXES_CFLAGS="$XCB_XFIXES_CFLAGS" 22216 if test -n "$XCB_XFIXES_CFLAGS"; then
22153 elif test -n "$PKG_CONFIG"; then 22217 pkg_cv_XCB_XFIXES_CFLAGS="$XCB_XFIXES_CFLAGS"
22154 if test -n "$PKG_CONFIG" && \ 22218 else
22219 if test -n "$PKG_CONFIG" && \
22155 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-xfixes\""; } >&5 22220 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-xfixes\""; } >&5
22156 ($PKG_CONFIG --exists --print-errors "xcb-xfixes") 2>&5 22221 ($PKG_CONFIG --exists --print-errors "xcb-xfixes") 2>&5
22157 ac_status=$? 22222 ac_status=$?
@@ -22161,13 +22226,15 @@ if test -n "$XCB_XFIXES_CFLAGS"; then
22161else 22226else
22162 pkg_failed=yes 22227 pkg_failed=yes
22163fi 22228fi
22164 else 22229 fi
22165 pkg_failed=untried 22230else
22231 pkg_failed=untried
22166fi 22232fi
22167if test -n "$XCB_XFIXES_LIBS"; then 22233if test -n "$PKG_CONFIG"; then
22168 pkg_cv_XCB_XFIXES_LIBS="$XCB_XFIXES_LIBS" 22234 if test -n "$XCB_XFIXES_LIBS"; then
22169 elif test -n "$PKG_CONFIG"; then 22235 pkg_cv_XCB_XFIXES_LIBS="$XCB_XFIXES_LIBS"
22170 if test -n "$PKG_CONFIG" && \ 22236 else
22237 if test -n "$PKG_CONFIG" && \
22171 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-xfixes\""; } >&5 22238 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-xfixes\""; } >&5
22172 ($PKG_CONFIG --exists --print-errors "xcb-xfixes") 2>&5 22239 ($PKG_CONFIG --exists --print-errors "xcb-xfixes") 2>&5
22173 ac_status=$? 22240 ac_status=$?
@@ -22177,15 +22244,14 @@ if test -n "$XCB_XFIXES_LIBS"; then
22177else 22244else
22178 pkg_failed=yes 22245 pkg_failed=yes
22179fi 22246fi
22180 else 22247 fi
22181 pkg_failed=untried 22248else
22249 pkg_failed=untried
22182fi 22250fi
22183 22251
22184 22252
22185 22253
22186if test $pkg_failed = yes; then 22254if test $pkg_failed = yes; then
22187 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
22188$as_echo "no" >&6; }
22189 22255
22190if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 22256if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
22191 _pkg_short_errors_supported=yes 22257 _pkg_short_errors_supported=yes
@@ -22193,17 +22259,17 @@ else
22193 _pkg_short_errors_supported=no 22259 _pkg_short_errors_supported=no
22194fi 22260fi
22195 if test $_pkg_short_errors_supported = yes; then 22261 if test $_pkg_short_errors_supported = yes; then
22196 XCB_XFIXES_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "xcb-xfixes" 2>&1` 22262 XCB_XFIXES_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "xcb-xfixes"`
22197 else 22263 else
22198 XCB_XFIXES_PKG_ERRORS=`$PKG_CONFIG --print-errors "xcb-xfixes" 2>&1` 22264 XCB_XFIXES_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "xcb-xfixes"`
22199 fi 22265 fi
22200 # Put the nasty error message in config.log where it belongs 22266 # Put the nasty error message in config.log where it belongs
22201 echo "$XCB_XFIXES_PKG_ERRORS" >&5 22267 echo "$XCB_XFIXES_PKG_ERRORS" >&5
22202 22268
22203 have_ecore_x_xcb_xfixes="no" 22269 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
22204elif test $pkg_failed = untried; then
22205 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
22206$as_echo "no" >&6; } 22270$as_echo "no" >&6; }
22271 have_ecore_x_xcb_xfixes="no"
22272elif test $pkg_failed = untried; then
22207 have_ecore_x_xcb_xfixes="no" 22273 have_ecore_x_xcb_xfixes="no"
22208else 22274else
22209 XCB_XFIXES_CFLAGS=$pkg_cv_XCB_XFIXES_CFLAGS 22275 XCB_XFIXES_CFLAGS=$pkg_cv_XCB_XFIXES_CFLAGS
@@ -22228,10 +22294,11 @@ pkg_failed=no
22228{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_XINERAMA" >&5 22294{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_XINERAMA" >&5
22229$as_echo_n "checking for XCB_XINERAMA... " >&6; } 22295$as_echo_n "checking for XCB_XINERAMA... " >&6; }
22230 22296
22231if test -n "$XCB_XINERAMA_CFLAGS"; then 22297if test -n "$PKG_CONFIG"; then
22232 pkg_cv_XCB_XINERAMA_CFLAGS="$XCB_XINERAMA_CFLAGS" 22298 if test -n "$XCB_XINERAMA_CFLAGS"; then
22233 elif test -n "$PKG_CONFIG"; then 22299 pkg_cv_XCB_XINERAMA_CFLAGS="$XCB_XINERAMA_CFLAGS"
22234 if test -n "$PKG_CONFIG" && \ 22300 else
22301 if test -n "$PKG_CONFIG" && \
22235 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-xinerama\""; } >&5 22302 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-xinerama\""; } >&5
22236 ($PKG_CONFIG --exists --print-errors "xcb-xinerama") 2>&5 22303 ($PKG_CONFIG --exists --print-errors "xcb-xinerama") 2>&5
22237 ac_status=$? 22304 ac_status=$?
@@ -22241,13 +22308,15 @@ if test -n "$XCB_XINERAMA_CFLAGS"; then
22241else 22308else
22242 pkg_failed=yes 22309 pkg_failed=yes
22243fi 22310fi
22244 else 22311 fi
22245 pkg_failed=untried 22312else
22313 pkg_failed=untried
22246fi 22314fi
22247if test -n "$XCB_XINERAMA_LIBS"; then 22315if test -n "$PKG_CONFIG"; then
22248 pkg_cv_XCB_XINERAMA_LIBS="$XCB_XINERAMA_LIBS" 22316 if test -n "$XCB_XINERAMA_LIBS"; then
22249 elif test -n "$PKG_CONFIG"; then 22317 pkg_cv_XCB_XINERAMA_LIBS="$XCB_XINERAMA_LIBS"
22250 if test -n "$PKG_CONFIG" && \ 22318 else
22319 if test -n "$PKG_CONFIG" && \
22251 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-xinerama\""; } >&5 22320 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-xinerama\""; } >&5
22252 ($PKG_CONFIG --exists --print-errors "xcb-xinerama") 2>&5 22321 ($PKG_CONFIG --exists --print-errors "xcb-xinerama") 2>&5
22253 ac_status=$? 22322 ac_status=$?
@@ -22257,15 +22326,14 @@ if test -n "$XCB_XINERAMA_LIBS"; then
22257else 22326else
22258 pkg_failed=yes 22327 pkg_failed=yes
22259fi 22328fi
22260 else 22329 fi
22261 pkg_failed=untried 22330else
22331 pkg_failed=untried
22262fi 22332fi
22263 22333
22264 22334
22265 22335
22266if test $pkg_failed = yes; then 22336if test $pkg_failed = yes; then
22267 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
22268$as_echo "no" >&6; }
22269 22337
22270if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 22338if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
22271 _pkg_short_errors_supported=yes 22339 _pkg_short_errors_supported=yes
@@ -22273,17 +22341,17 @@ else
22273 _pkg_short_errors_supported=no 22341 _pkg_short_errors_supported=no
22274fi 22342fi
22275 if test $_pkg_short_errors_supported = yes; then 22343 if test $_pkg_short_errors_supported = yes; then
22276 XCB_XINERAMA_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "xcb-xinerama" 2>&1` 22344 XCB_XINERAMA_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "xcb-xinerama"`
22277 else 22345 else
22278 XCB_XINERAMA_PKG_ERRORS=`$PKG_CONFIG --print-errors "xcb-xinerama" 2>&1` 22346 XCB_XINERAMA_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "xcb-xinerama"`
22279 fi 22347 fi
22280 # Put the nasty error message in config.log where it belongs 22348 # Put the nasty error message in config.log where it belongs
22281 echo "$XCB_XINERAMA_PKG_ERRORS" >&5 22349 echo "$XCB_XINERAMA_PKG_ERRORS" >&5
22282 22350
22283 have_ecore_x_xcb_xinerama="no" 22351 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
22284elif test $pkg_failed = untried; then
22285 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
22286$as_echo "no" >&6; } 22352$as_echo "no" >&6; }
22353 have_ecore_x_xcb_xinerama="no"
22354elif test $pkg_failed = untried; then
22287 have_ecore_x_xcb_xinerama="no" 22355 have_ecore_x_xcb_xinerama="no"
22288else 22356else
22289 XCB_XINERAMA_CFLAGS=$pkg_cv_XCB_XINERAMA_CFLAGS 22357 XCB_XINERAMA_CFLAGS=$pkg_cv_XCB_XINERAMA_CFLAGS
@@ -22308,10 +22376,11 @@ pkg_failed=no
22308{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_XPRINT" >&5 22376{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_XPRINT" >&5
22309$as_echo_n "checking for XCB_XPRINT... " >&6; } 22377$as_echo_n "checking for XCB_XPRINT... " >&6; }
22310 22378
22311if test -n "$XCB_XPRINT_CFLAGS"; then 22379if test -n "$PKG_CONFIG"; then
22312 pkg_cv_XCB_XPRINT_CFLAGS="$XCB_XPRINT_CFLAGS" 22380 if test -n "$XCB_XPRINT_CFLAGS"; then
22313 elif test -n "$PKG_CONFIG"; then 22381 pkg_cv_XCB_XPRINT_CFLAGS="$XCB_XPRINT_CFLAGS"
22314 if test -n "$PKG_CONFIG" && \ 22382 else
22383 if test -n "$PKG_CONFIG" && \
22315 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-xprint\""; } >&5 22384 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-xprint\""; } >&5
22316 ($PKG_CONFIG --exists --print-errors "xcb-xprint") 2>&5 22385 ($PKG_CONFIG --exists --print-errors "xcb-xprint") 2>&5
22317 ac_status=$? 22386 ac_status=$?
@@ -22321,13 +22390,15 @@ if test -n "$XCB_XPRINT_CFLAGS"; then
22321else 22390else
22322 pkg_failed=yes 22391 pkg_failed=yes
22323fi 22392fi
22324 else 22393 fi
22325 pkg_failed=untried 22394else
22395 pkg_failed=untried
22326fi 22396fi
22327if test -n "$XCB_XPRINT_LIBS"; then 22397if test -n "$PKG_CONFIG"; then
22328 pkg_cv_XCB_XPRINT_LIBS="$XCB_XPRINT_LIBS" 22398 if test -n "$XCB_XPRINT_LIBS"; then
22329 elif test -n "$PKG_CONFIG"; then 22399 pkg_cv_XCB_XPRINT_LIBS="$XCB_XPRINT_LIBS"
22330 if test -n "$PKG_CONFIG" && \ 22400 else
22401 if test -n "$PKG_CONFIG" && \
22331 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-xprint\""; } >&5 22402 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-xprint\""; } >&5
22332 ($PKG_CONFIG --exists --print-errors "xcb-xprint") 2>&5 22403 ($PKG_CONFIG --exists --print-errors "xcb-xprint") 2>&5
22333 ac_status=$? 22404 ac_status=$?
@@ -22337,15 +22408,14 @@ if test -n "$XCB_XPRINT_LIBS"; then
22337else 22408else
22338 pkg_failed=yes 22409 pkg_failed=yes
22339fi 22410fi
22340 else 22411 fi
22341 pkg_failed=untried 22412else
22413 pkg_failed=untried
22342fi 22414fi
22343 22415
22344 22416
22345 22417
22346if test $pkg_failed = yes; then 22418if test $pkg_failed = yes; then
22347 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
22348$as_echo "no" >&6; }
22349 22419
22350if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 22420if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
22351 _pkg_short_errors_supported=yes 22421 _pkg_short_errors_supported=yes
@@ -22353,17 +22423,17 @@ else
22353 _pkg_short_errors_supported=no 22423 _pkg_short_errors_supported=no
22354fi 22424fi
22355 if test $_pkg_short_errors_supported = yes; then 22425 if test $_pkg_short_errors_supported = yes; then
22356 XCB_XPRINT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "xcb-xprint" 2>&1` 22426 XCB_XPRINT_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "xcb-xprint"`
22357 else 22427 else
22358 XCB_XPRINT_PKG_ERRORS=`$PKG_CONFIG --print-errors "xcb-xprint" 2>&1` 22428 XCB_XPRINT_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "xcb-xprint"`
22359 fi 22429 fi
22360 # Put the nasty error message in config.log where it belongs 22430 # Put the nasty error message in config.log where it belongs
22361 echo "$XCB_XPRINT_PKG_ERRORS" >&5 22431 echo "$XCB_XPRINT_PKG_ERRORS" >&5
22362 22432
22363 have_ecore_x_xcb_xprint="no" 22433 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
22364elif test $pkg_failed = untried; then
22365 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
22366$as_echo "no" >&6; } 22434$as_echo "no" >&6; }
22435 have_ecore_x_xcb_xprint="no"
22436elif test $pkg_failed = untried; then
22367 have_ecore_x_xcb_xprint="no" 22437 have_ecore_x_xcb_xprint="no"
22368else 22438else
22369 XCB_XPRINT_CFLAGS=$pkg_cv_XCB_XPRINT_CFLAGS 22439 XCB_XPRINT_CFLAGS=$pkg_cv_XCB_XPRINT_CFLAGS
@@ -22388,10 +22458,11 @@ pkg_failed=no
22388{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_XTEST" >&5 22458{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_XTEST" >&5
22389$as_echo_n "checking for XCB_XTEST... " >&6; } 22459$as_echo_n "checking for XCB_XTEST... " >&6; }
22390 22460
22391if test -n "$XCB_XTEST_CFLAGS"; then 22461if test -n "$PKG_CONFIG"; then
22392 pkg_cv_XCB_XTEST_CFLAGS="$XCB_XTEST_CFLAGS" 22462 if test -n "$XCB_XTEST_CFLAGS"; then
22393 elif test -n "$PKG_CONFIG"; then 22463 pkg_cv_XCB_XTEST_CFLAGS="$XCB_XTEST_CFLAGS"
22394 if test -n "$PKG_CONFIG" && \ 22464 else
22465 if test -n "$PKG_CONFIG" && \
22395 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-xtest\""; } >&5 22466 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-xtest\""; } >&5
22396 ($PKG_CONFIG --exists --print-errors "xcb-xtest") 2>&5 22467 ($PKG_CONFIG --exists --print-errors "xcb-xtest") 2>&5
22397 ac_status=$? 22468 ac_status=$?
@@ -22401,13 +22472,15 @@ if test -n "$XCB_XTEST_CFLAGS"; then
22401else 22472else
22402 pkg_failed=yes 22473 pkg_failed=yes
22403fi 22474fi
22404 else 22475 fi
22405 pkg_failed=untried 22476else
22477 pkg_failed=untried
22406fi 22478fi
22407if test -n "$XCB_XTEST_LIBS"; then 22479if test -n "$PKG_CONFIG"; then
22408 pkg_cv_XCB_XTEST_LIBS="$XCB_XTEST_LIBS" 22480 if test -n "$XCB_XTEST_LIBS"; then
22409 elif test -n "$PKG_CONFIG"; then 22481 pkg_cv_XCB_XTEST_LIBS="$XCB_XTEST_LIBS"
22410 if test -n "$PKG_CONFIG" && \ 22482 else
22483 if test -n "$PKG_CONFIG" && \
22411 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-xtest\""; } >&5 22484 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-xtest\""; } >&5
22412 ($PKG_CONFIG --exists --print-errors "xcb-xtest") 2>&5 22485 ($PKG_CONFIG --exists --print-errors "xcb-xtest") 2>&5
22413 ac_status=$? 22486 ac_status=$?
@@ -22417,15 +22490,14 @@ if test -n "$XCB_XTEST_LIBS"; then
22417else 22490else
22418 pkg_failed=yes 22491 pkg_failed=yes
22419fi 22492fi
22420 else 22493 fi
22421 pkg_failed=untried 22494else
22495 pkg_failed=untried
22422fi 22496fi
22423 22497
22424 22498
22425 22499
22426if test $pkg_failed = yes; then 22500if test $pkg_failed = yes; then
22427 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
22428$as_echo "no" >&6; }
22429 22501
22430if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 22502if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
22431 _pkg_short_errors_supported=yes 22503 _pkg_short_errors_supported=yes
@@ -22433,17 +22505,17 @@ else
22433 _pkg_short_errors_supported=no 22505 _pkg_short_errors_supported=no
22434fi 22506fi
22435 if test $_pkg_short_errors_supported = yes; then 22507 if test $_pkg_short_errors_supported = yes; then
22436 XCB_XTEST_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "xcb-xtest" 2>&1` 22508 XCB_XTEST_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "xcb-xtest"`
22437 else 22509 else
22438 XCB_XTEST_PKG_ERRORS=`$PKG_CONFIG --print-errors "xcb-xtest" 2>&1` 22510 XCB_XTEST_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "xcb-xtest"`
22439 fi 22511 fi
22440 # Put the nasty error message in config.log where it belongs 22512 # Put the nasty error message in config.log where it belongs
22441 echo "$XCB_XTEST_PKG_ERRORS" >&5 22513 echo "$XCB_XTEST_PKG_ERRORS" >&5
22442 22514
22443 have_ecore_x_xcb_xtest="no" 22515 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
22444elif test $pkg_failed = untried; then
22445 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
22446$as_echo "no" >&6; } 22516$as_echo "no" >&6; }
22517 have_ecore_x_xcb_xtest="no"
22518elif test $pkg_failed = untried; then
22447 have_ecore_x_xcb_xtest="no" 22519 have_ecore_x_xcb_xtest="no"
22448else 22520else
22449 XCB_XTEST_CFLAGS=$pkg_cv_XCB_XTEST_CFLAGS 22521 XCB_XTEST_CFLAGS=$pkg_cv_XCB_XTEST_CFLAGS
@@ -22470,10 +22542,11 @@ pkg_failed=no
22470{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_XINPUT" >&5 22542{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_XINPUT" >&5
22471$as_echo_n "checking for XCB_XINPUT... " >&6; } 22543$as_echo_n "checking for XCB_XINPUT... " >&6; }
22472 22544
22473if test -n "$XCB_XINPUT_CFLAGS"; then 22545if test -n "$PKG_CONFIG"; then
22474 pkg_cv_XCB_XINPUT_CFLAGS="$XCB_XINPUT_CFLAGS" 22546 if test -n "$XCB_XINPUT_CFLAGS"; then
22475 elif test -n "$PKG_CONFIG"; then 22547 pkg_cv_XCB_XINPUT_CFLAGS="$XCB_XINPUT_CFLAGS"
22476 if test -n "$PKG_CONFIG" && \ 22548 else
22549 if test -n "$PKG_CONFIG" && \
22477 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-xinput\""; } >&5 22550 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-xinput\""; } >&5
22478 ($PKG_CONFIG --exists --print-errors "xcb-xinput") 2>&5 22551 ($PKG_CONFIG --exists --print-errors "xcb-xinput") 2>&5
22479 ac_status=$? 22552 ac_status=$?
@@ -22483,13 +22556,15 @@ if test -n "$XCB_XINPUT_CFLAGS"; then
22483else 22556else
22484 pkg_failed=yes 22557 pkg_failed=yes
22485fi 22558fi
22486 else 22559 fi
22487 pkg_failed=untried 22560else
22561 pkg_failed=untried
22488fi 22562fi
22489if test -n "$XCB_XINPUT_LIBS"; then 22563if test -n "$PKG_CONFIG"; then
22490 pkg_cv_XCB_XINPUT_LIBS="$XCB_XINPUT_LIBS" 22564 if test -n "$XCB_XINPUT_LIBS"; then
22491 elif test -n "$PKG_CONFIG"; then 22565 pkg_cv_XCB_XINPUT_LIBS="$XCB_XINPUT_LIBS"
22492 if test -n "$PKG_CONFIG" && \ 22566 else
22567 if test -n "$PKG_CONFIG" && \
22493 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-xinput\""; } >&5 22568 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-xinput\""; } >&5
22494 ($PKG_CONFIG --exists --print-errors "xcb-xinput") 2>&5 22569 ($PKG_CONFIG --exists --print-errors "xcb-xinput") 2>&5
22495 ac_status=$? 22570 ac_status=$?
@@ -22499,15 +22574,14 @@ if test -n "$XCB_XINPUT_LIBS"; then
22499else 22574else
22500 pkg_failed=yes 22575 pkg_failed=yes
22501fi 22576fi
22502 else 22577 fi
22503 pkg_failed=untried 22578else
22579 pkg_failed=untried
22504fi 22580fi
22505 22581
22506 22582
22507 22583
22508if test $pkg_failed = yes; then 22584if test $pkg_failed = yes; then
22509 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
22510$as_echo "no" >&6; }
22511 22585
22512if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 22586if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
22513 _pkg_short_errors_supported=yes 22587 _pkg_short_errors_supported=yes
@@ -22515,17 +22589,17 @@ else
22515 _pkg_short_errors_supported=no 22589 _pkg_short_errors_supported=no
22516fi 22590fi
22517 if test $_pkg_short_errors_supported = yes; then 22591 if test $_pkg_short_errors_supported = yes; then
22518 XCB_XINPUT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "xcb-xinput" 2>&1` 22592 XCB_XINPUT_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "xcb-xinput"`
22519 else 22593 else
22520 XCB_XINPUT_PKG_ERRORS=`$PKG_CONFIG --print-errors "xcb-xinput" 2>&1` 22594 XCB_XINPUT_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "xcb-xinput"`
22521 fi 22595 fi
22522 # Put the nasty error message in config.log where it belongs 22596 # Put the nasty error message in config.log where it belongs
22523 echo "$XCB_XINPUT_PKG_ERRORS" >&5 22597 echo "$XCB_XINPUT_PKG_ERRORS" >&5
22524 22598
22525 have_ecore_x_xcb_xinput="no" 22599 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
22526elif test $pkg_failed = untried; then
22527 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
22528$as_echo "no" >&6; } 22600$as_echo "no" >&6; }
22601 have_ecore_x_xcb_xinput="no"
22602elif test $pkg_failed = untried; then
22529 have_ecore_x_xcb_xinput="no" 22603 have_ecore_x_xcb_xinput="no"
22530else 22604else
22531 XCB_XINPUT_CFLAGS=$pkg_cv_XCB_XINPUT_CFLAGS 22605 XCB_XINPUT_CFLAGS=$pkg_cv_XCB_XINPUT_CFLAGS
@@ -22550,10 +22624,11 @@ pkg_failed=no
22550{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_CURSOR" >&5 22624{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_CURSOR" >&5
22551$as_echo_n "checking for XCB_CURSOR... " >&6; } 22625$as_echo_n "checking for XCB_CURSOR... " >&6; }
22552 22626
22553if test -n "$XCB_CURSOR_CFLAGS"; then 22627if test -n "$PKG_CONFIG"; then
22554 pkg_cv_XCB_CURSOR_CFLAGS="$XCB_CURSOR_CFLAGS" 22628 if test -n "$XCB_CURSOR_CFLAGS"; then
22555 elif test -n "$PKG_CONFIG"; then 22629 pkg_cv_XCB_CURSOR_CFLAGS="$XCB_CURSOR_CFLAGS"
22556 if test -n "$PKG_CONFIG" && \ 22630 else
22631 if test -n "$PKG_CONFIG" && \
22557 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-render xcb-renderutil\""; } >&5 22632 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-render xcb-renderutil\""; } >&5
22558 ($PKG_CONFIG --exists --print-errors "xcb-render xcb-renderutil") 2>&5 22633 ($PKG_CONFIG --exists --print-errors "xcb-render xcb-renderutil") 2>&5
22559 ac_status=$? 22634 ac_status=$?
@@ -22563,13 +22638,15 @@ if test -n "$XCB_CURSOR_CFLAGS"; then
22563else 22638else
22564 pkg_failed=yes 22639 pkg_failed=yes
22565fi 22640fi
22566 else 22641 fi
22567 pkg_failed=untried 22642else
22643 pkg_failed=untried
22568fi 22644fi
22569if test -n "$XCB_CURSOR_LIBS"; then 22645if test -n "$PKG_CONFIG"; then
22570 pkg_cv_XCB_CURSOR_LIBS="$XCB_CURSOR_LIBS" 22646 if test -n "$XCB_CURSOR_LIBS"; then
22571 elif test -n "$PKG_CONFIG"; then 22647 pkg_cv_XCB_CURSOR_LIBS="$XCB_CURSOR_LIBS"
22572 if test -n "$PKG_CONFIG" && \ 22648 else
22649 if test -n "$PKG_CONFIG" && \
22573 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-render xcb-renderutil\""; } >&5 22650 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb-render xcb-renderutil\""; } >&5
22574 ($PKG_CONFIG --exists --print-errors "xcb-render xcb-renderutil") 2>&5 22651 ($PKG_CONFIG --exists --print-errors "xcb-render xcb-renderutil") 2>&5
22575 ac_status=$? 22652 ac_status=$?
@@ -22579,15 +22656,14 @@ if test -n "$XCB_CURSOR_LIBS"; then
22579else 22656else
22580 pkg_failed=yes 22657 pkg_failed=yes
22581fi 22658fi
22582 else 22659 fi
22583 pkg_failed=untried 22660else
22661 pkg_failed=untried
22584fi 22662fi
22585 22663
22586 22664
22587 22665
22588if test $pkg_failed = yes; then 22666if test $pkg_failed = yes; then
22589 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
22590$as_echo "no" >&6; }
22591 22667
22592if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 22668if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
22593 _pkg_short_errors_supported=yes 22669 _pkg_short_errors_supported=yes
@@ -22595,17 +22671,17 @@ else
22595 _pkg_short_errors_supported=no 22671 _pkg_short_errors_supported=no
22596fi 22672fi
22597 if test $_pkg_short_errors_supported = yes; then 22673 if test $_pkg_short_errors_supported = yes; then
22598 XCB_CURSOR_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "xcb-render xcb-renderutil" 2>&1` 22674 XCB_CURSOR_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "xcb-render xcb-renderutil"`
22599 else 22675 else
22600 XCB_CURSOR_PKG_ERRORS=`$PKG_CONFIG --print-errors "xcb-render xcb-renderutil" 2>&1` 22676 XCB_CURSOR_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "xcb-render xcb-renderutil"`
22601 fi 22677 fi
22602 # Put the nasty error message in config.log where it belongs 22678 # Put the nasty error message in config.log where it belongs
22603 echo "$XCB_CURSOR_PKG_ERRORS" >&5 22679 echo "$XCB_CURSOR_PKG_ERRORS" >&5
22604 22680
22605 have_ecore_x_xcb_cursor="no" 22681 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
22606elif test $pkg_failed = untried; then
22607 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
22608$as_echo "no" >&6; } 22682$as_echo "no" >&6; }
22683 have_ecore_x_xcb_cursor="no"
22684elif test $pkg_failed = untried; then
22609 have_ecore_x_xcb_cursor="no" 22685 have_ecore_x_xcb_cursor="no"
22610else 22686else
22611 XCB_CURSOR_CFLAGS=$pkg_cv_XCB_CURSOR_CFLAGS 22687 XCB_CURSOR_CFLAGS=$pkg_cv_XCB_CURSOR_CFLAGS
@@ -22664,7 +22740,7 @@ if test "x$with_x" = xno; then
22664 have_x=disabled 22740 have_x=disabled
22665else 22741else
22666 case $x_includes,$x_libraries in #( 22742 case $x_includes,$x_libraries in #(
22667 *\'*) as_fn_error $? "cannot use X directory names containing '" "$LINENO" 5 ;; #( 22743 *\'*) as_fn_error "cannot use X directory names containing '" "$LINENO" 5;; #(
22668 *,NONE | NONE,*) if test "${ac_cv_have_x+set}" = set; then : 22744 *,NONE | NONE,*) if test "${ac_cv_have_x+set}" = set; then :
22669 $as_echo_n "(cached) " >&6 22745 $as_echo_n "(cached) " >&6
22670else 22746else
@@ -22682,7 +22758,7 @@ libdir:
22682 @echo libdir='${LIBDIR}' 22758 @echo libdir='${LIBDIR}'
22683_ACEOF 22759_ACEOF
22684 if (export CC; ${XMKMF-xmkmf}) >/dev/null 2>/dev/null && test -f Makefile; then 22760 if (export CC; ${XMKMF-xmkmf}) >/dev/null 2>/dev/null && test -f Makefile; then
22685 # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. 22761 # GNU make sometimes prints "make[1]: Entering...", which would confuse us.
22686 for ac_var in incroot usrlibdir libdir; do 22762 for ac_var in incroot usrlibdir libdir; do
22687 eval "ac_im_$ac_var=\`\${MAKE-make} $ac_var 2>/dev/null | sed -n 's/^$ac_var=//p'\`" 22763 eval "ac_im_$ac_var=\`\${MAKE-make} $ac_var 2>/dev/null | sed -n 's/^$ac_var=//p'\`"
22688 done 22764 done
@@ -22768,7 +22844,7 @@ else
22768 fi 22844 fi
22769done 22845done
22770fi 22846fi
22771rm -f conftest.err conftest.i conftest.$ac_ext 22847rm -f conftest.err conftest.$ac_ext
22772fi # $ac_x_includes = no 22848fi # $ac_x_includes = no
22773 22849
22774if test "$ac_x_libraries" = no; then 22850if test "$ac_x_libraries" = no; then
@@ -24634,44 +24710,46 @@ pkg_failed=no
24634{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EVAS" >&5 24710{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EVAS" >&5
24635$as_echo_n "checking for EVAS... " >&6; } 24711$as_echo_n "checking for EVAS... " >&6; }
24636 24712
24637if test -n "$EVAS_CFLAGS"; then 24713if test -n "$PKG_CONFIG"; then
24638 pkg_cv_EVAS_CFLAGS="$EVAS_CFLAGS" 24714 if test -n "$EVAS_CFLAGS"; then
24639 elif test -n "$PKG_CONFIG"; then 24715 pkg_cv_EVAS_CFLAGS="$EVAS_CFLAGS"
24640 if test -n "$PKG_CONFIG" && \ 24716 else
24641 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evas >= 1.1.0\""; } >&5 24717 if test -n "$PKG_CONFIG" && \
24642 ($PKG_CONFIG --exists --print-errors "evas >= 1.1.0") 2>&5 24718 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evas >= 1.1.99\""; } >&5
24719 ($PKG_CONFIG --exists --print-errors "evas >= 1.1.99") 2>&5
24643 ac_status=$? 24720 ac_status=$?
24644 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 24721 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
24645 test $ac_status = 0; }; then 24722 test $ac_status = 0; }; then
24646 pkg_cv_EVAS_CFLAGS=`$PKG_CONFIG --cflags "evas >= 1.1.0" 2>/dev/null` 24723 pkg_cv_EVAS_CFLAGS=`$PKG_CONFIG --cflags "evas >= 1.1.99" 2>/dev/null`
24647else 24724else
24648 pkg_failed=yes 24725 pkg_failed=yes
24649fi 24726fi
24650 else 24727 fi
24651 pkg_failed=untried 24728else
24729 pkg_failed=untried
24652fi 24730fi
24653if test -n "$EVAS_LIBS"; then 24731if test -n "$PKG_CONFIG"; then
24654 pkg_cv_EVAS_LIBS="$EVAS_LIBS" 24732 if test -n "$EVAS_LIBS"; then
24655 elif test -n "$PKG_CONFIG"; then 24733 pkg_cv_EVAS_LIBS="$EVAS_LIBS"
24656 if test -n "$PKG_CONFIG" && \ 24734 else
24657 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evas >= 1.1.0\""; } >&5 24735 if test -n "$PKG_CONFIG" && \
24658 ($PKG_CONFIG --exists --print-errors "evas >= 1.1.0") 2>&5 24736 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evas >= 1.1.99\""; } >&5
24737 ($PKG_CONFIG --exists --print-errors "evas >= 1.1.99") 2>&5
24659 ac_status=$? 24738 ac_status=$?
24660 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 24739 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
24661 test $ac_status = 0; }; then 24740 test $ac_status = 0; }; then
24662 pkg_cv_EVAS_LIBS=`$PKG_CONFIG --libs "evas >= 1.1.0" 2>/dev/null` 24741 pkg_cv_EVAS_LIBS=`$PKG_CONFIG --libs "evas >= 1.1.99" 2>/dev/null`
24663else 24742else
24664 pkg_failed=yes 24743 pkg_failed=yes
24665fi 24744fi
24666 else 24745 fi
24667 pkg_failed=untried 24746else
24747 pkg_failed=untried
24668fi 24748fi
24669 24749
24670 24750
24671 24751
24672if test $pkg_failed = yes; then 24752if test $pkg_failed = yes; then
24673 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
24674$as_echo "no" >&6; }
24675 24753
24676if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 24754if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
24677 _pkg_short_errors_supported=yes 24755 _pkg_short_errors_supported=yes
@@ -24679,17 +24757,17 @@ else
24679 _pkg_short_errors_supported=no 24757 _pkg_short_errors_supported=no
24680fi 24758fi
24681 if test $_pkg_short_errors_supported = yes; then 24759 if test $_pkg_short_errors_supported = yes; then
24682 EVAS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "evas >= 1.1.0" 2>&1` 24760 EVAS_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "evas >= 1.1.99"`
24683 else 24761 else
24684 EVAS_PKG_ERRORS=`$PKG_CONFIG --print-errors "evas >= 1.1.0" 2>&1` 24762 EVAS_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "evas >= 1.1.99"`
24685 fi 24763 fi
24686 # Put the nasty error message in config.log where it belongs 24764 # Put the nasty error message in config.log where it belongs
24687 echo "$EVAS_PKG_ERRORS" >&5 24765 echo "$EVAS_PKG_ERRORS" >&5
24688 24766
24689 have_evas="no" 24767 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
24690elif test $pkg_failed = untried; then
24691 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
24692$as_echo "no" >&6; } 24768$as_echo "no" >&6; }
24769 have_evas="no"
24770elif test $pkg_failed = untried; then
24693 have_evas="no" 24771 have_evas="no"
24694else 24772else
24695 EVAS_CFLAGS=$pkg_cv_EVAS_CFLAGS 24773 EVAS_CFLAGS=$pkg_cv_EVAS_CFLAGS
@@ -24706,7 +24784,8 @@ for ac_header in sys/select.h sys/prctl.h
24706do : 24784do :
24707 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` 24785 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
24708ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" 24786ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
24709if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : 24787eval as_val=\$$as_ac_Header
24788 if test "x$as_val" = x""yes; then :
24710 cat >>confdefs.h <<_ACEOF 24789 cat >>confdefs.h <<_ACEOF
24711#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 24790#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
24712_ACEOF 24791_ACEOF
@@ -25027,7 +25106,8 @@ $as_echo "#define HAVE_SYS_TIME_H 1" >>confdefs.h
25027do : 25106do :
25028 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` 25107 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
25029ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" 25108ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
25030if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : 25109eval as_val=\$$as_ac_Header
25110 if test "x$as_val" = x""yes; then :
25031 cat >>confdefs.h <<_ACEOF 25111 cat >>confdefs.h <<_ACEOF
25032#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 25112#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
25033_ACEOF 25113_ACEOF
@@ -25041,11 +25121,12 @@ esac
25041 25121
25042# ecore_con 25122# ecore_con
25043 25123
25044for ac_header in arpa/inet.h arpa/nameser.h netinet/tcp.h netinet/in.h sys/socket.h sys/un.h ws2tcpip.h netdb.h 25124for ac_header in arpa/inet.h arpa/nameser.h netinet/tcp.h net/if.h netinet/in.h sys/socket.h sys/un.h ws2tcpip.h netdb.h
25045do : 25125do :
25046 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` 25126 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
25047ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" 25127ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
25048if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : 25128eval as_val=\$$as_ac_Header
25129 if test "x$as_val" = x""yes; then :
25049 cat >>confdefs.h <<_ACEOF 25130 cat >>confdefs.h <<_ACEOF
25050#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 25131#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
25051_ACEOF 25132_ACEOF
@@ -25245,7 +25326,7 @@ if test "x${_efl_enable_win32_threads}" = "xyes" ; then
25245 mingw*) 25326 mingw*)
25246 ;; 25327 ;;
25247 *) 25328 *)
25248 as_fn_error $? "Win32 threads support requested but non Windows system found." "$LINENO" 5 25329 as_fn_error "Win32 threads support requested but non Windows system found." "$LINENO" 5
25249 ;; 25330 ;;
25250 esac 25331 esac
25251fi 25332fi
@@ -25253,7 +25334,7 @@ fi
25253if test "x${_efl_enable_posix_threads}" = "xyes" ; then 25334if test "x${_efl_enable_posix_threads}" = "xyes" ; then
25254 case "$host_os" in 25335 case "$host_os" in
25255 mingw*) 25336 mingw*)
25256 as_fn_error $? "POSIX threads support requested but Windows system found." "$LINENO" 5 25337 as_fn_error "POSIX threads support requested but Windows system found." "$LINENO" 5
25257 ;; 25338 ;;
25258 *) 25339 *)
25259 ;; 25340 ;;
@@ -25316,7 +25397,7 @@ $as_echo_n "checking whether system support POSIX threads... " >&6; }
25316{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${_efl_have_posix_threads}" >&5 25397{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${_efl_have_posix_threads}" >&5
25317$as_echo "${_efl_have_posix_threads}" >&6; } 25398$as_echo "${_efl_have_posix_threads}" >&6; }
25318if test "$x{_efl_enable_posix_threads}" = "xyes" && test "x${_efl_have_posix_threads}" = "xno"; then 25399if test "$x{_efl_enable_posix_threads}" = "xyes" && test "x${_efl_have_posix_threads}" = "xno"; then
25319 as_fn_error $? "POSIX threads support requested but not found." "$LINENO" 5 25400 as_fn_error "POSIX threads support requested but not found." "$LINENO" 5
25320fi 25401fi
25321 25402
25322EFL_PTHREAD_CFLAGS="" 25403EFL_PTHREAD_CFLAGS=""
@@ -25416,8 +25497,9 @@ else
25416 if test "$ac_cv_type_int" = yes; then 25497 if test "$ac_cv_type_int" = yes; then
25417 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 25498 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
25418$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 25499$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
25419as_fn_error 77 "cannot compute sizeof (int) 25500{ as_fn_set_status 77
25420See \`config.log' for more details" "$LINENO" 5 ; } 25501as_fn_error "cannot compute sizeof (int)
25502See \`config.log' for more details." "$LINENO" 5; }; }
25421 else 25503 else
25422 ac_cv_sizeof_int=0 25504 ac_cv_sizeof_int=0
25423 fi 25505 fi
@@ -25449,8 +25531,9 @@ else
25449 if test "$ac_cv_type_long" = yes; then 25531 if test "$ac_cv_type_long" = yes; then
25450 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 25532 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
25451$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 25533$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
25452as_fn_error 77 "cannot compute sizeof (long) 25534{ as_fn_set_status 77
25453See \`config.log' for more details" "$LINENO" 5 ; } 25535as_fn_error "cannot compute sizeof (long)
25536See \`config.log' for more details." "$LINENO" 5; }; }
25454 else 25537 else
25455 ac_cv_sizeof_long=0 25538 ac_cv_sizeof_long=0
25456 fi 25539 fi
@@ -26066,8 +26149,8 @@ $as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
26066 26149
26067 ;; #( 26150 ;; #(
26068 *) 26151 *)
26069 as_fn_error $? "unknown endianness 26152 as_fn_error "unknown endianness
26070 presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; 26153 presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;;
26071 esac 26154 esac
26072 26155
26073{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 26156{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
@@ -26438,7 +26521,8 @@ if test $ac_cv_os_cray = yes; then
26438 for ac_func in _getb67 GETB67 getb67; do 26521 for ac_func in _getb67 GETB67 getb67; do
26439 as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` 26522 as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
26440ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" 26523ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
26441if eval test \"x\$"$as_ac_var"\" = x"yes"; then : 26524eval as_val=\$$as_ac_var
26525 if test "x$as_val" = x""yes; then :
26442 26526
26443cat >>confdefs.h <<_ACEOF 26527cat >>confdefs.h <<_ACEOF
26444#define CRAY_STACKSEG_END $ac_func 26528#define CRAY_STACKSEG_END $ac_func
@@ -26504,7 +26588,8 @@ for ac_func in gettimeofday strlcpy execvp
26504do : 26588do :
26505 as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` 26589 as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
26506ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" 26590ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
26507if eval test \"x\$"$as_ac_var"\" = x"yes"; then : 26591eval as_val=\$$as_ac_var
26592 if test "x$as_val" = x""yes; then :
26508 cat >>confdefs.h <<_ACEOF 26593 cat >>confdefs.h <<_ACEOF
26509#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 26594#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
26510_ACEOF 26595_ACEOF
@@ -26576,7 +26661,7 @@ $as_echo "#define HAVE_ATFILE_SOURCE 1" >>confdefs.h
26576else 26661else
26577 26662
26578 if test "x${have_atfile_source}" = "xyes" ; then 26663 if test "x${have_atfile_source}" = "xyes" ; then
26579 as_fn_error $? "required atfile-source but no mkdirat()" "$LINENO" 5 26664 as_fn_error "required atfile-source but no mkdirat()" "$LINENO" 5
26580 fi 26665 fi
26581 have_atfile_source="no" 26666 have_atfile_source="no"
26582 26667
@@ -26738,10 +26823,11 @@ pkg_failed=no
26738{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CURL" >&5 26823{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CURL" >&5
26739$as_echo_n "checking for CURL... " >&6; } 26824$as_echo_n "checking for CURL... " >&6; }
26740 26825
26741if test -n "$CURL_CFLAGS"; then 26826if test -n "$PKG_CONFIG"; then
26742 pkg_cv_CURL_CFLAGS="$CURL_CFLAGS" 26827 if test -n "$CURL_CFLAGS"; then
26743 elif test -n "$PKG_CONFIG"; then 26828 pkg_cv_CURL_CFLAGS="$CURL_CFLAGS"
26744 if test -n "$PKG_CONFIG" && \ 26829 else
26830 if test -n "$PKG_CONFIG" && \
26745 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libcurl\""; } >&5 26831 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libcurl\""; } >&5
26746 ($PKG_CONFIG --exists --print-errors "libcurl") 2>&5 26832 ($PKG_CONFIG --exists --print-errors "libcurl") 2>&5
26747 ac_status=$? 26833 ac_status=$?
@@ -26751,13 +26837,15 @@ if test -n "$CURL_CFLAGS"; then
26751else 26837else
26752 pkg_failed=yes 26838 pkg_failed=yes
26753fi 26839fi
26754 else 26840 fi
26755 pkg_failed=untried 26841else
26842 pkg_failed=untried
26756fi 26843fi
26757if test -n "$CURL_LIBS"; then 26844if test -n "$PKG_CONFIG"; then
26758 pkg_cv_CURL_LIBS="$CURL_LIBS" 26845 if test -n "$CURL_LIBS"; then
26759 elif test -n "$PKG_CONFIG"; then 26846 pkg_cv_CURL_LIBS="$CURL_LIBS"
26760 if test -n "$PKG_CONFIG" && \ 26847 else
26848 if test -n "$PKG_CONFIG" && \
26761 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libcurl\""; } >&5 26849 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libcurl\""; } >&5
26762 ($PKG_CONFIG --exists --print-errors "libcurl") 2>&5 26850 ($PKG_CONFIG --exists --print-errors "libcurl") 2>&5
26763 ac_status=$? 26851 ac_status=$?
@@ -26767,15 +26855,14 @@ if test -n "$CURL_LIBS"; then
26767else 26855else
26768 pkg_failed=yes 26856 pkg_failed=yes
26769fi 26857fi
26770 else 26858 fi
26771 pkg_failed=untried 26859else
26860 pkg_failed=untried
26772fi 26861fi
26773 26862
26774 26863
26775 26864
26776if test $pkg_failed = yes; then 26865if test $pkg_failed = yes; then
26777 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
26778$as_echo "no" >&6; }
26779 26866
26780if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 26867if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
26781 _pkg_short_errors_supported=yes 26868 _pkg_short_errors_supported=yes
@@ -26783,17 +26870,17 @@ else
26783 _pkg_short_errors_supported=no 26870 _pkg_short_errors_supported=no
26784fi 26871fi
26785 if test $_pkg_short_errors_supported = yes; then 26872 if test $_pkg_short_errors_supported = yes; then
26786 CURL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libcurl" 2>&1` 26873 CURL_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libcurl"`
26787 else 26874 else
26788 CURL_PKG_ERRORS=`$PKG_CONFIG --print-errors "libcurl" 2>&1` 26875 CURL_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libcurl"`
26789 fi 26876 fi
26790 # Put the nasty error message in config.log where it belongs 26877 # Put the nasty error message in config.log where it belongs
26791 echo "$CURL_PKG_ERRORS" >&5 26878 echo "$CURL_PKG_ERRORS" >&5
26792 26879
26793 _ecore_have_curl="no" 26880 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
26794elif test $pkg_failed = untried; then
26795 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
26796$as_echo "no" >&6; } 26881$as_echo "no" >&6; }
26882 _ecore_have_curl="no"
26883elif test $pkg_failed = untried; then
26797 _ecore_have_curl="no" 26884 _ecore_have_curl="no"
26798else 26885else
26799 CURL_CFLAGS=$pkg_cv_CURL_CFLAGS 26886 CURL_CFLAGS=$pkg_cv_CURL_CFLAGS
@@ -26841,10 +26928,11 @@ pkg_failed=no
26841{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for TLS" >&5 26928{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for TLS" >&5
26842$as_echo_n "checking for TLS... " >&6; } 26929$as_echo_n "checking for TLS... " >&6; }
26843 26930
26844if test -n "$TLS_CFLAGS"; then 26931if test -n "$PKG_CONFIG"; then
26845 pkg_cv_TLS_CFLAGS="$TLS_CFLAGS" 26932 if test -n "$TLS_CFLAGS"; then
26846 elif test -n "$PKG_CONFIG"; then 26933 pkg_cv_TLS_CFLAGS="$TLS_CFLAGS"
26847 if test -n "$PKG_CONFIG" && \ 26934 else
26935 if test -n "$PKG_CONFIG" && \
26848 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gnutls >= 2.10.2\""; } >&5 26936 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gnutls >= 2.10.2\""; } >&5
26849 ($PKG_CONFIG --exists --print-errors "gnutls >= 2.10.2") 2>&5 26937 ($PKG_CONFIG --exists --print-errors "gnutls >= 2.10.2") 2>&5
26850 ac_status=$? 26938 ac_status=$?
@@ -26854,13 +26942,15 @@ if test -n "$TLS_CFLAGS"; then
26854else 26942else
26855 pkg_failed=yes 26943 pkg_failed=yes
26856fi 26944fi
26857 else 26945 fi
26858 pkg_failed=untried 26946else
26947 pkg_failed=untried
26859fi 26948fi
26860if test -n "$TLS_LIBS"; then 26949if test -n "$PKG_CONFIG"; then
26861 pkg_cv_TLS_LIBS="$TLS_LIBS" 26950 if test -n "$TLS_LIBS"; then
26862 elif test -n "$PKG_CONFIG"; then 26951 pkg_cv_TLS_LIBS="$TLS_LIBS"
26863 if test -n "$PKG_CONFIG" && \ 26952 else
26953 if test -n "$PKG_CONFIG" && \
26864 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gnutls >= 2.10.2\""; } >&5 26954 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gnutls >= 2.10.2\""; } >&5
26865 ($PKG_CONFIG --exists --print-errors "gnutls >= 2.10.2") 2>&5 26955 ($PKG_CONFIG --exists --print-errors "gnutls >= 2.10.2") 2>&5
26866 ac_status=$? 26956 ac_status=$?
@@ -26870,15 +26960,14 @@ if test -n "$TLS_LIBS"; then
26870else 26960else
26871 pkg_failed=yes 26961 pkg_failed=yes
26872fi 26962fi
26873 else 26963 fi
26874 pkg_failed=untried 26964else
26965 pkg_failed=untried
26875fi 26966fi
26876 26967
26877 26968
26878 26969
26879if test $pkg_failed = yes; then 26970if test $pkg_failed = yes; then
26880 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
26881$as_echo "no" >&6; }
26882 26971
26883if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 26972if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
26884 _pkg_short_errors_supported=yes 26973 _pkg_short_errors_supported=yes
@@ -26886,17 +26975,17 @@ else
26886 _pkg_short_errors_supported=no 26975 _pkg_short_errors_supported=no
26887fi 26976fi
26888 if test $_pkg_short_errors_supported = yes; then 26977 if test $_pkg_short_errors_supported = yes; then
26889 TLS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gnutls >= 2.10.2" 2>&1` 26978 TLS_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "gnutls >= 2.10.2"`
26890 else 26979 else
26891 TLS_PKG_ERRORS=`$PKG_CONFIG --print-errors "gnutls >= 2.10.2" 2>&1` 26980 TLS_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gnutls >= 2.10.2"`
26892 fi 26981 fi
26893 # Put the nasty error message in config.log where it belongs 26982 # Put the nasty error message in config.log where it belongs
26894 echo "$TLS_PKG_ERRORS" >&5 26983 echo "$TLS_PKG_ERRORS" >&5
26895 26984
26896 _ecore_have_gnutls="no" 26985 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
26897elif test $pkg_failed = untried; then
26898 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
26899$as_echo "no" >&6; } 26986$as_echo "no" >&6; }
26987 _ecore_have_gnutls="no"
26988elif test $pkg_failed = untried; then
26900 _ecore_have_gnutls="no" 26989 _ecore_have_gnutls="no"
26901else 26990else
26902 TLS_CFLAGS=$pkg_cv_TLS_CFLAGS 26991 TLS_CFLAGS=$pkg_cv_TLS_CFLAGS
@@ -26916,10 +27005,11 @@ pkg_failed=no
26916{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for TLS2" >&5 27005{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for TLS2" >&5
26917$as_echo_n "checking for TLS2... " >&6; } 27006$as_echo_n "checking for TLS2... " >&6; }
26918 27007
26919if test -n "$TLS2_CFLAGS"; then 27008if test -n "$PKG_CONFIG"; then
26920 pkg_cv_TLS2_CFLAGS="$TLS2_CFLAGS" 27009 if test -n "$TLS2_CFLAGS"; then
26921 elif test -n "$PKG_CONFIG"; then 27010 pkg_cv_TLS2_CFLAGS="$TLS2_CFLAGS"
26922 if test -n "$PKG_CONFIG" && \ 27011 else
27012 if test -n "$PKG_CONFIG" && \
26923 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gnutls >= 2.10.2\""; } >&5 27013 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gnutls >= 2.10.2\""; } >&5
26924 ($PKG_CONFIG --exists --print-errors "gnutls >= 2.10.2") 2>&5 27014 ($PKG_CONFIG --exists --print-errors "gnutls >= 2.10.2") 2>&5
26925 ac_status=$? 27015 ac_status=$?
@@ -26929,13 +27019,15 @@ if test -n "$TLS2_CFLAGS"; then
26929else 27019else
26930 pkg_failed=yes 27020 pkg_failed=yes
26931fi 27021fi
26932 else 27022 fi
26933 pkg_failed=untried 27023else
27024 pkg_failed=untried
26934fi 27025fi
26935if test -n "$TLS2_LIBS"; then 27026if test -n "$PKG_CONFIG"; then
26936 pkg_cv_TLS2_LIBS="$TLS2_LIBS" 27027 if test -n "$TLS2_LIBS"; then
26937 elif test -n "$PKG_CONFIG"; then 27028 pkg_cv_TLS2_LIBS="$TLS2_LIBS"
26938 if test -n "$PKG_CONFIG" && \ 27029 else
27030 if test -n "$PKG_CONFIG" && \
26939 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gnutls >= 2.10.2\""; } >&5 27031 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gnutls >= 2.10.2\""; } >&5
26940 ($PKG_CONFIG --exists --print-errors "gnutls >= 2.10.2") 2>&5 27032 ($PKG_CONFIG --exists --print-errors "gnutls >= 2.10.2") 2>&5
26941 ac_status=$? 27033 ac_status=$?
@@ -26945,15 +27037,14 @@ if test -n "$TLS2_LIBS"; then
26945else 27037else
26946 pkg_failed=yes 27038 pkg_failed=yes
26947fi 27039fi
26948 else 27040 fi
26949 pkg_failed=untried 27041else
27042 pkg_failed=untried
26950fi 27043fi
26951 27044
26952 27045
26953 27046
26954if test $pkg_failed = yes; then 27047if test $pkg_failed = yes; then
26955 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
26956$as_echo "no" >&6; }
26957 27048
26958if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 27049if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
26959 _pkg_short_errors_supported=yes 27050 _pkg_short_errors_supported=yes
@@ -26961,17 +27052,17 @@ else
26961 _pkg_short_errors_supported=no 27052 _pkg_short_errors_supported=no
26962fi 27053fi
26963 if test $_pkg_short_errors_supported = yes; then 27054 if test $_pkg_short_errors_supported = yes; then
26964 TLS2_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gnutls >= 2.10.2" 2>&1` 27055 TLS2_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "gnutls >= 2.10.2"`
26965 else 27056 else
26966 TLS2_PKG_ERRORS=`$PKG_CONFIG --print-errors "gnutls >= 2.10.2" 2>&1` 27057 TLS2_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gnutls >= 2.10.2"`
26967 fi 27058 fi
26968 # Put the nasty error message in config.log where it belongs 27059 # Put the nasty error message in config.log where it belongs
26969 echo "$TLS2_PKG_ERRORS" >&5 27060 echo "$TLS2_PKG_ERRORS" >&5
26970 27061
26971 dummy="no" 27062 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
26972elif test $pkg_failed = untried; then
26973 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
26974$as_echo "no" >&6; } 27063$as_echo "no" >&6; }
27064 dummy="no"
27065elif test $pkg_failed = untried; then
26975 dummy="no" 27066 dummy="no"
26976else 27067else
26977 TLS2_CFLAGS=$pkg_cv_TLS2_CFLAGS 27068 TLS2_CFLAGS=$pkg_cv_TLS2_CFLAGS
@@ -27129,10 +27220,11 @@ pkg_failed=no
27129{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SSL" >&5 27220{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SSL" >&5
27130$as_echo_n "checking for SSL... " >&6; } 27221$as_echo_n "checking for SSL... " >&6; }
27131 27222
27132if test -n "$SSL_CFLAGS"; then 27223if test -n "$PKG_CONFIG"; then
27133 pkg_cv_SSL_CFLAGS="$SSL_CFLAGS" 27224 if test -n "$SSL_CFLAGS"; then
27134 elif test -n "$PKG_CONFIG"; then 27225 pkg_cv_SSL_CFLAGS="$SSL_CFLAGS"
27135 if test -n "$PKG_CONFIG" && \ 27226 else
27227 if test -n "$PKG_CONFIG" && \
27136 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"openssl\""; } >&5 27228 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"openssl\""; } >&5
27137 ($PKG_CONFIG --exists --print-errors "openssl") 2>&5 27229 ($PKG_CONFIG --exists --print-errors "openssl") 2>&5
27138 ac_status=$? 27230 ac_status=$?
@@ -27142,13 +27234,15 @@ if test -n "$SSL_CFLAGS"; then
27142else 27234else
27143 pkg_failed=yes 27235 pkg_failed=yes
27144fi 27236fi
27145 else 27237 fi
27146 pkg_failed=untried 27238else
27239 pkg_failed=untried
27147fi 27240fi
27148if test -n "$SSL_LIBS"; then 27241if test -n "$PKG_CONFIG"; then
27149 pkg_cv_SSL_LIBS="$SSL_LIBS" 27242 if test -n "$SSL_LIBS"; then
27150 elif test -n "$PKG_CONFIG"; then 27243 pkg_cv_SSL_LIBS="$SSL_LIBS"
27151 if test -n "$PKG_CONFIG" && \ 27244 else
27245 if test -n "$PKG_CONFIG" && \
27152 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"openssl\""; } >&5 27246 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"openssl\""; } >&5
27153 ($PKG_CONFIG --exists --print-errors "openssl") 2>&5 27247 ($PKG_CONFIG --exists --print-errors "openssl") 2>&5
27154 ac_status=$? 27248 ac_status=$?
@@ -27158,15 +27252,14 @@ if test -n "$SSL_LIBS"; then
27158else 27252else
27159 pkg_failed=yes 27253 pkg_failed=yes
27160fi 27254fi
27161 else 27255 fi
27162 pkg_failed=untried 27256else
27257 pkg_failed=untried
27163fi 27258fi
27164 27259
27165 27260
27166 27261
27167if test $pkg_failed = yes; then 27262if test $pkg_failed = yes; then
27168 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
27169$as_echo "no" >&6; }
27170 27263
27171if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 27264if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
27172 _pkg_short_errors_supported=yes 27265 _pkg_short_errors_supported=yes
@@ -27174,17 +27267,17 @@ else
27174 _pkg_short_errors_supported=no 27267 _pkg_short_errors_supported=no
27175fi 27268fi
27176 if test $_pkg_short_errors_supported = yes; then 27269 if test $_pkg_short_errors_supported = yes; then
27177 SSL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "openssl" 2>&1` 27270 SSL_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "openssl"`
27178 else 27271 else
27179 SSL_PKG_ERRORS=`$PKG_CONFIG --print-errors "openssl" 2>&1` 27272 SSL_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "openssl"`
27180 fi 27273 fi
27181 # Put the nasty error message in config.log where it belongs 27274 # Put the nasty error message in config.log where it belongs
27182 echo "$SSL_PKG_ERRORS" >&5 27275 echo "$SSL_PKG_ERRORS" >&5
27183 27276
27184 _ecore_have_openssl="no" 27277 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
27185elif test $pkg_failed = untried; then
27186 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
27187$as_echo "no" >&6; } 27278$as_echo "no" >&6; }
27279 _ecore_have_openssl="no"
27280elif test $pkg_failed = untried; then
27188 _ecore_have_openssl="no" 27281 _ecore_have_openssl="no"
27189else 27282else
27190 SSL_CFLAGS=$pkg_cv_SSL_CFLAGS 27283 SSL_CFLAGS=$pkg_cv_SSL_CFLAGS
@@ -27241,10 +27334,11 @@ pkg_failed=no
27241{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CARES" >&5 27334{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CARES" >&5
27242$as_echo_n "checking for CARES... " >&6; } 27335$as_echo_n "checking for CARES... " >&6; }
27243 27336
27244if test -n "$CARES_CFLAGS"; then 27337if test -n "$PKG_CONFIG"; then
27245 pkg_cv_CARES_CFLAGS="$CARES_CFLAGS" 27338 if test -n "$CARES_CFLAGS"; then
27246 elif test -n "$PKG_CONFIG"; then 27339 pkg_cv_CARES_CFLAGS="$CARES_CFLAGS"
27247 if test -n "$PKG_CONFIG" && \ 27340 else
27341 if test -n "$PKG_CONFIG" && \
27248 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libcares >= 1.6.1 libcares != 1.7.5\""; } >&5 27342 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libcares >= 1.6.1 libcares != 1.7.5\""; } >&5
27249 ($PKG_CONFIG --exists --print-errors "libcares >= 1.6.1 libcares != 1.7.5") 2>&5 27343 ($PKG_CONFIG --exists --print-errors "libcares >= 1.6.1 libcares != 1.7.5") 2>&5
27250 ac_status=$? 27344 ac_status=$?
@@ -27254,13 +27348,15 @@ if test -n "$CARES_CFLAGS"; then
27254else 27348else
27255 pkg_failed=yes 27349 pkg_failed=yes
27256fi 27350fi
27257 else 27351 fi
27258 pkg_failed=untried 27352else
27353 pkg_failed=untried
27259fi 27354fi
27260if test -n "$CARES_LIBS"; then 27355if test -n "$PKG_CONFIG"; then
27261 pkg_cv_CARES_LIBS="$CARES_LIBS" 27356 if test -n "$CARES_LIBS"; then
27262 elif test -n "$PKG_CONFIG"; then 27357 pkg_cv_CARES_LIBS="$CARES_LIBS"
27263 if test -n "$PKG_CONFIG" && \ 27358 else
27359 if test -n "$PKG_CONFIG" && \
27264 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libcares >= 1.6.1 libcares != 1.7.5\""; } >&5 27360 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libcares >= 1.6.1 libcares != 1.7.5\""; } >&5
27265 ($PKG_CONFIG --exists --print-errors "libcares >= 1.6.1 libcares != 1.7.5") 2>&5 27361 ($PKG_CONFIG --exists --print-errors "libcares >= 1.6.1 libcares != 1.7.5") 2>&5
27266 ac_status=$? 27362 ac_status=$?
@@ -27270,15 +27366,14 @@ if test -n "$CARES_LIBS"; then
27270else 27366else
27271 pkg_failed=yes 27367 pkg_failed=yes
27272fi 27368fi
27273 else 27369 fi
27274 pkg_failed=untried 27370else
27371 pkg_failed=untried
27275fi 27372fi
27276 27373
27277 27374
27278 27375
27279if test $pkg_failed = yes; then 27376if test $pkg_failed = yes; then
27280 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
27281$as_echo "no" >&6; }
27282 27377
27283if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 27378if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
27284 _pkg_short_errors_supported=yes 27379 _pkg_short_errors_supported=yes
@@ -27286,17 +27381,17 @@ else
27286 _pkg_short_errors_supported=no 27381 _pkg_short_errors_supported=no
27287fi 27382fi
27288 if test $_pkg_short_errors_supported = yes; then 27383 if test $_pkg_short_errors_supported = yes; then
27289 CARES_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libcares >= 1.6.1 libcares != 1.7.5" 2>&1` 27384 CARES_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libcares >= 1.6.1 libcares != 1.7.5"`
27290 else 27385 else
27291 CARES_PKG_ERRORS=`$PKG_CONFIG --print-errors "libcares >= 1.6.1 libcares != 1.7.5" 2>&1` 27386 CARES_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libcares >= 1.6.1 libcares != 1.7.5"`
27292 fi 27387 fi
27293 # Put the nasty error message in config.log where it belongs 27388 # Put the nasty error message in config.log where it belongs
27294 echo "$CARES_PKG_ERRORS" >&5 27389 echo "$CARES_PKG_ERRORS" >&5
27295 27390
27296 _ecore_have_cares="no" 27391 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
27297elif test $pkg_failed = untried; then
27298 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
27299$as_echo "no" >&6; } 27392$as_echo "no" >&6; }
27393 _ecore_have_cares="no"
27394elif test $pkg_failed = untried; then
27300 _ecore_have_cares="no" 27395 _ecore_have_cares="no"
27301else 27396else
27302 CARES_CFLAGS=$pkg_cv_CARES_CFLAGS 27397 CARES_CFLAGS=$pkg_cv_CARES_CFLAGS
@@ -27385,7 +27480,10 @@ fi
27385 27480
27386 27481
27387if test "x$have_ecore_ipc" = "xyes"; then : 27482if test "x$have_ecore_ipc" = "xyes"; then :
27388 requirements_ecore_ipc="ecore-con >= 1.1.0 ${requirements_ecore_ipc}" 27483
27484 requirements_ecore_ipc="ecore-con >= 1.1.99 ${requirements_ecore_ipc}"
27485 requirements_ecore_evas="ecore-ipc >= 1.1.99 ${requirements_ecore_evas}"
27486
27389fi 27487fi
27390 27488
27391 27489
@@ -27638,7 +27736,7 @@ fi
27638 27736
27639 27737
27640 if test "x${have_ecore_con}" = "xyes" ; then 27738 if test "x${have_ecore_con}" = "xyes" ; then
27641 requirements_ecore_file="ecore-con >= 1.1.0 ${requirements_ecore_file}" 27739 requirements_ecore_file="ecore-con >= 1.1.99 ${requirements_ecore_file}"
27642 else 27740 else
27643 27741
27644_ecore_want_curl=${want_curl} 27742_ecore_want_curl=${want_curl}
@@ -27662,10 +27760,11 @@ pkg_failed=no
27662{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CURL" >&5 27760{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CURL" >&5
27663$as_echo_n "checking for CURL... " >&6; } 27761$as_echo_n "checking for CURL... " >&6; }
27664 27762
27665if test -n "$CURL_CFLAGS"; then 27763if test -n "$PKG_CONFIG"; then
27666 pkg_cv_CURL_CFLAGS="$CURL_CFLAGS" 27764 if test -n "$CURL_CFLAGS"; then
27667 elif test -n "$PKG_CONFIG"; then 27765 pkg_cv_CURL_CFLAGS="$CURL_CFLAGS"
27668 if test -n "$PKG_CONFIG" && \ 27766 else
27767 if test -n "$PKG_CONFIG" && \
27669 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libcurl\""; } >&5 27768 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libcurl\""; } >&5
27670 ($PKG_CONFIG --exists --print-errors "libcurl") 2>&5 27769 ($PKG_CONFIG --exists --print-errors "libcurl") 2>&5
27671 ac_status=$? 27770 ac_status=$?
@@ -27675,13 +27774,15 @@ if test -n "$CURL_CFLAGS"; then
27675else 27774else
27676 pkg_failed=yes 27775 pkg_failed=yes
27677fi 27776fi
27678 else 27777 fi
27679 pkg_failed=untried 27778else
27779 pkg_failed=untried
27680fi 27780fi
27681if test -n "$CURL_LIBS"; then 27781if test -n "$PKG_CONFIG"; then
27682 pkg_cv_CURL_LIBS="$CURL_LIBS" 27782 if test -n "$CURL_LIBS"; then
27683 elif test -n "$PKG_CONFIG"; then 27783 pkg_cv_CURL_LIBS="$CURL_LIBS"
27684 if test -n "$PKG_CONFIG" && \ 27784 else
27785 if test -n "$PKG_CONFIG" && \
27685 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libcurl\""; } >&5 27786 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libcurl\""; } >&5
27686 ($PKG_CONFIG --exists --print-errors "libcurl") 2>&5 27787 ($PKG_CONFIG --exists --print-errors "libcurl") 2>&5
27687 ac_status=$? 27788 ac_status=$?
@@ -27691,15 +27792,14 @@ if test -n "$CURL_LIBS"; then
27691else 27792else
27692 pkg_failed=yes 27793 pkg_failed=yes
27693fi 27794fi
27694 else 27795 fi
27695 pkg_failed=untried 27796else
27797 pkg_failed=untried
27696fi 27798fi
27697 27799
27698 27800
27699 27801
27700if test $pkg_failed = yes; then 27802if test $pkg_failed = yes; then
27701 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
27702$as_echo "no" >&6; }
27703 27803
27704if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 27804if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
27705 _pkg_short_errors_supported=yes 27805 _pkg_short_errors_supported=yes
@@ -27707,17 +27807,17 @@ else
27707 _pkg_short_errors_supported=no 27807 _pkg_short_errors_supported=no
27708fi 27808fi
27709 if test $_pkg_short_errors_supported = yes; then 27809 if test $_pkg_short_errors_supported = yes; then
27710 CURL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libcurl" 2>&1` 27810 CURL_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libcurl"`
27711 else 27811 else
27712 CURL_PKG_ERRORS=`$PKG_CONFIG --print-errors "libcurl" 2>&1` 27812 CURL_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libcurl"`
27713 fi 27813 fi
27714 # Put the nasty error message in config.log where it belongs 27814 # Put the nasty error message in config.log where it belongs
27715 echo "$CURL_PKG_ERRORS" >&5 27815 echo "$CURL_PKG_ERRORS" >&5
27716 27816
27717 _ecore_have_curl="no" 27817 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
27718elif test $pkg_failed = untried; then
27719 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
27720$as_echo "no" >&6; } 27818$as_echo "no" >&6; }
27819 _ecore_have_curl="no"
27820elif test $pkg_failed = untried; then
27721 _ecore_have_curl="no" 27821 _ecore_have_curl="no"
27722else 27822else
27723 CURL_CFLAGS=$pkg_cv_CURL_CFLAGS 27823 CURL_CFLAGS=$pkg_cv_CURL_CFLAGS
@@ -27753,7 +27853,7 @@ fi
27753#fi 27853#fi
27754 27854
27755#ECORE_CHECK_MODULE([config], [${want_ecore_config}], [Config], [${ecore_config_deps}], 27855#ECORE_CHECK_MODULE([config], [${want_ecore_config}], [Config], [${ecore_config_deps}],
27756# [requirements_ecore_config="ecore-ipc >= 1.1.0 evas >= 1.1.0 eet >= 1.5.0 ${requirements_ecore_config}"]) 27856# [requirements_ecore_config="ecore-ipc >= 1.1.99 evas >= 1.1.99 eet >= 1.5.0 ${requirements_ecore_config}"])
27757 27857
27758 if false; then 27858 if false; then
27759 BUILD_ECORE_CONFIG_TRUE= 27859 BUILD_ECORE_CONFIG_TRUE=
@@ -27883,7 +27983,7 @@ fi
27883 27983
27884 27984
27885if test "x$have_ecore_imf_evas" = "xyes"; then : 27985if test "x$have_ecore_imf_evas" = "xyes"; then :
27886 requirements_ecore_imf_evas="ecore-imf >= 1.1.0 evas >= 1.1.0 ${requirements_ecore_imf_evas}" 27986 requirements_ecore_imf_evas="ecore-imf >= 1.1.99 evas >= 1.1.99 ${requirements_ecore_imf_evas}"
27887fi 27987fi
27888 27988
27889 27989
@@ -28003,7 +28103,7 @@ fi
28003 28103
28004 28104
28005if test "x$have_ecore_input_evas" = "xyes"; then : 28105if test "x$have_ecore_input_evas" = "xyes"; then :
28006 requirements_ecore_input_evas="ecore-input >= 1.1.0 evas >= 1.1.0 ${requirements_ecore_input}" 28106 requirements_ecore_input_evas="ecore-input >= 1.1.99 evas >= 1.1.99 ${requirements_ecore_input}"
28007fi 28107fi
28008 28108
28009 28109
@@ -28083,7 +28183,159 @@ fi
28083 28183
28084 28184
28085if test "x$have_ecore_imf_xim" = "xyes"; then : 28185if test "x$have_ecore_imf_xim" = "xyes"; then :
28086 requirements_ecore_imf_xim="ecore-imf >= 1.1.0 ecore-x >= 1.1.0 ecore-input >= 1.1.0 ${requirements_ecore_imf_xim}" 28186 requirements_ecore_imf_xim="ecore-imf >= 1.1.99 ecore-x >= 1.1.99 ecore-input >= 1.1.99 ${requirements_ecore_imf_xim}"
28187fi
28188
28189
28190
28191
28192
28193
28194
28195
28196# ecore_imf_scim
28197
28198pkg_failed=no
28199{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SCIM" >&5
28200$as_echo_n "checking for SCIM... " >&6; }
28201
28202if test -n "$PKG_CONFIG"; then
28203 if test -n "$SCIM_CFLAGS"; then
28204 pkg_cv_SCIM_CFLAGS="$SCIM_CFLAGS"
28205 else
28206 if test -n "$PKG_CONFIG" && \
28207 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"scim\""; } >&5
28208 ($PKG_CONFIG --exists --print-errors "scim") 2>&5
28209 ac_status=$?
28210 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
28211 test $ac_status = 0; }; then
28212 pkg_cv_SCIM_CFLAGS=`$PKG_CONFIG --cflags "scim" 2>/dev/null`
28213else
28214 pkg_failed=yes
28215fi
28216 fi
28217else
28218 pkg_failed=untried
28219fi
28220if test -n "$PKG_CONFIG"; then
28221 if test -n "$SCIM_LIBS"; then
28222 pkg_cv_SCIM_LIBS="$SCIM_LIBS"
28223 else
28224 if test -n "$PKG_CONFIG" && \
28225 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"scim\""; } >&5
28226 ($PKG_CONFIG --exists --print-errors "scim") 2>&5
28227 ac_status=$?
28228 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
28229 test $ac_status = 0; }; then
28230 pkg_cv_SCIM_LIBS=`$PKG_CONFIG --libs "scim" 2>/dev/null`
28231else
28232 pkg_failed=yes
28233fi
28234 fi
28235else
28236 pkg_failed=untried
28237fi
28238
28239
28240
28241if test $pkg_failed = yes; then
28242
28243if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
28244 _pkg_short_errors_supported=yes
28245else
28246 _pkg_short_errors_supported=no
28247fi
28248 if test $_pkg_short_errors_supported = yes; then
28249 SCIM_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "scim"`
28250 else
28251 SCIM_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "scim"`
28252 fi
28253 # Put the nasty error message in config.log where it belongs
28254 echo "$SCIM_PKG_ERRORS" >&5
28255
28256 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
28257$as_echo "no" >&6; }
28258 have_scim="no"
28259elif test $pkg_failed = untried; then
28260 have_scim="no"
28261else
28262 SCIM_CFLAGS=$pkg_cv_SCIM_CFLAGS
28263 SCIM_LIBS=$pkg_cv_SCIM_LIBS
28264 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
28265$as_echo "yes" >&6; }
28266 have_scim="yes"
28267fi
28268
28269 if false; then
28270 BUILD_ECORE_IMF_SCIM_TRUE=
28271 BUILD_ECORE_IMF_SCIM_FALSE='#'
28272else
28273 BUILD_ECORE_IMF_SCIM_TRUE='#'
28274 BUILD_ECORE_IMF_SCIM_FALSE=
28275fi
28276
28277ecore_imf_scim_deps="no"
28278echo "have_ecore_x_xlib: ${have_ecore_x_xlib}"
28279if test "x${have_ecore_imf}" = "xyes" \
28280 -a "x${have_scim}" = "xyes" \
28281 -a "x${have_ecore_input}" = "xyes" ; then
28282 ecore_imf_scim_deps="yes"
28283
28284$as_echo "#define BUILD_ECORE_IMF_SCIM 1" >>confdefs.h
28285
28286fi
28287
28288
28289
28290have_ecore_imf_scim=no
28291ecore_imf_scim_cflags=
28292ecore_imf_scim_libs=
28293want_module=${want_ecore_imf}
28294
28295# Check whether --enable-ecore-imf-scim was given.
28296if test "${enable_ecore_imf_scim+set}" = set; then :
28297 enableval=$enable_ecore_imf_scim;
28298 if test "x${enableval}" = "xyes" ; then
28299 want_module="yes"
28300 else
28301 want_module="no"
28302 fi
28303
28304fi
28305
28306
28307{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Ecore_Imf_SCIM module is to be built" >&5
28308$as_echo_n "checking whether Ecore_Imf_SCIM module is to be built... " >&6; }
28309
28310if test "x${want_module}" = "xyes" ; then
28311 if test "x${ecore_imf_scim_deps}" = "x" || test "x${ecore_imf_scim_deps}" = "xyes" ; then
28312
28313$as_echo "#define BUILD_ECORE_IMF_SCIM 1" >>confdefs.h
28314
28315 have_ecore_imf_scim="yes"
28316 ecore_imf_scim_libs="-lecore_imf_scim"
28317 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
28318$as_echo "yes" >&6; }
28319 else
28320 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no (dependency failed)" >&5
28321$as_echo "no (dependency failed)" >&6; }
28322 fi
28323else
28324 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
28325$as_echo "no" >&6; }
28326fi
28327
28328 if test "x$have_ecore_imf_scim" = "xyes"; then
28329 BUILD_ECORE_IMF_SCIM_TRUE=
28330 BUILD_ECORE_IMF_SCIM_FALSE='#'
28331else
28332 BUILD_ECORE_IMF_SCIM_TRUE='#'
28333 BUILD_ECORE_IMF_SCIM_FALSE=
28334fi
28335
28336
28337if test "x$have_ecore_imf_scim" = "xyes"; then :
28338 requirements_ecore_imf_scim="ecore-imf >= 1.1.0 ecore-x >= 1.1.0 ecore-input >= 1.1.0 ${requirements_ecore_imf_scim}"
28087fi 28339fi
28088 28340
28089 28341
@@ -28155,7 +28407,7 @@ fi
28155if test "x$have_ecore_x" = "xyes"; then : 28407if test "x$have_ecore_x" = "xyes"; then :
28156 28408
28157 ecore_x_libs="$ecore_x_libs $x_libs" 28409 ecore_x_libs="$ecore_x_libs $x_libs"
28158 requirements_ecore_x="ecore-input >= 1.1.0 ${requirements_ecore_x}" 28410 requirements_ecore_x="ecore-input >= 1.1.99 ${requirements_ecore_x}"
28159 28411
28160fi 28412fi
28161 28413
@@ -28220,7 +28472,7 @@ fi
28220if test "x$have_ecore_win32" = "xyes"; then : 28472if test "x$have_ecore_win32" = "xyes"; then :
28221 28473
28222 ecore_win32_libs="-lole32 -lgdi32" 28474 ecore_win32_libs="-lole32 -lgdi32"
28223 requirements_ecore_win32="ecore-input >= 1.1.0 ${requirements_ecore_win32}" 28475 requirements_ecore_win32="ecore-input >= 1.1.99 ${requirements_ecore_win32}"
28224 28476
28225fi 28477fi
28226 28478
@@ -28289,7 +28541,7 @@ fi
28289 28541
28290 28542
28291if test "x$have_ecore_cocoa" = "xyes"; then : 28543if test "x$have_ecore_cocoa" = "xyes"; then :
28292 requirements_ecore_cocoa="ecore-input >= 1.1.0 ${requirements_ecore_cocoa}" 28544 requirements_ecore_cocoa="ecore-input >= 1.1.99 ${requirements_ecore_cocoa}"
28293fi 28545fi
28294 28546
28295 28547
@@ -28356,7 +28608,7 @@ fi
28356 28608
28357 28609
28358if test "x$have_ecore_sdl" = "xyes"; then : 28610if test "x$have_ecore_sdl" = "xyes"; then :
28359 requirements_ecore_sdl="ecore-input >= 1.1.0 ${requirements_ecore_sdl}" 28611 requirements_ecore_sdl="ecore-input >= 1.1.99 ${requirements_ecore_sdl}"
28360fi 28612fi
28361 28613
28362 28614
@@ -28416,7 +28668,7 @@ fi
28416 28668
28417 28669
28418if test "x$have_ecore_psl1ght" = "xyes"; then : 28670if test "x$have_ecore_psl1ght" = "xyes"; then :
28419 requirements_ecore_psl1ght="ecore-input >= 1.1.0 ${requirements_ecore_psl1ght}" 28671 requirements_ecore_psl1ght="ecore-input >= 1.1.99 ${requirements_ecore_psl1ght}"
28420fi 28672fi
28421 28673
28422 28674
@@ -28513,10 +28765,11 @@ pkg_failed=no
28513{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for TSLIB" >&5 28765{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for TSLIB" >&5
28514$as_echo_n "checking for TSLIB... " >&6; } 28766$as_echo_n "checking for TSLIB... " >&6; }
28515 28767
28516if test -n "$TSLIB_CFLAGS"; then 28768if test -n "$PKG_CONFIG"; then
28517 pkg_cv_TSLIB_CFLAGS="$TSLIB_CFLAGS" 28769 if test -n "$TSLIB_CFLAGS"; then
28518 elif test -n "$PKG_CONFIG"; then 28770 pkg_cv_TSLIB_CFLAGS="$TSLIB_CFLAGS"
28519 if test -n "$PKG_CONFIG" && \ 28771 else
28772 if test -n "$PKG_CONFIG" && \
28520 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"tslib-1.0\""; } >&5 28773 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"tslib-1.0\""; } >&5
28521 ($PKG_CONFIG --exists --print-errors "tslib-1.0") 2>&5 28774 ($PKG_CONFIG --exists --print-errors "tslib-1.0") 2>&5
28522 ac_status=$? 28775 ac_status=$?
@@ -28526,13 +28779,15 @@ if test -n "$TSLIB_CFLAGS"; then
28526else 28779else
28527 pkg_failed=yes 28780 pkg_failed=yes
28528fi 28781fi
28529 else 28782 fi
28530 pkg_failed=untried 28783else
28784 pkg_failed=untried
28531fi 28785fi
28532if test -n "$TSLIB_LIBS"; then 28786if test -n "$PKG_CONFIG"; then
28533 pkg_cv_TSLIB_LIBS="$TSLIB_LIBS" 28787 if test -n "$TSLIB_LIBS"; then
28534 elif test -n "$PKG_CONFIG"; then 28788 pkg_cv_TSLIB_LIBS="$TSLIB_LIBS"
28535 if test -n "$PKG_CONFIG" && \ 28789 else
28790 if test -n "$PKG_CONFIG" && \
28536 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"tslib-1.0\""; } >&5 28791 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"tslib-1.0\""; } >&5
28537 ($PKG_CONFIG --exists --print-errors "tslib-1.0") 2>&5 28792 ($PKG_CONFIG --exists --print-errors "tslib-1.0") 2>&5
28538 ac_status=$? 28793 ac_status=$?
@@ -28542,15 +28797,14 @@ if test -n "$TSLIB_LIBS"; then
28542else 28797else
28543 pkg_failed=yes 28798 pkg_failed=yes
28544fi 28799fi
28545 else 28800 fi
28546 pkg_failed=untried 28801else
28802 pkg_failed=untried
28547fi 28803fi
28548 28804
28549 28805
28550 28806
28551if test $pkg_failed = yes; then 28807if test $pkg_failed = yes; then
28552 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
28553$as_echo "no" >&6; }
28554 28808
28555if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 28809if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
28556 _pkg_short_errors_supported=yes 28810 _pkg_short_errors_supported=yes
@@ -28558,23 +28812,26 @@ else
28558 _pkg_short_errors_supported=no 28812 _pkg_short_errors_supported=no
28559fi 28813fi
28560 if test $_pkg_short_errors_supported = yes; then 28814 if test $_pkg_short_errors_supported = yes; then
28561 TSLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "tslib-1.0" 2>&1` 28815 TSLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "tslib-1.0"`
28562 else 28816 else
28563 TSLIB_PKG_ERRORS=`$PKG_CONFIG --print-errors "tslib-1.0" 2>&1` 28817 TSLIB_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "tslib-1.0"`
28564 fi 28818 fi
28565 # Put the nasty error message in config.log where it belongs 28819 # Put the nasty error message in config.log where it belongs
28566 echo "$TSLIB_PKG_ERRORS" >&5 28820 echo "$TSLIB_PKG_ERRORS" >&5
28567 28821
28822 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
28823$as_echo "no" >&6; }
28568 28824
28569 28825
28570pkg_failed=no 28826pkg_failed=no
28571{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for TSLIB" >&5 28827{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for TSLIB" >&5
28572$as_echo_n "checking for TSLIB... " >&6; } 28828$as_echo_n "checking for TSLIB... " >&6; }
28573 28829
28574if test -n "$TSLIB_CFLAGS"; then 28830if test -n "$PKG_CONFIG"; then
28575 pkg_cv_TSLIB_CFLAGS="$TSLIB_CFLAGS" 28831 if test -n "$TSLIB_CFLAGS"; then
28576 elif test -n "$PKG_CONFIG"; then 28832 pkg_cv_TSLIB_CFLAGS="$TSLIB_CFLAGS"
28577 if test -n "$PKG_CONFIG" && \ 28833 else
28834 if test -n "$PKG_CONFIG" && \
28578 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"tslib\""; } >&5 28835 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"tslib\""; } >&5
28579 ($PKG_CONFIG --exists --print-errors "tslib") 2>&5 28836 ($PKG_CONFIG --exists --print-errors "tslib") 2>&5
28580 ac_status=$? 28837 ac_status=$?
@@ -28584,13 +28841,15 @@ if test -n "$TSLIB_CFLAGS"; then
28584else 28841else
28585 pkg_failed=yes 28842 pkg_failed=yes
28586fi 28843fi
28587 else 28844 fi
28588 pkg_failed=untried 28845else
28846 pkg_failed=untried
28589fi 28847fi
28590if test -n "$TSLIB_LIBS"; then 28848if test -n "$PKG_CONFIG"; then
28591 pkg_cv_TSLIB_LIBS="$TSLIB_LIBS" 28849 if test -n "$TSLIB_LIBS"; then
28592 elif test -n "$PKG_CONFIG"; then 28850 pkg_cv_TSLIB_LIBS="$TSLIB_LIBS"
28593 if test -n "$PKG_CONFIG" && \ 28851 else
28852 if test -n "$PKG_CONFIG" && \
28594 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"tslib\""; } >&5 28853 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"tslib\""; } >&5
28595 ($PKG_CONFIG --exists --print-errors "tslib") 2>&5 28854 ($PKG_CONFIG --exists --print-errors "tslib") 2>&5
28596 ac_status=$? 28855 ac_status=$?
@@ -28600,15 +28859,14 @@ if test -n "$TSLIB_LIBS"; then
28600else 28859else
28601 pkg_failed=yes 28860 pkg_failed=yes
28602fi 28861fi
28603 else 28862 fi
28604 pkg_failed=untried 28863else
28864 pkg_failed=untried
28605fi 28865fi
28606 28866
28607 28867
28608 28868
28609if test $pkg_failed = yes; then 28869if test $pkg_failed = yes; then
28610 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
28611$as_echo "no" >&6; }
28612 28870
28613if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 28871if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
28614 _pkg_short_errors_supported=yes 28872 _pkg_short_errors_supported=yes
@@ -28616,13 +28874,15 @@ else
28616 _pkg_short_errors_supported=no 28874 _pkg_short_errors_supported=no
28617fi 28875fi
28618 if test $_pkg_short_errors_supported = yes; then 28876 if test $_pkg_short_errors_supported = yes; then
28619 TSLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "tslib" 2>&1` 28877 TSLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "tslib"`
28620 else 28878 else
28621 TSLIB_PKG_ERRORS=`$PKG_CONFIG --print-errors "tslib" 2>&1` 28879 TSLIB_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "tslib"`
28622 fi 28880 fi
28623 # Put the nasty error message in config.log where it belongs 28881 # Put the nasty error message in config.log where it belongs
28624 echo "$TSLIB_PKG_ERRORS" >&5 28882 echo "$TSLIB_PKG_ERRORS" >&5
28625 28883
28884 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
28885$as_echo "no" >&6; }
28626 28886
28627 ac_fn_c_check_header_mongrel "$LINENO" "tslib.h" "ac_cv_header_tslib_h" "$ac_includes_default" 28887 ac_fn_c_check_header_mongrel "$LINENO" "tslib.h" "ac_cv_header_tslib_h" "$ac_includes_default"
28628if test "x$ac_cv_header_tslib_h" = x""yes; then : 28888if test "x$ac_cv_header_tslib_h" = x""yes; then :
@@ -28734,8 +28994,6 @@ fi
28734 28994
28735 28995
28736elif test $pkg_failed = untried; then 28996elif test $pkg_failed = untried; then
28737 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
28738$as_echo "no" >&6; }
28739 28997
28740 ac_fn_c_check_header_mongrel "$LINENO" "tslib.h" "ac_cv_header_tslib_h" "$ac_includes_default" 28998 ac_fn_c_check_header_mongrel "$LINENO" "tslib.h" "ac_cv_header_tslib_h" "$ac_includes_default"
28741if test "x$ac_cv_header_tslib_h" = x""yes; then : 28999if test "x$ac_cv_header_tslib_h" = x""yes; then :
@@ -28861,18 +29119,17 @@ $as_echo "#define HAVE_TSLIB 1" >>confdefs.h
28861fi 29119fi
28862 29120
28863elif test $pkg_failed = untried; then 29121elif test $pkg_failed = untried; then
28864 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
28865$as_echo "no" >&6; }
28866 29122
28867 29123
28868pkg_failed=no 29124pkg_failed=no
28869{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for TSLIB" >&5 29125{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for TSLIB" >&5
28870$as_echo_n "checking for TSLIB... " >&6; } 29126$as_echo_n "checking for TSLIB... " >&6; }
28871 29127
28872if test -n "$TSLIB_CFLAGS"; then 29128if test -n "$PKG_CONFIG"; then
28873 pkg_cv_TSLIB_CFLAGS="$TSLIB_CFLAGS" 29129 if test -n "$TSLIB_CFLAGS"; then
28874 elif test -n "$PKG_CONFIG"; then 29130 pkg_cv_TSLIB_CFLAGS="$TSLIB_CFLAGS"
28875 if test -n "$PKG_CONFIG" && \ 29131 else
29132 if test -n "$PKG_CONFIG" && \
28876 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"tslib\""; } >&5 29133 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"tslib\""; } >&5
28877 ($PKG_CONFIG --exists --print-errors "tslib") 2>&5 29134 ($PKG_CONFIG --exists --print-errors "tslib") 2>&5
28878 ac_status=$? 29135 ac_status=$?
@@ -28882,13 +29139,15 @@ if test -n "$TSLIB_CFLAGS"; then
28882else 29139else
28883 pkg_failed=yes 29140 pkg_failed=yes
28884fi 29141fi
28885 else 29142 fi
28886 pkg_failed=untried 29143else
29144 pkg_failed=untried
28887fi 29145fi
28888if test -n "$TSLIB_LIBS"; then 29146if test -n "$PKG_CONFIG"; then
28889 pkg_cv_TSLIB_LIBS="$TSLIB_LIBS" 29147 if test -n "$TSLIB_LIBS"; then
28890 elif test -n "$PKG_CONFIG"; then 29148 pkg_cv_TSLIB_LIBS="$TSLIB_LIBS"
28891 if test -n "$PKG_CONFIG" && \ 29149 else
29150 if test -n "$PKG_CONFIG" && \
28892 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"tslib\""; } >&5 29151 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"tslib\""; } >&5
28893 ($PKG_CONFIG --exists --print-errors "tslib") 2>&5 29152 ($PKG_CONFIG --exists --print-errors "tslib") 2>&5
28894 ac_status=$? 29153 ac_status=$?
@@ -28898,15 +29157,14 @@ if test -n "$TSLIB_LIBS"; then
28898else 29157else
28899 pkg_failed=yes 29158 pkg_failed=yes
28900fi 29159fi
28901 else 29160 fi
28902 pkg_failed=untried 29161else
29162 pkg_failed=untried
28903fi 29163fi
28904 29164
28905 29165
28906 29166
28907if test $pkg_failed = yes; then 29167if test $pkg_failed = yes; then
28908 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
28909$as_echo "no" >&6; }
28910 29168
28911if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 29169if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
28912 _pkg_short_errors_supported=yes 29170 _pkg_short_errors_supported=yes
@@ -28914,13 +29172,15 @@ else
28914 _pkg_short_errors_supported=no 29172 _pkg_short_errors_supported=no
28915fi 29173fi
28916 if test $_pkg_short_errors_supported = yes; then 29174 if test $_pkg_short_errors_supported = yes; then
28917 TSLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "tslib" 2>&1` 29175 TSLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "tslib"`
28918 else 29176 else
28919 TSLIB_PKG_ERRORS=`$PKG_CONFIG --print-errors "tslib" 2>&1` 29177 TSLIB_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "tslib"`
28920 fi 29178 fi
28921 # Put the nasty error message in config.log where it belongs 29179 # Put the nasty error message in config.log where it belongs
28922 echo "$TSLIB_PKG_ERRORS" >&5 29180 echo "$TSLIB_PKG_ERRORS" >&5
28923 29181
29182 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
29183$as_echo "no" >&6; }
28924 29184
28925 ac_fn_c_check_header_mongrel "$LINENO" "tslib.h" "ac_cv_header_tslib_h" "$ac_includes_default" 29185 ac_fn_c_check_header_mongrel "$LINENO" "tslib.h" "ac_cv_header_tslib_h" "$ac_includes_default"
28926if test "x$ac_cv_header_tslib_h" = x""yes; then : 29186if test "x$ac_cv_header_tslib_h" = x""yes; then :
@@ -29032,8 +29292,6 @@ fi
29032 29292
29033 29293
29034elif test $pkg_failed = untried; then 29294elif test $pkg_failed = untried; then
29035 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
29036$as_echo "no" >&6; }
29037 29295
29038 ac_fn_c_check_header_mongrel "$LINENO" "tslib.h" "ac_cv_header_tslib_h" "$ac_includes_default" 29296 ac_fn_c_check_header_mongrel "$LINENO" "tslib.h" "ac_cv_header_tslib_h" "$ac_includes_default"
29039if test "x$ac_cv_header_tslib_h" = x""yes; then : 29297if test "x$ac_cv_header_tslib_h" = x""yes; then :
@@ -29301,7 +29559,7 @@ fi
29301 29559
29302 29560
29303if test "x$have_ecore_wince" = "xyes"; then : 29561if test "x$have_ecore_wince" = "xyes"; then :
29304 requirements_ecore_win32="ecore-input >= 1.1.0 ${requirements_ecore_win32}" 29562 requirements_ecore_win32="ecore-input >= 1.1.99 ${requirements_ecore_win32}"
29305fi 29563fi
29306 29564
29307 29565
@@ -29370,7 +29628,7 @@ fi
29370 29628
29371 29629
29372if test "x$have_ecore_evas" = "xyes"; then : 29630if test "x$have_ecore_evas" = "xyes"; then :
29373 requirements_ecore_evas="ecore-input >= 1.1.0 ecore-input-evas >= 1.1.0 evas >= 1.1.0 ${requirements_ecore_evas}" 29631 requirements_ecore_evas="ecore-input >= 1.1.99 ecore-input-evas >= 1.1.99 evas >= 1.1.99 ${requirements_ecore_evas}"
29374fi 29632fi
29375 29633
29376 29634
@@ -29591,10 +29849,11 @@ pkg_failed=no
29591{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_X11" >&5 29849{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_X11" >&5
29592$as_echo_n "checking for XCB_X11... " >&6; } 29850$as_echo_n "checking for XCB_X11... " >&6; }
29593 29851
29594if test -n "$XCB_X11_CFLAGS"; then 29852if test -n "$PKG_CONFIG"; then
29595 pkg_cv_XCB_X11_CFLAGS="$XCB_X11_CFLAGS" 29853 if test -n "$XCB_X11_CFLAGS"; then
29596 elif test -n "$PKG_CONFIG"; then 29854 pkg_cv_XCB_X11_CFLAGS="$XCB_X11_CFLAGS"
29597 if test -n "$PKG_CONFIG" && \ 29855 else
29856 if test -n "$PKG_CONFIG" && \
29598 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"x11-xcb\""; } >&5 29857 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"x11-xcb\""; } >&5
29599 ($PKG_CONFIG --exists --print-errors "x11-xcb") 2>&5 29858 ($PKG_CONFIG --exists --print-errors "x11-xcb") 2>&5
29600 ac_status=$? 29859 ac_status=$?
@@ -29604,13 +29863,15 @@ if test -n "$XCB_X11_CFLAGS"; then
29604else 29863else
29605 pkg_failed=yes 29864 pkg_failed=yes
29606fi 29865fi
29607 else 29866 fi
29608 pkg_failed=untried 29867else
29868 pkg_failed=untried
29609fi 29869fi
29610if test -n "$XCB_X11_LIBS"; then 29870if test -n "$PKG_CONFIG"; then
29611 pkg_cv_XCB_X11_LIBS="$XCB_X11_LIBS" 29871 if test -n "$XCB_X11_LIBS"; then
29612 elif test -n "$PKG_CONFIG"; then 29872 pkg_cv_XCB_X11_LIBS="$XCB_X11_LIBS"
29613 if test -n "$PKG_CONFIG" && \ 29873 else
29874 if test -n "$PKG_CONFIG" && \
29614 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"x11-xcb\""; } >&5 29875 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"x11-xcb\""; } >&5
29615 ($PKG_CONFIG --exists --print-errors "x11-xcb") 2>&5 29876 ($PKG_CONFIG --exists --print-errors "x11-xcb") 2>&5
29616 ac_status=$? 29877 ac_status=$?
@@ -29620,15 +29881,14 @@ if test -n "$XCB_X11_LIBS"; then
29620else 29881else
29621 pkg_failed=yes 29882 pkg_failed=yes
29622fi 29883fi
29623 else 29884 fi
29624 pkg_failed=untried 29885else
29886 pkg_failed=untried
29625fi 29887fi
29626 29888
29627 29889
29628 29890
29629if test $pkg_failed = yes; then 29891if test $pkg_failed = yes; then
29630 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
29631$as_echo "no" >&6; }
29632 29892
29633if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 29893if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
29634 _pkg_short_errors_supported=yes 29894 _pkg_short_errors_supported=yes
@@ -29636,17 +29896,17 @@ else
29636 _pkg_short_errors_supported=no 29896 _pkg_short_errors_supported=no
29637fi 29897fi
29638 if test $_pkg_short_errors_supported = yes; then 29898 if test $_pkg_short_errors_supported = yes; then
29639 XCB_X11_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "x11-xcb" 2>&1` 29899 XCB_X11_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "x11-xcb"`
29640 else 29900 else
29641 XCB_X11_PKG_ERRORS=`$PKG_CONFIG --print-errors "x11-xcb" 2>&1` 29901 XCB_X11_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "x11-xcb"`
29642 fi 29902 fi
29643 # Put the nasty error message in config.log where it belongs 29903 # Put the nasty error message in config.log where it belongs
29644 echo "$XCB_X11_PKG_ERRORS" >&5 29904 echo "$XCB_X11_PKG_ERRORS" >&5
29645 29905
29646 have_ecore_x_opengl_xcb="no" 29906 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
29647elif test $pkg_failed = untried; then
29648 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
29649$as_echo "no" >&6; } 29907$as_echo "no" >&6; }
29908 have_ecore_x_opengl_xcb="no"
29909elif test $pkg_failed = untried; then
29650 have_ecore_x_opengl_xcb="no" 29910 have_ecore_x_opengl_xcb="no"
29651else 29911else
29652 XCB_X11_CFLAGS=$pkg_cv_XCB_X11_CFLAGS 29912 XCB_X11_CFLAGS=$pkg_cv_XCB_X11_CFLAGS
@@ -29787,7 +30047,7 @@ if test "x$have_ecore_evas_software_x11" = "xyes" -o \
29787 30047
29788$as_echo "#define BUILD_ECORE_EVAS_X11 1" >>confdefs.h 30048$as_echo "#define BUILD_ECORE_EVAS_X11 1" >>confdefs.h
29789 30049
29790 requirements_ecore_evas="ecore-x >= 1.1.0 ${requirements_ecore_evas}" 30050 requirements_ecore_evas="ecore-x >= 1.1.99 ${requirements_ecore_evas}"
29791fi 30051fi
29792 30052
29793# ecore_evas_win32 30053# ecore_evas_win32
@@ -30065,7 +30325,7 @@ if test "x${have_ecore_evas_software_gdi}" = "xyes" -o \
30065 30325
30066$as_echo "#define BUILD_ECORE_EVAS_WIN32 1" >>confdefs.h 30326$as_echo "#define BUILD_ECORE_EVAS_WIN32 1" >>confdefs.h
30067 30327
30068 requirements_ecore_evas="ecore-win32 >= 1.1.0 ${requirements_ecore_evas}" 30328 requirements_ecore_evas="ecore-win32 >= 1.1.99 ${requirements_ecore_evas}"
30069fi 30329fi
30070 30330
30071# ecore_evas_software_sdl 30331# ecore_evas_software_sdl
@@ -30116,7 +30376,7 @@ $as_echo_n "checking whether ecore_evas Software SDL support is built... " >&6;
30116$as_echo "$have_ecore_evas_software_sdl" >&6; } 30376$as_echo "$have_ecore_evas_software_sdl" >&6; }
30117 30377
30118if test "x$have_ecore_evas_software_sdl" = "xyes"; then : 30378if test "x$have_ecore_evas_software_sdl" = "xyes"; then :
30119 requirements_ecore_evas="ecore-sdl >= 1.1.0 ${requirements_ecore_evas}" 30379 requirements_ecore_evas="ecore-sdl >= 1.1.99 ${requirements_ecore_evas}"
30120fi 30380fi
30121 30381
30122 30382
@@ -30171,7 +30431,7 @@ $as_echo_n "checking whether ecore_evas OpenGL SDL support is built... " >&6; }
30171$as_echo "$have_ecore_evas_opengl_sdl" >&6; } 30431$as_echo "$have_ecore_evas_opengl_sdl" >&6; }
30172 30432
30173if test "x$have_ecore_evas_opengl_sdl" = "xyes"; then : 30433if test "x$have_ecore_evas_opengl_sdl" = "xyes"; then :
30174 requirements_ecore_evas="ecore-sdl >= 1.1.0 ${requirements_ecore_evas}" 30434 requirements_ecore_evas="ecore-sdl >= 1.1.99 ${requirements_ecore_evas}"
30175fi 30435fi
30176 30436
30177 30437
@@ -30226,7 +30486,7 @@ $as_echo_n "checking whether ecore_evas OpenGL Cocoa support is built... " >&6;
30226$as_echo "$have_ecore_evas_opengl_cocoa" >&6; } 30486$as_echo "$have_ecore_evas_opengl_cocoa" >&6; }
30227 30487
30228if test "x$have_ecore_evas_opengl_cocoa" = "xyes"; then : 30488if test "x$have_ecore_evas_opengl_cocoa" = "xyes"; then :
30229 requirements_ecore_evas="ecore-cocoa >= 1.1.0 ${requirements_ecore_evas}" 30489 requirements_ecore_evas="ecore-cocoa >= 1.1.99 ${requirements_ecore_evas}"
30230fi 30490fi
30231 30491
30232 30492
@@ -30281,7 +30541,7 @@ $as_echo_n "checking whether ecore_evas DirectFB support is built... " >&6; }
30281$as_echo "$have_ecore_evas_directfb" >&6; } 30541$as_echo "$have_ecore_evas_directfb" >&6; }
30282 30542
30283if test "x$have_ecore_evas_directfb" = "xyes"; then : 30543if test "x$have_ecore_evas_directfb" = "xyes"; then :
30284 requirements_ecore_evas="ecore-directfb >= 1.1.0 ${requirements_ecore_evas}" 30544 requirements_ecore_evas="ecore-directfb >= 1.1.99 ${requirements_ecore_evas}"
30285fi 30545fi
30286 30546
30287 30547
@@ -30336,7 +30596,7 @@ $as_echo_n "checking whether ecore_evas Linux Framebuffer support is built... "
30336$as_echo "$have_ecore_evas_fb" >&6; } 30596$as_echo "$have_ecore_evas_fb" >&6; }
30337 30597
30338if test "x$have_ecore_evas_fb" = "xyes"; then : 30598if test "x$have_ecore_evas_fb" = "xyes"; then :
30339 requirements_ecore_evas="ecore-fb >= 1.1.0 ${requirements_ecore_evas}" 30599 requirements_ecore_evas="ecore-fb >= 1.1.99 ${requirements_ecore_evas}"
30340fi 30600fi
30341 30601
30342 30602
@@ -30391,7 +30651,7 @@ $as_echo_n "checking whether ecore_evas 16 bpp Software Windows CE support is bu
30391$as_echo "$have_ecore_evas_software_16_wince" >&6; } 30651$as_echo "$have_ecore_evas_software_16_wince" >&6; }
30392 30652
30393if test "x$have_ecore_evas_software_16_wince" = "xyes"; then : 30653if test "x$have_ecore_evas_software_16_wince" = "xyes"; then :
30394 requirements_ecore_evas="ecore-wince >= 1.1.0 ${requirements_ecore_evas}" 30654 requirements_ecore_evas="ecore-wince >= 1.1.99 ${requirements_ecore_evas}"
30395fi 30655fi
30396 30656
30397 30657
@@ -30501,7 +30761,332 @@ $as_echo_n "checking whether ecore_evas PSL1GHT support is built... " >&6; }
30501$as_echo "$have_ecore_evas_psl1ght" >&6; } 30761$as_echo "$have_ecore_evas_psl1ght" >&6; }
30502 30762
30503if test "x$have_ecore_evas_psl1ght" = "xyes"; then : 30763if test "x$have_ecore_evas_psl1ght" = "xyes"; then :
30504 requirements_ecore_evas="ecore-psl1ght >= 1.1.0 ${requirements_ecore_evas}" 30764 requirements_ecore_evas="ecore-psl1ght >= 1.1.99 ${requirements_ecore_evas}"
30765fi
30766
30767
30768
30769
30770
30771### WAYLAND
30772
30773ecore_wayland_deps="no"
30774have_wayland="no"
30775if test "x${want_ecore_wayland}" = "xyes" ; then
30776
30777pkg_failed=no
30778{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for WAYLAND" >&5
30779$as_echo_n "checking for WAYLAND... " >&6; }
30780
30781if test -n "$PKG_CONFIG"; then
30782 if test -n "$WAYLAND_CFLAGS"; then
30783 pkg_cv_WAYLAND_CFLAGS="$WAYLAND_CFLAGS"
30784 else
30785 if test -n "$PKG_CONFIG" && \
30786 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"wayland-client xkbcommon\""; } >&5
30787 ($PKG_CONFIG --exists --print-errors "wayland-client xkbcommon") 2>&5
30788 ac_status=$?
30789 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
30790 test $ac_status = 0; }; then
30791 pkg_cv_WAYLAND_CFLAGS=`$PKG_CONFIG --cflags "wayland-client xkbcommon" 2>/dev/null`
30792else
30793 pkg_failed=yes
30794fi
30795 fi
30796else
30797 pkg_failed=untried
30798fi
30799if test -n "$PKG_CONFIG"; then
30800 if test -n "$WAYLAND_LIBS"; then
30801 pkg_cv_WAYLAND_LIBS="$WAYLAND_LIBS"
30802 else
30803 if test -n "$PKG_CONFIG" && \
30804 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"wayland-client xkbcommon\""; } >&5
30805 ($PKG_CONFIG --exists --print-errors "wayland-client xkbcommon") 2>&5
30806 ac_status=$?
30807 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
30808 test $ac_status = 0; }; then
30809 pkg_cv_WAYLAND_LIBS=`$PKG_CONFIG --libs "wayland-client xkbcommon" 2>/dev/null`
30810else
30811 pkg_failed=yes
30812fi
30813 fi
30814else
30815 pkg_failed=untried
30816fi
30817
30818
30819
30820if test $pkg_failed = yes; then
30821
30822if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
30823 _pkg_short_errors_supported=yes
30824else
30825 _pkg_short_errors_supported=no
30826fi
30827 if test $_pkg_short_errors_supported = yes; then
30828 WAYLAND_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "wayland-client xkbcommon"`
30829 else
30830 WAYLAND_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "wayland-client xkbcommon"`
30831 fi
30832 # Put the nasty error message in config.log where it belongs
30833 echo "$WAYLAND_PKG_ERRORS" >&5
30834
30835 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
30836$as_echo "no" >&6; }
30837 have_wayland="no"
30838elif test $pkg_failed = untried; then
30839 have_wayland="no"
30840else
30841 WAYLAND_CFLAGS=$pkg_cv_WAYLAND_CFLAGS
30842 WAYLAND_LIBS=$pkg_cv_WAYLAND_LIBS
30843 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
30844$as_echo "yes" >&6; }
30845 have_wayland="yes"
30846fi
30847fi
30848if test "x${have_ecore_input}" = "xyes" -a "x${have_wayland}" = "xyes" ; then
30849 ecore_wayland_deps="yes"
30850fi
30851
30852
30853
30854have_ecore_wayland=no
30855ecore_wayland_cflags=
30856ecore_wayland_libs=
30857want_module=${want_ecore_wayland}
30858
30859# Check whether --enable-ecore-wayland was given.
30860if test "${enable_ecore_wayland+set}" = set; then :
30861 enableval=$enable_ecore_wayland;
30862 if test "x${enableval}" = "xyes" ; then
30863 want_module="yes"
30864 else
30865 want_module="no"
30866 fi
30867
30868fi
30869
30870
30871{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Ecore_Wayland module is to be built" >&5
30872$as_echo_n "checking whether Ecore_Wayland module is to be built... " >&6; }
30873
30874if test "x${want_module}" = "xyes" ; then
30875 if test "x${ecore_wayland_deps}" = "x" || test "x${ecore_wayland_deps}" = "xyes" ; then
30876
30877$as_echo "#define BUILD_ECORE_WAYLAND 1" >>confdefs.h
30878
30879 have_ecore_wayland="yes"
30880 ecore_wayland_libs="-lecore_wayland"
30881 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
30882$as_echo "yes" >&6; }
30883 else
30884 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no (dependency failed)" >&5
30885$as_echo "no (dependency failed)" >&6; }
30886 fi
30887else
30888 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
30889$as_echo "no" >&6; }
30890fi
30891
30892 if test "x$have_ecore_wayland" = "xyes"; then
30893 BUILD_ECORE_WAYLAND_TRUE=
30894 BUILD_ECORE_WAYLAND_FALSE='#'
30895else
30896 BUILD_ECORE_WAYLAND_TRUE='#'
30897 BUILD_ECORE_WAYLAND_FALSE=
30898fi
30899
30900
30901if test "x$have_ecore_wayland" = "xyes"; then :
30902
30903fi
30904
30905
30906
30907
30908
30909
30910
30911if test "x${have_ecore_wayland}" = "xyes" ; then
30912 requirements_ecore_wayland="ecore-input >= 1.1.0 wayland-client xkbcommon ${requirements_ecore_wayland}"
30913fi
30914
30915
30916
30917have_ecore_evas_wayland_shm="no"
30918want_module="${want_ecore_evas_wayland_shm}"
30919
30920# Check whether --enable-ecore-evas-wayland-shm was given.
30921if test "${enable_ecore_evas_wayland_shm+set}" = set; then :
30922 enableval=$enable_ecore_evas_wayland_shm;
30923 if test "x${enableval}" = "xyes" ; then
30924 want_module="yes"
30925 else
30926 want_module="no"
30927 fi
30928
30929fi
30930
30931
30932{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ecore_evas Wayland Shm support is to be built" >&5
30933$as_echo_n "checking whether ecore_evas Wayland Shm support is to be built... " >&6; }
30934{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${want_module}" >&5
30935$as_echo "${want_module}" >&6; }
30936
30937if test "x${have_ecore_wayland}" = "xyes" -a \
30938 "x$have_ecore_evas" = "xyes" -a \
30939 "x$want_module" = "xyes" ; then
30940 if test -n "$PKG_CONFIG" && \
30941 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evas-wayland-shm\""; } >&5
30942 ($PKG_CONFIG --exists --print-errors "evas-wayland-shm") 2>&5
30943 ac_status=$?
30944 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
30945 test $ac_status = 0; }; then
30946
30947
30948$as_echo "#define BUILD_ECORE_EVAS_WAYLAND_SHM 1" >>confdefs.h
30949
30950 have_ecore_evas_wayland_shm="yes"
30951
30952fi
30953fi
30954
30955{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ecore_evas Wayland Shm support is built" >&5
30956$as_echo_n "checking whether ecore_evas Wayland Shm support is built... " >&6; }
30957{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_ecore_evas_wayland_shm" >&5
30958$as_echo "$have_ecore_evas_wayland_shm" >&6; }
30959
30960if test "x$have_ecore_evas_wayland_shm" = "xyes"; then :
30961 requirements_ecore_evas="${requirements_ecore_wayland} ${requirements_ecore_evas}"
30962fi
30963
30964
30965
30966
30967
30968
30969
30970have_ecore_evas_wayland_egl="no"
30971want_module="${want_ecore_evas_wayland_egl}"
30972
30973# Check whether --enable-ecore-evas-wayland-egl was given.
30974if test "${enable_ecore_evas_wayland_egl+set}" = set; then :
30975 enableval=$enable_ecore_evas_wayland_egl;
30976 if test "x${enableval}" = "xyes" ; then
30977 want_module="yes"
30978 else
30979 want_module="no"
30980 fi
30981
30982fi
30983
30984
30985{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ecore_evas Wayland Egl support is to be built" >&5
30986$as_echo_n "checking whether ecore_evas Wayland Egl support is to be built... " >&6; }
30987{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${want_module}" >&5
30988$as_echo "${want_module}" >&6; }
30989
30990if test "x${have_ecore_wayland}" = "xyes" -a \
30991 "x$have_ecore_evas" = "xyes" -a \
30992 "x$want_module" = "xyes" ; then
30993 if test -n "$PKG_CONFIG" && \
30994 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evas-wayland-egl\""; } >&5
30995 ($PKG_CONFIG --exists --print-errors "evas-wayland-egl") 2>&5
30996 ac_status=$?
30997 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
30998 test $ac_status = 0; }; then
30999
31000
31001$as_echo "#define BUILD_ECORE_EVAS_WAYLAND_EGL 1" >>confdefs.h
31002
31003 have_ecore_evas_wayland_egl="yes"
31004
31005fi
31006fi
31007
31008{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ecore_evas Wayland Egl support is built" >&5
31009$as_echo_n "checking whether ecore_evas Wayland Egl support is built... " >&6; }
31010{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_ecore_evas_wayland_egl" >&5
31011$as_echo "$have_ecore_evas_wayland_egl" >&6; }
31012
31013if test "x$have_ecore_evas_wayland_egl" = "xyes"; then :
31014
31015
31016pkg_failed=no
31017{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for WAYLAND_EGL" >&5
31018$as_echo_n "checking for WAYLAND_EGL... " >&6; }
31019
31020if test -n "$PKG_CONFIG"; then
31021 if test -n "$WAYLAND_EGL_CFLAGS"; then
31022 pkg_cv_WAYLAND_EGL_CFLAGS="$WAYLAND_EGL_CFLAGS"
31023 else
31024 if test -n "$PKG_CONFIG" && \
31025 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"wayland-egl\""; } >&5
31026 ($PKG_CONFIG --exists --print-errors "wayland-egl") 2>&5
31027 ac_status=$?
31028 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
31029 test $ac_status = 0; }; then
31030 pkg_cv_WAYLAND_EGL_CFLAGS=`$PKG_CONFIG --cflags "wayland-egl" 2>/dev/null`
31031else
31032 pkg_failed=yes
31033fi
31034 fi
31035else
31036 pkg_failed=untried
31037fi
31038if test -n "$PKG_CONFIG"; then
31039 if test -n "$WAYLAND_EGL_LIBS"; then
31040 pkg_cv_WAYLAND_EGL_LIBS="$WAYLAND_EGL_LIBS"
31041 else
31042 if test -n "$PKG_CONFIG" && \
31043 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"wayland-egl\""; } >&5
31044 ($PKG_CONFIG --exists --print-errors "wayland-egl") 2>&5
31045 ac_status=$?
31046 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
31047 test $ac_status = 0; }; then
31048 pkg_cv_WAYLAND_EGL_LIBS=`$PKG_CONFIG --libs "wayland-egl" 2>/dev/null`
31049else
31050 pkg_failed=yes
31051fi
31052 fi
31053else
31054 pkg_failed=untried
31055fi
31056
31057
31058
31059if test $pkg_failed = yes; then
31060
31061if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
31062 _pkg_short_errors_supported=yes
31063else
31064 _pkg_short_errors_supported=no
31065fi
31066 if test $_pkg_short_errors_supported = yes; then
31067 WAYLAND_EGL_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "wayland-egl"`
31068 else
31069 WAYLAND_EGL_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "wayland-egl"`
31070 fi
31071 # Put the nasty error message in config.log where it belongs
31072 echo "$WAYLAND_EGL_PKG_ERRORS" >&5
31073
31074 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
31075$as_echo "no" >&6; }
31076 have_wayland_egl="no"
31077elif test $pkg_failed = untried; then
31078 have_wayland_egl="no"
31079else
31080 WAYLAND_EGL_CFLAGS=$pkg_cv_WAYLAND_EGL_CFLAGS
31081 WAYLAND_EGL_LIBS=$pkg_cv_WAYLAND_EGL_LIBS
31082 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
31083$as_echo "yes" >&6; }
31084 have_wayland_egl="yes"
31085fi
31086 if test "x${have_wayland_egl}" = "xyes" ; then
31087 requirements_ecore_evas="wayland-egl egl ${requirements_ecore_wayland} ${requirements_ecore_evas}"
31088 fi
31089
30505fi 31090fi
30506 31091
30507 31092
@@ -30607,7 +31192,9 @@ fi
30607 31192
30608 31193
30609 31194
30610ac_config_files="$ac_config_files Makefile ecore-con.pc ecore-config.pc ecore-directfb.pc ecore-evas.pc ecore-fb.pc ecore-file.pc ecore-imf.pc ecore-imf-evas.pc ecore-ipc.pc ecore-x.pc ecore-input.pc ecore-input-evas.pc ecore-win32.pc ecore-sdl.pc ecore-cocoa.pc ecore-psl1ght.pc ecore-wince.pc ecore.pc doc/ecore.dox doc/Makefile doc/Doxyfile src/Makefile src/util/Makefile src/bin/Makefile src/lib/Makefile src/lib/ecore/Makefile src/lib/ecore_con/Makefile src/lib/ecore_config/Makefile src/lib/ecore_directfb/Makefile src/lib/ecore_evas/Makefile src/lib/ecore_fb/Makefile src/lib/ecore_file/Makefile src/lib/ecore_cocoa/Makefile src/lib/ecore_sdl/Makefile src/lib/ecore_psl1ght/Makefile src/lib/ecore_imf/Makefile src/lib/ecore_imf_evas/Makefile src/lib/ecore_input/Makefile src/lib/ecore_input_evas/Makefile src/lib/ecore_ipc/Makefile src/lib/ecore_win32/Makefile src/lib/ecore_wince/Makefile src/lib/ecore_x/Makefile src/lib/ecore_x/xlib/Makefile src/lib/ecore_x/xcb/Makefile src/examples/Makefile src/tests/Makefile src/modules/Makefile src/modules/immodules/Makefile src/modules/immodules/xim/Makefile ecore.spec $po_makefile_in" 31195
31196
31197ac_config_files="$ac_config_files Makefile ecore-con.pc ecore-config.pc ecore-directfb.pc ecore-evas.pc ecore-fb.pc ecore-file.pc ecore-imf.pc ecore-imf-evas.pc ecore-ipc.pc ecore-x.pc ecore-input.pc ecore-input-evas.pc ecore-win32.pc ecore-sdl.pc ecore-cocoa.pc ecore-psl1ght.pc ecore-wince.pc ecore-wayland.pc ecore.pc doc/ecore.dox doc/Makefile doc/Doxyfile src/Makefile src/util/Makefile src/bin/Makefile src/lib/Makefile src/lib/ecore/Makefile src/lib/ecore_con/Makefile src/lib/ecore_config/Makefile src/lib/ecore_directfb/Makefile src/lib/ecore_evas/Makefile src/lib/ecore_fb/Makefile src/lib/ecore_file/Makefile src/lib/ecore_cocoa/Makefile src/lib/ecore_sdl/Makefile src/lib/ecore_psl1ght/Makefile src/lib/ecore_imf/Makefile src/lib/ecore_imf_evas/Makefile src/lib/ecore_input/Makefile src/lib/ecore_input_evas/Makefile src/lib/ecore_ipc/Makefile src/lib/ecore_win32/Makefile src/lib/ecore_wince/Makefile src/lib/ecore_x/Makefile src/lib/ecore_x/xlib/Makefile src/lib/ecore_x/xcb/Makefile src/lib/ecore_wayland/Makefile src/examples/Makefile src/tests/Makefile src/modules/Makefile src/modules/immodules/Makefile src/modules/immodules/xim/Makefile src/modules/immodules/scim/Makefile ecore.spec $po_makefile_in"
30611 31198
30612 31199
30613cat >confcache <<\_ACEOF 31200cat >confcache <<\_ACEOF
@@ -30693,7 +31280,6 @@ DEFS=-DHAVE_CONFIG_H
30693 31280
30694ac_libobjs= 31281ac_libobjs=
30695ac_ltlibobjs= 31282ac_ltlibobjs=
30696U=
30697for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue 31283for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
30698 # 1. Remove the extension, and $U if already installed. 31284 # 1. Remove the extension, and $U if already installed.
30699 ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' 31285 ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
@@ -30717,156 +31303,168 @@ else
30717fi 31303fi
30718 31304
30719if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then 31305if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
30720 as_fn_error $? "conditional \"AMDEP\" was never defined. 31306 as_fn_error "conditional \"AMDEP\" was never defined.
30721Usually this means the macro was only invoked conditionally." "$LINENO" 5 31307Usually this means the macro was only invoked conditionally." "$LINENO" 5
30722fi 31308fi
30723if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then 31309if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
30724 as_fn_error $? "conditional \"am__fastdepCC\" was never defined. 31310 as_fn_error "conditional \"am__fastdepCC\" was never defined.
30725Usually this means the macro was only invoked conditionally." "$LINENO" 5 31311Usually this means the macro was only invoked conditionally." "$LINENO" 5
30726fi 31312fi
30727if test -z "${HAVE_PO_TRUE}" && test -z "${HAVE_PO_FALSE}"; then 31313if test -z "${HAVE_PO_TRUE}" && test -z "${HAVE_PO_FALSE}"; then
30728 as_fn_error $? "conditional \"HAVE_PO\" was never defined. 31314 as_fn_error "conditional \"HAVE_PO\" was never defined.
30729Usually this means the macro was only invoked conditionally." "$LINENO" 5 31315Usually this means the macro was only invoked conditionally." "$LINENO" 5
30730fi 31316fi
30731if test -z "${EFL_ENABLE_TESTS_TRUE}" && test -z "${EFL_ENABLE_TESTS_FALSE}"; then 31317if test -z "${EFL_ENABLE_TESTS_TRUE}" && test -z "${EFL_ENABLE_TESTS_FALSE}"; then
30732 as_fn_error $? "conditional \"EFL_ENABLE_TESTS\" was never defined. 31318 as_fn_error "conditional \"EFL_ENABLE_TESTS\" was never defined.
30733Usually this means the macro was only invoked conditionally." "$LINENO" 5 31319Usually this means the macro was only invoked conditionally." "$LINENO" 5
30734fi 31320fi
30735if test -z "${am__fastdepOBJC_TRUE}" && test -z "${am__fastdepOBJC_FALSE}"; then 31321if test -z "${am__fastdepOBJC_TRUE}" && test -z "${am__fastdepOBJC_FALSE}"; then
30736 as_fn_error $? "conditional \"am__fastdepOBJC\" was never defined. 31322 as_fn_error "conditional \"am__fastdepOBJC\" was never defined.
30737Usually this means the macro was only invoked conditionally." "$LINENO" 5 31323Usually this means the macro was only invoked conditionally." "$LINENO" 5
30738fi 31324fi
30739if test -z "${am__fastdepOBJC_TRUE}" && test -z "${am__fastdepOBJC_FALSE}"; then 31325if test -z "${am__fastdepOBJC_TRUE}" && test -z "${am__fastdepOBJC_FALSE}"; then
30740 as_fn_error $? "conditional \"am__fastdepOBJC\" was never defined. 31326 as_fn_error "conditional \"am__fastdepOBJC\" was never defined.
30741Usually this means the macro was only invoked conditionally." "$LINENO" 5 31327Usually this means the macro was only invoked conditionally." "$LINENO" 5
30742fi 31328fi
30743if test -z "${am__fastdepOBJC_TRUE}" && test -z "${am__fastdepOBJC_FALSE}"; then 31329if test -z "${am__fastdepOBJC_TRUE}" && test -z "${am__fastdepOBJC_FALSE}"; then
30744 as_fn_error $? "conditional \"am__fastdepOBJC\" was never defined. 31330 as_fn_error "conditional \"am__fastdepOBJC\" was never defined.
30745Usually this means the macro was only invoked conditionally." "$LINENO" 5 31331Usually this means the macro was only invoked conditionally." "$LINENO" 5
30746fi 31332fi
30747if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then 31333if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
30748 as_fn_error $? "conditional \"am__fastdepCXX\" was never defined. 31334 as_fn_error "conditional \"am__fastdepCXX\" was never defined.
30749Usually this means the macro was only invoked conditionally." "$LINENO" 5 31335Usually this means the macro was only invoked conditionally." "$LINENO" 5
30750fi 31336fi
30751if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then 31337if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
30752 as_fn_error $? "conditional \"am__fastdepCXX\" was never defined. 31338 as_fn_error "conditional \"am__fastdepCXX\" was never defined.
30753Usually this means the macro was only invoked conditionally." "$LINENO" 5 31339Usually this means the macro was only invoked conditionally." "$LINENO" 5
30754fi 31340fi
30755if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then 31341if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
30756 as_fn_error $? "conditional \"am__fastdepCC\" was never defined. 31342 as_fn_error "conditional \"am__fastdepCC\" was never defined.
30757Usually this means the macro was only invoked conditionally." "$LINENO" 5 31343Usually this means the macro was only invoked conditionally." "$LINENO" 5
30758fi 31344fi
30759if test -z "${EFL_BUILD_DOC_TRUE}" && test -z "${EFL_BUILD_DOC_FALSE}"; then 31345if test -z "${EFL_BUILD_DOC_TRUE}" && test -z "${EFL_BUILD_DOC_FALSE}"; then
30760 as_fn_error $? "conditional \"EFL_BUILD_DOC\" was never defined. 31346 as_fn_error "conditional \"EFL_BUILD_DOC\" was never defined.
30761Usually this means the macro was only invoked conditionally." "$LINENO" 5 31347Usually this means the macro was only invoked conditionally." "$LINENO" 5
30762fi 31348fi
30763if test -z "${ECORE_HAVE_WINCE_TRUE}" && test -z "${ECORE_HAVE_WINCE_FALSE}"; then 31349if test -z "${ECORE_HAVE_WINCE_TRUE}" && test -z "${ECORE_HAVE_WINCE_FALSE}"; then
30764 as_fn_error $? "conditional \"ECORE_HAVE_WINCE\" was never defined. 31350 as_fn_error "conditional \"ECORE_HAVE_WINCE\" was never defined.
30765Usually this means the macro was only invoked conditionally." "$LINENO" 5 31351Usually this means the macro was only invoked conditionally." "$LINENO" 5
30766fi 31352fi
30767if test -z "${ECORE_HAVE_WIN32_TRUE}" && test -z "${ECORE_HAVE_WIN32_FALSE}"; then 31353if test -z "${ECORE_HAVE_WIN32_TRUE}" && test -z "${ECORE_HAVE_WIN32_FALSE}"; then
30768 as_fn_error $? "conditional \"ECORE_HAVE_WIN32\" was never defined. 31354 as_fn_error "conditional \"ECORE_HAVE_WIN32\" was never defined.
30769Usually this means the macro was only invoked conditionally." "$LINENO" 5 31355Usually this means the macro was only invoked conditionally." "$LINENO" 5
30770fi 31356fi
30771if test -z "${ECORE_HAVE_PS3_TRUE}" && test -z "${ECORE_HAVE_PS3_FALSE}"; then 31357if test -z "${ECORE_HAVE_PS3_TRUE}" && test -z "${ECORE_HAVE_PS3_FALSE}"; then
30772 as_fn_error $? "conditional \"ECORE_HAVE_PS3\" was never defined. 31358 as_fn_error "conditional \"ECORE_HAVE_PS3\" was never defined.
30773Usually this means the macro was only invoked conditionally." "$LINENO" 5 31359Usually this means the macro was only invoked conditionally." "$LINENO" 5
30774fi 31360fi
30775if test -z "${BUILD_ECORE_X_XLIB_TRUE}" && test -z "${BUILD_ECORE_X_XLIB_FALSE}"; then 31361if test -z "${BUILD_ECORE_X_XLIB_TRUE}" && test -z "${BUILD_ECORE_X_XLIB_FALSE}"; then
30776 as_fn_error $? "conditional \"BUILD_ECORE_X_XLIB\" was never defined. 31362 as_fn_error "conditional \"BUILD_ECORE_X_XLIB\" was never defined.
30777Usually this means the macro was only invoked conditionally." "$LINENO" 5 31363Usually this means the macro was only invoked conditionally." "$LINENO" 5
30778fi 31364fi
30779if test -z "${BUILD_ECORE_X_XCB_TRUE}" && test -z "${BUILD_ECORE_X_XCB_FALSE}"; then 31365if test -z "${BUILD_ECORE_X_XCB_TRUE}" && test -z "${BUILD_ECORE_X_XCB_FALSE}"; then
30780 as_fn_error $? "conditional \"BUILD_ECORE_X_XCB\" was never defined. 31366 as_fn_error "conditional \"BUILD_ECORE_X_XCB\" was never defined.
30781Usually this means the macro was only invoked conditionally." "$LINENO" 5 31367Usually this means the macro was only invoked conditionally." "$LINENO" 5
30782fi 31368fi
30783 31369
30784if test -z "${BUILD_ECORE_CON_TRUE}" && test -z "${BUILD_ECORE_CON_FALSE}"; then 31370if test -z "${BUILD_ECORE_CON_TRUE}" && test -z "${BUILD_ECORE_CON_FALSE}"; then
30785 as_fn_error $? "conditional \"BUILD_ECORE_CON\" was never defined. 31371 as_fn_error "conditional \"BUILD_ECORE_CON\" was never defined.
30786Usually this means the macro was only invoked conditionally." "$LINENO" 5 31372Usually this means the macro was only invoked conditionally." "$LINENO" 5
30787fi 31373fi
30788if test -z "${HAVE_CARES_TRUE}" && test -z "${HAVE_CARES_FALSE}"; then 31374if test -z "${HAVE_CARES_TRUE}" && test -z "${HAVE_CARES_FALSE}"; then
30789 as_fn_error $? "conditional \"HAVE_CARES\" was never defined. 31375 as_fn_error "conditional \"HAVE_CARES\" was never defined.
30790Usually this means the macro was only invoked conditionally." "$LINENO" 5 31376Usually this means the macro was only invoked conditionally." "$LINENO" 5
30791fi 31377fi
30792if test -z "${BUILD_ECORE_IPC_TRUE}" && test -z "${BUILD_ECORE_IPC_FALSE}"; then 31378if test -z "${BUILD_ECORE_IPC_TRUE}" && test -z "${BUILD_ECORE_IPC_FALSE}"; then
30793 as_fn_error $? "conditional \"BUILD_ECORE_IPC\" was never defined. 31379 as_fn_error "conditional \"BUILD_ECORE_IPC\" was never defined.
30794Usually this means the macro was only invoked conditionally." "$LINENO" 5 31380Usually this means the macro was only invoked conditionally." "$LINENO" 5
30795fi 31381fi
30796if test -z "${BUILD_ECORE_FILE_TRUE}" && test -z "${BUILD_ECORE_FILE_FALSE}"; then 31382if test -z "${BUILD_ECORE_FILE_TRUE}" && test -z "${BUILD_ECORE_FILE_FALSE}"; then
30797 as_fn_error $? "conditional \"BUILD_ECORE_FILE\" was never defined. 31383 as_fn_error "conditional \"BUILD_ECORE_FILE\" was never defined.
30798Usually this means the macro was only invoked conditionally." "$LINENO" 5 31384Usually this means the macro was only invoked conditionally." "$LINENO" 5
30799fi 31385fi
30800if test -z "${BUILD_ECORE_CONFIG_TRUE}" && test -z "${BUILD_ECORE_CONFIG_FALSE}"; then 31386if test -z "${BUILD_ECORE_CONFIG_TRUE}" && test -z "${BUILD_ECORE_CONFIG_FALSE}"; then
30801 as_fn_error $? "conditional \"BUILD_ECORE_CONFIG\" was never defined. 31387 as_fn_error "conditional \"BUILD_ECORE_CONFIG\" was never defined.
30802Usually this means the macro was only invoked conditionally." "$LINENO" 5 31388Usually this means the macro was only invoked conditionally." "$LINENO" 5
30803fi 31389fi
30804if test -z "${BUILD_ECORE_IMF_TRUE}" && test -z "${BUILD_ECORE_IMF_FALSE}"; then 31390if test -z "${BUILD_ECORE_IMF_TRUE}" && test -z "${BUILD_ECORE_IMF_FALSE}"; then
30805 as_fn_error $? "conditional \"BUILD_ECORE_IMF\" was never defined. 31391 as_fn_error "conditional \"BUILD_ECORE_IMF\" was never defined.
30806Usually this means the macro was only invoked conditionally." "$LINENO" 5 31392Usually this means the macro was only invoked conditionally." "$LINENO" 5
30807fi 31393fi
30808if test -z "${BUILD_ECORE_IMF_EVAS_TRUE}" && test -z "${BUILD_ECORE_IMF_EVAS_FALSE}"; then 31394if test -z "${BUILD_ECORE_IMF_EVAS_TRUE}" && test -z "${BUILD_ECORE_IMF_EVAS_FALSE}"; then
30809 as_fn_error $? "conditional \"BUILD_ECORE_IMF_EVAS\" was never defined. 31395 as_fn_error "conditional \"BUILD_ECORE_IMF_EVAS\" was never defined.
30810Usually this means the macro was only invoked conditionally." "$LINENO" 5 31396Usually this means the macro was only invoked conditionally." "$LINENO" 5
30811fi 31397fi
30812if test -z "${BUILD_ECORE_INPUT_TRUE}" && test -z "${BUILD_ECORE_INPUT_FALSE}"; then 31398if test -z "${BUILD_ECORE_INPUT_TRUE}" && test -z "${BUILD_ECORE_INPUT_FALSE}"; then
30813 as_fn_error $? "conditional \"BUILD_ECORE_INPUT\" was never defined. 31399 as_fn_error "conditional \"BUILD_ECORE_INPUT\" was never defined.
30814Usually this means the macro was only invoked conditionally." "$LINENO" 5 31400Usually this means the macro was only invoked conditionally." "$LINENO" 5
30815fi 31401fi
30816if test -z "${BUILD_ECORE_INPUT_EVAS_TRUE}" && test -z "${BUILD_ECORE_INPUT_EVAS_FALSE}"; then 31402if test -z "${BUILD_ECORE_INPUT_EVAS_TRUE}" && test -z "${BUILD_ECORE_INPUT_EVAS_FALSE}"; then
30817 as_fn_error $? "conditional \"BUILD_ECORE_INPUT_EVAS\" was never defined. 31403 as_fn_error "conditional \"BUILD_ECORE_INPUT_EVAS\" was never defined.
30818Usually this means the macro was only invoked conditionally." "$LINENO" 5 31404Usually this means the macro was only invoked conditionally." "$LINENO" 5
30819fi 31405fi
30820if test -z "${BUILD_ECORE_IMF_XIM_TRUE}" && test -z "${BUILD_ECORE_IMF_XIM_FALSE}"; then 31406if test -z "${BUILD_ECORE_IMF_XIM_TRUE}" && test -z "${BUILD_ECORE_IMF_XIM_FALSE}"; then
30821 as_fn_error $? "conditional \"BUILD_ECORE_IMF_XIM\" was never defined. 31407 as_fn_error "conditional \"BUILD_ECORE_IMF_XIM\" was never defined.
30822Usually this means the macro was only invoked conditionally." "$LINENO" 5 31408Usually this means the macro was only invoked conditionally." "$LINENO" 5
30823fi 31409fi
30824if test -z "${BUILD_ECORE_IMF_XIM_TRUE}" && test -z "${BUILD_ECORE_IMF_XIM_FALSE}"; then 31410if test -z "${BUILD_ECORE_IMF_XIM_TRUE}" && test -z "${BUILD_ECORE_IMF_XIM_FALSE}"; then
30825 as_fn_error $? "conditional \"BUILD_ECORE_IMF_XIM\" was never defined. 31411 as_fn_error "conditional \"BUILD_ECORE_IMF_XIM\" was never defined.
31412Usually this means the macro was only invoked conditionally." "$LINENO" 5
31413fi
31414if test -z "${BUILD_ECORE_IMF_SCIM_TRUE}" && test -z "${BUILD_ECORE_IMF_SCIM_FALSE}"; then
31415 as_fn_error "conditional \"BUILD_ECORE_IMF_SCIM\" was never defined.
31416Usually this means the macro was only invoked conditionally." "$LINENO" 5
31417fi
31418if test -z "${BUILD_ECORE_IMF_SCIM_TRUE}" && test -z "${BUILD_ECORE_IMF_SCIM_FALSE}"; then
31419 as_fn_error "conditional \"BUILD_ECORE_IMF_SCIM\" was never defined.
30826Usually this means the macro was only invoked conditionally." "$LINENO" 5 31420Usually this means the macro was only invoked conditionally." "$LINENO" 5
30827fi 31421fi
30828if test -z "${BUILD_ECORE_X_TRUE}" && test -z "${BUILD_ECORE_X_FALSE}"; then 31422if test -z "${BUILD_ECORE_X_TRUE}" && test -z "${BUILD_ECORE_X_FALSE}"; then
30829 as_fn_error $? "conditional \"BUILD_ECORE_X\" was never defined. 31423 as_fn_error "conditional \"BUILD_ECORE_X\" was never defined.
30830Usually this means the macro was only invoked conditionally." "$LINENO" 5 31424Usually this means the macro was only invoked conditionally." "$LINENO" 5
30831fi 31425fi
30832if test -z "${BUILD_ECORE_WIN32_TRUE}" && test -z "${BUILD_ECORE_WIN32_FALSE}"; then 31426if test -z "${BUILD_ECORE_WIN32_TRUE}" && test -z "${BUILD_ECORE_WIN32_FALSE}"; then
30833 as_fn_error $? "conditional \"BUILD_ECORE_WIN32\" was never defined. 31427 as_fn_error "conditional \"BUILD_ECORE_WIN32\" was never defined.
30834Usually this means the macro was only invoked conditionally." "$LINENO" 5 31428Usually this means the macro was only invoked conditionally." "$LINENO" 5
30835fi 31429fi
30836if test -z "${BUILD_ECORE_COCOA_TRUE}" && test -z "${BUILD_ECORE_COCOA_FALSE}"; then 31430if test -z "${BUILD_ECORE_COCOA_TRUE}" && test -z "${BUILD_ECORE_COCOA_FALSE}"; then
30837 as_fn_error $? "conditional \"BUILD_ECORE_COCOA\" was never defined. 31431 as_fn_error "conditional \"BUILD_ECORE_COCOA\" was never defined.
30838Usually this means the macro was only invoked conditionally." "$LINENO" 5 31432Usually this means the macro was only invoked conditionally." "$LINENO" 5
30839fi 31433fi
30840if test -z "${BUILD_ECORE_SDL_TRUE}" && test -z "${BUILD_ECORE_SDL_FALSE}"; then 31434if test -z "${BUILD_ECORE_SDL_TRUE}" && test -z "${BUILD_ECORE_SDL_FALSE}"; then
30841 as_fn_error $? "conditional \"BUILD_ECORE_SDL\" was never defined. 31435 as_fn_error "conditional \"BUILD_ECORE_SDL\" was never defined.
30842Usually this means the macro was only invoked conditionally." "$LINENO" 5 31436Usually this means the macro was only invoked conditionally." "$LINENO" 5
30843fi 31437fi
30844if test -z "${BUILD_ECORE_PSL1GHT_TRUE}" && test -z "${BUILD_ECORE_PSL1GHT_FALSE}"; then 31438if test -z "${BUILD_ECORE_PSL1GHT_TRUE}" && test -z "${BUILD_ECORE_PSL1GHT_FALSE}"; then
30845 as_fn_error $? "conditional \"BUILD_ECORE_PSL1GHT\" was never defined. 31439 as_fn_error "conditional \"BUILD_ECORE_PSL1GHT\" was never defined.
30846Usually this means the macro was only invoked conditionally." "$LINENO" 5 31440Usually this means the macro was only invoked conditionally." "$LINENO" 5
30847fi 31441fi
30848if test -z "${BUILD_ECORE_FB_TRUE}" && test -z "${BUILD_ECORE_FB_FALSE}"; then 31442if test -z "${BUILD_ECORE_FB_TRUE}" && test -z "${BUILD_ECORE_FB_FALSE}"; then
30849 as_fn_error $? "conditional \"BUILD_ECORE_FB\" was never defined. 31443 as_fn_error "conditional \"BUILD_ECORE_FB\" was never defined.
30850Usually this means the macro was only invoked conditionally." "$LINENO" 5 31444Usually this means the macro was only invoked conditionally." "$LINENO" 5
30851fi 31445fi
30852if test -z "${BUILD_ECORE_DIRECTFB_TRUE}" && test -z "${BUILD_ECORE_DIRECTFB_FALSE}"; then 31446if test -z "${BUILD_ECORE_DIRECTFB_TRUE}" && test -z "${BUILD_ECORE_DIRECTFB_FALSE}"; then
30853 as_fn_error $? "conditional \"BUILD_ECORE_DIRECTFB\" was never defined. 31447 as_fn_error "conditional \"BUILD_ECORE_DIRECTFB\" was never defined.
30854Usually this means the macro was only invoked conditionally." "$LINENO" 5 31448Usually this means the macro was only invoked conditionally." "$LINENO" 5
30855fi 31449fi
30856if test -z "${BUILD_ECORE_WINCE_TRUE}" && test -z "${BUILD_ECORE_WINCE_FALSE}"; then 31450if test -z "${BUILD_ECORE_WINCE_TRUE}" && test -z "${BUILD_ECORE_WINCE_FALSE}"; then
30857 as_fn_error $? "conditional \"BUILD_ECORE_WINCE\" was never defined. 31451 as_fn_error "conditional \"BUILD_ECORE_WINCE\" was never defined.
30858Usually this means the macro was only invoked conditionally." "$LINENO" 5 31452Usually this means the macro was only invoked conditionally." "$LINENO" 5
30859fi 31453fi
30860if test -z "${BUILD_ECORE_EVAS_TRUE}" && test -z "${BUILD_ECORE_EVAS_FALSE}"; then 31454if test -z "${BUILD_ECORE_EVAS_TRUE}" && test -z "${BUILD_ECORE_EVAS_FALSE}"; then
30861 as_fn_error $? "conditional \"BUILD_ECORE_EVAS\" was never defined. 31455 as_fn_error "conditional \"BUILD_ECORE_EVAS\" was never defined.
31456Usually this means the macro was only invoked conditionally." "$LINENO" 5
31457fi
31458if test -z "${BUILD_ECORE_WAYLAND_TRUE}" && test -z "${BUILD_ECORE_WAYLAND_FALSE}"; then
31459 as_fn_error "conditional \"BUILD_ECORE_WAYLAND\" was never defined.
30862Usually this means the macro was only invoked conditionally." "$LINENO" 5 31460Usually this means the macro was only invoked conditionally." "$LINENO" 5
30863fi 31461fi
30864if test -z "${EFL_BUILD_EXAMPLES_TRUE}" && test -z "${EFL_BUILD_EXAMPLES_FALSE}"; then 31462if test -z "${EFL_BUILD_EXAMPLES_TRUE}" && test -z "${EFL_BUILD_EXAMPLES_FALSE}"; then
30865 as_fn_error $? "conditional \"EFL_BUILD_EXAMPLES\" was never defined. 31463 as_fn_error "conditional \"EFL_BUILD_EXAMPLES\" was never defined.
30866Usually this means the macro was only invoked conditionally." "$LINENO" 5 31464Usually this means the macro was only invoked conditionally." "$LINENO" 5
30867fi 31465fi
30868if test -z "${EFL_INSTALL_EXAMPLES_TRUE}" && test -z "${EFL_INSTALL_EXAMPLES_FALSE}"; then 31466if test -z "${EFL_INSTALL_EXAMPLES_TRUE}" && test -z "${EFL_INSTALL_EXAMPLES_FALSE}"; then
30869 as_fn_error $? "conditional \"EFL_INSTALL_EXAMPLES\" was never defined. 31467 as_fn_error "conditional \"EFL_INSTALL_EXAMPLES\" was never defined.
30870Usually this means the macro was only invoked conditionally." "$LINENO" 5 31468Usually this means the macro was only invoked conditionally." "$LINENO" 5
30871fi 31469fi
30872 31470
@@ -31016,19 +31614,19 @@ export LANGUAGE
31016(unset CDPATH) >/dev/null 2>&1 && unset CDPATH 31614(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
31017 31615
31018 31616
31019# as_fn_error STATUS ERROR [LINENO LOG_FD] 31617# as_fn_error ERROR [LINENO LOG_FD]
31020# ---------------------------------------- 31618# ---------------------------------
31021# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are 31619# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
31022# provided, also output the error to LOG_FD, referencing LINENO. Then exit the 31620# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
31023# script with STATUS, using 1 if that was 0. 31621# script with status $?, using 1 if that was 0.
31024as_fn_error () 31622as_fn_error ()
31025{ 31623{
31026 as_status=$1; test $as_status -eq 0 && as_status=1 31624 as_status=$?; test $as_status -eq 0 && as_status=1
31027 if test "$4"; then 31625 if test "$3"; then
31028 as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 31626 as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
31029 $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 31627 $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
31030 fi 31628 fi
31031 $as_echo "$as_me: error: $2" >&2 31629 $as_echo "$as_me: error: $1" >&2
31032 as_fn_exit $as_status 31630 as_fn_exit $as_status
31033} # as_fn_error 31631} # as_fn_error
31034 31632
@@ -31224,7 +31822,7 @@ $as_echo X"$as_dir" |
31224 test -d "$as_dir" && break 31822 test -d "$as_dir" && break
31225 done 31823 done
31226 test -z "$as_dirs" || eval "mkdir $as_dirs" 31824 test -z "$as_dirs" || eval "mkdir $as_dirs"
31227 } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" 31825 } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir"
31228 31826
31229 31827
31230} # as_fn_mkdir_p 31828} # as_fn_mkdir_p
@@ -31277,8 +31875,8 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
31277# report actual input values of CONFIG_FILES etc. instead of their 31875# report actual input values of CONFIG_FILES etc. instead of their
31278# values after options handling. 31876# values after options handling.
31279ac_log=" 31877ac_log="
31280This file was extended by ecore $as_me 1.1.0, which was 31878This file was extended by ecore $as_me 1.1.99.67344, which was
31281generated by GNU Autoconf 2.67. Invocation command line was 31879generated by GNU Autoconf 2.65. Invocation command line was
31282 31880
31283 CONFIG_FILES = $CONFIG_FILES 31881 CONFIG_FILES = $CONFIG_FILES
31284 CONFIG_HEADERS = $CONFIG_HEADERS 31882 CONFIG_HEADERS = $CONFIG_HEADERS
@@ -31343,11 +31941,11 @@ _ACEOF
31343cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 31941cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
31344ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" 31942ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
31345ac_cs_version="\\ 31943ac_cs_version="\\
31346ecore config.status 1.1.0 31944ecore config.status 1.1.99.67344
31347configured by $0, generated by GNU Autoconf 2.67, 31945configured by $0, generated by GNU Autoconf 2.65,
31348 with options \\"\$ac_cs_config\\" 31946 with options \\"\$ac_cs_config\\"
31349 31947
31350Copyright (C) 2010 Free Software Foundation, Inc. 31948Copyright (C) 2009 Free Software Foundation, Inc.
31351This config.status script is free software; the Free Software Foundation 31949This config.status script is free software; the Free Software Foundation
31352gives unlimited permission to copy, distribute and modify it." 31950gives unlimited permission to copy, distribute and modify it."
31353 31951
@@ -31365,16 +31963,11 @@ ac_need_defaults=:
31365while test $# != 0 31963while test $# != 0
31366do 31964do
31367 case $1 in 31965 case $1 in
31368 --*=?*) 31966 --*=*)
31369 ac_option=`expr "X$1" : 'X\([^=]*\)='` 31967 ac_option=`expr "X$1" : 'X\([^=]*\)='`
31370 ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` 31968 ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
31371 ac_shift=: 31969 ac_shift=:
31372 ;; 31970 ;;
31373 --*=)
31374 ac_option=`expr "X$1" : 'X\([^=]*\)='`
31375 ac_optarg=
31376 ac_shift=:
31377 ;;
31378 *) 31971 *)
31379 ac_option=$1 31972 ac_option=$1
31380 ac_optarg=$2 31973 ac_optarg=$2
@@ -31396,7 +31989,6 @@ do
31396 $ac_shift 31989 $ac_shift
31397 case $ac_optarg in 31990 case $ac_optarg in
31398 *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; 31991 *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
31399 '') as_fn_error $? "missing file argument" ;;
31400 esac 31992 esac
31401 as_fn_append CONFIG_FILES " '$ac_optarg'" 31993 as_fn_append CONFIG_FILES " '$ac_optarg'"
31402 ac_need_defaults=false;; 31994 ac_need_defaults=false;;
@@ -31409,7 +32001,7 @@ do
31409 ac_need_defaults=false;; 32001 ac_need_defaults=false;;
31410 --he | --h) 32002 --he | --h)
31411 # Conflict between --help and --header 32003 # Conflict between --help and --header
31412 as_fn_error $? "ambiguous option: \`$1' 32004 as_fn_error "ambiguous option: \`$1'
31413Try \`$0 --help' for more information.";; 32005Try \`$0 --help' for more information.";;
31414 --help | --hel | -h ) 32006 --help | --hel | -h )
31415 $as_echo "$ac_cs_usage"; exit ;; 32007 $as_echo "$ac_cs_usage"; exit ;;
@@ -31418,7 +32010,7 @@ Try \`$0 --help' for more information.";;
31418 ac_cs_silent=: ;; 32010 ac_cs_silent=: ;;
31419 32011
31420 # This is an error. 32012 # This is an error.
31421 -*) as_fn_error $? "unrecognized option: \`$1' 32013 -*) as_fn_error "unrecognized option: \`$1'
31422Try \`$0 --help' for more information." ;; 32014Try \`$0 --help' for more information." ;;
31423 32015
31424 *) as_fn_append ac_config_targets " $1" 32016 *) as_fn_append ac_config_targets " $1"
@@ -31853,6 +32445,7 @@ do
31853 "ecore-cocoa.pc") CONFIG_FILES="$CONFIG_FILES ecore-cocoa.pc" ;; 32445 "ecore-cocoa.pc") CONFIG_FILES="$CONFIG_FILES ecore-cocoa.pc" ;;
31854 "ecore-psl1ght.pc") CONFIG_FILES="$CONFIG_FILES ecore-psl1ght.pc" ;; 32446 "ecore-psl1ght.pc") CONFIG_FILES="$CONFIG_FILES ecore-psl1ght.pc" ;;
31855 "ecore-wince.pc") CONFIG_FILES="$CONFIG_FILES ecore-wince.pc" ;; 32447 "ecore-wince.pc") CONFIG_FILES="$CONFIG_FILES ecore-wince.pc" ;;
32448 "ecore-wayland.pc") CONFIG_FILES="$CONFIG_FILES ecore-wayland.pc" ;;
31856 "ecore.pc") CONFIG_FILES="$CONFIG_FILES ecore.pc" ;; 32449 "ecore.pc") CONFIG_FILES="$CONFIG_FILES ecore.pc" ;;
31857 "doc/ecore.dox") CONFIG_FILES="$CONFIG_FILES doc/ecore.dox" ;; 32450 "doc/ecore.dox") CONFIG_FILES="$CONFIG_FILES doc/ecore.dox" ;;
31858 "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; 32451 "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;;
@@ -31881,15 +32474,17 @@ do
31881 "src/lib/ecore_x/Makefile") CONFIG_FILES="$CONFIG_FILES src/lib/ecore_x/Makefile" ;; 32474 "src/lib/ecore_x/Makefile") CONFIG_FILES="$CONFIG_FILES src/lib/ecore_x/Makefile" ;;
31882 "src/lib/ecore_x/xlib/Makefile") CONFIG_FILES="$CONFIG_FILES src/lib/ecore_x/xlib/Makefile" ;; 32475 "src/lib/ecore_x/xlib/Makefile") CONFIG_FILES="$CONFIG_FILES src/lib/ecore_x/xlib/Makefile" ;;
31883 "src/lib/ecore_x/xcb/Makefile") CONFIG_FILES="$CONFIG_FILES src/lib/ecore_x/xcb/Makefile" ;; 32476 "src/lib/ecore_x/xcb/Makefile") CONFIG_FILES="$CONFIG_FILES src/lib/ecore_x/xcb/Makefile" ;;
32477 "src/lib/ecore_wayland/Makefile") CONFIG_FILES="$CONFIG_FILES src/lib/ecore_wayland/Makefile" ;;
31884 "src/examples/Makefile") CONFIG_FILES="$CONFIG_FILES src/examples/Makefile" ;; 32478 "src/examples/Makefile") CONFIG_FILES="$CONFIG_FILES src/examples/Makefile" ;;
31885 "src/tests/Makefile") CONFIG_FILES="$CONFIG_FILES src/tests/Makefile" ;; 32479 "src/tests/Makefile") CONFIG_FILES="$CONFIG_FILES src/tests/Makefile" ;;
31886 "src/modules/Makefile") CONFIG_FILES="$CONFIG_FILES src/modules/Makefile" ;; 32480 "src/modules/Makefile") CONFIG_FILES="$CONFIG_FILES src/modules/Makefile" ;;
31887 "src/modules/immodules/Makefile") CONFIG_FILES="$CONFIG_FILES src/modules/immodules/Makefile" ;; 32481 "src/modules/immodules/Makefile") CONFIG_FILES="$CONFIG_FILES src/modules/immodules/Makefile" ;;
31888 "src/modules/immodules/xim/Makefile") CONFIG_FILES="$CONFIG_FILES src/modules/immodules/xim/Makefile" ;; 32482 "src/modules/immodules/xim/Makefile") CONFIG_FILES="$CONFIG_FILES src/modules/immodules/xim/Makefile" ;;
32483 "src/modules/immodules/scim/Makefile") CONFIG_FILES="$CONFIG_FILES src/modules/immodules/scim/Makefile" ;;
31889 "ecore.spec") CONFIG_FILES="$CONFIG_FILES ecore.spec" ;; 32484 "ecore.spec") CONFIG_FILES="$CONFIG_FILES ecore.spec" ;;
31890 "$po_makefile_in") CONFIG_FILES="$CONFIG_FILES $po_makefile_in" ;; 32485 "$po_makefile_in") CONFIG_FILES="$CONFIG_FILES $po_makefile_in" ;;
31891 32486
31892 *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5 ;; 32487 *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
31893 esac 32488 esac
31894done 32489done
31895 32490
@@ -31927,7 +32522,7 @@ $debug ||
31927{ 32522{
31928 tmp=./conf$$-$RANDOM 32523 tmp=./conf$$-$RANDOM
31929 (umask 077 && mkdir "$tmp") 32524 (umask 077 && mkdir "$tmp")
31930} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 32525} || as_fn_error "cannot create a temporary directory in ." "$LINENO" 5
31931 32526
31932# Set up the scripts for CONFIG_FILES section. 32527# Set up the scripts for CONFIG_FILES section.
31933# No need to generate them if there are no CONFIG_FILES. 32528# No need to generate them if there are no CONFIG_FILES.
@@ -31944,7 +32539,7 @@ if test "x$ac_cr" = x; then
31944fi 32539fi
31945ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null` 32540ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
31946if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then 32541if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
31947 ac_cs_awk_cr='\\r' 32542 ac_cs_awk_cr='\r'
31948else 32543else
31949 ac_cs_awk_cr=$ac_cr 32544 ac_cs_awk_cr=$ac_cr
31950fi 32545fi
@@ -31958,18 +32553,18 @@ _ACEOF
31958 echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && 32553 echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
31959 echo "_ACEOF" 32554 echo "_ACEOF"
31960} >conf$$subs.sh || 32555} >conf$$subs.sh ||
31961 as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 32556 as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
31962ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` 32557ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'`
31963ac_delim='%!_!# ' 32558ac_delim='%!_!# '
31964for ac_last_try in false false false false false :; do 32559for ac_last_try in false false false false false :; do
31965 . ./conf$$subs.sh || 32560 . ./conf$$subs.sh ||
31966 as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 32561 as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
31967 32562
31968 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` 32563 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
31969 if test $ac_delim_n = $ac_delim_num; then 32564 if test $ac_delim_n = $ac_delim_num; then
31970 break 32565 break
31971 elif $ac_last_try; then 32566 elif $ac_last_try; then
31972 as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 32567 as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
31973 else 32568 else
31974 ac_delim="$ac_delim!$ac_delim _$ac_delim!! " 32569 ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
31975 fi 32570 fi
@@ -32058,28 +32653,20 @@ if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
32058else 32653else
32059 cat 32654 cat
32060fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ 32655fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
32061 || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 32656 || as_fn_error "could not setup config files machinery" "$LINENO" 5
32062_ACEOF 32657_ACEOF
32063 32658
32064# VPATH may cause trouble with some makes, so we remove sole $(srcdir), 32659# VPATH may cause trouble with some makes, so we remove $(srcdir),
32065# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and 32660# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
32066# trailing colons and then remove the whole line if VPATH becomes empty 32661# trailing colons and then remove the whole line if VPATH becomes empty
32067# (actually we leave an empty line to preserve line numbers). 32662# (actually we leave an empty line to preserve line numbers).
32068if test "x$srcdir" = x.; then 32663if test "x$srcdir" = x.; then
32069 ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ 32664 ac_vpsub='/^[ ]*VPATH[ ]*=/{
32070h 32665s/:*\$(srcdir):*/:/
32071s/// 32666s/:*\${srcdir}:*/:/
32072s/^/:/ 32667s/:*@srcdir@:*/:/
32073s/[ ]*$/:/ 32668s/^\([^=]*=[ ]*\):*/\1/
32074s/:\$(srcdir):/:/g
32075s/:\${srcdir}:/:/g
32076s/:@srcdir@:/:/g
32077s/^:*//
32078s/:*$// 32669s/:*$//
32079x
32080s/\(=[ ]*\).*/\1/
32081G
32082s/\n//
32083s/^[^=]*=[ ]*$// 32670s/^[^=]*=[ ]*$//
32084}' 32671}'
32085fi 32672fi
@@ -32107,7 +32694,7 @@ for ac_last_try in false false :; do
32107 if test -z "$ac_t"; then 32694 if test -z "$ac_t"; then
32108 break 32695 break
32109 elif $ac_last_try; then 32696 elif $ac_last_try; then
32110 as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 32697 as_fn_error "could not make $CONFIG_HEADERS" "$LINENO" 5
32111 else 32698 else
32112 ac_delim="$ac_delim!$ac_delim _$ac_delim!! " 32699 ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
32113 fi 32700 fi
@@ -32192,7 +32779,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
32192_ACAWK 32779_ACAWK
32193_ACEOF 32780_ACEOF
32194cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 32781cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
32195 as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 32782 as_fn_error "could not setup config headers machinery" "$LINENO" 5
32196fi # test -n "$CONFIG_HEADERS" 32783fi # test -n "$CONFIG_HEADERS"
32197 32784
32198 32785
@@ -32205,7 +32792,7 @@ do
32205 esac 32792 esac
32206 case $ac_mode$ac_tag in 32793 case $ac_mode$ac_tag in
32207 :[FHL]*:*);; 32794 :[FHL]*:*);;
32208 :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5 ;; 32795 :L* | :C*:*) as_fn_error "invalid tag \`$ac_tag'" "$LINENO" 5;;
32209 :[FH]-) ac_tag=-:-;; 32796 :[FH]-) ac_tag=-:-;;
32210 :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; 32797 :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
32211 esac 32798 esac
@@ -32233,7 +32820,7 @@ do
32233 [\\/$]*) false;; 32820 [\\/$]*) false;;
32234 *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; 32821 *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
32235 esac || 32822 esac ||
32236 as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5 ;; 32823 as_fn_error "cannot find input file: \`$ac_f'" "$LINENO" 5;;
32237 esac 32824 esac
32238 case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac 32825 case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
32239 as_fn_append ac_file_inputs " '$ac_f'" 32826 as_fn_append ac_file_inputs " '$ac_f'"
@@ -32260,7 +32847,7 @@ $as_echo "$as_me: creating $ac_file" >&6;}
32260 32847
32261 case $ac_tag in 32848 case $ac_tag in
32262 *:-:* | *:-) cat >"$tmp/stdin" \ 32849 *:-:* | *:-) cat >"$tmp/stdin" \
32263 || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; 32850 || as_fn_error "could not create $ac_file" "$LINENO" 5 ;;
32264 esac 32851 esac
32265 ;; 32852 ;;
32266 esac 32853 esac
@@ -32397,22 +32984,22 @@ s&@MKDIR_P@&$ac_MKDIR_P&;t t
32397$ac_datarootdir_hack 32984$ac_datarootdir_hack
32398" 32985"
32399eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ 32986eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \
32400 || as_fn_error $? "could not create $ac_file" "$LINENO" 5 32987 || as_fn_error "could not create $ac_file" "$LINENO" 5
32401 32988
32402test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && 32989test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
32403 { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && 32990 { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
32404 { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && 32991 { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
32405 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' 32992 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
32406which seems to be undefined. Please make sure it is defined" >&5 32993which seems to be undefined. Please make sure it is defined." >&5
32407$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' 32994$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
32408which seems to be undefined. Please make sure it is defined" >&2;} 32995which seems to be undefined. Please make sure it is defined." >&2;}
32409 32996
32410 rm -f "$tmp/stdin" 32997 rm -f "$tmp/stdin"
32411 case $ac_file in 32998 case $ac_file in
32412 -) cat "$tmp/out" && rm -f "$tmp/out";; 32999 -) cat "$tmp/out" && rm -f "$tmp/out";;
32413 *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; 33000 *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
32414 esac \ 33001 esac \
32415 || as_fn_error $? "could not create $ac_file" "$LINENO" 5 33002 || as_fn_error "could not create $ac_file" "$LINENO" 5
32416 ;; 33003 ;;
32417 :H) 33004 :H)
32418 # 33005 #
@@ -32423,19 +33010,19 @@ which seems to be undefined. Please make sure it is defined" >&2;}
32423 $as_echo "/* $configure_input */" \ 33010 $as_echo "/* $configure_input */" \
32424 && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" 33011 && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs"
32425 } >"$tmp/config.h" \ 33012 } >"$tmp/config.h" \
32426 || as_fn_error $? "could not create $ac_file" "$LINENO" 5 33013 || as_fn_error "could not create $ac_file" "$LINENO" 5
32427 if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then 33014 if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then
32428 { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 33015 { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
32429$as_echo "$as_me: $ac_file is unchanged" >&6;} 33016$as_echo "$as_me: $ac_file is unchanged" >&6;}
32430 else 33017 else
32431 rm -f "$ac_file" 33018 rm -f "$ac_file"
32432 mv "$tmp/config.h" "$ac_file" \ 33019 mv "$tmp/config.h" "$ac_file" \
32433 || as_fn_error $? "could not create $ac_file" "$LINENO" 5 33020 || as_fn_error "could not create $ac_file" "$LINENO" 5
32434 fi 33021 fi
32435 else 33022 else
32436 $as_echo "/* $configure_input */" \ 33023 $as_echo "/* $configure_input */" \
32437 && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ 33024 && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \
32438 || as_fn_error $? "could not create -" "$LINENO" 5 33025 || as_fn_error "could not create -" "$LINENO" 5
32439 fi 33026 fi
32440# Compute "$ac_file"'s index in $config_headers. 33027# Compute "$ac_file"'s index in $config_headers.
32441_am_arg="$ac_file" 33028_am_arg="$ac_file"
@@ -33506,7 +34093,7 @@ _ACEOF
33506ac_clean_files=$ac_clean_files_save 34093ac_clean_files=$ac_clean_files_save
33507 34094
33508test $ac_write_fail = 0 || 34095test $ac_write_fail = 0 ||
33509 as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 34096 as_fn_error "write failure creating $CONFIG_STATUS" "$LINENO" 5
33510 34097
33511 34098
33512# configure is writing to config.log, and then calls config.status. 34099# configure is writing to config.log, and then calls config.status.
@@ -33527,7 +34114,7 @@ if test "$no_create" != yes; then
33527 exec 5>>config.log 34114 exec 5>>config.log
33528 # Use ||, not &&, to avoid exiting from the if with $? = 1, which 34115 # Use ||, not &&, to avoid exiting from the if with $? = 1, which
33529 # would make configure fail if this is the last instruction. 34116 # would make configure fail if this is the last instruction.
33530 $ac_cs_success || as_fn_exit 1 34117 $ac_cs_success || as_fn_exit $?
33531fi 34118fi
33532if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then 34119if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
33533 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 34120 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
@@ -33587,6 +34174,7 @@ fi
33587#echo " Ecore_Config.................: $have_ecore_config (deprecated)" 34174#echo " Ecore_Config.................: $have_ecore_config (deprecated)"
33588echo " Ecore_IMF....................: $have_ecore_imf" 34175echo " Ecore_IMF....................: $have_ecore_imf"
33589echo " XIM........................: $have_ecore_imf_xim" 34176echo " XIM........................: $have_ecore_imf_xim"
34177echo " SCIM.......................: $have_ecore_imf_scim"
33590echo " Ecore_IMF_Evas...............: $have_ecore_imf_evas" 34178echo " Ecore_IMF_Evas...............: $have_ecore_imf_evas"
33591echo " Ecore_Input..................: $have_ecore_input" 34179echo " Ecore_Input..................: $have_ecore_input"
33592echo " Ecore_Input_Evas.............: $have_ecore_input_evas" 34180echo " Ecore_Input_Evas.............: $have_ecore_input_evas"
@@ -33642,6 +34230,7 @@ fi
33642echo " Ecore_DirectFB...............: $have_ecore_directfb" 34230echo " Ecore_DirectFB...............: $have_ecore_directfb"
33643echo " Ecore_WinCE..................: $have_ecore_wince" 34231echo " Ecore_WinCE..................: $have_ecore_wince"
33644echo " Ecore_PSL1GHT................: $have_ecore_psl1ght" 34232echo " Ecore_PSL1GHT................: $have_ecore_psl1ght"
34233echo " Ecore_Wayland................: $have_ecore_wayland"
33645 34234
33646echo 34235echo
33647echo " Ecore Evas:" 34236echo " Ecore Evas:"
@@ -33675,6 +34264,8 @@ if test "x${have_ecore_evas}" = "xyes" ; then
33675 echo " Software 16bit DirectDraw..: $have_ecore_evas_software_16_ddraw" 34264 echo " Software 16bit DirectDraw..: $have_ecore_evas_software_16_ddraw"
33676 echo " Software 16bit WinCE.......: $have_ecore_evas_software_16_wince" 34265 echo " Software 16bit WinCE.......: $have_ecore_evas_software_16_wince"
33677 echo " Sing.Proc. Windowing System: $have_ecore_evas_ews" 34266 echo " Sing.Proc. Windowing System: $have_ecore_evas_ews"
34267 echo " Wayland Shm................: $have_ecore_evas_wayland_shm"
34268 echo " Wayland Egl................: $have_ecore_evas_wayland_egl"
33678fi 34269fi
33679echo 34270echo
33680echo " Tests................: ${enable_tests}" 34271echo " Tests................: ${enable_tests}"
diff --git a/libraries/ecore/configure.ac b/libraries/ecore/configure.ac
index 78806c1..21393dd 100644
--- a/libraries/ecore/configure.ac
+++ b/libraries/ecore/configure.ac
@@ -2,11 +2,11 @@
2##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## 2##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
3m4_define([v_maj], [1]) 3m4_define([v_maj], [1])
4m4_define([v_min], [1]) 4m4_define([v_min], [1])
5m4_define([v_mic], [0]) 5m4_define([v_mic], [99])
6m4_define([v_rev], m4_esyscmd([(svnversion "${SVN_REPO_PATH:-.}" | grep -v export || 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' | sed 's/Unversioneddirectory/0/' | 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']))]) 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
9m4_undefine([v_rev]) 9dnl m4_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])
@@ -133,6 +133,7 @@ want_ecore_psl1ght="no"
133want_ecore_fb="no" 133want_ecore_fb="no"
134want_ecore_directfb="no" 134want_ecore_directfb="no"
135want_ecore_wince="no" 135want_ecore_wince="no"
136want_ecore_wayland="no"
136 137
137# ecore_x options (both xlib and xcb) 138# ecore_x options (both xlib and xcb)
138want_ecore_x_composite="yes" 139want_ecore_x_composite="yes"
@@ -173,9 +174,12 @@ want_ecore_evas_directfb="no"
173want_ecore_evas_fb="no" 174want_ecore_evas_fb="no"
174want_ecore_evas_software_16_wince="no" 175want_ecore_evas_software_16_wince="no"
175want_ecore_evas_ews="yes" 176want_ecore_evas_ews="yes"
177want_ecore_evas_wayland_shm="no"
178want_ecore_evas_wayland_egl="no"
176 179
177# ecore_imf modules 180# ecore_imf modules
178want_ecore_imf_xim="no" 181want_ecore_imf_xim="no"
182want_ecore_imf_scim="no"
179 183
180case "$host_os" in 184case "$host_os" in
181 mingw32ce* | cegcc*) 185 mingw32ce* | cegcc*)
@@ -224,6 +228,7 @@ case "$host_os" in
224 want_ecore_fb="yes" 228 want_ecore_fb="yes"
225 want_ecore_imf="yes" 229 want_ecore_imf="yes"
226 want_ecore_x="yes" 230 want_ecore_x="yes"
231 want_ecore_wayland="yes"
227 want_ecore_evas_software_x11="yes" 232 want_ecore_evas_software_x11="yes"
228 want_ecore_evas_opengl_x11="yes" 233 want_ecore_evas_opengl_x11="yes"
229 want_ecore_evas_software_16_x11="yes" 234 want_ecore_evas_software_16_x11="yes"
@@ -234,7 +239,10 @@ case "$host_os" in
234 want_ecore_evas_gl_cocoa="no" 239 want_ecore_evas_gl_cocoa="no"
235 want_ecore_evas_directfb="yes" 240 want_ecore_evas_directfb="yes"
236 want_ecore_evas_fb="yes" 241 want_ecore_evas_fb="yes"
242 want_ecore_evas_wayland_shm="yes"
243 want_ecore_evas_wayland_egl="yes"
237 want_ecore_imf_xim="yes" 244 want_ecore_imf_xim="yes"
245 want_ecore_imf_scim="yes"
238 ;; 246 ;;
239esac 247esac
240 248
@@ -262,6 +270,8 @@ requirements_ecore_x=""
262requirements_ecore_win32="" 270requirements_ecore_win32=""
263requirements_ecore_wince="" 271requirements_ecore_wince=""
264requirements_ecore_imf_xim="" 272requirements_ecore_imf_xim=""
273requirements_ecore_imf_scim=""
274requirements_ecore_wayland=""
265 275
266AC_CHECK_DECL([MAXHOSTNAMELEN],[FOUND_MAXHOSTNAMELEN=yes]) 276AC_CHECK_DECL([MAXHOSTNAMELEN],[FOUND_MAXHOSTNAMELEN=yes])
267 277
@@ -418,7 +428,7 @@ AC_SUBST(pkgconfig_requires_private)
418have_backtrace="no" 428have_backtrace="no"
419AC_CHECK_FUNCS([backtrace], [have_backtrace="yes"], []) 429AC_CHECK_FUNCS([backtrace], [have_backtrace="yes"], [])
420 430
421want_ecore_timer_dump="yes" 431want_ecore_timer_dump="no"
422 432
423AC_ARG_ENABLE([ecore-timer-dump], 433AC_ARG_ENABLE([ecore-timer-dump],
424 [AC_HELP_STRING([--disable-ecore-timer-dump], [disable tracking of timer allocation. @<:@default=enable@:>@])], 434 [AC_HELP_STRING([--disable-ecore-timer-dump], [disable tracking of timer allocation. @<:@default=enable@:>@])],
@@ -543,22 +553,22 @@ PKG_CHECK_MODULES(EINA, [eina >= 1.1.0])
543#FIXME check all the requirements when the eina move will be finished 553#FIXME check all the requirements when the eina move will be finished
544requirements_ecore="eina >= 1.1.0 ${requirements_ecore}" 554requirements_ecore="eina >= 1.1.0 ${requirements_ecore}"
545requirements_ecore_con="ecore >= 1.1.0 eina >= 1.1.0 ${requirements_ecore_con}" 555requirements_ecore_con="ecore >= 1.1.0 eina >= 1.1.0 ${requirements_ecore_con}"
546#requirements_ecore_config="ecore >= 1.1.0 eina >= 1.1.0 ${requirements_ecore_config}" 556#requirements_ecore_config="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_config}"
547requirements_ecore_directfb="ecore >= 1.1.0 eina >= 1.1.0 ${requirements_ecore_directfb}" 557requirements_ecore_directfb="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_directfb}"
548requirements_ecore_evas="ecore >= 1.1.0 eina >= 1.1.0 ${requirements_ecore_evas}" 558requirements_ecore_evas="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_evas}"
549requirements_ecore_fb="ecore >= 1.1.0 eina >= 1.1.0 ${requirements_ecore_fb}" 559requirements_ecore_fb="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_fb}"
550requirements_ecore_file="ecore >= 1.1.0 eina >= 1.1.0 ${requirements_ecore_file}" 560requirements_ecore_file="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_file}"
551requirements_ecore_imf="ecore >= 1.1.0 eina >= 1.1.0 ${requirements_ecore_imf}" 561requirements_ecore_imf="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_imf}"
552requirements_ecore_imf_evas="ecore >= 1.1.0 eina >= 1.1.0 ${requirements_ecore_imf_evas}" 562requirements_ecore_imf_evas="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_imf_evas}"
553requirements_ecore_input="ecore >= 1.1.0 eina >= 1.1.0 ${requirements_ecore_input}" 563requirements_ecore_input="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_input}"
554requirements_ecore_input_evas="ecore >= 1.1.0 eina >= 1.1.0 ${requirements_ecore_input_evas}" 564requirements_ecore_input_evas="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_input_evas}"
555requirements_ecore_ipc="ecore >= 1.1.0 eina >= 1.1.0 ${requirements_ecore_ipc}" 565requirements_ecore_ipc="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_ipc}"
556requirements_ecore_cocoa="ecore >= 1.1.0 eina >= 1.1.0 ${requirements_ecore_cocoa}" 566requirements_ecore_cocoa="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_cocoa}"
557requirements_ecore_sdl="ecore >= 1.1.0 eina >= 1.1.0 ${requirements_ecore_sdl}" 567requirements_ecore_sdl="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_sdl}"
558requirements_ecore_psl1ght="ecore >= 1.1.0 eina >= 1.1.0 ${requirements_ecore_sdl}" 568requirements_ecore_psl1ght="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_sdl}"
559requirements_ecore_win32="ecore >= 1.1.0 eina >= 1.1.0 ${requirements_ecore_win32}" 569requirements_ecore_win32="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_win32}"
560requirements_ecore_wince="ecore >= 1.1.0 eina >= 1.1.0 ${requirements_ecore_wince}" 570requirements_ecore_wince="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_wince}"
561requirements_ecore_x="ecore >= 1.1.0 eina >= 1.1.0 ${requirements_ecore_x}" 571requirements_ecore_x="ecore >= 1.1.99 eina >= 1.1.0 ${requirements_ecore_x}"
562 572
563 573
564# glib support (main loop integration) 574# glib support (main loop integration)
@@ -1161,7 +1171,7 @@ AM_CONDITIONAL(BUILD_ECORE_X_XCB, test $have_ecore_x_xcb = yes)
1161 1171
1162# Evas library (ecore_config, ecore_input_evas, ecore_imf_evas and ecore_evas) 1172# Evas library (ecore_config, ecore_input_evas, ecore_imf_evas and ecore_evas)
1163 1173
1164PKG_CHECK_MODULES([EVAS], [evas >= 1.1.0], 1174PKG_CHECK_MODULES([EVAS], [evas >= 1.1.99],
1165 [have_evas="yes"], 1175 [have_evas="yes"],
1166 [have_evas="no"]) 1176 [have_evas="no"])
1167 1177
@@ -1190,7 +1200,7 @@ esac
1190 1200
1191# ecore_con 1201# ecore_con
1192 1202
1193AC_CHECK_HEADERS([arpa/inet.h arpa/nameser.h netinet/tcp.h netinet/in.h sys/socket.h sys/un.h ws2tcpip.h netdb.h]) 1203AC_CHECK_HEADERS([arpa/inet.h arpa/nameser.h netinet/tcp.h net/if.h netinet/in.h sys/socket.h sys/un.h ws2tcpip.h netdb.h])
1194 1204
1195if test "x${ac_cv_header_netdb_h}" = "xyes" ; then 1205if test "x${ac_cv_header_netdb_h}" = "xyes" ; then
1196 have_addrinfo="yes" 1206 have_addrinfo="yes"
@@ -1474,7 +1484,10 @@ AM_CONDITIONAL([HAVE_CARES], [test "x${have_cares}" = "xyes"])
1474 1484
1475# ecore_ipc 1485# ecore_ipc
1476ECORE_CHECK_MODULE([ipc], [${want_ecore_ipc}], [Ipc], [${have_ecore_con}], 1486ECORE_CHECK_MODULE([ipc], [${want_ecore_ipc}], [Ipc], [${have_ecore_con}],
1477 [requirements_ecore_ipc="ecore-con >= 1.1.0 ${requirements_ecore_ipc}"]) 1487 [
1488 requirements_ecore_ipc="ecore-con >= 1.1.99 ${requirements_ecore_ipc}"
1489 requirements_ecore_evas="ecore-ipc >= 1.1.99 ${requirements_ecore_evas}"
1490 ])
1478 1491
1479# ecore_file 1492# ecore_file
1480ECORE_CHECK_MODULE([file], [${want_ecore_file}], [File]) 1493ECORE_CHECK_MODULE([file], [${want_ecore_file}], [File])
@@ -1488,7 +1501,7 @@ if test "x${have_ecore_file}" = "xyes" ; then
1488 ECORE_CHECK_NOTIFY_WIN32([${want_notify_win32}], [have_notify_win32="yes"], [have_notify_win32="no"]) 1501 ECORE_CHECK_NOTIFY_WIN32([${want_notify_win32}], [have_notify_win32="yes"], [have_notify_win32="no"])
1489 1502
1490 if test "x${have_ecore_con}" = "xyes" ; then 1503 if test "x${have_ecore_con}" = "xyes" ; then
1491 requirements_ecore_file="ecore-con >= 1.1.0 ${requirements_ecore_file}" 1504 requirements_ecore_file="ecore-con >= 1.1.99 ${requirements_ecore_file}"
1492 else 1505 else
1493 ECORE_CHECK_CURL([${want_curl}], 1506 ECORE_CHECK_CURL([${want_curl}],
1494 [ 1507 [
@@ -1507,7 +1520,7 @@ fi
1507#fi 1520#fi
1508 1521
1509#ECORE_CHECK_MODULE([config], [${want_ecore_config}], [Config], [${ecore_config_deps}], 1522#ECORE_CHECK_MODULE([config], [${want_ecore_config}], [Config], [${ecore_config_deps}],
1510# [requirements_ecore_config="ecore-ipc >= 1.1.0 evas >= 1.1.0 eet >= 1.5.0 ${requirements_ecore_config}"]) 1523# [requirements_ecore_config="ecore-ipc >= 1.1.99 evas >= 1.1.99 eet >= 1.5.0 ${requirements_ecore_config}"])
1511 1524
1512AM_CONDITIONAL(BUILD_ECORE_CONFIG, false) 1525AM_CONDITIONAL(BUILD_ECORE_CONFIG, false)
1513 1526
@@ -1523,12 +1536,12 @@ if test "x${have_ecore_imf}" = "xyes" -a "x${have_evas}" = "xyes" ; then
1523fi 1536fi
1524 1537
1525ECORE_CHECK_MODULE([imf-evas], [${want_ecore_imf}], [Imf_Evas], [${ecore_imf_evas_deps}], 1538ECORE_CHECK_MODULE([imf-evas], [${want_ecore_imf}], [Imf_Evas], [${ecore_imf_evas_deps}],
1526 [requirements_ecore_imf_evas="ecore-imf >= 1.1.0 evas >= 1.1.0 ${requirements_ecore_imf_evas}"]) 1539 [requirements_ecore_imf_evas="ecore-imf >= 1.1.99 evas >= 1.1.99 ${requirements_ecore_imf_evas}"])
1527 1540
1528# ecore_input{_evas} 1541# ecore_input{_evas}
1529ECORE_CHECK_MODULE([input], [${want_ecore_input}], [Input]) 1542ECORE_CHECK_MODULE([input], [${want_ecore_input}], [Input])
1530ECORE_CHECK_MODULE([input-evas], [${want_ecore_input}], [Input_Evas], [${have_evas}], 1543ECORE_CHECK_MODULE([input-evas], [${want_ecore_input}], [Input_Evas], [${have_evas}],
1531 [requirements_ecore_input_evas="ecore-input >= 1.1.0 evas >= 1.1.0 ${requirements_ecore_input}"]) 1544 [requirements_ecore_input_evas="ecore-input >= 1.1.99 evas >= 1.1.99 ${requirements_ecore_input}"])
1532 1545
1533# ecore_imf_xim 1546# ecore_imf_xim
1534AM_CONDITIONAL(BUILD_ECORE_IMF_XIM, false) 1547AM_CONDITIONAL(BUILD_ECORE_IMF_XIM, false)
@@ -1542,7 +1555,23 @@ if test "x${have_ecore_imf}" = "xyes" \
1542fi 1555fi
1543 1556
1544ECORE_CHECK_MODULE([imf-xim], [${want_ecore_imf}], [Imf_XIM], [${ecore_imf_xim_deps}], 1557ECORE_CHECK_MODULE([imf-xim], [${want_ecore_imf}], [Imf_XIM], [${ecore_imf_xim_deps}],
1545 [requirements_ecore_imf_xim="ecore-imf >= 1.1.0 ecore-x >= 1.1.0 ecore-input >= 1.1.0 ${requirements_ecore_imf_xim}"]) 1558 [requirements_ecore_imf_xim="ecore-imf >= 1.1.99 ecore-x >= 1.1.99 ecore-input >= 1.1.99 ${requirements_ecore_imf_xim}"])
1559
1560# ecore_imf_scim
1561PKG_CHECK_MODULES([SCIM], [scim], [have_scim="yes"], [have_scim="no"])
1562
1563AM_CONDITIONAL(BUILD_ECORE_IMF_SCIM, false)
1564ecore_imf_scim_deps="no"
1565echo "have_ecore_x_xlib: ${have_ecore_x_xlib}"
1566if test "x${have_ecore_imf}" = "xyes" \
1567 -a "x${have_scim}" = "xyes" \
1568 -a "x${have_ecore_input}" = "xyes" ; then
1569 ecore_imf_scim_deps="yes"
1570 AC_DEFINE(BUILD_ECORE_IMF_SCIM, 1, [Ecore Imf SCIM Support])
1571fi
1572
1573ECORE_CHECK_MODULE([imf-scim], [${want_ecore_imf}], [Imf_SCIM], [${ecore_imf_scim_deps}],
1574 [requirements_ecore_imf_scim="ecore-imf >= 1.1.0 ecore-x >= 1.1.0 ecore-input >= 1.1.0 ${requirements_ecore_imf_scim}"])
1546 1575
1547## Graphic systems 1576## Graphic systems
1548 1577
@@ -1557,7 +1586,7 @@ fi
1557ECORE_CHECK_MODULE([x], [${want_ecore_x}], [X], [${ecore_x_deps}], 1586ECORE_CHECK_MODULE([x], [${want_ecore_x}], [X], [${ecore_x_deps}],
1558 [ 1587 [
1559 ecore_x_libs="$ecore_x_libs $x_libs" 1588 ecore_x_libs="$ecore_x_libs $x_libs"
1560 requirements_ecore_x="ecore-input >= 1.1.0 ${requirements_ecore_x}" 1589 requirements_ecore_x="ecore-input >= 1.1.99 ${requirements_ecore_x}"
1561 ]) 1590 ])
1562 1591
1563# ecore_win32 1592# ecore_win32
@@ -1565,7 +1594,7 @@ ECORE_CHECK_MODULE([x], [${want_ecore_x}], [X], [${ecore_x_deps}],
1565ECORE_CHECK_MODULE([win32], [${want_ecore_win32}], [Win32], [${have_ecore_input}], 1594ECORE_CHECK_MODULE([win32], [${want_ecore_win32}], [Win32], [${have_ecore_input}],
1566 [ 1595 [
1567 ecore_win32_libs="-lole32 -lgdi32" 1596 ecore_win32_libs="-lole32 -lgdi32"
1568 requirements_ecore_win32="ecore-input >= 1.1.0 ${requirements_ecore_win32}" 1597 requirements_ecore_win32="ecore-input >= 1.1.99 ${requirements_ecore_win32}"
1569 ]) 1598 ])
1570AC_SUBST(ecore_win32_libs) 1599AC_SUBST(ecore_win32_libs)
1571 1600
@@ -1577,7 +1606,7 @@ if test "x${have_ecore_input}" = "xyes" -a "x${have_cocoa}" = "xyes" ; then
1577fi 1606fi
1578 1607
1579ECORE_CHECK_MODULE([cocoa], [${want_ecore_cocoa}], [Cocoa], [${ecore_cocoa_deps}], 1608ECORE_CHECK_MODULE([cocoa], [${want_ecore_cocoa}], [Cocoa], [${ecore_cocoa_deps}],
1580 [requirements_ecore_cocoa="ecore-input >= 1.1.0 ${requirements_ecore_cocoa}"]) 1609 [requirements_ecore_cocoa="ecore-input >= 1.1.99 ${requirements_ecore_cocoa}"])
1581 1610
1582# ecore_sdl 1611# ecore_sdl
1583 1612
@@ -1587,10 +1616,10 @@ if test "x${have_sdl}" = "xyes" -a "x${have_ecore_input}" = "xyes" ; then
1587fi 1616fi
1588 1617
1589ECORE_CHECK_MODULE([sdl], [${want_ecore_sdl}], [Sdl], [${ecore_sdl_deps}], 1618ECORE_CHECK_MODULE([sdl], [${want_ecore_sdl}], [Sdl], [${ecore_sdl_deps}],
1590 [requirements_ecore_sdl="ecore-input >= 1.1.0 ${requirements_ecore_sdl}"]) 1619 [requirements_ecore_sdl="ecore-input >= 1.1.99 ${requirements_ecore_sdl}"])
1591 1620
1592ECORE_CHECK_MODULE([psl1ght], [${want_ecore_psl1ght}], [psl1ght], [${ecore_psl1ght_deps}], 1621ECORE_CHECK_MODULE([psl1ght], [${want_ecore_psl1ght}], [psl1ght], [${ecore_psl1ght_deps}],
1593 [requirements_ecore_psl1ght="ecore-input >= 1.1.0 ${requirements_ecore_psl1ght}"]) 1622 [requirements_ecore_psl1ght="ecore-input >= 1.1.99 ${requirements_ecore_psl1ght}"])
1594 1623
1595# ecore_fb 1624# ecore_fb
1596ECORE_CHECK_MODULE([fb], [${want_ecore_fb}], [FB], [$have_fb]) 1625ECORE_CHECK_MODULE([fb], [${want_ecore_fb}], [FB], [$have_fb])
@@ -1612,7 +1641,7 @@ ECORE_CHECK_MODULE([directfb], [${want_ecore_directfb}], [DirectFB], [${have_dir
1612# ecore_wince 1641# ecore_wince
1613 1642
1614ECORE_CHECK_MODULE([wince], [${want_ecore_wince}], [WinCE], [${have_ecore_input}], 1643ECORE_CHECK_MODULE([wince], [${want_ecore_wince}], [WinCE], [${have_ecore_input}],
1615 [requirements_ecore_win32="ecore-input >= 1.1.0 ${requirements_ecore_win32}"]) 1644 [requirements_ecore_win32="ecore-input >= 1.1.99 ${requirements_ecore_win32}"])
1616 1645
1617## Ecore Evas 1646## Ecore Evas
1618 1647
@@ -1624,7 +1653,7 @@ if test "x${have_evas}" = "xyes" -a "x${have_ecore_input}" = "xyes" -a "x${have_
1624fi 1653fi
1625 1654
1626ECORE_CHECK_MODULE([evas], [${want_ecore_evas}], [Evas], [${ecore_evas_deps}], 1655ECORE_CHECK_MODULE([evas], [${want_ecore_evas}], [Evas], [${ecore_evas_deps}],
1627 [requirements_ecore_evas="ecore-input >= 1.1.0 ecore-input-evas >= 1.1.0 evas >= 1.1.0 ${requirements_ecore_evas}"]) 1656 [requirements_ecore_evas="ecore-input >= 1.1.99 ecore-input-evas >= 1.1.99 evas >= 1.1.99 ${requirements_ecore_evas}"])
1628 1657
1629# ecore_evas_buffer 1658# ecore_evas_buffer
1630 1659
@@ -1714,7 +1743,7 @@ if test "x$have_ecore_evas_software_x11" = "xyes" -o \
1714 "x$have_ecore_evas_software_16_x11" = "xyes" -o \ 1743 "x$have_ecore_evas_software_16_x11" = "xyes" -o \
1715 "x$have_ecore_evas_software_xcb" = "xyes"; then 1744 "x$have_ecore_evas_software_xcb" = "xyes"; then
1716 AC_DEFINE(BUILD_ECORE_EVAS_X11, 1, [Support for X Window Engines in Ecore_Evas]) 1745 AC_DEFINE(BUILD_ECORE_EVAS_X11, 1, [Support for X Window Engines in Ecore_Evas])
1717 requirements_ecore_evas="ecore-x >= 1.1.0 ${requirements_ecore_evas}" 1746 requirements_ecore_evas="ecore-x >= 1.1.99 ${requirements_ecore_evas}"
1718fi 1747fi
1719 1748
1720# ecore_evas_win32 1749# ecore_evas_win32
@@ -1750,7 +1779,7 @@ if test "x${have_ecore_evas_software_gdi}" = "xyes" -o \
1750 "x${have_ecore_evas_opengl_glew}" = "xyes" -o \ 1779 "x${have_ecore_evas_opengl_glew}" = "xyes" -o \
1751 "x${have_ecore_evas_software_16_ddraw}" = "xyes" ; then 1780 "x${have_ecore_evas_software_16_ddraw}" = "xyes" ; then
1752 AC_DEFINE(BUILD_ECORE_EVAS_WIN32, 1, [Support for Win32 Engine in Ecore_Evas]) 1781 AC_DEFINE(BUILD_ECORE_EVAS_WIN32, 1, [Support for Win32 Engine in Ecore_Evas])
1753 requirements_ecore_evas="ecore-win32 >= 1.1.0 ${requirements_ecore_evas}" 1782 requirements_ecore_evas="ecore-win32 >= 1.1.99 ${requirements_ecore_evas}"
1754fi 1783fi
1755 1784
1756# ecore_evas_software_sdl 1785# ecore_evas_software_sdl
@@ -1759,7 +1788,7 @@ ECORE_EVAS_CHECK_MODULE([software-sdl],
1759 [${want_ecore_evas_software_sdl}], 1788 [${want_ecore_evas_software_sdl}],
1760 [Software SDL], 1789 [Software SDL],
1761 [${have_ecore_sdl}], 1790 [${have_ecore_sdl}],
1762 [requirements_ecore_evas="ecore-sdl >= 1.1.0 ${requirements_ecore_evas}"]) 1791 [requirements_ecore_evas="ecore-sdl >= 1.1.99 ${requirements_ecore_evas}"])
1763 1792
1764# ecore_evas_gl_sdl 1793# ecore_evas_gl_sdl
1765 1794
@@ -1767,7 +1796,7 @@ ECORE_EVAS_CHECK_MODULE([opengl-sdl],
1767 [${want_ecore_evas_gl_sdl}], 1796 [${want_ecore_evas_gl_sdl}],
1768 [OpenGL SDL], 1797 [OpenGL SDL],
1769 [${have_ecore_sdl}], 1798 [${have_ecore_sdl}],
1770 [requirements_ecore_evas="ecore-sdl >= 1.1.0 ${requirements_ecore_evas}"]) 1799 [requirements_ecore_evas="ecore-sdl >= 1.1.99 ${requirements_ecore_evas}"])
1771 1800
1772# ecore_evas_cocoa 1801# ecore_evas_cocoa
1773 1802
@@ -1775,7 +1804,7 @@ ECORE_EVAS_CHECK_MODULE([opengl-cocoa],
1775 [${want_ecore_evas_gl_cocoa}], 1804 [${want_ecore_evas_gl_cocoa}],
1776 [OpenGL Cocoa], 1805 [OpenGL Cocoa],
1777 [${have_ecore_cocoa}], 1806 [${have_ecore_cocoa}],
1778 [requirements_ecore_evas="ecore-cocoa >= 1.1.0 ${requirements_ecore_evas}"]) 1807 [requirements_ecore_evas="ecore-cocoa >= 1.1.99 ${requirements_ecore_evas}"])
1779 1808
1780# ecore_evas_directfb 1809# ecore_evas_directfb
1781 1810
@@ -1783,7 +1812,7 @@ ECORE_EVAS_CHECK_MODULE([directfb],
1783 [${want_ecore_evas_directfb}], 1812 [${want_ecore_evas_directfb}],
1784 [DirectFB], 1813 [DirectFB],
1785 [${have_ecore_directfb}], 1814 [${have_ecore_directfb}],
1786 [requirements_ecore_evas="ecore-directfb >= 1.1.0 ${requirements_ecore_evas}"]) 1815 [requirements_ecore_evas="ecore-directfb >= 1.1.99 ${requirements_ecore_evas}"])
1787 1816
1788# ecore_evas_fb 1817# ecore_evas_fb
1789 1818
@@ -1791,7 +1820,7 @@ ECORE_EVAS_CHECK_MODULE([fb],
1791 [${want_ecore_evas_fb}], 1820 [${want_ecore_evas_fb}],
1792 [Linux Framebuffer], 1821 [Linux Framebuffer],
1793 [${have_ecore_fb}], 1822 [${have_ecore_fb}],
1794 [requirements_ecore_evas="ecore-fb >= 1.1.0 ${requirements_ecore_evas}"]) 1823 [requirements_ecore_evas="ecore-fb >= 1.1.99 ${requirements_ecore_evas}"])
1795 1824
1796# ecore_evas_wince 1825# ecore_evas_wince
1797 1826
@@ -1799,7 +1828,7 @@ ECORE_EVAS_CHECK_MODULE([software-16-wince],
1799 [${want_ecore_evas_software_16_wince}], 1828 [${want_ecore_evas_software_16_wince}],
1800 [16 bpp Software Windows CE], 1829 [16 bpp Software Windows CE],
1801 [${have_ecore_wince}], 1830 [${have_ecore_wince}],
1802 [requirements_ecore_evas="ecore-wince >= 1.1.0 ${requirements_ecore_evas}"]) 1831 [requirements_ecore_evas="ecore-wince >= 1.1.99 ${requirements_ecore_evas}"])
1803 1832
1804# ecore_evas_ews 1833# ecore_evas_ews
1805 1834
@@ -1814,7 +1843,40 @@ ECORE_EVAS_CHECK_MODULE([psl1ght],
1814 [${want_ecore_evas_psl1ght}], 1843 [${want_ecore_evas_psl1ght}],
1815 [PSL1GHT], 1844 [PSL1GHT],
1816 [${have_ecore_psl1ght}], 1845 [${have_ecore_psl1ght}],
1817 [requirements_ecore_evas="ecore-psl1ght >= 1.1.0 ${requirements_ecore_evas}"]) 1846 [requirements_ecore_evas="ecore-psl1ght >= 1.1.99 ${requirements_ecore_evas}"])
1847
1848### WAYLAND
1849
1850ecore_wayland_deps="no"
1851have_wayland="no"
1852if test "x${want_ecore_wayland}" = "xyes" ; then
1853 PKG_CHECK_MODULES([WAYLAND], [wayland-client xkbcommon], [have_wayland="yes"], [have_wayland="no"])
1854fi
1855if test "x${have_ecore_input}" = "xyes" -a "x${have_wayland}" = "xyes" ; then
1856 ecore_wayland_deps="yes"
1857fi
1858
1859ECORE_CHECK_MODULE([wayland], [${want_ecore_wayland}], [Wayland], [${ecore_wayland_deps}])
1860if test "x${have_ecore_wayland}" = "xyes" ; then
1861 requirements_ecore_wayland="ecore-input >= 1.1.0 wayland-client xkbcommon ${requirements_ecore_wayland}"
1862fi
1863
1864ECORE_EVAS_CHECK_MODULE_FULL([wayland-shm], [wayland-shm],
1865 [${want_ecore_evas_wayland_shm}],
1866 [Wayland Shm],
1867 [${have_ecore_wayland}],
1868 [requirements_ecore_evas="${requirements_ecore_wayland} ${requirements_ecore_evas}"])
1869
1870ECORE_EVAS_CHECK_MODULE_FULL([wayland-egl], [wayland-egl],
1871 [${want_ecore_evas_wayland_egl}],
1872 [Wayland Egl],
1873 [${have_ecore_wayland}],
1874 [
1875 PKG_CHECK_MODULES([WAYLAND_EGL], [wayland-egl], [have_wayland_egl="yes"], [have_wayland_egl="no"])
1876 if test "x${have_wayland_egl}" = "xyes" ; then
1877 requirements_ecore_evas="wayland-egl egl ${requirements_ecore_wayland} ${requirements_ecore_evas}"
1878 fi
1879 ])
1818 1880
1819### install and build examples 1881### install and build examples
1820 1882
@@ -1842,6 +1904,8 @@ AC_SUBST(requirements_ecore_x)
1842AC_SUBST(requirements_ecore_win32) 1904AC_SUBST(requirements_ecore_win32)
1843AC_SUBST(requirements_ecore_wince) 1905AC_SUBST(requirements_ecore_wince)
1844AC_SUBST(requirements_ecore_imf_xim) 1906AC_SUBST(requirements_ecore_imf_xim)
1907AC_SUBST(requirements_ecore_imf_scim)
1908AC_SUBST(requirements_ecore_wayland)
1845 1909
1846AC_CONFIG_FILES([ 1910AC_CONFIG_FILES([
1847Makefile 1911Makefile
@@ -1862,6 +1926,7 @@ ecore-sdl.pc
1862ecore-cocoa.pc 1926ecore-cocoa.pc
1863ecore-psl1ght.pc 1927ecore-psl1ght.pc
1864ecore-wince.pc 1928ecore-wince.pc
1929ecore-wayland.pc
1865ecore.pc 1930ecore.pc
1866doc/ecore.dox 1931doc/ecore.dox
1867doc/Makefile 1932doc/Makefile
@@ -1890,11 +1955,13 @@ src/lib/ecore_wince/Makefile
1890src/lib/ecore_x/Makefile 1955src/lib/ecore_x/Makefile
1891src/lib/ecore_x/xlib/Makefile 1956src/lib/ecore_x/xlib/Makefile
1892src/lib/ecore_x/xcb/Makefile 1957src/lib/ecore_x/xcb/Makefile
1958src/lib/ecore_wayland/Makefile
1893src/examples/Makefile 1959src/examples/Makefile
1894src/tests/Makefile 1960src/tests/Makefile
1895src/modules/Makefile 1961src/modules/Makefile
1896src/modules/immodules/Makefile 1962src/modules/immodules/Makefile
1897src/modules/immodules/xim/Makefile 1963src/modules/immodules/xim/Makefile
1964src/modules/immodules/scim/Makefile
1898ecore.spec 1965ecore.spec
1899$po_makefile_in 1966$po_makefile_in
1900]) 1967])
@@ -1953,6 +2020,7 @@ fi
1953#echo " Ecore_Config.................: $have_ecore_config (deprecated)" 2020#echo " Ecore_Config.................: $have_ecore_config (deprecated)"
1954echo " Ecore_IMF....................: $have_ecore_imf" 2021echo " Ecore_IMF....................: $have_ecore_imf"
1955echo " XIM........................: $have_ecore_imf_xim" 2022echo " XIM........................: $have_ecore_imf_xim"
2023echo " SCIM.......................: $have_ecore_imf_scim"
1956echo " Ecore_IMF_Evas...............: $have_ecore_imf_evas" 2024echo " Ecore_IMF_Evas...............: $have_ecore_imf_evas"
1957echo " Ecore_Input..................: $have_ecore_input" 2025echo " Ecore_Input..................: $have_ecore_input"
1958echo " Ecore_Input_Evas.............: $have_ecore_input_evas" 2026echo " Ecore_Input_Evas.............: $have_ecore_input_evas"
@@ -2008,6 +2076,7 @@ fi
2008echo " Ecore_DirectFB...............: $have_ecore_directfb" 2076echo " Ecore_DirectFB...............: $have_ecore_directfb"
2009echo " Ecore_WinCE..................: $have_ecore_wince" 2077echo " Ecore_WinCE..................: $have_ecore_wince"
2010echo " Ecore_PSL1GHT................: $have_ecore_psl1ght" 2078echo " Ecore_PSL1GHT................: $have_ecore_psl1ght"
2079echo " Ecore_Wayland................: $have_ecore_wayland"
2011 2080
2012echo 2081echo
2013echo " Ecore Evas:" 2082echo " Ecore Evas:"
@@ -2041,6 +2110,8 @@ if test "x${have_ecore_evas}" = "xyes" ; then
2041 echo " Software 16bit DirectDraw..: $have_ecore_evas_software_16_ddraw" 2110 echo " Software 16bit DirectDraw..: $have_ecore_evas_software_16_ddraw"
2042 echo " Software 16bit WinCE.......: $have_ecore_evas_software_16_wince" 2111 echo " Software 16bit WinCE.......: $have_ecore_evas_software_16_wince"
2043 echo " Sing.Proc. Windowing System: $have_ecore_evas_ews" 2112 echo " Sing.Proc. Windowing System: $have_ecore_evas_ews"
2113 echo " Wayland Shm................: $have_ecore_evas_wayland_shm"
2114 echo " Wayland Egl................: $have_ecore_evas_wayland_egl"
2044fi 2115fi
2045echo 2116echo
2046echo " Tests................: ${enable_tests}" 2117echo " Tests................: ${enable_tests}"
diff --git a/libraries/ecore/doc/Makefile.in b/libraries/ecore/doc/Makefile.in
index 751df91..e71c120 100644
--- a/libraries/ecore/doc/Makefile.in
+++ b/libraries/ecore/doc/Makefile.in
@@ -188,10 +188,10 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
188PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 188PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
189PIXMAN_LIBS = @PIXMAN_LIBS@ 189PIXMAN_LIBS = @PIXMAN_LIBS@
190PKG_CONFIG = @PKG_CONFIG@ 190PKG_CONFIG = @PKG_CONFIG@
191PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
192PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
193POSUB = @POSUB@ 191POSUB = @POSUB@
194RANLIB = @RANLIB@ 192RANLIB = @RANLIB@
193SCIM_CFLAGS = @SCIM_CFLAGS@
194SCIM_LIBS = @SCIM_LIBS@
195SDL_CFLAGS = @SDL_CFLAGS@ 195SDL_CFLAGS = @SDL_CFLAGS@
196SDL_CONFIG = @SDL_CONFIG@ 196SDL_CONFIG = @SDL_CONFIG@
197SDL_LIBS = @SDL_LIBS@ 197SDL_LIBS = @SDL_LIBS@
@@ -210,6 +210,10 @@ TSLIB_LIBS = @TSLIB_LIBS@
210USE_NLS = @USE_NLS@ 210USE_NLS = @USE_NLS@
211VERSION = @VERSION@ 211VERSION = @VERSION@
212VMAJ = @VMAJ@ 212VMAJ = @VMAJ@
213WAYLAND_CFLAGS = @WAYLAND_CFLAGS@
214WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
215WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
216WAYLAND_LIBS = @WAYLAND_LIBS@
213WIN32_CFLAGS = @WIN32_CFLAGS@ 217WIN32_CFLAGS = @WIN32_CFLAGS@
214WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 218WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
215WIN32_LIBS = @WIN32_LIBS@ 219WIN32_LIBS = @WIN32_LIBS@
@@ -323,6 +327,8 @@ ecore_imf_cflags = @ecore_imf_cflags@
323ecore_imf_evas_cflags = @ecore_imf_evas_cflags@ 327ecore_imf_evas_cflags = @ecore_imf_evas_cflags@
324ecore_imf_evas_libs = @ecore_imf_evas_libs@ 328ecore_imf_evas_libs = @ecore_imf_evas_libs@
325ecore_imf_libs = @ecore_imf_libs@ 329ecore_imf_libs = @ecore_imf_libs@
330ecore_imf_scim_cflags = @ecore_imf_scim_cflags@
331ecore_imf_scim_libs = @ecore_imf_scim_libs@
326ecore_imf_xim_cflags = @ecore_imf_xim_cflags@ 332ecore_imf_xim_cflags = @ecore_imf_xim_cflags@
327ecore_imf_xim_libs = @ecore_imf_xim_libs@ 333ecore_imf_xim_libs = @ecore_imf_xim_libs@
328ecore_input_cflags = @ecore_input_cflags@ 334ecore_input_cflags = @ecore_input_cflags@
@@ -335,6 +341,8 @@ ecore_psl1ght_cflags = @ecore_psl1ght_cflags@
335ecore_psl1ght_libs = @ecore_psl1ght_libs@ 341ecore_psl1ght_libs = @ecore_psl1ght_libs@
336ecore_sdl_cflags = @ecore_sdl_cflags@ 342ecore_sdl_cflags = @ecore_sdl_cflags@
337ecore_sdl_libs = @ecore_sdl_libs@ 343ecore_sdl_libs = @ecore_sdl_libs@
344ecore_wayland_cflags = @ecore_wayland_cflags@
345ecore_wayland_libs = @ecore_wayland_libs@
338ecore_win32_cflags = @ecore_win32_cflags@ 346ecore_win32_cflags = @ecore_win32_cflags@
339ecore_win32_libs = @ecore_win32_libs@ 347ecore_win32_libs = @ecore_win32_libs@
340ecore_wince_cflags = @ecore_wince_cflags@ 348ecore_wince_cflags = @ecore_wince_cflags@
@@ -379,12 +387,14 @@ requirements_ecore_fb = @requirements_ecore_fb@
379requirements_ecore_file = @requirements_ecore_file@ 387requirements_ecore_file = @requirements_ecore_file@
380requirements_ecore_imf = @requirements_ecore_imf@ 388requirements_ecore_imf = @requirements_ecore_imf@
381requirements_ecore_imf_evas = @requirements_ecore_imf_evas@ 389requirements_ecore_imf_evas = @requirements_ecore_imf_evas@
390requirements_ecore_imf_scim = @requirements_ecore_imf_scim@
382requirements_ecore_imf_xim = @requirements_ecore_imf_xim@ 391requirements_ecore_imf_xim = @requirements_ecore_imf_xim@
383requirements_ecore_input = @requirements_ecore_input@ 392requirements_ecore_input = @requirements_ecore_input@
384requirements_ecore_input_evas = @requirements_ecore_input_evas@ 393requirements_ecore_input_evas = @requirements_ecore_input_evas@
385requirements_ecore_ipc = @requirements_ecore_ipc@ 394requirements_ecore_ipc = @requirements_ecore_ipc@
386requirements_ecore_psl1ght = @requirements_ecore_psl1ght@ 395requirements_ecore_psl1ght = @requirements_ecore_psl1ght@
387requirements_ecore_sdl = @requirements_ecore_sdl@ 396requirements_ecore_sdl = @requirements_ecore_sdl@
397requirements_ecore_wayland = @requirements_ecore_wayland@
388requirements_ecore_win32 = @requirements_ecore_win32@ 398requirements_ecore_win32 = @requirements_ecore_win32@
389requirements_ecore_wince = @requirements_ecore_wince@ 399requirements_ecore_wince = @requirements_ecore_wince@
390requirements_ecore_x = @requirements_ecore_x@ 400requirements_ecore_x = @requirements_ecore_x@
diff --git a/libraries/ecore/ecore-wayland.pc.in b/libraries/ecore/ecore-wayland.pc.in
new file mode 100644
index 0000000..f4f5cf3
--- /dev/null
+++ b/libraries/ecore/ecore-wayland.pc.in
@@ -0,0 +1,12 @@
1prefix=@prefix@
2exec_prefix=@exec_prefix@
3libdir=@libdir@
4includedir=@includedir@
5
6Name: ecore-wayland
7Description: E core library, Wayland module
8@pkgconfig_requires_private@: @requirements_ecore_wayland@
9Version: @VERSION@
10Libs: -L${libdir} -lecore_wayland
11Libs.private: -lwayland-client
12Cflags: -I${includedir}/ecore-@VMAJ@
diff --git a/libraries/ecore/ecore.spec b/libraries/ecore/ecore.spec
index a81327f..475a2d7 100644
--- a/libraries/ecore/ecore.spec
+++ b/libraries/ecore/ecore.spec
@@ -39,7 +39,7 @@
39 39
40Summary: Enlightened Core X interface library 40Summary: Enlightened Core X interface library
41Name: ecore 41Name: ecore
42Version: 1.1.0 42Version: 1.1.99.67344
43Release: %{_rel} 43Release: %{_rel}
44License: BSD 44License: BSD
45Group: User Interface/X 45Group: User Interface/X
@@ -176,7 +176,6 @@ test "x$RPM_BUILD_ROOT" != "x/" && rm -rf $RPM_BUILD_ROOT
176%files -f %{name}.lang 176%files -f %{name}.lang
177%defattr(-, root, root) 177%defattr(-, root, root)
178%doc AUTHORS COPYING* README* 178%doc AUTHORS COPYING* README*
179%{_bindir}/ecore_test
180%{_libdir}/libecore*.so.* 179%{_libdir}/libecore*.so.*
181 180
182%files devel 181%files devel
diff --git a/libraries/ecore/ecore.spec.in b/libraries/ecore/ecore.spec.in
index f542bf7..bab3df5 100644
--- a/libraries/ecore/ecore.spec.in
+++ b/libraries/ecore/ecore.spec.in
@@ -176,7 +176,6 @@ test "x$RPM_BUILD_ROOT" != "x/" && rm -rf $RPM_BUILD_ROOT
176%files -f %{name}.lang 176%files -f %{name}.lang
177%defattr(-, root, root) 177%defattr(-, root, root)
178%doc AUTHORS COPYING* README* 178%doc AUTHORS COPYING* README*
179%{_bindir}/ecore_test
180%{_libdir}/libecore*.so.* 179%{_libdir}/libecore*.so.*
181 180
182%files devel 181%files devel
diff --git a/libraries/ecore/ecore.supp b/libraries/ecore/ecore.supp
index 31dd0e0..0b10a6c 100644
--- a/libraries/ecore/ecore.supp
+++ b/libraries/ecore/ecore.supp
@@ -1,4 +1,4 @@
1# $Id: ecore.supp 35497 2008-08-17 07:44:18Z raster $ 1# $Id: ecore.supp 11909 2004-10-19 16:40:25Z tsauerbeck $
2# valgrind suppression file for Ecore 2# valgrind suppression file for Ecore
3# 3#
4{ 4{
diff --git a/libraries/ecore/ltmain.sh b/libraries/ecore/ltmain.sh
index fa4b1e1..7ed280b 100755
--- a/libraries/ecore/ltmain.sh
+++ b/libraries/ecore/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-2ubuntu3 68# $progname: (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
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-2ubuntu3" 76VERSION="2.2.6b Debian-2.2.6b-2ubuntu1"
77TIMESTAMP="" 77TIMESTAMP=""
78package_revision=1.3017 78package_revision=1.3017
79 79
diff --git a/libraries/ecore/po/cs.gmo b/libraries/ecore/po/cs.gmo
index 4fae46d..44b8f00 100644
--- a/libraries/ecore/po/cs.gmo
+++ b/libraries/ecore/po/cs.gmo
Binary files differ
diff --git a/libraries/ecore/po/cs.po b/libraries/ecore/po/cs.po
index 0abeb48..436b1a7 100644
--- a/libraries/ecore/po/cs.po
+++ b/libraries/ecore/po/cs.po
@@ -5,170 +5,170 @@ msgid ""
5msgstr "" 5msgstr ""
6"Project-Id-Version: ecore\n" 6"Project-Id-Version: ecore\n"
7"Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" 7"Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
8"POT-Creation-Date: 2011-11-16 14:38+0900\n" 8"POT-Creation-Date: 2012-01-23 23:19+1000\n"
9"PO-Revision-Date: 2011-10-23 01:28+0100\n" 9"PO-Revision-Date: 2011-10-23 01:28+0100\n"
10"Last-Translator: Daniel Kolesa <quaker66@gmail.com>\n" 10"Last-Translator: Daniel Kolesa <quaker66@gmail.com>\n"
11"Language-Team: Czech <kde-i18n-doc@kde.org>\n" 11"Language-Team: Czech <kde-i18n-doc@kde.org>\n"
12"Language: \n"
13"MIME-Version: 1.0\n" 12"MIME-Version: 1.0\n"
14"Content-Type: text/plain; charset=UTF-8\n" 13"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Transfer-Encoding: 8bit\n" 14"Content-Transfer-Encoding: 8bit\n"
15"Language: \n"
16"X-Generator: Lokalize 1.2\n" 16"X-Generator: Lokalize 1.2\n"
17"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" 17"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
18 18
19#: src/lib/ecore/ecore_getopt.c:90 19#: src/lib/ecore/ecore_getopt.c:91
20msgid "Version:" 20msgid "Version:"
21msgstr "Verze:" 21msgstr "Verze:"
22 22
23#: src/lib/ecore/ecore_getopt.c:99 23#: src/lib/ecore/ecore_getopt.c:100
24msgid "Usage:" 24msgid "Usage:"
25msgstr "Použití:" 25msgstr "Použití:"
26 26
27#: src/lib/ecore/ecore_getopt.c:104 27#: src/lib/ecore/ecore_getopt.c:105
28#, c-format 28#, c-format
29msgid "%s [options]\n" 29msgid "%s [options]\n"
30msgstr "%s [volby]\n" 30msgstr "%s [volby]\n"
31 31
32#: src/lib/ecore/ecore_getopt.c:259 32#: src/lib/ecore/ecore_getopt.c:260
33msgid "Copyright:" 33msgid "Copyright:"
34msgstr "Copyright:" 34msgstr "Copyright:"
35 35
36#: src/lib/ecore/ecore_getopt.c:271 36#: src/lib/ecore/ecore_getopt.c:272
37msgid "License:" 37msgid "License:"
38msgstr "Licence:" 38msgstr "Licence:"
39 39
40#: src/lib/ecore/ecore_getopt.c:452 40#: src/lib/ecore/ecore_getopt.c:453
41msgid "Type: " 41msgid "Type: "
42msgstr "Typ: " 42msgstr "Typ: "
43 43
44#: src/lib/ecore/ecore_getopt.c:528 44#: src/lib/ecore/ecore_getopt.c:529
45msgid "Default: " 45msgid "Default: "
46msgstr "Výchozí: " 46msgstr "Výchozí: "
47 47
48#: src/lib/ecore/ecore_getopt.c:555 48#: src/lib/ecore/ecore_getopt.c:556
49msgid "Choices: " 49msgid "Choices: "
50msgstr "Možnosti: " 50msgstr "Možnosti: "
51 51
52#: src/lib/ecore/ecore_getopt.c:656 52#: src/lib/ecore/ecore_getopt.c:657
53msgid "Options:\n" 53msgid "Options:\n"
54msgstr "Volby:\n" 54msgstr "Volby:\n"
55 55
56#: src/lib/ecore/ecore_getopt.c:781 56#: src/lib/ecore/ecore_getopt.c:782
57#, c-format 57#, c-format
58msgid "ERROR: unknown option --%s.\n" 58msgid "ERROR: unknown option --%s.\n"
59msgstr "CHYBA: neznámá volba --%s.\n" 59msgstr "CHYBA: neznámá volba --%s.\n"
60 60
61#: src/lib/ecore/ecore_getopt.c:783 61#: src/lib/ecore/ecore_getopt.c:784
62#, c-format 62#, c-format
63msgid "ERROR: unknown option -%c.\n" 63msgid "ERROR: unknown option -%c.\n"
64msgstr "CHYBA: neznámá volba -%c.\n" 64msgstr "CHYBA: neznámá volba -%c.\n"
65 65
66#: src/lib/ecore/ecore_getopt.c:841 66#: src/lib/ecore/ecore_getopt.c:842
67msgid "ERROR: " 67msgid "ERROR: "
68msgstr "CHYBA: " 68msgstr "CHYBA: "
69 69
70#: src/lib/ecore/ecore_getopt.c:924 src/lib/ecore/ecore_getopt.c:1061 70#: src/lib/ecore/ecore_getopt.c:925 src/lib/ecore/ecore_getopt.c:1062
71#: src/lib/ecore/ecore_getopt.c:1077 src/lib/ecore/ecore_getopt.c:1092 71#: src/lib/ecore/ecore_getopt.c:1078 src/lib/ecore/ecore_getopt.c:1093
72#: src/lib/ecore/ecore_getopt.c:1109 src/lib/ecore/ecore_getopt.c:1156 72#: src/lib/ecore/ecore_getopt.c:1110 src/lib/ecore/ecore_getopt.c:1157
73#: src/lib/ecore/ecore_getopt.c:1276 src/lib/ecore/ecore_getopt.c:1317 73#: src/lib/ecore/ecore_getopt.c:1277 src/lib/ecore/ecore_getopt.c:1318
74msgid "value has no pointer set.\n" 74msgid "value has no pointer set.\n"
75msgstr "hodnota nemá nastaven pointer.\n" 75msgstr "hodnota nemá nastaven pointer.\n"
76 76
77#: src/lib/ecore/ecore_getopt.c:956 src/lib/ecore/ecore_getopt.c:1176 77#: src/lib/ecore/ecore_getopt.c:957 src/lib/ecore/ecore_getopt.c:1177
78#, c-format 78#, c-format
79msgid "unknown boolean value %s.\n" 79msgid "unknown boolean value %s.\n"
80msgstr "neznámá boolean hodnota %s.\n" 80msgstr "neznámá boolean hodnota %s.\n"
81 81
82#: src/lib/ecore/ecore_getopt.c:1007 src/lib/ecore/ecore_getopt.c:1264 82#: src/lib/ecore/ecore_getopt.c:1008 src/lib/ecore/ecore_getopt.c:1265
83#, c-format 83#, c-format
84msgid "invalid number format %s\n" 84msgid "invalid number format %s\n"
85msgstr "neznámý číselný formát %s\n" 85msgstr "neznámý číselný formát %s\n"
86 86
87#: src/lib/ecore/ecore_getopt.c:1122 87#: src/lib/ecore/ecore_getopt.c:1123
88#, c-format 88#, c-format
89msgid "invalid choice \"%s\". Valid values are: " 89msgid "invalid choice \"%s\". Valid values are: "
90msgstr "neznámá volba \"%s\". Možné hodnoty jsou: " 90msgstr "neznámá volba \"%s\". Možné hodnoty jsou: "
91 91
92#: src/lib/ecore/ecore_getopt.c:1150 92#: src/lib/ecore/ecore_getopt.c:1151
93msgid "missing parameter to append.\n" 93msgid "missing parameter to append.\n"
94msgstr "chybějící parametr k připojení.\n" 94msgstr "chybějící parametr k připojení.\n"
95 95
96#: src/lib/ecore/ecore_getopt.c:1254 96#: src/lib/ecore/ecore_getopt.c:1255
97msgid "could not parse value.\n" 97msgid "could not parse value.\n"
98msgstr "nemůžu parsovat hodnotu.\n" 98msgstr "nemůžu parsovat hodnotu.\n"
99 99
100#: src/lib/ecore/ecore_getopt.c:1311 100#: src/lib/ecore/ecore_getopt.c:1312
101msgid "missing parameter.\n" 101msgid "missing parameter.\n"
102msgstr "chybějící parametr.\n" 102msgstr "chybějící parametr.\n"
103 103
104#: src/lib/ecore/ecore_getopt.c:1324 104#: src/lib/ecore/ecore_getopt.c:1325
105msgid "missing callback function!\n" 105msgid "missing callback function!\n"
106msgstr "chybějící callback funkce!\n" 106msgstr "chybějící callback funkce!\n"
107 107
108#: src/lib/ecore/ecore_getopt.c:1353 108#: src/lib/ecore/ecore_getopt.c:1354
109msgid "no version was defined.\n" 109msgid "no version was defined.\n"
110msgstr "nebyla definována verze.\n" 110msgstr "nebyla definována verze.\n"
111 111
112#: src/lib/ecore/ecore_getopt.c:1370 112#: src/lib/ecore/ecore_getopt.c:1371
113msgid "no copyright was defined.\n" 113msgid "no copyright was defined.\n"
114msgstr "nebyl definován copyright.\n" 114msgstr "nebyl definován copyright.\n"
115 115
116#: src/lib/ecore/ecore_getopt.c:1387 116#: src/lib/ecore/ecore_getopt.c:1388
117msgid "no license was defined.\n" 117msgid "no license was defined.\n"
118msgstr "nebyla definována licence.\n" 118msgstr "nebyla definována licence.\n"
119 119
120#: src/lib/ecore/ecore_getopt.c:1462 120#: src/lib/ecore/ecore_getopt.c:1463
121#, c-format 121#, c-format
122msgid "ERROR: unknown option --%s, ignored.\n" 122msgid "ERROR: unknown option --%s, ignored.\n"
123msgstr "CHYBA: neznámá volba --%s, ignoruji.\n" 123msgstr "CHYBA: neznámá volba --%s, ignoruji.\n"
124 124
125#: src/lib/ecore/ecore_getopt.c:1495 125#: src/lib/ecore/ecore_getopt.c:1496
126#, c-format 126#, c-format
127msgid "ERROR: option --%s requires an argument!\n" 127msgid "ERROR: option --%s requires an argument!\n"
128msgstr "CHYBA: volba --%s vyžaduje argument!\n" 128msgstr "CHYBA: volba --%s vyžaduje argument!\n"
129 129
130#: src/lib/ecore/ecore_getopt.c:1537 130#: src/lib/ecore/ecore_getopt.c:1538
131#, c-format 131#, c-format
132msgid "ERROR: unknown option -%c, ignored.\n" 132msgid "ERROR: unknown option -%c, ignored.\n"
133msgstr "CHYBA: neznámá volba -%c, ignoruji.\n" 133msgstr "CHYBA: neznámá volba -%c, ignoruji.\n"
134 134
135#: src/lib/ecore/ecore_getopt.c:1575 135#: src/lib/ecore/ecore_getopt.c:1576
136#, c-format 136#, c-format
137msgid "ERROR: option -%c requires an argument!\n" 137msgid "ERROR: option -%c requires an argument!\n"
138msgstr "CHYBA: volba -%c vyžaduje argument!\n" 138msgstr "CHYBA: volba -%c vyžaduje argument!\n"
139 139
140#: src/lib/ecore/ecore_getopt.c:1784 140#: src/lib/ecore/ecore_getopt.c:1785
141msgid "ERROR: no parser provided.\n" 141msgid "ERROR: no parser provided.\n"
142msgstr "CHYBA: nebyl poskytnut parser.\n" 142msgstr "CHYBA: nebyl poskytnut parser.\n"
143 143
144#: src/lib/ecore/ecore_getopt.c:1789 144#: src/lib/ecore/ecore_getopt.c:1790
145msgid "ERROR: no values provided.\n" 145msgid "ERROR: no values provided.\n"
146msgstr "CHYBA: nebyly poskytnuty hodnoty.\n" 146msgstr "CHYBA: nebyly poskytnuty hodnoty.\n"
147 147
148#: src/lib/ecore/ecore_getopt.c:1798 148#: src/lib/ecore/ecore_getopt.c:1799
149msgid "ERROR: no arguments provided.\n" 149msgid "ERROR: no arguments provided.\n"
150msgstr "CHYBA: nebyly poskytnuty argumenty.\n" 150msgstr "CHYBA: nebyly poskytnuty argumenty.\n"
151 151
152#: src/lib/ecore/ecore_getopt.c:1824 152#: src/lib/ecore/ecore_getopt.c:1825
153msgid "ERROR: invalid options found." 153msgid "ERROR: invalid options found."
154msgstr "CHYBA: nalezeny neplatné volby." 154msgstr "CHYBA: nalezeny neplatné volby."
155 155
156#: src/lib/ecore/ecore_getopt.c:1830 156#: src/lib/ecore/ecore_getopt.c:1831
157#, c-format 157#, c-format
158msgid " See --%s.\n" 158msgid " See --%s.\n"
159msgstr " Viz --%s.\n" 159msgstr " Viz --%s.\n"
160 160
161#: src/lib/ecore/ecore_getopt.c:1832 161#: src/lib/ecore/ecore_getopt.c:1833
162#, c-format 162#, c-format
163msgid " See -%c.\n" 163msgid " See -%c.\n"
164msgstr " Viz -%c.\n" 164msgstr " Viz -%c.\n"
165 165
166#: src/lib/ecore/ecore_getopt.c:1873 166#: src/lib/ecore/ecore_getopt.c:1875
167#, c-format 167#, c-format
168msgid "ERROR: incorrect geometry value '%s'\n" 168msgid "ERROR: incorrect geometry value '%s'\n"
169msgstr "CHYBA: neplatná hodnota geometrie '%s'\n" 169msgstr "CHYBA: neplatná hodnota geometrie '%s'\n"
170 170
171#: src/lib/ecore/ecore_getopt.c:1900 171#: src/lib/ecore/ecore_getopt.c:1903
172#, c-format 172#, c-format
173msgid "ERROR: incorrect size value '%s'\n" 173msgid "ERROR: incorrect size value '%s'\n"
174msgstr "CHYBA: neplatná hodnota velikosti '%s'\n" 174msgstr "CHYBA: neplatná hodnota velikosti '%s'\n"
diff --git a/libraries/ecore/po/de.gmo b/libraries/ecore/po/de.gmo
index a3f0c53..b26411f 100644
--- a/libraries/ecore/po/de.gmo
+++ b/libraries/ecore/po/de.gmo
Binary files differ
diff --git a/libraries/ecore/po/de.po b/libraries/ecore/po/de.po
index 56c2363..c6072bc 100644
--- a/libraries/ecore/po/de.po
+++ b/libraries/ecore/po/de.po
@@ -8,168 +8,168 @@ msgid ""
8msgstr "" 8msgstr ""
9"Project-Id-Version: ecore 0.9.9.063-2\n" 9"Project-Id-Version: ecore 0.9.9.063-2\n"
10"Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" 10"Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
11"POT-Creation-Date: 2011-11-16 14:38+0900\n" 11"POT-Creation-Date: 2012-01-23 23:19+1000\n"
12"PO-Revision-Date: 2010-01-03 21:52+GMT\n" 12"PO-Revision-Date: 2010-01-03 21:52+GMT\n"
13"Last-Translator: Fabian Nowak <timystery@arcor.de>\n" 13"Last-Translator: Fabian Nowak <timystery@arcor.de>\n"
14"Language-Team: German <debian-l10n-german@lists.debian.org>\n" 14"Language-Team: German <debian-l10n-german@lists.debian.org>\n"
15"Language: de\n"
16"MIME-Version: 1.0\n" 15"MIME-Version: 1.0\n"
17"Content-Type: text/plain; charset=UTF-8\n" 16"Content-Type: text/plain; charset=UTF-8\n"
18"Content-Transfer-Encoding: 8bit\n" 17"Content-Transfer-Encoding: 8bit\n"
18"Language: de\n"
19 19
20#: src/lib/ecore/ecore_getopt.c:90 20#: src/lib/ecore/ecore_getopt.c:91
21msgid "Version:" 21msgid "Version:"
22msgstr "Version:" 22msgstr "Version:"
23 23
24#: src/lib/ecore/ecore_getopt.c:99 24#: src/lib/ecore/ecore_getopt.c:100
25msgid "Usage:" 25msgid "Usage:"
26msgstr "Aufruf:" 26msgstr "Aufruf:"
27 27
28#: src/lib/ecore/ecore_getopt.c:104 28#: src/lib/ecore/ecore_getopt.c:105
29#, c-format 29#, c-format
30msgid "%s [options]\n" 30msgid "%s [options]\n"
31msgstr "%s [Optionen]\n" 31msgstr "%s [Optionen]\n"
32 32
33#: src/lib/ecore/ecore_getopt.c:259 33#: src/lib/ecore/ecore_getopt.c:260
34msgid "Copyright:" 34msgid "Copyright:"
35msgstr "Copyright:" 35msgstr "Copyright:"
36 36
37#: src/lib/ecore/ecore_getopt.c:271 37#: src/lib/ecore/ecore_getopt.c:272
38msgid "License:" 38msgid "License:"
39msgstr "Lizenz:" 39msgstr "Lizenz:"
40 40
41#: src/lib/ecore/ecore_getopt.c:452 41#: src/lib/ecore/ecore_getopt.c:453
42msgid "Type: " 42msgid "Type: "
43msgstr "Typ: " 43msgstr "Typ: "
44 44
45#: src/lib/ecore/ecore_getopt.c:528 45#: src/lib/ecore/ecore_getopt.c:529
46msgid "Default: " 46msgid "Default: "
47msgstr "Standard: " 47msgstr "Standard: "
48 48
49#: src/lib/ecore/ecore_getopt.c:555 49#: src/lib/ecore/ecore_getopt.c:556
50msgid "Choices: " 50msgid "Choices: "
51msgstr "Auswahlmöglichkeiten: " 51msgstr "Auswahlmöglichkeiten: "
52 52
53#: src/lib/ecore/ecore_getopt.c:656 53#: src/lib/ecore/ecore_getopt.c:657
54msgid "Options:\n" 54msgid "Options:\n"
55msgstr "Optionen:\n" 55msgstr "Optionen:\n"
56 56
57#: src/lib/ecore/ecore_getopt.c:781 57#: src/lib/ecore/ecore_getopt.c:782
58#, c-format 58#, c-format
59msgid "ERROR: unknown option --%s.\n" 59msgid "ERROR: unknown option --%s.\n"
60msgstr "FEHLER: Unbekannte Option --%s\n" 60msgstr "FEHLER: Unbekannte Option --%s\n"
61 61
62#: src/lib/ecore/ecore_getopt.c:783 62#: src/lib/ecore/ecore_getopt.c:784
63#, c-format 63#, c-format
64msgid "ERROR: unknown option -%c.\n" 64msgid "ERROR: unknown option -%c.\n"
65msgstr "FEHLER: Unbekannte Option -%c\n" 65msgstr "FEHLER: Unbekannte Option -%c\n"
66 66
67#: src/lib/ecore/ecore_getopt.c:841 67#: src/lib/ecore/ecore_getopt.c:842
68msgid "ERROR: " 68msgid "ERROR: "
69msgstr "FEHLER: " 69msgstr "FEHLER: "
70 70
71#: src/lib/ecore/ecore_getopt.c:924 src/lib/ecore/ecore_getopt.c:1061 71#: src/lib/ecore/ecore_getopt.c:925 src/lib/ecore/ecore_getopt.c:1062
72#: src/lib/ecore/ecore_getopt.c:1077 src/lib/ecore/ecore_getopt.c:1092 72#: src/lib/ecore/ecore_getopt.c:1078 src/lib/ecore/ecore_getopt.c:1093
73#: src/lib/ecore/ecore_getopt.c:1109 src/lib/ecore/ecore_getopt.c:1156 73#: src/lib/ecore/ecore_getopt.c:1110 src/lib/ecore/ecore_getopt.c:1157
74#: src/lib/ecore/ecore_getopt.c:1276 src/lib/ecore/ecore_getopt.c:1317 74#: src/lib/ecore/ecore_getopt.c:1277 src/lib/ecore/ecore_getopt.c:1318
75msgid "value has no pointer set.\n" 75msgid "value has no pointer set.\n"
76msgstr "kein Zeiger auf Wert gesetzt\n" 76msgstr "kein Zeiger auf Wert gesetzt\n"
77 77
78#: src/lib/ecore/ecore_getopt.c:956 src/lib/ecore/ecore_getopt.c:1176 78#: src/lib/ecore/ecore_getopt.c:957 src/lib/ecore/ecore_getopt.c:1177
79#, c-format 79#, c-format
80msgid "unknown boolean value %s.\n" 80msgid "unknown boolean value %s.\n"
81msgstr "unbekannter boolescher Wert %s\n" 81msgstr "unbekannter boolescher Wert %s\n"
82 82
83#: src/lib/ecore/ecore_getopt.c:1007 src/lib/ecore/ecore_getopt.c:1264 83#: src/lib/ecore/ecore_getopt.c:1008 src/lib/ecore/ecore_getopt.c:1265
84#, c-format 84#, c-format
85msgid "invalid number format %s\n" 85msgid "invalid number format %s\n"
86msgstr "ungültiges Zahlenformat %s\n" 86msgstr "ungültiges Zahlenformat %s\n"
87 87
88#: src/lib/ecore/ecore_getopt.c:1122 88#: src/lib/ecore/ecore_getopt.c:1123
89#, c-format 89#, c-format
90msgid "invalid choice \"%s\". Valid values are: " 90msgid "invalid choice \"%s\". Valid values are: "
91msgstr "ungültige Auswahl \"%s\". Gültige Werte sind: " 91msgstr "ungültige Auswahl \"%s\". Gültige Werte sind: "
92 92
93#: src/lib/ecore/ecore_getopt.c:1150 93#: src/lib/ecore/ecore_getopt.c:1151
94msgid "missing parameter to append.\n" 94msgid "missing parameter to append.\n"
95msgstr "fehlender Parameter zum Anhängen.\n" 95msgstr "fehlender Parameter zum Anhängen.\n"
96 96
97#: src/lib/ecore/ecore_getopt.c:1254 97#: src/lib/ecore/ecore_getopt.c:1255
98msgid "could not parse value.\n" 98msgid "could not parse value.\n"
99msgstr "Wert kann nicht ausgewertet werden.\n" 99msgstr "Wert kann nicht ausgewertet werden.\n"
100 100
101#: src/lib/ecore/ecore_getopt.c:1311 101#: src/lib/ecore/ecore_getopt.c:1312
102msgid "missing parameter.\n" 102msgid "missing parameter.\n"
103msgstr "fehlender Parameter.\n" 103msgstr "fehlender Parameter.\n"
104 104
105#: src/lib/ecore/ecore_getopt.c:1324 105#: src/lib/ecore/ecore_getopt.c:1325
106msgid "missing callback function!\n" 106msgid "missing callback function!\n"
107msgstr "fehlende Rückruffunktion!\n" 107msgstr "fehlende Rückruffunktion!\n"
108 108
109#: src/lib/ecore/ecore_getopt.c:1353 109#: src/lib/ecore/ecore_getopt.c:1354
110msgid "no version was defined.\n" 110msgid "no version was defined.\n"
111msgstr "es wurde keine Version angegeben.\n" 111msgstr "es wurde keine Version angegeben.\n"
112 112
113#: src/lib/ecore/ecore_getopt.c:1370 113#: src/lib/ecore/ecore_getopt.c:1371
114msgid "no copyright was defined.\n" 114msgid "no copyright was defined.\n"
115msgstr "es wurde kein Copyright angegeben.\n" 115msgstr "es wurde kein Copyright angegeben.\n"
116 116
117#: src/lib/ecore/ecore_getopt.c:1387 117#: src/lib/ecore/ecore_getopt.c:1388
118msgid "no license was defined.\n" 118msgid "no license was defined.\n"
119msgstr "es wurde keine Lizenz angegeben.\n" 119msgstr "es wurde keine Lizenz angegeben.\n"
120 120
121#: src/lib/ecore/ecore_getopt.c:1462 121#: src/lib/ecore/ecore_getopt.c:1463
122#, c-format 122#, c-format
123msgid "ERROR: unknown option --%s, ignored.\n" 123msgid "ERROR: unknown option --%s, ignored.\n"
124msgstr "FEHLER: Unbekannte Option --%s, ignoriert\n" 124msgstr "FEHLER: Unbekannte Option --%s, ignoriert\n"
125 125
126#: src/lib/ecore/ecore_getopt.c:1495 126#: src/lib/ecore/ecore_getopt.c:1496
127#, c-format 127#, c-format
128msgid "ERROR: option --%s requires an argument!\n" 128msgid "ERROR: option --%s requires an argument!\n"
129msgstr "FEHLER: Option --%s benötigt ein Argument!\n" 129msgstr "FEHLER: Option --%s benötigt ein Argument!\n"
130 130
131#: src/lib/ecore/ecore_getopt.c:1537 131#: src/lib/ecore/ecore_getopt.c:1538
132#, c-format 132#, c-format
133msgid "ERROR: unknown option -%c, ignored.\n" 133msgid "ERROR: unknown option -%c, ignored.\n"
134msgstr "FEHLER: Unbekannte Option -%c, ignoriert\n" 134msgstr "FEHLER: Unbekannte Option -%c, ignoriert\n"
135 135
136#: src/lib/ecore/ecore_getopt.c:1575 136#: src/lib/ecore/ecore_getopt.c:1576
137#, c-format 137#, c-format
138msgid "ERROR: option -%c requires an argument!\n" 138msgid "ERROR: option -%c requires an argument!\n"
139msgstr "FEHLER: Option -%c benötigt ein Argument!\n" 139msgstr "FEHLER: Option -%c benötigt ein Argument!\n"
140 140
141#: src/lib/ecore/ecore_getopt.c:1784 141#: src/lib/ecore/ecore_getopt.c:1785
142msgid "ERROR: no parser provided.\n" 142msgid "ERROR: no parser provided.\n"
143msgstr "FEHLER: Kein Parser bereitgestellt.\n" 143msgstr "FEHLER: Kein Parser bereitgestellt.\n"
144 144
145#: src/lib/ecore/ecore_getopt.c:1789 145#: src/lib/ecore/ecore_getopt.c:1790
146msgid "ERROR: no values provided.\n" 146msgid "ERROR: no values provided.\n"
147msgstr "FEHLER: Keine Werte bereitgestellt.\n" 147msgstr "FEHLER: Keine Werte bereitgestellt.\n"
148 148
149#: src/lib/ecore/ecore_getopt.c:1798 149#: src/lib/ecore/ecore_getopt.c:1799
150msgid "ERROR: no arguments provided.\n" 150msgid "ERROR: no arguments provided.\n"
151msgstr "FEHLER: Keine Argumente bereitgestellt.\n" 151msgstr "FEHLER: Keine Argumente bereitgestellt.\n"
152 152
153#: src/lib/ecore/ecore_getopt.c:1824 153#: src/lib/ecore/ecore_getopt.c:1825
154msgid "ERROR: invalid options found." 154msgid "ERROR: invalid options found."
155msgstr "FEHLER: Ungültige Optionen gefunden." 155msgstr "FEHLER: Ungültige Optionen gefunden."
156 156
157#: src/lib/ecore/ecore_getopt.c:1830 157#: src/lib/ecore/ecore_getopt.c:1831
158#, c-format 158#, c-format
159msgid " See --%s.\n" 159msgid " See --%s.\n"
160msgstr " Siehe --%s\n" 160msgstr " Siehe --%s\n"
161 161
162#: src/lib/ecore/ecore_getopt.c:1832 162#: src/lib/ecore/ecore_getopt.c:1833
163#, c-format 163#, c-format
164msgid " See -%c.\n" 164msgid " See -%c.\n"
165msgstr " Siehe -%c\n" 165msgstr " Siehe -%c\n"
166 166
167#: src/lib/ecore/ecore_getopt.c:1873 167#: src/lib/ecore/ecore_getopt.c:1875
168#, c-format 168#, c-format
169msgid "ERROR: incorrect geometry value '%s'\n" 169msgid "ERROR: incorrect geometry value '%s'\n"
170msgstr "FEHLER: Falscher Geometriewert \"%s\"\n" 170msgstr "FEHLER: Falscher Geometriewert \"%s\"\n"
171 171
172#: src/lib/ecore/ecore_getopt.c:1900 172#: src/lib/ecore/ecore_getopt.c:1903
173#, c-format 173#, c-format
174msgid "ERROR: incorrect size value '%s'\n" 174msgid "ERROR: incorrect size value '%s'\n"
175msgstr "FEHLER: Falscher Größenwert \"%s\"\n" 175msgstr "FEHLER: Falscher Größenwert \"%s\"\n"
diff --git a/libraries/ecore/po/ecore.pot b/libraries/ecore/po/ecore.pot
index 6e15f39..69cbec8 100644
--- a/libraries/ecore/po/ecore.pot
+++ b/libraries/ecore/po/ecore.pot
@@ -6,170 +6,169 @@
6#, fuzzy 6#, fuzzy
7msgid "" 7msgid ""
8msgstr "" 8msgstr ""
9"Project-Id-Version: ecore 1.1.0\n" 9"Project-Id-Version: ecore 1.1.99.67344\n"
10"Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" 10"Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
11"POT-Creation-Date: 2011-11-16 14:38+0900\n" 11"POT-Creation-Date: 2012-01-23 23:19+1000\n"
12"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 12"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
13"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" 13"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14"Language-Team: LANGUAGE <LL@li.org>\n" 14"Language-Team: LANGUAGE <LL@li.org>\n"
15"Language: \n"
16"MIME-Version: 1.0\n" 15"MIME-Version: 1.0\n"
17"Content-Type: text/plain; charset=CHARSET\n" 16"Content-Type: text/plain; charset=CHARSET\n"
18"Content-Transfer-Encoding: 8bit\n" 17"Content-Transfer-Encoding: 8bit\n"
19 18
20#: src/lib/ecore/ecore_getopt.c:90 19#: src/lib/ecore/ecore_getopt.c:91
21msgid "Version:" 20msgid "Version:"
22msgstr "" 21msgstr ""
23 22
24#: src/lib/ecore/ecore_getopt.c:99 23#: src/lib/ecore/ecore_getopt.c:100
25msgid "Usage:" 24msgid "Usage:"
26msgstr "" 25msgstr ""
27 26
28#: src/lib/ecore/ecore_getopt.c:104 27#: src/lib/ecore/ecore_getopt.c:105
29#, c-format 28#, c-format
30msgid "%s [options]\n" 29msgid "%s [options]\n"
31msgstr "" 30msgstr ""
32 31
33#: src/lib/ecore/ecore_getopt.c:259 32#: src/lib/ecore/ecore_getopt.c:260
34msgid "Copyright:" 33msgid "Copyright:"
35msgstr "" 34msgstr ""
36 35
37#: src/lib/ecore/ecore_getopt.c:271 36#: src/lib/ecore/ecore_getopt.c:272
38msgid "License:" 37msgid "License:"
39msgstr "" 38msgstr ""
40 39
41#: src/lib/ecore/ecore_getopt.c:452 40#: src/lib/ecore/ecore_getopt.c:453
42msgid "Type: " 41msgid "Type: "
43msgstr "" 42msgstr ""
44 43
45#: src/lib/ecore/ecore_getopt.c:528 44#: src/lib/ecore/ecore_getopt.c:529
46msgid "Default: " 45msgid "Default: "
47msgstr "" 46msgstr ""
48 47
49#: src/lib/ecore/ecore_getopt.c:555 48#: src/lib/ecore/ecore_getopt.c:556
50msgid "Choices: " 49msgid "Choices: "
51msgstr "" 50msgstr ""
52 51
53#: src/lib/ecore/ecore_getopt.c:656 52#: src/lib/ecore/ecore_getopt.c:657
54msgid "Options:\n" 53msgid "Options:\n"
55msgstr "" 54msgstr ""
56 55
57#: src/lib/ecore/ecore_getopt.c:781 56#: src/lib/ecore/ecore_getopt.c:782
58#, c-format 57#, c-format
59msgid "ERROR: unknown option --%s.\n" 58msgid "ERROR: unknown option --%s.\n"
60msgstr "" 59msgstr ""
61 60
62#: src/lib/ecore/ecore_getopt.c:783 61#: src/lib/ecore/ecore_getopt.c:784
63#, c-format 62#, c-format
64msgid "ERROR: unknown option -%c.\n" 63msgid "ERROR: unknown option -%c.\n"
65msgstr "" 64msgstr ""
66 65
67#: src/lib/ecore/ecore_getopt.c:841 66#: src/lib/ecore/ecore_getopt.c:842
68msgid "ERROR: " 67msgid "ERROR: "
69msgstr "" 68msgstr ""
70 69
71#: src/lib/ecore/ecore_getopt.c:924 src/lib/ecore/ecore_getopt.c:1061 70#: src/lib/ecore/ecore_getopt.c:925 src/lib/ecore/ecore_getopt.c:1062
72#: src/lib/ecore/ecore_getopt.c:1077 src/lib/ecore/ecore_getopt.c:1092 71#: src/lib/ecore/ecore_getopt.c:1078 src/lib/ecore/ecore_getopt.c:1093
73#: src/lib/ecore/ecore_getopt.c:1109 src/lib/ecore/ecore_getopt.c:1156 72#: src/lib/ecore/ecore_getopt.c:1110 src/lib/ecore/ecore_getopt.c:1157
74#: src/lib/ecore/ecore_getopt.c:1276 src/lib/ecore/ecore_getopt.c:1317 73#: src/lib/ecore/ecore_getopt.c:1277 src/lib/ecore/ecore_getopt.c:1318
75msgid "value has no pointer set.\n" 74msgid "value has no pointer set.\n"
76msgstr "" 75msgstr ""
77 76
78#: src/lib/ecore/ecore_getopt.c:956 src/lib/ecore/ecore_getopt.c:1176 77#: src/lib/ecore/ecore_getopt.c:957 src/lib/ecore/ecore_getopt.c:1177
79#, c-format 78#, c-format
80msgid "unknown boolean value %s.\n" 79msgid "unknown boolean value %s.\n"
81msgstr "" 80msgstr ""
82 81
83#: src/lib/ecore/ecore_getopt.c:1007 src/lib/ecore/ecore_getopt.c:1264 82#: src/lib/ecore/ecore_getopt.c:1008 src/lib/ecore/ecore_getopt.c:1265
84#, c-format 83#, c-format
85msgid "invalid number format %s\n" 84msgid "invalid number format %s\n"
86msgstr "" 85msgstr ""
87 86
88#: src/lib/ecore/ecore_getopt.c:1122 87#: src/lib/ecore/ecore_getopt.c:1123
89#, c-format 88#, c-format
90msgid "invalid choice \"%s\". Valid values are: " 89msgid "invalid choice \"%s\". Valid values are: "
91msgstr "" 90msgstr ""
92 91
93#: src/lib/ecore/ecore_getopt.c:1150 92#: src/lib/ecore/ecore_getopt.c:1151
94msgid "missing parameter to append.\n" 93msgid "missing parameter to append.\n"
95msgstr "" 94msgstr ""
96 95
97#: src/lib/ecore/ecore_getopt.c:1254 96#: src/lib/ecore/ecore_getopt.c:1255
98msgid "could not parse value.\n" 97msgid "could not parse value.\n"
99msgstr "" 98msgstr ""
100 99
101#: src/lib/ecore/ecore_getopt.c:1311 100#: src/lib/ecore/ecore_getopt.c:1312
102msgid "missing parameter.\n" 101msgid "missing parameter.\n"
103msgstr "" 102msgstr ""
104 103
105#: src/lib/ecore/ecore_getopt.c:1324 104#: src/lib/ecore/ecore_getopt.c:1325
106msgid "missing callback function!\n" 105msgid "missing callback function!\n"
107msgstr "" 106msgstr ""
108 107
109#: src/lib/ecore/ecore_getopt.c:1353 108#: src/lib/ecore/ecore_getopt.c:1354
110msgid "no version was defined.\n" 109msgid "no version was defined.\n"
111msgstr "" 110msgstr ""
112 111
113#: src/lib/ecore/ecore_getopt.c:1370 112#: src/lib/ecore/ecore_getopt.c:1371
114msgid "no copyright was defined.\n" 113msgid "no copyright was defined.\n"
115msgstr "" 114msgstr ""
116 115
117#: src/lib/ecore/ecore_getopt.c:1387 116#: src/lib/ecore/ecore_getopt.c:1388
118msgid "no license was defined.\n" 117msgid "no license was defined.\n"
119msgstr "" 118msgstr ""
120 119
121#: src/lib/ecore/ecore_getopt.c:1462 120#: src/lib/ecore/ecore_getopt.c:1463
122#, c-format 121#, c-format
123msgid "ERROR: unknown option --%s, ignored.\n" 122msgid "ERROR: unknown option --%s, ignored.\n"
124msgstr "" 123msgstr ""
125 124
126#: src/lib/ecore/ecore_getopt.c:1495 125#: src/lib/ecore/ecore_getopt.c:1496
127#, c-format 126#, c-format
128msgid "ERROR: option --%s requires an argument!\n" 127msgid "ERROR: option --%s requires an argument!\n"
129msgstr "" 128msgstr ""
130 129
131#: src/lib/ecore/ecore_getopt.c:1537 130#: src/lib/ecore/ecore_getopt.c:1538
132#, c-format 131#, c-format
133msgid "ERROR: unknown option -%c, ignored.\n" 132msgid "ERROR: unknown option -%c, ignored.\n"
134msgstr "" 133msgstr ""
135 134
136#: src/lib/ecore/ecore_getopt.c:1575 135#: src/lib/ecore/ecore_getopt.c:1576
137#, c-format 136#, c-format
138msgid "ERROR: option -%c requires an argument!\n" 137msgid "ERROR: option -%c requires an argument!\n"
139msgstr "" 138msgstr ""
140 139
141#: src/lib/ecore/ecore_getopt.c:1784 140#: src/lib/ecore/ecore_getopt.c:1785
142msgid "ERROR: no parser provided.\n" 141msgid "ERROR: no parser provided.\n"
143msgstr "" 142msgstr ""
144 143
145#: src/lib/ecore/ecore_getopt.c:1789 144#: src/lib/ecore/ecore_getopt.c:1790
146msgid "ERROR: no values provided.\n" 145msgid "ERROR: no values provided.\n"
147msgstr "" 146msgstr ""
148 147
149#: src/lib/ecore/ecore_getopt.c:1798 148#: src/lib/ecore/ecore_getopt.c:1799
150msgid "ERROR: no arguments provided.\n" 149msgid "ERROR: no arguments provided.\n"
151msgstr "" 150msgstr ""
152 151
153#: src/lib/ecore/ecore_getopt.c:1824 152#: src/lib/ecore/ecore_getopt.c:1825
154msgid "ERROR: invalid options found." 153msgid "ERROR: invalid options found."
155msgstr "" 154msgstr ""
156 155
157#: src/lib/ecore/ecore_getopt.c:1830 156#: src/lib/ecore/ecore_getopt.c:1831
158#, c-format 157#, c-format
159msgid " See --%s.\n" 158msgid " See --%s.\n"
160msgstr "" 159msgstr ""
161 160
162#: src/lib/ecore/ecore_getopt.c:1832 161#: src/lib/ecore/ecore_getopt.c:1833
163#, c-format 162#, c-format
164msgid " See -%c.\n" 163msgid " See -%c.\n"
165msgstr "" 164msgstr ""
166 165
167#: src/lib/ecore/ecore_getopt.c:1873 166#: src/lib/ecore/ecore_getopt.c:1875
168#, c-format 167#, c-format
169msgid "ERROR: incorrect geometry value '%s'\n" 168msgid "ERROR: incorrect geometry value '%s'\n"
170msgstr "" 169msgstr ""
171 170
172#: src/lib/ecore/ecore_getopt.c:1900 171#: src/lib/ecore/ecore_getopt.c:1903
173#, c-format 172#, c-format
174msgid "ERROR: incorrect size value '%s'\n" 173msgid "ERROR: incorrect size value '%s'\n"
175msgstr "" 174msgstr ""
diff --git a/libraries/ecore/po/el.gmo b/libraries/ecore/po/el.gmo
index 222d020..0f2bac2 100644
--- a/libraries/ecore/po/el.gmo
+++ b/libraries/ecore/po/el.gmo
Binary files differ
diff --git a/libraries/ecore/po/el.po b/libraries/ecore/po/el.po
index b6f719d..cdf9cf3 100644
--- a/libraries/ecore/po/el.po
+++ b/libraries/ecore/po/el.po
@@ -6,169 +6,169 @@ msgid ""
6msgstr "" 6msgstr ""
7"Project-Id-Version: Ecore\n" 7"Project-Id-Version: Ecore\n"
8"Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" 8"Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
9"POT-Creation-Date: 2011-11-16 14:38+0900\n" 9"POT-Creation-Date: 2012-01-23 23:19+1000\n"
10"PO-Revision-Date: 2011-11-20 22:42+0200\n" 10"PO-Revision-Date: 2011-11-20 22:42+0200\n"
11"Last-Translator: George Rizopoulos <george.rizopoulos.1@gmail.com>\n" 11"Last-Translator: George Rizopoulos <george.rizopoulos.1@gmail.com>\n"
12"Language-Team: Greek\n" 12"Language-Team: Greek\n"
13"Language: \n"
14"MIME-Version: 1.0\n" 13"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n" 14"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n" 15"Content-Transfer-Encoding: 8bit\n"
16"Language: \n"
17 17
18#: src/lib/ecore/ecore_getopt.c:90 18#: src/lib/ecore/ecore_getopt.c:91
19msgid "Version:" 19msgid "Version:"
20msgstr "Έκδοση:" 20msgstr "Έκδοση:"
21 21
22#: src/lib/ecore/ecore_getopt.c:99 22#: src/lib/ecore/ecore_getopt.c:100
23msgid "Usage:" 23msgid "Usage:"
24msgstr "Χρήση:" 24msgstr "Χρήση:"
25 25
26#: src/lib/ecore/ecore_getopt.c:104 26#: src/lib/ecore/ecore_getopt.c:105
27#, c-format 27#, c-format
28msgid "%s [options]\n" 28msgid "%s [options]\n"
29msgstr "%s [επιλογές]\n" 29msgstr "%s [επιλογές]\n"
30 30
31#: src/lib/ecore/ecore_getopt.c:259 31#: src/lib/ecore/ecore_getopt.c:260
32msgid "Copyright:" 32msgid "Copyright:"
33msgstr "Πνευματικά δικαιώματα:" 33msgstr "Πνευματικά δικαιώματα:"
34 34
35#: src/lib/ecore/ecore_getopt.c:271 35#: src/lib/ecore/ecore_getopt.c:272
36msgid "License:" 36msgid "License:"
37msgstr "Άδεια:" 37msgstr "Άδεια:"
38 38
39#: src/lib/ecore/ecore_getopt.c:452 39#: src/lib/ecore/ecore_getopt.c:453
40msgid "Type: " 40msgid "Type: "
41msgstr "Τύπος:" 41msgstr "Τύπος:"
42 42
43#: src/lib/ecore/ecore_getopt.c:528 43#: src/lib/ecore/ecore_getopt.c:529
44msgid "Default: " 44msgid "Default: "
45msgstr "Προκαθορισμένο:" 45msgstr "Προκαθορισμένο:"
46 46
47#: src/lib/ecore/ecore_getopt.c:555 47#: src/lib/ecore/ecore_getopt.c:556
48msgid "Choices: " 48msgid "Choices: "
49msgstr "Επιλογές:" 49msgstr "Επιλογές:"
50 50
51#: src/lib/ecore/ecore_getopt.c:656 51#: src/lib/ecore/ecore_getopt.c:657
52msgid "Options:\n" 52msgid "Options:\n"
53msgstr "Επιλογές:\n" 53msgstr "Επιλογές:\n"
54 54
55#: src/lib/ecore/ecore_getopt.c:781 55#: src/lib/ecore/ecore_getopt.c:782
56#, c-format 56#, c-format
57msgid "ERROR: unknown option --%s.\n" 57msgid "ERROR: unknown option --%s.\n"
58msgstr "ΣΦΑΛΜΑ: άγνωστη επιλογή --%s.\n" 58msgstr "ΣΦΑΛΜΑ: άγνωστη επιλογή --%s.\n"
59 59
60#: src/lib/ecore/ecore_getopt.c:783 60#: src/lib/ecore/ecore_getopt.c:784
61#, c-format 61#, c-format
62msgid "ERROR: unknown option -%c.\n" 62msgid "ERROR: unknown option -%c.\n"
63msgstr "ΣΦΑΛΜΑ: άγνωστη επιλογή -%c.\n" 63msgstr "ΣΦΑΛΜΑ: άγνωστη επιλογή -%c.\n"
64 64
65#: src/lib/ecore/ecore_getopt.c:841 65#: src/lib/ecore/ecore_getopt.c:842
66msgid "ERROR: " 66msgid "ERROR: "
67msgstr "ΣΦΑΛΜΑ:" 67msgstr "ΣΦΑΛΜΑ:"
68 68
69#: src/lib/ecore/ecore_getopt.c:924 src/lib/ecore/ecore_getopt.c:1061 69#: src/lib/ecore/ecore_getopt.c:925 src/lib/ecore/ecore_getopt.c:1062
70#: src/lib/ecore/ecore_getopt.c:1077 src/lib/ecore/ecore_getopt.c:1092 70#: src/lib/ecore/ecore_getopt.c:1078 src/lib/ecore/ecore_getopt.c:1093
71#: src/lib/ecore/ecore_getopt.c:1109 src/lib/ecore/ecore_getopt.c:1156 71#: src/lib/ecore/ecore_getopt.c:1110 src/lib/ecore/ecore_getopt.c:1157
72#: src/lib/ecore/ecore_getopt.c:1276 src/lib/ecore/ecore_getopt.c:1317 72#: src/lib/ecore/ecore_getopt.c:1277 src/lib/ecore/ecore_getopt.c:1318
73msgid "value has no pointer set.\n" 73msgid "value has no pointer set.\n"
74msgstr "η τιμή δεν έχει δείκτη ορισμένο.\n" 74msgstr "η τιμή δεν έχει δείκτη ορισμένο.\n"
75 75
76#: src/lib/ecore/ecore_getopt.c:956 src/lib/ecore/ecore_getopt.c:1176 76#: src/lib/ecore/ecore_getopt.c:957 src/lib/ecore/ecore_getopt.c:1177
77#, c-format 77#, c-format
78msgid "unknown boolean value %s.\n" 78msgid "unknown boolean value %s.\n"
79msgstr "άγνωστη τιμή boolean %s.\n" 79msgstr "άγνωστη τιμή boolean %s.\n"
80 80
81#: src/lib/ecore/ecore_getopt.c:1007 src/lib/ecore/ecore_getopt.c:1264 81#: src/lib/ecore/ecore_getopt.c:1008 src/lib/ecore/ecore_getopt.c:1265
82#, c-format 82#, c-format
83msgid "invalid number format %s\n" 83msgid "invalid number format %s\n"
84msgstr "άγνωστη μορφή αριθμού %s\n" 84msgstr "άγνωστη μορφή αριθμού %s\n"
85 85
86#: src/lib/ecore/ecore_getopt.c:1122 86#: src/lib/ecore/ecore_getopt.c:1123
87#, c-format 87#, c-format
88msgid "invalid choice \"%s\". Valid values are: " 88msgid "invalid choice \"%s\". Valid values are: "
89msgstr "μη έγκυρη επιλογή \"%s\". Οι έγκυρες τιμές είναι: " 89msgstr "μη έγκυρη επιλογή \"%s\". Οι έγκυρες τιμές είναι: "
90 90
91#: src/lib/ecore/ecore_getopt.c:1150 91#: src/lib/ecore/ecore_getopt.c:1151
92msgid "missing parameter to append.\n" 92msgid "missing parameter to append.\n"
93msgstr "ελλιπής παράμετρος προς επισύναψη.\n" 93msgstr "ελλιπής παράμετρος προς επισύναψη.\n"
94 94
95#: src/lib/ecore/ecore_getopt.c:1254 95#: src/lib/ecore/ecore_getopt.c:1255
96msgid "could not parse value.\n" 96msgid "could not parse value.\n"
97msgstr "αδυναμία ανάλυσης τιμών.\n" 97msgstr "αδυναμία ανάλυσης τιμών.\n"
98 98
99#: src/lib/ecore/ecore_getopt.c:1311 99#: src/lib/ecore/ecore_getopt.c:1312
100msgid "missing parameter.\n" 100msgid "missing parameter.\n"
101msgstr "ελλιπής παράμετρος.\n" 101msgstr "ελλιπής παράμετρος.\n"
102 102
103#: src/lib/ecore/ecore_getopt.c:1324 103#: src/lib/ecore/ecore_getopt.c:1325
104msgid "missing callback function!\n" 104msgid "missing callback function!\n"
105msgstr "λείπει η λειτουργία επανάκλησης!\n" 105msgstr "λείπει η λειτουργία επανάκλησης!\n"
106 106
107#: src/lib/ecore/ecore_getopt.c:1353 107#: src/lib/ecore/ecore_getopt.c:1354
108msgid "no version was defined.\n" 108msgid "no version was defined.\n"
109msgstr "δεν έχει οριστεί έκδοση.\n" 109msgstr "δεν έχει οριστεί έκδοση.\n"
110 110
111#: src/lib/ecore/ecore_getopt.c:1370 111#: src/lib/ecore/ecore_getopt.c:1371
112msgid "no copyright was defined.\n" 112msgid "no copyright was defined.\n"
113msgstr "δεν έχουν οριστεί πνευματικά δικαιώματα.\n" 113msgstr "δεν έχουν οριστεί πνευματικά δικαιώματα.\n"
114 114
115#: src/lib/ecore/ecore_getopt.c:1387 115#: src/lib/ecore/ecore_getopt.c:1388
116msgid "no license was defined.\n" 116msgid "no license was defined.\n"
117msgstr "δεν έχει οριστεί άδεια.\n" 117msgstr "δεν έχει οριστεί άδεια.\n"
118 118
119#: src/lib/ecore/ecore_getopt.c:1462 119#: src/lib/ecore/ecore_getopt.c:1463
120#, c-format 120#, c-format
121msgid "ERROR: unknown option --%s, ignored.\n" 121msgid "ERROR: unknown option --%s, ignored.\n"
122msgstr "ΣΦΑΛΜΑ:άγνωστη επιλογή --%s, αγνοήθηκε.\n" 122msgstr "ΣΦΑΛΜΑ:άγνωστη επιλογή --%s, αγνοήθηκε.\n"
123 123
124#: src/lib/ecore/ecore_getopt.c:1495 124#: src/lib/ecore/ecore_getopt.c:1496
125#, c-format 125#, c-format
126msgid "ERROR: option --%s requires an argument!\n" 126msgid "ERROR: option --%s requires an argument!\n"
127msgstr "ΣΦΑΛΜΑ: η επιλογή --%s απαιτεί παραμέτρους!\n" 127msgstr "ΣΦΑΛΜΑ: η επιλογή --%s απαιτεί παραμέτρους!\n"
128 128
129#: src/lib/ecore/ecore_getopt.c:1537 129#: src/lib/ecore/ecore_getopt.c:1538
130#, c-format 130#, c-format
131msgid "ERROR: unknown option -%c, ignored.\n" 131msgid "ERROR: unknown option -%c, ignored.\n"
132msgstr "ΣΦΑΛΜΑ: άγνωστη επιλογή -%c, αγνοήθηκε.\n" 132msgstr "ΣΦΑΛΜΑ: άγνωστη επιλογή -%c, αγνοήθηκε.\n"
133 133
134#: src/lib/ecore/ecore_getopt.c:1575 134#: src/lib/ecore/ecore_getopt.c:1576
135#, c-format 135#, c-format
136msgid "ERROR: option -%c requires an argument!\n" 136msgid "ERROR: option -%c requires an argument!\n"
137msgstr "ΣΦAΛΜΑ: η επιλογή -%c απαιτεί μία παράμετρο!\n" 137msgstr "ΣΦAΛΜΑ: η επιλογή -%c απαιτεί μία παράμετρο!\n"
138 138
139#: src/lib/ecore/ecore_getopt.c:1784 139#: src/lib/ecore/ecore_getopt.c:1785
140#, fuzzy 140#, fuzzy
141msgid "ERROR: no parser provided.\n" 141msgid "ERROR: no parser provided.\n"
142msgstr "ΣΦΑΛΜΑ:δεν παρέχεται αναλυτής.\n" 142msgstr "ΣΦΑΛΜΑ:δεν παρέχεται αναλυτής.\n"
143 143
144#: src/lib/ecore/ecore_getopt.c:1789 144#: src/lib/ecore/ecore_getopt.c:1790
145msgid "ERROR: no values provided.\n" 145msgid "ERROR: no values provided.\n"
146msgstr "ΣΦΑΛΜΑ:δεν έχουν δοθεί τιμές.\n" 146msgstr "ΣΦΑΛΜΑ:δεν έχουν δοθεί τιμές.\n"
147 147
148#: src/lib/ecore/ecore_getopt.c:1798 148#: src/lib/ecore/ecore_getopt.c:1799
149msgid "ERROR: no arguments provided.\n" 149msgid "ERROR: no arguments provided.\n"
150msgstr "ΣΦΑΛΜΑ:δεν έχουν δοθεί παράμετροι.\n" 150msgstr "ΣΦΑΛΜΑ:δεν έχουν δοθεί παράμετροι.\n"
151 151
152#: src/lib/ecore/ecore_getopt.c:1824 152#: src/lib/ecore/ecore_getopt.c:1825
153msgid "ERROR: invalid options found." 153msgid "ERROR: invalid options found."
154msgstr "ΣΦΑΛΜΑ: βρέθηκαν μη έγκυρες επιλογές." 154msgstr "ΣΦΑΛΜΑ: βρέθηκαν μη έγκυρες επιλογές."
155 155
156#: src/lib/ecore/ecore_getopt.c:1830 156#: src/lib/ecore/ecore_getopt.c:1831
157#, c-format 157#, c-format
158msgid " See --%s.\n" 158msgid " See --%s.\n"
159msgstr " Δείτε --%s.\n" 159msgstr " Δείτε --%s.\n"
160 160
161#: src/lib/ecore/ecore_getopt.c:1832 161#: src/lib/ecore/ecore_getopt.c:1833
162#, c-format 162#, c-format
163msgid " See -%c.\n" 163msgid " See -%c.\n"
164msgstr " Δείτε -%c.\n" 164msgstr " Δείτε -%c.\n"
165 165
166#: src/lib/ecore/ecore_getopt.c:1873 166#: src/lib/ecore/ecore_getopt.c:1875
167#, c-format 167#, c-format
168msgid "ERROR: incorrect geometry value '%s'\n" 168msgid "ERROR: incorrect geometry value '%s'\n"
169msgstr "ΣΦΑΛΜΑ: μη έγκυρη γεωμετρική τιμή '%s'\n" 169msgstr "ΣΦΑΛΜΑ: μη έγκυρη γεωμετρική τιμή '%s'\n"
170 170
171#: src/lib/ecore/ecore_getopt.c:1900 171#: src/lib/ecore/ecore_getopt.c:1903
172#, c-format 172#, c-format
173msgid "ERROR: incorrect size value '%s'\n" 173msgid "ERROR: incorrect size value '%s'\n"
174msgstr "ΣΦΑΛΜΑ: μη έγκυρη τιμή μεγέθους '%s'\n" 174msgstr "ΣΦΑΛΜΑ: μη έγκυρη τιμή μεγέθους '%s'\n"
diff --git a/libraries/ecore/po/fr.gmo b/libraries/ecore/po/fr.gmo
index a7ca470..2669256 100644
--- a/libraries/ecore/po/fr.gmo
+++ b/libraries/ecore/po/fr.gmo
Binary files differ
diff --git a/libraries/ecore/po/fr.po b/libraries/ecore/po/fr.po
index dc95281..6c752c1 100644
--- a/libraries/ecore/po/fr.po
+++ b/libraries/ecore/po/fr.po
@@ -6,172 +6,172 @@ msgid ""
6msgstr "" 6msgstr ""
7"Project-Id-Version: Ecore\n" 7"Project-Id-Version: Ecore\n"
8"Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" 8"Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
9"POT-Creation-Date: 2011-11-16 14:38+0900\n" 9"POT-Creation-Date: 2012-01-23 23:19+1000\n"
10"PO-Revision-Date: 2010-07-11 11:01+0400\n" 10"PO-Revision-Date: 2010-07-11 11:01+0400\n"
11"Last-Translator: batden <batden@orange.fr>\n" 11"Last-Translator: batden <batden@orange.fr>\n"
12"Language-Team: Enlightenment French Team <pourunmondesansgourou@gmail.com>\n" 12"Language-Team: Enlightenment French Team <pourunmondesansgourou@gmail.com>\n"
13"Language: \n"
14"MIME-Version: 1.0\n" 13"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=utf-8\n" 14"Content-Type: text/plain; charset=utf-8\n"
16"Content-Transfer-Encoding: 8bit\n" 15"Content-Transfer-Encoding: 8bit\n"
16"Language: \n"
17"Plural-Forms: nplurals=2; plural=n>1;\n" 17"Plural-Forms: nplurals=2; plural=n>1;\n"
18"X-Poedit-Language: French\n" 18"X-Poedit-Language: French\n"
19"X-Poedit-Country: FRANCE\n" 19"X-Poedit-Country: FRANCE\n"
20"X-Poedit-SourceCharset: utf-8\n" 20"X-Poedit-SourceCharset: utf-8\n"
21 21
22#: src/lib/ecore/ecore_getopt.c:90 22#: src/lib/ecore/ecore_getopt.c:91
23msgid "Version:" 23msgid "Version:"
24msgstr "Version :" 24msgstr "Version :"
25 25
26#: src/lib/ecore/ecore_getopt.c:99 26#: src/lib/ecore/ecore_getopt.c:100
27msgid "Usage:" 27msgid "Usage:"
28msgstr "Usage :" 28msgstr "Usage :"
29 29
30#: src/lib/ecore/ecore_getopt.c:104 30#: src/lib/ecore/ecore_getopt.c:105
31#, c-format 31#, c-format
32msgid "%s [options]\n" 32msgid "%s [options]\n"
33msgstr "%s [options]\n" 33msgstr "%s [options]\n"
34 34
35#: src/lib/ecore/ecore_getopt.c:259 35#: src/lib/ecore/ecore_getopt.c:260
36msgid "Copyright:" 36msgid "Copyright:"
37msgstr "Copyright :" 37msgstr "Copyright :"
38 38
39#: src/lib/ecore/ecore_getopt.c:271 39#: src/lib/ecore/ecore_getopt.c:272
40msgid "License:" 40msgid "License:"
41msgstr "Licence :" 41msgstr "Licence :"
42 42
43#: src/lib/ecore/ecore_getopt.c:452 43#: src/lib/ecore/ecore_getopt.c:453
44msgid "Type: " 44msgid "Type: "
45msgstr "Type : " 45msgstr "Type : "
46 46
47#: src/lib/ecore/ecore_getopt.c:528 47#: src/lib/ecore/ecore_getopt.c:529
48msgid "Default: " 48msgid "Default: "
49msgstr "Par défaut :" 49msgstr "Par défaut :"
50 50
51#: src/lib/ecore/ecore_getopt.c:555 51#: src/lib/ecore/ecore_getopt.c:556
52msgid "Choices: " 52msgid "Choices: "
53msgstr "Choix :" 53msgstr "Choix :"
54 54
55#: src/lib/ecore/ecore_getopt.c:656 55#: src/lib/ecore/ecore_getopt.c:657
56msgid "Options:\n" 56msgid "Options:\n"
57msgstr "Options :\n" 57msgstr "Options :\n"
58 58
59#: src/lib/ecore/ecore_getopt.c:781 59#: src/lib/ecore/ecore_getopt.c:782
60#, c-format 60#, c-format
61msgid "ERROR: unknown option --%s.\n" 61msgid "ERROR: unknown option --%s.\n"
62msgstr "ERREUR : option inconnue --%s.\n" 62msgstr "ERREUR : option inconnue --%s.\n"
63 63
64#: src/lib/ecore/ecore_getopt.c:783 64#: src/lib/ecore/ecore_getopt.c:784
65#, c-format 65#, c-format
66msgid "ERROR: unknown option -%c.\n" 66msgid "ERROR: unknown option -%c.\n"
67msgstr "ERREUR : option inconnue -%c.\n" 67msgstr "ERREUR : option inconnue -%c.\n"
68 68
69#: src/lib/ecore/ecore_getopt.c:841 69#: src/lib/ecore/ecore_getopt.c:842
70msgid "ERROR: " 70msgid "ERROR: "
71msgstr "ERREUR :" 71msgstr "ERREUR :"
72 72
73#: src/lib/ecore/ecore_getopt.c:924 src/lib/ecore/ecore_getopt.c:1061 73#: src/lib/ecore/ecore_getopt.c:925 src/lib/ecore/ecore_getopt.c:1062
74#: src/lib/ecore/ecore_getopt.c:1077 src/lib/ecore/ecore_getopt.c:1092 74#: src/lib/ecore/ecore_getopt.c:1078 src/lib/ecore/ecore_getopt.c:1093
75#: src/lib/ecore/ecore_getopt.c:1109 src/lib/ecore/ecore_getopt.c:1156 75#: src/lib/ecore/ecore_getopt.c:1110 src/lib/ecore/ecore_getopt.c:1157
76#: src/lib/ecore/ecore_getopt.c:1276 src/lib/ecore/ecore_getopt.c:1317 76#: src/lib/ecore/ecore_getopt.c:1277 src/lib/ecore/ecore_getopt.c:1318
77msgid "value has no pointer set.\n" 77msgid "value has no pointer set.\n"
78msgstr "la valeur n'a aucun pointeur défini.\n" 78msgstr "la valeur n'a aucun pointeur défini.\n"
79 79
80#: src/lib/ecore/ecore_getopt.c:956 src/lib/ecore/ecore_getopt.c:1176 80#: src/lib/ecore/ecore_getopt.c:957 src/lib/ecore/ecore_getopt.c:1177
81#, c-format 81#, c-format
82msgid "unknown boolean value %s.\n" 82msgid "unknown boolean value %s.\n"
83msgstr "valeur booléenne inconnue %s.\n" 83msgstr "valeur booléenne inconnue %s.\n"
84 84
85#: src/lib/ecore/ecore_getopt.c:1007 src/lib/ecore/ecore_getopt.c:1264 85#: src/lib/ecore/ecore_getopt.c:1008 src/lib/ecore/ecore_getopt.c:1265
86#, c-format 86#, c-format
87msgid "invalid number format %s\n" 87msgid "invalid number format %s\n"
88msgstr "format du nombre non valide %s\n" 88msgstr "format du nombre non valide %s\n"
89 89
90#: src/lib/ecore/ecore_getopt.c:1122 90#: src/lib/ecore/ecore_getopt.c:1123
91#, c-format 91#, c-format
92msgid "invalid choice \"%s\". Valid values are: " 92msgid "invalid choice \"%s\". Valid values are: "
93msgstr "choix non valide « %s ». Les valeurs valides sont : " 93msgstr "choix non valide « %s ». Les valeurs valides sont : "
94 94
95#: src/lib/ecore/ecore_getopt.c:1150 95#: src/lib/ecore/ecore_getopt.c:1151
96msgid "missing parameter to append.\n" 96msgid "missing parameter to append.\n"
97msgstr "paramètre manquant à ajouter.\n" 97msgstr "paramètre manquant à ajouter.\n"
98 98
99#: src/lib/ecore/ecore_getopt.c:1254 99#: src/lib/ecore/ecore_getopt.c:1255
100msgid "could not parse value.\n" 100msgid "could not parse value.\n"
101msgstr "analyse de la valeur impossible.\n" 101msgstr "analyse de la valeur impossible.\n"
102 102
103#: src/lib/ecore/ecore_getopt.c:1311 103#: src/lib/ecore/ecore_getopt.c:1312
104msgid "missing parameter.\n" 104msgid "missing parameter.\n"
105msgstr "paramètre manquant.\n" 105msgstr "paramètre manquant.\n"
106 106
107#: src/lib/ecore/ecore_getopt.c:1324 107#: src/lib/ecore/ecore_getopt.c:1325
108msgid "missing callback function!\n" 108msgid "missing callback function!\n"
109msgstr "fonction de rappel manquante !\n" 109msgstr "fonction de rappel manquante !\n"
110 110
111#: src/lib/ecore/ecore_getopt.c:1353 111#: src/lib/ecore/ecore_getopt.c:1354
112msgid "no version was defined.\n" 112msgid "no version was defined.\n"
113msgstr "aucune version n'est définie.\n" 113msgstr "aucune version n'est définie.\n"
114 114
115#: src/lib/ecore/ecore_getopt.c:1370 115#: src/lib/ecore/ecore_getopt.c:1371
116msgid "no copyright was defined.\n" 116msgid "no copyright was defined.\n"
117msgstr "aucun copyright n'est défini.\n" 117msgstr "aucun copyright n'est défini.\n"
118 118
119#: src/lib/ecore/ecore_getopt.c:1387 119#: src/lib/ecore/ecore_getopt.c:1388
120msgid "no license was defined.\n" 120msgid "no license was defined.\n"
121msgstr "aucune licence n'est définie.\n" 121msgstr "aucune licence n'est définie.\n"
122 122
123#: src/lib/ecore/ecore_getopt.c:1462 123#: src/lib/ecore/ecore_getopt.c:1463
124#, c-format 124#, c-format
125msgid "ERROR: unknown option --%s, ignored.\n" 125msgid "ERROR: unknown option --%s, ignored.\n"
126msgstr "ERREUR : option inconnue --%s, non prise en compte.\n" 126msgstr "ERREUR : option inconnue --%s, non prise en compte.\n"
127 127
128#: src/lib/ecore/ecore_getopt.c:1495 128#: src/lib/ecore/ecore_getopt.c:1496
129#, c-format 129#, c-format
130msgid "ERROR: option --%s requires an argument!\n" 130msgid "ERROR: option --%s requires an argument!\n"
131msgstr "ERREUR : l'option --%s requiert un argument !\n" 131msgstr "ERREUR : l'option --%s requiert un argument !\n"
132 132
133#: src/lib/ecore/ecore_getopt.c:1537 133#: src/lib/ecore/ecore_getopt.c:1538
134#, c-format 134#, c-format
135msgid "ERROR: unknown option -%c, ignored.\n" 135msgid "ERROR: unknown option -%c, ignored.\n"
136msgstr "ERREUR : option inconnue -%c, non prise en compte.\n" 136msgstr "ERREUR : option inconnue -%c, non prise en compte.\n"
137 137
138#: src/lib/ecore/ecore_getopt.c:1575 138#: src/lib/ecore/ecore_getopt.c:1576
139#, c-format 139#, c-format
140msgid "ERROR: option -%c requires an argument!\n" 140msgid "ERROR: option -%c requires an argument!\n"
141msgstr "ERREUR : l'option -%c requiert un argument !\n" 141msgstr "ERREUR : l'option -%c requiert un argument !\n"
142 142
143#: src/lib/ecore/ecore_getopt.c:1784 143#: src/lib/ecore/ecore_getopt.c:1785
144msgid "ERROR: no parser provided.\n" 144msgid "ERROR: no parser provided.\n"
145msgstr "ERREUR : aucun analyseur n'est fourni.\n" 145msgstr "ERREUR : aucun analyseur n'est fourni.\n"
146 146
147#: src/lib/ecore/ecore_getopt.c:1789 147#: src/lib/ecore/ecore_getopt.c:1790
148msgid "ERROR: no values provided.\n" 148msgid "ERROR: no values provided.\n"
149msgstr "ERREUR : aucune valeur n'est fournie.\n" 149msgstr "ERREUR : aucune valeur n'est fournie.\n"
150 150
151#: src/lib/ecore/ecore_getopt.c:1798 151#: src/lib/ecore/ecore_getopt.c:1799
152msgid "ERROR: no arguments provided.\n" 152msgid "ERROR: no arguments provided.\n"
153msgstr "ERREUR : aucun argument n'est fourni.\n" 153msgstr "ERREUR : aucun argument n'est fourni.\n"
154 154
155#: src/lib/ecore/ecore_getopt.c:1824 155#: src/lib/ecore/ecore_getopt.c:1825
156msgid "ERROR: invalid options found." 156msgid "ERROR: invalid options found."
157msgstr "ERREUR : options non valides détectées." 157msgstr "ERREUR : options non valides détectées."
158 158
159#: src/lib/ecore/ecore_getopt.c:1830 159#: src/lib/ecore/ecore_getopt.c:1831
160#, c-format 160#, c-format
161msgid " See --%s.\n" 161msgid " See --%s.\n"
162msgstr " Voir --%s.\n" 162msgstr " Voir --%s.\n"
163 163
164#: src/lib/ecore/ecore_getopt.c:1832 164#: src/lib/ecore/ecore_getopt.c:1833
165#, c-format 165#, c-format
166msgid " See -%c.\n" 166msgid " See -%c.\n"
167msgstr " Voir -%c.\n" 167msgstr " Voir -%c.\n"
168 168
169#: src/lib/ecore/ecore_getopt.c:1873 169#: src/lib/ecore/ecore_getopt.c:1875
170#, c-format 170#, c-format
171msgid "ERROR: incorrect geometry value '%s'\n" 171msgid "ERROR: incorrect geometry value '%s'\n"
172msgstr "ERREUR : valeur géométrique incorrecte « %s »\n" 172msgstr "ERREUR : valeur géométrique incorrecte « %s »\n"
173 173
174#: src/lib/ecore/ecore_getopt.c:1900 174#: src/lib/ecore/ecore_getopt.c:1903
175#, c-format 175#, c-format
176msgid "ERROR: incorrect size value '%s'\n" 176msgid "ERROR: incorrect size value '%s'\n"
177msgstr "ERREUR : valeur de taille incorrecte « %s »\n" 177msgstr "ERREUR : valeur de taille incorrecte « %s »\n"
diff --git a/libraries/ecore/po/it.gmo b/libraries/ecore/po/it.gmo
index a8e6e47..3361b47 100644
--- a/libraries/ecore/po/it.gmo
+++ b/libraries/ecore/po/it.gmo
Binary files differ
diff --git a/libraries/ecore/po/it.po b/libraries/ecore/po/it.po
index 51458f3..b4ff61d 100644
--- a/libraries/ecore/po/it.po
+++ b/libraries/ecore/po/it.po
@@ -6,168 +6,168 @@ msgid ""
6msgstr "" 6msgstr ""
7"Project-Id-Version: Ecore\n" 7"Project-Id-Version: Ecore\n"
8"Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" 8"Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
9"POT-Creation-Date: 2011-11-16 14:38+0900\n" 9"POT-Creation-Date: 2012-01-23 23:19+1000\n"
10"PO-Revision-Date: 2009-10-27 19:36+0100\n" 10"PO-Revision-Date: 2009-10-27 19:36+0100\n"
11"Last-Translator: quaker66 <quaker66@gmail.com>\n" 11"Last-Translator: quaker66 <quaker66@gmail.com>\n"
12"Language-Team: none\n" 12"Language-Team: none\n"
13"Language: \n"
14"MIME-Version: 1.0\n" 13"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n" 14"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n" 15"Content-Transfer-Encoding: 8bit\n"
16"Language: \n"
17 17
18#: src/lib/ecore/ecore_getopt.c:90 18#: src/lib/ecore/ecore_getopt.c:91
19msgid "Version:" 19msgid "Version:"
20msgstr "Versione:" 20msgstr "Versione:"
21 21
22#: src/lib/ecore/ecore_getopt.c:99 22#: src/lib/ecore/ecore_getopt.c:100
23msgid "Usage:" 23msgid "Usage:"
24msgstr "Uso:" 24msgstr "Uso:"
25 25
26#: src/lib/ecore/ecore_getopt.c:104 26#: src/lib/ecore/ecore_getopt.c:105
27#, c-format 27#, c-format
28msgid "%s [options]\n" 28msgid "%s [options]\n"
29msgstr "%s [opzioni]\n" 29msgstr "%s [opzioni]\n"
30 30
31#: src/lib/ecore/ecore_getopt.c:259 31#: src/lib/ecore/ecore_getopt.c:260
32msgid "Copyright:" 32msgid "Copyright:"
33msgstr "Copyright:" 33msgstr "Copyright:"
34 34
35#: src/lib/ecore/ecore_getopt.c:271 35#: src/lib/ecore/ecore_getopt.c:272
36msgid "License:" 36msgid "License:"
37msgstr "Licenza:" 37msgstr "Licenza:"
38 38
39#: src/lib/ecore/ecore_getopt.c:452 39#: src/lib/ecore/ecore_getopt.c:453
40msgid "Type: " 40msgid "Type: "
41msgstr "Tipo: " 41msgstr "Tipo: "
42 42
43#: src/lib/ecore/ecore_getopt.c:528 43#: src/lib/ecore/ecore_getopt.c:529
44msgid "Default: " 44msgid "Default: "
45msgstr "Predefinito:" 45msgstr "Predefinito:"
46 46
47#: src/lib/ecore/ecore_getopt.c:555 47#: src/lib/ecore/ecore_getopt.c:556
48msgid "Choices: " 48msgid "Choices: "
49msgstr "Scelte:" 49msgstr "Scelte:"
50 50
51#: src/lib/ecore/ecore_getopt.c:656 51#: src/lib/ecore/ecore_getopt.c:657
52msgid "Options:\n" 52msgid "Options:\n"
53msgstr "Opzioni:\n" 53msgstr "Opzioni:\n"
54 54
55#: src/lib/ecore/ecore_getopt.c:781 55#: src/lib/ecore/ecore_getopt.c:782
56#, c-format 56#, c-format
57msgid "ERROR: unknown option --%s.\n" 57msgid "ERROR: unknown option --%s.\n"
58msgstr "ERRORE: opzione sconosciuta --%s.\n" 58msgstr "ERRORE: opzione sconosciuta --%s.\n"
59 59
60#: src/lib/ecore/ecore_getopt.c:783 60#: src/lib/ecore/ecore_getopt.c:784
61#, c-format 61#, c-format
62msgid "ERROR: unknown option -%c.\n" 62msgid "ERROR: unknown option -%c.\n"
63msgstr "ERRORE: opzione sconosciuta -%c.\n" 63msgstr "ERRORE: opzione sconosciuta -%c.\n"
64 64
65#: src/lib/ecore/ecore_getopt.c:841 65#: src/lib/ecore/ecore_getopt.c:842
66msgid "ERROR: " 66msgid "ERROR: "
67msgstr "ERRORE:" 67msgstr "ERRORE:"
68 68
69#: src/lib/ecore/ecore_getopt.c:924 src/lib/ecore/ecore_getopt.c:1061 69#: src/lib/ecore/ecore_getopt.c:925 src/lib/ecore/ecore_getopt.c:1062
70#: src/lib/ecore/ecore_getopt.c:1077 src/lib/ecore/ecore_getopt.c:1092 70#: src/lib/ecore/ecore_getopt.c:1078 src/lib/ecore/ecore_getopt.c:1093
71#: src/lib/ecore/ecore_getopt.c:1109 src/lib/ecore/ecore_getopt.c:1156 71#: src/lib/ecore/ecore_getopt.c:1110 src/lib/ecore/ecore_getopt.c:1157
72#: src/lib/ecore/ecore_getopt.c:1276 src/lib/ecore/ecore_getopt.c:1317 72#: src/lib/ecore/ecore_getopt.c:1277 src/lib/ecore/ecore_getopt.c:1318
73msgid "value has no pointer set.\n" 73msgid "value has no pointer set.\n"
74msgstr "il valore non ha puntatori impostati.\n" 74msgstr "il valore non ha puntatori impostati.\n"
75 75
76#: src/lib/ecore/ecore_getopt.c:956 src/lib/ecore/ecore_getopt.c:1176 76#: src/lib/ecore/ecore_getopt.c:957 src/lib/ecore/ecore_getopt.c:1177
77#, c-format 77#, c-format
78msgid "unknown boolean value %s.\n" 78msgid "unknown boolean value %s.\n"
79msgstr "valore booleano sconosciuto %s.\n" 79msgstr "valore booleano sconosciuto %s.\n"
80 80
81#: src/lib/ecore/ecore_getopt.c:1007 src/lib/ecore/ecore_getopt.c:1264 81#: src/lib/ecore/ecore_getopt.c:1008 src/lib/ecore/ecore_getopt.c:1265
82#, c-format 82#, c-format
83msgid "invalid number format %s\n" 83msgid "invalid number format %s\n"
84msgstr "formato numero non valido %s\n" 84msgstr "formato numero non valido %s\n"
85 85
86#: src/lib/ecore/ecore_getopt.c:1122 86#: src/lib/ecore/ecore_getopt.c:1123
87#, c-format 87#, c-format
88msgid "invalid choice \"%s\". Valid values are: " 88msgid "invalid choice \"%s\". Valid values are: "
89msgstr "scelta non valida \"%s\". I valori ammessi sono: " 89msgstr "scelta non valida \"%s\". I valori ammessi sono: "
90 90
91#: src/lib/ecore/ecore_getopt.c:1150 91#: src/lib/ecore/ecore_getopt.c:1151
92msgid "missing parameter to append.\n" 92msgid "missing parameter to append.\n"
93msgstr "parametro da appendere mancante.\n" 93msgstr "parametro da appendere mancante.\n"
94 94
95#: src/lib/ecore/ecore_getopt.c:1254 95#: src/lib/ecore/ecore_getopt.c:1255
96msgid "could not parse value.\n" 96msgid "could not parse value.\n"
97msgstr "impossibile il parsing del valore.\n" 97msgstr "impossibile il parsing del valore.\n"
98 98
99#: src/lib/ecore/ecore_getopt.c:1311 99#: src/lib/ecore/ecore_getopt.c:1312
100msgid "missing parameter.\n" 100msgid "missing parameter.\n"
101msgstr "parametro mancante.\n" 101msgstr "parametro mancante.\n"
102 102
103#: src/lib/ecore/ecore_getopt.c:1324 103#: src/lib/ecore/ecore_getopt.c:1325
104msgid "missing callback function!\n" 104msgid "missing callback function!\n"
105msgstr "funzione callback mancante!\n" 105msgstr "funzione callback mancante!\n"
106 106
107#: src/lib/ecore/ecore_getopt.c:1353 107#: src/lib/ecore/ecore_getopt.c:1354
108msgid "no version was defined.\n" 108msgid "no version was defined.\n"
109msgstr "nessuna versione definita.\n" 109msgstr "nessuna versione definita.\n"
110 110
111#: src/lib/ecore/ecore_getopt.c:1370 111#: src/lib/ecore/ecore_getopt.c:1371
112msgid "no copyright was defined.\n" 112msgid "no copyright was defined.\n"
113msgstr "nessun copyright definito.\n" 113msgstr "nessun copyright definito.\n"
114 114
115#: src/lib/ecore/ecore_getopt.c:1387 115#: src/lib/ecore/ecore_getopt.c:1388
116msgid "no license was defined.\n" 116msgid "no license was defined.\n"
117msgstr "nessuna licenza definita.\n" 117msgstr "nessuna licenza definita.\n"
118 118
119#: src/lib/ecore/ecore_getopt.c:1462 119#: src/lib/ecore/ecore_getopt.c:1463
120#, c-format 120#, c-format
121msgid "ERROR: unknown option --%s, ignored.\n" 121msgid "ERROR: unknown option --%s, ignored.\n"
122msgstr "ERRORE: opzione sconosciuta --%s, ignorata.\n" 122msgstr "ERRORE: opzione sconosciuta --%s, ignorata.\n"
123 123
124#: src/lib/ecore/ecore_getopt.c:1495 124#: src/lib/ecore/ecore_getopt.c:1496
125#, c-format 125#, c-format
126msgid "ERROR: option --%s requires an argument!\n" 126msgid "ERROR: option --%s requires an argument!\n"
127msgstr "ERRORE: l'opzione --%s richiede un argomento!\n" 127msgstr "ERRORE: l'opzione --%s richiede un argomento!\n"
128 128
129#: src/lib/ecore/ecore_getopt.c:1537 129#: src/lib/ecore/ecore_getopt.c:1538
130#, c-format 130#, c-format
131msgid "ERROR: unknown option -%c, ignored.\n" 131msgid "ERROR: unknown option -%c, ignored.\n"
132msgstr "ERRORE: opzione sconosciuta -%c, ignorata.\n" 132msgstr "ERRORE: opzione sconosciuta -%c, ignorata.\n"
133 133
134#: src/lib/ecore/ecore_getopt.c:1575 134#: src/lib/ecore/ecore_getopt.c:1576
135#, c-format 135#, c-format
136msgid "ERROR: option -%c requires an argument!\n" 136msgid "ERROR: option -%c requires an argument!\n"
137msgstr "ERRORE: l'opzione -%c richiede un argomento!\n" 137msgstr "ERRORE: l'opzione -%c richiede un argomento!\n"
138 138
139#: src/lib/ecore/ecore_getopt.c:1784 139#: src/lib/ecore/ecore_getopt.c:1785
140msgid "ERROR: no parser provided.\n" 140msgid "ERROR: no parser provided.\n"
141msgstr "ERRORE: nessun parser fornito.\n" 141msgstr "ERRORE: nessun parser fornito.\n"
142 142
143#: src/lib/ecore/ecore_getopt.c:1789 143#: src/lib/ecore/ecore_getopt.c:1790
144msgid "ERROR: no values provided.\n" 144msgid "ERROR: no values provided.\n"
145msgstr "ERRORE: nessun valore fornito.\n" 145msgstr "ERRORE: nessun valore fornito.\n"
146 146
147#: src/lib/ecore/ecore_getopt.c:1798 147#: src/lib/ecore/ecore_getopt.c:1799
148msgid "ERROR: no arguments provided.\n" 148msgid "ERROR: no arguments provided.\n"
149msgstr "ERRORE: nessun argomento fornito.\n" 149msgstr "ERRORE: nessun argomento fornito.\n"
150 150
151#: src/lib/ecore/ecore_getopt.c:1824 151#: src/lib/ecore/ecore_getopt.c:1825
152msgid "ERROR: invalid options found." 152msgid "ERROR: invalid options found."
153msgstr "ERRORE: trovate opzioni non valide." 153msgstr "ERRORE: trovate opzioni non valide."
154 154
155#: src/lib/ecore/ecore_getopt.c:1830 155#: src/lib/ecore/ecore_getopt.c:1831
156#, c-format 156#, c-format
157msgid " See --%s.\n" 157msgid " See --%s.\n"
158msgstr " Vedere --%s.\n" 158msgstr " Vedere --%s.\n"
159 159
160#: src/lib/ecore/ecore_getopt.c:1832 160#: src/lib/ecore/ecore_getopt.c:1833
161#, c-format 161#, c-format
162msgid " See -%c.\n" 162msgid " See -%c.\n"
163msgstr " Vedere -%c.\n" 163msgstr " Vedere -%c.\n"
164 164
165#: src/lib/ecore/ecore_getopt.c:1873 165#: src/lib/ecore/ecore_getopt.c:1875
166#, c-format 166#, c-format
167msgid "ERROR: incorrect geometry value '%s'\n" 167msgid "ERROR: incorrect geometry value '%s'\n"
168msgstr "ERRORE: valore geometrico non corretto '%s'\n" 168msgstr "ERRORE: valore geometrico non corretto '%s'\n"
169 169
170#: src/lib/ecore/ecore_getopt.c:1900 170#: src/lib/ecore/ecore_getopt.c:1903
171#, c-format 171#, c-format
172msgid "ERROR: incorrect size value '%s'\n" 172msgid "ERROR: incorrect size value '%s'\n"
173msgstr "ERRORE: valore dimensione non corretto '%s'\n" 173msgstr "ERRORE: valore dimensione non corretto '%s'\n"
diff --git a/libraries/ecore/po/nl.gmo b/libraries/ecore/po/nl.gmo
index 5d2fef3..746f7df 100644
--- a/libraries/ecore/po/nl.gmo
+++ b/libraries/ecore/po/nl.gmo
Binary files differ
diff --git a/libraries/ecore/po/nl.po b/libraries/ecore/po/nl.po
index 34c04a9..04e3256 100644
--- a/libraries/ecore/po/nl.po
+++ b/libraries/ecore/po/nl.po
@@ -6,170 +6,170 @@ msgid ""
6msgstr "" 6msgstr ""
7"Project-Id-Version: Ecore\n" 7"Project-Id-Version: Ecore\n"
8"Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" 8"Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
9"POT-Creation-Date: 2011-11-16 14:38+0900\n" 9"POT-Creation-Date: 2012-01-23 23:19+1000\n"
10"PO-Revision-Date: 2011-09-03 15:48+0100\n" 10"PO-Revision-Date: 2011-09-03 15:48+0100\n"
11"Last-Translator: Heimen Stoffels <vistausss@gmail.com>\n" 11"Last-Translator: Heimen Stoffels <vistausss@gmail.com>\n"
12"Language-Team: <vistausss@gmail.com>\n" 12"Language-Team: <vistausss@gmail.com>\n"
13"Language: \n"
14"MIME-Version: 1.0\n" 13"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n" 14"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n" 15"Content-Transfer-Encoding: 8bit\n"
16"Language: \n"
17"X-Poedit-Language: NL\n" 17"X-Poedit-Language: NL\n"
18"X-Poedit-Country: Nederland\n" 18"X-Poedit-Country: Nederland\n"
19 19
20#: src/lib/ecore/ecore_getopt.c:90 20#: src/lib/ecore/ecore_getopt.c:91
21msgid "Version:" 21msgid "Version:"
22msgstr "Versie:" 22msgstr "Versie:"
23 23
24#: src/lib/ecore/ecore_getopt.c:99 24#: src/lib/ecore/ecore_getopt.c:100
25msgid "Usage:" 25msgid "Usage:"
26msgstr "Gebruik:" 26msgstr "Gebruik:"
27 27
28#: src/lib/ecore/ecore_getopt.c:104 28#: src/lib/ecore/ecore_getopt.c:105
29#, c-format 29#, c-format
30msgid "%s [options]\n" 30msgid "%s [options]\n"
31msgstr "%s [opties]\n" 31msgstr "%s [opties]\n"
32 32
33#: src/lib/ecore/ecore_getopt.c:259 33#: src/lib/ecore/ecore_getopt.c:260
34msgid "Copyright:" 34msgid "Copyright:"
35msgstr "Copyright:" 35msgstr "Copyright:"
36 36
37#: src/lib/ecore/ecore_getopt.c:271 37#: src/lib/ecore/ecore_getopt.c:272
38msgid "License:" 38msgid "License:"
39msgstr "Licentie:" 39msgstr "Licentie:"
40 40
41#: src/lib/ecore/ecore_getopt.c:452 41#: src/lib/ecore/ecore_getopt.c:453
42msgid "Type: " 42msgid "Type: "
43msgstr "Type:" 43msgstr "Type:"
44 44
45#: src/lib/ecore/ecore_getopt.c:528 45#: src/lib/ecore/ecore_getopt.c:529
46msgid "Default: " 46msgid "Default: "
47msgstr "Standaard:" 47msgstr "Standaard:"
48 48
49#: src/lib/ecore/ecore_getopt.c:555 49#: src/lib/ecore/ecore_getopt.c:556
50msgid "Choices: " 50msgid "Choices: "
51msgstr "Keuzes:" 51msgstr "Keuzes:"
52 52
53#: src/lib/ecore/ecore_getopt.c:656 53#: src/lib/ecore/ecore_getopt.c:657
54msgid "Options:\n" 54msgid "Options:\n"
55msgstr "Opties:\n" 55msgstr "Opties:\n"
56 56
57#: src/lib/ecore/ecore_getopt.c:781 57#: src/lib/ecore/ecore_getopt.c:782
58#, c-format 58#, c-format
59msgid "ERROR: unknown option --%s.\n" 59msgid "ERROR: unknown option --%s.\n"
60msgstr "FOUT: onbekende optie --%s.\n" 60msgstr "FOUT: onbekende optie --%s.\n"
61 61
62#: src/lib/ecore/ecore_getopt.c:783 62#: src/lib/ecore/ecore_getopt.c:784
63#, c-format 63#, c-format
64msgid "ERROR: unknown option -%c.\n" 64msgid "ERROR: unknown option -%c.\n"
65msgstr "FOUT: onbekende optie -%c.\n" 65msgstr "FOUT: onbekende optie -%c.\n"
66 66
67#: src/lib/ecore/ecore_getopt.c:841 67#: src/lib/ecore/ecore_getopt.c:842
68msgid "ERROR: " 68msgid "ERROR: "
69msgstr "FOUT:" 69msgstr "FOUT:"
70 70
71#: src/lib/ecore/ecore_getopt.c:924 src/lib/ecore/ecore_getopt.c:1061 71#: src/lib/ecore/ecore_getopt.c:925 src/lib/ecore/ecore_getopt.c:1062
72#: src/lib/ecore/ecore_getopt.c:1077 src/lib/ecore/ecore_getopt.c:1092 72#: src/lib/ecore/ecore_getopt.c:1078 src/lib/ecore/ecore_getopt.c:1093
73#: src/lib/ecore/ecore_getopt.c:1109 src/lib/ecore/ecore_getopt.c:1156 73#: src/lib/ecore/ecore_getopt.c:1110 src/lib/ecore/ecore_getopt.c:1157
74#: src/lib/ecore/ecore_getopt.c:1276 src/lib/ecore/ecore_getopt.c:1317 74#: src/lib/ecore/ecore_getopt.c:1277 src/lib/ecore/ecore_getopt.c:1318
75msgid "value has no pointer set.\n" 75msgid "value has no pointer set.\n"
76msgstr "waarde heeft geen pointer ingsteld.\n" 76msgstr "waarde heeft geen pointer ingsteld.\n"
77 77
78#: src/lib/ecore/ecore_getopt.c:956 src/lib/ecore/ecore_getopt.c:1176 78#: src/lib/ecore/ecore_getopt.c:957 src/lib/ecore/ecore_getopt.c:1177
79#, c-format 79#, c-format
80msgid "unknown boolean value %s.\n" 80msgid "unknown boolean value %s.\n"
81msgstr "onbekende boolean-waarde %s.\n" 81msgstr "onbekende boolean-waarde %s.\n"
82 82
83#: src/lib/ecore/ecore_getopt.c:1007 src/lib/ecore/ecore_getopt.c:1264 83#: src/lib/ecore/ecore_getopt.c:1008 src/lib/ecore/ecore_getopt.c:1265
84#, c-format 84#, c-format
85msgid "invalid number format %s\n" 85msgid "invalid number format %s\n"
86msgstr "ongeldig nummerformaat %s\n" 86msgstr "ongeldig nummerformaat %s\n"
87 87
88#: src/lib/ecore/ecore_getopt.c:1122 88#: src/lib/ecore/ecore_getopt.c:1123
89#, c-format 89#, c-format
90msgid "invalid choice \"%s\". Valid values are: " 90msgid "invalid choice \"%s\". Valid values are: "
91msgstr "ongeldige keuze \"%s\". Geldige waardes zijn:" 91msgstr "ongeldige keuze \"%s\". Geldige waardes zijn:"
92 92
93#: src/lib/ecore/ecore_getopt.c:1150 93#: src/lib/ecore/ecore_getopt.c:1151
94msgid "missing parameter to append.\n" 94msgid "missing parameter to append.\n"
95msgstr "parameter om toe te wijzen ontbreekt.\n" 95msgstr "parameter om toe te wijzen ontbreekt.\n"
96 96
97#: src/lib/ecore/ecore_getopt.c:1254 97#: src/lib/ecore/ecore_getopt.c:1255
98msgid "could not parse value.\n" 98msgid "could not parse value.\n"
99msgstr "kon waarde niet doorvoeren.\n" 99msgstr "kon waarde niet doorvoeren.\n"
100 100
101#: src/lib/ecore/ecore_getopt.c:1311 101#: src/lib/ecore/ecore_getopt.c:1312
102msgid "missing parameter.\n" 102msgid "missing parameter.\n"
103msgstr "paramater ontbreekt.\n" 103msgstr "paramater ontbreekt.\n"
104 104
105#: src/lib/ecore/ecore_getopt.c:1324 105#: src/lib/ecore/ecore_getopt.c:1325
106msgid "missing callback function!\n" 106msgid "missing callback function!\n"
107msgstr "ontbrekende terugroep-functie!\n" 107msgstr "ontbrekende terugroep-functie!\n"
108 108
109#: src/lib/ecore/ecore_getopt.c:1353 109#: src/lib/ecore/ecore_getopt.c:1354
110msgid "no version was defined.\n" 110msgid "no version was defined.\n"
111msgstr "geen versie was gedefinieerd.\n" 111msgstr "geen versie was gedefinieerd.\n"
112 112
113#: src/lib/ecore/ecore_getopt.c:1370 113#: src/lib/ecore/ecore_getopt.c:1371
114msgid "no copyright was defined.\n" 114msgid "no copyright was defined.\n"
115msgstr "geen copyright was gedefinieerd.\n" 115msgstr "geen copyright was gedefinieerd.\n"
116 116
117#: src/lib/ecore/ecore_getopt.c:1387 117#: src/lib/ecore/ecore_getopt.c:1388
118msgid "no license was defined.\n" 118msgid "no license was defined.\n"
119msgstr "geen licentie was gedefinieerd.\n" 119msgstr "geen licentie was gedefinieerd.\n"
120 120
121#: src/lib/ecore/ecore_getopt.c:1462 121#: src/lib/ecore/ecore_getopt.c:1463
122#, c-format 122#, c-format
123msgid "ERROR: unknown option --%s, ignored.\n" 123msgid "ERROR: unknown option --%s, ignored.\n"
124msgstr "FOUT: onbekende optie --%s, genegeerd.\n" 124msgstr "FOUT: onbekende optie --%s, genegeerd.\n"
125 125
126#: src/lib/ecore/ecore_getopt.c:1495 126#: src/lib/ecore/ecore_getopt.c:1496
127#, c-format 127#, c-format
128msgid "ERROR: option --%s requires an argument!\n" 128msgid "ERROR: option --%s requires an argument!\n"
129msgstr "FOUT: optie --%s vereist een argument!\n" 129msgstr "FOUT: optie --%s vereist een argument!\n"
130 130
131#: src/lib/ecore/ecore_getopt.c:1537 131#: src/lib/ecore/ecore_getopt.c:1538
132#, c-format 132#, c-format
133msgid "ERROR: unknown option -%c, ignored.\n" 133msgid "ERROR: unknown option -%c, ignored.\n"
134msgstr "FOUT: onbekende opties -%c, genegeerd.\n" 134msgstr "FOUT: onbekende opties -%c, genegeerd.\n"
135 135
136#: src/lib/ecore/ecore_getopt.c:1575 136#: src/lib/ecore/ecore_getopt.c:1576
137#, c-format 137#, c-format
138msgid "ERROR: option -%c requires an argument!\n" 138msgid "ERROR: option -%c requires an argument!\n"
139msgstr "FOUT: optie -%c vereist een argument!\n" 139msgstr "FOUT: optie -%c vereist een argument!\n"
140 140
141#: src/lib/ecore/ecore_getopt.c:1784 141#: src/lib/ecore/ecore_getopt.c:1785
142msgid "ERROR: no parser provided.\n" 142msgid "ERROR: no parser provided.\n"
143msgstr "FOUT: geen doorvoerder beschikbaar gesteld.\n" 143msgstr "FOUT: geen doorvoerder beschikbaar gesteld.\n"
144 144
145#: src/lib/ecore/ecore_getopt.c:1789 145#: src/lib/ecore/ecore_getopt.c:1790
146msgid "ERROR: no values provided.\n" 146msgid "ERROR: no values provided.\n"
147msgstr "FOUT: geen waarden beschikbaar gesteld.\n" 147msgstr "FOUT: geen waarden beschikbaar gesteld.\n"
148 148
149#: src/lib/ecore/ecore_getopt.c:1798 149#: src/lib/ecore/ecore_getopt.c:1799
150msgid "ERROR: no arguments provided.\n" 150msgid "ERROR: no arguments provided.\n"
151msgstr "FOUT: geen argumenten beschibaar gesteld.\n" 151msgstr "FOUT: geen argumenten beschibaar gesteld.\n"
152 152
153#: src/lib/ecore/ecore_getopt.c:1824 153#: src/lib/ecore/ecore_getopt.c:1825
154msgid "ERROR: invalid options found." 154msgid "ERROR: invalid options found."
155msgstr "FOUT: ongeldige opties gevonden." 155msgstr "FOUT: ongeldige opties gevonden."
156 156
157#: src/lib/ecore/ecore_getopt.c:1830 157#: src/lib/ecore/ecore_getopt.c:1831
158#, c-format 158#, c-format
159msgid " See --%s.\n" 159msgid " See --%s.\n"
160msgstr "Zie --%s.\n" 160msgstr "Zie --%s.\n"
161 161
162#: src/lib/ecore/ecore_getopt.c:1832 162#: src/lib/ecore/ecore_getopt.c:1833
163#, c-format 163#, c-format
164msgid " See -%c.\n" 164msgid " See -%c.\n"
165msgstr "Zie -%c.\n" 165msgstr "Zie -%c.\n"
166 166
167#: src/lib/ecore/ecore_getopt.c:1873 167#: src/lib/ecore/ecore_getopt.c:1875
168#, c-format 168#, c-format
169msgid "ERROR: incorrect geometry value '%s'\n" 169msgid "ERROR: incorrect geometry value '%s'\n"
170msgstr "Fout: foutieve wiskundige waarde '%s'\n" 170msgstr "Fout: foutieve wiskundige waarde '%s'\n"
171 171
172#: src/lib/ecore/ecore_getopt.c:1900 172#: src/lib/ecore/ecore_getopt.c:1903
173#, c-format 173#, c-format
174msgid "ERROR: incorrect size value '%s'\n" 174msgid "ERROR: incorrect size value '%s'\n"
175msgstr "FOUT: foutieve grootte-waarden '%s'\n" 175msgstr "FOUT: foutieve grootte-waarden '%s'\n"
diff --git a/libraries/ecore/po/pt.gmo b/libraries/ecore/po/pt.gmo
index 3c883c8..617b5cb 100644
--- a/libraries/ecore/po/pt.gmo
+++ b/libraries/ecore/po/pt.gmo
Binary files differ
diff --git a/libraries/ecore/po/pt.po b/libraries/ecore/po/pt.po
index 2361e8d..b192be9 100644
--- a/libraries/ecore/po/pt.po
+++ b/libraries/ecore/po/pt.po
@@ -6,171 +6,171 @@ msgid ""
6msgstr "" 6msgstr ""
7"Project-Id-Version: ecore\n" 7"Project-Id-Version: ecore\n"
8"Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" 8"Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
9"POT-Creation-Date: 2011-11-16 14:38+0900\n" 9"POT-Creation-Date: 2012-01-23 23:19+1000\n"
10"PO-Revision-Date: 2010-10-06 12:37-0000\n" 10"PO-Revision-Date: 2010-10-06 12:37-0000\n"
11"Last-Translator: Sérgio Marques <smarquespt@gmail.com>\n" 11"Last-Translator: Sérgio Marques <smarquespt@gmail.com>\n"
12"Language-Team: \n" 12"Language-Team: \n"
13"Language: \n"
14"MIME-Version: 1.0\n" 13"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=utf-8\n" 14"Content-Type: text/plain; charset=utf-8\n"
16"Content-Transfer-Encoding: 8bit\n" 15"Content-Transfer-Encoding: 8bit\n"
16"Language: \n"
17"Plural-Forms: nplurals=2; plural=(n > 1);\n" 17"Plural-Forms: nplurals=2; plural=(n > 1);\n"
18"X-Poedit-Language: Portuguese\n" 18"X-Poedit-Language: Portuguese\n"
19"X-Poedit-Country: Portugal\n" 19"X-Poedit-Country: Portugal\n"
20 20
21#: src/lib/ecore/ecore_getopt.c:90 21#: src/lib/ecore/ecore_getopt.c:91
22msgid "Version:" 22msgid "Version:"
23msgstr "Versão:" 23msgstr "Versão:"
24 24
25#: src/lib/ecore/ecore_getopt.c:99 25#: src/lib/ecore/ecore_getopt.c:100
26msgid "Usage:" 26msgid "Usage:"
27msgstr "Utilização:" 27msgstr "Utilização:"
28 28
29#: src/lib/ecore/ecore_getopt.c:104 29#: src/lib/ecore/ecore_getopt.c:105
30#, c-format 30#, c-format
31msgid "%s [options]\n" 31msgid "%s [options]\n"
32msgstr "%s [opções]\n" 32msgstr "%s [opções]\n"
33 33
34#: src/lib/ecore/ecore_getopt.c:259 34#: src/lib/ecore/ecore_getopt.c:260
35msgid "Copyright:" 35msgid "Copyright:"
36msgstr "Direitos de autor:" 36msgstr "Direitos de autor:"
37 37
38#: src/lib/ecore/ecore_getopt.c:271 38#: src/lib/ecore/ecore_getopt.c:272
39msgid "License:" 39msgid "License:"
40msgstr "Licença:" 40msgstr "Licença:"
41 41
42#: src/lib/ecore/ecore_getopt.c:452 42#: src/lib/ecore/ecore_getopt.c:453
43msgid "Type: " 43msgid "Type: "
44msgstr "Tipo:" 44msgstr "Tipo:"
45 45
46#: src/lib/ecore/ecore_getopt.c:528 46#: src/lib/ecore/ecore_getopt.c:529
47msgid "Default: " 47msgid "Default: "
48msgstr "Omissão:" 48msgstr "Omissão:"
49 49
50#: src/lib/ecore/ecore_getopt.c:555 50#: src/lib/ecore/ecore_getopt.c:556
51msgid "Choices: " 51msgid "Choices: "
52msgstr "Escolhas:" 52msgstr "Escolhas:"
53 53
54#: src/lib/ecore/ecore_getopt.c:656 54#: src/lib/ecore/ecore_getopt.c:657
55msgid "Options:\n" 55msgid "Options:\n"
56msgstr "Opções:\n" 56msgstr "Opções:\n"
57 57
58#: src/lib/ecore/ecore_getopt.c:781 58#: src/lib/ecore/ecore_getopt.c:782
59#, c-format 59#, c-format
60msgid "ERROR: unknown option --%s.\n" 60msgid "ERROR: unknown option --%s.\n"
61msgstr "ERRO: opção desconhecida --%s.\n" 61msgstr "ERRO: opção desconhecida --%s.\n"
62 62
63#: src/lib/ecore/ecore_getopt.c:783 63#: src/lib/ecore/ecore_getopt.c:784
64#, c-format 64#, c-format
65msgid "ERROR: unknown option -%c.\n" 65msgid "ERROR: unknown option -%c.\n"
66msgstr "ERRO: opção desconhecida -%c.\n" 66msgstr "ERRO: opção desconhecida -%c.\n"
67 67
68#: src/lib/ecore/ecore_getopt.c:841 68#: src/lib/ecore/ecore_getopt.c:842
69msgid "ERROR: " 69msgid "ERROR: "
70msgstr "ERRO: " 70msgstr "ERRO: "
71 71
72#: src/lib/ecore/ecore_getopt.c:924 src/lib/ecore/ecore_getopt.c:1061 72#: src/lib/ecore/ecore_getopt.c:925 src/lib/ecore/ecore_getopt.c:1062
73#: src/lib/ecore/ecore_getopt.c:1077 src/lib/ecore/ecore_getopt.c:1092 73#: src/lib/ecore/ecore_getopt.c:1078 src/lib/ecore/ecore_getopt.c:1093
74#: src/lib/ecore/ecore_getopt.c:1109 src/lib/ecore/ecore_getopt.c:1156 74#: src/lib/ecore/ecore_getopt.c:1110 src/lib/ecore/ecore_getopt.c:1157
75#: src/lib/ecore/ecore_getopt.c:1276 src/lib/ecore/ecore_getopt.c:1317 75#: src/lib/ecore/ecore_getopt.c:1277 src/lib/ecore/ecore_getopt.c:1318
76msgid "value has no pointer set.\n" 76msgid "value has no pointer set.\n"
77msgstr "o valor não está definido.\n" 77msgstr "o valor não está definido.\n"
78 78
79#: src/lib/ecore/ecore_getopt.c:956 src/lib/ecore/ecore_getopt.c:1176 79#: src/lib/ecore/ecore_getopt.c:957 src/lib/ecore/ecore_getopt.c:1177
80#, c-format 80#, c-format
81msgid "unknown boolean value %s.\n" 81msgid "unknown boolean value %s.\n"
82msgstr "valor booleano desconhecido %s.\n" 82msgstr "valor booleano desconhecido %s.\n"
83 83
84#: src/lib/ecore/ecore_getopt.c:1007 src/lib/ecore/ecore_getopt.c:1264 84#: src/lib/ecore/ecore_getopt.c:1008 src/lib/ecore/ecore_getopt.c:1265
85#, c-format 85#, c-format
86msgid "invalid number format %s\n" 86msgid "invalid number format %s\n"
87msgstr "formato do número inválido %s\n" 87msgstr "formato do número inválido %s\n"
88 88
89#: src/lib/ecore/ecore_getopt.c:1122 89#: src/lib/ecore/ecore_getopt.c:1123
90#, c-format 90#, c-format
91msgid "invalid choice \"%s\". Valid values are: " 91msgid "invalid choice \"%s\". Valid values are: "
92msgstr "escolha inválida \"%s\". O valores possíveis são:" 92msgstr "escolha inválida \"%s\". O valores possíveis são:"
93 93
94#: src/lib/ecore/ecore_getopt.c:1150 94#: src/lib/ecore/ecore_getopt.c:1151
95msgid "missing parameter to append.\n" 95msgid "missing parameter to append.\n"
96msgstr "faltam os parâmetros a anexar.\n" 96msgstr "faltam os parâmetros a anexar.\n"
97 97
98#: src/lib/ecore/ecore_getopt.c:1254 98#: src/lib/ecore/ecore_getopt.c:1255
99msgid "could not parse value.\n" 99msgid "could not parse value.\n"
100msgstr "incapaz de analisar o valor.\n" 100msgstr "incapaz de analisar o valor.\n"
101 101
102#: src/lib/ecore/ecore_getopt.c:1311 102#: src/lib/ecore/ecore_getopt.c:1312
103msgid "missing parameter.\n" 103msgid "missing parameter.\n"
104msgstr "parâmetro em falta.\n" 104msgstr "parâmetro em falta.\n"
105 105
106#: src/lib/ecore/ecore_getopt.c:1324 106#: src/lib/ecore/ecore_getopt.c:1325
107msgid "missing callback function!\n" 107msgid "missing callback function!\n"
108msgstr "função de chamada em falta!\n" 108msgstr "função de chamada em falta!\n"
109 109
110#: src/lib/ecore/ecore_getopt.c:1353 110#: src/lib/ecore/ecore_getopt.c:1354
111msgid "no version was defined.\n" 111msgid "no version was defined.\n"
112msgstr "nenhuma versão definida.\n" 112msgstr "nenhuma versão definida.\n"
113 113
114#: src/lib/ecore/ecore_getopt.c:1370 114#: src/lib/ecore/ecore_getopt.c:1371
115msgid "no copyright was defined.\n" 115msgid "no copyright was defined.\n"
116msgstr "direitos de autor não definidos.\n" 116msgstr "direitos de autor não definidos.\n"
117 117
118#: src/lib/ecore/ecore_getopt.c:1387 118#: src/lib/ecore/ecore_getopt.c:1388
119msgid "no license was defined.\n" 119msgid "no license was defined.\n"
120msgstr "licença não definida.\n" 120msgstr "licença não definida.\n"
121 121
122#: src/lib/ecore/ecore_getopt.c:1462 122#: src/lib/ecore/ecore_getopt.c:1463
123#, c-format 123#, c-format
124msgid "ERROR: unknown option --%s, ignored.\n" 124msgid "ERROR: unknown option --%s, ignored.\n"
125msgstr "ERRO: opção desconhecida --%s, ignorada.\n" 125msgstr "ERRO: opção desconhecida --%s, ignorada.\n"
126 126
127#: src/lib/ecore/ecore_getopt.c:1495 127#: src/lib/ecore/ecore_getopt.c:1496
128#, c-format 128#, c-format
129msgid "ERROR: option --%s requires an argument!\n" 129msgid "ERROR: option --%s requires an argument!\n"
130msgstr "ERRO: a opção --%s requer um argumento!\n" 130msgstr "ERRO: a opção --%s requer um argumento!\n"
131 131
132#: src/lib/ecore/ecore_getopt.c:1537 132#: src/lib/ecore/ecore_getopt.c:1538
133#, c-format 133#, c-format
134msgid "ERROR: unknown option -%c, ignored.\n" 134msgid "ERROR: unknown option -%c, ignored.\n"
135msgstr "ERRO: opção desconhecida --%c, ignorada.\n" 135msgstr "ERRO: opção desconhecida --%c, ignorada.\n"
136 136
137#: src/lib/ecore/ecore_getopt.c:1575 137#: src/lib/ecore/ecore_getopt.c:1576
138#, c-format 138#, c-format
139msgid "ERROR: option -%c requires an argument!\n" 139msgid "ERROR: option -%c requires an argument!\n"
140msgstr "ERRO: a opção --%c requer um argumento!\n" 140msgstr "ERRO: a opção --%c requer um argumento!\n"
141 141
142#: src/lib/ecore/ecore_getopt.c:1784 142#: src/lib/ecore/ecore_getopt.c:1785
143msgid "ERROR: no parser provided.\n" 143msgid "ERROR: no parser provided.\n"
144msgstr "ERRO: nenhum analisador fornecido.\n" 144msgstr "ERRO: nenhum analisador fornecido.\n"
145 145
146#: src/lib/ecore/ecore_getopt.c:1789 146#: src/lib/ecore/ecore_getopt.c:1790
147msgid "ERROR: no values provided.\n" 147msgid "ERROR: no values provided.\n"
148msgstr "ERRO: nenhum valor fornecido.\n" 148msgstr "ERRO: nenhum valor fornecido.\n"
149 149
150#: src/lib/ecore/ecore_getopt.c:1798 150#: src/lib/ecore/ecore_getopt.c:1799
151msgid "ERROR: no arguments provided.\n" 151msgid "ERROR: no arguments provided.\n"
152msgstr "ERRO: nenhum argumento fornecido.\n" 152msgstr "ERRO: nenhum argumento fornecido.\n"
153 153
154#: src/lib/ecore/ecore_getopt.c:1824 154#: src/lib/ecore/ecore_getopt.c:1825
155msgid "ERROR: invalid options found." 155msgid "ERROR: invalid options found."
156msgstr "ERRO: encontradas opções inválidas." 156msgstr "ERRO: encontradas opções inválidas."
157 157
158#: src/lib/ecore/ecore_getopt.c:1830 158#: src/lib/ecore/ecore_getopt.c:1831
159#, c-format 159#, c-format
160msgid " See --%s.\n" 160msgid " See --%s.\n"
161msgstr " Veja --%s.\n" 161msgstr " Veja --%s.\n"
162 162
163#: src/lib/ecore/ecore_getopt.c:1832 163#: src/lib/ecore/ecore_getopt.c:1833
164#, c-format 164#, c-format
165msgid " See -%c.\n" 165msgid " See -%c.\n"
166msgstr " Veja -%c.\n" 166msgstr " Veja -%c.\n"
167 167
168#: src/lib/ecore/ecore_getopt.c:1873 168#: src/lib/ecore/ecore_getopt.c:1875
169#, c-format 169#, c-format
170msgid "ERROR: incorrect geometry value '%s'\n" 170msgid "ERROR: incorrect geometry value '%s'\n"
171msgstr "ERRO: valor geométrico incorreto \"%s\"\n" 171msgstr "ERRO: valor geométrico incorreto \"%s\"\n"
172 172
173#: src/lib/ecore/ecore_getopt.c:1900 173#: src/lib/ecore/ecore_getopt.c:1903
174#, c-format 174#, c-format
175msgid "ERROR: incorrect size value '%s'\n" 175msgid "ERROR: incorrect size value '%s'\n"
176msgstr "ERRO: tamanho incorreto \"%s\"\n" 176msgstr "ERRO: tamanho incorreto \"%s\"\n"
diff --git a/libraries/ecore/po/sl.gmo b/libraries/ecore/po/sl.gmo
index 335762f..b826ffc 100644
--- a/libraries/ecore/po/sl.gmo
+++ b/libraries/ecore/po/sl.gmo
Binary files differ
diff --git a/libraries/ecore/po/sl.po b/libraries/ecore/po/sl.po
index a27945a..fef52ac 100644
--- a/libraries/ecore/po/sl.po
+++ b/libraries/ecore/po/sl.po
@@ -8,168 +8,168 @@ msgid ""
8msgstr "" 8msgstr ""
9"Project-Id-Version: ecore 1.0\n" 9"Project-Id-Version: ecore 1.0\n"
10"Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" 10"Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
11"POT-Creation-Date: 2011-11-16 14:38+0900\n" 11"POT-Creation-Date: 2012-01-23 23:19+1000\n"
12"PO-Revision-Date: 2011-02-24 16:54+0100\n" 12"PO-Revision-Date: 2011-02-24 16:54+0100\n"
13"Last-Translator: r1to <renato.rener@gmail.com>\n" 13"Last-Translator: r1to <renato.rener@gmail.com>\n"
14"Language-Team: Slovenian <sl@li.org>\n" 14"Language-Team: Slovenian <sl@li.org>\n"
15"Language: sl\n"
16"MIME-Version: 1.0\n" 15"MIME-Version: 1.0\n"
17"Content-Type: text/plain; charset=UTF-8\n" 16"Content-Type: text/plain; charset=UTF-8\n"
18"Content-Transfer-Encoding: 8bit\n" 17"Content-Transfer-Encoding: 8bit\n"
18"Language: sl\n"
19 19
20#: src/lib/ecore/ecore_getopt.c:90 20#: src/lib/ecore/ecore_getopt.c:91
21msgid "Version:" 21msgid "Version:"
22msgstr "Različica" 22msgstr "Različica"
23 23
24#: src/lib/ecore/ecore_getopt.c:99 24#: src/lib/ecore/ecore_getopt.c:100
25msgid "Usage:" 25msgid "Usage:"
26msgstr "Uporaba:" 26msgstr "Uporaba:"
27 27
28#: src/lib/ecore/ecore_getopt.c:104 28#: src/lib/ecore/ecore_getopt.c:105
29#, c-format 29#, c-format
30msgid "%s [options]\n" 30msgid "%s [options]\n"
31msgstr "%s·[možnosti]\n" 31msgstr "%s·[možnosti]\n"
32 32
33#: src/lib/ecore/ecore_getopt.c:259 33#: src/lib/ecore/ecore_getopt.c:260
34msgid "Copyright:" 34msgid "Copyright:"
35msgstr "Avtorstvo:" 35msgstr "Avtorstvo:"
36 36
37#: src/lib/ecore/ecore_getopt.c:271 37#: src/lib/ecore/ecore_getopt.c:272
38msgid "License:" 38msgid "License:"
39msgstr "Licenca:" 39msgstr "Licenca:"
40 40
41#: src/lib/ecore/ecore_getopt.c:452 41#: src/lib/ecore/ecore_getopt.c:453
42msgid "Type: " 42msgid "Type: "
43msgstr "Vrsta:·" 43msgstr "Vrsta:·"
44 44
45#: src/lib/ecore/ecore_getopt.c:528 45#: src/lib/ecore/ecore_getopt.c:529
46msgid "Default: " 46msgid "Default: "
47msgstr "Privzeto:·" 47msgstr "Privzeto:·"
48 48
49#: src/lib/ecore/ecore_getopt.c:555 49#: src/lib/ecore/ecore_getopt.c:556
50msgid "Choices: " 50msgid "Choices: "
51msgstr "Izbire:·" 51msgstr "Izbire:·"
52 52
53#: src/lib/ecore/ecore_getopt.c:656 53#: src/lib/ecore/ecore_getopt.c:657
54msgid "Options:\n" 54msgid "Options:\n"
55msgstr "Možnosti:\n" 55msgstr "Možnosti:\n"
56 56
57#: src/lib/ecore/ecore_getopt.c:781 57#: src/lib/ecore/ecore_getopt.c:782
58#, c-format 58#, c-format
59msgid "ERROR: unknown option --%s.\n" 59msgid "ERROR: unknown option --%s.\n"
60msgstr "NAPAKA:·Neznana možnost·--%s.\n" 60msgstr "NAPAKA:·Neznana možnost·--%s.\n"
61 61
62#: src/lib/ecore/ecore_getopt.c:783 62#: src/lib/ecore/ecore_getopt.c:784
63#, c-format 63#, c-format
64msgid "ERROR: unknown option -%c.\n" 64msgid "ERROR: unknown option -%c.\n"
65msgstr "NAPAKA:·neznana možnost·-%c.\n" 65msgstr "NAPAKA:·neznana možnost·-%c.\n"
66 66
67#: src/lib/ecore/ecore_getopt.c:841 67#: src/lib/ecore/ecore_getopt.c:842
68msgid "ERROR: " 68msgid "ERROR: "
69msgstr "NAPAKA:" 69msgstr "NAPAKA:"
70 70
71#: src/lib/ecore/ecore_getopt.c:924 src/lib/ecore/ecore_getopt.c:1061 71#: src/lib/ecore/ecore_getopt.c:925 src/lib/ecore/ecore_getopt.c:1062
72#: src/lib/ecore/ecore_getopt.c:1077 src/lib/ecore/ecore_getopt.c:1092 72#: src/lib/ecore/ecore_getopt.c:1078 src/lib/ecore/ecore_getopt.c:1093
73#: src/lib/ecore/ecore_getopt.c:1109 src/lib/ecore/ecore_getopt.c:1156 73#: src/lib/ecore/ecore_getopt.c:1110 src/lib/ecore/ecore_getopt.c:1157
74#: src/lib/ecore/ecore_getopt.c:1276 src/lib/ecore/ecore_getopt.c:1317 74#: src/lib/ecore/ecore_getopt.c:1277 src/lib/ecore/ecore_getopt.c:1318
75msgid "value has no pointer set.\n" 75msgid "value has no pointer set.\n"
76msgstr "vrednost nima nastavljenega kazalnika.\n" 76msgstr "vrednost nima nastavljenega kazalnika.\n"
77 77
78#: src/lib/ecore/ecore_getopt.c:956 src/lib/ecore/ecore_getopt.c:1176 78#: src/lib/ecore/ecore_getopt.c:957 src/lib/ecore/ecore_getopt.c:1177
79#, c-format 79#, c-format
80msgid "unknown boolean value %s.\n" 80msgid "unknown boolean value %s.\n"
81msgstr "neznana Boolova vrednost·%s.\n" 81msgstr "neznana Boolova vrednost·%s.\n"
82 82
83#: src/lib/ecore/ecore_getopt.c:1007 src/lib/ecore/ecore_getopt.c:1264 83#: src/lib/ecore/ecore_getopt.c:1008 src/lib/ecore/ecore_getopt.c:1265
84#, c-format 84#, c-format
85msgid "invalid number format %s\n" 85msgid "invalid number format %s\n"
86msgstr "napačen·format števila·%s\n" 86msgstr "napačen·format števila·%s\n"
87 87
88#: src/lib/ecore/ecore_getopt.c:1122 88#: src/lib/ecore/ecore_getopt.c:1123
89#, c-format 89#, c-format
90msgid "invalid choice \"%s\". Valid values are: " 90msgid "invalid choice \"%s\". Valid values are: "
91msgstr "napačna izbira·\"%s\".·Pravilne izbire so:·" 91msgstr "napačna izbira·\"%s\".·Pravilne izbire so:·"
92 92
93#: src/lib/ecore/ecore_getopt.c:1150 93#: src/lib/ecore/ecore_getopt.c:1151
94msgid "missing parameter to append.\n" 94msgid "missing parameter to append.\n"
95msgstr "manjka·parameter·za dodajo.\n" 95msgstr "manjka·parameter·za dodajo.\n"
96 96
97#: src/lib/ecore/ecore_getopt.c:1254 97#: src/lib/ecore/ecore_getopt.c:1255
98msgid "could not parse value.\n" 98msgid "could not parse value.\n"
99msgstr "vrednosti ni bilo možno razčleniti.\n" 99msgstr "vrednosti ni bilo možno razčleniti.\n"
100 100
101#: src/lib/ecore/ecore_getopt.c:1311 101#: src/lib/ecore/ecore_getopt.c:1312
102msgid "missing parameter.\n" 102msgid "missing parameter.\n"
103msgstr "manjkajoči·parameter.\n" 103msgstr "manjkajoči·parameter.\n"
104 104
105#: src/lib/ecore/ecore_getopt.c:1324 105#: src/lib/ecore/ecore_getopt.c:1325
106msgid "missing callback function!\n" 106msgid "missing callback function!\n"
107msgstr "manjkajoča povratno-zasilna funkcija !\n" 107msgstr "manjkajoča povratno-zasilna funkcija !\n"
108 108
109#: src/lib/ecore/ecore_getopt.c:1353 109#: src/lib/ecore/ecore_getopt.c:1354
110msgid "no version was defined.\n" 110msgid "no version was defined.\n"
111msgstr "definirana ni bila nobena različica.\n" 111msgstr "definirana ni bila nobena različica.\n"
112 112
113#: src/lib/ecore/ecore_getopt.c:1370 113#: src/lib/ecore/ecore_getopt.c:1371
114msgid "no copyright was defined.\n" 114msgid "no copyright was defined.\n"
115msgstr "definirano ni bilo nobeno avtorstvo.\n" 115msgstr "definirano ni bilo nobeno avtorstvo.\n"
116 116
117#: src/lib/ecore/ecore_getopt.c:1387 117#: src/lib/ecore/ecore_getopt.c:1388
118msgid "no license was defined.\n" 118msgid "no license was defined.\n"
119msgstr "definirana ni bila nobena licenca.\n" 119msgstr "definirana ni bila nobena licenca.\n"
120 120
121#: src/lib/ecore/ecore_getopt.c:1462 121#: src/lib/ecore/ecore_getopt.c:1463
122#, c-format 122#, c-format
123msgid "ERROR: unknown option --%s, ignored.\n" 123msgid "ERROR: unknown option --%s, ignored.\n"
124msgstr "NAPAKA:·neznana možnost·--%s,·prezrto.\n" 124msgstr "NAPAKA:·neznana možnost·--%s,·prezrto.\n"
125 125
126#: src/lib/ecore/ecore_getopt.c:1495 126#: src/lib/ecore/ecore_getopt.c:1496
127#, c-format 127#, c-format
128msgid "ERROR: option --%s requires an argument!\n" 128msgid "ERROR: option --%s requires an argument!\n"
129msgstr "NAPAKA:·možnost·--%s·zahteva argument!\n" 129msgstr "NAPAKA:·možnost·--%s·zahteva argument!\n"
130 130
131#: src/lib/ecore/ecore_getopt.c:1537 131#: src/lib/ecore/ecore_getopt.c:1538
132#, c-format 132#, c-format
133msgid "ERROR: unknown option -%c, ignored.\n" 133msgid "ERROR: unknown option -%c, ignored.\n"
134msgstr "NAPAKA:·neznana možnost·-%c,·prezrto.\n" 134msgstr "NAPAKA:·neznana možnost·-%c,·prezrto.\n"
135 135
136#: src/lib/ecore/ecore_getopt.c:1575 136#: src/lib/ecore/ecore_getopt.c:1576
137#, c-format 137#, c-format
138msgid "ERROR: option -%c requires an argument!\n" 138msgid "ERROR: option -%c requires an argument!\n"
139msgstr "NAPAKA:·možnost·-%c zahteva argument!\n" 139msgstr "NAPAKA:·možnost·-%c zahteva argument!\n"
140 140
141#: src/lib/ecore/ecore_getopt.c:1784 141#: src/lib/ecore/ecore_getopt.c:1785
142msgid "ERROR: no parser provided.\n" 142msgid "ERROR: no parser provided.\n"
143msgstr "NAPAKA:·ni podan razčlenjevalnik.\n" 143msgstr "NAPAKA:·ni podan razčlenjevalnik.\n"
144 144
145#: src/lib/ecore/ecore_getopt.c:1789 145#: src/lib/ecore/ecore_getopt.c:1790
146msgid "ERROR: no values provided.\n" 146msgid "ERROR: no values provided.\n"
147msgstr "NAPAKA::·ni podanih vrednosti.\n" 147msgstr "NAPAKA::·ni podanih vrednosti.\n"
148 148
149#: src/lib/ecore/ecore_getopt.c:1798 149#: src/lib/ecore/ecore_getopt.c:1799
150msgid "ERROR: no arguments provided.\n" 150msgid "ERROR: no arguments provided.\n"
151msgstr "NAPAKA::·ni podanih argumentov.\n" 151msgstr "NAPAKA::·ni podanih argumentov.\n"
152 152
153#: src/lib/ecore/ecore_getopt.c:1824 153#: src/lib/ecore/ecore_getopt.c:1825
154msgid "ERROR: invalid options found." 154msgid "ERROR: invalid options found."
155msgstr "NAPAKA::·najdene nepravilne možnosti" 155msgstr "NAPAKA::·najdene nepravilne možnosti"
156 156
157#: src/lib/ecore/ecore_getopt.c:1830 157#: src/lib/ecore/ecore_getopt.c:1831
158#, c-format 158#, c-format
159msgid " See --%s.\n" 159msgid " See --%s.\n"
160msgstr "·Glej·--%s.\n" 160msgstr "·Glej·--%s.\n"
161 161
162#: src/lib/ecore/ecore_getopt.c:1832 162#: src/lib/ecore/ecore_getopt.c:1833
163#, c-format 163#, c-format
164msgid " See -%c.\n" 164msgid " See -%c.\n"
165msgstr "·Glej·-%c.\n" 165msgstr "·Glej·-%c.\n"
166 166
167#: src/lib/ecore/ecore_getopt.c:1873 167#: src/lib/ecore/ecore_getopt.c:1875
168#, c-format 168#, c-format
169msgid "ERROR: incorrect geometry value '%s'\n" 169msgid "ERROR: incorrect geometry value '%s'\n"
170msgstr "NAPAKA::·nepravilna geometrijska vrednost·'%s'\n" 170msgstr "NAPAKA::·nepravilna geometrijska vrednost·'%s'\n"
171 171
172#: src/lib/ecore/ecore_getopt.c:1900 172#: src/lib/ecore/ecore_getopt.c:1903
173#, c-format 173#, c-format
174msgid "ERROR: incorrect size value '%s'\n" 174msgid "ERROR: incorrect size value '%s'\n"
175msgstr "NAPAKA::·nepravilna vrednost velikosti·'%s'\n" 175msgstr "NAPAKA::·nepravilna vrednost velikosti·'%s'\n"
diff --git a/libraries/ecore/sha1-for-source.txt b/libraries/ecore/sha1-for-source.txt
deleted file mode 100644
index 90e8bea..0000000
--- a/libraries/ecore/sha1-for-source.txt
+++ /dev/null
@@ -1 +0,0 @@
13761847d8c5ffc943c90a25e94a07664770a79e9
diff --git a/libraries/ecore/src/Makefile.in b/libraries/ecore/src/Makefile.in
index 29b69db..bf6f05c 100644
--- a/libraries/ecore/src/Makefile.in
+++ b/libraries/ecore/src/Makefile.in
@@ -229,10 +229,10 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
229PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 229PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
230PIXMAN_LIBS = @PIXMAN_LIBS@ 230PIXMAN_LIBS = @PIXMAN_LIBS@
231PKG_CONFIG = @PKG_CONFIG@ 231PKG_CONFIG = @PKG_CONFIG@
232PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
233PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
234POSUB = @POSUB@ 232POSUB = @POSUB@
235RANLIB = @RANLIB@ 233RANLIB = @RANLIB@
234SCIM_CFLAGS = @SCIM_CFLAGS@
235SCIM_LIBS = @SCIM_LIBS@
236SDL_CFLAGS = @SDL_CFLAGS@ 236SDL_CFLAGS = @SDL_CFLAGS@
237SDL_CONFIG = @SDL_CONFIG@ 237SDL_CONFIG = @SDL_CONFIG@
238SDL_LIBS = @SDL_LIBS@ 238SDL_LIBS = @SDL_LIBS@
@@ -251,6 +251,10 @@ TSLIB_LIBS = @TSLIB_LIBS@
251USE_NLS = @USE_NLS@ 251USE_NLS = @USE_NLS@
252VERSION = @VERSION@ 252VERSION = @VERSION@
253VMAJ = @VMAJ@ 253VMAJ = @VMAJ@
254WAYLAND_CFLAGS = @WAYLAND_CFLAGS@
255WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
256WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
257WAYLAND_LIBS = @WAYLAND_LIBS@
254WIN32_CFLAGS = @WIN32_CFLAGS@ 258WIN32_CFLAGS = @WIN32_CFLAGS@
255WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 259WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
256WIN32_LIBS = @WIN32_LIBS@ 260WIN32_LIBS = @WIN32_LIBS@
@@ -364,6 +368,8 @@ ecore_imf_cflags = @ecore_imf_cflags@
364ecore_imf_evas_cflags = @ecore_imf_evas_cflags@ 368ecore_imf_evas_cflags = @ecore_imf_evas_cflags@
365ecore_imf_evas_libs = @ecore_imf_evas_libs@ 369ecore_imf_evas_libs = @ecore_imf_evas_libs@
366ecore_imf_libs = @ecore_imf_libs@ 370ecore_imf_libs = @ecore_imf_libs@
371ecore_imf_scim_cflags = @ecore_imf_scim_cflags@
372ecore_imf_scim_libs = @ecore_imf_scim_libs@
367ecore_imf_xim_cflags = @ecore_imf_xim_cflags@ 373ecore_imf_xim_cflags = @ecore_imf_xim_cflags@
368ecore_imf_xim_libs = @ecore_imf_xim_libs@ 374ecore_imf_xim_libs = @ecore_imf_xim_libs@
369ecore_input_cflags = @ecore_input_cflags@ 375ecore_input_cflags = @ecore_input_cflags@
@@ -376,6 +382,8 @@ ecore_psl1ght_cflags = @ecore_psl1ght_cflags@
376ecore_psl1ght_libs = @ecore_psl1ght_libs@ 382ecore_psl1ght_libs = @ecore_psl1ght_libs@
377ecore_sdl_cflags = @ecore_sdl_cflags@ 383ecore_sdl_cflags = @ecore_sdl_cflags@
378ecore_sdl_libs = @ecore_sdl_libs@ 384ecore_sdl_libs = @ecore_sdl_libs@
385ecore_wayland_cflags = @ecore_wayland_cflags@
386ecore_wayland_libs = @ecore_wayland_libs@
379ecore_win32_cflags = @ecore_win32_cflags@ 387ecore_win32_cflags = @ecore_win32_cflags@
380ecore_win32_libs = @ecore_win32_libs@ 388ecore_win32_libs = @ecore_win32_libs@
381ecore_wince_cflags = @ecore_wince_cflags@ 389ecore_wince_cflags = @ecore_wince_cflags@
@@ -420,12 +428,14 @@ requirements_ecore_fb = @requirements_ecore_fb@
420requirements_ecore_file = @requirements_ecore_file@ 428requirements_ecore_file = @requirements_ecore_file@
421requirements_ecore_imf = @requirements_ecore_imf@ 429requirements_ecore_imf = @requirements_ecore_imf@
422requirements_ecore_imf_evas = @requirements_ecore_imf_evas@ 430requirements_ecore_imf_evas = @requirements_ecore_imf_evas@
431requirements_ecore_imf_scim = @requirements_ecore_imf_scim@
423requirements_ecore_imf_xim = @requirements_ecore_imf_xim@ 432requirements_ecore_imf_xim = @requirements_ecore_imf_xim@
424requirements_ecore_input = @requirements_ecore_input@ 433requirements_ecore_input = @requirements_ecore_input@
425requirements_ecore_input_evas = @requirements_ecore_input_evas@ 434requirements_ecore_input_evas = @requirements_ecore_input_evas@
426requirements_ecore_ipc = @requirements_ecore_ipc@ 435requirements_ecore_ipc = @requirements_ecore_ipc@
427requirements_ecore_psl1ght = @requirements_ecore_psl1ght@ 436requirements_ecore_psl1ght = @requirements_ecore_psl1ght@
428requirements_ecore_sdl = @requirements_ecore_sdl@ 437requirements_ecore_sdl = @requirements_ecore_sdl@
438requirements_ecore_wayland = @requirements_ecore_wayland@
429requirements_ecore_win32 = @requirements_ecore_win32@ 439requirements_ecore_win32 = @requirements_ecore_win32@
430requirements_ecore_wince = @requirements_ecore_wince@ 440requirements_ecore_wince = @requirements_ecore_wince@
431requirements_ecore_x = @requirements_ecore_x@ 441requirements_ecore_x = @requirements_ecore_x@
diff --git a/libraries/ecore/src/bin/Makefile.in b/libraries/ecore/src/bin/Makefile.in
index 387db21..72d2bfd 100644
--- a/libraries/ecore/src/bin/Makefile.in
+++ b/libraries/ecore/src/bin/Makefile.in
@@ -223,10 +223,10 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
223PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 223PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
224PIXMAN_LIBS = @PIXMAN_LIBS@ 224PIXMAN_LIBS = @PIXMAN_LIBS@
225PKG_CONFIG = @PKG_CONFIG@ 225PKG_CONFIG = @PKG_CONFIG@
226PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
227PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
228POSUB = @POSUB@ 226POSUB = @POSUB@
229RANLIB = @RANLIB@ 227RANLIB = @RANLIB@
228SCIM_CFLAGS = @SCIM_CFLAGS@
229SCIM_LIBS = @SCIM_LIBS@
230SDL_CFLAGS = @SDL_CFLAGS@ 230SDL_CFLAGS = @SDL_CFLAGS@
231SDL_CONFIG = @SDL_CONFIG@ 231SDL_CONFIG = @SDL_CONFIG@
232SDL_LIBS = @SDL_LIBS@ 232SDL_LIBS = @SDL_LIBS@
@@ -245,6 +245,10 @@ TSLIB_LIBS = @TSLIB_LIBS@
245USE_NLS = @USE_NLS@ 245USE_NLS = @USE_NLS@
246VERSION = @VERSION@ 246VERSION = @VERSION@
247VMAJ = @VMAJ@ 247VMAJ = @VMAJ@
248WAYLAND_CFLAGS = @WAYLAND_CFLAGS@
249WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
250WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
251WAYLAND_LIBS = @WAYLAND_LIBS@
248WIN32_CFLAGS = @WIN32_CFLAGS@ 252WIN32_CFLAGS = @WIN32_CFLAGS@
249WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
250WIN32_LIBS = @WIN32_LIBS@ 254WIN32_LIBS = @WIN32_LIBS@
@@ -358,6 +362,8 @@ ecore_imf_cflags = @ecore_imf_cflags@
358ecore_imf_evas_cflags = @ecore_imf_evas_cflags@ 362ecore_imf_evas_cflags = @ecore_imf_evas_cflags@
359ecore_imf_evas_libs = @ecore_imf_evas_libs@ 363ecore_imf_evas_libs = @ecore_imf_evas_libs@
360ecore_imf_libs = @ecore_imf_libs@ 364ecore_imf_libs = @ecore_imf_libs@
365ecore_imf_scim_cflags = @ecore_imf_scim_cflags@
366ecore_imf_scim_libs = @ecore_imf_scim_libs@
361ecore_imf_xim_cflags = @ecore_imf_xim_cflags@ 367ecore_imf_xim_cflags = @ecore_imf_xim_cflags@
362ecore_imf_xim_libs = @ecore_imf_xim_libs@ 368ecore_imf_xim_libs = @ecore_imf_xim_libs@
363ecore_input_cflags = @ecore_input_cflags@ 369ecore_input_cflags = @ecore_input_cflags@
@@ -370,6 +376,8 @@ ecore_psl1ght_cflags = @ecore_psl1ght_cflags@
370ecore_psl1ght_libs = @ecore_psl1ght_libs@ 376ecore_psl1ght_libs = @ecore_psl1ght_libs@
371ecore_sdl_cflags = @ecore_sdl_cflags@ 377ecore_sdl_cflags = @ecore_sdl_cflags@
372ecore_sdl_libs = @ecore_sdl_libs@ 378ecore_sdl_libs = @ecore_sdl_libs@
379ecore_wayland_cflags = @ecore_wayland_cflags@
380ecore_wayland_libs = @ecore_wayland_libs@
373ecore_win32_cflags = @ecore_win32_cflags@ 381ecore_win32_cflags = @ecore_win32_cflags@
374ecore_win32_libs = @ecore_win32_libs@ 382ecore_win32_libs = @ecore_win32_libs@
375ecore_wince_cflags = @ecore_wince_cflags@ 383ecore_wince_cflags = @ecore_wince_cflags@
@@ -414,12 +422,14 @@ requirements_ecore_fb = @requirements_ecore_fb@
414requirements_ecore_file = @requirements_ecore_file@ 422requirements_ecore_file = @requirements_ecore_file@
415requirements_ecore_imf = @requirements_ecore_imf@ 423requirements_ecore_imf = @requirements_ecore_imf@
416requirements_ecore_imf_evas = @requirements_ecore_imf_evas@ 424requirements_ecore_imf_evas = @requirements_ecore_imf_evas@
425requirements_ecore_imf_scim = @requirements_ecore_imf_scim@
417requirements_ecore_imf_xim = @requirements_ecore_imf_xim@ 426requirements_ecore_imf_xim = @requirements_ecore_imf_xim@
418requirements_ecore_input = @requirements_ecore_input@ 427requirements_ecore_input = @requirements_ecore_input@
419requirements_ecore_input_evas = @requirements_ecore_input_evas@ 428requirements_ecore_input_evas = @requirements_ecore_input_evas@
420requirements_ecore_ipc = @requirements_ecore_ipc@ 429requirements_ecore_ipc = @requirements_ecore_ipc@
421requirements_ecore_psl1ght = @requirements_ecore_psl1ght@ 430requirements_ecore_psl1ght = @requirements_ecore_psl1ght@
422requirements_ecore_sdl = @requirements_ecore_sdl@ 431requirements_ecore_sdl = @requirements_ecore_sdl@
432requirements_ecore_wayland = @requirements_ecore_wayland@
423requirements_ecore_win32 = @requirements_ecore_win32@ 433requirements_ecore_win32 = @requirements_ecore_win32@
424requirements_ecore_wince = @requirements_ecore_wince@ 434requirements_ecore_wince = @requirements_ecore_wince@
425requirements_ecore_x = @requirements_ecore_x@ 435requirements_ecore_x = @requirements_ecore_x@
diff --git a/libraries/ecore/src/examples/Makefile.am b/libraries/ecore/src/examples/Makefile.am
index 63748a5..afb6f40 100644
--- a/libraries/ecore/src/examples/Makefile.am
+++ b/libraries/ecore/src/examples/Makefile.am
@@ -1,6 +1,6 @@
1MAINTAINERCLEANFILES = Makefile.in 1MAINTAINERCLEANFILES = Makefile.in
2 2
3pkglibdir = $(datadir)/$(PACKAGE)/examples 3examplesdir = $(datadir)/$(PACKAGE)/examples
4 4
5filesdir = $(datadir)/$(PACKAGE)/examples 5filesdir = $(datadir)/$(PACKAGE)/examples
6files_DATA = 6files_DATA =
@@ -59,7 +59,7 @@ SRCS = \
59EXTRA_DIST = $(SRCS) \ 59EXTRA_DIST = $(SRCS) \
60 $(srcdir)/red.png 60 $(srcdir)/red.png
61 61
62pkglib_PROGRAMS = 62examples_PROGRAMS =
63 63
64if EFL_INSTALL_EXAMPLES 64if EFL_INSTALL_EXAMPLES
65files_DATA += $(SRCS) \ 65files_DATA += $(SRCS) \
@@ -67,7 +67,7 @@ files_DATA += $(SRCS) \
67endif 67endif
68 68
69if EFL_BUILD_EXAMPLES 69if EFL_BUILD_EXAMPLES
70pkglib_PROGRAMS += \ 70examples_PROGRAMS += \
71 ecore_animator_example \ 71 ecore_animator_example \
72 ecore_fd_handler_example \ 72 ecore_fd_handler_example \
73 ecore_poller_example \ 73 ecore_poller_example \
diff --git a/libraries/ecore/src/examples/Makefile.in b/libraries/ecore/src/examples/Makefile.in
index dc38e0d..7fac88c 100644
--- a/libraries/ecore/src/examples/Makefile.in
+++ b/libraries/ecore/src/examples/Makefile.in
@@ -19,6 +19,7 @@
19VPATH = @srcdir@ 19VPATH = @srcdir@
20pkgdatadir = $(datadir)/@PACKAGE@ 20pkgdatadir = $(datadir)/@PACKAGE@
21pkgincludedir = $(includedir)/@PACKAGE@ 21pkgincludedir = $(includedir)/@PACKAGE@
22pkglibdir = $(libdir)/@PACKAGE@
22pkglibexecdir = $(libexecdir)/@PACKAGE@ 23pkglibexecdir = $(libexecdir)/@PACKAGE@
23am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd 24am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
24install_sh_DATA = $(install_sh) -c -m 644 25install_sh_DATA = $(install_sh) -c -m 644
@@ -34,7 +35,7 @@ PRE_UNINSTALL = :
34POST_UNINSTALL = : 35POST_UNINSTALL = :
35build_triplet = @build@ 36build_triplet = @build@
36host_triplet = @host@ 37host_triplet = @host@
37pkglib_PROGRAMS = $(am__EXEEXT_1) 38examples_PROGRAMS = $(am__EXEEXT_1)
38@EFL_INSTALL_EXAMPLES_TRUE@am__append_1 = $(SRCS) \ 39@EFL_INSTALL_EXAMPLES_TRUE@am__append_1 = $(SRCS) \
39@EFL_INSTALL_EXAMPLES_TRUE@ $(srcdir)/red.png 40@EFL_INSTALL_EXAMPLES_TRUE@ $(srcdir)/red.png
40 41
@@ -120,8 +121,8 @@ CONFIG_CLEAN_VPATH_FILES =
120@EFL_BUILD_EXAMPLES_TRUE@ ecore_evas_ews_example$(EXEEXT) \ 121@EFL_BUILD_EXAMPLES_TRUE@ ecore_evas_ews_example$(EXEEXT) \
121@EFL_BUILD_EXAMPLES_TRUE@ ecore_client_bench$(EXEEXT) \ 122@EFL_BUILD_EXAMPLES_TRUE@ ecore_client_bench$(EXEEXT) \
122@EFL_BUILD_EXAMPLES_TRUE@ ecore_server_bench$(EXEEXT) 123@EFL_BUILD_EXAMPLES_TRUE@ ecore_server_bench$(EXEEXT)
123am__installdirs = "$(DESTDIR)$(pkglibdir)" "$(DESTDIR)$(filesdir)" 124am__installdirs = "$(DESTDIR)$(examplesdir)" "$(DESTDIR)$(filesdir)"
124PROGRAMS = $(pkglib_PROGRAMS) 125PROGRAMS = $(examples_PROGRAMS)
125ecore_animator_example_SOURCES = ecore_animator_example.c 126ecore_animator_example_SOURCES = ecore_animator_example.c
126ecore_animator_example_OBJECTS = ecore_animator_example.$(OBJEXT) 127ecore_animator_example_OBJECTS = ecore_animator_example.$(OBJEXT)
127ecore_animator_example_LDADD = $(LDADD) 128ecore_animator_example_LDADD = $(LDADD)
@@ -344,7 +345,6 @@ DATA = $(files_DATA)
344ETAGS = etags 345ETAGS = etags
345CTAGS = ctags 346CTAGS = ctags
346DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) 347DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
347pkglibdir = $(datadir)/$(PACKAGE)/examples
348ACLOCAL = @ACLOCAL@ 348ACLOCAL = @ACLOCAL@
349ALLOCA = @ALLOCA@ 349ALLOCA = @ALLOCA@
350AMTAR = @AMTAR@ 350AMTAR = @AMTAR@
@@ -463,10 +463,10 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
463PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 463PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
464PIXMAN_LIBS = @PIXMAN_LIBS@ 464PIXMAN_LIBS = @PIXMAN_LIBS@
465PKG_CONFIG = @PKG_CONFIG@ 465PKG_CONFIG = @PKG_CONFIG@
466PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
467PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
468POSUB = @POSUB@ 466POSUB = @POSUB@
469RANLIB = @RANLIB@ 467RANLIB = @RANLIB@
468SCIM_CFLAGS = @SCIM_CFLAGS@
469SCIM_LIBS = @SCIM_LIBS@
470SDL_CFLAGS = @SDL_CFLAGS@ 470SDL_CFLAGS = @SDL_CFLAGS@
471SDL_CONFIG = @SDL_CONFIG@ 471SDL_CONFIG = @SDL_CONFIG@
472SDL_LIBS = @SDL_LIBS@ 472SDL_LIBS = @SDL_LIBS@
@@ -485,6 +485,10 @@ TSLIB_LIBS = @TSLIB_LIBS@
485USE_NLS = @USE_NLS@ 485USE_NLS = @USE_NLS@
486VERSION = @VERSION@ 486VERSION = @VERSION@
487VMAJ = @VMAJ@ 487VMAJ = @VMAJ@
488WAYLAND_CFLAGS = @WAYLAND_CFLAGS@
489WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
490WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
491WAYLAND_LIBS = @WAYLAND_LIBS@
488WIN32_CFLAGS = @WIN32_CFLAGS@ 492WIN32_CFLAGS = @WIN32_CFLAGS@
489WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 493WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
490WIN32_LIBS = @WIN32_LIBS@ 494WIN32_LIBS = @WIN32_LIBS@
@@ -598,6 +602,8 @@ ecore_imf_cflags = @ecore_imf_cflags@
598ecore_imf_evas_cflags = @ecore_imf_evas_cflags@ 602ecore_imf_evas_cflags = @ecore_imf_evas_cflags@
599ecore_imf_evas_libs = @ecore_imf_evas_libs@ 603ecore_imf_evas_libs = @ecore_imf_evas_libs@
600ecore_imf_libs = @ecore_imf_libs@ 604ecore_imf_libs = @ecore_imf_libs@
605ecore_imf_scim_cflags = @ecore_imf_scim_cflags@
606ecore_imf_scim_libs = @ecore_imf_scim_libs@
601ecore_imf_xim_cflags = @ecore_imf_xim_cflags@ 607ecore_imf_xim_cflags = @ecore_imf_xim_cflags@
602ecore_imf_xim_libs = @ecore_imf_xim_libs@ 608ecore_imf_xim_libs = @ecore_imf_xim_libs@
603ecore_input_cflags = @ecore_input_cflags@ 609ecore_input_cflags = @ecore_input_cflags@
@@ -610,6 +616,8 @@ ecore_psl1ght_cflags = @ecore_psl1ght_cflags@
610ecore_psl1ght_libs = @ecore_psl1ght_libs@ 616ecore_psl1ght_libs = @ecore_psl1ght_libs@
611ecore_sdl_cflags = @ecore_sdl_cflags@ 617ecore_sdl_cflags = @ecore_sdl_cflags@
612ecore_sdl_libs = @ecore_sdl_libs@ 618ecore_sdl_libs = @ecore_sdl_libs@
619ecore_wayland_cflags = @ecore_wayland_cflags@
620ecore_wayland_libs = @ecore_wayland_libs@
613ecore_win32_cflags = @ecore_win32_cflags@ 621ecore_win32_cflags = @ecore_win32_cflags@
614ecore_win32_libs = @ecore_win32_libs@ 622ecore_win32_libs = @ecore_win32_libs@
615ecore_wince_cflags = @ecore_wince_cflags@ 623ecore_wince_cflags = @ecore_wince_cflags@
@@ -654,12 +662,14 @@ requirements_ecore_fb = @requirements_ecore_fb@
654requirements_ecore_file = @requirements_ecore_file@ 662requirements_ecore_file = @requirements_ecore_file@
655requirements_ecore_imf = @requirements_ecore_imf@ 663requirements_ecore_imf = @requirements_ecore_imf@
656requirements_ecore_imf_evas = @requirements_ecore_imf_evas@ 664requirements_ecore_imf_evas = @requirements_ecore_imf_evas@
665requirements_ecore_imf_scim = @requirements_ecore_imf_scim@
657requirements_ecore_imf_xim = @requirements_ecore_imf_xim@ 666requirements_ecore_imf_xim = @requirements_ecore_imf_xim@
658requirements_ecore_input = @requirements_ecore_input@ 667requirements_ecore_input = @requirements_ecore_input@
659requirements_ecore_input_evas = @requirements_ecore_input_evas@ 668requirements_ecore_input_evas = @requirements_ecore_input_evas@
660requirements_ecore_ipc = @requirements_ecore_ipc@ 669requirements_ecore_ipc = @requirements_ecore_ipc@
661requirements_ecore_psl1ght = @requirements_ecore_psl1ght@ 670requirements_ecore_psl1ght = @requirements_ecore_psl1ght@
662requirements_ecore_sdl = @requirements_ecore_sdl@ 671requirements_ecore_sdl = @requirements_ecore_sdl@
672requirements_ecore_wayland = @requirements_ecore_wayland@
663requirements_ecore_win32 = @requirements_ecore_win32@ 673requirements_ecore_win32 = @requirements_ecore_win32@
664requirements_ecore_wince = @requirements_ecore_wince@ 674requirements_ecore_wince = @requirements_ecore_wince@
665requirements_ecore_x = @requirements_ecore_x@ 675requirements_ecore_x = @requirements_ecore_x@
@@ -677,6 +687,7 @@ x_cflags = @x_cflags@
677x_includes = @x_includes@ 687x_includes = @x_includes@
678x_libs = @x_libs@ 688x_libs = @x_libs@
679MAINTAINERCLEANFILES = Makefile.in 689MAINTAINERCLEANFILES = Makefile.in
690examplesdir = $(datadir)/$(PACKAGE)/examples
680filesdir = $(datadir)/$(PACKAGE)/examples 691filesdir = $(datadir)/$(PACKAGE)/examples
681files_DATA = $(am__append_1) 692files_DATA = $(am__append_1)
682AM_CPPFLAGS = \ 693AM_CPPFLAGS = \
@@ -778,10 +789,10 @@ $(top_srcdir)/configure: $(am__configure_deps)
778$(ACLOCAL_M4): $(am__aclocal_m4_deps) 789$(ACLOCAL_M4): $(am__aclocal_m4_deps)
779 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh 790 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
780$(am__aclocal_m4_deps): 791$(am__aclocal_m4_deps):
781install-pkglibPROGRAMS: $(pkglib_PROGRAMS) 792install-examplesPROGRAMS: $(examples_PROGRAMS)
782 @$(NORMAL_INSTALL) 793 @$(NORMAL_INSTALL)
783 test -z "$(pkglibdir)" || $(MKDIR_P) "$(DESTDIR)$(pkglibdir)" 794 test -z "$(examplesdir)" || $(MKDIR_P) "$(DESTDIR)$(examplesdir)"
784 @list='$(pkglib_PROGRAMS)'; test -n "$(pkglibdir)" || list=; \ 795 @list='$(examples_PROGRAMS)'; test -n "$(examplesdir)" || list=; \
785 for p in $$list; do echo "$$p $$p"; done | \ 796 for p in $$list; do echo "$$p $$p"; done | \
786 sed 's/$(EXEEXT)$$//' | \ 797 sed 's/$(EXEEXT)$$//' | \
787 while read p p1; do if test -f $$p || test -f $$p1; \ 798 while read p p1; do if test -f $$p || test -f $$p1; \
@@ -798,23 +809,23 @@ install-pkglibPROGRAMS: $(pkglib_PROGRAMS)
798 while read type dir files; do \ 809 while read type dir files; do \
799 if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ 810 if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
800 test -z "$$files" || { \ 811 test -z "$$files" || { \
801 echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(pkglibdir)$$dir'"; \ 812 echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(examplesdir)$$dir'"; \
802 $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(pkglibdir)$$dir" || exit $$?; \ 813 $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(examplesdir)$$dir" || exit $$?; \
803 } \ 814 } \
804 ; done 815 ; done
805 816
806uninstall-pkglibPROGRAMS: 817uninstall-examplesPROGRAMS:
807 @$(NORMAL_UNINSTALL) 818 @$(NORMAL_UNINSTALL)
808 @list='$(pkglib_PROGRAMS)'; test -n "$(pkglibdir)" || list=; \ 819 @list='$(examples_PROGRAMS)'; test -n "$(examplesdir)" || list=; \
809 files=`for p in $$list; do echo "$$p"; done | \ 820 files=`for p in $$list; do echo "$$p"; done | \
810 sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ 821 sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
811 -e 's/$$/$(EXEEXT)/' `; \ 822 -e 's/$$/$(EXEEXT)/' `; \
812 test -n "$$list" || exit 0; \ 823 test -n "$$list" || exit 0; \
813 echo " ( cd '$(DESTDIR)$(pkglibdir)' && rm -f" $$files ")"; \ 824 echo " ( cd '$(DESTDIR)$(examplesdir)' && rm -f" $$files ")"; \
814 cd "$(DESTDIR)$(pkglibdir)" && rm -f $$files 825 cd "$(DESTDIR)$(examplesdir)" && rm -f $$files
815 826
816clean-pkglibPROGRAMS: 827clean-examplesPROGRAMS:
817 @list='$(pkglib_PROGRAMS)'; test -n "$$list" || exit 0; \ 828 @list='$(examples_PROGRAMS)'; test -n "$$list" || exit 0; \
818 echo " rm -f" $$list; \ 829 echo " rm -f" $$list; \
819 rm -f $$list || exit $$?; \ 830 rm -f $$list || exit $$?; \
820 test -n "$(EXEEXT)" || exit 0; \ 831 test -n "$(EXEEXT)" || exit 0; \
@@ -1069,7 +1080,7 @@ check-am: all-am
1069check: check-am 1080check: check-am
1070all-am: Makefile $(PROGRAMS) $(DATA) 1081all-am: Makefile $(PROGRAMS) $(DATA)
1071installdirs: 1082installdirs:
1072 for dir in "$(DESTDIR)$(pkglibdir)" "$(DESTDIR)$(filesdir)"; do \ 1083 for dir in "$(DESTDIR)$(examplesdir)" "$(DESTDIR)$(filesdir)"; do \
1073 test -z "$$dir" || $(MKDIR_P) "$$dir"; \ 1084 test -z "$$dir" || $(MKDIR_P) "$$dir"; \
1074 done 1085 done
1075install: install-am 1086install: install-am
@@ -1100,7 +1111,7 @@ maintainer-clean-generic:
1100 -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) 1111 -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
1101clean: clean-am 1112clean: clean-am
1102 1113
1103clean-am: clean-generic clean-libtool clean-pkglibPROGRAMS \ 1114clean-am: clean-examplesPROGRAMS clean-generic clean-libtool \
1104 mostlyclean-am 1115 mostlyclean-am
1105 1116
1106distclean: distclean-am 1117distclean: distclean-am
@@ -1121,13 +1132,13 @@ info: info-am
1121 1132
1122info-am: 1133info-am:
1123 1134
1124install-data-am: install-filesDATA 1135install-data-am: install-examplesPROGRAMS install-filesDATA
1125 1136
1126install-dvi: install-dvi-am 1137install-dvi: install-dvi-am
1127 1138
1128install-dvi-am: 1139install-dvi-am:
1129 1140
1130install-exec-am: install-pkglibPROGRAMS 1141install-exec-am:
1131 1142
1132install-html: install-html-am 1143install-html: install-html-am
1133 1144
@@ -1167,24 +1178,25 @@ ps: ps-am
1167 1178
1168ps-am: 1179ps-am:
1169 1180
1170uninstall-am: uninstall-filesDATA uninstall-pkglibPROGRAMS 1181uninstall-am: uninstall-examplesPROGRAMS uninstall-filesDATA
1171 1182
1172.MAKE: install-am install-strip 1183.MAKE: install-am install-strip
1173 1184
1174.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ 1185.PHONY: CTAGS GTAGS all all-am check check-am clean \
1175 clean-libtool clean-pkglibPROGRAMS ctags distclean \ 1186 clean-examplesPROGRAMS clean-generic clean-libtool ctags \
1176 distclean-compile distclean-generic distclean-libtool \ 1187 distclean distclean-compile distclean-generic \
1177 distclean-tags distdir dvi dvi-am html html-am info info-am \ 1188 distclean-libtool distclean-tags distdir dvi dvi-am html \
1178 install install-am install-data install-data-am install-dvi \ 1189 html-am info info-am install install-am install-data \
1179 install-dvi-am install-exec install-exec-am install-filesDATA \ 1190 install-data-am install-dvi install-dvi-am \
1180 install-html install-html-am install-info install-info-am \ 1191 install-examplesPROGRAMS install-exec install-exec-am \
1181 install-man install-pdf install-pdf-am install-pkglibPROGRAMS \ 1192 install-filesDATA install-html install-html-am install-info \
1193 install-info-am install-man install-pdf install-pdf-am \
1182 install-ps install-ps-am install-strip installcheck \ 1194 install-ps install-ps-am install-strip installcheck \
1183 installcheck-am installdirs maintainer-clean \ 1195 installcheck-am installdirs maintainer-clean \
1184 maintainer-clean-generic mostlyclean mostlyclean-compile \ 1196 maintainer-clean-generic mostlyclean mostlyclean-compile \
1185 mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ 1197 mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
1186 tags uninstall uninstall-am uninstall-filesDATA \ 1198 tags uninstall uninstall-am uninstall-examplesPROGRAMS \
1187 uninstall-pkglibPROGRAMS 1199 uninstall-filesDATA
1188 1200
1189 1201
1190# Tell versions [3.59,3.63) of GNU make to not export all variables. 1202# Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/libraries/ecore/src/lib/Makefile.am b/libraries/ecore/src/lib/Makefile.am
index b13bc18..d43ad75 100644
--- a/libraries/ecore/src/lib/Makefile.am
+++ b/libraries/ecore/src/lib/Makefile.am
@@ -46,6 +46,10 @@ if BUILD_ECORE_COCOA
46SUBDIRS += ecore_cocoa 46SUBDIRS += ecore_cocoa
47endif 47endif
48 48
49if BUILD_ECORE_WAYLAND
50SUBDIRS += ecore_wayland
51endif
52
49if BUILD_ECORE_IPC 53if BUILD_ECORE_IPC
50SUBDIRS += ecore_ipc 54SUBDIRS += ecore_ipc
51endif 55endif
diff --git a/libraries/ecore/src/lib/Makefile.in b/libraries/ecore/src/lib/Makefile.in
index b351087..09271c2 100644
--- a/libraries/ecore/src/lib/Makefile.in
+++ b/libraries/ecore/src/lib/Makefile.in
@@ -44,12 +44,13 @@ host_triplet = @host@
44@BUILD_ECORE_SDL_TRUE@am__append_9 = ecore_sdl 44@BUILD_ECORE_SDL_TRUE@am__append_9 = ecore_sdl
45@BUILD_ECORE_PSL1GHT_TRUE@am__append_10 = ecore_psl1ght 45@BUILD_ECORE_PSL1GHT_TRUE@am__append_10 = ecore_psl1ght
46@BUILD_ECORE_COCOA_TRUE@am__append_11 = ecore_cocoa 46@BUILD_ECORE_COCOA_TRUE@am__append_11 = ecore_cocoa
47@BUILD_ECORE_IPC_TRUE@am__append_12 = ecore_ipc 47@BUILD_ECORE_WAYLAND_TRUE@am__append_12 = ecore_wayland
48@BUILD_ECORE_EVAS_TRUE@am__append_13 = ecore_evas 48@BUILD_ECORE_IPC_TRUE@am__append_13 = ecore_ipc
49@BUILD_ECORE_CONFIG_TRUE@am__append_14 = ecore_config 49@BUILD_ECORE_EVAS_TRUE@am__append_14 = ecore_evas
50@BUILD_ECORE_FILE_TRUE@am__append_15 = ecore_file 50@BUILD_ECORE_CONFIG_TRUE@am__append_15 = ecore_config
51@BUILD_ECORE_IMF_TRUE@am__append_16 = ecore_imf 51@BUILD_ECORE_FILE_TRUE@am__append_16 = ecore_file
52@BUILD_ECORE_IMF_EVAS_TRUE@am__append_17 = ecore_imf_evas 52@BUILD_ECORE_IMF_TRUE@am__append_17 = ecore_imf
53@BUILD_ECORE_IMF_EVAS_TRUE@am__append_18 = ecore_imf_evas
53subdir = src/lib 54subdir = src/lib
54DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in 55DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
55ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 56ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -101,8 +102,8 @@ ETAGS = etags
101CTAGS = ctags 102CTAGS = ctags
102DIST_SUBDIRS = ecore ecore_input ecore_input_evas ecore_fb \ 103DIST_SUBDIRS = ecore ecore_input ecore_input_evas ecore_fb \
103 ecore_directfb ecore_con ecore_x ecore_win32 ecore_wince \ 104 ecore_directfb ecore_con ecore_x ecore_win32 ecore_wince \
104 ecore_sdl ecore_psl1ght ecore_cocoa ecore_ipc ecore_evas \ 105 ecore_sdl ecore_psl1ght ecore_cocoa ecore_wayland ecore_ipc \
105 ecore_config ecore_file ecore_imf ecore_imf_evas 106 ecore_evas ecore_config ecore_file ecore_imf ecore_imf_evas
106DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) 107DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
107am__relativize = \ 108am__relativize = \
108 dir0=`pwd`; \ 109 dir0=`pwd`; \
@@ -247,10 +248,10 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
247PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 248PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
248PIXMAN_LIBS = @PIXMAN_LIBS@ 249PIXMAN_LIBS = @PIXMAN_LIBS@
249PKG_CONFIG = @PKG_CONFIG@ 250PKG_CONFIG = @PKG_CONFIG@
250PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
251PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
252POSUB = @POSUB@ 251POSUB = @POSUB@
253RANLIB = @RANLIB@ 252RANLIB = @RANLIB@
253SCIM_CFLAGS = @SCIM_CFLAGS@
254SCIM_LIBS = @SCIM_LIBS@
254SDL_CFLAGS = @SDL_CFLAGS@ 255SDL_CFLAGS = @SDL_CFLAGS@
255SDL_CONFIG = @SDL_CONFIG@ 256SDL_CONFIG = @SDL_CONFIG@
256SDL_LIBS = @SDL_LIBS@ 257SDL_LIBS = @SDL_LIBS@
@@ -269,6 +270,10 @@ TSLIB_LIBS = @TSLIB_LIBS@
269USE_NLS = @USE_NLS@ 270USE_NLS = @USE_NLS@
270VERSION = @VERSION@ 271VERSION = @VERSION@
271VMAJ = @VMAJ@ 272VMAJ = @VMAJ@
273WAYLAND_CFLAGS = @WAYLAND_CFLAGS@
274WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
275WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
276WAYLAND_LIBS = @WAYLAND_LIBS@
272WIN32_CFLAGS = @WIN32_CFLAGS@ 277WIN32_CFLAGS = @WIN32_CFLAGS@
273WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 278WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
274WIN32_LIBS = @WIN32_LIBS@ 279WIN32_LIBS = @WIN32_LIBS@
@@ -382,6 +387,8 @@ ecore_imf_cflags = @ecore_imf_cflags@
382ecore_imf_evas_cflags = @ecore_imf_evas_cflags@ 387ecore_imf_evas_cflags = @ecore_imf_evas_cflags@
383ecore_imf_evas_libs = @ecore_imf_evas_libs@ 388ecore_imf_evas_libs = @ecore_imf_evas_libs@
384ecore_imf_libs = @ecore_imf_libs@ 389ecore_imf_libs = @ecore_imf_libs@
390ecore_imf_scim_cflags = @ecore_imf_scim_cflags@
391ecore_imf_scim_libs = @ecore_imf_scim_libs@
385ecore_imf_xim_cflags = @ecore_imf_xim_cflags@ 392ecore_imf_xim_cflags = @ecore_imf_xim_cflags@
386ecore_imf_xim_libs = @ecore_imf_xim_libs@ 393ecore_imf_xim_libs = @ecore_imf_xim_libs@
387ecore_input_cflags = @ecore_input_cflags@ 394ecore_input_cflags = @ecore_input_cflags@
@@ -394,6 +401,8 @@ ecore_psl1ght_cflags = @ecore_psl1ght_cflags@
394ecore_psl1ght_libs = @ecore_psl1ght_libs@ 401ecore_psl1ght_libs = @ecore_psl1ght_libs@
395ecore_sdl_cflags = @ecore_sdl_cflags@ 402ecore_sdl_cflags = @ecore_sdl_cflags@
396ecore_sdl_libs = @ecore_sdl_libs@ 403ecore_sdl_libs = @ecore_sdl_libs@
404ecore_wayland_cflags = @ecore_wayland_cflags@
405ecore_wayland_libs = @ecore_wayland_libs@
397ecore_win32_cflags = @ecore_win32_cflags@ 406ecore_win32_cflags = @ecore_win32_cflags@
398ecore_win32_libs = @ecore_win32_libs@ 407ecore_win32_libs = @ecore_win32_libs@
399ecore_wince_cflags = @ecore_wince_cflags@ 408ecore_wince_cflags = @ecore_wince_cflags@
@@ -438,12 +447,14 @@ requirements_ecore_fb = @requirements_ecore_fb@
438requirements_ecore_file = @requirements_ecore_file@ 447requirements_ecore_file = @requirements_ecore_file@
439requirements_ecore_imf = @requirements_ecore_imf@ 448requirements_ecore_imf = @requirements_ecore_imf@
440requirements_ecore_imf_evas = @requirements_ecore_imf_evas@ 449requirements_ecore_imf_evas = @requirements_ecore_imf_evas@
450requirements_ecore_imf_scim = @requirements_ecore_imf_scim@
441requirements_ecore_imf_xim = @requirements_ecore_imf_xim@ 451requirements_ecore_imf_xim = @requirements_ecore_imf_xim@
442requirements_ecore_input = @requirements_ecore_input@ 452requirements_ecore_input = @requirements_ecore_input@
443requirements_ecore_input_evas = @requirements_ecore_input_evas@ 453requirements_ecore_input_evas = @requirements_ecore_input_evas@
444requirements_ecore_ipc = @requirements_ecore_ipc@ 454requirements_ecore_ipc = @requirements_ecore_ipc@
445requirements_ecore_psl1ght = @requirements_ecore_psl1ght@ 455requirements_ecore_psl1ght = @requirements_ecore_psl1ght@
446requirements_ecore_sdl = @requirements_ecore_sdl@ 456requirements_ecore_sdl = @requirements_ecore_sdl@
457requirements_ecore_wayland = @requirements_ecore_wayland@
447requirements_ecore_win32 = @requirements_ecore_win32@ 458requirements_ecore_win32 = @requirements_ecore_win32@
448requirements_ecore_wince = @requirements_ecore_wince@ 459requirements_ecore_wince = @requirements_ecore_wince@
449requirements_ecore_x = @requirements_ecore_x@ 460requirements_ecore_x = @requirements_ecore_x@
@@ -466,7 +477,7 @@ SUBDIRS = ecore $(am__append_1) $(am__append_2) $(am__append_3) \
466 $(am__append_7) $(am__append_8) $(am__append_9) \ 477 $(am__append_7) $(am__append_8) $(am__append_9) \
467 $(am__append_10) $(am__append_11) $(am__append_12) \ 478 $(am__append_10) $(am__append_11) $(am__append_12) \
468 $(am__append_13) $(am__append_14) $(am__append_15) \ 479 $(am__append_13) $(am__append_14) $(am__append_15) \
469 $(am__append_16) $(am__append_17) 480 $(am__append_16) $(am__append_17) $(am__append_18)
470all: all-recursive 481all: all-recursive
471 482
472.SUFFIXES: 483.SUFFIXES:
diff --git a/libraries/ecore/src/lib/ecore/Ecore.h b/libraries/ecore/src/lib/ecore/Ecore.h
index fe4e631..fbe4dda 100644
--- a/libraries/ecore/src/lib/ecore/Ecore.h
+++ b/libraries/ecore/src/lib/ecore/Ecore.h
@@ -95,13 +95,23 @@
95 @author Mike McCormack <mj.mccormack@samsung.com> 95 @author Mike McCormack <mj.mccormack@samsung.com>
96 @author Sangho Park <gouache95@gmail.com> 96 @author Sangho Park <gouache95@gmail.com>
97 @author Jihoon Kim <jihoon48.kim@samsung.com> <imfine98@gmail.com> 97 @author Jihoon Kim <jihoon48.kim@samsung.com> <imfine98@gmail.com>
98 @author PnB <Poor.NewBie@gmail.com>
98 @author Daniel Juyung Seo <seojuyung2@gmail.com> <juyung.seo@samsung.com> 99 @author Daniel Juyung Seo <seojuyung2@gmail.com> <juyung.seo@samsung.com>
100 @author Christopher 'devilhorns' Michael <cpmichael1@comcast.net>
101 @author ChunEon Park <hermet@hermet.pe.kr>
102 @author xlopez@igalia.com
103 @author Rafael Antognolli <antognolli@profusion.mobi>
104 @author Kim Yunhan <spbear@gmail.com>
105 @author Youness Alaoui <kakaroto@kakaroto.homelinux.net>
106 @author Bluezery <ohpowel@gmail.com>
107 @author Doyoun Kang <wayofmine@gmail.com> <doyoun.kang@samsung.com>
108 @author Haifeng Deng <haifeng.deng@samsung.com>
99 109
100 Please contact <enlightenment-devel@lists.sourceforge.net> to get in 110 Please contact <enlightenment-devel@lists.sourceforge.net> to get in
101 contact with the developers and maintainers. 111 contact with the developers and maintainers.
102 */ 112 */
103 113
104/* 114/**
105 @page Ecore_Main_Loop_Page The Ecore Main Loop 115 @page Ecore_Main_Loop_Page The Ecore Main Loop
106 116
107 @section intro What is Ecore? 117 @section intro What is Ecore?
@@ -315,10 +325,8 @@ extern "C" {
315 * @{ 325 * @{
316 */ 326 */
317 327
318EAPI int 328EAPI int ecore_init(void);
319 ecore_init(void); 329EAPI int ecore_shutdown(void);
320EAPI int
321 ecore_shutdown(void);
322 330
323/** 331/**
324 * @} 332 * @}
@@ -390,28 +398,21 @@ EAPI extern Ecore_Version *ecore_version;
390typedef Eina_Bool (*Ecore_Task_Cb)(void *data); 398typedef Eina_Bool (*Ecore_Task_Cb)(void *data);
391 399
392/** 400/**
393 * @typedef Ecore_Eselect_Function Ecore_Eselect_Function 401 * @typedef Ecore_Eselect_Function
394 * A function which can be used to replace select() in the main loop 402 * A function which can be used to replace select() in the main loop
395 */ 403 */
396typedef int (*Ecore_Select_Function)(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout); 404typedef int (*Ecore_Select_Function)(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout);
397 405
398EAPI void 406EAPI void ecore_main_loop_iterate(void);
399ecore_main_loop_iterate(void);
400 407
401EAPI void 408EAPI void ecore_main_loop_select_func_set(Ecore_Select_Function func);
402 ecore_main_loop_select_func_set(Ecore_Select_Function func); 409EAPI Ecore_Select_Function ecore_main_loop_select_func_get(void);
403EAPI Ecore_Select_Function
404 ecore_main_loop_select_func_get(void);
405 410
406EAPI Eina_Bool 411EAPI Eina_Bool ecore_main_loop_glib_integrate(void);
407 ecore_main_loop_glib_integrate(void); 412EAPI void ecore_main_loop_glib_always_integrate_disable(void);
408EAPI void
409 ecore_main_loop_glib_always_integrate_disable(void);
410 413
411EAPI void 414EAPI void ecore_main_loop_begin(void);
412 ecore_main_loop_begin(void); 415EAPI void ecore_main_loop_quit(void);
413EAPI void
414 ecore_main_loop_quit(void);
415 416
416/** 417/**
417 * @typedef Ecore_Cb Ecore_Cb 418 * @typedef Ecore_Cb Ecore_Cb
@@ -441,9 +442,7 @@ typedef void *(*Ecore_Data_Cb)(void *data);
441 * in the thread, it is owned by the main loop and your callback should take 442 * in the thread, it is owned by the main loop and your callback should take
442 * care of freeing it if necessary. 443 * care of freeing it if necessary.
443 */ 444 */
444EAPI void 445EAPI void ecore_main_loop_thread_safe_call_async(Ecore_Cb callback, void *data);
445ecore_main_loop_thread_safe_call_async(Ecore_Cb callback,
446 void *data);
447 446
448/** 447/**
449 * @brief Call callback synchronously in the main loop. 448 * @brief Call callback synchronously in the main loop.
@@ -460,9 +459,7 @@ ecore_main_loop_thread_safe_call_async(Ecore_Cb callback,
460 * Remember this function will block until the callback is executed in the 459 * Remember this function will block until the callback is executed in the
461 * main loop. It can take time and you have no guaranty about the timeline. 460 * main loop. It can take time and you have no guaranty about the timeline.
462 */ 461 */
463EAPI void * 462EAPI void *ecore_main_loop_thread_safe_call_sync(Ecore_Data_Cb callback, void *data);
464ecore_main_loop_thread_safe_call_sync(Ecore_Data_Cb callback,
465 void *data);
466 463
467/** 464/**
468 * @brief This function suspend the main loop in a know state 465 * @brief This function suspend the main loop in a know state
@@ -482,8 +479,7 @@ ecore_main_loop_thread_safe_call_sync(Ecore_Data_Cb callback,
482 * We still advise you, when possible, to use ecore_main_loop_thread_safe_call_async() 479 * We still advise you, when possible, to use ecore_main_loop_thread_safe_call_async()
483 * as it will not block the thread nor the main loop. 480 * as it will not block the thread nor the main loop.
484 */ 481 */
485EAPI int 482EAPI int ecore_thread_main_loop_begin(void);
486ecore_thread_main_loop_begin(void);
487 483
488/** 484/**
489 * @brief Unlock the main loop. 485 * @brief Unlock the main loop.
@@ -496,8 +492,7 @@ ecore_thread_main_loop_begin(void);
496 * After a call to ecore_thread_main_loop_begin(), you need to absolutly 492 * After a call to ecore_thread_main_loop_begin(), you need to absolutly
497 * call ecore_thread_main_loop_end(), or you application will stay frozen. 493 * call ecore_thread_main_loop_end(), or you application will stay frozen.
498 */ 494 */
499EAPI int 495EAPI int ecore_thread_main_loop_end(void);
500ecore_thread_main_loop_end(void);
501 496
502/** 497/**
503 * @} 498 * @}
@@ -631,37 +626,17 @@ struct _Ecore_Event_Signal_Realtime /** Realtime event */
631#endif 626#endif
632}; 627};
633 628
634EAPI Ecore_Event_Handler * 629EAPI Ecore_Event_Handler *ecore_event_handler_add(int type, Ecore_Event_Handler_Cb func, const void *data);
635ecore_event_handler_add(int type, 630EAPI void *ecore_event_handler_del(Ecore_Event_Handler *event_handler);
636 Ecore_Event_Handler_Cb func, 631EAPI Ecore_Event *ecore_event_add(int type, void *ev, Ecore_End_Cb func_free, void *data);
637 const void *data); 632EAPI void *ecore_event_del(Ecore_Event *event);
638EAPI void * 633EAPI void *ecore_event_handler_data_get(Ecore_Event_Handler *eh);
639 ecore_event_handler_del(Ecore_Event_Handler *event_handler); 634EAPI void *ecore_event_handler_data_set(Ecore_Event_Handler *eh, const void *data);
640EAPI Ecore_Event * 635EAPI int ecore_event_type_new(void);
641 ecore_event_add(int type, 636EAPI Ecore_Event_Filter *ecore_event_filter_add(Ecore_Data_Cb func_start, Ecore_Filter_Cb func_filter, Ecore_End_Cb func_end, const void *data);
642 void *ev, 637EAPI void *ecore_event_filter_del(Ecore_Event_Filter *ef);
643 Ecore_End_Cb func_free, 638EAPI int ecore_event_current_type_get(void);
644 void *data); 639EAPI void *ecore_event_current_event_get(void);
645EAPI void *
646 ecore_event_del(Ecore_Event *event);
647EAPI void *
648 ecore_event_handler_data_get(Ecore_Event_Handler *eh);
649EAPI void *
650 ecore_event_handler_data_set(Ecore_Event_Handler *eh,
651 const void *data);
652EAPI int
653 ecore_event_type_new(void);
654EAPI Ecore_Event_Filter *
655 ecore_event_filter_add(Ecore_Data_Cb func_start,
656 Ecore_Filter_Cb func_filter,
657 Ecore_End_Cb func_end,
658 const void *data);
659EAPI void *
660 ecore_event_filter_del(Ecore_Event_Filter *ef);
661EAPI int
662 ecore_event_current_type_get(void);
663EAPI void *
664 ecore_event_current_event_get(void);
665 640
666/** 641/**
667 * @} 642 * @}
@@ -702,11 +677,11 @@ typedef enum _Ecore_Exe_Flags Ecore_Exe_Flags;
702 677
703enum _Ecore_Exe_Win32_Priority 678enum _Ecore_Exe_Win32_Priority
704{ 679{
705 ECORE_EXE_WIN32_PRIORITY_IDLE, /**< Idle priority, for monitoring the system */ 680 ECORE_EXE_WIN32_PRIORITY_IDLE, /**< Idle priority, for monitoring the system */
706 ECORE_EXE_WIN32_PRIORITY_BELOW_NORMAL, /**< Below default priority */ 681 ECORE_EXE_WIN32_PRIORITY_BELOW_NORMAL, /**< Below default priority */
707 ECORE_EXE_WIN32_PRIORITY_NORMAL, /**< Default priority */ 682 ECORE_EXE_WIN32_PRIORITY_NORMAL, /**< Default priority */
708 ECORE_EXE_WIN32_PRIORITY_ABOVE_NORMAL, /**< Above default priority */ 683 ECORE_EXE_WIN32_PRIORITY_ABOVE_NORMAL, /**< Above default priority */
709 ECORE_EXE_WIN32_PRIORITY_HIGH, /**< High priority, use with care as other threads in the system will not get processor time */ 684 ECORE_EXE_WIN32_PRIORITY_HIGH, /**< High priority, use with care as other threads in the system will not get processor time */
710 ECORE_EXE_WIN32_PRIORITY_REALTIME /**< Realtime priority, should be almost never used as it can interrupt system threads that manage mouse input, keyboard input, and background disk flushing */ 685 ECORE_EXE_WIN32_PRIORITY_REALTIME /**< Realtime priority, should be almost never used as it can interrupt system threads that manage mouse input, keyboard input, and background disk flushing */
711}; 686};
712typedef enum _Ecore_Exe_Win32_Priority Ecore_Exe_Win32_Priority; 687typedef enum _Ecore_Exe_Win32_Priority Ecore_Exe_Win32_Priority;
@@ -759,72 +734,32 @@ struct _Ecore_Exe_Event_Data /** Data from a child process event */
759 Ecore_Exe_Event_Data_Line *lines; /**< an array of line data if line buffered, the last one has it's line member set to NULL */ 734 Ecore_Exe_Event_Data_Line *lines; /**< an array of line data if line buffered, the last one has it's line member set to NULL */
760}; 735};
761 736
762EAPI void 737EAPI void ecore_exe_run_priority_set(int pri);
763 ecore_exe_run_priority_set(int pri); 738EAPI int ecore_exe_run_priority_get(void);
764EAPI int 739EAPI Ecore_Exe *ecore_exe_run(const char *exe_cmd, const void *data);
765 ecore_exe_run_priority_get(void); 740EAPI Ecore_Exe *ecore_exe_pipe_run(const char *exe_cmd, Ecore_Exe_Flags flags, const void *data);
766EAPI Ecore_Exe * 741EAPI void ecore_exe_callback_pre_free_set(Ecore_Exe *exe, Ecore_Exe_Cb func);
767 ecore_exe_run(const char *exe_cmd, 742EAPI Eina_Bool ecore_exe_send(Ecore_Exe *exe, const void *data, int size);
768 const void *data); 743EAPI void ecore_exe_close_stdin(Ecore_Exe *exe);
769EAPI Ecore_Exe * 744EAPI void ecore_exe_auto_limits_set(Ecore_Exe *exe, int start_bytes, int end_bytes, int start_lines, int end_lines);
770ecore_exe_pipe_run(const char *exe_cmd, 745EAPI Ecore_Exe_Event_Data *ecore_exe_event_data_get(Ecore_Exe *exe, Ecore_Exe_Flags flags);
771 Ecore_Exe_Flags flags, 746EAPI void ecore_exe_event_data_free(Ecore_Exe_Event_Data *data);
772 const void *data); 747EAPI void *ecore_exe_free(Ecore_Exe *exe);
773EAPI void 748EAPI pid_t ecore_exe_pid_get(const Ecore_Exe *exe);
774ecore_exe_callback_pre_free_set(Ecore_Exe *exe, 749EAPI void ecore_exe_tag_set(Ecore_Exe *exe, const char *tag);
775 Ecore_Exe_Cb func); 750EAPI const char *ecore_exe_tag_get(const Ecore_Exe *exe);
776EAPI Eina_Bool 751EAPI const char *ecore_exe_cmd_get(const Ecore_Exe *exe);
777ecore_exe_send(Ecore_Exe *exe, 752EAPI void *ecore_exe_data_get(const Ecore_Exe *exe);
778 const void *data, 753EAPI void *ecore_exe_data_set(Ecore_Exe *exe, void *data);
779 int size); 754EAPI Ecore_Exe_Flags ecore_exe_flags_get(const Ecore_Exe *exe);
780EAPI void 755EAPI void ecore_exe_pause(Ecore_Exe *exe);
781 ecore_exe_close_stdin(Ecore_Exe *exe); 756EAPI void ecore_exe_continue(Ecore_Exe *exe);
782EAPI void 757EAPI void ecore_exe_interrupt(Ecore_Exe *exe);
783 ecore_exe_auto_limits_set(Ecore_Exe *exe, 758EAPI void ecore_exe_quit(Ecore_Exe *exe);
784 int start_bytes, 759EAPI void ecore_exe_terminate(Ecore_Exe *exe);
785 int end_bytes, 760EAPI void ecore_exe_kill(Ecore_Exe *exe);
786 int start_lines, 761EAPI void ecore_exe_signal(Ecore_Exe *exe, int num);
787 int end_lines); 762EAPI void ecore_exe_hup(Ecore_Exe *exe);
788EAPI Ecore_Exe_Event_Data *
789ecore_exe_event_data_get(Ecore_Exe *exe,
790 Ecore_Exe_Flags flags);
791EAPI void
792 ecore_exe_event_data_free(Ecore_Exe_Event_Data *data);
793EAPI void *
794 ecore_exe_free(Ecore_Exe *exe);
795EAPI pid_t
796 ecore_exe_pid_get(const Ecore_Exe *exe);
797EAPI void
798 ecore_exe_tag_set(Ecore_Exe *exe,
799 const char *tag);
800EAPI const char *
801 ecore_exe_tag_get(const Ecore_Exe *exe);
802EAPI const char *
803 ecore_exe_cmd_get(const Ecore_Exe *exe);
804EAPI void *
805 ecore_exe_data_get(const Ecore_Exe *exe);
806EAPI void *
807 ecore_exe_data_set(Ecore_Exe *exe,
808 void *data);
809EAPI Ecore_Exe_Flags
810 ecore_exe_flags_get(const Ecore_Exe *exe);
811EAPI void
812 ecore_exe_pause(Ecore_Exe *exe);
813EAPI void
814 ecore_exe_continue(Ecore_Exe *exe);
815EAPI void
816 ecore_exe_interrupt(Ecore_Exe *exe);
817EAPI void
818 ecore_exe_quit(Ecore_Exe *exe);
819EAPI void
820 ecore_exe_terminate(Ecore_Exe *exe);
821EAPI void
822 ecore_exe_kill(Ecore_Exe *exe);
823EAPI void
824 ecore_exe_signal(Ecore_Exe *exe,
825 int num);
826EAPI void
827ecore_exe_hup(Ecore_Exe *exe);
828 763
829/** 764/**
830 * @} 765 * @}
@@ -839,7 +774,7 @@ ecore_exe_hup(Ecore_Exe *exe);
839 * for data available for reading, for the availability to write 774 * for data available for reading, for the availability to write
840 * without blocking, and for errors on the file descriptor. 775 * without blocking, and for errors on the file descriptor.
841 * 776 *
842 * ecore_main_fd_handler_add() is used to setup a handler for a 777 *ecore_main_fd_handler_add() is used to setup a handler for a
843 * given file descriptor. This file descriptor can be the standard 778 * given file descriptor. This file descriptor can be the standard
844 * input, a network socket, a stream received through some driver 779 * input, a network socket, a stream received through some driver
845 * of a hardware decoder, etc. Thus it can contain errors, like a 780 * of a hardware decoder, etc. Thus it can contain errors, like a
@@ -888,34 +823,15 @@ typedef void (*Ecore_Fd_Prep_Cb)(void *data, Ecore_Fd_Handler *fd_handler);
888 */ 823 */
889typedef Eina_Bool (*Ecore_Win32_Handle_Cb)(void *data, Ecore_Win32_Handler *wh); 824typedef Eina_Bool (*Ecore_Win32_Handle_Cb)(void *data, Ecore_Win32_Handler *wh);
890 825
891EAPI Ecore_Fd_Handler * 826EAPI Ecore_Fd_Handler *ecore_main_fd_handler_add(int fd, Ecore_Fd_Handler_Flags flags, Ecore_Fd_Cb func, const void *data, Ecore_Fd_Cb buf_func, const void *buf_data);
892ecore_main_fd_handler_add(int fd, 827EAPI void ecore_main_fd_handler_prepare_callback_set(Ecore_Fd_Handler *fd_handler, Ecore_Fd_Prep_Cb func, const void *data);
893 Ecore_Fd_Handler_Flags flags, 828EAPI void *ecore_main_fd_handler_del(Ecore_Fd_Handler *fd_handler);
894 Ecore_Fd_Cb func, 829EAPI int ecore_main_fd_handler_fd_get(Ecore_Fd_Handler *fd_handler);
895 const void *data, 830EAPI Eina_Bool ecore_main_fd_handler_active_get(Ecore_Fd_Handler *fd_handler, Ecore_Fd_Handler_Flags flags);
896 Ecore_Fd_Cb buf_func, 831EAPI void ecore_main_fd_handler_active_set(Ecore_Fd_Handler *fd_handler, Ecore_Fd_Handler_Flags flags);
897 const void *buf_data); 832
898EAPI void 833EAPI Ecore_Win32_Handler *ecore_main_win32_handler_add(void *h, Ecore_Win32_Handle_Cb func, const void *data);
899ecore_main_fd_handler_prepare_callback_set(Ecore_Fd_Handler *fd_handler, 834EAPI void *ecore_main_win32_handler_del(Ecore_Win32_Handler *win32_handler);
900 Ecore_Fd_Prep_Cb func,
901 const void *data);
902EAPI void *
903 ecore_main_fd_handler_del(Ecore_Fd_Handler *fd_handler);
904EAPI int
905 ecore_main_fd_handler_fd_get(Ecore_Fd_Handler *fd_handler);
906EAPI Eina_Bool
907 ecore_main_fd_handler_active_get(Ecore_Fd_Handler *fd_handler,
908 Ecore_Fd_Handler_Flags flags);
909EAPI void
910ecore_main_fd_handler_active_set(Ecore_Fd_Handler *fd_handler,
911 Ecore_Fd_Handler_Flags flags);
912
913EAPI Ecore_Win32_Handler *
914ecore_main_win32_handler_add(void *h,
915 Ecore_Win32_Handle_Cb func,
916 const void *data);
917EAPI void *
918ecore_main_win32_handler_del(Ecore_Win32_Handler *win32_handler);
919 835
920/** 836/**
921 * @} 837 * @}
@@ -930,7 +846,7 @@ ecore_main_win32_handler_del(Ecore_Win32_Handler *win32_handler);
930 * areound a core poll interval. For now only 1 core poller type is 846 * areound a core poll interval. For now only 1 core poller type is
931 * supprted: ECORE_POLLER_CORE 847 * supprted: ECORE_POLLER_CORE
932 * 848 *
933 * Example of @ref Ecore_Poller: 849 * Example of @ref Ecore_Poller :
934 * @li @ref ecore_poller_example_c 850 * @li @ref ecore_poller_example_c
935 * 851 *
936 * @ingroup Ecore_Main_Loop_Group 852 * @ingroup Ecore_Main_Loop_Group
@@ -946,21 +862,11 @@ typedef enum _Ecore_Poller_Type Ecore_Poller_Type;
946 862
947typedef struct _Ecore_Poller Ecore_Poller; /**< A handle for pollers */ 863typedef struct _Ecore_Poller Ecore_Poller; /**< A handle for pollers */
948 864
949EAPI void 865EAPI void ecore_poller_poll_interval_set(Ecore_Poller_Type type, double poll_time);
950ecore_poller_poll_interval_set(Ecore_Poller_Type type, 866EAPI double ecore_poller_poll_interval_get(Ecore_Poller_Type type);
951 double poll_time); 867EAPI Eina_Bool ecore_poller_poller_interval_set(Ecore_Poller *poller, int interval);
952EAPI double 868EAPI int ecore_poller_poller_interval_get(Ecore_Poller *poller);
953 ecore_poller_poll_interval_get(Ecore_Poller_Type type); 869EAPI Ecore_Poller *ecore_poller_add(Ecore_Poller_Type type, int interval, Ecore_Task_Cb func, const void *data);
954EAPI Eina_Bool
955 ecore_poller_poller_interval_set(Ecore_Poller *poller,
956 int interval);
957EAPI int
958 ecore_poller_poller_interval_get(Ecore_Poller *poller);
959EAPI Ecore_Poller *
960 ecore_poller_add(Ecore_Poller_Type type,
961 int interval,
962 Ecore_Task_Cb func,
963 const void *data);
964EAPI void *ecore_poller_del(Ecore_Poller *poller); 870EAPI void *ecore_poller_del(Ecore_Poller *poller);
965 871
966/** 872/**
@@ -984,14 +890,14 @@ EAPI void *ecore_poller_del(Ecore_Poller *poller);
984 * ... do some more animating ... 890 * ... do some more animating ...
985 * } 891 * }
986 * ... 892 * ...
987 * ecore_animator_timeline_add(2, _do_animation, my_evas_object); 893 *ecore_animator_timeline_add(2, _do_animation, my_evas_object);
988 * @endcode 894 * @endcode
989 * In the sample above we create an animation to move 895 * In the sample above we create an animation to move
990 * @c my_evas_object from position (0,0) to (100,100) in 2 seconds. 896 * @c my_evas_object from position (0,0) to (100,100) in 2 seconds.
991 * 897 *
992 * If your animation will run for an unspecified amount of time you 898 * If your animation will run for an unspecified amount of time you
993 * can use ecore_animator_add(), which is like using 899 * can use ecore_animator_add(), which is like using
994 * ecore_timer_add() with the interval being the 900 *ecore_timer_add() with the interval being the
995 * @ref ecore_animator_frametime_set "framerate". Note that this has 901 * @ref ecore_animator_frametime_set "framerate". Note that this has
996 * tangible benefits to creating a timer for each animation in terms 902 * tangible benefits to creating a timer for each animation in terms
997 * of performance. 903 * of performance.
@@ -1057,8 +963,7 @@ typedef Eina_Bool (*Ecore_Timeline_Cb)(void *data, double pos);
1057 * @see ecore_animator_timeline_add() 963 * @see ecore_animator_timeline_add()
1058 * @see ecore_animator_frametime_set() 964 * @see ecore_animator_frametime_set()
1059 */ 965 */
1060EAPI Ecore_Animator *ecore_animator_add(Ecore_Task_Cb func, 966EAPI Ecore_Animator *ecore_animator_add(Ecore_Task_Cb func, const void *data);
1061 const void *data);
1062/** 967/**
1063 * @brief Add a animator that runs for a limited time 968 * @brief Add a animator that runs for a limited time
1064 * 969 *
@@ -1086,10 +991,7 @@ EAPI Ecore_Animator *ecore_animator_add(Ecore_Task_Cb func,
1086 * @see ecore_animator_pos_map() 991 * @see ecore_animator_pos_map()
1087 * @since 1.1.0 992 * @since 1.1.0
1088 */ 993 */
1089EAPI Ecore_Animator * 994EAPI Ecore_Animator *ecore_animator_timeline_add(double runtime, Ecore_Timeline_Cb func, const void *data);
1090ecore_animator_timeline_add(double runtime,
1091 Ecore_Timeline_Cb func,
1092 const void *data);
1093/** 995/**
1094 * @brief Delete the specified animator from the animator list. 996 * @brief Delete the specified animator from the animator list.
1095 * 997 *
@@ -1103,8 +1005,7 @@ ecore_animator_timeline_add(double runtime,
1103 * is invalid and should not be used again. It will not get called again after 1005 * is invalid and should not be used again. It will not get called again after
1104 * deletion. 1006 * deletion.
1105 */ 1007 */
1106EAPI void * 1008EAPI void *ecore_animator_del(Ecore_Animator *animator);
1107ecore_animator_del(Ecore_Animator *animator);
1108/** 1009/**
1109 * @brief Suspend the specified animator. 1010 * @brief Suspend the specified animator.
1110 * 1011 *
@@ -1115,12 +1016,11 @@ ecore_animator_del(Ecore_Animator *animator);
1115 * 1016 *
1116 * @warning Freezing an animator doesn't freeze accounting of how long that 1017 * @warning Freezing an animator doesn't freeze accounting of how long that
1117 * animator has been running. Therefore if the animator was created with 1018 * animator has been running. Therefore if the animator was created with
1118 * ecore_animator_timeline_add() the @p pos argument given to the callback 1019 *ecore_animator_timeline_add() the @p pos argument given to the callback
1119 * will increase as if the animator hadn't been frozen and the animator may 1020 * will increase as if the animator hadn't been frozen and the animator may
1120 * have it's execution halted if @p runtime elapsed. 1021 * have it's execution halted if @p runtime elapsed.
1121 */ 1022 */
1122EAPI void 1023EAPI void ecore_animator_freeze(Ecore_Animator *animator);
1123ecore_animator_freeze(Ecore_Animator *animator);
1124/** 1024/**
1125 * @brief Restore execution of the specified animator. 1025 * @brief Restore execution of the specified animator.
1126 * 1026 *
@@ -1129,8 +1029,7 @@ ecore_animator_freeze(Ecore_Animator *animator);
1129 * The specified @p animator will be put back in the set of animators that are 1029 * The specified @p animator will be put back in the set of animators that are
1130 * executed during main loop. 1030 * executed during main loop.
1131 */ 1031 */
1132EAPI void 1032EAPI void ecore_animator_thaw(Ecore_Animator *animator);
1133ecore_animator_thaw(Ecore_Animator *animator);
1134/** 1033/**
1135 * @brief Set the animator call interval in seconds. 1034 * @brief Set the animator call interval in seconds.
1136 * 1035 *
@@ -1144,8 +1043,7 @@ ecore_animator_thaw(Ecore_Animator *animator);
1144 * 1043 *
1145 * @note The default @p frametime value is 1/30th of a second. 1044 * @note The default @p frametime value is 1/30th of a second.
1146 */ 1045 */
1147EAPI void 1046EAPI void ecore_animator_frametime_set(double frametime);
1148ecore_animator_frametime_set(double frametime);
1149/** 1047/**
1150 * @brief Get the animator call interval in seconds. 1048 * @brief Get the animator call interval in seconds.
1151 * 1049 *
@@ -1155,8 +1053,7 @@ ecore_animator_frametime_set(double frametime);
1155 * 1053 *
1156 * @see ecore_animator_frametime_set() 1054 * @see ecore_animator_frametime_set()
1157 */ 1055 */
1158EAPI double 1056EAPI double ecore_animator_frametime_get(void);
1159ecore_animator_frametime_get(void);
1160/** 1057/**
1161 * @brief Maps an input position from 0.0 to 1.0 along a timeline to a 1058 * @brief Maps an input position from 0.0 to 1.0 along a timeline to a
1162 * position in a different curve. 1059 * position in a different curve.
@@ -1217,11 +1114,7 @@ ecore_animator_frametime_get(void);
1217 * 1114 *
1218 * @since 1.1.0 1115 * @since 1.1.0
1219 */ 1116 */
1220EAPI double 1117EAPI double ecore_animator_pos_map(double pos, Ecore_Pos_Map map, double v1, double v2);
1221ecore_animator_pos_map(double pos,
1222 Ecore_Pos_Map map,
1223 double v1,
1224 double v2);
1225/** 1118/**
1226 * @brief Set the source of animator ticks for the mainloop 1119 * @brief Set the source of animator ticks for the mainloop
1227 * 1120 *
@@ -1238,14 +1131,13 @@ ecore_animator_pos_map(double pos,
1238 * ECORE_ANIMATOR_SOURCE_CUSTOM and then drive it yourself based on some input 1131 * ECORE_ANIMATOR_SOURCE_CUSTOM and then drive it yourself based on some input
1239 * tick source (like another application via ipc, some vertical blanking 1132 * tick source (like another application via ipc, some vertical blanking
1240 * interrupt interrupt etc.) using 1133 * interrupt interrupt etc.) using
1241 * ecore_animator_custom_source_tick_begin_callback_set() and 1134 *ecore_animator_custom_source_tick_begin_callback_set() and
1242 * ecore_animator_custom_source_tick_end_callback_set() to set the functions 1135 *ecore_animator_custom_source_tick_end_callback_set() to set the functions
1243 * that will be called to start and stop the ticking source, which when it 1136 * that will be called to start and stop the ticking source, which when it
1244 * gets a "tick" should call ecore_animator_custom_tick() to make the "tick" over 1 1137 * gets a "tick" should call ecore_animator_custom_tick() to make the "tick" over 1
1245 * frame. 1138 * frame.
1246 */ 1139 */
1247EAPI void 1140EAPI void ecore_animator_source_set(Ecore_Animator_Source source);
1248ecore_animator_source_set(Ecore_Animator_Source source);
1249/** 1141/**
1250 * @brief Get the animator source currently set. 1142 * @brief Get the animator source currently set.
1251 * 1143 *
@@ -1255,8 +1147,7 @@ ecore_animator_source_set(Ecore_Animator_Source source);
1255 * 1147 *
1256 * @see ecore_animator_source_set() 1148 * @see ecore_animator_source_set()
1257 */ 1149 */
1258EAPI Ecore_Animator_Source 1150EAPI Ecore_Animator_Source ecore_animator_source_get(void);
1259ecore_animator_source_get(void);
1260/** 1151/**
1261 * @brief Set the function that begins a custom animator tick source 1152 * @brief Set the function that begins a custom animator tick source
1262 * 1153 *
@@ -1266,7 +1157,7 @@ ecore_animator_source_get(void);
1266 * The Ecore Animator infrastructure handles tracking if animators are needed 1157 * The Ecore Animator infrastructure handles tracking if animators are needed
1267 * or not and which ones need to be called and when, but when the tick source 1158 * or not and which ones need to be called and when, but when the tick source
1268 * is custom, you have to provide a tick source by calling 1159 * is custom, you have to provide a tick source by calling
1269 * ecore_animator_custom_tick() to indicate a frame tick happened. In order 1160 *ecore_animator_custom_tick() to indicate a frame tick happened. In order
1270 * to allow the source of ticks to be dynamically enabled or disabled as 1161 * to allow the source of ticks to be dynamically enabled or disabled as
1271 * needed, the @p func when set is called to enable the tick source to 1162 * needed, the @p func when set is called to enable the tick source to
1272 * produce tick events that call ecore_animator_custom_tick(). If @p func 1163 * produce tick events that call ecore_animator_custom_tick(). If @p func
@@ -1276,9 +1167,7 @@ ecore_animator_source_get(void);
1276 * @see ecore_animator_custom_source_tick_end_callback_set() 1167 * @see ecore_animator_custom_source_tick_end_callback_set()
1277 * @see ecore_animator_custom_tick() 1168 * @see ecore_animator_custom_tick()
1278 */ 1169 */
1279EAPI void 1170EAPI void ecore_animator_custom_source_tick_begin_callback_set(Ecore_Cb func, const void *data);
1280ecore_animator_custom_source_tick_begin_callback_set(Ecore_Cb func,
1281 const void *data);
1282/** 1171/**
1283 * @brief Set the function that ends a custom animator tick source 1172 * @brief Set the function that ends a custom animator tick source
1284 * 1173 *
@@ -1286,18 +1175,16 @@ ecore_animator_custom_source_tick_begin_callback_set(Ecore_Cb func,
1286 * @param data The data passed to the tick end function as its parameter 1175 * @param data The data passed to the tick end function as its parameter
1287 * 1176 *
1288 * This function is a matching pair to the function set by 1177 * This function is a matching pair to the function set by
1289 * ecore_animator_custom_source_tick_begin_callback_set() and is called 1178 *ecore_animator_custom_source_tick_begin_callback_set() and is called
1290 * when ticking is to stop. If @p func is NULL then no function will be 1179 * when ticking is to stop. If @p func is NULL then no function will be
1291 * called to stop ticking. For more information please see 1180 * called to stop ticking. For more information please see
1292 * ecore_animator_custom_source_tick_begin_callback_set(). 1181 *ecore_animator_custom_source_tick_begin_callback_set().
1293 * 1182 *
1294 * @see ecore_animator_source_set() 1183 * @see ecore_animator_source_set()
1295 * @see ecore_animator_custom_source_tick_begin_callback_set() 1184 * @see ecore_animator_custom_source_tick_begin_callback_set()
1296 * @see ecore_animator_custom_tick() 1185 * @see ecore_animator_custom_tick()
1297 */ 1186 */
1298EAPI void 1187EAPI void ecore_animator_custom_source_tick_end_callback_set(Ecore_Cb func, const void *data);
1299ecore_animator_custom_source_tick_end_callback_set(Ecore_Cb func,
1300 const void *data);
1301/** 1188/**
1302 * @brief Trigger a custom animator tick 1189 * @brief Trigger a custom animator tick
1303 * 1190 *
@@ -1311,8 +1198,7 @@ ecore_animator_custom_source_tick_end_callback_set(Ecore_Cb func,
1311 * @see ecore_animator_custom_source_tick_begin_callback_set 1198 * @see ecore_animator_custom_source_tick_begin_callback_set
1312 * @see ecore_animator_custom_source_tick_end_callback_set()() 1199 * @see ecore_animator_custom_source_tick_end_callback_set()()
1313 */ 1200 */
1314EAPI void 1201EAPI void ecore_animator_custom_tick(void);
1315ecore_animator_custom_tick(void);
1316 1202
1317/** 1203/**
1318 * @} 1204 * @}
@@ -1338,43 +1224,23 @@ ecore_animator_custom_tick(void);
1338 1224
1339typedef struct _Ecore_Timer Ecore_Timer; /**< A handle for timers */ 1225typedef struct _Ecore_Timer Ecore_Timer; /**< A handle for timers */
1340 1226
1341EAPI double 1227EAPI double ecore_time_get(void);
1342 ecore_time_get(void); 1228EAPI double ecore_time_unix_get(void);
1343EAPI double 1229EAPI double ecore_loop_time_get(void);
1344 ecore_time_unix_get(void); 1230
1345EAPI double 1231EAPI Ecore_Timer *ecore_timer_add(double in, Ecore_Task_Cb func, const void *data);
1346 ecore_loop_time_get(void); 1232EAPI Ecore_Timer *ecore_timer_loop_add(double in, Ecore_Task_Cb func, const void *data);
1347 1233EAPI void *ecore_timer_del(Ecore_Timer *timer);
1348EAPI Ecore_Timer * 1234EAPI void ecore_timer_interval_set(Ecore_Timer *timer, double in);
1349ecore_timer_add(double in, 1235EAPI double ecore_timer_interval_get(Ecore_Timer *timer);
1350 Ecore_Task_Cb func, 1236EAPI void ecore_timer_freeze(Ecore_Timer *timer);
1351 const void *data); 1237EAPI void ecore_timer_thaw(Ecore_Timer *timer);
1352EAPI Ecore_Timer * 1238EAPI void ecore_timer_delay(Ecore_Timer *timer, double add);
1353ecore_timer_loop_add(double in, 1239EAPI void ecore_timer_reset(Ecore_Timer *timer);
1354 Ecore_Task_Cb func, 1240EAPI double ecore_timer_pending_get(Ecore_Timer *timer);
1355 const void *data); 1241EAPI double ecore_timer_precision_get(void);
1356EAPI void * 1242EAPI void ecore_timer_precision_set(double precision);
1357 ecore_timer_del(Ecore_Timer *timer); 1243EAPI char *ecore_timer_dump(void);
1358EAPI void
1359 ecore_timer_interval_set(Ecore_Timer *timer,
1360 double in);
1361EAPI double
1362 ecore_timer_interval_get(Ecore_Timer *timer);
1363EAPI void
1364 ecore_timer_freeze(Ecore_Timer *timer);
1365EAPI void
1366 ecore_timer_thaw(Ecore_Timer *timer);
1367EAPI void
1368 ecore_timer_delay(Ecore_Timer *timer,
1369 double add);
1370EAPI double
1371 ecore_timer_pending_get(Ecore_Timer *timer);
1372EAPI double
1373 ecore_timer_precision_get(void);
1374EAPI void
1375 ecore_timer_precision_set(double precision);
1376EAPI char *
1377 ecore_timer_dump(void);
1378 1244
1379/** 1245/**
1380 * @} 1246 * @}
@@ -1443,9 +1309,7 @@ typedef struct _Ecore_Idle_Exiter Ecore_Idle_Exiter; /**< A handle for idle exi
1443 * 1309 *
1444 * Idlers are useful for progressively prossessing data without blocking. 1310 * Idlers are useful for progressively prossessing data without blocking.
1445 */ 1311 */
1446EAPI Ecore_Idler * 1312EAPI Ecore_Idler *ecore_idler_add(Ecore_Task_Cb func, const void *data);
1447ecore_idler_add(Ecore_Task_Cb func,
1448 const void *data);
1449 1313
1450/** 1314/**
1451 * Delete an idler callback from the list to be executed. 1315 * Delete an idler callback from the list to be executed.
@@ -1453,23 +1317,14 @@ ecore_idler_add(Ecore_Task_Cb func,
1453 * @return The data pointer passed to the idler callback on success. NULL 1317 * @return The data pointer passed to the idler callback on success. NULL
1454 * otherwise. 1318 * otherwise.
1455 */ 1319 */
1456EAPI void * 1320EAPI void *ecore_idler_del(Ecore_Idler *idler);
1457ecore_idler_del(Ecore_Idler *idler);
1458 1321
1459EAPI Ecore_Idle_Enterer * 1322EAPI Ecore_Idle_Enterer *ecore_idle_enterer_add(Ecore_Task_Cb func, const void *data);
1460ecore_idle_enterer_add(Ecore_Task_Cb func, 1323EAPI Ecore_Idle_Enterer *ecore_idle_enterer_before_add(Ecore_Task_Cb func, const void *data);
1461 const void *data); 1324EAPI void *ecore_idle_enterer_del(Ecore_Idle_Enterer *idle_enterer);
1462EAPI Ecore_Idle_Enterer *
1463ecore_idle_enterer_before_add(Ecore_Task_Cb func,
1464 const void *data);
1465EAPI void *
1466ecore_idle_enterer_del(Ecore_Idle_Enterer *idle_enterer);
1467 1325
1468EAPI Ecore_Idle_Exiter * 1326EAPI Ecore_Idle_Exiter *ecore_idle_exiter_add(Ecore_Task_Cb func, const void *data);
1469ecore_idle_exiter_add(Ecore_Task_Cb func, 1327EAPI void *ecore_idle_exiter_del(Ecore_Idle_Exiter *idle_exiter);
1470 const void *data);
1471EAPI void *
1472ecore_idle_exiter_del(Ecore_Idle_Exiter *idle_exiter);
1473 1328
1474/** 1329/**
1475 * @} 1330 * @}
@@ -1525,7 +1380,7 @@ ecore_idle_exiter_del(Ecore_Idle_Exiter *idle_exiter);
1525 * 1380 *
1526 * The worker function, that's the one running in the thread, also receives 1381 * The worker function, that's the one running in the thread, also receives
1527 * an ::Ecore_Thread handler that can be used with ecore_thread_cancel() and 1382 * an ::Ecore_Thread handler that can be used with ecore_thread_cancel() and
1528 * ecore_thread_check(), sharing the flag with the main loop. But this 1383 *ecore_thread_check(), sharing the flag with the main loop. But this
1529 * handler is also associated with the thread where the function is running. 1384 * handler is also associated with the thread where the function is running.
1530 * This has strong implications when working with thread local data. 1385 * This has strong implications when working with thread local data.
1531 * 1386 *
@@ -1611,7 +1466,7 @@ typedef void (*Ecore_Thread_Notify_Cb)(void *data, Ecore_Thread *thread, void *m
1611 * so here it's safe to use anything from the EFL freely. 1466 * so here it's safe to use anything from the EFL freely.
1612 * 1467 *
1613 * The thread can also be cancelled before its completion calling 1468 * The thread can also be cancelled before its completion calling
1614 * ecore_thread_cancel(), either from the main thread or @p func_blocking. 1469 *ecore_thread_cancel(), either from the main thread or @p func_blocking.
1615 * In this case, @p func_cancel will be called, also from the main thread 1470 * In this case, @p func_cancel will be called, also from the main thread
1616 * to inform of this happening. If the thread could not be created, this 1471 * to inform of this happening. If the thread could not be created, this
1617 * function will be called and it's @c thread parameter will be NULL. It's 1472 * function will be called and it's @c thread parameter will be NULL. It's
@@ -1636,11 +1491,7 @@ typedef void (*Ecore_Thread_Notify_Cb)(void *data, Ecore_Thread *thread, void *m
1636 * @see ecore_thread_reschedule() 1491 * @see ecore_thread_reschedule()
1637 * @see ecore_thread_max_set() 1492 * @see ecore_thread_max_set()
1638 */ 1493 */
1639EAPI Ecore_Thread * 1494EAPI Ecore_Thread *ecore_thread_run(Ecore_Thread_Cb func_blocking, Ecore_Thread_Cb func_end, Ecore_Thread_Cb func_cancel, const void *data);
1640ecore_thread_run(Ecore_Thread_Cb func_blocking,
1641 Ecore_Thread_Cb func_end,
1642 Ecore_Thread_Cb func_cancel,
1643 const void *data);
1644/** 1495/**
1645 * Launch a thread to run a task than can talk back to the main thread 1496 * Launch a thread to run a task than can talk back to the main thread
1646 * 1497 *
@@ -1681,13 +1532,9 @@ ecore_thread_run(Ecore_Thread_Cb func_blocking,
1681 * @see ecore_thread_reschedule() 1532 * @see ecore_thread_reschedule()
1682 * @see ecore_thread_max_set() 1533 * @see ecore_thread_max_set()
1683 */ 1534 */
1684EAPI Ecore_Thread * 1535EAPI Ecore_Thread *ecore_thread_feedback_run(Ecore_Thread_Cb func_heavy, Ecore_Thread_Notify_Cb func_notify,
1685ecore_thread_feedback_run(Ecore_Thread_Cb func_heavy, 1536 Ecore_Thread_Cb func_end, Ecore_Thread_Cb func_cancel,
1686 Ecore_Thread_Notify_Cb func_notify, 1537 const void *data, Eina_Bool try_no_queue);
1687 Ecore_Thread_Cb func_end,
1688 Ecore_Thread_Cb func_cancel,
1689 const void *data,
1690 Eina_Bool try_no_queue);
1691/** 1538/**
1692 * Cancel a running thread. 1539 * Cancel a running thread.
1693 * 1540 *
@@ -1709,9 +1556,9 @@ ecore_thread_feedback_run(Ecore_Thread_Cb func_heavy,
1709 * @li The function ends and returns normally. If it hadn't been cancelled, 1556 * @li The function ends and returns normally. If it hadn't been cancelled,
1710 * @c func_end would be called here, but instead @c func_cancel will happen. 1557 * @c func_end would be called here, but instead @c func_cancel will happen.
1711 * @li The function returns after requesting to be rescheduled with 1558 * @li The function returns after requesting to be rescheduled with
1712 * ecore_thread_reschedule(). 1559 *ecore_thread_reschedule().
1713 * @li The function is prepared to leave early by checking if 1560 * @li The function is prepared to leave early by checking if
1714 * ecore_thread_check() returns EINA_TRUE. 1561 *ecore_thread_check() returns EINA_TRUE.
1715 * 1562 *
1716 * The user function can cancel itself by calling ecore_thread_cancel(), but 1563 * The user function can cancel itself by calling ecore_thread_cancel(), but
1717 * it should always use the ::Ecore_Thread handle passed to it and never 1564 * it should always use the ::Ecore_Thread handle passed to it and never
@@ -1723,8 +1570,7 @@ ecore_thread_feedback_run(Ecore_Thread_Cb func_heavy,
1723 * 1570 *
1724 * @see ecore_thread_check() 1571 * @see ecore_thread_check()
1725 */ 1572 */
1726EAPI Eina_Bool 1573EAPI Eina_Bool ecore_thread_cancel(Ecore_Thread *thread);
1727ecore_thread_cancel(Ecore_Thread *thread);
1728/** 1574/**
1729 * Checks if a thread is pending cancellation 1575 * Checks if a thread is pending cancellation
1730 * 1576 *
@@ -1744,8 +1590,7 @@ ecore_thread_cancel(Ecore_Thread *thread);
1744 * 1590 *
1745 * @see ecore_thread_cancel() 1591 * @see ecore_thread_cancel()
1746 */ 1592 */
1747EAPI Eina_Bool 1593EAPI Eina_Bool ecore_thread_check(Ecore_Thread *thread);
1748ecore_thread_check(Ecore_Thread *thread);
1749/** 1594/**
1750 * Sends data from the worker thread to the main loop 1595 * Sends data from the worker thread to the main loop
1751 * 1596 *
@@ -1767,9 +1612,7 @@ ecore_thread_check(Ecore_Thread *thread);
1767 * 1612 *
1768 * @see ecore_thread_feedback_run() 1613 * @see ecore_thread_feedback_run()
1769 */ 1614 */
1770EAPI Eina_Bool 1615EAPI Eina_Bool ecore_thread_feedback(Ecore_Thread *thread, const void *msg_data);
1771ecore_thread_feedback(Ecore_Thread *thread,
1772 const void *msg_data);
1773/** 1616/**
1774 * Asks for the function in the thread to be called again at a later time 1617 * Asks for the function in the thread to be called again at a later time
1775 * 1618 *
@@ -1778,7 +1621,7 @@ ecore_thread_feedback(Ecore_Thread *thread,
1778 * EINA_FALSE if anything goes wrong. 1621 * EINA_FALSE if anything goes wrong.
1779 * 1622 *
1780 * This function should be called only from the same function represented 1623 * This function should be called only from the same function represented
1781 * by @pthread. 1624 * by @p thread.
1782 * 1625 *
1783 * Calling this function will mark the thread for a reschedule, so as soon 1626 * Calling this function will mark the thread for a reschedule, so as soon
1784 * as it returns, it will be added to the end of the list of pending tasks. 1627 * as it returns, it will be added to the end of the list of pending tasks.
@@ -1793,8 +1636,7 @@ ecore_thread_feedback(Ecore_Thread *thread,
1793 * Similarly, if the @p thread is cancelled, the reschedule will not take 1636 * Similarly, if the @p thread is cancelled, the reschedule will not take
1794 * effect. 1637 * effect.
1795 */ 1638 */
1796EAPI Eina_Bool 1639EAPI Eina_Bool ecore_thread_reschedule(Ecore_Thread *thread);
1797ecore_thread_reschedule(Ecore_Thread *thread);
1798/** 1640/**
1799 * Gets the number of active threads running jobs 1641 * Gets the number of active threads running jobs
1800 * 1642 *
@@ -1808,8 +1650,7 @@ ecore_thread_reschedule(Ecore_Thread *thread);
1808 * in the return of this function unless the thread creation fails and it 1650 * in the return of this function unless the thread creation fails and it
1809 * falls back to using one from the pool. 1651 * falls back to using one from the pool.
1810 */ 1652 */
1811EAPI int 1653EAPI int ecore_thread_active_get(void);
1812ecore_thread_active_get(void);
1813/** 1654/**
1814 * Gets the number of short jobs waiting for a thread to run 1655 * Gets the number of short jobs waiting for a thread to run
1815 * 1656 *
@@ -1818,8 +1659,7 @@ ecore_thread_active_get(void);
1818 * This returns the number of tasks started with ecore_thread_run() that are 1659 * This returns the number of tasks started with ecore_thread_run() that are
1819 * pending, waiting for a thread to become available to run them. 1660 * pending, waiting for a thread to become available to run them.
1820 */ 1661 */
1821EAPI int 1662EAPI int ecore_thread_pending_get(void);
1822ecore_thread_pending_get(void);
1823/** 1663/**
1824 * Gets the number of feedback jobs waiting for a thread to run 1664 * Gets the number of feedback jobs waiting for a thread to run
1825 * 1665 *
@@ -1828,18 +1668,16 @@ ecore_thread_pending_get(void);
1828 * This returns the number of tasks started with ecore_thread_feedback_run() 1668 * This returns the number of tasks started with ecore_thread_feedback_run()
1829 * that are pending, waiting for a thread to become available to run them. 1669 * that are pending, waiting for a thread to become available to run them.
1830 */ 1670 */
1831EAPI int 1671EAPI int ecore_thread_pending_feedback_get(void);
1832ecore_thread_pending_feedback_get(void);
1833/** 1672/**
1834 * Gets the total number of pending jobs 1673 * Gets the total number of pending jobs
1835 * 1674 *
1836 * @return Number of pending threads running jobs 1675 * @return Number of pending threads running jobs
1837 * 1676 *
1838 * Same as the sum of ecore_thread_pending_get() and 1677 * Same as the sum of ecore_thread_pending_get() and
1839 * ecore_thread_pending_feedback_get(). 1678 *ecore_thread_pending_feedback_get().
1840 */ 1679 */
1841EAPI int 1680EAPI int ecore_thread_pending_total_get(void);
1842ecore_thread_pending_total_get(void);
1843/** 1681/**
1844 * Gets the maximum number of threads that can run simultaneously 1682 * Gets the maximum number of threads that can run simultaneously
1845 * 1683 *
@@ -1847,7 +1685,7 @@ ecore_thread_pending_total_get(void);
1847 * 1685 *
1848 * This returns the maximum number of Ecore_Thread's that may be running at 1686 * This returns the maximum number of Ecore_Thread's that may be running at
1849 * the same time. If this number is reached, new jobs started by either 1687 * the same time. If this number is reached, new jobs started by either
1850 * ecore_thread_run() or ecore_thread_feedback_run() will be added to the 1688 *ecore_thread_run() or ecore_thread_feedback_run() will be added to the
1851 * respective pending queue until one of the running threads finishes its 1689 * respective pending queue until one of the running threads finishes its
1852 * task and becomes available to run a new one. 1690 * task and becomes available to run a new one.
1853 * 1691 *
@@ -1858,8 +1696,7 @@ ecore_thread_pending_total_get(void);
1858 * @see ecore_thread_max_set() 1696 * @see ecore_thread_max_set()
1859 * @see ecore_thread_max_reset() 1697 * @see ecore_thread_max_reset()
1860 */ 1698 */
1861EAPI int 1699EAPI int ecore_thread_max_get(void);
1862ecore_thread_max_get(void);
1863/** 1700/**
1864 * Sets the maximum number of threads allowed to run simultaneously 1701 * Sets the maximum number of threads allowed to run simultaneously
1865 * 1702 *
@@ -1872,8 +1709,7 @@ ecore_thread_max_get(void);
1872 * @see ecore_thread_max_get() 1709 * @see ecore_thread_max_get()
1873 * @see ecore_thread_max_reset() 1710 * @see ecore_thread_max_reset()
1874 */ 1711 */
1875EAPI void 1712EAPI void ecore_thread_max_set(int num);
1876ecore_thread_max_set(int num);
1877/** 1713/**
1878 * Resets the maximum number of concurrently running threads to the default 1714 * Resets the maximum number of concurrently running threads to the default
1879 * 1715 *
@@ -1883,8 +1719,7 @@ ecore_thread_max_set(int num);
1883 * @see ecore_thread_max_get() 1719 * @see ecore_thread_max_get()
1884 * @see ecore_thread_max_set() 1720 * @see ecore_thread_max_set()
1885 */ 1721 */
1886EAPI void 1722EAPI void ecore_thread_max_reset(void);
1887ecore_thread_max_reset(void);
1888/** 1723/**
1889 * Gets the number of threads available for running tasks 1724 * Gets the number of threads available for running tasks
1890 * 1725 *
@@ -1896,8 +1731,7 @@ ecore_thread_max_reset(void);
1896 * changed the maximum number of running threads while other tasks are 1731 * changed the maximum number of running threads while other tasks are
1897 * running. 1732 * running.
1898 */ 1733 */
1899EAPI int 1734EAPI int ecore_thread_available_get(void);
1900ecore_thread_available_get(void);
1901/** 1735/**
1902 * Adds some data to a hash local to the thread 1736 * Adds some data to a hash local to the thread
1903 * 1737 *
@@ -1970,7 +1804,7 @@ ecore_thread_available_get(void);
1970 * because @p thread was terminated and the hash destroyed. This parameter 1804 * because @p thread was terminated and the hash destroyed. This parameter
1971 * may be NULL, in which case @p value needs to be manually freed after 1805 * may be NULL, in which case @p value needs to be manually freed after
1972 * removing it from the hash with either ecore_thread_local_data_del() or 1806 * removing it from the hash with either ecore_thread_local_data_del() or
1973 * ecore_thread_local_data_set(), but it's very unlikely that this is what 1807 *ecore_thread_local_data_set(), but it's very unlikely that this is what
1974 * you want. 1808 * you want.
1975 * 1809 *
1976 * This function, and all of the others in the @c ecore_thread_local_data 1810 * This function, and all of the others in the @c ecore_thread_local_data
@@ -1982,12 +1816,8 @@ ecore_thread_available_get(void);
1982 * @see ecore_thread_local_data_find() 1816 * @see ecore_thread_local_data_find()
1983 * @see ecore_thread_local_data_del() 1817 * @see ecore_thread_local_data_del()
1984 */ 1818 */
1985EAPI Eina_Bool 1819EAPI Eina_Bool ecore_thread_local_data_add(Ecore_Thread *thread, const char *key, void *value,
1986ecore_thread_local_data_add(Ecore_Thread *thread, 1820 Eina_Free_Cb cb, Eina_Bool direct);
1987 const char *key,
1988 void *value,
1989 Eina_Free_Cb cb,
1990 Eina_Bool direct);
1991/** 1821/**
1992 * Sets some data in the hash local to the given thread 1822 * Sets some data in the hash local to the given thread
1993 * 1823 *
@@ -2015,11 +1845,7 @@ ecore_thread_local_data_add(Ecore_Thread *thread,
2015 * @see ecore_thread_local_data_del() 1845 * @see ecore_thread_local_data_del()
2016 * @see ecore_thread_local_data_find() 1846 * @see ecore_thread_local_data_find()
2017 */ 1847 */
2018EAPI void * 1848EAPI void *ecore_thread_local_data_set(Ecore_Thread *thread, const char *key, void *value, Eina_Free_Cb cb);
2019ecore_thread_local_data_set(Ecore_Thread *thread,
2020 const char *key,
2021 void *value,
2022 Eina_Free_Cb cb);
2023/** 1849/**
2024 * Gets data stored in the hash local to the given thread 1850 * Gets data stored in the hash local to the given thread
2025 * 1851 *
@@ -2037,9 +1863,7 @@ ecore_thread_local_data_set(Ecore_Thread *thread,
2037 * @see ecore_thread_local_data_add() 1863 * @see ecore_thread_local_data_add()
2038 * @see ecore_thread_local_data_wait() 1864 * @see ecore_thread_local_data_wait()
2039 */ 1865 */
2040EAPI void * 1866EAPI void *ecore_thread_local_data_find(Ecore_Thread *thread, const char *key);
2041ecore_thread_local_data_find(Ecore_Thread *thread,
2042 const char *key);
2043/** 1867/**
2044 * Deletes from the thread's hash the data corresponding to the given key 1868 * Deletes from the thread's hash the data corresponding to the given key
2045 * 1869 *
@@ -2064,9 +1888,7 @@ ecore_thread_local_data_find(Ecore_Thread *thread,
2064 * 1888 *
2065 * @see ecore_thread_local_data_add() 1889 * @see ecore_thread_local_data_add()
2066 */ 1890 */
2067EAPI Eina_Bool 1891EAPI Eina_Bool ecore_thread_local_data_del(Ecore_Thread *thread, const char *key);
2068ecore_thread_local_data_del(Ecore_Thread *thread,
2069 const char *key);
2070 1892
2071/** 1893/**
2072 * Adds some data to a hash shared by all threads 1894 * Adds some data to a hash shared by all threads
@@ -2096,7 +1918,7 @@ ecore_thread_local_data_del(Ecore_Thread *thread,
2096 * because Ecore Thread was shut down and the hash destroyed. This parameter 1918 * because Ecore Thread was shut down and the hash destroyed. This parameter
2097 * may be NULL, in which case @p value needs to be manually freed after 1919 * may be NULL, in which case @p value needs to be manually freed after
2098 * removing it from the hash with either ecore_thread_global_data_del() or 1920 * removing it from the hash with either ecore_thread_global_data_del() or
2099 * ecore_thread_global_data_set(). 1921 *ecore_thread_global_data_set().
2100 * 1922 *
2101 * Manually freeing any data that was added to the hash with a @p cb function 1923 * Manually freeing any data that was added to the hash with a @p cb function
2102 * is likely to produce a segmentation fault, or any other strange 1924 * is likely to produce a segmentation fault, or any other strange
@@ -2106,11 +1928,7 @@ ecore_thread_local_data_del(Ecore_Thread *thread,
2106 * @see ecore_thread_global_data_set() 1928 * @see ecore_thread_global_data_set()
2107 * @see ecore_thread_global_data_find() 1929 * @see ecore_thread_global_data_find()
2108 */ 1930 */
2109EAPI Eina_Bool 1931EAPI Eina_Bool ecore_thread_global_data_add(const char *key, void *value, Eina_Free_Cb cb, Eina_Bool direct);
2110ecore_thread_global_data_add(const char *key,
2111 void *value,
2112 Eina_Free_Cb cb,
2113 Eina_Bool direct);
2114/** 1932/**
2115 * Sets some data in the hash shared by all threads 1933 * Sets some data in the hash shared by all threads
2116 * 1934 *
@@ -2132,10 +1950,7 @@ ecore_thread_global_data_add(const char *key,
2132 * @see ecore_thread_global_data_del() 1950 * @see ecore_thread_global_data_del()
2133 * @see ecore_thread_global_data_find() 1951 * @see ecore_thread_global_data_find()
2134 */ 1952 */
2135EAPI void * 1953EAPI void *ecore_thread_global_data_set(const char *key, void *value, Eina_Free_Cb cb);
2136ecore_thread_global_data_set(const char *key,
2137 void *value,
2138 Eina_Free_Cb cb);
2139/** 1954/**
2140 * Gets data stored in the hash shared by all threads 1955 * Gets data stored in the hash shared by all threads
2141 * 1956 *
@@ -2152,8 +1967,7 @@ ecore_thread_global_data_set(const char *key,
2152 * @see ecore_thread_global_data_add() 1967 * @see ecore_thread_global_data_add()
2153 * @see ecore_thread_global_data_wait() 1968 * @see ecore_thread_global_data_wait()
2154 */ 1969 */
2155EAPI void * 1970EAPI void *ecore_thread_global_data_find(const char *key);
2156ecore_thread_global_data_find(const char *key);
2157/** 1971/**
2158 * Deletes from the shared hash the data corresponding to the given key 1972 * Deletes from the shared hash the data corresponding to the given key
2159 * 1973 *
@@ -2176,8 +1990,7 @@ ecore_thread_global_data_find(const char *key);
2176 * 1990 *
2177 * @see ecore_thread_global_data_add() 1991 * @see ecore_thread_global_data_add()
2178 */ 1992 */
2179EAPI Eina_Bool 1993EAPI Eina_Bool ecore_thread_global_data_del(const char *key);
2180ecore_thread_global_data_del(const char *key);
2181/** 1994/**
2182 * Gets data stored in the shared hash, or wait for it if it doesn't exist 1995 * Gets data stored in the shared hash, or wait for it if it doesn't exist
2183 * 1996 *
@@ -2190,7 +2003,7 @@ ecore_thread_global_data_del(const char *key);
2190 * If there's nothing in the hash under the given @p key, the function 2003 * If there's nothing in the hash under the given @p key, the function
2191 * will block and wait up to @p seconds seconds for some other thread to 2004 * will block and wait up to @p seconds seconds for some other thread to
2192 * add it with either ecore_thread_global_data_add() or 2005 * add it with either ecore_thread_global_data_add() or
2193 * ecore_thread_global_data_set(). If after waiting there's still no data 2006 *ecore_thread_global_data_set(). If after waiting there's still no data
2194 * to get, NULL will be returned. 2007 * to get, NULL will be returned.
2195 * 2008 *
2196 * If @p seconds is 0, then no waiting will happen and this function works 2009 * If @p seconds is 0, then no waiting will happen and this function works
@@ -2205,9 +2018,7 @@ ecore_thread_global_data_del(const char *key);
2205 * @see ecore_thread_global_data_add() 2018 * @see ecore_thread_global_data_add()
2206 * @see ecore_thread_global_data_find() 2019 * @see ecore_thread_global_data_find()
2207 */ 2020 */
2208EAPI void * 2021EAPI void *ecore_thread_global_data_wait(const char *key, double seconds);
2209ecore_thread_global_data_wait(const char *key,
2210 double seconds);
2211 2022
2212/** 2023/**
2213 * @} 2024 * @}
@@ -2242,27 +2053,14 @@ typedef struct _Ecore_Pipe Ecore_Pipe; /**< A handle for pipes */
2242 */ 2053 */
2243typedef void (*Ecore_Pipe_Cb)(void *data, void *buffer, unsigned int nbyte); 2054typedef void (*Ecore_Pipe_Cb)(void *data, void *buffer, unsigned int nbyte);
2244 2055
2245EAPI Ecore_Pipe * 2056EAPI Ecore_Pipe *ecore_pipe_add(Ecore_Pipe_Cb handler, const void *data);
2246ecore_pipe_add(Ecore_Pipe_Cb handler, 2057EAPI void *ecore_pipe_del(Ecore_Pipe *p);
2247 const void *data); 2058EAPI Eina_Bool ecore_pipe_write(Ecore_Pipe *p, const void *buffer, unsigned int nbytes);
2248EAPI void * 2059EAPI void ecore_pipe_write_close(Ecore_Pipe *p);
2249 ecore_pipe_del(Ecore_Pipe *p); 2060EAPI void ecore_pipe_read_close(Ecore_Pipe *p);
2250EAPI Eina_Bool 2061EAPI void ecore_pipe_thaw(Ecore_Pipe *p);
2251 ecore_pipe_write(Ecore_Pipe *p, 2062EAPI void ecore_pipe_freeze(Ecore_Pipe *p);
2252 const void *buffer, 2063EAPI int ecore_pipe_wait(Ecore_Pipe *p, int message_count, double wait);
2253 unsigned int nbytes);
2254EAPI void
2255 ecore_pipe_write_close(Ecore_Pipe *p);
2256EAPI void
2257 ecore_pipe_read_close(Ecore_Pipe *p);
2258EAPI void
2259 ecore_pipe_thaw(Ecore_Pipe *p);
2260EAPI void
2261 ecore_pipe_freeze(Ecore_Pipe *p);
2262EAPI int
2263 ecore_pipe_wait(Ecore_Pipe *p,
2264 int message_count,
2265 double wait);
2266 2064
2267/** 2065/**
2268 * @} 2066 * @}
@@ -2284,7 +2082,7 @@ EAPI int
2284 * will be processed first). This also gives the chance to other 2082 * will be processed first). This also gives the chance to other
2285 * actions in your program to cancel the job before it is started. 2083 * actions in your program to cancel the job before it is started.
2286 * 2084 *
2287 * Examples of using @ref Ecore_Job: 2085 * Examples of using @ref Ecore_Job :
2288 * @li @ref ecore_job_example_c 2086 * @li @ref ecore_job_example_c
2289 * 2087 *
2290 * @ingroup Ecore_Main_Loop_Group 2088 * @ingroup Ecore_Main_Loop_Group
@@ -2294,11 +2092,8 @@ EAPI int
2294 2092
2295typedef struct _Ecore_Job Ecore_Job; /**< A job handle */ 2093typedef struct _Ecore_Job Ecore_Job; /**< A job handle */
2296 2094
2297EAPI Ecore_Job * 2095EAPI Ecore_Job *ecore_job_add(Ecore_Cb func, const void *data);
2298ecore_job_add(Ecore_Cb func, 2096EAPI void *ecore_job_del(Ecore_Job *job);
2299 const void *data);
2300EAPI void *
2301ecore_job_del(Ecore_Job *job);
2302 2097
2303/** 2098/**
2304 * @} 2099 * @}
@@ -2310,14 +2105,9 @@ ecore_job_del(Ecore_Job *job);
2310 * @{ 2105 * @{
2311 */ 2106 */
2312 2107
2313EAPI void 2108EAPI void ecore_app_args_set(int argc, const char **argv);
2314ecore_app_args_set(int argc, 2109EAPI void ecore_app_args_get(int *argc, char ***argv);
2315 const char **argv); 2110EAPI void ecore_app_restart(void);
2316EAPI void
2317ecore_app_args_get(int *argc,
2318 char ***argv);
2319EAPI void
2320ecore_app_restart(void);
2321 2111
2322/** 2112/**
2323 * @} 2113 * @}
@@ -2331,10 +2121,8 @@ ecore_app_restart(void);
2331 * @{ 2121 * @{
2332 */ 2122 */
2333 2123
2334EAPI void 2124EAPI void ecore_throttle_adjust(double amount);
2335 ecore_throttle_adjust(double amount); 2125EAPI double ecore_throttle_get(void);
2336EAPI double
2337 ecore_throttle_get(void);
2338 2126
2339/** 2127/**
2340 * @} 2128 * @}
diff --git a/libraries/ecore/src/lib/ecore/Makefile.am b/libraries/ecore/src/lib/ecore/Makefile.am
index 2fb6a0a..ec3d99f 100644
--- a/libraries/ecore/src/lib/ecore/Makefile.am
+++ b/libraries/ecore/src/lib/ecore/Makefile.am
@@ -11,6 +11,7 @@ includesdir = $(includedir)/ecore-@VMAJ@
11 11
12libecore_la_SOURCES = \ 12libecore_la_SOURCES = \
13ecore.c \ 13ecore.c \
14ecore_alloc.c \
14ecore_anim.c \ 15ecore_anim.c \
15ecore_app.c \ 16ecore_app.c \
16ecore_events.c \ 17ecore_events.c \
diff --git a/libraries/ecore/src/lib/ecore/Makefile.in b/libraries/ecore/src/lib/ecore/Makefile.in
index e19bfde..66a25cd 100644
--- a/libraries/ecore/src/lib/ecore/Makefile.in
+++ b/libraries/ecore/src/lib/ecore/Makefile.in
@@ -91,8 +91,8 @@ am__base_list = \
91am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includesdir)" 91am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includesdir)"
92LTLIBRARIES = $(lib_LTLIBRARIES) 92LTLIBRARIES = $(lib_LTLIBRARIES)
93libecore_la_DEPENDENCIES = 93libecore_la_DEPENDENCIES =
94am__libecore_la_SOURCES_DIST = ecore.c ecore_anim.c ecore_app.c \ 94am__libecore_la_SOURCES_DIST = ecore.c ecore_alloc.c ecore_anim.c \
95 ecore_events.c ecore_getopt.c ecore_idle_enterer.c \ 95 ecore_app.c ecore_events.c ecore_getopt.c ecore_idle_enterer.c \
96 ecore_idle_exiter.c ecore_idler.c ecore_job.c ecore_main.c \ 96 ecore_idle_exiter.c ecore_idler.c ecore_job.c ecore_main.c \
97 ecore_pipe.c ecore_poll.c ecore_time.c ecore_timer.c \ 97 ecore_pipe.c ecore_poll.c ecore_time.c ecore_timer.c \
98 ecore_thread.c ecore_glib.c ecore_throttle.c ecore_exe_win32.c \ 98 ecore_thread.c ecore_glib.c ecore_throttle.c ecore_exe_win32.c \
@@ -102,13 +102,13 @@ am__libecore_la_SOURCES_DIST = ecore.c ecore_anim.c ecore_app.c \
102@ECORE_HAVE_PS3_TRUE@@ECORE_HAVE_WIN32_FALSE@@ECORE_HAVE_WINCE_FALSE@am__objects_3 = ecore_exe_ps3.lo 102@ECORE_HAVE_PS3_TRUE@@ECORE_HAVE_WIN32_FALSE@@ECORE_HAVE_WINCE_FALSE@am__objects_3 = ecore_exe_ps3.lo
103@ECORE_HAVE_PS3_FALSE@@ECORE_HAVE_WIN32_FALSE@@ECORE_HAVE_WINCE_FALSE@am__objects_4 = ecore_signal.lo \ 103@ECORE_HAVE_PS3_FALSE@@ECORE_HAVE_WIN32_FALSE@@ECORE_HAVE_WINCE_FALSE@am__objects_4 = ecore_signal.lo \
104@ECORE_HAVE_PS3_FALSE@@ECORE_HAVE_WIN32_FALSE@@ECORE_HAVE_WINCE_FALSE@ ecore_exe.lo 104@ECORE_HAVE_PS3_FALSE@@ECORE_HAVE_WIN32_FALSE@@ECORE_HAVE_WINCE_FALSE@ ecore_exe.lo
105am_libecore_la_OBJECTS = ecore.lo ecore_anim.lo ecore_app.lo \ 105am_libecore_la_OBJECTS = ecore.lo ecore_alloc.lo ecore_anim.lo \
106 ecore_events.lo ecore_getopt.lo ecore_idle_enterer.lo \ 106 ecore_app.lo ecore_events.lo ecore_getopt.lo \
107 ecore_idle_exiter.lo ecore_idler.lo ecore_job.lo ecore_main.lo \ 107 ecore_idle_enterer.lo ecore_idle_exiter.lo ecore_idler.lo \
108 ecore_pipe.lo ecore_poll.lo ecore_time.lo ecore_timer.lo \ 108 ecore_job.lo ecore_main.lo ecore_pipe.lo ecore_poll.lo \
109 ecore_thread.lo ecore_glib.lo ecore_throttle.lo \ 109 ecore_time.lo ecore_timer.lo ecore_thread.lo ecore_glib.lo \
110 $(am__objects_1) $(am__objects_2) $(am__objects_3) \ 110 ecore_throttle.lo $(am__objects_1) $(am__objects_2) \
111 $(am__objects_4) 111 $(am__objects_3) $(am__objects_4)
112libecore_la_OBJECTS = $(am_libecore_la_OBJECTS) 112libecore_la_OBJECTS = $(am_libecore_la_OBJECTS)
113AM_V_lt = $(am__v_lt_$(V)) 113AM_V_lt = $(am__v_lt_$(V))
114am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) 114am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
@@ -266,10 +266,10 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
266PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 266PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
267PIXMAN_LIBS = @PIXMAN_LIBS@ 267PIXMAN_LIBS = @PIXMAN_LIBS@
268PKG_CONFIG = @PKG_CONFIG@ 268PKG_CONFIG = @PKG_CONFIG@
269PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
270PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
271POSUB = @POSUB@ 269POSUB = @POSUB@
272RANLIB = @RANLIB@ 270RANLIB = @RANLIB@
271SCIM_CFLAGS = @SCIM_CFLAGS@
272SCIM_LIBS = @SCIM_LIBS@
273SDL_CFLAGS = @SDL_CFLAGS@ 273SDL_CFLAGS = @SDL_CFLAGS@
274SDL_CONFIG = @SDL_CONFIG@ 274SDL_CONFIG = @SDL_CONFIG@
275SDL_LIBS = @SDL_LIBS@ 275SDL_LIBS = @SDL_LIBS@
@@ -288,6 +288,10 @@ TSLIB_LIBS = @TSLIB_LIBS@
288USE_NLS = @USE_NLS@ 288USE_NLS = @USE_NLS@
289VERSION = @VERSION@ 289VERSION = @VERSION@
290VMAJ = @VMAJ@ 290VMAJ = @VMAJ@
291WAYLAND_CFLAGS = @WAYLAND_CFLAGS@
292WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
293WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
294WAYLAND_LIBS = @WAYLAND_LIBS@
291WIN32_CFLAGS = @WIN32_CFLAGS@ 295WIN32_CFLAGS = @WIN32_CFLAGS@
292WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 296WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
293WIN32_LIBS = @WIN32_LIBS@ 297WIN32_LIBS = @WIN32_LIBS@
@@ -401,6 +405,8 @@ ecore_imf_cflags = @ecore_imf_cflags@
401ecore_imf_evas_cflags = @ecore_imf_evas_cflags@ 405ecore_imf_evas_cflags = @ecore_imf_evas_cflags@
402ecore_imf_evas_libs = @ecore_imf_evas_libs@ 406ecore_imf_evas_libs = @ecore_imf_evas_libs@
403ecore_imf_libs = @ecore_imf_libs@ 407ecore_imf_libs = @ecore_imf_libs@
408ecore_imf_scim_cflags = @ecore_imf_scim_cflags@
409ecore_imf_scim_libs = @ecore_imf_scim_libs@
404ecore_imf_xim_cflags = @ecore_imf_xim_cflags@ 410ecore_imf_xim_cflags = @ecore_imf_xim_cflags@
405ecore_imf_xim_libs = @ecore_imf_xim_libs@ 411ecore_imf_xim_libs = @ecore_imf_xim_libs@
406ecore_input_cflags = @ecore_input_cflags@ 412ecore_input_cflags = @ecore_input_cflags@
@@ -413,6 +419,8 @@ ecore_psl1ght_cflags = @ecore_psl1ght_cflags@
413ecore_psl1ght_libs = @ecore_psl1ght_libs@ 419ecore_psl1ght_libs = @ecore_psl1ght_libs@
414ecore_sdl_cflags = @ecore_sdl_cflags@ 420ecore_sdl_cflags = @ecore_sdl_cflags@
415ecore_sdl_libs = @ecore_sdl_libs@ 421ecore_sdl_libs = @ecore_sdl_libs@
422ecore_wayland_cflags = @ecore_wayland_cflags@
423ecore_wayland_libs = @ecore_wayland_libs@
416ecore_win32_cflags = @ecore_win32_cflags@ 424ecore_win32_cflags = @ecore_win32_cflags@
417ecore_win32_libs = @ecore_win32_libs@ 425ecore_win32_libs = @ecore_win32_libs@
418ecore_wince_cflags = @ecore_wince_cflags@ 426ecore_wince_cflags = @ecore_wince_cflags@
@@ -457,12 +465,14 @@ requirements_ecore_fb = @requirements_ecore_fb@
457requirements_ecore_file = @requirements_ecore_file@ 465requirements_ecore_file = @requirements_ecore_file@
458requirements_ecore_imf = @requirements_ecore_imf@ 466requirements_ecore_imf = @requirements_ecore_imf@
459requirements_ecore_imf_evas = @requirements_ecore_imf_evas@ 467requirements_ecore_imf_evas = @requirements_ecore_imf_evas@
468requirements_ecore_imf_scim = @requirements_ecore_imf_scim@
460requirements_ecore_imf_xim = @requirements_ecore_imf_xim@ 469requirements_ecore_imf_xim = @requirements_ecore_imf_xim@
461requirements_ecore_input = @requirements_ecore_input@ 470requirements_ecore_input = @requirements_ecore_input@
462requirements_ecore_input_evas = @requirements_ecore_input_evas@ 471requirements_ecore_input_evas = @requirements_ecore_input_evas@
463requirements_ecore_ipc = @requirements_ecore_ipc@ 472requirements_ecore_ipc = @requirements_ecore_ipc@
464requirements_ecore_psl1ght = @requirements_ecore_psl1ght@ 473requirements_ecore_psl1ght = @requirements_ecore_psl1ght@
465requirements_ecore_sdl = @requirements_ecore_sdl@ 474requirements_ecore_sdl = @requirements_ecore_sdl@
475requirements_ecore_wayland = @requirements_ecore_wayland@
466requirements_ecore_win32 = @requirements_ecore_win32@ 476requirements_ecore_win32 = @requirements_ecore_win32@
467requirements_ecore_wince = @requirements_ecore_wince@ 477requirements_ecore_wince = @requirements_ecore_wince@
468requirements_ecore_x = @requirements_ecore_x@ 478requirements_ecore_x = @requirements_ecore_x@
@@ -488,12 +498,12 @@ Ecore.h \
488Ecore_Getopt.h 498Ecore_Getopt.h
489 499
490includesdir = $(includedir)/ecore-@VMAJ@ 500includesdir = $(includedir)/ecore-@VMAJ@
491libecore_la_SOURCES = ecore.c ecore_anim.c ecore_app.c ecore_events.c \ 501libecore_la_SOURCES = ecore.c ecore_alloc.c ecore_anim.c ecore_app.c \
492 ecore_getopt.c ecore_idle_enterer.c ecore_idle_exiter.c \ 502 ecore_events.c ecore_getopt.c ecore_idle_enterer.c \
493 ecore_idler.c ecore_job.c ecore_main.c ecore_pipe.c \ 503 ecore_idle_exiter.c ecore_idler.c ecore_job.c ecore_main.c \
494 ecore_poll.c ecore_time.c ecore_timer.c ecore_thread.c \ 504 ecore_pipe.c ecore_poll.c ecore_time.c ecore_timer.c \
495 ecore_glib.c ecore_throttle.c $(am__append_1) $(am__append_2) \ 505 ecore_thread.c ecore_glib.c ecore_throttle.c $(am__append_1) \
496 $(am__append_3) $(am__append_4) 506 $(am__append_2) $(am__append_3) $(am__append_4)
497libecore_la_LIBADD = @dlopen_libs@ @EINA_LIBS@ @EVIL_LIBS@ @GLIB_LIBS@ @WIN32_LIBS@ @LTLIBINTL@ @EFL_PTHREAD_LIBS@ @rt_libs@ -lm 507libecore_la_LIBADD = @dlopen_libs@ @EINA_LIBS@ @EVIL_LIBS@ @GLIB_LIBS@ @WIN32_LIBS@ @LTLIBINTL@ @EFL_PTHREAD_LIBS@ @rt_libs@ -lm
498libecore_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@ @release_info@ @EFL_PTHREAD_LIBS@ 508libecore_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@ @release_info@ @EFL_PTHREAD_LIBS@
499EXTRA_DIST = ecore_private.h 509EXTRA_DIST = ecore_private.h
@@ -572,6 +582,7 @@ distclean-compile:
572 -rm -f *.tab.c 582 -rm -f *.tab.c
573 583
574@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecore.Plo@am__quote@ 584@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecore.Plo@am__quote@
585@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecore_alloc.Plo@am__quote@
575@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecore_anim.Plo@am__quote@ 586@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecore_anim.Plo@am__quote@
576@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecore_app.Plo@am__quote@ 587@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecore_app.Plo@am__quote@
577@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecore_events.Plo@am__quote@ 588@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecore_events.Plo@am__quote@
diff --git a/libraries/ecore/src/lib/ecore/ecore.c b/libraries/ecore/src/lib/ecore/ecore.c
index 99d79c1..7e0f973 100644
--- a/libraries/ecore/src/lib/ecore/ecore.c
+++ b/libraries/ecore/src/lib/ecore/ecore.c
@@ -2,6 +2,7 @@
2# include <config.h> 2# include <config.h>
3#endif 3#endif
4 4
5#include <stdlib.h>
5#include <stdio.h> 6#include <stdio.h>
6#include <sys/types.h> 7#include <sys/types.h>
7#include <sys/stat.h> 8#include <sys/stat.h>
@@ -159,6 +160,7 @@ ecore_init(void)
159 } 160 }
160 if (getenv("ECORE_FPS_DEBUG")) _ecore_fps_debug = 1; 161 if (getenv("ECORE_FPS_DEBUG")) _ecore_fps_debug = 1;
161 if (_ecore_fps_debug) _ecore_fps_debug_init(); 162 if (_ecore_fps_debug) _ecore_fps_debug_init();
163 if (!ecore_mempool_init()) goto shutdown_mempool;
162 _ecore_main_loop_init(); 164 _ecore_main_loop_init();
163 _ecore_signal_init(); 165 _ecore_signal_init();
164 _ecore_thread_init(); 166 _ecore_thread_init();
@@ -191,6 +193,8 @@ ecore_init(void)
191 193
192 return _ecore_init_count; 194 return _ecore_init_count;
193 195
196shutdown_mempool:
197 ecore_mempool_shutdown();
194shutdown_log_dom: 198shutdown_log_dom:
195 eina_shutdown(); 199 eina_shutdown();
196shutdown_evil: 200shutdown_evil:
@@ -219,8 +223,22 @@ ecore_shutdown(void)
219 _ecore_lock(); 223 _ecore_lock();
220 if (--_ecore_init_count != 0) 224 if (--_ecore_init_count != 0)
221 goto unlock; 225 goto unlock;
222 226
223 ecore_pipe_del(_thread_call); 227 /* this looks horrible - a hack for now, but something to note. as
228 * we delete the _thread_call pipe a thread COULD be doing
229 * ecore_pipe_write() or what not to it at the same time - we
230 * must ensure all possible users of this _thread_call are finished
231 * and exited before we delete it here */
232 /*
233 * ok - this causes other valgrind complaints regarding glib aquiring
234 * locks internally. so fix bug a or bug b. let's leave the original
235 * bug in then and leave this as a note for now
236 Ecore_Pipe *p;
237 p = _thread_call;
238 _thread_call = NULL;
239 ecore_pipe_wait(p, 1, 0.1);
240 ecore_pipe_del(p);
241 */
224 eina_lock_free(&_thread_safety); 242 eina_lock_free(&_thread_safety);
225 eina_condition_free(&_thread_cond); 243 eina_condition_free(&_thread_cond);
226 eina_lock_free(&_thread_mutex); 244 eina_lock_free(&_thread_mutex);
@@ -255,7 +273,7 @@ ecore_shutdown(void)
255 _ecore_memory_max_free); 273 _ecore_memory_max_free);
256 } 274 }
257#endif 275#endif
258 276 ecore_mempool_shutdown();
259 eina_log_domain_unregister(_ecore_log_dom); 277 eina_log_domain_unregister(_ecore_log_dom);
260 _ecore_log_dom = -1; 278 _ecore_log_dom = -1;
261 eina_shutdown(); 279 eina_shutdown();
diff --git a/libraries/ecore/src/lib/ecore/ecore_alloc.c b/libraries/ecore/src/lib/ecore/ecore_alloc.c
new file mode 100644
index 0000000..412c383
--- /dev/null
+++ b/libraries/ecore/src/lib/ecore/ecore_alloc.c
@@ -0,0 +1,132 @@
1#ifdef HAVE_CONFIG_H
2# include "config.h"
3#endif
4
5#include <stdlib.h>
6
7#include <Eina.h>
8
9#include "Ecore.h"
10#include "ecore_private.h"
11
12typedef struct _Ecore_Mempool Ecore_Mempool;
13struct _Ecore_Mempool
14{
15 const char *name;
16 Eina_Mempool *mp;
17 size_t size;
18};
19
20#define GENERIC_ALLOC_FREE(TYPE, Type) \
21 extern size_t _ecore_sizeof_##TYPE; \
22 Ecore_Mempool Type##_mp = { #TYPE, NULL, 0 }; \
23 TYPE * \
24 Type##_calloc(unsigned int num) \
25 { \
26 return eina_mempool_calloc(Type##_mp.mp, \
27 num * _ecore_sizeof_##TYPE); \
28 } \
29 void \
30 Type##_mp_free(TYPE *e) \
31 { \
32 eina_mempool_free(Type##_mp.mp, e); \
33 }
34
35GENERIC_ALLOC_FREE(Ecore_Animator, ecore_animator);
36GENERIC_ALLOC_FREE(Ecore_Event_Handler, ecore_event_handler);
37GENERIC_ALLOC_FREE(Ecore_Event_Filter, ecore_event_filter);
38GENERIC_ALLOC_FREE(Ecore_Event, ecore_event);
39GENERIC_ALLOC_FREE(Ecore_Idle_Exiter, ecore_idle_exiter);
40GENERIC_ALLOC_FREE(Ecore_Idle_Enterer, ecore_idle_enterer);
41GENERIC_ALLOC_FREE(Ecore_Idler, ecore_idler);
42GENERIC_ALLOC_FREE(Ecore_Job, ecore_job);
43GENERIC_ALLOC_FREE(Ecore_Timer, ecore_timer);
44GENERIC_ALLOC_FREE(Ecore_Poller, ecore_poller);
45GENERIC_ALLOC_FREE(Ecore_Pipe, ecore_pipe);
46GENERIC_ALLOC_FREE(Ecore_Fd_Handler, ecore_fd_handler);
47#ifdef _WIN32
48GENERIC_ALLOC_FREE(Ecore_Win32_Handler, ecore_win32_handler);
49#endif
50
51static Ecore_Mempool *mempool_array[] = {
52 &ecore_animator_mp,
53 &ecore_event_handler_mp,
54 &ecore_event_filter_mp,
55 &ecore_event_mp,
56 &ecore_idle_exiter_mp,
57 &ecore_idle_enterer_mp,
58 &ecore_idler_mp,
59 &ecore_job_mp,
60 &ecore_timer_mp,
61 &ecore_poller_mp,
62 &ecore_pipe_mp,
63 &ecore_fd_handler_mp,
64#ifdef _WIN32
65 &ecore_win32_handler_mp
66#endif
67};
68
69Eina_Bool
70ecore_mempool_init(void)
71{
72 const char *choice;
73 unsigned int i;
74
75#define MP_SIZE_INIT(TYPE, Type) \
76 Type##_mp.size = _ecore_sizeof_##TYPE
77
78 MP_SIZE_INIT(Ecore_Animator, ecore_animator);
79 MP_SIZE_INIT(Ecore_Event_Handler, ecore_event_handler);
80 MP_SIZE_INIT(Ecore_Event_Filter, ecore_event_filter);
81 MP_SIZE_INIT(Ecore_Event, ecore_event);
82 MP_SIZE_INIT(Ecore_Idle_Exiter, ecore_idle_exiter);
83 MP_SIZE_INIT(Ecore_Idle_Enterer, ecore_idle_enterer);
84 MP_SIZE_INIT(Ecore_Idler, ecore_idler);
85 MP_SIZE_INIT(Ecore_Job, ecore_job);
86 MP_SIZE_INIT(Ecore_Timer, ecore_timer);
87 MP_SIZE_INIT(Ecore_Poller, ecore_poller);
88 MP_SIZE_INIT(Ecore_Pipe, ecore_pipe);
89 MP_SIZE_INIT(Ecore_Fd_Handler, ecore_fd_handler);
90#ifdef _WIN32
91 MP_SIZE_INIT(Ecore_Win32_Handler, ecore_win32_handler);
92#endif
93#undef MP_SIZE_INIT
94
95 choice = getenv("EINA_MEMPOOL");
96 if ((!choice) || (!choice[0]))
97 choice = "chained_mempool";
98
99 for (i = 0; i < sizeof (mempool_array) / sizeof (mempool_array[0]); ++i)
100 {
101 retry:
102 mempool_array[i]->mp = eina_mempool_add(choice, mempool_array[i]->name, NULL, mempool_array[i]->size, 64);
103 if (!mempool_array[i]->mp)
104 {
105 if (!strcmp(choice, "pass_through"))
106 {
107 ERR("Falling back to pass through ! Previously tried '%s' mempool.", choice);
108 choice = "pass_through";
109 goto retry;
110 }
111 else
112 {
113 ERR("Impossible to allocate mempool '%s' !", choice);
114 return EINA_FALSE;
115 }
116 }
117 }
118 return EINA_TRUE;
119}
120
121void
122ecore_mempool_shutdown(void)
123{
124 unsigned int i;
125
126 for (i = 0; i < sizeof (mempool_array) / sizeof (mempool_array[0]); ++i)
127 {
128 eina_mempool_del(mempool_array[i]->mp);
129 mempool_array[i]->mp = NULL;
130 }
131}
132
diff --git a/libraries/ecore/src/lib/ecore/ecore_anim.c b/libraries/ecore/src/lib/ecore/ecore_anim.c
index 9adaa77..78abad7 100644
--- a/libraries/ecore/src/lib/ecore/ecore_anim.c
+++ b/libraries/ecore/src/lib/ecore/ecore_anim.c
@@ -22,8 +22,11 @@ struct _Ecore_Animator
22 22
23 Eina_Bool delete_me : 1; 23 Eina_Bool delete_me : 1;
24 Eina_Bool suspended : 1; 24 Eina_Bool suspended : 1;
25 Eina_Bool just_added : 1;
25}; 26};
26 27
28GENERIC_ALLOC_SIZE_DECLARE(Ecore_Animator);
29
27static Eina_Bool _ecore_animator_run(void *data); 30static Eina_Bool _ecore_animator_run(void *data);
28static Eina_Bool _ecore_animator(void *data); 31static Eina_Bool _ecore_animator(void *data);
29 32
@@ -99,7 +102,13 @@ _do_tick(void)
99 102
100 EINA_INLIST_FOREACH(animators, animator) 103 EINA_INLIST_FOREACH(animators, animator)
101 { 104 {
102 if (!animator->delete_me && !animator->suspended) 105 animator->just_added = EINA_FALSE;
106 }
107 EINA_INLIST_FOREACH(animators, animator)
108 {
109 if ((!animator->delete_me) &&
110 (!animator->suspended) &&
111 (!animator->just_added))
103 { 112 {
104 if (!_ecore_call_task_cb(animator->func, animator->data)) 113 if (!_ecore_call_task_cb(animator->func, animator->data))
105 { 114 {
@@ -107,6 +116,7 @@ _do_tick(void)
107 animators_delete_me++; 116 animators_delete_me++;
108 } 117 }
109 } 118 }
119 else animator->just_added = EINA_FALSE;
110 } 120 }
111 if (animators_delete_me) 121 if (animators_delete_me)
112 { 122 {
@@ -121,7 +131,7 @@ _do_tick(void)
121 eina_inlist_remove(EINA_INLIST_GET(animators), 131 eina_inlist_remove(EINA_INLIST_GET(animators),
122 EINA_INLIST_GET(animator)); 132 EINA_INLIST_GET(animator));
123 ECORE_MAGIC_SET(animator, ECORE_MAGIC_NONE); 133 ECORE_MAGIC_SET(animator, ECORE_MAGIC_NONE);
124 free(animator); 134 ecore_animator_mp_free(animator);
125 animators_delete_me--; 135 animators_delete_me--;
126 if (animators_delete_me == 0) break; 136 if (animators_delete_me == 0) break;
127 } 137 }
@@ -142,11 +152,12 @@ _ecore_animator_add(Ecore_Task_Cb func,
142 Ecore_Animator *animator = NULL; 152 Ecore_Animator *animator = NULL;
143 153
144 if (!func) return animator; 154 if (!func) return animator;
145 animator = calloc(1, sizeof(Ecore_Animator)); 155 animator = ecore_animator_calloc(1);
146 if (!animator) return animator; 156 if (!animator) return animator;
147 ECORE_MAGIC_SET(animator, ECORE_MAGIC_ANIMATOR); 157 ECORE_MAGIC_SET(animator, ECORE_MAGIC_ANIMATOR);
148 animator->func = func; 158 animator->func = func;
149 animator->data = (void *)data; 159 animator->data = (void *)data;
160 animator->just_added = EINA_TRUE;
150 animators = (Ecore_Animator *)eina_inlist_append(EINA_INLIST_GET(animators), EINA_INLIST_GET(animator)); 161 animators = (Ecore_Animator *)eina_inlist_append(EINA_INLIST_GET(animators), EINA_INLIST_GET(animator));
151 _begin_tick(); 162 _begin_tick();
152 return animator; 163 return animator;
@@ -443,7 +454,7 @@ _ecore_animator_shutdown(void)
443 animator = animators; 454 animator = animators;
444 animators = (Ecore_Animator *)eina_inlist_remove(EINA_INLIST_GET(animators), EINA_INLIST_GET(animators)); 455 animators = (Ecore_Animator *)eina_inlist_remove(EINA_INLIST_GET(animators), EINA_INLIST_GET(animators));
445 ECORE_MAGIC_SET(animator, ECORE_MAGIC_NONE); 456 ECORE_MAGIC_SET(animator, ECORE_MAGIC_NONE);
446 free(animator); 457 ecore_animator_mp_free(animator);
447 } 458 }
448} 459}
449 460
diff --git a/libraries/ecore/src/lib/ecore/ecore_events.c b/libraries/ecore/src/lib/ecore/ecore_events.c
index f31baf8..0550224 100644
--- a/libraries/ecore/src/lib/ecore/ecore_events.c
+++ b/libraries/ecore/src/lib/ecore/ecore_events.c
@@ -19,6 +19,7 @@ struct _Ecore_Event_Handler
19 int references; 19 int references;
20 Eina_Bool delete_me : 1; 20 Eina_Bool delete_me : 1;
21}; 21};
22GENERIC_ALLOC_SIZE_DECLARE(Ecore_Event_Handler);
22 23
23struct _Ecore_Event_Filter 24struct _Ecore_Event_Filter
24{ 25{
@@ -32,6 +33,7 @@ struct _Ecore_Event_Filter
32 int references; 33 int references;
33 Eina_Bool delete_me : 1; 34 Eina_Bool delete_me : 1;
34}; 35};
36GENERIC_ALLOC_SIZE_DECLARE(Ecore_Event_Filter);
35 37
36struct _Ecore_Event 38struct _Ecore_Event
37{ 39{
@@ -44,6 +46,7 @@ struct _Ecore_Event
44 int references; 46 int references;
45 Eina_Bool delete_me : 1; 47 Eina_Bool delete_me : 1;
46}; 48};
49GENERIC_ALLOC_SIZE_DECLARE(Ecore_Event);
47 50
48static int events_num = 0; 51static int events_num = 0;
49static Ecore_Event *events = NULL; 52static Ecore_Event *events = NULL;
@@ -109,7 +112,7 @@ ecore_event_handler_add(int type,
109 112
110 if (!func) goto unlock; 113 if (!func) goto unlock;
111 if ((type <= ECORE_EVENT_NONE) || (type >= event_id_max)) goto unlock; 114 if ((type <= ECORE_EVENT_NONE) || (type >= event_id_max)) goto unlock;
112 eh = calloc(1, sizeof(Ecore_Event_Handler)); 115 eh = ecore_event_handler_calloc(1);
113 if (!eh) goto unlock; 116 if (!eh) goto unlock;
114 ECORE_MAGIC_SET(eh, ECORE_MAGIC_EVENT_HANDLER); 117 ECORE_MAGIC_SET(eh, ECORE_MAGIC_EVENT_HANDLER);
115 eh->type = type; 118 eh->type = type;
@@ -130,7 +133,7 @@ ecore_event_handler_add(int type,
130 new_handlers = realloc(event_handlers, event_handlers_alloc_num * sizeof(Ecore_Event_Handler *)); 133 new_handlers = realloc(event_handlers, event_handlers_alloc_num * sizeof(Ecore_Event_Handler *));
131 if (!new_handlers) 134 if (!new_handlers)
132 { 135 {
133 free(eh); 136 ecore_event_handler_mp_free(eh);
134 goto unlock; 137 goto unlock;
135 } 138 }
136 event_handlers = new_handlers; 139 event_handlers = new_handlers;
@@ -234,7 +237,7 @@ unlock:
234static void 237static void
235_ecore_event_generic_free(void *data __UNUSED__, 238_ecore_event_generic_free(void *data __UNUSED__,
236 void *event) 239 void *event)
237{ 240{ /* DO NOT MEMPOOL FREE THIS */
238 free (event); 241 free (event);
239} 242}
240 243
@@ -358,7 +361,7 @@ ecore_event_filter_add(Ecore_Data_Cb func_start,
358 361
359 _ecore_lock(); 362 _ecore_lock();
360 if (!func_filter) goto unlock; 363 if (!func_filter) goto unlock;
361 ef = calloc(1, sizeof(Ecore_Event_Filter)); 364 ef = ecore_event_filter_calloc(1);
362 if (!ef) goto unlock; 365 if (!ef) goto unlock;
363 ECORE_MAGIC_SET(ef, ECORE_MAGIC_EVENT_FILTER); 366 ECORE_MAGIC_SET(ef, ECORE_MAGIC_EVENT_FILTER);
364 ef->func_start = func_start; 367 ef->func_start = func_start;
@@ -469,11 +472,11 @@ _ecore_event_shutdown(void)
469 { 472 {
470 event_handlers[i] = (Ecore_Event_Handler *)eina_inlist_remove(EINA_INLIST_GET(event_handlers[i]), EINA_INLIST_GET(event_handlers[i])); 473 event_handlers[i] = (Ecore_Event_Handler *)eina_inlist_remove(EINA_INLIST_GET(event_handlers[i]), EINA_INLIST_GET(event_handlers[i]));
471 ECORE_MAGIC_SET(eh, ECORE_MAGIC_NONE); 474 ECORE_MAGIC_SET(eh, ECORE_MAGIC_NONE);
472 if (!eh->delete_me) free(eh); 475 if (!eh->delete_me) ecore_event_handler_mp_free(eh);
473 } 476 }
474 } 477 }
475 EINA_LIST_FREE(event_handlers_delete_list, eh) 478 EINA_LIST_FREE(event_handlers_delete_list, eh)
476 free(eh); 479 ecore_event_handler_mp_free(eh);
477 if (event_handlers) free(event_handlers); 480 if (event_handlers) free(event_handlers);
478 event_handlers = NULL; 481 event_handlers = NULL;
479 event_handlers_num = 0; 482 event_handlers_num = 0;
@@ -482,7 +485,7 @@ _ecore_event_shutdown(void)
482 { 485 {
483 event_filters = (Ecore_Event_Filter *)eina_inlist_remove(EINA_INLIST_GET(event_filters), EINA_INLIST_GET(event_filters)); 486 event_filters = (Ecore_Event_Filter *)eina_inlist_remove(EINA_INLIST_GET(event_filters), EINA_INLIST_GET(event_filters));
484 ECORE_MAGIC_SET(ef, ECORE_MAGIC_NONE); 487 ECORE_MAGIC_SET(ef, ECORE_MAGIC_NONE);
485 free(ef); 488 ecore_event_filter_mp_free(ef);
486 } 489 }
487 event_filters_delete_me = 0; 490 event_filters_delete_me = 0;
488 event_filter_current = NULL; 491 event_filter_current = NULL;
@@ -506,7 +509,7 @@ _ecore_event_add(int type,
506{ 509{
507 Ecore_Event *e; 510 Ecore_Event *e;
508 511
509 e = calloc(1, sizeof(Ecore_Event)); 512 e = ecore_event_calloc(1);
510 if (!e) return NULL; 513 if (!e) return NULL;
511 ECORE_MAGIC_SET(e, ECORE_MAGIC_EVENT); 514 ECORE_MAGIC_SET(e, ECORE_MAGIC_EVENT);
512 e->type = type; 515 e->type = type;
@@ -535,7 +538,7 @@ _ecore_event_del(Ecore_Event *event)
535 if (event->func_free) _ecore_call_end_cb(event->func_free, event->data, event->event); 538 if (event->func_free) _ecore_call_end_cb(event->func_free, event->data, event->event);
536 events = (Ecore_Event *)eina_inlist_remove(EINA_INLIST_GET(events), EINA_INLIST_GET(event)); 539 events = (Ecore_Event *)eina_inlist_remove(EINA_INLIST_GET(events), EINA_INLIST_GET(event));
537 ECORE_MAGIC_SET(event, ECORE_MAGIC_NONE); 540 ECORE_MAGIC_SET(event, ECORE_MAGIC_NONE);
538 free(event); 541 ecore_event_mp_free(event);
539 events_num--; 542 events_num--;
540 return data; 543 return data;
541} 544}
@@ -638,7 +641,7 @@ _ecore_event_filters_apply()
638 641
639 event_filters = (Ecore_Event_Filter *)eina_inlist_remove(EINA_INLIST_GET(event_filters), EINA_INLIST_GET(ef)); 642 event_filters = (Ecore_Event_Filter *)eina_inlist_remove(EINA_INLIST_GET(event_filters), EINA_INLIST_GET(ef));
640 ECORE_MAGIC_SET(ef, ECORE_MAGIC_NONE); 643 ECORE_MAGIC_SET(ef, ECORE_MAGIC_NONE);
641 free(ef); 644 ecore_event_filter_mp_free(ef);
642 } 645 }
643 } 646 }
644 if (!deleted_in_use) 647 if (!deleted_in_use)
@@ -742,7 +745,7 @@ _ecore_event_call(void)
742 745
743 event_handlers[eh->type] = (Ecore_Event_Handler *)eina_inlist_remove(EINA_INLIST_GET(event_handlers[eh->type]), EINA_INLIST_GET(eh)); 746 event_handlers[eh->type] = (Ecore_Event_Handler *)eina_inlist_remove(EINA_INLIST_GET(event_handlers[eh->type]), EINA_INLIST_GET(eh));
744 ECORE_MAGIC_SET(eh, ECORE_MAGIC_NONE); 747 ECORE_MAGIC_SET(eh, ECORE_MAGIC_NONE);
745 free(eh); 748 ecore_event_handler_mp_free(eh);
746 } 749 }
747} 750}
748 751
diff --git a/libraries/ecore/src/lib/ecore/ecore_getopt.c b/libraries/ecore/src/lib/ecore/ecore_getopt.c
index 0ce8f6e..76272d3 100644
--- a/libraries/ecore/src/lib/ecore/ecore_getopt.c
+++ b/libraries/ecore/src/lib/ecore/ecore_getopt.c
@@ -19,6 +19,7 @@ extern "C"
19void *alloca(size_t); 19void *alloca(size_t);
20#endif 20#endif
21 21
22#include <stdlib.h>
22#include <stdio.h> 23#include <stdio.h>
23#include <string.h> 24#include <string.h>
24#include <stdarg.h> 25#include <stdarg.h>
@@ -130,7 +131,7 @@ _ecore_getopt_help_line(FILE *fp,
130 todo = len; 131 todo = len;
131 132
132 for (i = 0; i < todo; i++) 133 for (i = 0; i < todo; i++)
133 if (isspace(text[i])) 134 if (isspace((unsigned char)text[i]))
134 { 135 {
135 space = text + i; 136 space = text + i;
136 break; 137 break;
@@ -1762,7 +1763,7 @@ _ecore_getopt_find_help(const Ecore_Getopt *parser)
1762 * will be applied on them if ecore was compiled with such support. 1763 * will be applied on them if ecore was compiled with such support.
1763 * 1764 *
1764 * @param parser description of how to work. 1765 * @param parser description of how to work.
1765 * @param value where to store values, it is assumed that this is a vector 1766 * @param values where to store values, it is assumed that this is a vector
1766 * of the same size as @c parser->descs. Values should be previously 1767 * of the same size as @c parser->descs. Values should be previously
1767 * initialized. 1768 * initialized.
1768 * @param argc how many elements in @a argv. If not provided it will be 1769 * @param argc how many elements in @a argv. If not provided it will be
@@ -1854,7 +1855,8 @@ ecore_getopt_list_free(Eina_List *list)
1854/** 1855/**
1855 * Helper ecore_getopt callback to parse geometry (x:y:w:h). 1856 * Helper ecore_getopt callback to parse geometry (x:y:w:h).
1856 * 1857 *
1857 * Storage must be a pointer to @c Eina_Rectangle and will be used to 1858 * @param str Geometry value
1859 * @param storage must be a pointer to @c Eina_Rectangle and will be used to
1858 * store the four values passed in the given string. 1860 * store the four values passed in the given string.
1859 * 1861 *
1860 * @c callback_data value is ignored, you can safely use @c NULL. 1862 * @c callback_data value is ignored, you can safely use @c NULL.
@@ -1880,7 +1882,8 @@ ecore_getopt_callback_geometry_parse(const Ecore_Getopt *parser __UNUSED__,
1880/** 1882/**
1881 * Helper ecore_getopt callback to parse geometry size (WxH). 1883 * Helper ecore_getopt callback to parse geometry size (WxH).
1882 * 1884 *
1883 * Storage must be a pointer to @c Eina_Rectangle and will be used to 1885 * @param str size value
1886 * @param storage must be a pointer to @c Eina_Rectangle and will be used to
1884 * store the two values passed in the given string and 0 in the x and y 1887 * store the two values passed in the given string and 0 in the x and y
1885 * fields. 1888 * fields.
1886 * 1889 *
diff --git a/libraries/ecore/src/lib/ecore/ecore_glib.c b/libraries/ecore/src/lib/ecore/ecore_glib.c
index 6ddcd36..7cea1c9 100644
--- a/libraries/ecore/src/lib/ecore/ecore_glib.c
+++ b/libraries/ecore/src/lib/ecore/ecore_glib.c
@@ -2,6 +2,7 @@
2# include <config.h> 2# include <config.h>
3#endif 3#endif
4 4
5#include <stdlib.h>
5#include <stdio.h> 6#include <stdio.h>
6 7
7#include "Ecore.h" 8#include "Ecore.h"
@@ -189,7 +190,9 @@ _ecore_glib_select(int ecore_fds,
189 int ret; 190 int ret;
190 191
191 if (g_main_context_acquire(ctx)) 192 if (g_main_context_acquire(ctx))
192 g_mutex_lock(mutex); 193 {
194 if (mutex) g_mutex_lock(mutex);
195 }
193 else 196 else
194 { 197 {
195 if (!_ecore_glib_cond) 198 if (!_ecore_glib_cond)
@@ -202,8 +205,9 @@ _ecore_glib_select(int ecore_fds,
202 ret = _ecore_glib_select__locked 205 ret = _ecore_glib_select__locked
203 (ctx, ecore_fds, rfds, wfds, efds, ecore_timeout); 206 (ctx, ecore_fds, rfds, wfds, efds, ecore_timeout);
204 207
205 g_mutex_unlock(mutex); 208 if (mutex) g_mutex_unlock(mutex);
206 g_main_context_release(ctx); 209 g_main_context_release(ctx);
210 g_static_mutex_free(&lock);
207 211
208 return ret; 212 return ret;
209} 213}
diff --git a/libraries/ecore/src/lib/ecore/ecore_idle_enterer.c b/libraries/ecore/src/lib/ecore/ecore_idle_enterer.c
index 03cd1c4..8e4ae50 100644
--- a/libraries/ecore/src/lib/ecore/ecore_idle_enterer.c
+++ b/libraries/ecore/src/lib/ecore/ecore_idle_enterer.c
@@ -16,6 +16,7 @@ struct _Ecore_Idle_Enterer
16 int references; 16 int references;
17 Eina_Bool delete_me : 1; 17 Eina_Bool delete_me : 1;
18}; 18};
19GENERIC_ALLOC_SIZE_DECLARE(Ecore_Idle_Enterer);
19 20
20static Ecore_Idle_Enterer *idle_enterers = NULL; 21static Ecore_Idle_Enterer *idle_enterers = NULL;
21static Ecore_Idle_Enterer *idle_enterer_current = NULL; 22static Ecore_Idle_Enterer *idle_enterer_current = NULL;
@@ -49,7 +50,7 @@ ecore_idle_enterer_add(Ecore_Task_Cb func,
49 _ecore_lock(); 50 _ecore_lock();
50 51
51 if (!func) goto unlock; 52 if (!func) goto unlock;
52 ie = calloc(1, sizeof(Ecore_Idle_Enterer)); 53 ie = ecore_idle_enterer_calloc(1);
53 if (!ie) goto unlock; 54 if (!ie) goto unlock;
54 ECORE_MAGIC_SET(ie, ECORE_MAGIC_IDLE_ENTERER); 55 ECORE_MAGIC_SET(ie, ECORE_MAGIC_IDLE_ENTERER);
55 ie->func = func; 56 ie->func = func;
@@ -79,7 +80,7 @@ ecore_idle_enterer_before_add(Ecore_Task_Cb func,
79 _ecore_lock(); 80 _ecore_lock();
80 81
81 if (!func) goto unlock; 82 if (!func) goto unlock;
82 ie = calloc(1, sizeof(Ecore_Idle_Enterer)); 83 ie = ecore_idle_enterer_calloc(1);
83 if (!ie) goto unlock; 84 if (!ie) goto unlock;
84 ECORE_MAGIC_SET(ie, ECORE_MAGIC_IDLE_ENTERER); 85 ECORE_MAGIC_SET(ie, ECORE_MAGIC_IDLE_ENTERER);
85 ie->func = func; 86 ie->func = func;
@@ -134,7 +135,7 @@ _ecore_idle_enterer_shutdown(void)
134 { 135 {
135 idle_enterers = (Ecore_Idle_Enterer *)eina_inlist_remove(EINA_INLIST_GET(idle_enterers), EINA_INLIST_GET(idle_enterers)); 136 idle_enterers = (Ecore_Idle_Enterer *)eina_inlist_remove(EINA_INLIST_GET(idle_enterers), EINA_INLIST_GET(idle_enterers));
136 ECORE_MAGIC_SET(ie, ECORE_MAGIC_NONE); 137 ECORE_MAGIC_SET(ie, ECORE_MAGIC_NONE);
137 free(ie); 138 ecore_idle_enterer_mp_free(ie);
138 } 139 }
139 idle_enterers_delete_me = 0; 140 idle_enterers_delete_me = 0;
140 idle_enterer_current = NULL; 141 idle_enterer_current = NULL;
@@ -190,7 +191,7 @@ _ecore_idle_enterer_call(void)
190 191
191 idle_enterers = (Ecore_Idle_Enterer *)eina_inlist_remove(EINA_INLIST_GET(idle_enterers), EINA_INLIST_GET(ie)); 192 idle_enterers = (Ecore_Idle_Enterer *)eina_inlist_remove(EINA_INLIST_GET(idle_enterers), EINA_INLIST_GET(ie));
192 ECORE_MAGIC_SET(ie, ECORE_MAGIC_NONE); 193 ECORE_MAGIC_SET(ie, ECORE_MAGIC_NONE);
193 free(ie); 194 ecore_idle_enterer_mp_free(ie);
194 } 195 }
195 } 196 }
196 if (!deleted_idler_enterers_in_use) 197 if (!deleted_idler_enterers_in_use)
diff --git a/libraries/ecore/src/lib/ecore/ecore_idle_exiter.c b/libraries/ecore/src/lib/ecore/ecore_idle_exiter.c
index 70c6a7a..4e454e2 100644
--- a/libraries/ecore/src/lib/ecore/ecore_idle_exiter.c
+++ b/libraries/ecore/src/lib/ecore/ecore_idle_exiter.c
@@ -16,6 +16,7 @@ struct _Ecore_Idle_Exiter
16 int references; 16 int references;
17 Eina_Bool delete_me : 1; 17 Eina_Bool delete_me : 1;
18}; 18};
19GENERIC_ALLOC_SIZE_DECLARE(Ecore_Idle_Exiter);
19 20
20static Ecore_Idle_Exiter *idle_exiters = NULL; 21static Ecore_Idle_Exiter *idle_exiters = NULL;
21static Ecore_Idle_Exiter *idle_exiter_current = NULL; 22static Ecore_Idle_Exiter *idle_exiter_current = NULL;
@@ -47,7 +48,7 @@ ecore_idle_exiter_add(Ecore_Task_Cb func,
47 48
48 _ecore_lock(); 49 _ecore_lock();
49 if (!func) goto unlock; 50 if (!func) goto unlock;
50 ie = calloc(1, sizeof(Ecore_Idle_Exiter)); 51 ie = ecore_idle_exiter_calloc(1);
51 if (!ie) goto unlock; 52 if (!ie) goto unlock;
52 ECORE_MAGIC_SET(ie, ECORE_MAGIC_IDLE_EXITER); 53 ECORE_MAGIC_SET(ie, ECORE_MAGIC_IDLE_EXITER);
53 ie->func = func; 54 ie->func = func;
@@ -102,7 +103,7 @@ _ecore_idle_exiter_shutdown(void)
102 { 103 {
103 idle_exiters = (Ecore_Idle_Exiter *)eina_inlist_remove(EINA_INLIST_GET(idle_exiters), EINA_INLIST_GET(idle_exiters)); 104 idle_exiters = (Ecore_Idle_Exiter *)eina_inlist_remove(EINA_INLIST_GET(idle_exiters), EINA_INLIST_GET(idle_exiters));
104 ECORE_MAGIC_SET(ie, ECORE_MAGIC_NONE); 105 ECORE_MAGIC_SET(ie, ECORE_MAGIC_NONE);
105 free(ie); 106 ecore_idle_exiter_mp_free(ie);
106 } 107 }
107 idle_exiters_delete_me = 0; 108 idle_exiters_delete_me = 0;
108 idle_exiter_current = NULL; 109 idle_exiter_current = NULL;
@@ -159,7 +160,7 @@ _ecore_idle_exiter_call(void)
159 160
160 idle_exiters = (Ecore_Idle_Exiter *)eina_inlist_remove(EINA_INLIST_GET(idle_exiters), EINA_INLIST_GET(ie)); 161 idle_exiters = (Ecore_Idle_Exiter *)eina_inlist_remove(EINA_INLIST_GET(idle_exiters), EINA_INLIST_GET(ie));
161 ECORE_MAGIC_SET(ie, ECORE_MAGIC_NONE); 162 ECORE_MAGIC_SET(ie, ECORE_MAGIC_NONE);
162 free(ie); 163 ecore_idle_exiter_mp_free(ie);
163 } 164 }
164 } 165 }
165 if (!deleted_idler_exiters_in_use) 166 if (!deleted_idler_exiters_in_use)
diff --git a/libraries/ecore/src/lib/ecore/ecore_idler.c b/libraries/ecore/src/lib/ecore/ecore_idler.c
index 6c0cab8..5114654 100644
--- a/libraries/ecore/src/lib/ecore/ecore_idler.c
+++ b/libraries/ecore/src/lib/ecore/ecore_idler.c
@@ -16,6 +16,7 @@ struct _Ecore_Idler
16 int references; 16 int references;
17 Eina_Bool delete_me : 1; 17 Eina_Bool delete_me : 1;
18}; 18};
19GENERIC_ALLOC_SIZE_DECLARE(Ecore_Idler);
19 20
20static Ecore_Idler *idlers = NULL; 21static Ecore_Idler *idlers = NULL;
21static Ecore_Idler *idler_current = NULL; 22static Ecore_Idler *idler_current = NULL;
@@ -32,7 +33,7 @@ ecore_idler_add(Ecore_Task_Cb func,
32 33
33 _ecore_lock(); 34 _ecore_lock();
34 if (!func) goto unlock; 35 if (!func) goto unlock;
35 ie = calloc(1, sizeof(Ecore_Idler)); 36 ie = ecore_idler_calloc(1);
36 if (!ie) goto unlock; 37 if (!ie) goto unlock;
37 ECORE_MAGIC_SET(ie, ECORE_MAGIC_IDLER); 38 ECORE_MAGIC_SET(ie, ECORE_MAGIC_IDLER);
38 ie->func = func; 39 ie->func = func;
@@ -86,7 +87,7 @@ _ecore_idler_shutdown(void)
86 { 87 {
87 idlers = (Ecore_Idler *)eina_inlist_remove(EINA_INLIST_GET(idlers), EINA_INLIST_GET(idlers)); 88 idlers = (Ecore_Idler *)eina_inlist_remove(EINA_INLIST_GET(idlers), EINA_INLIST_GET(idlers));
88 ECORE_MAGIC_SET(ie, ECORE_MAGIC_NONE); 89 ECORE_MAGIC_SET(ie, ECORE_MAGIC_NONE);
89 free(ie); 90 ecore_idler_mp_free(ie);
90 } 91 }
91 idlers_delete_me = 0; 92 idlers_delete_me = 0;
92 idler_current = NULL; 93 idler_current = NULL;
@@ -139,7 +140,7 @@ _ecore_idler_all_call(void)
139 140
140 idlers = (Ecore_Idler *)eina_inlist_remove(EINA_INLIST_GET(idlers), EINA_INLIST_GET(ie)); 141 idlers = (Ecore_Idler *)eina_inlist_remove(EINA_INLIST_GET(idlers), EINA_INLIST_GET(ie));
141 ECORE_MAGIC_SET(ie, ECORE_MAGIC_NONE); 142 ECORE_MAGIC_SET(ie, ECORE_MAGIC_NONE);
142 free(ie); 143 ecore_idler_mp_free(ie);
143 } 144 }
144 } 145 }
145 if (!deleted_idlers_in_use) 146 if (!deleted_idlers_in_use)
diff --git a/libraries/ecore/src/lib/ecore/ecore_job.c b/libraries/ecore/src/lib/ecore/ecore_job.c
index 481c3f3..ac27c7a 100644
--- a/libraries/ecore/src/lib/ecore/ecore_job.c
+++ b/libraries/ecore/src/lib/ecore/ecore_job.c
@@ -23,6 +23,7 @@ struct _Ecore_Job
23 Ecore_Cb func; 23 Ecore_Cb func;
24 void *data; 24 void *data;
25}; 25};
26GENERIC_ALLOC_SIZE_DECLARE(Ecore_Job);
26 27
27void 28void
28_ecore_job_init(void) 29_ecore_job_init(void)
@@ -61,13 +62,13 @@ ecore_job_add(Ecore_Cb func,
61 62
62 if (!func) return NULL; 63 if (!func) return NULL;
63 64
64 job = calloc(1, sizeof(Ecore_Job)); 65 job = ecore_job_calloc(1);
65 if (!job) return NULL; 66 if (!job) return NULL;
66 ECORE_MAGIC_SET(job, ECORE_MAGIC_JOB); 67 ECORE_MAGIC_SET(job, ECORE_MAGIC_JOB);
67 job->event = ecore_event_add(ecore_event_job_type, job, _ecore_job_event_free, NULL); 68 job->event = ecore_event_add(ecore_event_job_type, job, _ecore_job_event_free, NULL);
68 if (!job->event) 69 if (!job->event)
69 { 70 {
70 free(job); 71 ecore_job_mp_free(job);
71 return NULL; 72 return NULL;
72 } 73 }
73 job->func = func; 74 job->func = func;
@@ -115,8 +116,8 @@ _ecore_job_event_handler(void *data __UNUSED__,
115 116
116static void 117static void
117_ecore_job_event_free(void *data __UNUSED__, 118_ecore_job_event_free(void *data __UNUSED__,
118 void *ev) 119 void *job)
119{ 120{
120 free(ev); 121 ecore_job_mp_free(job);
121} 122}
122 123
diff --git a/libraries/ecore/src/lib/ecore/ecore_main.c b/libraries/ecore/src/lib/ecore/ecore_main.c
index 152836a..76aced6 100644
--- a/libraries/ecore/src/lib/ecore/ecore_main.c
+++ b/libraries/ecore/src/lib/ecore/ecore_main.c
@@ -167,6 +167,7 @@ struct _Ecore_Fd_Handler
167 GPollFD gfd; 167 GPollFD gfd;
168#endif 168#endif
169}; 169};
170GENERIC_ALLOC_SIZE_DECLARE(Ecore_Fd_Handler);
170 171
171#ifdef _WIN32 172#ifdef _WIN32
172struct _Ecore_Win32_Handler 173struct _Ecore_Win32_Handler
@@ -179,6 +180,7 @@ struct _Ecore_Win32_Handler
179 int references; 180 int references;
180 Eina_Bool delete_me : 1; 181 Eina_Bool delete_me : 1;
181}; 182};
183GENERIC_ALLOC_SIZE_DECLARE(Ecore_Win32_Handler);
182#endif 184#endif
183 185
184#ifndef USE_G_MAIN_LOOP 186#ifndef USE_G_MAIN_LOOP
@@ -207,9 +209,7 @@ static void _ecore_main_win32_handlers_cleanup(void);
207#endif 209#endif
208 210
209static int in_main_loop = 0; 211static int in_main_loop = 0;
210#ifndef USE_G_MAIN_LOOP
211static int do_quit = 0; 212static int do_quit = 0;
212#endif
213static Ecore_Fd_Handler *fd_handlers = NULL; 213static Ecore_Fd_Handler *fd_handlers = NULL;
214static Ecore_Fd_Handler *fd_handler_current = NULL; 214static Ecore_Fd_Handler *fd_handler_current = NULL;
215static Eina_List *fd_handlers_with_prep = NULL; 215static Eina_List *fd_handlers_with_prep = NULL;
@@ -889,8 +889,13 @@ ecore_main_loop_begin(void)
889 in_main_loop--; 889 in_main_loop--;
890 _ecore_unlock(); 890 _ecore_unlock();
891#else 891#else
892 ecore_main_loop = g_main_loop_new(NULL, FALSE); 892 if (!do_quit)
893 g_main_loop_run(ecore_main_loop); 893 {
894 if (!ecore_main_loop)
895 ecore_main_loop = g_main_loop_new(NULL, FALSE);
896 g_main_loop_run(ecore_main_loop);
897 }
898 do_quit = 0;
894#endif 899#endif
895} 900}
896 901
@@ -904,10 +909,10 @@ ecore_main_loop_begin(void)
904EAPI void 909EAPI void
905ecore_main_loop_quit(void) 910ecore_main_loop_quit(void)
906{ 911{
907#ifndef USE_G_MAIN_LOOP
908 do_quit = 1; 912 do_quit = 1;
909#else 913#ifdef USE_G_MAIN_LOOP
910 g_main_loop_quit(ecore_main_loop); 914 if (ecore_main_loop)
915 g_main_loop_quit(ecore_main_loop);
911#endif 916#endif
912} 917}
913 918
@@ -987,7 +992,7 @@ ecore_main_fd_handler_add(int fd,
987 992
988 if ((fd < 0) || (flags == 0) || (!func)) goto unlock; 993 if ((fd < 0) || (flags == 0) || (!func)) goto unlock;
989 994
990 fdh = calloc(1, sizeof(Ecore_Fd_Handler)); 995 fdh = ecore_fd_handler_calloc(1);
991 if (!fdh) goto unlock; 996 if (!fdh) goto unlock;
992 ECORE_MAGIC_SET(fdh, ECORE_MAGIC_FD_HANDLER); 997 ECORE_MAGIC_SET(fdh, ECORE_MAGIC_FD_HANDLER);
993 fdh->next_ready = NULL; 998 fdh->next_ready = NULL;
@@ -997,7 +1002,7 @@ ecore_main_fd_handler_add(int fd,
997 { 1002 {
998 int err = errno; 1003 int err = errno;
999 ERR("Failed to add poll on fd %d (errno = %d: %s)!", fd, err, strerror(err)); 1004 ERR("Failed to add poll on fd %d (errno = %d: %s)!", fd, err, strerror(err));
1000 free(fdh); 1005 ecore_fd_handler_mp_free(fdh);
1001 fdh = NULL; 1006 fdh = NULL;
1002 goto unlock; 1007 goto unlock;
1003 } 1008 }
@@ -1030,7 +1035,7 @@ ecore_main_win32_handler_add(void *h,
1030 1035
1031 if (!h || !func) return NULL; 1036 if (!h || !func) return NULL;
1032 1037
1033 wh = calloc(1, sizeof(Ecore_Win32_Handler)); 1038 wh = ecore_win32_handler_calloc(1);
1034 if (!wh) return NULL; 1039 if (!wh) return NULL;
1035 ECORE_MAGIC_SET(wh, ECORE_MAGIC_WIN32_HANDLER); 1040 ECORE_MAGIC_SET(wh, ECORE_MAGIC_WIN32_HANDLER);
1036 wh->h = (HANDLE)h; 1041 wh->h = (HANDLE)h;
@@ -1260,7 +1265,7 @@ _ecore_main_shutdown(void)
1260 fd_handlers = (Ecore_Fd_Handler *)eina_inlist_remove(EINA_INLIST_GET(fd_handlers), 1265 fd_handlers = (Ecore_Fd_Handler *)eina_inlist_remove(EINA_INLIST_GET(fd_handlers),
1261 EINA_INLIST_GET(fdh)); 1266 EINA_INLIST_GET(fdh));
1262 ECORE_MAGIC_SET(fdh, ECORE_MAGIC_NONE); 1267 ECORE_MAGIC_SET(fdh, ECORE_MAGIC_NONE);
1263 free(fdh); 1268 ecore_fd_handler_mp_free(fdh);
1264 } 1269 }
1265 if (fd_handlers_with_buffer) 1270 if (fd_handlers_with_buffer)
1266 fd_handlers_with_buffer = eina_list_free(fd_handlers_with_buffer); 1271 fd_handlers_with_buffer = eina_list_free(fd_handlers_with_buffer);
@@ -1283,7 +1288,7 @@ _ecore_main_shutdown(void)
1283 win32_handlers = (Ecore_Win32_Handler *)eina_inlist_remove(EINA_INLIST_GET(win32_handlers), 1288 win32_handlers = (Ecore_Win32_Handler *)eina_inlist_remove(EINA_INLIST_GET(win32_handlers),
1284 EINA_INLIST_GET(wh)); 1289 EINA_INLIST_GET(wh));
1285 ECORE_MAGIC_SET(wh, ECORE_MAGIC_NONE); 1290 ECORE_MAGIC_SET(wh, ECORE_MAGIC_NONE);
1286 free(wh); 1291 ecore_win32_handler_mp_free(wh);
1287 } 1292 }
1288 win32_handlers_delete_me = EINA_FALSE; 1293 win32_handlers_delete_me = EINA_FALSE;
1289 win32_handler_current = NULL; 1294 win32_handler_current = NULL;
@@ -1524,7 +1529,7 @@ _ecore_main_fd_handlers_cleanup(void)
1524 fd_handlers = (Ecore_Fd_Handler *) 1529 fd_handlers = (Ecore_Fd_Handler *)
1525 eina_inlist_remove(EINA_INLIST_GET(fd_handlers), EINA_INLIST_GET(fdh)); 1530 eina_inlist_remove(EINA_INLIST_GET(fd_handlers), EINA_INLIST_GET(fdh));
1526 ECORE_MAGIC_SET(fdh, ECORE_MAGIC_NONE); 1531 ECORE_MAGIC_SET(fdh, ECORE_MAGIC_NONE);
1527 free(fdh); 1532 ecore_fd_handler_mp_free(fdh);
1528 fd_handlers_to_delete = eina_list_remove_list(fd_handlers_to_delete, l); 1533 fd_handlers_to_delete = eina_list_remove_list(fd_handlers_to_delete, l);
1529 } 1534 }
1530} 1535}
@@ -1555,7 +1560,7 @@ _ecore_main_win32_handlers_cleanup(void)
1555 eina_inlist_remove(EINA_INLIST_GET(win32_handlers), 1560 eina_inlist_remove(EINA_INLIST_GET(win32_handlers),
1556 EINA_INLIST_GET(wh)); 1561 EINA_INLIST_GET(wh));
1557 ECORE_MAGIC_SET(wh, ECORE_MAGIC_NONE); 1562 ECORE_MAGIC_SET(wh, ECORE_MAGIC_NONE);
1558 free(wh); 1563 ecore_win32_handler_mp_free(wh);
1559 } 1564 }
1560 } 1565 }
1561 if (!deleted_in_use) win32_handlers_delete_me = EINA_FALSE; 1566 if (!deleted_in_use) win32_handlers_delete_me = EINA_FALSE;
diff --git a/libraries/ecore/src/lib/ecore/ecore_pipe.c b/libraries/ecore/src/lib/ecore/ecore_pipe.c
index 0ab7dd0..aa640cd 100644
--- a/libraries/ecore/src/lib/ecore/ecore_pipe.c
+++ b/libraries/ecore/src/lib/ecore/ecore_pipe.c
@@ -95,6 +95,7 @@ struct _Ecore_Pipe
95 int message; 95 int message;
96 Eina_Bool delete_me : 1; 96 Eina_Bool delete_me : 1;
97}; 97};
98GENERIC_ALLOC_SIZE_DECLARE(Ecore_Pipe);
98 99
99static Eina_Bool _ecore_pipe_read(void *data, 100static Eina_Bool _ecore_pipe_read(void *data,
100 Ecore_Fd_Handler *fd_handler); 101 Ecore_Fd_Handler *fd_handler);
@@ -125,12 +126,12 @@ ecore_pipe_add(Ecore_Pipe_Cb handler,
125 126
126 if (!handler) return NULL; 127 if (!handler) return NULL;
127 128
128 p = (Ecore_Pipe *)calloc(1, sizeof(Ecore_Pipe)); 129 p = ecore_pipe_calloc(1);
129 if (!p) return NULL; 130 if (!p) return NULL;
130 131
131 if (pipe(fds)) 132 if (pipe(fds))
132 { 133 {
133 free(p); 134 ecore_pipe_mp_free(p);
134 return NULL; 135 return NULL;
135 } 136 }
136 137
@@ -171,7 +172,7 @@ ecore_pipe_del(Ecore_Pipe *p)
171 if (p->fd_read != PIPE_FD_INVALID) pipe_close(p->fd_read); 172 if (p->fd_read != PIPE_FD_INVALID) pipe_close(p->fd_read);
172 if (p->fd_write != PIPE_FD_INVALID) pipe_close(p->fd_write); 173 if (p->fd_write != PIPE_FD_INVALID) pipe_close(p->fd_write);
173 data = (void *)p->data; 174 data = (void *)p->data;
174 free(p); 175 ecore_pipe_mp_free(p);
175 return data; 176 return data;
176} 177}
177 178
@@ -535,7 +536,6 @@ _ecore_pipe_read(void *data,
535 else if ((ret == PIPE_FD_ERROR) && 536 else if ((ret == PIPE_FD_ERROR) &&
536 ((errno == EINTR) || (errno == EAGAIN))) 537 ((errno == EINTR) || (errno == EAGAIN)))
537 { 538 {
538 _ecore_pipe_unhandle(p);
539 return ECORE_CALLBACK_RENEW; 539 return ECORE_CALLBACK_RENEW;
540 } 540 }
541 else 541 else
@@ -543,7 +543,6 @@ _ecore_pipe_read(void *data,
543 ERR("An unhandled error (ret: %i errno: %i [%s])" 543 ERR("An unhandled error (ret: %i errno: %i [%s])"
544 "occurred while reading from the pipe the length", 544 "occurred while reading from the pipe the length",
545 (int)ret, errno, strerror(errno)); 545 (int)ret, errno, strerror(errno));
546 _ecore_pipe_unhandle(p);
547 return ECORE_CALLBACK_RENEW; 546 return ECORE_CALLBACK_RENEW;
548 } 547 }
549#else 548#else
diff --git a/libraries/ecore/src/lib/ecore/ecore_poll.c b/libraries/ecore/src/lib/ecore/ecore_poll.c
index a283cb5..732850b 100644
--- a/libraries/ecore/src/lib/ecore/ecore_poll.c
+++ b/libraries/ecore/src/lib/ecore/ecore_poll.c
@@ -16,6 +16,7 @@ struct _Ecore_Poller
16 Ecore_Task_Cb func; 16 Ecore_Task_Cb func;
17 void *data; 17 void *data;
18}; 18};
19GENERIC_ALLOC_SIZE_DECLARE(Ecore_Poller);
19 20
20static Ecore_Timer *timer = NULL; 21static Ecore_Timer *timer = NULL;
21static int min_interval = -1; 22static int min_interval = -1;
@@ -109,8 +110,8 @@ _ecore_poller_cb_timer(void *data __UNUSED__)
109 110
110 at_tick++; 111 at_tick++;
111 last_tick = ecore_time_get(); 112 last_tick = ecore_time_get();
112 /* we have 16 counters - each incriments every time the poller counter 113 /* we have 16 counters - each increments every time the poller counter
113 * "ticks". it incriments by the minimum interval (which can be 1, 2, 4, 114 * "ticks". it increments by the minimum interval (which can be 1, 2, 4,
114 * 7, 16 etc. up to 32768) */ 115 * 7, 16 etc. up to 32768) */
115 for (i = 0; i < 15; i++) 116 for (i = 0; i < 15; i++)
116 { 117 {
@@ -159,7 +160,7 @@ _ecore_poller_cb_timer(void *data __UNUSED__)
159 if (poller->delete_me) 160 if (poller->delete_me)
160 { 161 {
161 pollers[i] = (Ecore_Poller *)eina_inlist_remove(EINA_INLIST_GET(pollers[i]), EINA_INLIST_GET(poller)); 162 pollers[i] = (Ecore_Poller *)eina_inlist_remove(EINA_INLIST_GET(pollers[i]), EINA_INLIST_GET(poller));
162 free(poller); 163 ecore_poller_mp_free(poller);
163 poller_delete_count--; 164 poller_delete_count--;
164 changes++; 165 changes++;
165 if (poller_delete_count <= 0) break; 166 if (poller_delete_count <= 0) break;
@@ -179,7 +180,7 @@ _ecore_poller_cb_timer(void *data __UNUSED__)
179 at_tick--; 180 at_tick--;
180 181
181 /* if the timer was deleted then there is no point returning 1 - ambiguous 182 /* if the timer was deleted then there is no point returning 1 - ambiguous
182 * if we do as it im plies "keep running me" but we have been deleted 183 * if we do as it implies keep running me" but we have been deleted
183 * anyway */ 184 * anyway */
184 if (!timer) return ECORE_CALLBACK_CANCEL; 185 if (!timer) return ECORE_CALLBACK_CANCEL;
185 186
@@ -215,7 +216,7 @@ ecore_poller_poll_interval_set(Ecore_Poller_Type type __UNUSED__,
215 * @param type The ticker type to query 216 * @param type The ticker type to query
216 * @return The time in seconds between ticks of the ticker clock 217 * @return The time in seconds between ticks of the ticker clock
217 * 218 *
218 * This will get the time between ticks of the specifider ticker clock. 219 * This will get the time between ticks of the specified ticker clock.
219 */ 220 */
220EAPI double 221EAPI double
221ecore_poller_poll_interval_get(Ecore_Poller_Type type __UNUSED__) 222ecore_poller_poll_interval_get(Ecore_Poller_Type type __UNUSED__)
@@ -281,7 +282,7 @@ ecore_poller_add(Ecore_Poller_Type type __UNUSED__,
281 if (!func) return NULL; 282 if (!func) return NULL;
282 if (interval < 1) interval = 1; 283 if (interval < 1) interval = 1;
283 284
284 poller = calloc(1, sizeof(Ecore_Poller)); 285 poller = ecore_poller_calloc(1);
285 if (!poller) return NULL; 286 if (!poller) return NULL;
286 ECORE_MAGIC_SET(poller, ECORE_MAGIC_POLLER); 287 ECORE_MAGIC_SET(poller, ECORE_MAGIC_POLLER);
287 /* interval MUST be a power of 2, so enforce it */ 288 /* interval MUST be a power of 2, so enforce it */
@@ -413,7 +414,7 @@ ecore_poller_del(Ecore_Poller *poller)
413 /* not in loop so safe - delete immediately */ 414 /* not in loop so safe - delete immediately */
414 data = poller->data; 415 data = poller->data;
415 pollers[poller->ibit] = (Ecore_Poller *)eina_inlist_remove(EINA_INLIST_GET(pollers[poller->ibit]), EINA_INLIST_GET(poller)); 416 pollers[poller->ibit] = (Ecore_Poller *)eina_inlist_remove(EINA_INLIST_GET(pollers[poller->ibit]), EINA_INLIST_GET(poller));
416 free(poller); 417 ecore_poller_mp_free(poller);
417 _ecore_poller_next_tick_eval(); 418 _ecore_poller_next_tick_eval();
418 return data; 419 return data;
419} 420}
@@ -433,7 +434,7 @@ _ecore_poller_shutdown(void)
433 while ((poller = pollers[i])) 434 while ((poller = pollers[i]))
434 { 435 {
435 pollers[i] = (Ecore_Poller *)eina_inlist_remove(EINA_INLIST_GET(pollers[i]), EINA_INLIST_GET(pollers[i])); 436 pollers[i] = (Ecore_Poller *)eina_inlist_remove(EINA_INLIST_GET(pollers[i]), EINA_INLIST_GET(pollers[i]));
436 free(poller); 437 ecore_poller_mp_free(poller);
437 } 438 }
438 } 439 }
439} 440}
diff --git a/libraries/ecore/src/lib/ecore/ecore_private.h b/libraries/ecore/src/lib/ecore/ecore_private.h
index f328605..50d502c 100644
--- a/libraries/ecore/src/lib/ecore/ecore_private.h
+++ b/libraries/ecore/src/lib/ecore/ecore_private.h
@@ -79,6 +79,7 @@ extern int _ecore_log_dom;
79#define ECORE_MAGIC_WIN32_HANDLER 0xf7e8f1a3 79#define ECORE_MAGIC_WIN32_HANDLER 0xf7e8f1a3
80#define ECORE_MAGIC_JOB 0x76543210 80#define ECORE_MAGIC_JOB 0x76543210
81 81
82typedef unsigned int Ecore_Magic;
82#define ECORE_MAGIC Ecore_Magic __magic 83#define ECORE_MAGIC Ecore_Magic __magic
83 84
84#define ECORE_MAGIC_SET(d, m) (d)->__magic = (m) 85#define ECORE_MAGIC_SET(d, m) (d)->__magic = (m)
@@ -116,8 +117,6 @@ ecore_print_warning(const char *function,
116 return; \ 117 return; \
117 } 118 }
118 119
119typedef unsigned int Ecore_Magic;
120
121EAPI void _ecore_magic_fail(const void *d, 120EAPI void _ecore_magic_fail(const void *d,
122 Ecore_Magic m, 121 Ecore_Magic m,
123 Ecore_Magic req_m, 122 Ecore_Magic req_m,
@@ -350,4 +349,30 @@ extern double _ecore_time_loop_time;
350extern Eina_Bool _ecore_glib_always_integrate; 349extern Eina_Bool _ecore_glib_always_integrate;
351extern Ecore_Select_Function main_loop_select; 350extern Ecore_Select_Function main_loop_select;
352 351
352Eina_Bool ecore_mempool_init(void);
353void ecore_mempool_shutdown(void);
354#define GENERIC_ALLOC_FREE_HEADER(TYPE, Type) \
355 TYPE *Type##_calloc(unsigned int); \
356 void Type##_mp_free(TYPE *e);
357#define GENERIC_ALLOC_SIZE_DECLARE(TYPE) \
358 size_t _ecore_sizeof_##TYPE = sizeof (TYPE);
359
360GENERIC_ALLOC_FREE_HEADER(Ecore_Animator, ecore_animator);
361GENERIC_ALLOC_FREE_HEADER(Ecore_Event_Handler, ecore_event_handler);
362GENERIC_ALLOC_FREE_HEADER(Ecore_Event_Filter, ecore_event_filter);
363GENERIC_ALLOC_FREE_HEADER(Ecore_Event, ecore_event);
364GENERIC_ALLOC_FREE_HEADER(Ecore_Idle_Exiter, ecore_idle_exiter);
365GENERIC_ALLOC_FREE_HEADER(Ecore_Idle_Enterer, ecore_idle_enterer);
366GENERIC_ALLOC_FREE_HEADER(Ecore_Idler, ecore_idler);
367GENERIC_ALLOC_FREE_HEADER(Ecore_Job, ecore_job);
368GENERIC_ALLOC_FREE_HEADER(Ecore_Timer, ecore_timer);
369GENERIC_ALLOC_FREE_HEADER(Ecore_Poller, ecore_poller);
370GENERIC_ALLOC_FREE_HEADER(Ecore_Pipe, ecore_pipe);
371GENERIC_ALLOC_FREE_HEADER(Ecore_Fd_Handler, ecore_fd_handler);
372#ifdef _WIN32
373GENERIC_ALLOC_FREE_HEADER(Ecore_Win32_Handler, ecore_win32_handler);
374#endif
375
376#undef GENERIC_ALLOC_FREE_HEADER
377
353#endif 378#endif
diff --git a/libraries/ecore/src/lib/ecore/ecore_thread.c b/libraries/ecore/src/lib/ecore/ecore_thread.c
index 2a8ea76..4444ad4 100644
--- a/libraries/ecore/src/lib/ecore/ecore_thread.c
+++ b/libraries/ecore/src/lib/ecore/ecore_thread.c
@@ -2,6 +2,7 @@
2# include <config.h> 2# include <config.h>
3#endif 3#endif
4 4
5#include <stdlib.h>
5#include <sys/time.h> 6#include <sys/time.h>
6#include <assert.h> 7#include <assert.h>
7#include <sys/types.h> 8#include <sys/types.h>
@@ -388,7 +389,7 @@ static void _ecore_thread_handler(void *data __UNUSED__,
388static Ecore_Pipe * 389static Ecore_Pipe *
389_ecore_thread_pipe_get(void) 390_ecore_thread_pipe_get(void)
390{ 391{
391 if (eina_array_count_get(_ecore_thread_pipe) > 0) 392 if (eina_array_count(_ecore_thread_pipe) > 0)
392 return eina_array_pop(_ecore_thread_pipe); 393 return eina_array_pop(_ecore_thread_pipe);
393 394
394 return ecore_pipe_add(_ecore_thread_handler, NULL); 395 return ecore_pipe_add(_ecore_thread_handler, NULL);
@@ -458,7 +459,7 @@ _ecore_thread_pipe_free(void *data __UNUSED__,
458{ 459{
459 Ecore_Pipe *p = event; 460 Ecore_Pipe *p = event;
460 461
461 if (eina_array_count_get(_ecore_thread_pipe) < 50) 462 if (eina_array_count(_ecore_thread_pipe) < 50)
462 eina_array_push(_ecore_thread_pipe, p); 463 eina_array_push(_ecore_thread_pipe, p);
463 else 464 else
464 ecore_pipe_del(p); 465 ecore_pipe_del(p);
@@ -544,7 +545,7 @@ _ecore_thread_kill(Ecore_Pthread_Worker *work)
544 LKD(work->mutex); 545 LKD(work->mutex);
545 if (work->hash) 546 if (work->hash)
546 eina_hash_free(work->hash); 547 eina_hash_free(work->hash);
547 free(work); 548 _ecore_thread_worker_free(work);
548} 549}
549 550
550static void 551static void
@@ -594,7 +595,8 @@ _ecore_notify_handler(void *data,
594} 595}
595 596
596static void 597static void
597_ecore_short_job(Ecore_Pipe *end_pipe) 598_ecore_short_job(Ecore_Pipe *end_pipe,
599 PH(thread))
598{ 600{
599 Ecore_Pthread_Worker *work; 601 Ecore_Pthread_Worker *work;
600 602
@@ -614,6 +616,7 @@ _ecore_short_job(Ecore_Pipe *end_pipe)
614 616
615 LKU(_ecore_pending_job_threads_mutex); 617 LKU(_ecore_pending_job_threads_mutex);
616 618
619 work->self = thread;
617 if (!work->cancel) 620 if (!work->cancel)
618 work->u.short_run.func_blocking((void *)work->data, (Ecore_Thread *)work); 621 work->u.short_run.func_blocking((void *)work->data, (Ecore_Thread *)work);
619 622
@@ -737,7 +740,7 @@ _ecore_thread_worker(Ecore_Pthread_Data *pth)
737 eina_sched_prio_drop(); 740 eina_sched_prio_drop();
738 741
739restart: 742restart:
740 if (_ecore_pending_job_threads) _ecore_short_job(pth->p); 743 if (_ecore_pending_job_threads) _ecore_short_job(pth->p, pth->thread);
741 if (_ecore_pending_job_threads_feedback) _ecore_feedback_job(pth->p, pth->thread); 744 if (_ecore_pending_job_threads_feedback) _ecore_feedback_job(pth->p, pth->thread);
742 745
743 /* FIXME: Check if there is feedback running task todo, and switch to feedback run handler. */ 746 /* FIXME: Check if there is feedback running task todo, and switch to feedback run handler. */
@@ -929,6 +932,7 @@ ecore_thread_run(Ecore_Thread_Cb func_blocking,
929 work->data = data; 932 work->data = data;
930 933
931#ifdef EFL_HAVE_THREADS 934#ifdef EFL_HAVE_THREADS
935 work->self = 0;
932 work->hash = NULL; 936 work->hash = NULL;
933 CDI(work->cond); 937 CDI(work->cond);
934 LKI(work->mutex); 938 LKI(work->mutex);
@@ -1114,6 +1118,7 @@ ecore_thread_feedback_run(Ecore_Thread_Cb func_heavy,
1114 worker->feedback_run = EINA_TRUE; 1118 worker->feedback_run = EINA_TRUE;
1115 worker->kill = EINA_FALSE; 1119 worker->kill = EINA_FALSE;
1116 worker->reschedule = EINA_FALSE; 1120 worker->reschedule = EINA_FALSE;
1121 worker->self = 0;
1117 1122
1118 worker->u.feedback_run.send = 0; 1123 worker->u.feedback_run.send = 0;
1119 worker->u.feedback_run.received = 0; 1124 worker->u.feedback_run.received = 0;
diff --git a/libraries/ecore/src/lib/ecore/ecore_timer.c b/libraries/ecore/src/lib/ecore/ecore_timer.c
index 9c66545..cc19e3f 100644
--- a/libraries/ecore/src/lib/ecore/ecore_timer.c
+++ b/libraries/ecore/src/lib/ecore/ecore_timer.c
@@ -35,6 +35,7 @@ struct _Ecore_Timer
35 unsigned char just_added : 1; 35 unsigned char just_added : 1;
36 unsigned char frozen : 1; 36 unsigned char frozen : 1;
37}; 37};
38GENERIC_ALLOC_SIZE_DECLARE(Ecore_Timer);
38 39
39static void _ecore_timer_set(Ecore_Timer *timer, 40static void _ecore_timer_set(Ecore_Timer *timer,
40 double at, 41 double at,
@@ -140,7 +141,7 @@ ecore_timer_add(double in,
140 _ecore_lock(); 141 _ecore_lock();
141 if (!func) goto unlock; 142 if (!func) goto unlock;
142 if (in < 0.0) in = 0.0; 143 if (in < 0.0) in = 0.0;
143 timer = calloc(1, sizeof(Ecore_Timer)); 144 timer = ecore_timer_calloc(1);
144 if (!timer) goto unlock; 145 if (!timer) goto unlock;
145 ECORE_MAGIC_SET(timer, ECORE_MAGIC_TIMER); 146 ECORE_MAGIC_SET(timer, ECORE_MAGIC_TIMER);
146 now = ecore_time_get(); 147 now = ecore_time_get();
@@ -287,6 +288,37 @@ ecore_timer_delay(Ecore_Timer *timer,
287} 288}
288 289
289/** 290/**
291 * Reset a timer to its full interval
292 * This doesn't affect the interval of a timer
293 * @param timer The timer
294 * @since 1.2
295 * @note This is equivalent to (but faster than)
296 * @code
297 * ecore_timer_delay(timer, ecore_timer_interval_get(timer) - ecore_timer_pending_get(timer));
298 * @endcode
299 */
300EAPI void
301ecore_timer_reset(Ecore_Timer *timer)
302{
303 double now, add;
304 if (!ECORE_MAGIC_CHECK(timer, ECORE_MAGIC_TIMER))
305 {
306 ECORE_MAGIC_FAIL(timer, ECORE_MAGIC_TIMER,
307 __func__);
308 return;
309 }
310 _ecore_lock();
311 now = ecore_time_get();
312
313 if (timer->frozen)
314 add = timer->pending;
315 else
316 add = timer->at - now;
317 _ecore_timer_delay(timer, timer->in - add);
318 _ecore_unlock();
319}
320
321/**
290 * Get the pending time regarding a timer. 322 * Get the pending time regarding a timer.
291 * 323 *
292 * @param timer The timer to learn from. 324 * @param timer The timer to learn from.
@@ -470,7 +502,7 @@ _ecore_timer_loop_add(double in,
470 502
471 if (!func) return timer; 503 if (!func) return timer;
472 if (in < 0.0) in = 0.0; 504 if (in < 0.0) in = 0.0;
473 timer = calloc(1, sizeof(Ecore_Timer)); 505 timer = ecore_timer_calloc(1);
474 if (!timer) return timer; 506 if (!timer) return timer;
475 ECORE_MAGIC_SET(timer, ECORE_MAGIC_TIMER); 507 ECORE_MAGIC_SET(timer, ECORE_MAGIC_TIMER);
476 now = ecore_loop_time_get(); 508 now = ecore_loop_time_get();
@@ -510,7 +542,7 @@ _ecore_timer_del(Ecore_Timer *timer)
510 if (timer->delete_me) 542 if (timer->delete_me)
511 timers_delete_me--; 543 timers_delete_me--;
512 544
513 free(timer); 545 ecore_timer_mp_free(timer);
514 return data; 546 return data;
515 } 547 }
516 548
@@ -529,14 +561,14 @@ _ecore_timer_shutdown(void)
529 { 561 {
530 timers = (Ecore_Timer *)eina_inlist_remove(EINA_INLIST_GET(timers), EINA_INLIST_GET(timers)); 562 timers = (Ecore_Timer *)eina_inlist_remove(EINA_INLIST_GET(timers), EINA_INLIST_GET(timers));
531 ECORE_MAGIC_SET(timer, ECORE_MAGIC_NONE); 563 ECORE_MAGIC_SET(timer, ECORE_MAGIC_NONE);
532 free(timer); 564 ecore_timer_mp_free(timer);
533 } 565 }
534 566
535 while ((timer = suspended)) 567 while ((timer = suspended))
536 { 568 {
537 suspended = (Ecore_Timer *)eina_inlist_remove(EINA_INLIST_GET(suspended), EINA_INLIST_GET(suspended)); 569 suspended = (Ecore_Timer *)eina_inlist_remove(EINA_INLIST_GET(suspended), EINA_INLIST_GET(suspended));
538 ECORE_MAGIC_SET(timer, ECORE_MAGIC_NONE); 570 ECORE_MAGIC_SET(timer, ECORE_MAGIC_NONE);
539 free(timer); 571 ecore_timer_mp_free(timer);
540 } 572 }
541 573
542 timer_current = NULL; 574 timer_current = NULL;
@@ -563,7 +595,7 @@ _ecore_timer_cleanup(void)
563 } 595 }
564 timers = (Ecore_Timer *)eina_inlist_remove(EINA_INLIST_GET(timers), EINA_INLIST_GET(timer)); 596 timers = (Ecore_Timer *)eina_inlist_remove(EINA_INLIST_GET(timers), EINA_INLIST_GET(timer));
565 ECORE_MAGIC_SET(timer, ECORE_MAGIC_NONE); 597 ECORE_MAGIC_SET(timer, ECORE_MAGIC_NONE);
566 free(timer); 598 ecore_timer_mp_free(timer);
567 timers_delete_me--; 599 timers_delete_me--;
568 done++; 600 done++;
569 if (timers_delete_me == 0) return; 601 if (timers_delete_me == 0) return;
@@ -583,7 +615,7 @@ _ecore_timer_cleanup(void)
583 } 615 }
584 suspended = (Ecore_Timer *)eina_inlist_remove(EINA_INLIST_GET(suspended), EINA_INLIST_GET(timer)); 616 suspended = (Ecore_Timer *)eina_inlist_remove(EINA_INLIST_GET(suspended), EINA_INLIST_GET(timer));
585 ECORE_MAGIC_SET(timer, ECORE_MAGIC_NONE); 617 ECORE_MAGIC_SET(timer, ECORE_MAGIC_NONE);
586 free(timer); 618 ecore_timer_mp_free(timer);
587 timers_delete_me--; 619 timers_delete_me--;
588 done++; 620 done++;
589 if (timers_delete_me == 0) return; 621 if (timers_delete_me == 0) return;
diff --git a/libraries/ecore/src/lib/ecore_cocoa/Makefile.in b/libraries/ecore/src/lib/ecore_cocoa/Makefile.in
index ede48a2..15ce879 100644
--- a/libraries/ecore/src/lib/ecore_cocoa/Makefile.in
+++ b/libraries/ecore/src/lib/ecore_cocoa/Makefile.in
@@ -247,10 +247,10 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
247PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 247PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
248PIXMAN_LIBS = @PIXMAN_LIBS@ 248PIXMAN_LIBS = @PIXMAN_LIBS@
249PKG_CONFIG = @PKG_CONFIG@ 249PKG_CONFIG = @PKG_CONFIG@
250PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
251PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
252POSUB = @POSUB@ 250POSUB = @POSUB@
253RANLIB = @RANLIB@ 251RANLIB = @RANLIB@
252SCIM_CFLAGS = @SCIM_CFLAGS@
253SCIM_LIBS = @SCIM_LIBS@
254SDL_CFLAGS = @SDL_CFLAGS@ 254SDL_CFLAGS = @SDL_CFLAGS@
255SDL_CONFIG = @SDL_CONFIG@ 255SDL_CONFIG = @SDL_CONFIG@
256SDL_LIBS = @SDL_LIBS@ 256SDL_LIBS = @SDL_LIBS@
@@ -269,6 +269,10 @@ TSLIB_LIBS = @TSLIB_LIBS@
269USE_NLS = @USE_NLS@ 269USE_NLS = @USE_NLS@
270VERSION = @VERSION@ 270VERSION = @VERSION@
271VMAJ = @VMAJ@ 271VMAJ = @VMAJ@
272WAYLAND_CFLAGS = @WAYLAND_CFLAGS@
273WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
274WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
275WAYLAND_LIBS = @WAYLAND_LIBS@
272WIN32_CFLAGS = @WIN32_CFLAGS@ 276WIN32_CFLAGS = @WIN32_CFLAGS@
273WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 277WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
274WIN32_LIBS = @WIN32_LIBS@ 278WIN32_LIBS = @WIN32_LIBS@
@@ -382,6 +386,8 @@ ecore_imf_cflags = @ecore_imf_cflags@
382ecore_imf_evas_cflags = @ecore_imf_evas_cflags@ 386ecore_imf_evas_cflags = @ecore_imf_evas_cflags@
383ecore_imf_evas_libs = @ecore_imf_evas_libs@ 387ecore_imf_evas_libs = @ecore_imf_evas_libs@
384ecore_imf_libs = @ecore_imf_libs@ 388ecore_imf_libs = @ecore_imf_libs@
389ecore_imf_scim_cflags = @ecore_imf_scim_cflags@
390ecore_imf_scim_libs = @ecore_imf_scim_libs@
385ecore_imf_xim_cflags = @ecore_imf_xim_cflags@ 391ecore_imf_xim_cflags = @ecore_imf_xim_cflags@
386ecore_imf_xim_libs = @ecore_imf_xim_libs@ 392ecore_imf_xim_libs = @ecore_imf_xim_libs@
387ecore_input_cflags = @ecore_input_cflags@ 393ecore_input_cflags = @ecore_input_cflags@
@@ -394,6 +400,8 @@ ecore_psl1ght_cflags = @ecore_psl1ght_cflags@
394ecore_psl1ght_libs = @ecore_psl1ght_libs@ 400ecore_psl1ght_libs = @ecore_psl1ght_libs@
395ecore_sdl_cflags = @ecore_sdl_cflags@ 401ecore_sdl_cflags = @ecore_sdl_cflags@
396ecore_sdl_libs = @ecore_sdl_libs@ 402ecore_sdl_libs = @ecore_sdl_libs@
403ecore_wayland_cflags = @ecore_wayland_cflags@
404ecore_wayland_libs = @ecore_wayland_libs@
397ecore_win32_cflags = @ecore_win32_cflags@ 405ecore_win32_cflags = @ecore_win32_cflags@
398ecore_win32_libs = @ecore_win32_libs@ 406ecore_win32_libs = @ecore_win32_libs@
399ecore_wince_cflags = @ecore_wince_cflags@ 407ecore_wince_cflags = @ecore_wince_cflags@
@@ -438,12 +446,14 @@ requirements_ecore_fb = @requirements_ecore_fb@
438requirements_ecore_file = @requirements_ecore_file@ 446requirements_ecore_file = @requirements_ecore_file@
439requirements_ecore_imf = @requirements_ecore_imf@ 447requirements_ecore_imf = @requirements_ecore_imf@
440requirements_ecore_imf_evas = @requirements_ecore_imf_evas@ 448requirements_ecore_imf_evas = @requirements_ecore_imf_evas@
449requirements_ecore_imf_scim = @requirements_ecore_imf_scim@
441requirements_ecore_imf_xim = @requirements_ecore_imf_xim@ 450requirements_ecore_imf_xim = @requirements_ecore_imf_xim@
442requirements_ecore_input = @requirements_ecore_input@ 451requirements_ecore_input = @requirements_ecore_input@
443requirements_ecore_input_evas = @requirements_ecore_input_evas@ 452requirements_ecore_input_evas = @requirements_ecore_input_evas@
444requirements_ecore_ipc = @requirements_ecore_ipc@ 453requirements_ecore_ipc = @requirements_ecore_ipc@
445requirements_ecore_psl1ght = @requirements_ecore_psl1ght@ 454requirements_ecore_psl1ght = @requirements_ecore_psl1ght@
446requirements_ecore_sdl = @requirements_ecore_sdl@ 455requirements_ecore_sdl = @requirements_ecore_sdl@
456requirements_ecore_wayland = @requirements_ecore_wayland@
447requirements_ecore_win32 = @requirements_ecore_win32@ 457requirements_ecore_win32 = @requirements_ecore_win32@
448requirements_ecore_wince = @requirements_ecore_wince@ 458requirements_ecore_wince = @requirements_ecore_wince@
449requirements_ecore_x = @requirements_ecore_x@ 459requirements_ecore_x = @requirements_ecore_x@
diff --git a/libraries/ecore/src/lib/ecore_con/Ecore_Con.h b/libraries/ecore/src/lib/ecore_con/Ecore_Con.h
index e3b68c4..c3af46a 100644
--- a/libraries/ecore/src/lib/ecore_con/Ecore_Con.h
+++ b/libraries/ecore/src/lib/ecore_con/Ecore_Con.h
@@ -234,6 +234,14 @@ typedef struct _Ecore_Con_Server Ecore_Con_Server;
234typedef struct _Ecore_Con_Client Ecore_Con_Client; 234typedef struct _Ecore_Con_Client Ecore_Con_Client;
235 235
236/** 236/**
237 * @typedef Ecore_Con_Socks
238 * An object representing a SOCKS proxy
239 * @ingroup Ecore_Con_Socks_Group
240 * @since 1.2
241 */
242typedef struct Ecore_Con_Socks Ecore_Con_Socks;
243
244/**
237 * @typedef Ecore_Con_Url 245 * @typedef Ecore_Con_Url
238 * A handle to an http upload/download object 246 * A handle to an http upload/download object
239 * @ingroup Ecore_Con_Url_Group 247 * @ingroup Ecore_Con_Url_Group
@@ -325,6 +333,13 @@ typedef struct _Ecore_Con_Event_Client_Write Ecore_Con_Event_Client_Write;
325typedef struct _Ecore_Con_Event_Server_Write Ecore_Con_Event_Server_Write; 333typedef struct _Ecore_Con_Event_Server_Write Ecore_Con_Event_Server_Write;
326 334
327/** 335/**
336 * @typedef Ecore_Con_Event_Proxy_Bind
337 * Used as the @p data param for the corresponding event
338 * @since 1.2
339 */
340typedef struct _Ecore_Con_Event_Proxy_Bind Ecore_Con_Event_Proxy_Bind;
341
342/**
328 * @typedef Ecore_Con_Event_Url_Data 343 * @typedef Ecore_Con_Event_Url_Data
329 * Used as the @p data param for the corresponding event 344 * Used as the @p data param for the corresponding event
330 * @ingroup Ecore_Con_Url_Group 345 * @ingroup Ecore_Con_Url_Group
@@ -464,6 +479,19 @@ struct _Ecore_Con_Event_Server_Write
464}; 479};
465 480
466/** 481/**
482 * @struct _Ecore_Con_Event_Proxy_Bind
483 * Used as the @p data param for the @ref ECORE_CON_EVENT_PROXY_BIND event
484 * @ingroup Ecore_Con_Socks_Group
485 * @since 1.2
486 */
487struct _Ecore_Con_Event_Proxy_Bind
488{
489 Ecore_Con_Server *server; /**< the server object connected to the proxy */
490 const char *ip; /**< the proxy-bound ip address */
491 int port; /**< the proxy-bound port */
492};
493
494/**
467 * @struct _Ecore_Con_Event_Url_Data 495 * @struct _Ecore_Con_Event_Url_Data
468 * Used as the @p data param for the @ref ECORE_CON_EVENT_URL_DATA event 496 * Used as the @p data param for the @ref ECORE_CON_EVENT_URL_DATA event
469 * @ingroup Ecore_Con_Url_Group 497 * @ingroup Ecore_Con_Url_Group
@@ -542,6 +570,10 @@ EAPI extern int ECORE_CON_EVENT_SERVER_WRITE;
542EAPI extern int ECORE_CON_EVENT_CLIENT_DATA; 570EAPI extern int ECORE_CON_EVENT_CLIENT_DATA;
543/** A server connection object has data */ 571/** A server connection object has data */
544EAPI extern int ECORE_CON_EVENT_SERVER_DATA; 572EAPI extern int ECORE_CON_EVENT_SERVER_DATA;
573/** A server connection has successfully negotiated an ip:port binding
574 * @since 1.2
575 */
576EAPI extern int ECORE_CON_EVENT_PROXY_BIND;
545/** A URL object has data */ 577/** A URL object has data */
546EAPI extern int ECORE_CON_EVENT_URL_DATA; 578EAPI extern int ECORE_CON_EVENT_URL_DATA;
547/** A URL object has completed its transfer to and from the server and can be reused */ 579/** A URL object has completed its transfer to and from the server and can be reused */
@@ -605,7 +637,13 @@ typedef enum _Ecore_Con_Type
605 ECORE_CON_REMOTE_UDP = 5, 637 ECORE_CON_REMOTE_UDP = 5,
606 /** Remote broadcast using UDP */ 638 /** Remote broadcast using UDP */
607 ECORE_CON_REMOTE_BROADCAST = 6, 639 ECORE_CON_REMOTE_BROADCAST = 6,
640 /** Remote connection sending packets immediately */
608 ECORE_CON_REMOTE_NODELAY = 7, 641 ECORE_CON_REMOTE_NODELAY = 7,
642 /** Remote connection sending data in large chunks
643 * @note Only available on Linux
644 * @since 1.2
645 */
646 ECORE_CON_REMOTE_CORK = 8,
609 /** Use SSL2: UNSUPPORTED. **/ 647 /** Use SSL2: UNSUPPORTED. **/
610 ECORE_CON_USE_SSL2 = (1 << 4), 648 ECORE_CON_USE_SSL2 = (1 << 4),
611 /** Use SSL3 */ 649 /** Use SSL3 */
@@ -675,6 +713,8 @@ EAPI Eina_Bool ecore_con_ssl_server_crl_add(Ecore_Con_Server *svr, const
675EAPI Eina_Bool ecore_con_ssl_server_cafile_add(Ecore_Con_Server *svr, const char *ca_file); 713EAPI Eina_Bool ecore_con_ssl_server_cafile_add(Ecore_Con_Server *svr, const char *ca_file);
676EAPI void ecore_con_ssl_server_verify(Ecore_Con_Server *svr); 714EAPI void ecore_con_ssl_server_verify(Ecore_Con_Server *svr);
677EAPI void ecore_con_ssl_server_verify_basic(Ecore_Con_Server *svr); 715EAPI void ecore_con_ssl_server_verify_basic(Ecore_Con_Server *svr);
716EAPI void ecore_con_ssl_server_verify_name_set(Ecore_Con_Server *svr, const char *name);
717EAPI const char *ecore_con_ssl_server_verify_name_get(Ecore_Con_Server *svr);
678EAPI Eina_Bool ecore_con_ssl_server_upgrade(Ecore_Con_Server *svr, Ecore_Con_Type compl_type); 718EAPI Eina_Bool ecore_con_ssl_server_upgrade(Ecore_Con_Server *svr, Ecore_Con_Type compl_type);
679EAPI Eina_Bool ecore_con_ssl_client_upgrade(Ecore_Con_Client *cl, Ecore_Con_Type compl_type); 719EAPI Eina_Bool ecore_con_ssl_client_upgrade(Ecore_Con_Client *cl, Ecore_Con_Type compl_type);
680 720
@@ -682,6 +722,18 @@ EAPI Eina_Bool ecore_con_ssl_client_upgrade(Ecore_Con_Client *cl, Ecore_
682 * @} 722 * @}
683 */ 723 */
684 724
725EAPI Ecore_Con_Socks *ecore_con_socks4_remote_add(const char *ip, int port, const char *username);
726EAPI void ecore_con_socks4_lookup_set(Ecore_Con_Socks *ecs, Eina_Bool enable);
727EAPI Eina_Bool ecore_con_socks4_lookup_get(Ecore_Con_Socks *ecs);
728EAPI Eina_Bool ecore_con_socks4_remote_exists(const char *ip, int port, const char *username);
729EAPI void ecore_con_socks4_remote_del(const char *ip, int port, const char *username);
730EAPI void ecore_con_socks_bind_set(Ecore_Con_Socks *ecs, Eina_Bool is_bind);
731EAPI Eina_Bool ecore_con_socks_bind_get(Ecore_Con_Socks *ecs);
732EAPI unsigned int ecore_con_socks_version_get(Ecore_Con_Socks *ecs);
733EAPI void ecore_con_socks_remote_del(Ecore_Con_Socks *ecs);
734EAPI void ecore_con_socks_apply_once(Ecore_Con_Socks *ecs);
735EAPI void ecore_con_socks_apply_always(Ecore_Con_Socks *ecs);
736
685/** 737/**
686 * @defgroup Ecore_Con_Server_Group Ecore Connection Server Functions 738 * @defgroup Ecore_Con_Server_Group Ecore Connection Server Functions
687 * 739 *
@@ -1185,6 +1237,8 @@ EAPI Eina_Bool ecore_con_client_connected_get(Ecore_Con_Client *cl);
1185 */ 1237 */
1186EAPI int ecore_con_client_port_get(Ecore_Con_Client *cl); 1238EAPI int ecore_con_client_port_get(Ecore_Con_Client *cl);
1187 1239
1240
1241
1188/** 1242/**
1189 * @} 1243 * @}
1190 */ 1244 */
@@ -1583,7 +1637,7 @@ EAPI Eina_Bool ecore_con_url_post(Ecore_Con_Url *url_con,
1583 * modification time. 1637 * modification time.
1584 * 1638 *
1585 * @param url_con Ecore_Con_Url to act upon. 1639 * @param url_con Ecore_Con_Url to act upon.
1586 * @param condition Condition to use for HTTP requests. 1640 * @param time_condition Condition to use for HTTP requests.
1587 * @param timestamp Time since 1 Jan 1970 to use in the condition. 1641 * @param timestamp Time since 1 Jan 1970 to use in the condition.
1588 * 1642 *
1589 * This function may set the header "If-Modified-Since" or 1643 * This function may set the header "If-Modified-Since" or
@@ -1791,6 +1845,74 @@ EAPI int ecore_con_url_ssl_ca_set(Ecore_Con_Url *url_con,
1791 const char *ca_path); 1845 const char *ca_path);
1792 1846
1793/** 1847/**
1848 * Set HTTP proxy to use.
1849 *
1850 * The parameter should be a char * to a zero terminated string holding
1851 * the host name or dotted IP address. To specify port number in this string,
1852 * append :[port] to the end of the host name.
1853 * The proxy string may be prefixed with [protocol]:// since any such prefix
1854 * will be ignored.
1855 * The proxy's port number may optionally be specified with the separate option.
1856 * If not specified, libcurl will default to using port 1080 for proxies.
1857 *
1858 * @param url_con Connection object that will use the proxy.
1859 * @param proxy Porxy string or @c NULL to disable
1860 *
1861 * @return #EINA_TRUE on success, #EINA_FALSE on error.
1862 * @since 1.2
1863 */
1864EAPI Eina_Bool ecore_con_url_proxy_set(Ecore_Con_Url *url_con, const char *proxy);
1865
1866/**
1867 * Set zero terminated username to use for proxy.
1868 *
1869 * if socks protocol is used for proxy, protocol should be socks5 and above.
1870 *
1871 * @param url_con Connection object that will use the proxy.
1872 * @param username Username string.
1873 *
1874 * @return #EINA_TRUE on success, #EINA_FALSE on error.
1875 *
1876 * @see ecore_con_url_proxy_set()
1877 *
1878 * @since 1.2
1879 */
1880EAPI Eina_Bool ecore_con_url_proxy_username_set(Ecore_Con_Url *url_con, const char *username);
1881
1882/**
1883 * Set zero terminated password to use for proxy.
1884 *
1885 * if socks protocol is used for proxy, protocol should be socks5 and above.
1886 *
1887 * @param url_con Connection object that will use the proxy.
1888 * @param password Password string.
1889 *
1890 * @return #EINA_TRUE on success, #EINA_FALSE on error.
1891 *
1892 * @see ecore_con_url_proxy_set()
1893 *
1894 * @since 1.2
1895 */
1896EAPI Eina_Bool ecore_con_url_proxy_password_set(Ecore_Con_Url *url_con, const char *password);
1897
1898/**
1899 * Set timeout in seconds.
1900 *
1901 * the maximum time in seconds that you allow the ecore con url transfer
1902 * operation to take. Normally, name lookups can take a considerable time
1903 * and limiting operations to less than a few minutes risk aborting perfectly
1904 * normal operations.
1905 *
1906 * @param url_con Connection object that will use the timeout.
1907 * @param timeout time in seconds.
1908 *
1909 * @see ecore_con_url_cookies_jar_file_set()
1910 *
1911 * @since 1.2
1912 */
1913EAPI void ecore_con_url_timeout_set(Ecore_Con_Url *url_con, double timeout);
1914
1915/**
1794 * @} 1916 * @}
1795 */ 1917 */
1796 1918
diff --git a/libraries/ecore/src/lib/ecore_con/Makefile.am b/libraries/ecore/src/lib/ecore_con/Makefile.am
index 300586d..929b30e 100644
--- a/libraries/ecore/src/lib/ecore_con/Makefile.am
+++ b/libraries/ecore/src/lib/ecore_con/Makefile.am
@@ -19,6 +19,7 @@ includesdir = $(includedir)/ecore-@VMAJ@
19 19
20libecore_con_la_SOURCES = \ 20libecore_con_la_SOURCES = \
21ecore_con.c \ 21ecore_con.c \
22ecore_con_socks.c \
22ecore_con_ssl.c \ 23ecore_con_ssl.c \
23ecore_con_url.c \ 24ecore_con_url.c \
24ecore_con_alloc.c 25ecore_con_alloc.c
diff --git a/libraries/ecore/src/lib/ecore_con/Makefile.in b/libraries/ecore/src/lib/ecore_con/Makefile.in
index 5940a83..58811da 100644
--- a/libraries/ecore/src/lib/ecore_con/Makefile.in
+++ b/libraries/ecore/src/lib/ecore_con/Makefile.in
@@ -92,15 +92,17 @@ am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includesdir)"
92LTLIBRARIES = $(lib_LTLIBRARIES) 92LTLIBRARIES = $(lib_LTLIBRARIES)
93libecore_con_la_DEPENDENCIES = \ 93libecore_con_la_DEPENDENCIES = \
94 $(top_builddir)/src/lib/ecore/libecore.la 94 $(top_builddir)/src/lib/ecore/libecore.la
95am__libecore_con_la_SOURCES_DIST = ecore_con.c ecore_con_ssl.c \ 95am__libecore_con_la_SOURCES_DIST = ecore_con.c ecore_con_socks.c \
96 ecore_con_url.c ecore_con_alloc.c ecore_con_local_win32.c \ 96 ecore_con_ssl.c ecore_con_url.c ecore_con_alloc.c \
97 ecore_con_local.c ecore_con_ares.c ecore_con_info.c 97 ecore_con_local_win32.c ecore_con_local.c ecore_con_ares.c \
98 ecore_con_info.c
98@ECORE_HAVE_WIN32_TRUE@am__objects_1 = libecore_con_la-ecore_con_local_win32.lo 99@ECORE_HAVE_WIN32_TRUE@am__objects_1 = libecore_con_la-ecore_con_local_win32.lo
99@ECORE_HAVE_WIN32_FALSE@am__objects_2 = \ 100@ECORE_HAVE_WIN32_FALSE@am__objects_2 = \
100@ECORE_HAVE_WIN32_FALSE@ libecore_con_la-ecore_con_local.lo 101@ECORE_HAVE_WIN32_FALSE@ libecore_con_la-ecore_con_local.lo
101@HAVE_CARES_TRUE@am__objects_3 = libecore_con_la-ecore_con_ares.lo 102@HAVE_CARES_TRUE@am__objects_3 = libecore_con_la-ecore_con_ares.lo
102@HAVE_CARES_FALSE@am__objects_4 = libecore_con_la-ecore_con_info.lo 103@HAVE_CARES_FALSE@am__objects_4 = libecore_con_la-ecore_con_info.lo
103am_libecore_con_la_OBJECTS = libecore_con_la-ecore_con.lo \ 104am_libecore_con_la_OBJECTS = libecore_con_la-ecore_con.lo \
105 libecore_con_la-ecore_con_socks.lo \
104 libecore_con_la-ecore_con_ssl.lo \ 106 libecore_con_la-ecore_con_ssl.lo \
105 libecore_con_la-ecore_con_url.lo \ 107 libecore_con_la-ecore_con_url.lo \
106 libecore_con_la-ecore_con_alloc.lo $(am__objects_1) \ 108 libecore_con_la-ecore_con_alloc.lo $(am__objects_1) \
@@ -263,10 +265,10 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
263PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 265PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
264PIXMAN_LIBS = @PIXMAN_LIBS@ 266PIXMAN_LIBS = @PIXMAN_LIBS@
265PKG_CONFIG = @PKG_CONFIG@ 267PKG_CONFIG = @PKG_CONFIG@
266PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
267PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
268POSUB = @POSUB@ 268POSUB = @POSUB@
269RANLIB = @RANLIB@ 269RANLIB = @RANLIB@
270SCIM_CFLAGS = @SCIM_CFLAGS@
271SCIM_LIBS = @SCIM_LIBS@
270SDL_CFLAGS = @SDL_CFLAGS@ 272SDL_CFLAGS = @SDL_CFLAGS@
271SDL_CONFIG = @SDL_CONFIG@ 273SDL_CONFIG = @SDL_CONFIG@
272SDL_LIBS = @SDL_LIBS@ 274SDL_LIBS = @SDL_LIBS@
@@ -285,6 +287,10 @@ TSLIB_LIBS = @TSLIB_LIBS@
285USE_NLS = @USE_NLS@ 287USE_NLS = @USE_NLS@
286VERSION = @VERSION@ 288VERSION = @VERSION@
287VMAJ = @VMAJ@ 289VMAJ = @VMAJ@
290WAYLAND_CFLAGS = @WAYLAND_CFLAGS@
291WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
292WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
293WAYLAND_LIBS = @WAYLAND_LIBS@
288WIN32_CFLAGS = @WIN32_CFLAGS@ 294WIN32_CFLAGS = @WIN32_CFLAGS@
289WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 295WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
290WIN32_LIBS = @WIN32_LIBS@ 296WIN32_LIBS = @WIN32_LIBS@
@@ -398,6 +404,8 @@ ecore_imf_cflags = @ecore_imf_cflags@
398ecore_imf_evas_cflags = @ecore_imf_evas_cflags@ 404ecore_imf_evas_cflags = @ecore_imf_evas_cflags@
399ecore_imf_evas_libs = @ecore_imf_evas_libs@ 405ecore_imf_evas_libs = @ecore_imf_evas_libs@
400ecore_imf_libs = @ecore_imf_libs@ 406ecore_imf_libs = @ecore_imf_libs@
407ecore_imf_scim_cflags = @ecore_imf_scim_cflags@
408ecore_imf_scim_libs = @ecore_imf_scim_libs@
401ecore_imf_xim_cflags = @ecore_imf_xim_cflags@ 409ecore_imf_xim_cflags = @ecore_imf_xim_cflags@
402ecore_imf_xim_libs = @ecore_imf_xim_libs@ 410ecore_imf_xim_libs = @ecore_imf_xim_libs@
403ecore_input_cflags = @ecore_input_cflags@ 411ecore_input_cflags = @ecore_input_cflags@
@@ -410,6 +418,8 @@ ecore_psl1ght_cflags = @ecore_psl1ght_cflags@
410ecore_psl1ght_libs = @ecore_psl1ght_libs@ 418ecore_psl1ght_libs = @ecore_psl1ght_libs@
411ecore_sdl_cflags = @ecore_sdl_cflags@ 419ecore_sdl_cflags = @ecore_sdl_cflags@
412ecore_sdl_libs = @ecore_sdl_libs@ 420ecore_sdl_libs = @ecore_sdl_libs@
421ecore_wayland_cflags = @ecore_wayland_cflags@
422ecore_wayland_libs = @ecore_wayland_libs@
413ecore_win32_cflags = @ecore_win32_cflags@ 423ecore_win32_cflags = @ecore_win32_cflags@
414ecore_win32_libs = @ecore_win32_libs@ 424ecore_win32_libs = @ecore_win32_libs@
415ecore_wince_cflags = @ecore_wince_cflags@ 425ecore_wince_cflags = @ecore_wince_cflags@
@@ -454,12 +464,14 @@ requirements_ecore_fb = @requirements_ecore_fb@
454requirements_ecore_file = @requirements_ecore_file@ 464requirements_ecore_file = @requirements_ecore_file@
455requirements_ecore_imf = @requirements_ecore_imf@ 465requirements_ecore_imf = @requirements_ecore_imf@
456requirements_ecore_imf_evas = @requirements_ecore_imf_evas@ 466requirements_ecore_imf_evas = @requirements_ecore_imf_evas@
467requirements_ecore_imf_scim = @requirements_ecore_imf_scim@
457requirements_ecore_imf_xim = @requirements_ecore_imf_xim@ 468requirements_ecore_imf_xim = @requirements_ecore_imf_xim@
458requirements_ecore_input = @requirements_ecore_input@ 469requirements_ecore_input = @requirements_ecore_input@
459requirements_ecore_input_evas = @requirements_ecore_input_evas@ 470requirements_ecore_input_evas = @requirements_ecore_input_evas@
460requirements_ecore_ipc = @requirements_ecore_ipc@ 471requirements_ecore_ipc = @requirements_ecore_ipc@
461requirements_ecore_psl1ght = @requirements_ecore_psl1ght@ 472requirements_ecore_psl1ght = @requirements_ecore_psl1ght@
462requirements_ecore_sdl = @requirements_ecore_sdl@ 473requirements_ecore_sdl = @requirements_ecore_sdl@
474requirements_ecore_wayland = @requirements_ecore_wayland@
463requirements_ecore_win32 = @requirements_ecore_win32@ 475requirements_ecore_win32 = @requirements_ecore_win32@
464requirements_ecore_wince = @requirements_ecore_wince@ 476requirements_ecore_wince = @requirements_ecore_wince@
465requirements_ecore_x = @requirements_ecore_x@ 477requirements_ecore_x = @requirements_ecore_x@
@@ -493,9 +505,10 @@ AM_CPPFLAGS = \
493lib_LTLIBRARIES = libecore_con.la 505lib_LTLIBRARIES = libecore_con.la
494includes_HEADERS = Ecore_Con.h 506includes_HEADERS = Ecore_Con.h
495includesdir = $(includedir)/ecore-@VMAJ@ 507includesdir = $(includedir)/ecore-@VMAJ@
496libecore_con_la_SOURCES = ecore_con.c ecore_con_ssl.c ecore_con_url.c \ 508libecore_con_la_SOURCES = ecore_con.c ecore_con_socks.c \
497 ecore_con_alloc.c $(am__append_1) $(am__append_2) \ 509 ecore_con_ssl.c ecore_con_url.c ecore_con_alloc.c \
498 $(am__append_3) $(am__append_4) 510 $(am__append_1) $(am__append_2) $(am__append_3) \
511 $(am__append_4)
499libecore_con_la_CFLAGS = @WIN32_CFLAGS@ 512libecore_con_la_CFLAGS = @WIN32_CFLAGS@
500libecore_con_la_LIBADD = \ 513libecore_con_la_LIBADD = \
501$(top_builddir)/src/lib/ecore/libecore.la \ 514$(top_builddir)/src/lib/ecore/libecore.la \
@@ -583,6 +596,7 @@ distclean-compile:
583@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libecore_con_la-ecore_con_info.Plo@am__quote@ 596@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libecore_con_la-ecore_con_info.Plo@am__quote@
584@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libecore_con_la-ecore_con_local.Plo@am__quote@ 597@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libecore_con_la-ecore_con_local.Plo@am__quote@
585@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libecore_con_la-ecore_con_local_win32.Plo@am__quote@ 598@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libecore_con_la-ecore_con_local_win32.Plo@am__quote@
599@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libecore_con_la-ecore_con_socks.Plo@am__quote@
586@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libecore_con_la-ecore_con_ssl.Plo@am__quote@ 600@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libecore_con_la-ecore_con_ssl.Plo@am__quote@
587@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libecore_con_la-ecore_con_url.Plo@am__quote@ 601@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libecore_con_la-ecore_con_url.Plo@am__quote@
588 602
@@ -618,6 +632,14 @@ libecore_con_la-ecore_con.lo: ecore_con.c
618@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 632@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
619@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libecore_con_la_CFLAGS) $(CFLAGS) -c -o libecore_con_la-ecore_con.lo `test -f 'ecore_con.c' || echo '$(srcdir)/'`ecore_con.c 633@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libecore_con_la_CFLAGS) $(CFLAGS) -c -o libecore_con_la-ecore_con.lo `test -f 'ecore_con.c' || echo '$(srcdir)/'`ecore_con.c
620 634
635libecore_con_la-ecore_con_socks.lo: ecore_con_socks.c
636@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) $(libecore_con_la_CFLAGS) $(CFLAGS) -MT libecore_con_la-ecore_con_socks.lo -MD -MP -MF $(DEPDIR)/libecore_con_la-ecore_con_socks.Tpo -c -o libecore_con_la-ecore_con_socks.lo `test -f 'ecore_con_socks.c' || echo '$(srcdir)/'`ecore_con_socks.c
637@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libecore_con_la-ecore_con_socks.Tpo $(DEPDIR)/libecore_con_la-ecore_con_socks.Plo
638@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
639@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ecore_con_socks.c' object='libecore_con_la-ecore_con_socks.lo' libtool=yes @AMDEPBACKSLASH@
640@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
641@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libecore_con_la_CFLAGS) $(CFLAGS) -c -o libecore_con_la-ecore_con_socks.lo `test -f 'ecore_con_socks.c' || echo '$(srcdir)/'`ecore_con_socks.c
642
621libecore_con_la-ecore_con_ssl.lo: ecore_con_ssl.c 643libecore_con_la-ecore_con_ssl.lo: ecore_con_ssl.c
622@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) $(libecore_con_la_CFLAGS) $(CFLAGS) -MT libecore_con_la-ecore_con_ssl.lo -MD -MP -MF $(DEPDIR)/libecore_con_la-ecore_con_ssl.Tpo -c -o libecore_con_la-ecore_con_ssl.lo `test -f 'ecore_con_ssl.c' || echo '$(srcdir)/'`ecore_con_ssl.c 644@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) $(libecore_con_la_CFLAGS) $(CFLAGS) -MT libecore_con_la-ecore_con_ssl.lo -MD -MP -MF $(DEPDIR)/libecore_con_la-ecore_con_ssl.Tpo -c -o libecore_con_la-ecore_con_ssl.lo `test -f 'ecore_con_ssl.c' || echo '$(srcdir)/'`ecore_con_ssl.c
623@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libecore_con_la-ecore_con_ssl.Tpo $(DEPDIR)/libecore_con_la-ecore_con_ssl.Plo 645@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libecore_con_la-ecore_con_ssl.Tpo $(DEPDIR)/libecore_con_la-ecore_con_ssl.Plo
diff --git a/libraries/ecore/src/lib/ecore_con/ecore_con.c b/libraries/ecore/src/lib/ecore_con/ecore_con.c
index 7bd0358..de291b3 100644
--- a/libraries/ecore/src/lib/ecore_con/ecore_con.c
+++ b/libraries/ecore/src/lib/ecore_con/ecore_con.c
@@ -45,7 +45,6 @@
45 45
46static Eina_Bool _ecore_con_client_timer(Ecore_Con_Client *cl); 46static Eina_Bool _ecore_con_client_timer(Ecore_Con_Client *cl);
47static void _ecore_con_cl_timer_update(Ecore_Con_Client *cl); 47static void _ecore_con_cl_timer_update(Ecore_Con_Client *cl);
48
49static Eina_Bool _ecore_con_server_timer(Ecore_Con_Server *svr); 48static Eina_Bool _ecore_con_server_timer(Ecore_Con_Server *svr);
50static void _ecore_con_server_timer_update(Ecore_Con_Server *svr); 49static void _ecore_con_server_timer_update(Ecore_Con_Server *svr);
51 50
@@ -104,6 +103,45 @@ static void _ecore_con_lookup_done(void *data,
104 103
105static const char * _ecore_con_pretty_ip(struct sockaddr *client_addr); 104static const char * _ecore_con_pretty_ip(struct sockaddr *client_addr);
106 105
106
107void
108_ecore_con_client_kill(Ecore_Con_Client *cl)
109{
110 if (cl->delete_me)
111 DBG("Multi kill request for client %p", cl);
112 else
113 ecore_con_event_client_del(cl);
114 INF("Lost client %s", (cl->ip) ? cl->ip : "");
115 if (cl->fd_handler)
116 ecore_main_fd_handler_del(cl->fd_handler);
117
118 cl->fd_handler = NULL;
119}
120
121void
122_ecore_con_server_kill(Ecore_Con_Server *svr)
123{
124 if (svr->delete_me)
125 DBG("Multi kill request for svr %p", svr);
126 else
127 ecore_con_event_server_del(svr);
128
129 if (svr->fd_handler)
130 ecore_main_fd_handler_del(svr->fd_handler);
131
132 svr->fd_handler = NULL;
133}
134
135#define _ecore_con_server_kill(svr) do { \
136 DBG("KILL %p", (svr)); \
137 _ecore_con_server_kill((svr)); \
138} while (0)
139
140#define _ecore_con_client_kill(cl) do { \
141 DBG("KILL %p", (cl)); \
142 _ecore_con_client_kill((cl)); \
143} while (0)
144
107EAPI int ECORE_CON_EVENT_CLIENT_ADD = 0; 145EAPI int ECORE_CON_EVENT_CLIENT_ADD = 0;
108EAPI int ECORE_CON_EVENT_CLIENT_DEL = 0; 146EAPI int ECORE_CON_EVENT_CLIENT_DEL = 0;
109EAPI int ECORE_CON_EVENT_SERVER_ADD = 0; 147EAPI int ECORE_CON_EVENT_SERVER_ADD = 0;
@@ -114,11 +152,14 @@ EAPI int ECORE_CON_EVENT_CLIENT_WRITE = 0;
114EAPI int ECORE_CON_EVENT_SERVER_WRITE = 0; 152EAPI int ECORE_CON_EVENT_SERVER_WRITE = 0;
115EAPI int ECORE_CON_EVENT_CLIENT_ERROR = 0; 153EAPI int ECORE_CON_EVENT_CLIENT_ERROR = 0;
116EAPI int ECORE_CON_EVENT_SERVER_ERROR = 0; 154EAPI int ECORE_CON_EVENT_SERVER_ERROR = 0;
155EAPI int ECORE_CON_EVENT_PROXY_BIND = 0;
117 156
118static Eina_List *servers = NULL; 157static Eina_List *servers = NULL;
119static int _ecore_con_init_count = 0; 158static int _ecore_con_init_count = 0;
120static int _ecore_con_event_count = 0; 159static int _ecore_con_event_count = 0;
121int _ecore_con_log_dom = -1; 160int _ecore_con_log_dom = -1;
161Ecore_Con_Socks *_ecore_con_proxy_once = NULL;
162Ecore_Con_Socks *_ecore_con_proxy_global = NULL;
122 163
123EAPI int 164EAPI int
124ecore_con_init(void) 165ecore_con_init(void)
@@ -156,6 +197,7 @@ ecore_con_init(void)
156 ECORE_CON_EVENT_SERVER_WRITE = ecore_event_type_new(); 197 ECORE_CON_EVENT_SERVER_WRITE = ecore_event_type_new();
157 ECORE_CON_EVENT_CLIENT_ERROR = ecore_event_type_new(); 198 ECORE_CON_EVENT_CLIENT_ERROR = ecore_event_type_new();
158 ECORE_CON_EVENT_SERVER_ERROR = ecore_event_type_new(); 199 ECORE_CON_EVENT_SERVER_ERROR = ecore_event_type_new();
200 ECORE_CON_EVENT_PROXY_BIND = ecore_event_type_new();
159 201
160 202
161 eina_magic_string_set(ECORE_MAGIC_CON_SERVER, "Ecore_Con_Server"); 203 eina_magic_string_set(ECORE_MAGIC_CON_SERVER, "Ecore_Con_Server");
@@ -163,6 +205,7 @@ ecore_con_init(void)
163 eina_magic_string_set(ECORE_MAGIC_CON_URL, "Ecore_Con_Url"); 205 eina_magic_string_set(ECORE_MAGIC_CON_URL, "Ecore_Con_Url");
164 206
165 /* TODO Remember return value, if it fails, use gethostbyname() */ 207 /* TODO Remember return value, if it fails, use gethostbyname() */
208 ecore_con_socks_init();
166 ecore_con_ssl_init(); 209 ecore_con_ssl_init();
167 ecore_con_info_init(); 210 ecore_con_info_init();
168 211
@@ -182,13 +225,15 @@ ecore_con_shutdown(void)
182 { 225 {
183 Ecore_Con_Event_Server_Add *ev; 226 Ecore_Con_Event_Server_Add *ev;
184 227
185 svr->delete_me = svr->dead = EINA_TRUE; 228 svr->delete_me = EINA_TRUE;
229 INF("svr %p is dead", svr);
186 /* some pointer hacks here to prevent double frees if people are being stupid */ 230 /* some pointer hacks here to prevent double frees if people are being stupid */
187 EINA_LIST_FREE(svr->event_count, ev) 231 EINA_LIST_FREE(svr->event_count, ev)
188 ev->server = NULL; 232 ev->server = NULL;
189 _ecore_con_server_free(svr); 233 _ecore_con_server_free(svr);
190 } 234 }
191 235
236 ecore_con_socks_shutdown();
192 if (!_ecore_con_event_count) ecore_con_mempool_shutdown(); 237 if (!_ecore_con_event_count) ecore_con_mempool_shutdown();
193 238
194 ecore_con_info_shutdown(); 239 ecore_con_info_shutdown();
@@ -301,8 +346,7 @@ ecore_con_server_add(Ecore_Con_Type compl_type,
301 svr->port = port; 346 svr->port = port;
302 svr->data = (void *)data; 347 svr->data = (void *)data;
303 svr->created = EINA_TRUE; 348 svr->created = EINA_TRUE;
304 if (compl_type & ECORE_CON_LOAD_CERT) 349 svr->use_cert = (compl_type & ECORE_CON_SSL & ECORE_CON_LOAD_CERT) == ECORE_CON_LOAD_CERT;
305 svr->use_cert = EINA_TRUE;
306 svr->reject_excess_clients = EINA_FALSE; 350 svr->reject_excess_clients = EINA_FALSE;
307 svr->client_limit = -1; 351 svr->client_limit = -1;
308 svr->clients = NULL; 352 svr->clients = NULL;
@@ -325,7 +369,8 @@ ecore_con_server_add(Ecore_Con_Type compl_type,
325#endif 369#endif
326 370
327 if ((type == ECORE_CON_REMOTE_TCP) || 371 if ((type == ECORE_CON_REMOTE_TCP) ||
328 (type == ECORE_CON_REMOTE_NODELAY)) 372 (type == ECORE_CON_REMOTE_NODELAY) ||
373 (type == ECORE_CON_REMOTE_CORK))
329 { 374 {
330 /* TCP */ 375 /* TCP */
331 if (!ecore_con_info_tcp_listen(svr, _ecore_con_cb_tcp_listen, 376 if (!ecore_con_info_tcp_listen(svr, _ecore_con_cb_tcp_listen,
@@ -395,17 +440,36 @@ ecore_con_server_connect(Ecore_Con_Type compl_type,
395 svr->port = port; 440 svr->port = port;
396 svr->data = (void *)data; 441 svr->data = (void *)data;
397 svr->created = EINA_FALSE; 442 svr->created = EINA_FALSE;
398 svr->use_cert = (compl_type & ECORE_CON_LOAD_CERT); 443 svr->use_cert = (compl_type & ECORE_CON_SSL & ECORE_CON_LOAD_CERT) == ECORE_CON_LOAD_CERT;
399 svr->reject_excess_clients = EINA_FALSE; 444 svr->reject_excess_clients = EINA_FALSE;
400 svr->clients = NULL; 445 svr->clients = NULL;
401 svr->client_limit = -1; 446 svr->client_limit = -1;
402 if (ecore_con_ssl_server_prepare(svr, compl_type & ECORE_CON_SSL))
403 goto error;
404 447
405 type = compl_type & ECORE_CON_TYPE; 448 type = compl_type & ECORE_CON_TYPE;
406 449
450 if (type > ECORE_CON_LOCAL_ABSTRACT)
451 {
452 /* never use proxies on local connections */
453 if (_ecore_con_proxy_once)
454 svr->ecs = _ecore_con_proxy_once;
455 else if (_ecore_con_proxy_global)
456 svr->ecs = _ecore_con_proxy_global;
457 _ecore_con_proxy_once = NULL;
458 if (svr->ecs)
459 {
460 if ((!svr->ecs->lookup) &&
461 (!ecore_con_lookup(svr->name, (Ecore_Con_Dns_Cb)ecore_con_socks_dns_cb, svr)))
462 goto error;
463 if (svr->ecs->lookup)
464 svr->ecs_state = ECORE_CON_SOCKS_STATE_RESOLVED;
465 }
466 }
467 if (ecore_con_ssl_server_prepare(svr, compl_type & ECORE_CON_SSL))
468 goto error;
469
407 if (((type == ECORE_CON_REMOTE_TCP) || 470 if (((type == ECORE_CON_REMOTE_TCP) ||
408 (type == ECORE_CON_REMOTE_NODELAY) || 471 (type == ECORE_CON_REMOTE_NODELAY) ||
472 (type == ECORE_CON_REMOTE_CORK) ||
409 (type == ECORE_CON_REMOTE_UDP) || 473 (type == ECORE_CON_REMOTE_UDP) ||
410 (type == ECORE_CON_REMOTE_BROADCAST)) && 474 (type == ECORE_CON_REMOTE_BROADCAST)) &&
411 (port < 0)) 475 (port < 0))
@@ -424,7 +488,8 @@ ecore_con_server_connect(Ecore_Con_Type compl_type,
424#endif 488#endif
425 489
426 if ((type == ECORE_CON_REMOTE_TCP) || 490 if ((type == ECORE_CON_REMOTE_TCP) ||
427 (type == ECORE_CON_REMOTE_NODELAY)) 491 (type == ECORE_CON_REMOTE_NODELAY) ||
492 (type == ECORE_CON_REMOTE_CORK))
428 { 493 {
429 /* TCP */ 494 /* TCP */
430 if (!ecore_con_info_tcp_connect(svr, _ecore_con_cb_tcp_connect, 495 if (!ecore_con_info_tcp_connect(svr, _ecore_con_cb_tcp_connect,
@@ -492,8 +557,6 @@ ecore_con_server_timeout_get(Ecore_Con_Server *svr)
492EAPI void * 557EAPI void *
493ecore_con_server_del(Ecore_Con_Server *svr) 558ecore_con_server_del(Ecore_Con_Server *svr)
494{ 559{
495 void *data;
496
497 if (!ECORE_MAGIC_CHECK(svr, ECORE_MAGIC_CON_SERVER)) 560 if (!ECORE_MAGIC_CHECK(svr, ECORE_MAGIC_CON_SERVER))
498 { 561 {
499 ECORE_MAGIC_FAIL(svr, ECORE_MAGIC_CON_SERVER, "ecore_con_server_del"); 562 ECORE_MAGIC_FAIL(svr, ECORE_MAGIC_CON_SERVER, "ecore_con_server_del");
@@ -503,20 +566,8 @@ ecore_con_server_del(Ecore_Con_Server *svr)
503 if (svr->delete_me) 566 if (svr->delete_me)
504 return NULL; 567 return NULL;
505 568
506 data = svr->data; 569 _ecore_con_server_kill(svr);
507 svr->delete_me = EINA_TRUE; 570 return svr->data;
508 if (svr->event_count)
509 {
510 if (svr->fd_handler)
511 {
512 ecore_main_fd_handler_del(svr->fd_handler);
513 svr->fd_handler = NULL;
514 }
515 }
516 else
517 _ecore_con_server_free(svr);
518
519 return data;
520} 571}
521 572
522EAPI void * 573EAPI void *
@@ -524,9 +575,7 @@ ecore_con_server_data_get(Ecore_Con_Server *svr)
524{ 575{
525 if (!ECORE_MAGIC_CHECK(svr, ECORE_MAGIC_CON_SERVER)) 576 if (!ECORE_MAGIC_CHECK(svr, ECORE_MAGIC_CON_SERVER))
526 { 577 {
527 ECORE_MAGIC_FAIL(svr, 578 ECORE_MAGIC_FAIL(svr, ECORE_MAGIC_CON_SERVER, "ecore_con_server_data_get");
528 ECORE_MAGIC_CON_SERVER,
529 "ecore_con_server_data_get");
530 return NULL; 579 return NULL;
531 } 580 }
532 581
@@ -541,9 +590,7 @@ ecore_con_server_data_set(Ecore_Con_Server *svr,
541 590
542 if (!ECORE_MAGIC_CHECK(svr, ECORE_MAGIC_CON_SERVER)) 591 if (!ECORE_MAGIC_CHECK(svr, ECORE_MAGIC_CON_SERVER))
543 { 592 {
544 ECORE_MAGIC_FAIL(svr, 593 ECORE_MAGIC_FAIL(svr, ECORE_MAGIC_CON_SERVER, "ecore_con_server_data_get");
545 ECORE_MAGIC_CON_SERVER,
546 "ecore_con_server_data_get");
547 return NULL; 594 return NULL;
548 } 595 }
549 596
@@ -557,8 +604,7 @@ ecore_con_server_connected_get(Ecore_Con_Server *svr)
557{ 604{
558 if (!ECORE_MAGIC_CHECK(svr, ECORE_MAGIC_CON_SERVER)) 605 if (!ECORE_MAGIC_CHECK(svr, ECORE_MAGIC_CON_SERVER))
559 { 606 {
560 ECORE_MAGIC_FAIL(svr, ECORE_MAGIC_CON_SERVER, 607 ECORE_MAGIC_FAIL(svr, ECORE_MAGIC_CON_SERVER, "ecore_con_server_connected_get");
561 "ecore_con_server_connected_get");
562 return EINA_FALSE; 608 return EINA_FALSE;
563 } 609 }
564 610
@@ -617,7 +663,7 @@ ecore_con_server_send(Ecore_Con_Server *svr,
617 return 0; 663 return 0;
618 } 664 }
619 665
620 EINA_SAFETY_ON_TRUE_RETURN_VAL(svr->dead, 0); 666 EINA_SAFETY_ON_TRUE_RETURN_VAL(svr->delete_me, 0);
621 667
622 EINA_SAFETY_ON_NULL_RETURN_VAL(data, 0); 668 EINA_SAFETY_ON_NULL_RETURN_VAL(data, 0);
623 669
@@ -630,6 +676,15 @@ ecore_con_server_send(Ecore_Con_Server *svr,
630 { 676 {
631 svr->buf = eina_binbuf_new(); 677 svr->buf = eina_binbuf_new();
632 EINA_SAFETY_ON_NULL_RETURN_VAL(svr->buf, 0); 678 EINA_SAFETY_ON_NULL_RETURN_VAL(svr->buf, 0);
679#ifdef TCP_CORK
680 if ((svr->fd >= 0) && ((svr->type & ECORE_CON_TYPE) == ECORE_CON_REMOTE_CORK))
681 {
682 int state = 1;
683 if (setsockopt(svr->fd, IPPROTO_TCP, TCP_CORK, (char *)&state, sizeof(int)) < 0)
684 /* realistically this isn't anything serious so we can just log and continue */
685 ERR("corking failed! %s", strerror(errno));
686 }
687#endif
633 } 688 }
634 eina_binbuf_append_length(svr->buf, data, size); 689 eina_binbuf_append_length(svr->buf, data, size);
635 690
@@ -716,7 +771,7 @@ ecore_con_client_send(Ecore_Con_Client *cl,
716 return 0; 771 return 0;
717 } 772 }
718 773
719 EINA_SAFETY_ON_TRUE_RETURN_VAL(cl->dead, 0); 774 EINA_SAFETY_ON_TRUE_RETURN_VAL(cl->delete_me, 0);
720 775
721 EINA_SAFETY_ON_NULL_RETURN_VAL(data, 0); 776 EINA_SAFETY_ON_NULL_RETURN_VAL(data, 0);
722 777
@@ -732,6 +787,15 @@ ecore_con_client_send(Ecore_Con_Client *cl,
732 { 787 {
733 cl->buf = eina_binbuf_new(); 788 cl->buf = eina_binbuf_new();
734 EINA_SAFETY_ON_NULL_RETURN_VAL(cl->buf, 0); 789 EINA_SAFETY_ON_NULL_RETURN_VAL(cl->buf, 0);
790#ifdef TCP_CORK
791 if ((cl->fd >= 0) && ((cl->host_server->type & ECORE_CON_TYPE) == ECORE_CON_REMOTE_CORK))
792 {
793 int state = 1;
794 if (setsockopt(cl->fd, IPPROTO_TCP, TCP_CORK, (char *)&state, sizeof(int)) < 0)
795 /* realistically this isn't anything serious so we can just log and continue */
796 ERR("corking failed! %s", strerror(errno));
797 }
798#endif
735 } 799 }
736 eina_binbuf_append_length(cl->buf, data, size); 800 eina_binbuf_append_length(cl->buf, data, size);
737 801
@@ -761,7 +825,7 @@ ecore_con_client_connected_get(Ecore_Con_Client *cl)
761 return EINA_FALSE; 825 return EINA_FALSE;
762 } 826 }
763 827
764 return !cl->dead; 828 return !cl->delete_me;
765} 829}
766 830
767EAPI void 831EAPI void
@@ -795,36 +859,14 @@ ecore_con_client_timeout_get(Ecore_Con_Client *cl)
795EAPI void * 859EAPI void *
796ecore_con_client_del(Ecore_Con_Client *cl) 860ecore_con_client_del(Ecore_Con_Client *cl)
797{ 861{
798 void *data = NULL;
799
800 if (!ECORE_MAGIC_CHECK(cl, ECORE_MAGIC_CON_CLIENT)) 862 if (!ECORE_MAGIC_CHECK(cl, ECORE_MAGIC_CON_CLIENT))
801 { 863 {
802 ECORE_MAGIC_FAIL(cl, ECORE_MAGIC_CON_CLIENT, "ecore_con_client_del"); 864 ECORE_MAGIC_FAIL(cl, ECORE_MAGIC_CON_CLIENT, "ecore_con_client_del");
803 return NULL; 865 return NULL;
804 } 866 }
805 867
806 data = cl->data; 868 _ecore_con_client_kill(cl);
807 cl->delete_me = EINA_TRUE; 869 return cl->data;
808 if (cl->event_count)
809 {
810 if (cl->fd_handler)
811 {
812 ecore_main_fd_handler_del(cl->fd_handler);
813 cl->fd_handler = NULL;
814 }
815 }
816 else
817 {
818 if (cl->host_server)
819 {
820 cl->host_server->clients = eina_list_remove(cl->host_server->clients, cl);
821 --cl->host_server->client_count;
822 }
823
824 _ecore_con_client_free(cl);
825 }
826
827 return data;
828} 870}
829 871
830EAPI void 872EAPI void
@@ -833,9 +875,7 @@ ecore_con_client_data_set(Ecore_Con_Client *cl,
833{ 875{
834 if (!ECORE_MAGIC_CHECK(cl, ECORE_MAGIC_CON_CLIENT)) 876 if (!ECORE_MAGIC_CHECK(cl, ECORE_MAGIC_CON_CLIENT))
835 { 877 {
836 ECORE_MAGIC_FAIL(cl, 878 ECORE_MAGIC_FAIL(cl, ECORE_MAGIC_CON_CLIENT, "ecore_con_client_data_set");
837 ECORE_MAGIC_CON_CLIENT,
838 "ecore_con_client_data_set");
839 return; 879 return;
840 } 880 }
841 881
@@ -847,9 +887,7 @@ ecore_con_client_data_get(Ecore_Con_Client *cl)
847{ 887{
848 if (!ECORE_MAGIC_CHECK(cl, ECORE_MAGIC_CON_CLIENT)) 888 if (!ECORE_MAGIC_CHECK(cl, ECORE_MAGIC_CON_CLIENT))
849 { 889 {
850 ECORE_MAGIC_FAIL(cl, 890 ECORE_MAGIC_FAIL(cl, ECORE_MAGIC_CON_CLIENT, "ecore_con_client_data_get");
851 ECORE_MAGIC_CON_CLIENT,
852 "ecore_con_client_data_get");
853 return NULL; 891 return NULL;
854 } 892 }
855 893
@@ -939,6 +977,25 @@ ecore_con_client_fd_get(Ecore_Con_Client *cl)
939 */ 977 */
940 978
941void 979void
980ecore_con_event_proxy_bind(Ecore_Con_Server *svr)
981{
982 Ecore_Con_Event_Proxy_Bind *e;
983 int ev = ECORE_CON_EVENT_PROXY_BIND;
984
985 e = ecore_con_event_proxy_bind_alloc();
986 EINA_SAFETY_ON_NULL_RETURN(e);
987
988 svr->event_count = eina_list_append(svr->event_count, e);
989 _ecore_con_server_timer_update(svr);
990 e->server = svr;
991 e->ip = svr->proxyip;
992 e->port = svr->proxyport;
993 ecore_event_add(ev, e,
994 _ecore_con_event_server_add_free, NULL);
995 _ecore_con_event_count++;
996}
997
998void
942ecore_con_event_server_add(Ecore_Con_Server *svr) 999ecore_con_event_server_add(Ecore_Con_Server *svr)
943{ 1000{
944 /* we got our server! */ 1001 /* we got our server! */
@@ -948,6 +1005,8 @@ ecore_con_event_server_add(Ecore_Con_Server *svr)
948 e = ecore_con_event_server_add_alloc(); 1005 e = ecore_con_event_server_add_alloc();
949 EINA_SAFETY_ON_NULL_RETURN(e); 1006 EINA_SAFETY_ON_NULL_RETURN(e);
950 1007
1008 svr->connecting = EINA_FALSE;
1009 svr->start_time = ecore_time_get();
951 svr->event_count = eina_list_append(svr->event_count, e); 1010 svr->event_count = eina_list_append(svr->event_count, e);
952 _ecore_con_server_timer_update(svr); 1011 _ecore_con_server_timer_update(svr);
953 e->server = svr; 1012 e->server = svr;
@@ -962,12 +1021,20 @@ ecore_con_event_server_del(Ecore_Con_Server *svr)
962{ 1021{
963 Ecore_Con_Event_Server_Del *e; 1022 Ecore_Con_Event_Server_Del *e;
964 1023
1024 svr->delete_me = EINA_TRUE;
1025 INF("svr %p is dead", svr);
965 e = ecore_con_event_server_del_alloc(); 1026 e = ecore_con_event_server_del_alloc();
966 EINA_SAFETY_ON_NULL_RETURN(e); 1027 EINA_SAFETY_ON_NULL_RETURN(e);
967 1028
968 svr->event_count = eina_list_append(svr->event_count, e); 1029 svr->event_count = eina_list_append(svr->event_count, e);
969 _ecore_con_server_timer_update(svr); 1030 _ecore_con_server_timer_update(svr);
970 e->server = svr; 1031 e->server = svr;
1032 if (svr->ecs)
1033 {
1034 svr->ecs_state = svr->ecs->lookup ? ECORE_CON_SOCKS_STATE_RESOLVED : ECORE_CON_SOCKS_STATE_DONE;
1035 eina_stringshare_replace(&svr->proxyip, NULL);
1036 svr->proxyport = 0;
1037 }
971 ecore_event_add(ECORE_CON_EVENT_SERVER_DEL, e, 1038 ecore_event_add(ECORE_CON_EVENT_SERVER_DEL, e,
972 _ecore_con_event_server_del_free, NULL); 1039 _ecore_con_event_server_del_free, NULL);
973 _ecore_con_event_count++; 1040 _ecore_con_event_count++;
@@ -981,6 +1048,7 @@ ecore_con_event_server_write(Ecore_Con_Server *svr, int num)
981 e = ecore_con_event_server_write_alloc(); 1048 e = ecore_con_event_server_write_alloc();
982 EINA_SAFETY_ON_NULL_RETURN(e); 1049 EINA_SAFETY_ON_NULL_RETURN(e);
983 1050
1051 INF("Wrote %d bytes", num);
984 svr->event_count = eina_list_append(svr->event_count, e); 1052 svr->event_count = eina_list_append(svr->event_count, e);
985 e->server = svr; 1053 e->server = svr;
986 e->size = num; 1054 e->size = num;
@@ -1044,6 +1112,8 @@ ecore_con_event_client_del(Ecore_Con_Client *cl)
1044 Ecore_Con_Event_Client_Del *e; 1112 Ecore_Con_Event_Client_Del *e;
1045 1113
1046 if (!cl) return; 1114 if (!cl) return;
1115 cl->delete_me = EINA_TRUE;
1116 INF("cl %p is dead", cl);
1047 e = ecore_con_event_client_del_alloc(); 1117 e = ecore_con_event_client_del_alloc();
1048 EINA_SAFETY_ON_NULL_RETURN(e); 1118 EINA_SAFETY_ON_NULL_RETURN(e);
1049 cl->event_count = eina_list_append(cl->event_count, e); 1119 cl->event_count = eina_list_append(cl->event_count, e);
@@ -1112,7 +1182,7 @@ ecore_con_server_infos_del(Ecore_Con_Server *svr, void *info)
1112} 1182}
1113 1183
1114void 1184void
1115ecore_con_event_server_error(Ecore_Con_Server *svr, const char *error) 1185_ecore_con_event_server_error(Ecore_Con_Server *svr, char *error, Eina_Bool duplicate)
1116{ 1186{
1117 Ecore_Con_Event_Server_Error *e; 1187 Ecore_Con_Event_Server_Error *e;
1118 1188
@@ -1120,7 +1190,7 @@ ecore_con_event_server_error(Ecore_Con_Server *svr, const char *error)
1120 EINA_SAFETY_ON_NULL_RETURN(e); 1190 EINA_SAFETY_ON_NULL_RETURN(e);
1121 1191
1122 e->server = svr; 1192 e->server = svr;
1123 e->error = strdup(error); 1193 e->error = duplicate ? strdup(error) : error;
1124 ERR("%s", error); 1194 ERR("%s", error);
1125 svr->event_count = eina_list_append(svr->event_count, e); 1195 svr->event_count = eina_list_append(svr->event_count, e);
1126 ecore_event_add(ECORE_CON_EVENT_SERVER_ERROR, e, (Ecore_End_Cb)_ecore_con_event_server_error_free, NULL); 1196 ecore_event_add(ECORE_CON_EVENT_SERVER_ERROR, e, (Ecore_End_Cb)_ecore_con_event_server_error_free, NULL);
@@ -1157,16 +1227,9 @@ _ecore_con_server_free(Ecore_Con_Server *svr)
1157 ecore_con_info_data_clear(svr->infos->data); 1227 ecore_con_info_data_clear(svr->infos->data);
1158 svr->infos = eina_list_remove_list(svr->infos, svr->infos); 1228 svr->infos = eina_list_remove_list(svr->infos, svr->infos);
1159 } 1229 }
1160 if ((!svr->buf) && svr->delete_me && (!svr->dead) && (!svr->event_count))
1161 {
1162 /* this is a catch-all for cases when a server is not properly killed. */
1163 svr->dead = EINA_TRUE;
1164 ecore_con_event_server_del(svr);
1165 return;
1166 }
1167 1230
1168 t_start = ecore_time_get(); 1231 t_start = ecore_time_get();
1169 while (svr->buf && (!svr->dead)) 1232 while (svr->buf && (!svr->delete_me))
1170 { 1233 {
1171 _ecore_con_server_flush(svr); 1234 _ecore_con_server_flush(svr);
1172 t = ecore_time_get(); 1235 t = ecore_time_get();
@@ -1196,7 +1259,8 @@ _ecore_con_server_free(Ecore_Con_Server *svr)
1196 /* some pointer hacks here to prevent double frees if people are being stupid */ 1259 /* some pointer hacks here to prevent double frees if people are being stupid */
1197 EINA_LIST_FREE(cl->event_count, ev) 1260 EINA_LIST_FREE(cl->event_count, ev)
1198 ev->server = NULL; 1261 ev->server = NULL;
1199 cl->delete_me = cl->dead = EINA_TRUE; 1262 cl->delete_me = EINA_TRUE;
1263 INF("cl %p is dead", cl);
1200 _ecore_con_client_free(cl); 1264 _ecore_con_client_free(cl);
1201 } 1265 }
1202 if ((svr->created) && (svr->path) && (svr->ppid == getpid())) 1266 if ((svr->created) && (svr->path) && (svr->ppid == getpid()))
@@ -1208,6 +1272,10 @@ _ecore_con_server_free(Ecore_Con_Server *svr)
1208 free(svr->path); 1272 free(svr->path);
1209 1273
1210 eina_stringshare_del(svr->ip); 1274 eina_stringshare_del(svr->ip);
1275 eina_stringshare_del(svr->verify_name);
1276
1277 if (svr->ecs_buf) eina_binbuf_free(svr->ecs_buf);
1278 if (svr->ecs_recvbuf) eina_binbuf_free(svr->ecs_recvbuf);
1211 1279
1212 if (svr->fd_handler) 1280 if (svr->fd_handler)
1213 ecore_main_fd_handler_del(svr->fd_handler); 1281 ecore_main_fd_handler_del(svr->fd_handler);
@@ -1230,17 +1298,8 @@ _ecore_con_client_free(Ecore_Con_Client *cl)
1230 1298
1231 if (cl->event_count) return; 1299 if (cl->event_count) return;
1232 1300
1233 if (cl->delete_me && (!cl->dead) && (!cl->event_count))
1234 {
1235 /* this is a catch-all for cases when a client is not properly killed. */
1236 cl->dead = EINA_TRUE;
1237 ecore_con_event_client_del(cl);
1238 return;
1239 }
1240
1241
1242 t_start = ecore_time_get(); 1301 t_start = ecore_time_get();
1243 while ((cl->buf) && (!cl->dead)) 1302 while ((cl->buf) && (!cl->delete_me))
1244 { 1303 {
1245 _ecore_con_client_flush(cl); 1304 _ecore_con_client_flush(cl);
1246 t = ecore_time_get(); 1305 t = ecore_time_get();
@@ -1284,19 +1343,6 @@ _ecore_con_client_free(Ecore_Con_Client *cl)
1284 return; 1343 return;
1285} 1344}
1286 1345
1287static void
1288_ecore_con_server_kill(Ecore_Con_Server *svr)
1289{
1290 if (!svr->delete_me)
1291 ecore_con_event_server_del(svr);
1292
1293 svr->dead = EINA_TRUE;
1294 if (svr->fd_handler)
1295 ecore_main_fd_handler_del(svr->fd_handler);
1296
1297 svr->fd_handler = NULL;
1298}
1299
1300static Eina_Bool 1346static Eina_Bool
1301_ecore_con_server_timer(Ecore_Con_Server *svr) 1347_ecore_con_server_timer(Ecore_Con_Server *svr)
1302{ 1348{
@@ -1384,40 +1430,25 @@ _ecore_con_cb_tcp_listen(void *data,
1384{ 1430{
1385 Ecore_Con_Server *svr; 1431 Ecore_Con_Server *svr;
1386 struct linger lin; 1432 struct linger lin;
1433 const char *memerr = NULL;
1387 1434
1388 svr = data; 1435 svr = data;
1389 1436
1437 errno = 0;
1390 if (!net_info) /* error message has already been handled */ 1438 if (!net_info) /* error message has already been handled */
1391 goto error; 1439 goto error;
1392 1440
1393 svr->fd = socket(net_info->info.ai_family, net_info->info.ai_socktype, 1441 svr->fd = socket(net_info->info.ai_family, net_info->info.ai_socktype,
1394 net_info->info.ai_protocol); 1442 net_info->info.ai_protocol);
1395 if (svr->fd < 0) 1443 if (svr->fd < 0) goto error;
1396 { 1444 if (fcntl(svr->fd, F_SETFL, O_NONBLOCK) < 0) goto error;
1397 ecore_con_event_server_error(svr, strerror(errno)); 1445 if (fcntl(svr->fd, F_SETFD, FD_CLOEXEC) < 0) goto error;
1398 goto error;
1399 }
1400
1401 if (fcntl(svr->fd, F_SETFL, O_NONBLOCK) < 0)
1402 {
1403 ecore_con_event_server_error(svr, strerror(errno));
1404 goto error;
1405 }
1406
1407 if (fcntl(svr->fd, F_SETFD, FD_CLOEXEC) < 0)
1408 {
1409 ecore_con_event_server_error(svr, strerror(errno));
1410 goto error;
1411 }
1412 1446
1413 lin.l_onoff = 1; 1447 lin.l_onoff = 1;
1414 lin.l_linger = 0; 1448 lin.l_linger = 0;
1415 if (setsockopt(svr->fd, SOL_SOCKET, SO_LINGER, (const void *)&lin, 1449 if (setsockopt(svr->fd, SOL_SOCKET, SO_LINGER, (const void *)&lin,
1416 sizeof(struct linger)) < 0) 1450 sizeof(struct linger)) < 0)
1417 { 1451 goto error;
1418 ecore_con_event_server_error(svr, strerror(errno));
1419 goto error;
1420 }
1421 1452
1422 if ((svr->type & ECORE_CON_TYPE) == ECORE_CON_REMOTE_NODELAY) 1453 if ((svr->type & ECORE_CON_TYPE) == ECORE_CON_REMOTE_NODELAY)
1423 { 1454 {
@@ -1428,34 +1459,27 @@ _ecore_con_cb_tcp_listen(void *data,
1428 sizeof(int)) < 0) 1459 sizeof(int)) < 0)
1429#endif 1460#endif
1430 { 1461 {
1431 ecore_con_event_server_error(svr, strerror(errno));
1432 goto error; 1462 goto error;
1433 } 1463 }
1434 } 1464 }
1435 1465
1436 if (bind(svr->fd, net_info->info.ai_addr, 1466 if (bind(svr->fd, net_info->info.ai_addr, net_info->info.ai_addrlen) < 0)
1437 net_info->info.ai_addrlen) < 0) 1467 goto error;
1438 { 1468
1439 ecore_con_event_server_error(svr, strerror(errno)); 1469 if (listen(svr->fd, 4096) < 0) goto error;
1440 goto error;
1441 }
1442 if (listen(svr->fd, 4096) < 0)
1443 {
1444 ecore_con_event_server_error(svr, strerror(errno));
1445 goto error;
1446 }
1447 1470
1448 svr->fd_handler = ecore_main_fd_handler_add(svr->fd, ECORE_FD_READ, 1471 svr->fd_handler = ecore_main_fd_handler_add(svr->fd, ECORE_FD_READ,
1449 _ecore_con_svr_tcp_handler, svr, NULL, NULL); 1472 _ecore_con_svr_tcp_handler, svr, NULL, NULL);
1450 if (!svr->fd_handler) 1473 if (!svr->fd_handler)
1451 { 1474 {
1452 ecore_con_event_server_error(svr, "Memory allocation failure"); 1475 memerr = "Memory allocation failure";
1453 goto error; 1476 goto error;
1454 } 1477 }
1455 1478
1456 return; 1479 return;
1457 1480
1458error: 1481error:
1482 if (errno || memerr) ecore_con_event_server_error(svr, memerr ?: strerror(errno));
1459 ecore_con_ssl_server_shutdown(svr); 1483 ecore_con_ssl_server_shutdown(svr);
1460 _ecore_con_server_kill(svr); 1484 _ecore_con_server_kill(svr);
1461} 1485}
@@ -1471,21 +1495,19 @@ _ecore_con_cb_udp_listen(void *data,
1471 struct ipv6_mreq mreq6; 1495 struct ipv6_mreq mreq6;
1472#endif 1496#endif
1473 const int on = 1; 1497 const int on = 1;
1498 const char *memerr = NULL;
1474 1499
1475 svr = data; 1500 svr = data;
1476 type = svr->type; 1501 type = svr->type;
1477 type &= ECORE_CON_TYPE; 1502 type &= ECORE_CON_TYPE;
1478 1503
1504 errno = 0;
1479 if (!net_info) /* error message has already been handled */ 1505 if (!net_info) /* error message has already been handled */
1480 goto error; 1506 goto error;
1481 1507
1482 svr->fd = socket(net_info->info.ai_family, net_info->info.ai_socktype, 1508 svr->fd = socket(net_info->info.ai_family, net_info->info.ai_socktype,
1483 net_info->info.ai_protocol); 1509 net_info->info.ai_protocol);
1484 if (svr->fd < 0) 1510 if (svr->fd < 0) goto error;
1485 {
1486 ecore_con_event_server_error(svr, strerror(errno));
1487 goto error;
1488 }
1489 1511
1490 if (type == ECORE_CON_REMOTE_MCAST) 1512 if (type == ECORE_CON_REMOTE_MCAST)
1491 { 1513 {
@@ -1493,69 +1515,41 @@ _ecore_con_cb_udp_listen(void *data,
1493 { 1515 {
1494 if (!inet_pton(net_info->info.ai_family, net_info->ip, 1516 if (!inet_pton(net_info->info.ai_family, net_info->ip,
1495 &mreq.imr_multiaddr)) 1517 &mreq.imr_multiaddr))
1496 { 1518 goto error;
1497 ecore_con_event_server_error(svr, strerror(errno));
1498 goto error;
1499 }
1500 1519
1501 mreq.imr_interface.s_addr = htonl(INADDR_ANY); 1520 mreq.imr_interface.s_addr = htonl(INADDR_ANY);
1502 if (setsockopt(svr->fd, IPPROTO_IP, IP_ADD_MEMBERSHIP, 1521 if (setsockopt(svr->fd, IPPROTO_IP, IP_ADD_MEMBERSHIP,
1503 (const void *)&mreq, sizeof(mreq)) != 0) 1522 (const void *)&mreq, sizeof(mreq)) != 0)
1504 { 1523 goto error;
1505 ecore_con_event_server_error(svr, strerror(errno));
1506 goto error;
1507 }
1508 } 1524 }
1509#ifdef HAVE_IPV6 1525#ifdef HAVE_IPV6
1510 else if (net_info->info.ai_family == AF_INET6) 1526 else if (net_info->info.ai_family == AF_INET6)
1511 { 1527 {
1512 if (!inet_pton(net_info->info.ai_family, net_info->ip, 1528 if (!inet_pton(net_info->info.ai_family, net_info->ip,
1513 &mreq6.ipv6mr_multiaddr)) 1529 &mreq6.ipv6mr_multiaddr))
1514 { 1530 goto error;
1515 ecore_con_event_server_error(svr, strerror(errno));
1516 goto error;
1517 }
1518 mreq6.ipv6mr_interface = htonl(INADDR_ANY); 1531 mreq6.ipv6mr_interface = htonl(INADDR_ANY);
1519 if (setsockopt(svr->fd, IPPROTO_IP, IP_ADD_MEMBERSHIP, 1532 if (setsockopt(svr->fd, IPPROTO_IP, IP_ADD_MEMBERSHIP,
1520 (const void *)&mreq6, sizeof(mreq6)) != 0) 1533 (const void *)&mreq6, sizeof(mreq6)) != 0)
1521 { 1534 goto error;
1522 ecore_con_event_server_error(svr, strerror(errno));
1523 goto error;
1524 }
1525 } 1535 }
1526#endif 1536#endif
1527 } 1537 }
1528 1538
1529 if (setsockopt(svr->fd, SOL_SOCKET, SO_REUSEADDR, (const void *)&on, sizeof(on)) != 0) 1539 if (setsockopt(svr->fd, SOL_SOCKET, SO_REUSEADDR, (const void *)&on, sizeof(on)) != 0)
1530 { 1540 goto error;
1531 ecore_con_event_server_error(svr, strerror(errno)); 1541 if (fcntl(svr->fd, F_SETFL, O_NONBLOCK) < 0) goto error;
1532 goto error; 1542 if (fcntl(svr->fd, F_SETFD, FD_CLOEXEC) < 0) goto error;
1533 }
1534
1535 if (fcntl(svr->fd, F_SETFL, O_NONBLOCK) < 0)
1536 {
1537 ecore_con_event_server_error(svr, strerror(errno));
1538 goto error;
1539 }
1540
1541 if (fcntl(svr->fd, F_SETFD, FD_CLOEXEC) < 0)
1542 {
1543 ecore_con_event_server_error(svr, strerror(errno));
1544 goto error;
1545 }
1546 1543
1547 if (bind(svr->fd, net_info->info.ai_addr, net_info->info.ai_addrlen) < 0) 1544 if (bind(svr->fd, net_info->info.ai_addr, net_info->info.ai_addrlen) < 0)
1548 { 1545 goto error;
1549 ecore_con_event_server_error(svr, strerror(errno));
1550 goto error;
1551 }
1552 1546
1553 svr->fd_handler = 1547 svr->fd_handler =
1554 ecore_main_fd_handler_add(svr->fd, ECORE_FD_READ, 1548 ecore_main_fd_handler_add(svr->fd, ECORE_FD_READ,
1555 _ecore_con_svr_udp_handler, svr, NULL, NULL); 1549 _ecore_con_svr_udp_handler, svr, NULL, NULL);
1556 if (!svr->fd_handler) 1550 if (!svr->fd_handler)
1557 { 1551 {
1558 ecore_con_event_server_error(svr, "Memory allocation failure"); 1552 memerr = "Memory allocation failure";
1559 goto error; 1553 goto error;
1560 } 1554 }
1561 1555
@@ -1564,6 +1558,7 @@ _ecore_con_cb_udp_listen(void *data,
1564 return; 1558 return;
1565 1559
1566error: 1560error:
1561 if (errno || memerr) ecore_con_event_server_error(svr, memerr ?: strerror(errno));
1567 ecore_con_ssl_server_shutdown(svr); 1562 ecore_con_ssl_server_shutdown(svr);
1568 _ecore_con_server_kill(svr); 1563 _ecore_con_server_kill(svr);
1569} 1564}
@@ -1575,37 +1570,23 @@ _ecore_con_cb_tcp_connect(void *data,
1575 Ecore_Con_Server *svr; 1570 Ecore_Con_Server *svr;
1576 int res; 1571 int res;
1577 int curstate = 0; 1572 int curstate = 0;
1573 const char *memerr = NULL;
1578 1574
1579 svr = data; 1575 svr = data;
1580 1576
1577 errno = 0;
1581 if (!net_info) /* error message has already been handled */ 1578 if (!net_info) /* error message has already been handled */
1582 goto error; 1579 goto error;
1583 1580
1584 svr->fd = socket(net_info->info.ai_family, net_info->info.ai_socktype, 1581 svr->fd = socket(net_info->info.ai_family, net_info->info.ai_socktype,
1585 net_info->info.ai_protocol); 1582 net_info->info.ai_protocol);
1586 if (svr->fd < 0) 1583 if (svr->fd < 0) goto error;
1587 {
1588 ecore_con_event_server_error(svr, strerror(errno));
1589 goto error;
1590 }
1591 1584
1592 if (fcntl(svr->fd, F_SETFL, O_NONBLOCK) < 0) 1585 if (fcntl(svr->fd, F_SETFL, O_NONBLOCK) < 0) goto error;
1593 { 1586 if (fcntl(svr->fd, F_SETFD, FD_CLOEXEC) < 0) goto error;
1594 ecore_con_event_server_error(svr, strerror(errno));
1595 goto error;
1596 }
1597
1598 if (fcntl(svr->fd, F_SETFD, FD_CLOEXEC) < 0)
1599 {
1600 ecore_con_event_server_error(svr, strerror(errno));
1601 goto error;
1602 }
1603 1587
1604 if (setsockopt(svr->fd, SOL_SOCKET, SO_REUSEADDR, (const void *)&curstate, sizeof(curstate)) < 0) 1588 if (setsockopt(svr->fd, SOL_SOCKET, SO_REUSEADDR, (const void *)&curstate, sizeof(curstate)) < 0)
1605 { 1589 goto error;
1606 ecore_con_event_server_error(svr, strerror(errno));
1607 goto error;
1608 }
1609 1590
1610 if ((svr->type & ECORE_CON_TYPE) == ECORE_CON_REMOTE_NODELAY) 1591 if ((svr->type & ECORE_CON_TYPE) == ECORE_CON_REMOTE_NODELAY)
1611 { 1592 {
@@ -1615,7 +1596,6 @@ _ecore_con_cb_tcp_connect(void *data,
1615 if (setsockopt(svr->fd, IPPROTO_TCP, TCP_NODELAY, (char *)&flag, sizeof(int)) < 0) 1596 if (setsockopt(svr->fd, IPPROTO_TCP, TCP_NODELAY, (char *)&flag, sizeof(int)) < 0)
1616#endif 1597#endif
1617 { 1598 {
1618 ecore_con_event_server_error(svr, strerror(errno));
1619 goto error; 1599 goto error;
1620 } 1600 }
1621 } 1601 }
@@ -1625,17 +1605,19 @@ _ecore_con_cb_tcp_connect(void *data,
1625 if (res == SOCKET_ERROR) 1605 if (res == SOCKET_ERROR)
1626 { 1606 {
1627 if (WSAGetLastError() != WSAEINPROGRESS) 1607 if (WSAGetLastError() != WSAEINPROGRESS)
1628 goto error; /* FIXME: strerror on windows? */ 1608 {
1609 char *err;
1610 err = evil_format_message(WSAGetLastError());
1611 _ecore_con_event_server_error(svr, err, EINA_FALSE);
1612 ecore_con_ssl_server_shutdown(svr);
1613 _ecore_con_server_kill(svr);
1614 return;
1615 }
1629 1616
1630#else 1617#else
1631 if (res < 0) 1618 if (res < 0)
1632 { 1619 {
1633 if (errno != EINPROGRESS) 1620 if (errno != EINPROGRESS) goto error;
1634 {
1635 ecore_con_event_server_error(svr, strerror(errno));
1636 goto error;
1637 }
1638
1639#endif 1621#endif
1640 svr->connecting = EINA_TRUE; 1622 svr->connecting = EINA_TRUE;
1641 svr->fd_handler = 1623 svr->fd_handler =
@@ -1650,22 +1632,24 @@ _ecore_con_cb_tcp_connect(void *data,
1650 { 1632 {
1651 svr->handshaking = EINA_TRUE; 1633 svr->handshaking = EINA_TRUE;
1652 svr->ssl_state = ECORE_CON_SSL_STATE_INIT; 1634 svr->ssl_state = ECORE_CON_SSL_STATE_INIT;
1653 DBG("beginning ssl handshake"); 1635 DBG("%s ssl handshake", svr->ecs_state ? "Queuing" : "Beginning");
1654 if (ecore_con_ssl_server_init(svr)) 1636 if ((!svr->ecs_state) && ecore_con_ssl_server_init(svr))
1655 goto error; 1637 goto error;
1656 } 1638 }
1657 1639
1658 if (!svr->fd_handler) 1640 if (!svr->fd_handler)
1659 { 1641 {
1660 ecore_con_event_server_error(svr, "Memory allocation failure"); 1642 memerr = "Memory allocation failure";
1661 goto error; 1643 goto error;
1662 } 1644 }
1663 1645
1664 svr->ip = eina_stringshare_add(net_info->ip); 1646 if ((!svr->ecs) || (svr->ecs->lookup))
1647 svr->ip = eina_stringshare_add(net_info->ip);
1665 1648
1666 return; 1649 return;
1667 1650
1668error: 1651error:
1652 if (errno || memerr) ecore_con_event_server_error(svr, memerr ?: strerror(errno));
1669 ecore_con_ssl_server_shutdown(svr); 1653 ecore_con_ssl_server_shutdown(svr);
1670 _ecore_con_server_kill(svr); 1654 _ecore_con_server_kill(svr);
1671} 1655}
@@ -1677,68 +1661,50 @@ _ecore_con_cb_udp_connect(void *data,
1677 Ecore_Con_Server *svr; 1661 Ecore_Con_Server *svr;
1678 int curstate = 0; 1662 int curstate = 0;
1679 int broadcast = 1; 1663 int broadcast = 1;
1664 const char *memerr = NULL;
1680 svr = data; 1665 svr = data;
1681 1666
1667 errno = 0;
1682 if (!net_info) /* error message has already been handled */ 1668 if (!net_info) /* error message has already been handled */
1683 goto error; 1669 goto error;
1684 1670
1685 svr->fd = socket(net_info->info.ai_family, net_info->info.ai_socktype, 1671 svr->fd = socket(net_info->info.ai_family, net_info->info.ai_socktype,
1686 net_info->info.ai_protocol); 1672 net_info->info.ai_protocol);
1687 if (svr->fd < 0) 1673 if (svr->fd < 0) goto error;
1688 { 1674 if (fcntl(svr->fd, F_SETFL, O_NONBLOCK) < 0) goto error;
1689 ecore_con_event_server_error(svr, strerror(errno)); 1675 if (fcntl(svr->fd, F_SETFD, FD_CLOEXEC) < 0) goto error;
1690 goto error;
1691 }
1692
1693 if (fcntl(svr->fd, F_SETFL, O_NONBLOCK) < 0)
1694 {
1695 ecore_con_event_server_error(svr, strerror(errno));
1696 goto error;
1697 }
1698
1699 if (fcntl(svr->fd, F_SETFD, FD_CLOEXEC) < 0)
1700 {
1701 ecore_con_event_server_error(svr, strerror(errno));
1702 goto error;
1703 }
1704
1705 if ((svr->type & ECORE_CON_TYPE) == ECORE_CON_REMOTE_BROADCAST) 1676 if ((svr->type & ECORE_CON_TYPE) == ECORE_CON_REMOTE_BROADCAST)
1706 { 1677 {
1707 if (setsockopt(svr->fd, SOL_SOCKET, SO_BROADCAST, 1678 if (setsockopt(svr->fd, SOL_SOCKET, SO_BROADCAST,
1708 (const void *)&broadcast, 1679 (const void *)&broadcast,
1709 sizeof(broadcast)) < 0) 1680 sizeof(broadcast)) < 0)
1710 { 1681 {
1711 ecore_con_event_server_error(svr, strerror(errno));
1712 goto error; 1682 goto error;
1713 } 1683 }
1714 } 1684 }
1715 else if (setsockopt(svr->fd, SOL_SOCKET, SO_REUSEADDR, 1685 if (setsockopt(svr->fd, SOL_SOCKET, SO_REUSEADDR,
1716 (const void *)&curstate, sizeof(curstate)) < 0) 1686 (const void *)&curstate, sizeof(curstate)) < 0)
1717 { 1687 goto error;
1718 ecore_con_event_server_error(svr, strerror(errno));
1719 goto error;
1720 }
1721 1688
1722 if (connect(svr->fd, net_info->info.ai_addr, net_info->info.ai_addrlen) < 0) 1689 if (connect(svr->fd, net_info->info.ai_addr, net_info->info.ai_addrlen) < 0)
1723 { 1690 goto error;
1724 ecore_con_event_server_error(svr, strerror(errno));
1725 goto error;
1726 }
1727 1691
1728 svr->fd_handler = ecore_main_fd_handler_add(svr->fd, ECORE_FD_READ | ECORE_FD_WRITE, 1692 svr->fd_handler = ecore_main_fd_handler_add(svr->fd, ECORE_FD_READ | ECORE_FD_WRITE,
1729 _ecore_con_cl_udp_handler, svr, NULL, NULL); 1693 _ecore_con_cl_udp_handler, svr, NULL, NULL);
1730 1694
1731 if (!svr->fd_handler) 1695 if (!svr->fd_handler)
1732 { 1696 {
1733 ecore_con_event_server_error(svr, "Memory allocation failure"); 1697 memerr = "Memory allocation failure";
1734 goto error; 1698 goto error;
1735 } 1699 }
1736 1700
1737 svr->ip = eina_stringshare_add(net_info->ip); 1701 if ((!svr->ecs) || (svr->ecs->lookup))
1702 svr->ip = eina_stringshare_add(net_info->ip);
1738 1703
1739 return; 1704 return;
1740 1705
1741error: 1706error:
1707 if (errno || memerr) ecore_con_event_server_error(svr, memerr ?: strerror(errno));
1742 ecore_con_ssl_server_shutdown(svr); 1708 ecore_con_ssl_server_shutdown(svr);
1743 _ecore_con_server_kill(svr); 1709 _ecore_con_server_kill(svr);
1744} 1710}
@@ -1755,14 +1721,14 @@ svr_try_connect_plain(Ecore_Con_Server *svr)
1755 if (res == SOCKET_ERROR) 1721 if (res == SOCKET_ERROR)
1756 so_err = WSAGetLastError(); 1722 so_err = WSAGetLastError();
1757 1723
1758 if ((so_err == WSAEINPROGRESS) && !svr->dead) 1724 if ((so_err == WSAEINPROGRESS) && !svr->delete_me)
1759 return ECORE_CON_INPROGRESS; 1725 return ECORE_CON_INPROGRESS;
1760 1726
1761#else 1727#else
1762 if (res < 0) 1728 if (res < 0)
1763 so_err = errno; 1729 so_err = errno;
1764 1730
1765 if ((so_err == EINPROGRESS) && !svr->dead) 1731 if ((so_err == EINPROGRESS) && !svr->delete_me)
1766 return ECORE_CON_INPROGRESS; 1732 return ECORE_CON_INPROGRESS;
1767 1733
1768#endif 1734#endif
@@ -1778,15 +1744,19 @@ svr_try_connect_plain(Ecore_Con_Server *svr)
1778 1744
1779 if ((!svr->delete_me) && (!svr->handshaking) && svr->connecting) 1745 if ((!svr->delete_me) && (!svr->handshaking) && svr->connecting)
1780 { 1746 {
1781 svr->connecting = EINA_FALSE; 1747 if (svr->ecs)
1782 svr->start_time = ecore_time_get(); 1748 {
1783 ecore_con_event_server_add(svr); 1749 if (ecore_con_socks_svr_init(svr))
1750 return ECORE_CON_INPROGRESS;
1751 }
1752 else
1753 ecore_con_event_server_add(svr);
1784 } 1754 }
1785 1755
1786 if (svr->fd_handler && (!svr->buf)) 1756 if (svr->fd_handler && (!svr->buf))
1787 ecore_main_fd_handler_active_set(svr->fd_handler, ECORE_FD_READ); 1757 ecore_main_fd_handler_active_set(svr->fd_handler, ECORE_FD_READ);
1788 1758
1789 if (!svr->dead) 1759 if (!svr->delete_me)
1790 return ECORE_CON_CONNECTED; 1760 return ECORE_CON_CONNECTED;
1791 else 1761 else
1792 return ECORE_CON_DISCONNECTED; 1762 return ECORE_CON_DISCONNECTED;
@@ -1838,9 +1808,10 @@ _ecore_con_svr_tcp_handler(void *data,
1838 Ecore_Con_Client *cl = NULL; 1808 Ecore_Con_Client *cl = NULL;
1839 unsigned char client_addr[256]; 1809 unsigned char client_addr[256];
1840 unsigned int client_addr_len; 1810 unsigned int client_addr_len;
1811 const char *clerr = NULL;
1841 1812
1842 svr = data; 1813 svr = data;
1843 if (svr->dead) 1814 if (svr->delete_me)
1844 return ECORE_CALLBACK_RENEW; 1815 return ECORE_CALLBACK_RENEW;
1845 1816
1846 if (svr->delete_me) 1817 if (svr->delete_me)
@@ -1863,34 +1834,19 @@ _ecore_con_svr_tcp_handler(void *data,
1863 client_addr_len = sizeof(client_addr); 1834 client_addr_len = sizeof(client_addr);
1864 memset(&client_addr, 0, client_addr_len); 1835 memset(&client_addr, 0, client_addr_len);
1865 cl->fd = accept(svr->fd, (struct sockaddr *)&client_addr, (socklen_t *)&client_addr_len); 1836 cl->fd = accept(svr->fd, (struct sockaddr *)&client_addr, (socklen_t *)&client_addr_len);
1866 if (cl->fd < 0) 1837 if (cl->fd < 0) goto error;
1867 {
1868 ecore_con_event_server_error(svr, strerror(errno));
1869 goto free_cl;
1870 }
1871
1872 if ((svr->client_limit >= 0) && (svr->reject_excess_clients) && 1838 if ((svr->client_limit >= 0) && (svr->reject_excess_clients) &&
1873 (svr->client_count >= (unsigned int)svr->client_limit)) 1839 (svr->client_count >= (unsigned int)svr->client_limit))
1874 { 1840 {
1875 ecore_con_event_server_error(svr, "Maximum client limit reached"); 1841 clerr = "Maximum client limit reached";
1876 goto close_fd; 1842 goto error;
1877 } 1843 }
1878 1844
1879 if (fcntl(cl->fd, F_SETFL, O_NONBLOCK) < 0) 1845 if (fcntl(cl->fd, F_SETFL, O_NONBLOCK) < 0) goto error;
1880 { 1846 if (fcntl(cl->fd, F_SETFD, FD_CLOEXEC) < 0) goto error;
1881 ecore_con_event_server_error(svr, strerror(errno));
1882 goto close_fd;
1883 }
1884 if (fcntl(cl->fd, F_SETFD, FD_CLOEXEC) < 0)
1885 {
1886 ecore_con_event_server_error(svr, strerror(errno));
1887 goto close_fd;
1888 }
1889 cl->fd_handler = ecore_main_fd_handler_add(cl->fd, ECORE_FD_READ, 1847 cl->fd_handler = ecore_main_fd_handler_add(cl->fd, ECORE_FD_READ,
1890 _ecore_con_svr_cl_handler, cl, NULL, NULL); 1848 _ecore_con_svr_cl_handler, cl, NULL, NULL);
1891 if (!cl->fd_handler) 1849 if (!cl->fd_handler) goto error;
1892 goto close_fd;
1893
1894 ECORE_MAGIC_SET(cl, ECORE_MAGIC_CON_CLIENT); 1850 ECORE_MAGIC_SET(cl, ECORE_MAGIC_CON_CLIENT);
1895 1851
1896 if ((!svr->upgrade) && (svr->type & ECORE_CON_SSL)) 1852 if ((!svr->upgrade) && (svr->type & ECORE_CON_SSL))
@@ -1898,14 +1854,14 @@ _ecore_con_svr_tcp_handler(void *data,
1898 cl->handshaking = EINA_TRUE; 1854 cl->handshaking = EINA_TRUE;
1899 cl->ssl_state = ECORE_CON_SSL_STATE_INIT; 1855 cl->ssl_state = ECORE_CON_SSL_STATE_INIT;
1900 if (ecore_con_ssl_client_init(cl)) 1856 if (ecore_con_ssl_client_init(cl))
1901 goto del_handler; 1857 goto error;
1902 } 1858 }
1903 1859
1904 cl->client_addr = malloc(client_addr_len); 1860 cl->client_addr = malloc(client_addr_len);
1905 if (!cl->client_addr) 1861 if (!cl->client_addr)
1906 { 1862 {
1907 ecore_con_event_server_error(svr, "Memory allocation failure when attempting to add a new client"); 1863 clerr = "Memory allocation failure when attempting to add a new client";
1908 goto del_handler; 1864 goto error;
1909 } 1865 }
1910 cl->client_addr_len = client_addr_len; 1866 cl->client_addr_len = client_addr_len;
1911 memcpy(cl->client_addr, &client_addr, client_addr_len); 1867 memcpy(cl->client_addr, &client_addr, client_addr_len);
@@ -1918,29 +1874,28 @@ _ecore_con_svr_tcp_handler(void *data,
1918 1874
1919 return ECORE_CALLBACK_RENEW; 1875 return ECORE_CALLBACK_RENEW;
1920 1876
1921 del_handler: 1877error:
1922 ecore_main_fd_handler_del(cl->fd_handler); 1878 if (cl->fd_handler) ecore_main_fd_handler_del(cl->fd_handler);
1923 close_fd: 1879 if (cl->fd >= 0) close(cl->fd);
1924 close(cl->fd);
1925 free_cl:
1926 free(cl); 1880 free(cl);
1927 1881 if (clerr || errno) ecore_con_event_server_error(svr, clerr ?: strerror(errno));
1928 return ECORE_CALLBACK_RENEW; 1882 return ECORE_CALLBACK_RENEW;
1929} 1883}
1930 1884
1931static void 1885static void
1932_ecore_con_cl_read(Ecore_Con_Server *svr) 1886_ecore_con_cl_read(Ecore_Con_Server *svr)
1933{ 1887{
1934 DBG("svr=%p", svr);
1935 int num = 0; 1888 int num = 0;
1936 Eina_Bool lost_server = EINA_TRUE; 1889 Eina_Bool lost_server = EINA_TRUE;
1937 unsigned char buf[READBUFSIZ]; 1890 unsigned char buf[READBUFSIZ];
1938 1891
1892 DBG("svr=%p", svr);
1893
1939 /* only possible with non-ssl connections */ 1894 /* only possible with non-ssl connections */
1940 if (svr->connecting && (svr_try_connect_plain(svr) != ECORE_CON_CONNECTED)) 1895 if (svr->connecting && (svr_try_connect_plain(svr) != ECORE_CON_CONNECTED))
1941 return; 1896 return;
1942 1897
1943 if (svr->handshaking) 1898 if (svr->handshaking && (!svr->ecs_state))
1944 { 1899 {
1945 DBG("Continuing ssl handshake"); 1900 DBG("Continuing ssl handshake");
1946 if (!ecore_con_ssl_server_init(svr)) 1901 if (!ecore_con_ssl_server_init(svr))
@@ -1948,8 +1903,9 @@ _ecore_con_cl_read(Ecore_Con_Server *svr)
1948 _ecore_con_server_timer_update(svr); 1903 _ecore_con_server_timer_update(svr);
1949 } 1904 }
1950 1905
1951 if (!(svr->type & ECORE_CON_SSL)) 1906 if (svr->ecs_state || !(svr->type & ECORE_CON_SSL))
1952 { 1907 {
1908 errno = 0;
1953 num = read(svr->fd, buf, sizeof(buf)); 1909 num = read(svr->fd, buf, sizeof(buf));
1954 /* 0 is not a valid return value for a tcp socket */ 1910 /* 0 is not a valid return value for a tcp socket */
1955 if ((num > 0) || ((num < 0) && (errno == EAGAIN))) 1911 if ((num > 0) || ((num < 0) && (errno == EAGAIN)))
@@ -1966,7 +1922,12 @@ _ecore_con_cl_read(Ecore_Con_Server *svr)
1966 } 1922 }
1967 1923
1968 if ((!svr->delete_me) && (num > 0)) 1924 if ((!svr->delete_me) && (num > 0))
1969 ecore_con_event_server_data(svr, buf, num, EINA_TRUE); 1925 {
1926 if (svr->ecs_state)
1927 ecore_con_socks_read(svr, buf, num);
1928 else
1929 ecore_con_event_server_data(svr, buf, num, EINA_TRUE);
1930 }
1970 1931
1971 if (lost_server) 1932 if (lost_server)
1972 _ecore_con_server_kill(svr); 1933 _ecore_con_server_kill(svr);
@@ -1980,7 +1941,7 @@ _ecore_con_cl_handler(void *data,
1980 Eina_Bool want_read, want_write; 1941 Eina_Bool want_read, want_write;
1981 1942
1982 svr = data; 1943 svr = data;
1983 if (svr->dead) 1944 if (svr->delete_me)
1984 return ECORE_CALLBACK_RENEW; 1945 return ECORE_CALLBACK_RENEW;
1985 1946
1986 if (svr->delete_me) 1947 if (svr->delete_me)
@@ -1989,7 +1950,7 @@ _ecore_con_cl_handler(void *data,
1989 want_read = ecore_main_fd_handler_active_get(fd_handler, ECORE_FD_READ); 1950 want_read = ecore_main_fd_handler_active_get(fd_handler, ECORE_FD_READ);
1990 want_write = ecore_main_fd_handler_active_get(fd_handler, ECORE_FD_WRITE); 1951 want_write = ecore_main_fd_handler_active_get(fd_handler, ECORE_FD_WRITE);
1991 1952
1992 if (svr->handshaking && (want_read || want_write)) 1953 if ((!svr->ecs_state) && svr->handshaking && (want_read || want_write))
1993 { 1954 {
1994 DBG("Continuing ssl handshake: preparing to %s...", want_read ? "read" : "write"); 1955 DBG("Continuing ssl handshake: preparing to %s...", want_read ? "read" : "write");
1995#ifdef ISCOMFITOR 1956#ifdef ISCOMFITOR
@@ -2005,20 +1966,25 @@ _ecore_con_cl_handler(void *data,
2005 { 1966 {
2006 ERR("ssl handshaking failed!"); 1967 ERR("ssl handshaking failed!");
2007 svr->handshaking = EINA_FALSE; 1968 svr->handshaking = EINA_FALSE;
2008
2009 } 1969 }
2010 else if (!svr->ssl_state) 1970 else if (!svr->ssl_state)
1971 ecore_con_event_server_add(svr);
1972 return ECORE_CALLBACK_RENEW;
1973 }
1974 if (svr->ecs && svr->ecs_state && (svr->ecs_state < ECORE_CON_SOCKS_STATE_READ) && (!svr->ecs_buf))
1975 {
1976 if (svr->ecs_state < ECORE_CON_SOCKS_STATE_INIT)
2011 { 1977 {
2012 svr->connecting = EINA_FALSE; 1978 INF("PROXY STATE++");
2013 svr->start_time = ecore_time_get(); 1979 svr->ecs_state++;
2014 ecore_con_event_server_add(svr);
2015 } 1980 }
1981 if (ecore_con_socks_svr_init(svr)) return ECORE_CALLBACK_RENEW;
2016 } 1982 }
2017 else if (want_read) 1983 if (want_read)
2018 _ecore_con_cl_read(svr); 1984 _ecore_con_cl_read(svr);
2019 else if (want_write) /* only possible with non-ssl connections */ 1985 else if (want_write) /* only possible with non-ssl connections */
2020 { 1986 {
2021 if (svr->connecting && (!svr_try_connect_plain(svr))) 1987 if (svr->connecting && (!svr_try_connect_plain(svr)) && (!svr->ecs_state))
2022 return ECORE_CALLBACK_RENEW; 1988 return ECORE_CALLBACK_RENEW;
2023 1989
2024 _ecore_con_server_flush(svr); 1990 _ecore_con_server_flush(svr);
@@ -2040,7 +2006,7 @@ _ecore_con_cl_udp_handler(void *data,
2040 want_write = ecore_main_fd_handler_active_get(fd_handler, ECORE_FD_WRITE); 2006 want_write = ecore_main_fd_handler_active_get(fd_handler, ECORE_FD_WRITE);
2041 2007
2042 svr = data; 2008 svr = data;
2043 if (svr->dead || svr->delete_me || ((!want_read) && (!want_write))) 2009 if (svr->delete_me || svr->delete_me || ((!want_read) && (!want_write)))
2044 return ECORE_CALLBACK_RENEW; 2010 return ECORE_CALLBACK_RENEW;
2045 2011
2046 if (want_write) 2012 if (want_write)
@@ -2076,7 +2042,7 @@ _ecore_con_svr_udp_handler(void *data,
2076 2042
2077 svr = data; 2043 svr = data;
2078 2044
2079 if (svr->delete_me || svr->dead) 2045 if (svr->delete_me)
2080 return ECORE_CALLBACK_RENEW; 2046 return ECORE_CALLBACK_RENEW;
2081 2047
2082 if (ecore_main_fd_handler_active_get(fd_handler, ECORE_FD_WRITE)) 2048 if (ecore_main_fd_handler_active_get(fd_handler, ECORE_FD_WRITE))
@@ -2106,9 +2072,7 @@ _ecore_con_svr_udp_handler(void *data,
2106 ecore_con_event_server_error(svr, strerror(errno)); 2072 ecore_con_event_server_error(svr, strerror(errno));
2107 if (!svr->delete_me) 2073 if (!svr->delete_me)
2108 ecore_con_event_client_del(NULL); 2074 ecore_con_event_client_del(NULL);
2109 2075 _ecore_con_server_kill(svr);
2110 svr->dead = EINA_TRUE;
2111 svr->fd_handler = NULL;
2112 return ECORE_CALLBACK_CANCEL; 2076 return ECORE_CALLBACK_CANCEL;
2113 } 2077 }
2114 2078
@@ -2177,18 +2141,7 @@ _ecore_con_svr_cl_read(Ecore_Con_Client *cl)
2177 if ((!cl->delete_me) && (num > 0)) 2141 if ((!cl->delete_me) && (num > 0))
2178 ecore_con_event_client_data(cl, buf, num, EINA_TRUE); 2142 ecore_con_event_client_data(cl, buf, num, EINA_TRUE);
2179 2143
2180 if (lost_client) 2144 if (lost_client) _ecore_con_client_kill(cl);
2181 {
2182 if (!cl->delete_me)
2183 ecore_con_event_client_del(cl);
2184 INF("Lost client %s", (cl->ip) ? cl->ip : "");
2185 cl->dead = EINA_TRUE;
2186 if (cl->fd_handler)
2187 ecore_main_fd_handler_del(cl->fd_handler);
2188
2189 cl->fd_handler = NULL;
2190 return;
2191 }
2192} 2145}
2193 2146
2194static Eina_Bool 2147static Eina_Bool
@@ -2198,9 +2151,6 @@ _ecore_con_svr_cl_handler(void *data,
2198 Ecore_Con_Client *cl; 2151 Ecore_Con_Client *cl;
2199 2152
2200 cl = data; 2153 cl = data;
2201 if (cl->dead)
2202 return ECORE_CALLBACK_RENEW;
2203
2204 if (cl->delete_me) 2154 if (cl->delete_me)
2205 return ECORE_CALLBACK_RENEW; 2155 return ECORE_CALLBACK_RENEW;
2206 2156
@@ -2209,10 +2159,8 @@ _ecore_con_svr_cl_handler(void *data,
2209 if (ecore_con_ssl_client_init(cl)) 2159 if (ecore_con_ssl_client_init(cl))
2210 { 2160 {
2211 ERR("ssl handshaking failed!"); 2161 ERR("ssl handshaking failed!");
2212 cl->handshaking = EINA_FALSE; 2162 _ecore_con_client_kill(cl);
2213 cl->dead = EINA_TRUE; 2163 return ECORE_CALLBACK_RENEW;
2214 INF("Lost client %s", (cl->ip) ? cl->ip : "");
2215 ecore_con_event_client_del(cl);
2216 } 2164 }
2217 else if (!cl->ssl_state) 2165 else if (!cl->ssl_state)
2218 ecore_con_event_client_add(cl); 2166 ecore_con_event_client_add(cl);
@@ -2230,19 +2178,25 @@ static void
2230_ecore_con_server_flush(Ecore_Con_Server *svr) 2178_ecore_con_server_flush(Ecore_Con_Server *svr)
2231{ 2179{
2232 int count, num; 2180 int count, num;
2181 size_t buf_len, buf_offset;
2182 const void *buf;
2233 2183
2184 DBG("(svr=%p,buf=%p)", svr, svr->buf);
2234#ifdef _WIN32 2185#ifdef _WIN32
2235 if (ecore_con_local_win32_server_flush(svr)) 2186 if (ecore_con_local_win32_server_flush(svr))
2236 return; 2187 return;
2237#endif 2188#endif
2238 2189
2239 if ((!svr->buf) && svr->fd_handler) 2190 if ((!svr->buf) && (!svr->ecs_buf) && svr->fd_handler)
2240 { 2191 {
2241 ecore_main_fd_handler_active_set(svr->fd_handler, ECORE_FD_READ); 2192 ecore_main_fd_handler_active_set(svr->fd_handler, ECORE_FD_READ);
2242 return; 2193 return;
2243 } 2194 }
2244 2195
2245 num = eina_binbuf_length_get(svr->buf) - svr->write_buf_offset; 2196 buf = svr->buf ? eina_binbuf_string_get(svr->buf) : eina_binbuf_string_get(svr->ecs_buf);
2197 buf_len = svr->buf ? eina_binbuf_length_get(svr->buf) : eina_binbuf_length_get(svr->ecs_buf);
2198 buf_offset = svr->buf ? svr->write_buf_offset : svr->ecs_buf_offset;
2199 num = buf_len - buf_offset;
2246 2200
2247 /* check whether we need to write anything at all. 2201 /* check whether we need to write anything at all.
2248 * we must not write zero bytes with SSL_write() since it 2202 * we must not write zero bytes with SSL_write() since it
@@ -2253,7 +2207,7 @@ _ecore_con_server_flush(Ecore_Con_Server *svr)
2253 */ 2207 */
2254 if (num <= 0) return; 2208 if (num <= 0) return;
2255 2209
2256 if (svr->handshaking) 2210 if ((!svr->ecs_state) && svr->handshaking)
2257 { 2211 {
2258 DBG("Continuing ssl handshake"); 2212 DBG("Continuing ssl handshake");
2259 if (ecore_con_ssl_server_init(svr)) 2213 if (ecore_con_ssl_server_init(svr))
@@ -2262,10 +2216,10 @@ _ecore_con_server_flush(Ecore_Con_Server *svr)
2262 return; 2216 return;
2263 } 2217 }
2264 2218
2265 if (!(svr->type & ECORE_CON_SSL)) 2219 if (svr->ecs_state || (!(svr->type & ECORE_CON_SSL)))
2266 count = write(svr->fd, eina_binbuf_string_get(svr->buf) + svr->write_buf_offset, num); 2220 count = write(svr->fd, buf + buf_offset, num);
2267 else 2221 else
2268 count = ecore_con_ssl_server_write(svr, eina_binbuf_string_get(svr->buf) + svr->write_buf_offset, num); 2222 count = ecore_con_ssl_server_write(svr, buf + buf_offset, num);
2269 2223
2270 if (count < 0) 2224 if (count < 0)
2271 { 2225 {
@@ -2277,13 +2231,36 @@ _ecore_con_server_flush(Ecore_Con_Server *svr)
2277 return; 2231 return;
2278 } 2232 }
2279 2233
2280 if (count) ecore_con_event_server_write(svr, count); 2234 if (count && (!svr->ecs_state)) ecore_con_event_server_write(svr, count);
2281 svr->write_buf_offset += count; 2235 if (svr->ecs_buf)
2282 if (svr->write_buf_offset >= eina_binbuf_length_get(svr->buf)) 2236 buf_offset = svr->ecs_buf_offset += count;
2237 else
2238 buf_offset = svr->write_buf_offset += count;
2239 if (buf_offset >= buf_len)
2283 { 2240 {
2284 svr->write_buf_offset = 0; 2241 if (svr->ecs_buf)
2285 eina_binbuf_free(svr->buf); 2242 {
2286 svr->buf = NULL; 2243 svr->ecs_buf_offset = 0;
2244 eina_binbuf_free(svr->ecs_buf);
2245 svr->ecs_buf = NULL;
2246 INF("PROXY STATE++");
2247 svr->ecs_state++;
2248 }
2249 else
2250 {
2251 svr->write_buf_offset = 0;
2252 eina_binbuf_free(svr->buf);
2253 svr->buf = NULL;
2254#ifdef TCP_CORK
2255 if ((svr->type & ECORE_CON_TYPE) == ECORE_CON_REMOTE_CORK)
2256 {
2257 int state = 0;
2258 if (setsockopt(svr->fd, IPPROTO_TCP, TCP_CORK, (char *)&state, sizeof(int)) < 0)
2259 /* realistically this isn't anything serious so we can just log and continue */
2260 ERR("uncorking failed! %s", strerror(errno));
2261 }
2262#endif
2263 }
2287 if (svr->fd_handler) 2264 if (svr->fd_handler)
2288 ecore_main_fd_handler_active_set(svr->fd_handler, ECORE_FD_READ); 2265 ecore_main_fd_handler_active_set(svr->fd_handler, ECORE_FD_READ);
2289 } 2266 }
@@ -2330,13 +2307,7 @@ _ecore_con_client_flush(Ecore_Con_Client *cl)
2330 if ((errno != EAGAIN) && (errno != EINTR) && (!cl->delete_me)) 2307 if ((errno != EAGAIN) && (errno != EINTR) && (!cl->delete_me))
2331 { 2308 {
2332 ecore_con_event_client_error(cl, strerror(errno)); 2309 ecore_con_event_client_error(cl, strerror(errno));
2333 ecore_con_event_client_del(cl); 2310 _ecore_con_client_kill(cl);
2334 cl->dead = EINA_TRUE;
2335 INF("Lost client %s", (cl->ip) ? cl->ip : "");
2336 if (cl->fd_handler)
2337 ecore_main_fd_handler_del(cl->fd_handler);
2338
2339 cl->fd_handler = NULL;
2340 } 2311 }
2341 2312
2342 return; 2313 return;
@@ -2349,6 +2320,15 @@ _ecore_con_client_flush(Ecore_Con_Client *cl)
2349 cl->buf_offset = 0; 2320 cl->buf_offset = 0;
2350 eina_binbuf_free(cl->buf); 2321 eina_binbuf_free(cl->buf);
2351 cl->buf = NULL; 2322 cl->buf = NULL;
2323#ifdef TCP_CORK
2324 if ((cl->host_server->type & ECORE_CON_TYPE) == ECORE_CON_REMOTE_CORK)
2325 {
2326 int state = 0;
2327 if (setsockopt(cl->fd, IPPROTO_TCP, TCP_CORK, (char *)&state, sizeof(int)) < 0)
2328 /* realistically this isn't anything serious so we can just log and continue */
2329 ERR("uncorking failed! %s", strerror(errno));
2330 }
2331#endif
2352 if (cl->fd_handler) 2332 if (cl->fd_handler)
2353 ecore_main_fd_handler_active_set(cl->fd_handler, ECORE_FD_READ); 2333 ecore_main_fd_handler_active_set(cl->fd_handler, ECORE_FD_READ);
2354 } 2334 }
@@ -2398,7 +2378,7 @@ _ecore_con_event_client_del_free(Ecore_Con_Server *svr,
2398 if ((!svr->event_count) && (svr->delete_me)) 2378 if ((!svr->event_count) && (svr->delete_me))
2399 _ecore_con_server_free(svr); 2379 _ecore_con_server_free(svr);
2400 } 2380 }
2401 if ((!e->client->event_count) && (e->client->delete_me)) 2381 if (!e->client->event_count)
2402 ecore_con_client_del(e->client); 2382 ecore_con_client_del(e->client);
2403 } 2383 }
2404 ecore_con_event_client_del_free(e); 2384 ecore_con_event_client_del_free(e);
@@ -2490,7 +2470,7 @@ _ecore_con_event_server_del_free(void *data __UNUSED__,
2490 if (e->server) 2470 if (e->server)
2491 { 2471 {
2492 e->server->event_count = eina_list_remove(e->server->event_count, ev); 2472 e->server->event_count = eina_list_remove(e->server->event_count, ev);
2493 if ((!e->server->event_count) && (e->server->delete_me)) 2473 if (!e->server->event_count)
2494 _ecore_con_server_free(e->server); 2474 _ecore_con_server_free(e->server);
2495 } 2475 }
2496 ecore_con_event_server_del_free(e); 2476 ecore_con_event_server_del_free(e);
diff --git a/libraries/ecore/src/lib/ecore_con/ecore_con_alloc.c b/libraries/ecore/src/lib/ecore_con/ecore_con_alloc.c
index 206948b..d922f20 100644
--- a/libraries/ecore/src/lib/ecore_con/ecore_con_alloc.c
+++ b/libraries/ecore/src/lib/ecore_con/ecore_con_alloc.c
@@ -40,6 +40,7 @@ GENERIC_ALLOC_FREE(Ecore_Con_Event_Server_Add, ecore_con_event_server_add);
40GENERIC_ALLOC_FREE(Ecore_Con_Event_Server_Del, ecore_con_event_server_del); 40GENERIC_ALLOC_FREE(Ecore_Con_Event_Server_Del, ecore_con_event_server_del);
41GENERIC_ALLOC_FREE(Ecore_Con_Event_Server_Write, ecore_con_event_server_write); 41GENERIC_ALLOC_FREE(Ecore_Con_Event_Server_Write, ecore_con_event_server_write);
42GENERIC_ALLOC_FREE(Ecore_Con_Event_Server_Data, ecore_con_event_server_data); 42GENERIC_ALLOC_FREE(Ecore_Con_Event_Server_Data, ecore_con_event_server_data);
43GENERIC_ALLOC_FREE(Ecore_Con_Event_Proxy_Bind, ecore_con_event_proxy_bind);
43 44
44static Ecore_Con_Mempool *mempool_array[] = { 45static Ecore_Con_Mempool *mempool_array[] = {
45 &ecore_con_event_client_add_mp, 46 &ecore_con_event_client_add_mp,
@@ -51,7 +52,8 @@ static Ecore_Con_Mempool *mempool_array[] = {
51 &ecore_con_event_server_add_mp, 52 &ecore_con_event_server_add_mp,
52 &ecore_con_event_server_del_mp, 53 &ecore_con_event_server_del_mp,
53 &ecore_con_event_server_write_mp, 54 &ecore_con_event_server_write_mp,
54 &ecore_con_event_server_data_mp 55 &ecore_con_event_server_data_mp,
56 &ecore_con_event_proxy_bind_mp
55}; 57};
56 58
57void 59void
diff --git a/libraries/ecore/src/lib/ecore_con/ecore_con_ares.c b/libraries/ecore/src/lib/ecore_con/ecore_con_ares.c
index dd5a212..5dfe70b 100644
--- a/libraries/ecore/src/lib/ecore_con/ecore_con_ares.c
+++ b/libraries/ecore/src/lib/ecore_con/ecore_con_ares.c
@@ -309,7 +309,7 @@ ecore_con_info_get(Ecore_Con_Server *svr,
309 memcpy(&cares->hints, hints, sizeof(struct addrinfo)); 309 memcpy(&cares->hints, hints, sizeof(struct addrinfo));
310 } 310 }
311 311
312 if (inet_pton(AF_INET, svr->name, &cares->addr.v4) == 1) 312 if (inet_pton(AF_INET, svr->ecs ? svr->ecs->ip : svr->name, &cares->addr.v4) == 1)
313 { 313 {
314 cares->byaddr = EINA_TRUE; 314 cares->byaddr = EINA_TRUE;
315 cares->isv6 = EINA_FALSE; 315 cares->isv6 = EINA_FALSE;
@@ -320,7 +320,7 @@ ecore_con_info_get(Ecore_Con_Server *svr,
320 cares); 320 cares);
321 } 321 }
322#ifdef HAVE_IPV6 322#ifdef HAVE_IPV6
323 else if (inet_pton(AF_INET6, svr->name, &cares->addr.v6) == 1) 323 else if (inet_pton(AF_INET6, svr->ecs ? svr->ecs->ip : svr->name, &cares->addr.v6) == 1)
324 { 324 {
325 cares->byaddr = EINA_TRUE; 325 cares->byaddr = EINA_TRUE;
326 cares->isv6 = EINA_TRUE; 326 cares->isv6 = EINA_TRUE;
@@ -334,7 +334,7 @@ ecore_con_info_get(Ecore_Con_Server *svr,
334 else 334 else
335 { 335 {
336 cares->byaddr = EINA_FALSE; 336 cares->byaddr = EINA_FALSE;
337 ares_gethostbyname(info_channel, svr->name, ai_family, 337 ares_gethostbyname(info_channel, svr->ecs ? svr->ecs->ip : svr->name, ai_family,
338 (ares_host_callback)_ecore_con_info_ares_host_cb, 338 (ares_host_callback)_ecore_con_info_ares_host_cb,
339 cares); 339 cares);
340 } 340 }
@@ -457,7 +457,7 @@ _ecore_con_info_ares_host_cb(Ecore_Con_CAres *arg,
457 goto on_mem_error; 457 goto on_mem_error;
458 458
459 addri->sin_family = AF_INET; 459 addri->sin_family = AF_INET;
460 addri->sin_port = htons(arg->svr->port); 460 addri->sin_port = htons(arg->svr->ecs ? arg->svr->ecs->port : arg->svr->port);
461 461
462 memcpy(&addri->sin_addr.s_addr, 462 memcpy(&addri->sin_addr.s_addr,
463 hostent->h_addr_list[0], sizeof(struct in_addr)); 463 hostent->h_addr_list[0], sizeof(struct in_addr));
@@ -477,7 +477,7 @@ _ecore_con_info_ares_host_cb(Ecore_Con_CAres *arg,
477 goto on_mem_error; 477 goto on_mem_error;
478 478
479 addri6->sin6_family = AF_INET6; 479 addri6->sin6_family = AF_INET6;
480 addri6->sin6_port = htons(arg->svr->port); 480 addri6->sin6_port = htons(arg->svr->ecs ? arg->svr->ecs->port : arg->svr->port);
481 addri6->sin6_flowinfo = 0; 481 addri6->sin6_flowinfo = 0;
482 addri6->sin6_scope_id = 0; 482 addri6->sin6_scope_id = 0;
483 483
@@ -516,7 +516,7 @@ _ecore_con_info_ares_host_cb(Ecore_Con_CAres *arg,
516 goto on_mem_error; 516 goto on_mem_error;
517 517
518 addri6->sin6_family = AF_INET6; 518 addri6->sin6_family = AF_INET6;
519 addri6->sin6_port = htons(arg->svr->port); 519 addri6->sin6_port = htons(arg->svr->ecs ? arg->svr->ecs->port : arg->svr->port);
520 addri6->sin6_flowinfo = 0; 520 addri6->sin6_flowinfo = 0;
521 addri6->sin6_scope_id = 0; 521 addri6->sin6_scope_id = 0;
522 522
@@ -537,7 +537,7 @@ _ecore_con_info_ares_host_cb(Ecore_Con_CAres *arg,
537 goto on_mem_error; 537 goto on_mem_error;
538 538
539 addri->sin_family = AF_INET; 539 addri->sin_family = AF_INET;
540 addri->sin_port = htons(arg->svr->port); 540 addri->sin_port = htons(arg->svr->ecs ? arg->svr->ecs->port : arg->svr->port);
541 541
542 memcpy(&addri->sin_addr.s_addr, 542 memcpy(&addri->sin_addr.s_addr,
543 &arg->addr.v4, sizeof(struct in_addr)); 543 &arg->addr.v4, sizeof(struct in_addr));
diff --git a/libraries/ecore/src/lib/ecore_con/ecore_con_info.c b/libraries/ecore/src/lib/ecore_con/ecore_con_info.c
index 4ece6b0..fdcf0b9 100644
--- a/libraries/ecore/src/lib/ecore_con/ecore_con_info.c
+++ b/libraries/ecore/src/lib/ecore_con/ecore_con_info.c
@@ -244,11 +244,10 @@ ecore_con_info_get(Ecore_Con_Server *svr,
244 unsigned char *tosend = NULL; 244 unsigned char *tosend = NULL;
245 int tosend_len; 245 int tosend_len;
246 int canonname_len = 0; 246 int canonname_len = 0;
247 int err;
248 247
249 eina_convert_itoa(svr->port, service); 248 eina_convert_itoa(svr->ecs ? svr->ecs->port : svr->port, service);
250 /* CHILD */ 249 /* CHILD */
251 if (!getaddrinfo(svr->name, service, hints, &result) && result) 250 if (!getaddrinfo(svr->ecs ? svr->ecs->ip : svr->name, service, hints, &result) && result)
252 { 251 {
253 if (result->ai_canonname) 252 if (result->ai_canonname)
254 canonname_len = strlen(result->ai_canonname) + 1; 253 canonname_len = strlen(result->ai_canonname) + 1;
@@ -281,13 +280,13 @@ ecore_con_info_get(Ecore_Con_Server *svr,
281 memcpy(container->service, sbuf, sizeof(container->service)); 280 memcpy(container->service, sbuf, sizeof(container->service));
282 } 281 }
283 282
284 err = write(fd[1], tosend, tosend_len); 283 if (write(fd[1], tosend, tosend_len) < 0) perror("write");
285 } 284 }
286 285
287 if (result) 286 if (result)
288 freeaddrinfo(result); 287 freeaddrinfo(result);
289 288
290 err = write(fd[1], "", 1); 289 if (write(fd[1], "", 1) < 0) perror("write");
291 close(fd[1]); 290 close(fd[1]);
292#if defined(__USE_ISOC99) && !defined(__UCLIBC__) 291#if defined(__USE_ISOC99) && !defined(__UCLIBC__)
293 _Exit(0); 292 _Exit(0);
diff --git a/libraries/ecore/src/lib/ecore_con/ecore_con_local_win32.c b/libraries/ecore/src/lib/ecore_con/ecore_con_local_win32.c
index 858daa5..2b7e5c5 100644
--- a/libraries/ecore/src/lib/ecore_con/ecore_con_local_win32.c
+++ b/libraries/ecore/src/lib/ecore_con/ecore_con_local_win32.c
@@ -75,9 +75,7 @@ _ecore_con_local_win32_server_read_client_handler(void *data, Ecore_Win32_Handle
75 free(msg); 75 free(msg);
76 } 76 }
77#endif 77#endif
78 if (!cl->delete_me) 78 _ecore_con_client_kill(cl);
79 ecore_con_event_client_del(cl);
80 cl->dead = EINA_TRUE;
81 return ECORE_CALLBACK_CANCEL; 79 return ECORE_CALLBACK_CANCEL;
82 } 80 }
83 81
@@ -110,9 +108,7 @@ _ecore_con_local_win32_server_peek_client_handler(void *data, Ecore_Win32_Handle
110 free(msg); 108 free(msg);
111 } 109 }
112#endif 110#endif
113 if (!cl->host_server->delete_me) 111 _ecore_con_server_kill(cl->host_server);
114 ecore_con_event_server_del(cl->host_server);
115 cl->host_server->dead = EINA_TRUE;
116 return ECORE_CALLBACK_CANCEL; 112 return ECORE_CALLBACK_CANCEL;
117 113
118 ecore_main_win32_handler_del(wh); 114 ecore_main_win32_handler_del(wh);
@@ -140,9 +136,7 @@ _ecore_con_local_win32_client_peek_server_handler(void *data, Ecore_Win32_Handle
140 free(msg); 136 free(msg);
141 } 137 }
142#endif 138#endif
143 if (!svr->delete_me) 139 _ecore_con_server_kill(svr);
144 ecore_con_event_server_del(svr);
145 svr->dead = EINA_TRUE;
146 return ECORE_CALLBACK_CANCEL; 140 return ECORE_CALLBACK_CANCEL;
147 141
148 ecore_main_win32_handler_del(wh); 142 ecore_main_win32_handler_del(wh);
@@ -191,9 +185,7 @@ _ecore_con_local_win32_client_read_server_handler(void *data, Ecore_Win32_Handle
191 free(msg); 185 free(msg);
192 } 186 }
193#endif 187#endif
194 if (!svr->delete_me) 188 _ecore_con_server_kill(svr);
195 ecore_con_event_server_del(svr);
196 svr->dead = EINA_TRUE;
197 return ECORE_CALLBACK_CANCEL; 189 return ECORE_CALLBACK_CANCEL;
198 } 190 }
199 191
@@ -296,9 +288,6 @@ _ecore_con_local_win32_client_add(void *data, Ecore_Win32_Handler *wh)
296 if (!svr->pipe) 288 if (!svr->pipe)
297 return ECORE_CALLBACK_CANCEL; 289 return ECORE_CALLBACK_CANCEL;
298 290
299 if (svr->dead)
300 return ECORE_CALLBACK_CANCEL;
301
302 if (svr->delete_me) 291 if (svr->delete_me)
303 return ECORE_CALLBACK_CANCEL; 292 return ECORE_CALLBACK_CANCEL;
304 293
@@ -698,16 +687,14 @@ ecore_con_local_win32_server_flush(Ecore_Con_Server *svr)
698 ecore_con_event_server_error(svr, msg); 687 ecore_con_event_server_error(svr, msg);
699 free(msg); 688 free(msg);
700 } 689 }
701 if (!svr->delete_me) 690 _ecore_con_server_kill(svr);
702 ecore_con_event_server_del(svr);
703 svr->dead = EINA_TRUE;
704 } 691 }
705 692
706 svr->write_buf_offset += written; 693 svr->write_buf_offset += written;
707 if (svr->write_buf_offset >= eina_binbuf_length_get(svr->buf)) 694 if (svr->write_buf_offset >= eina_binbuf_length_get(svr->buf))
708 { 695 {
709 svr->write_buf_offset = 0; 696 svr->write_buf_offset = 0;
710 eina_binbuf_free(svr->buf); 697 eina_binbuf_free(svr->buf);
711 svr->buf = NULL; 698 svr->buf = NULL;
712 svr->want_write = 0; 699 svr->want_write = 0;
713 } 700 }
@@ -749,9 +736,7 @@ ecore_con_local_win32_client_flush(Ecore_Con_Client *cl)
749 ecore_con_event_client_error(cl, msg); 736 ecore_con_event_client_error(cl, msg);
750 free(msg); 737 free(msg);
751 } 738 }
752 if (!cl->delete_me) 739 _ecore_con_client_kill(cl);
753 ecore_con_event_client_del(cl);
754 cl->dead = EINA_TRUE;
755 } 740 }
756 741
757 cl->buf_offset += written; 742 cl->buf_offset += written;
diff --git a/libraries/ecore/src/lib/ecore_con/ecore_con_private.h b/libraries/ecore/src/lib/ecore_con/ecore_con_private.h
index f601465..35f2310 100644
--- a/libraries/ecore/src/lib/ecore_con/ecore_con_private.h
+++ b/libraries/ecore/src/lib/ecore_con/ecore_con_private.h
@@ -56,7 +56,8 @@ extern int _ecore_con_log_dom;
56 56
57typedef struct _Ecore_Con_Lookup Ecore_Con_Lookup; 57typedef struct _Ecore_Con_Lookup Ecore_Con_Lookup;
58typedef struct _Ecore_Con_Info Ecore_Con_Info; 58typedef struct _Ecore_Con_Info Ecore_Con_Info;
59 59typedef struct Ecore_Con_Socks_v4 Ecore_Con_Socks_v4;
60typedef struct Ecore_Con_Socks_v5 Ecore_Con_Socks_v5;
60typedef void (*Ecore_Con_Info_Cb)(void *data, Ecore_Con_Info *infos); 61typedef void (*Ecore_Con_Info_Cb)(void *data, Ecore_Con_Info *infos);
61 62
62typedef enum _Ecore_Con_State 63typedef enum _Ecore_Con_State
@@ -82,6 +83,14 @@ typedef enum _Ecore_Con_Ssl_Handshake
82 ECORE_CON_SSL_STATE_INIT 83 ECORE_CON_SSL_STATE_INIT
83} Ecore_Con_Ssl_State; 84} Ecore_Con_Ssl_State;
84 85
86typedef enum Ecore_Con_Socks_State
87{
88 ECORE_CON_SOCKS_STATE_DONE = 0,
89 ECORE_CON_SOCKS_STATE_RESOLVED,
90 ECORE_CON_SOCKS_STATE_INIT,
91 ECORE_CON_SOCKS_STATE_READ
92} Ecore_Con_Socks_State;
93
85struct _Ecore_Con_Client 94struct _Ecore_Con_Client
86{ 95{
87 ECORE_MAGIC; 96 ECORE_MAGIC;
@@ -107,9 +116,8 @@ struct _Ecore_Con_Client
107#endif 116#endif
108 Ecore_Con_Ssl_State ssl_state; 117 Ecore_Con_Ssl_State ssl_state;
109 Eina_Bool handshaking : 1; 118 Eina_Bool handshaking : 1;
110 Eina_Bool upgrade : 1; 119 Eina_Bool upgrade : 1; /* STARTTLS queued */
111 Eina_Bool dead : 1; 120 Eina_Bool delete_me : 1; /* del event has been queued */
112 Eina_Bool delete_me : 1;
113}; 121};
114 122
115struct _Ecore_Con_Server 123struct _Ecore_Con_Server
@@ -130,6 +138,18 @@ struct _Ecore_Con_Server
130 Eina_List *event_count; 138 Eina_List *event_count;
131 int client_limit; 139 int client_limit;
132 pid_t ppid; 140 pid_t ppid;
141 /* socks */
142 Ecore_Con_Socks *ecs;
143 Ecore_Con_Socks_State ecs_state;
144 int ecs_addrlen;
145 unsigned char ecs_addr[16];
146 unsigned int ecs_buf_offset;
147 Eina_Binbuf *ecs_buf;
148 Eina_Binbuf *ecs_recvbuf;
149 const char *proxyip;
150 int proxyport;
151 /* endsocks */
152 const char *verify_name;
133#if USE_GNUTLS 153#if USE_GNUTLS
134 gnutls_session_t session; 154 gnutls_session_t session;
135 gnutls_anon_client_credentials_t anoncred_c; 155 gnutls_anon_client_credentials_t anoncred_c;
@@ -149,18 +169,17 @@ struct _Ecore_Con_Server
149 double disconnect_time; 169 double disconnect_time;
150 double client_disconnect_time; 170 double client_disconnect_time;
151 const char *ip; 171 const char *ip;
152 Eina_Bool dead : 1;
153 Eina_Bool created : 1; /* EINA_TRUE if server is our listening server */ 172 Eina_Bool created : 1; /* EINA_TRUE if server is our listening server */
154 Eina_Bool connecting : 1; /* EINA_FALSE if just initialized or connected */ 173 Eina_Bool connecting : 1; /* EINA_FALSE if just initialized or connected */
155 Eina_Bool handshaking : 1; /* EINA_TRUE if server is ssl handshaking */ 174 Eina_Bool handshaking : 1; /* EINA_TRUE if server is ssl handshaking */
156 Eina_Bool upgrade : 1; 175 Eina_Bool upgrade : 1; /* STARTTLS queued */
157 Eina_Bool ssl_prepared : 1; 176 Eina_Bool ssl_prepared : 1;
158 Eina_Bool use_cert : 1; /* EINA_TRUE if using certificate auth */ 177 Eina_Bool use_cert : 1; /* EINA_TRUE if using certificate auth */
159 Ecore_Con_Ssl_State ssl_state; /* current state of ssl handshake on the server */ 178 Ecore_Con_Ssl_State ssl_state; /* current state of ssl handshake on the server */
160 Eina_Bool verify : 1; /* EINA_TRUE if certificates will be verified */ 179 Eina_Bool verify : 1; /* EINA_TRUE if certificates will be verified */
161 Eina_Bool verify_basic : 1; /* EINA_TRUE if certificates will be verified only against the hostname */ 180 Eina_Bool verify_basic : 1; /* EINA_TRUE if certificates will be verified only against the hostname */
162 Eina_Bool reject_excess_clients : 1; 181 Eina_Bool reject_excess_clients : 1;
163 Eina_Bool delete_me : 1; 182 Eina_Bool delete_me : 1; /* del event has been queued */
164#ifdef _WIN32 183#ifdef _WIN32
165 Eina_Bool want_write : 1; 184 Eina_Bool want_write : 1;
166 Eina_Bool read_stop : 1; 185 Eina_Bool read_stop : 1;
@@ -182,19 +201,18 @@ struct _Ecore_Con_Url
182 Eina_List *additional_headers; 201 Eina_List *additional_headers;
183 Eina_List *response_headers; 202 Eina_List *response_headers;
184 const char *url; 203 const char *url;
204 long proxy_type;
205
206 Ecore_Timer *timer;
185 207
186 Ecore_Con_Url_Time time_condition; 208 Ecore_Con_Url_Time time_condition;
187 double timestamp; 209 double timestamp;
188 void *data; 210 void *data;
189 211
190 Ecore_Fd_Handler *fd_handler; 212 void *post_data;
191 int fd;
192 int flags;
193 213
194 int received; 214 int received;
195 int write_fd; 215 int write_fd;
196
197 Eina_Bool active : 1;
198}; 216};
199#endif 217#endif
200 218
@@ -212,16 +230,68 @@ struct _Ecore_Con_Lookup
212 const void *data; 230 const void *data;
213}; 231};
214 232
233#define ECORE_CON_SOCKS_CAST_ELSE(X) \
234 Ecore_Con_Socks_v4 *v4 = NULL; \
235 Ecore_Con_Socks_v5 *v5 = NULL; \
236 if ((X) && ((X)->version == 4)) \
237 v4 = (Ecore_Con_Socks_v4*)(X); \
238 else if ((X) && ((X)->version == 5)) \
239 v5 = (Ecore_Con_Socks_v5*)(X); \
240 else
241
242struct Ecore_Con_Socks
243{
244 unsigned char version;
245
246 const char *ip;
247 int port;
248 const char *username;
249 Eina_Bool lookup : 1;
250 Eina_Bool bind : 1;
251};
252
253struct Ecore_Con_Socks_v4
254{
255 unsigned char version;
256
257 const char *ip;
258 int port;
259 const char *username;
260 Eina_Bool lookup : 1;
261 Eina_Bool bind : 1;
262};
263
264struct Ecore_Con_Socks_v5
265{
266 unsigned char version;
267
268 const char *ip;
269 int port;
270 const char *username;
271 Eina_Bool lookup : 1;
272 Eina_Bool bind : 1;
273};
274
275extern Ecore_Con_Socks *_ecore_con_proxy_once;
276extern Ecore_Con_Socks *_ecore_con_proxy_global;
277void ecore_con_socks_init(void);
278void ecore_con_socks_shutdown(void);
279Eina_Bool ecore_con_socks_svr_init(Ecore_Con_Server *svr);
280void ecore_con_socks_read(Ecore_Con_Server *svr, unsigned char *buf, int num);
281void ecore_con_socks_dns_cb(const char *canonname, const char *ip, struct sockaddr *addr, int addrlen, Ecore_Con_Server *svr);
215/* from ecore_con.c */ 282/* from ecore_con.c */
216void ecore_con_server_infos_del(Ecore_Con_Server *svr, void *info); 283void ecore_con_server_infos_del(Ecore_Con_Server *svr, void *info);
284void ecore_con_event_proxy_bind(Ecore_Con_Server *svr);
217void ecore_con_event_server_data(Ecore_Con_Server *svr, unsigned char *buf, int num, Eina_Bool duplicate); 285void ecore_con_event_server_data(Ecore_Con_Server *svr, unsigned char *buf, int num, Eina_Bool duplicate);
218void ecore_con_event_server_del(Ecore_Con_Server *svr); 286void ecore_con_event_server_del(Ecore_Con_Server *svr);
219void ecore_con_event_server_error(Ecore_Con_Server *svr, const char *error); 287#define ecore_con_event_server_error(svr, error) _ecore_con_event_server_error((svr), (char*)(error), EINA_TRUE)
288void _ecore_con_event_server_error(Ecore_Con_Server *svr, char *error, Eina_Bool duplicate);
220void ecore_con_event_client_add(Ecore_Con_Client *cl); 289void ecore_con_event_client_add(Ecore_Con_Client *cl);
221void ecore_con_event_client_data(Ecore_Con_Client *cl, unsigned char *buf, int num, Eina_Bool duplicate); 290void ecore_con_event_client_data(Ecore_Con_Client *cl, unsigned char *buf, int num, Eina_Bool duplicate);
222void ecore_con_event_client_del(Ecore_Con_Client *cl); 291void ecore_con_event_client_del(Ecore_Con_Client *cl);
223void ecore_con_event_client_error(Ecore_Con_Client *cl, const char *error); 292void ecore_con_event_client_error(Ecore_Con_Client *cl, const char *error);
224 293void _ecore_con_server_kill(Ecore_Con_Server *svr);
294void _ecore_con_client_kill(Ecore_Con_Client *cl);
225/* from ecore_local_win32.c */ 295/* from ecore_local_win32.c */
226#ifdef _WIN32 296#ifdef _WIN32
227Eina_Bool ecore_con_local_listen(Ecore_Con_Server *svr); 297Eina_Bool ecore_con_local_listen(Ecore_Con_Server *svr);
@@ -312,6 +382,7 @@ GENERIC_ALLOC_FREE_HEADER(Ecore_Con_Event_Server_Add, ecore_con_event_server_add
312GENERIC_ALLOC_FREE_HEADER(Ecore_Con_Event_Server_Del, ecore_con_event_server_del); 382GENERIC_ALLOC_FREE_HEADER(Ecore_Con_Event_Server_Del, ecore_con_event_server_del);
313GENERIC_ALLOC_FREE_HEADER(Ecore_Con_Event_Server_Write, ecore_con_event_server_write); 383GENERIC_ALLOC_FREE_HEADER(Ecore_Con_Event_Server_Write, ecore_con_event_server_write);
314GENERIC_ALLOC_FREE_HEADER(Ecore_Con_Event_Server_Data, ecore_con_event_server_data); 384GENERIC_ALLOC_FREE_HEADER(Ecore_Con_Event_Server_Data, ecore_con_event_server_data);
385GENERIC_ALLOC_FREE_HEADER(Ecore_Con_Event_Proxy_Bind, ecore_con_event_proxy_bind);
315 386
316void ecore_con_mempool_init(void); 387void ecore_con_mempool_init(void);
317void ecore_con_mempool_shutdown(void); 388void ecore_con_mempool_shutdown(void);
diff --git a/libraries/ecore/src/lib/ecore_con/ecore_con_socks.c b/libraries/ecore/src/lib/ecore_con/ecore_con_socks.c
new file mode 100644
index 0000000..aecaff0
--- /dev/null
+++ b/libraries/ecore/src/lib/ecore_con/ecore_con_socks.c
@@ -0,0 +1,496 @@
1#ifdef HAVE_CONFIG_H
2# include <config.h>
3#endif
4
5#include <stdio.h>
6#include <string.h>
7#include <sys/types.h>
8#include <sys/stat.h>
9#include <errno.h>
10#include <unistd.h>
11#include <fcntl.h>
12
13#ifdef HAVE_NETINET_TCP_H
14# include <netinet/tcp.h>
15#endif
16
17#ifdef HAVE_NET_IF_H
18# include <net/if.h>
19#endif
20
21/* if net/if.h is not found or if an older versions of net/if.h is provided
22 which does not define IF_NAMESIZE. We must define it ourselves */
23#ifndef IF_NAMESIZE
24# ifdef IFNAMSIZ
25# define IF_NAMESIZE IFNAMSIZ
26# else
27# define IF_NAMESIZE 16
28# endif
29#endif
30
31#ifdef HAVE_NETINET_IN_H
32# include <netinet/in.h>
33#endif
34
35#ifdef HAVE_ARPA_INET_H
36# include <arpa/inet.h>
37#endif
38
39#ifdef HAVE_SYS_SOCKET_H
40# include <sys/socket.h>
41#endif
42
43#ifdef HAVE_SYS_UN_H
44# include <sys/un.h>
45#endif
46
47#ifdef HAVE_WS2TCPIP_H
48# include <ws2tcpip.h>
49#endif
50
51#ifdef HAVE_EVIL
52# include <Evil.h>
53#endif
54
55#include "Ecore.h"
56#include "ecore_private.h"
57#include "Ecore_Con.h"
58#include "ecore_con_private.h"
59
60#define _ecore_con_server_kill(svr) do { \
61 DBG("KILL %p", (svr)); \
62 _ecore_con_server_kill((svr)); \
63} while (0)
64
65Eina_List *ecore_con_socks_proxies = NULL;
66
67static Ecore_Con_Socks *
68_ecore_con_socks_find(unsigned char version, const char *ip, int port, const char *username)
69{
70 Eina_List *l;
71 Ecore_Con_Socks *ecs;
72
73 if (!ecore_con_socks_proxies) return NULL;
74
75 EINA_LIST_FOREACH(ecore_con_socks_proxies, l, ecs)
76 {
77 if (ecs->version != version) continue;
78 if (strcmp(ecs->ip, ip)) continue;
79 if ((port != -1) && (port != ecs->port)) continue;
80 if (username && strcmp(ecs->username, username)) continue;
81 return ecs;
82 }
83 return NULL;
84}
85
86static void
87_ecore_con_socks_free(Ecore_Con_Socks *ecs)
88{
89 ECORE_CON_SOCKS_CAST_ELSE(ecs) return;
90
91 if (_ecore_con_proxy_once == ecs) _ecore_con_proxy_once = NULL;
92 if (_ecore_con_proxy_global == ecs) _ecore_con_proxy_global = NULL;
93 eina_stringshare_del(ecs->ip);
94 eina_stringshare_del(ecs->username);
95 free(ecs);
96}
97/////////////////////////////////////////////////////////////////////////////////////
98void
99ecore_con_socks_shutdown(void)
100{
101 Ecore_Con_Socks *ecs;
102 EINA_LIST_FREE(ecore_con_socks_proxies, ecs)
103 _ecore_con_socks_free(ecs);
104 _ecore_con_proxy_once = NULL;
105 _ecore_con_proxy_global = NULL;
106}
107
108void
109ecore_con_socks_read(Ecore_Con_Server *svr, unsigned char *buf, int num)
110{
111 const unsigned char *data;
112 ECORE_CON_SOCKS_CAST_ELSE(svr->ecs) return;
113
114 if (svr->ecs_state != ECORE_CON_SOCKS_STATE_READ) return;
115
116 if (v4)
117 {
118 DBG("SOCKS: %d bytes", num);
119 if (num < 8)
120 {
121 if (!svr->ecs_recvbuf) svr->ecs_recvbuf = eina_binbuf_new();
122 if (!svr->ecs_recvbuf) goto error;
123 eina_binbuf_append_length(svr->ecs_recvbuf, buf, num);
124 /* the slowest connection on earth */
125 if (eina_binbuf_length_get(svr->ecs_recvbuf) != 8) return;
126 data = eina_binbuf_string_get(svr->ecs_recvbuf);
127 }
128 else if (num > 8) goto error;
129 else
130 data = buf;
131
132 /* http://ufasoft.com/doc/socks4_protocol.htm */
133 if (data[0]) goto error;
134 switch (data[1])
135 {
136 case 90:
137 /* success! */
138 break;
139 case 91:
140 ecore_con_event_server_error(svr, "proxy request rejected or failed");
141 goto error;
142 case 92:
143 ecore_con_event_server_error(svr, "proxying SOCKS server could not perform authentication");
144 goto error;
145 case 93:
146 ecore_con_event_server_error(svr, "proxy request authentication rejected");
147 goto error;
148 default:
149 ecore_con_event_server_error(svr, "garbage data from proxy");
150 goto error;
151 }
152 if (svr->ecs->bind)
153 {
154 unsigned int nport;
155 char naddr[IF_NAMESIZE];
156
157 memcpy(&nport, &data[2], 2);
158 svr->proxyport = ntohl(nport);
159
160 if (!inet_ntop(AF_INET, &data[4], naddr, sizeof(naddr))) goto error;
161 svr->proxyip = eina_stringshare_add(naddr);
162 ecore_con_event_proxy_bind(svr);
163 }
164 svr->ecs_state = ECORE_CON_SOCKS_STATE_DONE;
165 INF("PROXY CONNECTED");
166 if (svr->ecs_recvbuf) eina_binbuf_free(svr->ecs_recvbuf);
167 svr->ecs_recvbuf = NULL;
168 svr->ecs_buf_offset = svr->ecs_addrlen = 0;
169 memset(svr->ecs_addr, 0, sizeof(svr->ecs_addr));
170 if (!svr->ssl_state)
171 ecore_con_event_server_add(svr);
172 if (svr->ssl_state || (svr->buf && eina_binbuf_length_get(svr->buf)))
173 ecore_main_fd_handler_active_set(svr->fd_handler, ECORE_FD_READ | ECORE_FD_WRITE);
174 }
175 return;
176error:
177 _ecore_con_server_kill(svr);
178}
179
180Eina_Bool
181ecore_con_socks_svr_init(Ecore_Con_Server *svr)
182{
183 unsigned char *sbuf;
184 ECORE_CON_SOCKS_CAST_ELSE(svr->ecs) return EINA_FALSE;
185
186 if (!svr->ip) return EINA_FALSE;
187 if (svr->ecs_buf) return EINA_FALSE;
188 if (svr->ecs_state != ECORE_CON_SOCKS_STATE_INIT) return EINA_FALSE;
189 ecore_main_fd_handler_active_set(svr->fd_handler, ECORE_FD_WRITE);
190 if (v4)
191 {
192 size_t addrlen, buflen, ulen = 1;
193 addrlen = svr->ecs->lookup ? strlen(svr->name) + 1: 0;
194 if (svr->ecs->username) ulen += strlen(svr->ecs->username);
195 buflen = sizeof(char) * (8 + ulen + addrlen);
196 sbuf = malloc(buflen);
197 if (!sbuf)
198 {
199 ecore_con_event_server_error(svr, "Memory allocation failure!");
200 _ecore_con_server_kill(svr);
201 return EINA_FALSE;
202 }
203 /* http://en.wikipedia.org/wiki/SOCKS */
204 sbuf[0] = 4;
205 sbuf[1] = v4->bind ? 2 : 1;
206 sbuf[2] = svr->port >> 8;
207 sbuf[3] = svr->port & 0xff;
208 if (addrlen)
209 {
210 sbuf[4] = sbuf[5] = sbuf[6] = 0;
211 sbuf[7] = 1;
212 }
213 else
214 memcpy(sbuf + 4, svr->ecs_addr, 4);
215 if (svr->ecs->username)
216 memcpy(sbuf + 8, svr->ecs->username, ulen);
217 else
218 sbuf[8] = 0;
219 if (addrlen) memcpy(sbuf + 8 + ulen, svr->name, addrlen);
220
221 svr->ecs_buf = eina_binbuf_manage_new_length(sbuf, buflen);
222 }
223 return EINA_TRUE;
224}
225
226void
227ecore_con_socks_dns_cb(const char *canonname __UNUSED__, const char *ip, struct sockaddr *addr, int addrlen, Ecore_Con_Server *svr)
228{
229 svr->ip = eina_stringshare_add(ip);
230 svr->ecs_addrlen = addrlen;
231 svr->ecs_state++;
232 if (addr->sa_family == AF_INET)
233 memcpy(svr->ecs_addr, &((struct sockaddr_in *)addr)->sin_addr.s_addr, 4);
234#ifdef HAVE_IPV6
235 else
236 memcpy(svr->ecs_addr, &((struct sockaddr_in6 *)addr)->sin6_addr.s6_addr, addrlen);
237#endif
238 ecore_con_socks_svr_init(svr);
239}
240
241void
242ecore_con_socks_init(void)
243{
244 const char *socks;
245 char *u, *h, *p, *l;
246 char buf[64];
247 int port, lookup = 0;
248 Ecore_Con_Socks *ecs;
249 unsigned char addr[sizeof(struct in_addr)];
250
251 /* ECORE_CON_SOCKS_V4=user@host:port:[1|0] */
252 socks = getenv("ECORE_CON_SOCKS_V4");
253 if ((!socks) || (!socks[0]) || (strlen(socks) > 64)) return;
254 strncpy(buf, socks, sizeof(buf));
255 h = strchr(buf, '@');
256 u = NULL;
257 /* username */
258 if (h && (h - buf > 0)) *h++ = 0, u = buf;
259 else h = buf;
260
261 /* host ip; I ain't resolvin shit here */
262 p = strchr(h, ':');
263 if (!p) return;
264 *p++ = 0;
265 if (!inet_pton(AF_INET, h, addr)) return;
266
267 errno = 0;
268 port = strtol(p, &l, 10);
269 if (errno || (port < 0) || (port > 65535)) return;
270 if (l && (l[0] == ':'))
271 lookup = (l[1] == '1');
272 ecs = ecore_con_socks4_remote_add(h, port, u);
273 if (!ecs) return;
274 ecore_con_socks4_lookup_set(ecs, lookup);
275 ecore_con_socks_apply_always(ecs);
276 INF("Added global proxy server %s%s%s:%d - DNS lookup %s",
277 u ?: "", u ? "@" : "", h, port, lookup ? "ENABLED" : "DISABLED");
278}
279
280/////////////////////////////////////////////////////////////////////////////////////
281
282/**
283 * @defgroup Ecore_Con_Socks_Group Ecore Connection SOCKS functions
284 * @{
285 */
286
287/**
288 * Add a SOCKS v4 proxy to the proxy list
289 *
290 * Use this to create (or return, if previously added) a SOCKS proxy
291 * object which can be used by any ecore_con servers.
292 * @param ip The ip address of the proxy (NOT DOMAIN NAME. IP ADDRESS.)
293 * @param port The port to connect to on the proxy
294 * @param username The username to use for the proxy (OPTIONAL)
295 * @return An allocated proxy object, or NULL on failure
296 * @note This object NEVER needs to be explicitly freed.
297 * @since 1.2
298 */
299EAPI Ecore_Con_Socks *
300ecore_con_socks4_remote_add(const char *ip, int port, const char *username)
301{
302 Ecore_Con_Socks *ecs;
303
304 if ((!ip) || (!ip[0]) || (port < 0) || (port > 65535)) return NULL;
305
306 ecs = _ecore_con_socks_find(4, ip, port, username);
307 if (ecs) return ecs;
308
309 ecs = calloc(1, sizeof(Ecore_Con_Socks_v4));
310 if (!ecs) return NULL;
311
312 ecs->version = 4;
313 ecs->ip = eina_stringshare_add(ip);
314 ecs->port = port;
315 ecs->username = eina_stringshare_add(username);
316 ecore_con_socks_proxies = eina_list_append(ecore_con_socks_proxies, ecs);
317 return ecs;
318}
319
320/**
321 * Set DNS lookup mode on an existing SOCKS v4 proxy
322 *
323 * According to RFC, SOCKS v4 does not require that a proxy perform
324 * its own DNS lookups for addresses. SOCKS v4a specifies the protocol
325 * for this. If you want to enable remote DNS lookup and are sure that your
326 * proxy supports it, use this function.
327 * @param ecs The proxy object
328 * @param enable If true, the proxy will perform the dns lookup
329 * @note By default, this setting is DISABLED.
330 * @since 1.2
331 */
332EAPI void
333ecore_con_socks4_lookup_set(Ecore_Con_Socks *ecs, Eina_Bool enable)
334{
335 ECORE_CON_SOCKS_CAST_ELSE(ecs) return;
336 if (v4) v4->lookup = !!enable;
337}
338
339/**
340 * Get DNS lookup mode on an existing SOCKS v4 proxy
341 *
342 * According to RFC, SOCKS v4 does not require that a proxy perform
343 * its own DNS lookups for addresses. SOCKS v4a specifies the protocol
344 * for this. This function returns whether lookups are enabled on a proxy object.
345 * @param ecs The proxy object
346 * @return If true, the proxy will perform the dns lookup
347 * @note By default, this setting is DISABLED.
348 * @since 1.2
349 */
350EAPI Eina_Bool
351ecore_con_socks4_lookup_get(Ecore_Con_Socks *ecs)
352{
353 ECORE_CON_SOCKS_CAST_ELSE(ecs) return EINA_FALSE;
354 return v4 ? v4->lookup : EINA_FALSE;
355}
356
357/**
358 * Find a SOCKS v4 proxy in the proxy list
359 *
360 * Use this to determine if a SOCKS proxy was previously added by checking
361 * the proxy list against the parameters given.
362 * @param ip The ip address of the proxy (NOT DOMAIN NAME. IP ADDRESS.)
363 * @param port The port to connect to on the proxy, or -1 to match the first proxy with @p ip
364 * @param username The username used for the proxy (OPTIONAL)
365 * @return true only if a proxy exists matching the given params
366 * @note This function matches slightly more loosely than ecore_con_socks4_remote_add(), and
367 * ecore_con_socks4_remote_add() should be used to return the actual object.
368 * @since 1.2
369 */
370EAPI Eina_Bool
371ecore_con_socks4_remote_exists(const char *ip, int port, const char *username)
372{
373 if ((!ip) || (!ip[0]) || (port < -1) || (port > 65535) || (username && (!username[0])))
374 return EINA_FALSE;
375 return !!_ecore_con_socks_find(4, ip, port, username);
376}
377
378/**
379 * Remove a SOCKS v4 proxy from the proxy list and delete it
380 *
381 * Use this to remove a SOCKS proxy from the proxy list by checking
382 * the list against the parameters given. The proxy will then be deleted.
383 * @param ip The ip address of the proxy (NOT DOMAIN NAME. IP ADDRESS.)
384 * @param port The port to connect to on the proxy, or -1 to match the first proxy with @p ip
385 * @param username The username used for the proxy (OPTIONAL)
386 * @note This function matches in the same way as ecore_con_socks4_remote_exists().
387 * @warning Be aware that deleting a proxy which is being used WILL ruin your life.
388 * @since 1.2
389 */
390EAPI void
391ecore_con_socks4_remote_del(const char *ip, int port, const char *username)
392{
393 Ecore_Con_Socks_v4 *v4;
394
395 if ((!ip) || (!ip[0]) || (port < -1) || (port > 65535) || (username && (!username[0]))) return;
396 if (!ecore_con_socks_proxies) return;
397
398 v4 = (Ecore_Con_Socks_v4*)_ecore_con_socks_find(4, ip, port, username);
399 if (!v4) return;
400 ecore_con_socks_proxies = eina_list_remove(ecore_con_socks_proxies, v4);
401 _ecore_con_socks_free((Ecore_Con_Socks*)v4);
402}
403
404/**
405 * Enable bind mode on a SOCKS proxy
406 *
407 * Use this function to enable binding a remote port for use with a remote server.
408 * For more information, see http://ufasoft.com/doc/socks4_protocol.htm
409 * @param ecs The proxy object
410 * @param is_bind If true, the connection established will be a port binding
411 * @warning Be aware that changing the operation mode of an active proxy may result in undefined behavior
412 * @since 1.2
413 */
414EAPI void
415ecore_con_socks_bind_set(Ecore_Con_Socks *ecs, Eina_Bool is_bind)
416{
417 EINA_SAFETY_ON_NULL_RETURN(ecs);
418 ecs->bind = !!is_bind;
419}
420
421/**
422 * Return bind mode of a SOCKS proxy
423 *
424 * Use this function to return bind mode of a proxy (binding a remote port for use with a remote server).
425 * For more information, see http://ufasoft.com/doc/socks4_protocol.htm
426 * @param ecs The proxy object
427 * @return If true, the connection established will be a port binding
428 * @since 1.2
429 */
430EAPI Eina_Bool
431ecore_con_socks_bind_get(Ecore_Con_Socks *ecs)
432{
433 EINA_SAFETY_ON_NULL_RETURN_VAL(ecs, EINA_FALSE);
434 return ecs->bind;
435}
436
437EAPI unsigned int
438ecore_con_socks_version_get(Ecore_Con_Socks *ecs)
439{
440 EINA_SAFETY_ON_NULL_RETURN_VAL(ecs, 0);
441 return ecs->version;
442}
443
444/**
445 * Remove a SOCKS v4 proxy from the proxy list and delete it
446 *
447 * Use this to remove a SOCKS proxy from the proxy list by directly deleting the object given.
448 * @param ecs The proxy object to delete
449 * @warning Be aware that deleting a proxy which is being used WILL ruin your life.
450 * @since 1.2
451 */
452EAPI void
453ecore_con_socks_remote_del(Ecore_Con_Socks *ecs)
454{
455 EINA_SAFETY_ON_NULL_RETURN(ecs);
456 if (!ecore_con_socks_proxies) return;
457
458 ecore_con_socks_proxies = eina_list_remove(ecore_con_socks_proxies, ecs);
459 _ecore_con_socks_free(ecs);
460}
461
462/**
463 * Set a proxy object to be used with the next server created with ecore_con_server_connect()
464 *
465 * This function sets a proxy for the next ecore_con connection. After the next server is created,
466 * the proxy will NEVER be applied again unless explicitly enabled.
467 * @param ecs The proxy object
468 * @see ecore_con_socks_apply_always()
469 * @since 1.2
470 */
471EAPI void
472ecore_con_socks_apply_once(Ecore_Con_Socks *ecs)
473{
474 _ecore_con_proxy_once = ecs;
475}
476
477/**
478 * Set a proxy object to be used with all servers created with ecore_con_server_connect()
479 *
480 * This function sets a proxy for all ecore_con connections. It will always be used.
481 * @param ecs The proxy object
482 * @see ecore_con_socks_apply_once()
483 * @since 1.2
484 * @note ecore-con supports setting this through environment variables like so:
485 * ECORE_CON_SOCKS_V4=[user@]server:port:lookup
486 * user is the OPTIONAL string that would be passed to the proxy as the username
487 * server is the IP_ADDRESS of the proxy server
488 * port is the port to connect to on the proxy server
489 * lookup is 1 if the proxy should perform all DNS lookups, otherwise 0 or omitted
490 */
491EAPI void
492ecore_con_socks_apply_always(Ecore_Con_Socks *ecs)
493{
494 _ecore_con_proxy_global = ecs;
495}
496/** @} */
diff --git a/libraries/ecore/src/lib/ecore_con/ecore_con_ssl.c b/libraries/ecore/src/lib/ecore_con/ecore_con_ssl.c
index c352e94..6104632 100644
--- a/libraries/ecore/src/lib/ecore_con/ecore_con_ssl.c
+++ b/libraries/ecore/src/lib/ecore_con/ecore_con_ssl.c
@@ -16,6 +16,7 @@
16# include <ws2tcpip.h> 16# include <ws2tcpip.h>
17#endif 17#endif
18 18
19#include <sys/stat.h>
19#include "Ecore.h" 20#include "Ecore.h"
20#include "ecore_con_private.h" 21#include "ecore_con_private.h"
21 22
@@ -60,12 +61,34 @@ _gnutls_print_errors(void *conn, int type, int ret)
60 ecore_con_event_server_error(conn, buf); 61 ecore_con_event_server_error(conn, buf);
61} 62}
62 63
64static void
65_gnutls_print_session(const gnutls_datum_t *cert_list, unsigned int cert_list_size)
66{
67 char *c = NULL;
68 gnutls_x509_crt_t crt;
69 unsigned int x;
70
71 if (!eina_log_domain_level_check(_ecore_con_log_dom, EINA_LOG_LEVEL_DBG)) return;
72 for (x = 0; x < cert_list_size; x++)
73 {
74 gnutls_x509_crt_init(&crt);
75 gnutls_x509_crt_import(crt, &cert_list[x], GNUTLS_X509_FMT_DER);
76 gnutls_x509_crt_print(crt, GNUTLS_CRT_PRINT_FULL, (gnutls_datum_t*)&c);
77 INF("CERTIFICATE:\n%s", c);
78 gnutls_free(c);
79 gnutls_x509_crt_deinit(crt);
80 crt = NULL;
81 }
82}
83
63#ifdef ISCOMFITOR 84#ifdef ISCOMFITOR
64static void 85static void
65_gnutls_log_func(int level, 86_gnutls_log_func(int level,
66 const char *str) 87 const char *str)
67{ 88{
68 DBG("|<%d>| %s", level, str); 89 char buf[128];
90 strncat(buf, str, strlen(str) - 1);
91 DBG("|<%d>| %s", level, buf);
69} 92}
70#endif 93#endif
71 94
@@ -116,6 +139,185 @@ SSL_GNUTLS_PRINT_HANDSHAKE_STATUS(gnutls_handshake_description_t status)
116#elif USE_OPENSSL 139#elif USE_OPENSSL
117 140
118static void 141static void
142_openssl_print_verify_error(int error)
143{
144 switch (error)
145 {
146#define ERROR(X) \
147 case (X): \
148 ERR("%s", #X); \
149 break
150#ifdef X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT
151 ERROR(X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT);
152#endif
153#ifdef X509_V_ERR_UNABLE_TO_GET_CRL
154 ERROR(X509_V_ERR_UNABLE_TO_GET_CRL);
155#endif
156#ifdef X509_V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE
157 ERROR(X509_V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE);
158#endif
159#ifdef X509_V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE
160 ERROR(X509_V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE);
161#endif
162#ifdef X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY
163 ERROR(X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY);
164#endif
165#ifdef X509_V_ERR_CERT_SIGNATURE_FAILURE
166 ERROR(X509_V_ERR_CERT_SIGNATURE_FAILURE);
167#endif
168#ifdef X509_V_ERR_CRL_SIGNATURE_FAILURE
169 ERROR(X509_V_ERR_CRL_SIGNATURE_FAILURE);
170#endif
171#ifdef X509_V_ERR_CERT_NOT_YET_VALID
172 ERROR(X509_V_ERR_CERT_NOT_YET_VALID);
173#endif
174#ifdef X509_V_ERR_CERT_HAS_EXPIRED
175 ERROR(X509_V_ERR_CERT_HAS_EXPIRED);
176#endif
177#ifdef X509_V_ERR_CRL_NOT_YET_VALID
178 ERROR(X509_V_ERR_CRL_NOT_YET_VALID);
179#endif
180#ifdef X509_V_ERR_CRL_HAS_EXPIRED
181 ERROR(X509_V_ERR_CRL_HAS_EXPIRED);
182#endif
183#ifdef X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD
184 ERROR(X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD);
185#endif
186#ifdef X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD
187 ERROR(X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD);
188#endif
189#ifdef X509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD
190 ERROR(X509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD);
191#endif
192#ifdef X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD
193 ERROR(X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD);
194#endif
195#ifdef X509_V_ERR_OUT_OF_MEM
196 ERROR(X509_V_ERR_OUT_OF_MEM);
197#endif
198#ifdef X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT
199 ERROR(X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT);
200#endif
201#ifdef X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN
202 ERROR(X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN);
203#endif
204#ifdef X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY
205 ERROR(X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY);
206#endif
207#ifdef X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE
208 ERROR(X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE);
209#endif
210#ifdef X509_V_ERR_CERT_CHAIN_TOO_LONG
211 ERROR(X509_V_ERR_CERT_CHAIN_TOO_LONG);
212#endif
213#ifdef X509_V_ERR_CERT_REVOKED
214 ERROR(X509_V_ERR_CERT_REVOKED);
215#endif
216#ifdef X509_V_ERR_INVALID_CA
217 ERROR(X509_V_ERR_INVALID_CA);
218#endif
219#ifdef X509_V_ERR_PATH_LENGTH_EXCEEDED
220 ERROR(X509_V_ERR_PATH_LENGTH_EXCEEDED);
221#endif
222#ifdef X509_V_ERR_INVALID_PURPOSE
223 ERROR(X509_V_ERR_INVALID_PURPOSE);
224#endif
225#ifdef X509_V_ERR_CERT_UNTRUSTED
226 ERROR(X509_V_ERR_CERT_UNTRUSTED);
227#endif
228#ifdef X509_V_ERR_CERT_REJECTED
229 ERROR(X509_V_ERR_CERT_REJECTED);
230#endif
231 /* These are 'informational' when looking for issuer cert */
232#ifdef X509_V_ERR_SUBJECT_ISSUER_MISMATCH
233 ERROR(X509_V_ERR_SUBJECT_ISSUER_MISMATCH);
234#endif
235#ifdef X509_V_ERR_AKID_SKID_MISMATCH
236 ERROR(X509_V_ERR_AKID_SKID_MISMATCH);
237#endif
238#ifdef X509_V_ERR_AKID_ISSUER_SERIAL_MISMATCH
239 ERROR(X509_V_ERR_AKID_ISSUER_SERIAL_MISMATCH);
240#endif
241#ifdef X509_V_ERR_KEYUSAGE_NO_CERTSIGN
242 ERROR(X509_V_ERR_KEYUSAGE_NO_CERTSIGN);
243#endif
244
245#ifdef X509_V_ERR_UNABLE_TO_GET_CRL_ISSUER
246 ERROR(X509_V_ERR_UNABLE_TO_GET_CRL_ISSUER);
247#endif
248#ifdef X509_V_ERR_UNHANDLED_CRITICAL_EXTENSION
249 ERROR(X509_V_ERR_UNHANDLED_CRITICAL_EXTENSION);
250#endif
251#ifdef X509_V_ERR_KEYUSAGE_NO_CRL_SIGN
252 ERROR(X509_V_ERR_KEYUSAGE_NO_CRL_SIGN);
253#endif
254#ifdef X509_V_ERR_UNHANDLED_CRITICAL_CRL_EXTENSION
255 ERROR(X509_V_ERR_UNHANDLED_CRITICAL_CRL_EXTENSION);
256#endif
257#ifdef X509_V_ERR_INVALID_NON_CA
258 ERROR(X509_V_ERR_INVALID_NON_CA);
259#endif
260#ifdef X509_V_ERR_PROXY_PATH_LENGTH_EXCEEDED
261 ERROR(X509_V_ERR_PROXY_PATH_LENGTH_EXCEEDED);
262#endif
263#ifdef X509_V_ERR_KEYUSAGE_NO_DIGITAL_SIGNATURE
264 ERROR(X509_V_ERR_KEYUSAGE_NO_DIGITAL_SIGNATURE);
265#endif
266#ifdef X509_V_ERR_PROXY_CERTIFICATES_NOT_ALLOWED
267 ERROR(X509_V_ERR_PROXY_CERTIFICATES_NOT_ALLOWED);
268#endif
269
270#ifdef X509_V_ERR_INVALID_EXTENSION
271 ERROR(X509_V_ERR_INVALID_EXTENSION);
272#endif
273#ifdef X509_V_ERR_INVALID_POLICY_EXTENSION
274 ERROR(X509_V_ERR_INVALID_POLICY_EXTENSION);
275#endif
276#ifdef X509_V_ERR_NO_EXPLICIT_POLICY
277 ERROR(X509_V_ERR_NO_EXPLICIT_POLICY);
278#endif
279#ifdef X509_V_ERR_DIFFERENT_CRL_SCOPE
280 ERROR(X509_V_ERR_DIFFERENT_CRL_SCOPE);
281#endif
282#ifdef X509_V_ERR_UNSUPPORTED_EXTENSION_FEATURE
283 ERROR(X509_V_ERR_UNSUPPORTED_EXTENSION_FEATURE);
284#endif
285
286#ifdef X509_V_ERR_UNNESTED_RESOURCE
287 ERROR(X509_V_ERR_UNNESTED_RESOURCE);
288#endif
289
290#ifdef X509_V_ERR_PERMITTED_VIOLATION
291 ERROR(X509_V_ERR_PERMITTED_VIOLATION);
292#endif
293#ifdef X509_V_ERR_EXCLUDED_VIOLATION
294 ERROR(X509_V_ERR_EXCLUDED_VIOLATION);
295#endif
296#ifdef X509_V_ERR_SUBTREE_MINMAX
297 ERROR(X509_V_ERR_SUBTREE_MINMAX);
298#endif
299#ifdef X509_V_ERR_UNSUPPORTED_CONSTRAINT_TYPE
300 ERROR(X509_V_ERR_UNSUPPORTED_CONSTRAINT_TYPE);
301#endif
302#ifdef X509_V_ERR_UNSUPPORTED_CONSTRAINT_SYNTAX
303 ERROR(X509_V_ERR_UNSUPPORTED_CONSTRAINT_SYNTAX);
304#endif
305#ifdef X509_V_ERR_UNSUPPORTED_NAME_SYNTAX
306 ERROR(X509_V_ERR_UNSUPPORTED_NAME_SYNTAX);
307#endif
308#ifdef X509_V_ERR_CRL_PATH_VALIDATION_ERROR
309 ERROR(X509_V_ERR_CRL_PATH_VALIDATION_ERROR);
310#endif
311
312 /* The application is not happy */
313#ifdef X509_V_ERR_APPLICATION_VERIFICATION
314 ERROR(X509_V_ERR_APPLICATION_VERIFICATION);
315#endif
316 }
317#undef ERROR
318}
319
320static void
119_openssl_print_errors(void *conn, int type) 321_openssl_print_errors(void *conn, int type)
120{ 322{
121 char buf[1024]; 323 char buf[1024];
@@ -152,13 +354,57 @@ _openssl_name_verify(const char *name, const char *svrname)
152 EINA_SAFETY_ON_TRUE_RETURN_VAL(!s, EINA_FALSE); 354 EINA_SAFETY_ON_TRUE_RETURN_VAL(!s, EINA_FALSE);
153 /* same as above for the stored name */ 355 /* same as above for the stored name */
154 EINA_SAFETY_ON_TRUE_RETURN_VAL(!strchr(s + 1, '.'), EINA_FALSE); 356 EINA_SAFETY_ON_TRUE_RETURN_VAL(!strchr(s + 1, '.'), EINA_FALSE);
155 EINA_SAFETY_ON_TRUE_RETURN_VAL(strcasecmp(s, name + 1), EINA_FALSE); 357 if (strcasecmp(s, name + 1))
358 {
359 ERR("%s != %s", s, name + 1);
360 return EINA_FALSE;
361 }
156 } 362 }
157 else 363 else
158 EINA_SAFETY_ON_TRUE_RETURN_VAL(strcasecmp(name, svrname), EINA_FALSE); 364 if (strcasecmp(name, svrname))
365 {
366 ERR("%s != %s", name, svrname);
367 return EINA_FALSE;
368 }
159 return EINA_TRUE; 369 return EINA_TRUE;
160} 370}
161 371
372static void
373_openssl_print_session(SSL *ssl)
374{
375 /* print session info into DBG */
376 SSL_SESSION *s;
377 STACK_OF(X509) *sk;
378 BIO *b;
379 char log[4096], *p;
380 int x;
381
382 if (!eina_log_domain_level_check(_ecore_con_log_dom, EINA_LOG_LEVEL_DBG)) return;
383
384 memset(log, 0, sizeof(log));
385 b = BIO_new(BIO_s_mem());
386 sk = SSL_get_peer_cert_chain(ssl);
387 if (sk)
388 {
389 DBG("CERTIFICATES:");
390 for (x = 0; x < sk_X509_num(sk); x++)
391 {
392 p = X509_NAME_oneline(X509_get_subject_name(sk_X509_value(sk, x)), log, sizeof(log));
393 DBG("%2d s:%s", x, p);
394 p = X509_NAME_oneline(X509_get_issuer_name(sk_X509_value(sk, x)), log, sizeof(log));
395 DBG(" i:%s", p);
396 PEM_write_X509(stderr, sk_X509_value(sk, x));
397 }
398 }
399 s = SSL_get_session(ssl);
400 SSL_SESSION_print(b, s);
401 fprintf(stderr, "\n");
402 while (BIO_read(b, log, sizeof(log)) > 0)
403 fprintf(stderr, "%s", log);
404
405 BIO_free(b);
406}
407
162#endif 408#endif
163 409
164#define SSL_ERROR_CHECK_GOTO_ERROR(X) \ 410#define SSL_ERROR_CHECK_GOTO_ERROR(X) \
@@ -356,6 +602,51 @@ ecore_con_ssl_server_verify_basic(Ecore_Con_Server *svr)
356} 602}
357 603
358/** 604/**
605 * @brief Set the hostname to verify against in certificate verification
606 *
607 * Sometimes the certificate hostname will not match the hostname that you are
608 * connecting to, and will instead match a different name. An example of this is
609 * that if you connect to talk.google.com to use Google Talk, you receive Google's
610 * certificate for gmail.com. This certificate should be trusted, and so you must call
611 * this function with "gmail.com" as @p name.
612 * See RFC2818 for more details.
613 * @param svr The server object
614 * @param name The hostname to verify against
615 * @since 1.2
616 */
617EAPI void
618ecore_con_ssl_server_verify_name_set(Ecore_Con_Server *svr, const char *name)
619{
620 if (!ECORE_MAGIC_CHECK(svr, ECORE_MAGIC_CON_SERVER))
621 {
622 ECORE_MAGIC_FAIL(svr, ECORE_MAGIC_CON_SERVER, __func__);
623 return;
624 }
625 eina_stringshare_replace(&svr->verify_name, name);
626}
627
628/**
629 * @brief Get the hostname to verify against in certificate verification
630 *
631 * This function returns the name which will be used to validate the SSL certificate
632 * common name (CN) or alt name (subjectAltName). It will default to the @p name
633 * param in ecore_con_server_connect(), but can be changed with ecore_con_ssl_server_verify_name_set().
634 * @param svr The server object
635 * @return The hostname which will be used
636 * @since 1.2
637 */
638EAPI const char *
639ecore_con_ssl_server_verify_name_get(Ecore_Con_Server *svr)
640{
641 if (!ECORE_MAGIC_CHECK(svr, ECORE_MAGIC_CON_SERVER))
642 {
643 ECORE_MAGIC_FAIL(svr, ECORE_MAGIC_CON_SERVER, __func__);
644 return NULL;
645 }
646 return svr->verify_name ?: svr->name;
647}
648
649/**
359 * @brief Add an ssl certificate for use in ecore_con functions. 650 * @brief Add an ssl certificate for use in ecore_con functions.
360 * 651 *
361 * Use this function to add a SSL PEM certificate. 652 * Use this function to add a SSL PEM certificate.
@@ -375,6 +666,14 @@ ecore_con_ssl_server_cert_add(Ecore_Con_Server *svr,
375 return EINA_FALSE; 666 return EINA_FALSE;
376 } 667 }
377 668
669 if (!svr->ssl_prepared)
670 {
671 svr->use_cert = EINA_TRUE;
672 svr->type |= ECORE_CON_USE_MIXED | ECORE_CON_LOAD_CERT;
673 if (ecore_con_ssl_server_prepare(svr, svr->type & ECORE_CON_SSL))
674 return EINA_FALSE;
675 }
676
378 return SSL_SUFFIX(_ecore_con_ssl_server_cert_add) (svr, cert); 677 return SSL_SUFFIX(_ecore_con_ssl_server_cert_add) (svr, cert);
379} 678}
380 679
@@ -386,6 +685,7 @@ ecore_con_ssl_server_cert_add(Ecore_Con_Server *svr,
386 * If there is an error loading the CAs, an error will automatically be logged. 685 * If there is an error loading the CAs, an error will automatically be logged.
387 * @param ca_file The path to the CA file. 686 * @param ca_file The path to the CA file.
388 * @return EINA_FALSE if the file cannot be loaded, otherwise EINA_TRUE. 687 * @return EINA_FALSE if the file cannot be loaded, otherwise EINA_TRUE.
688 * @note since 1.2, this function can load directores
389 */ 689 */
390 690
391EAPI Eina_Bool 691EAPI Eina_Bool
@@ -398,6 +698,14 @@ ecore_con_ssl_server_cafile_add(Ecore_Con_Server *svr,
398 return EINA_FALSE; 698 return EINA_FALSE;
399 } 699 }
400 700
701 if (!svr->ssl_prepared)
702 {
703 svr->use_cert = EINA_TRUE;
704 svr->type |= ECORE_CON_USE_MIXED | ECORE_CON_LOAD_CERT;
705 if (ecore_con_ssl_server_prepare(svr, svr->type & ECORE_CON_SSL))
706 return EINA_FALSE;
707 }
708
401 return SSL_SUFFIX(_ecore_con_ssl_server_cafile_add) (svr, ca_file); 709 return SSL_SUFFIX(_ecore_con_ssl_server_cafile_add) (svr, ca_file);
402} 710}
403 711
@@ -422,6 +730,14 @@ ecore_con_ssl_server_privkey_add(Ecore_Con_Server *svr,
422 return EINA_FALSE; 730 return EINA_FALSE;
423 } 731 }
424 732
733 if (!svr->ssl_prepared)
734 {
735 svr->use_cert = EINA_TRUE;
736 svr->type |= ECORE_CON_USE_MIXED | ECORE_CON_LOAD_CERT;
737 if (ecore_con_ssl_server_prepare(svr, svr->type & ECORE_CON_SSL))
738 return EINA_FALSE;
739 }
740
425 return SSL_SUFFIX(_ecore_con_ssl_server_privkey_add) (svr, key_file); 741 return SSL_SUFFIX(_ecore_con_ssl_server_privkey_add) (svr, key_file);
426} 742}
427 743
@@ -446,6 +762,14 @@ ecore_con_ssl_server_crl_add(Ecore_Con_Server *svr,
446 return EINA_FALSE; 762 return EINA_FALSE;
447 } 763 }
448 764
765 if (!svr->ssl_prepared)
766 {
767 svr->use_cert = EINA_TRUE;
768 svr->type |= ECORE_CON_USE_MIXED | ECORE_CON_LOAD_CERT;
769 if (ecore_con_ssl_server_prepare(svr, svr->type & ECORE_CON_SSL))
770 return EINA_FALSE;
771 }
772
449 return SSL_SUFFIX(_ecore_con_ssl_server_crl_add) (svr, crl_file); 773 return SSL_SUFFIX(_ecore_con_ssl_server_crl_add) (svr, crl_file);
450} 774}
451 775
@@ -480,7 +804,8 @@ ecore_con_ssl_server_upgrade(Ecore_Con_Server *svr, Ecore_Con_Type ssl_type)
480 if (ecore_con_ssl_server_prepare(svr, ssl_type)) 804 if (ecore_con_ssl_server_prepare(svr, ssl_type))
481 return EINA_FALSE; 805 return EINA_FALSE;
482 } 806 }
483 svr->type |= ssl_type; 807 if (!svr->use_cert)
808 svr->type |= ssl_type;
484 svr->upgrade = EINA_TRUE; 809 svr->upgrade = EINA_TRUE;
485 svr->handshaking = EINA_TRUE; 810 svr->handshaking = EINA_TRUE;
486 svr->ssl_state = ECORE_CON_SSL_STATE_INIT; 811 svr->ssl_state = ECORE_CON_SSL_STATE_INIT;
@@ -494,7 +819,7 @@ ecore_con_ssl_server_upgrade(Ecore_Con_Server *svr, Ecore_Con_Type ssl_type)
494 * Once the upgrade has been completed, an ECORE_CON_EVENT_CLIENT_UPGRADE event will be emitted. 819 * Once the upgrade has been completed, an ECORE_CON_EVENT_CLIENT_UPGRADE event will be emitted.
495 * The connection should be treated as disconnected until the next event. 820 * The connection should be treated as disconnected until the next event.
496 * @param cl The client object 821 * @param cl The client object
497 * @param compl_type The SSL connection type (ONLY). 822 * @param ssl_type The SSL connection type (ONLY).
498 * @return EINA_FALSE if the connection cannot be upgraded, otherwise EINA_TRUE. 823 * @return EINA_FALSE if the connection cannot be upgraded, otherwise EINA_TRUE.
499 * @warning Setting a wrong value for @p compl_type WILL mess up your program. 824 * @warning Setting a wrong value for @p compl_type WILL mess up your program.
500 * @since 1.1 825 * @since 1.1
@@ -517,7 +842,8 @@ ecore_con_ssl_client_upgrade(Ecore_Con_Client *cl, Ecore_Con_Type ssl_type)
517 if (ecore_con_ssl_server_prepare(cl->host_server, ssl_type)) 842 if (ecore_con_ssl_server_prepare(cl->host_server, ssl_type))
518 return EINA_FALSE; 843 return EINA_FALSE;
519 } 844 }
520 cl->host_server->type |= ssl_type; 845 if (!cl->host_server->use_cert)
846 cl->host_server->type |= ssl_type;
521 cl->upgrade = EINA_TRUE; 847 cl->upgrade = EINA_TRUE;
522 cl->host_server->upgrade = EINA_TRUE; 848 cl->host_server->upgrade = EINA_TRUE;
523 cl->handshaking = EINA_TRUE; 849 cl->handshaking = EINA_TRUE;
@@ -546,8 +872,11 @@ _ecore_con_ssl_init_gnutls(void)
546 return ECORE_CON_SSL_ERROR_INIT_FAILED; 872 return ECORE_CON_SSL_ERROR_INIT_FAILED;
547 873
548#ifdef ISCOMFITOR 874#ifdef ISCOMFITOR
549 gnutls_global_set_log_level(9); 875 if (eina_log_domain_level_check(_ecore_con_log_dom, EINA_LOG_LEVEL_DBG))
550 gnutls_global_set_log_function(_gnutls_log_func); 876 {
877 gnutls_global_set_log_level(9);
878 gnutls_global_set_log_function(_gnutls_log_func);
879 }
551#endif 880#endif
552 return ECORE_CON_SSL_ERROR_NONE; 881 return ECORE_CON_SSL_ERROR_NONE;
553} 882}
@@ -728,10 +1057,12 @@ _ecore_con_ssl_server_init_gnutls(Ecore_Con_Server *svr)
728 SSL_ERROR_CHECK_GOTO_ERROR(!(cert_list = gnutls_certificate_get_peers(svr->session, &cert_list_size))); 1057 SSL_ERROR_CHECK_GOTO_ERROR(!(cert_list = gnutls_certificate_get_peers(svr->session, &cert_list_size)));
729 SSL_ERROR_CHECK_GOTO_ERROR(!cert_list_size); 1058 SSL_ERROR_CHECK_GOTO_ERROR(!cert_list_size);
730 1059
1060 _gnutls_print_session(cert_list, cert_list_size);
1061
731 SSL_ERROR_CHECK_GOTO_ERROR(gnutls_x509_crt_init(&cert)); 1062 SSL_ERROR_CHECK_GOTO_ERROR(gnutls_x509_crt_init(&cert));
732 SSL_ERROR_CHECK_GOTO_ERROR(gnutls_x509_crt_import(cert, &cert_list[0], GNUTLS_X509_FMT_DER)); 1063 SSL_ERROR_CHECK_GOTO_ERROR(gnutls_x509_crt_import(cert, &cert_list[0], GNUTLS_X509_FMT_DER));
733 1064
734 SSL_ERROR_CHECK_GOTO_ERROR(!gnutls_x509_crt_check_hostname(cert, svr->name)); 1065 SSL_ERROR_CHECK_GOTO_ERROR(!gnutls_x509_crt_check_hostname(cert, svr->verify_name ?: svr->name));
735 gnutls_x509_crt_deinit(cert); 1066 gnutls_x509_crt_deinit(cert);
736 DBG("SSL certificate verification succeeded!"); 1067 DBG("SSL certificate verification succeeded!");
737 return ECORE_CON_SSL_ERROR_NONE; 1068 return ECORE_CON_SSL_ERROR_NONE;
@@ -755,10 +1086,32 @@ static Eina_Bool
755_ecore_con_ssl_server_cafile_add_gnutls(Ecore_Con_Server *svr, 1086_ecore_con_ssl_server_cafile_add_gnutls(Ecore_Con_Server *svr,
756 const char *ca_file) 1087 const char *ca_file)
757{ 1088{
758 SSL_ERROR_CHECK_GOTO_ERROR(gnutls_certificate_set_x509_trust_file(svr->cert, ca_file, 1089 struct stat st;
759 GNUTLS_X509_FMT_PEM) < 1); 1090 Eina_Iterator *it;
1091 const char *file;
1092 Eina_Bool error = EINA_FALSE;
760 1093
761 return EINA_TRUE; 1094 if (stat(ca_file, &st)) return EINA_FALSE;
1095 if (S_ISDIR(st.st_mode))
1096 {
1097 it = eina_file_ls(ca_file);
1098 SSL_ERROR_CHECK_GOTO_ERROR(!it);
1099 EINA_ITERATOR_FOREACH(it, file)
1100 {
1101 if (!error)
1102 {
1103 if (gnutls_certificate_set_x509_trust_file(svr->cert, file, GNUTLS_X509_FMT_PEM) < 1)
1104 error++;
1105 }
1106 eina_stringshare_del(file);
1107 }
1108 eina_iterator_free(it);
1109 }
1110 else
1111 SSL_ERROR_CHECK_GOTO_ERROR(gnutls_certificate_set_x509_trust_file(svr->cert, ca_file,
1112 GNUTLS_X509_FMT_PEM) < 1);
1113
1114 return !error;
762error: 1115error:
763 ERR("Could not load CA file!"); 1116 ERR("Could not load CA file!");
764 return EINA_FALSE; 1117 return EINA_FALSE;
@@ -1026,6 +1379,7 @@ _ecore_con_ssl_client_init_gnutls(Ecore_Con_Client *cl)
1026 SSL_ERROR_CHECK_GOTO_ERROR(!(cert_list = gnutls_certificate_get_peers(cl->session, &cert_list_size))); 1379 SSL_ERROR_CHECK_GOTO_ERROR(!(cert_list = gnutls_certificate_get_peers(cl->session, &cert_list_size)));
1027 SSL_ERROR_CHECK_GOTO_ERROR(!cert_list_size); 1380 SSL_ERROR_CHECK_GOTO_ERROR(!cert_list_size);
1028 1381
1382 _gnutls_print_session(cert_list, cert_list_size);
1029/* 1383/*
1030 gnutls_x509_crt_t cert = NULL; 1384 gnutls_x509_crt_t cert = NULL;
1031 SSL_ERROR_CHECK_GOTO_ERROR(gnutls_x509_crt_init(&cert)); 1385 SSL_ERROR_CHECK_GOTO_ERROR(gnutls_x509_crt_init(&cert));
@@ -1282,23 +1636,7 @@ _ecore_con_ssl_server_init_openssl(Ecore_Con_Server *svr)
1282 break; 1636 break;
1283 } 1637 }
1284 1638
1285#ifdef ISCOMFITOR 1639 _openssl_print_session(svr->ssl);
1286 {
1287 /* print session info into DBG */
1288 SSL_SESSION *s;
1289 BIO *b;
1290 char log[4096];
1291
1292 memset(log, 0, sizeof(log));
1293 s = SSL_get_session(svr->ssl);
1294 b = BIO_new(BIO_s_mem());
1295 SSL_SESSION_print(b, s);
1296 while (BIO_read(b, log, sizeof(log)) > 0)
1297 DBG("%s", log);
1298
1299 BIO_free(b);
1300 }
1301#endif
1302 if ((!svr->verify) && (!svr->verify_basic)) 1640 if ((!svr->verify) && (!svr->verify_basic))
1303 /* not verifying certificates, so we're done! */ 1641 /* not verifying certificates, so we're done! */
1304 return ECORE_CON_SSL_ERROR_NONE; 1642 return ECORE_CON_SSL_ERROR_NONE;
@@ -1310,17 +1648,29 @@ _ecore_con_ssl_server_init_openssl(Ecore_Con_Server *svr)
1310 cert = SSL_get_peer_certificate(svr->ssl); 1648 cert = SSL_get_peer_certificate(svr->ssl);
1311 if (cert) 1649 if (cert)
1312 { 1650 {
1313 char buf[256] = {0}; 1651 char *c;
1652 int clen;
1653 int name = 0;
1654
1314 if (svr->verify) 1655 if (svr->verify)
1315 SSL_ERROR_CHECK_GOTO_ERROR(SSL_get_verify_result(svr->ssl));
1316 X509_NAME_get_text_by_NID(X509_get_subject_name(cert), NID_subject_alt_name, buf, sizeof(buf));
1317 if (buf[0])
1318 SSL_ERROR_CHECK_GOTO_ERROR(!_openssl_name_verify(buf, svr->name));
1319 else
1320 { 1656 {
1321 X509_NAME_get_text_by_NID(X509_get_subject_name(cert), NID_commonName, buf, sizeof(buf)); 1657 int err;
1322 SSL_ERROR_CHECK_GOTO_ERROR(!_openssl_name_verify(buf, svr->name)); 1658
1659 err = SSL_get_verify_result(svr->ssl);
1660 _openssl_print_verify_error(err);
1661 SSL_ERROR_CHECK_GOTO_ERROR(err);
1323 } 1662 }
1663 clen = X509_NAME_get_text_by_NID(X509_get_subject_name(cert), NID_subject_alt_name, NULL, 0);
1664 if (clen > 0)
1665 name = NID_subject_alt_name;
1666 else
1667 clen = X509_NAME_get_text_by_NID(X509_get_subject_name(cert), NID_commonName, NULL, 0);
1668 SSL_ERROR_CHECK_GOTO_ERROR(clen < 1);
1669 if (!name) name = NID_commonName;
1670 c = alloca(++clen);
1671 X509_NAME_get_text_by_NID(X509_get_subject_name(cert), name, c, clen);
1672 INF("CERT NAME: %s\n", c);
1673 SSL_ERROR_CHECK_GOTO_ERROR(!_openssl_name_verify(c, svr->verify_name ?: svr->name));
1324 } 1674 }
1325 } 1675 }
1326 1676
@@ -1338,7 +1688,13 @@ static Eina_Bool
1338_ecore_con_ssl_server_cafile_add_openssl(Ecore_Con_Server *svr, 1688_ecore_con_ssl_server_cafile_add_openssl(Ecore_Con_Server *svr,
1339 const char *ca_file) 1689 const char *ca_file)
1340{ 1690{
1341 SSL_ERROR_CHECK_GOTO_ERROR(!SSL_CTX_load_verify_locations(svr->ssl_ctx, ca_file, NULL)); 1691 struct stat st;
1692
1693 if (stat(ca_file, &st)) return EINA_FALSE;
1694 if (S_ISDIR(st.st_mode))
1695 SSL_ERROR_CHECK_GOTO_ERROR(!SSL_CTX_load_verify_locations(svr->ssl_ctx, NULL, ca_file));
1696 else
1697 SSL_ERROR_CHECK_GOTO_ERROR(!SSL_CTX_load_verify_locations(svr->ssl_ctx, ca_file, NULL));
1342 return EINA_TRUE; 1698 return EINA_TRUE;
1343 1699
1344error: 1700error:
@@ -1543,31 +1899,20 @@ _ecore_con_ssl_client_init_openssl(Ecore_Con_Client *cl)
1543 break; 1899 break;
1544 } 1900 }
1545 1901
1546#ifdef ISCOMFITOR 1902 _openssl_print_session(cl->ssl);
1547 {
1548 /* print session info into DBG */
1549 SSL_SESSION *s;
1550 BIO *b;
1551 char log[4096];
1552
1553 memset(log, 0, sizeof(log));
1554 s = SSL_get_session(cl->ssl);
1555 b = BIO_new(BIO_s_mem());
1556 SSL_SESSION_print(b, s);
1557 while (BIO_read(b, log, sizeof(log)) > 0)
1558 DBG("%s", log);
1559
1560 BIO_free(b);
1561 }
1562#endif
1563
1564 if (!cl->host_server->verify) 1903 if (!cl->host_server->verify)
1565 /* not verifying certificates, so we're done! */ 1904 /* not verifying certificates, so we're done! */
1566 return ECORE_CON_SSL_ERROR_NONE; 1905 return ECORE_CON_SSL_ERROR_NONE;
1567 SSL_set_verify(cl->ssl, SSL_VERIFY_PEER, NULL); 1906 SSL_set_verify(cl->ssl, SSL_VERIFY_PEER, NULL);
1568 /* use CRL/CA lists to verify */ 1907 /* use CRL/CA lists to verify */
1569 if (SSL_get_peer_certificate(cl->ssl)) 1908 if (SSL_get_peer_certificate(cl->ssl))
1570 SSL_ERROR_CHECK_GOTO_ERROR(SSL_get_verify_result(cl->ssl)); 1909 {
1910 int err;
1911
1912 err = SSL_get_verify_result(cl->ssl);
1913 _openssl_print_verify_error(err);
1914 SSL_ERROR_CHECK_GOTO_ERROR(err);
1915 }
1571 1916
1572 return ECORE_CON_SSL_ERROR_NONE; 1917 return ECORE_CON_SSL_ERROR_NONE;
1573 1918
@@ -1679,12 +2024,6 @@ _ecore_con_ssl_server_prepare_none(Ecore_Con_Server *svr __UNUSED__,
1679} 2024}
1680 2025
1681static Ecore_Con_Ssl_Error 2026static Ecore_Con_Ssl_Error
1682_ecore_con_ssl_server_upgrade_none(Ecore_Con_Server *svr __UNUSED__)
1683{
1684 return ECORE_CON_SSL_ERROR_NOT_SUPPORTED;
1685}
1686
1687static Ecore_Con_Ssl_Error
1688_ecore_con_ssl_server_init_none(Ecore_Con_Server *svr __UNUSED__) 2027_ecore_con_ssl_server_init_none(Ecore_Con_Server *svr __UNUSED__)
1689{ 2028{
1690 return ECORE_CON_SSL_ERROR_NOT_SUPPORTED; 2029 return ECORE_CON_SSL_ERROR_NOT_SUPPORTED;
@@ -1741,12 +2080,6 @@ _ecore_con_ssl_server_write_none(Ecore_Con_Server *svr __UNUSED__,
1741} 2080}
1742 2081
1743static Ecore_Con_Ssl_Error 2082static Ecore_Con_Ssl_Error
1744_ecore_con_ssl_client_upgrade_none(Ecore_Con_Client *cl __UNUSED__)
1745{
1746 return ECORE_CON_SSL_ERROR_NOT_SUPPORTED;
1747}
1748
1749static Ecore_Con_Ssl_Error
1750_ecore_con_ssl_client_init_none(Ecore_Con_Client *cl __UNUSED__) 2083_ecore_con_ssl_client_init_none(Ecore_Con_Client *cl __UNUSED__)
1751{ 2084{
1752 return ECORE_CON_SSL_ERROR_NOT_SUPPORTED; 2085 return ECORE_CON_SSL_ERROR_NOT_SUPPORTED;
diff --git a/libraries/ecore/src/lib/ecore_con/ecore_con_url.c b/libraries/ecore/src/lib/ecore_con/ecore_con_url.c
index cfcf095..709b554 100644
--- a/libraries/ecore/src/lib/ecore_con/ecore_con_url.c
+++ b/libraries/ecore/src/lib/ecore_con/ecore_con_url.c
@@ -35,8 +35,6 @@ int ECORE_CON_EVENT_URL_COMPLETE = 0;
35int ECORE_CON_EVENT_URL_PROGRESS = 0; 35int ECORE_CON_EVENT_URL_PROGRESS = 0;
36 36
37#ifdef HAVE_CURL 37#ifdef HAVE_CURL
38static Eina_Bool _ecore_con_url_fd_handler(void *data,
39 Ecore_Fd_Handler *fd_handler);
40static Eina_Bool _ecore_con_url_perform(Ecore_Con_Url *url_con); 38static Eina_Bool _ecore_con_url_perform(Ecore_Con_Url *url_con);
41static size_t _ecore_con_url_header_cb(void *ptr, 39static size_t _ecore_con_url_header_cb(void *ptr,
42 size_t size, 40 size_t size,
@@ -57,50 +55,18 @@ static size_t _ecore_con_url_read_cb(void *ptr,
57 void *stream); 55 void *stream);
58static void _ecore_con_event_url_free(void *data __UNUSED__, 56static void _ecore_con_event_url_free(void *data __UNUSED__,
59 void *ev); 57 void *ev);
60static int _ecore_con_url_process_completed_jobs(
61 Ecore_Con_Url *url_con_to_match);
62static Eina_Bool _ecore_con_url_idler_handler(void *data); 58static Eina_Bool _ecore_con_url_idler_handler(void *data);
59static Eina_Bool _ecore_con_url_fd_handler(void *data __UNUSED__, Ecore_Fd_Handler *fd_handler __UNUSED__);
60static Eina_Bool _ecore_con_url_timeout_cb(void *data);
63 61
64static Ecore_Idler *_fd_idler_handler = NULL;
65static Eina_List *_url_con_list = NULL; 62static Eina_List *_url_con_list = NULL;
63static Eina_List *_fd_hd_list = NULL;
66static CURLM *_curlm = NULL; 64static CURLM *_curlm = NULL;
67static fd_set _current_fd_set; 65static fd_set _current_fd_set;
68static int _init_count = 0; 66static int _init_count = 0;
69static Ecore_Timer *_curl_timeout = NULL; 67static Ecore_Timer *_curl_timeout = NULL;
70static Eina_Bool pipelining = EINA_FALSE; 68static Eina_Bool pipelining = EINA_FALSE;
71 69
72typedef struct _Ecore_Con_Url_Event Ecore_Con_Url_Event;
73struct _Ecore_Con_Url_Event
74{
75 int type;
76 void *ev;
77};
78
79static Eina_Bool
80_url_complete_idler_cb(void *data)
81{
82 Ecore_Con_Url_Event *lev;
83
84 lev = data;
85 ecore_event_add(lev->type, lev->ev, _ecore_con_event_url_free, NULL);
86 free(lev);
87
88 return ECORE_CALLBACK_CANCEL;
89}
90
91static void
92_url_complete_push_event(int type,
93 void *ev)
94{
95 Ecore_Con_Url_Event *lev;
96
97 lev = malloc(sizeof(Ecore_Con_Url_Event));
98 lev->type = type;
99 lev->ev = ev;
100
101 ecore_idler_add(_url_complete_idler_cb, lev);
102}
103
104#endif 70#endif
105 71
106/** 72/**
@@ -113,51 +79,30 @@ EAPI int
113ecore_con_url_init(void) 79ecore_con_url_init(void)
114{ 80{
115#ifdef HAVE_CURL 81#ifdef HAVE_CURL
116 _init_count++; 82 if (++_init_count > 1) return _init_count;
117
118 if (_init_count > 1)
119 return _init_count;
120 83
121 if (!ECORE_CON_EVENT_URL_DATA) 84 if (!ECORE_CON_EVENT_URL_DATA) ECORE_CON_EVENT_URL_DATA = ecore_event_type_new();
122 { 85 if (!ECORE_CON_EVENT_URL_COMPLETE) ECORE_CON_EVENT_URL_COMPLETE = ecore_event_type_new();
123 ECORE_CON_EVENT_URL_DATA = ecore_event_type_new(); 86 if (!ECORE_CON_EVENT_URL_PROGRESS) ECORE_CON_EVENT_URL_PROGRESS = ecore_event_type_new();
124 ECORE_CON_EVENT_URL_COMPLETE = ecore_event_type_new();
125 ECORE_CON_EVENT_URL_PROGRESS = ecore_event_type_new();
126 }
127 87
128 if (!_curlm) 88 if (!_curlm)
129 { 89 {
130 long ms; 90 long ms;
131 91
132 FD_ZERO(&_current_fd_set); 92 // curl_global_init() is not thread safe!
133 if (curl_global_init(CURL_GLOBAL_ALL)) 93 if (curl_global_init(CURL_GLOBAL_ALL)) return --_init_count;
134 {
135 while (_url_con_list)
136 ecore_con_url_free(eina_list_data_get(_url_con_list));
137 return 0;
138 }
139 94
140 _curlm = curl_multi_init(); 95 _curlm = curl_multi_init();
141 if (!_curlm) 96 if (!_curlm) return --_init_count;
142 {
143 while (_url_con_list)
144 ecore_con_url_free(eina_list_data_get(_url_con_list));
145
146 _init_count--;
147 return 0;
148 }
149 97
150 curl_multi_timeout(_curlm, &ms); 98 curl_multi_timeout(_curlm, &ms);
151 if (ms <= 0) 99 if (ms <= 0) ms = 100;
152 ms = 1000;
153 100
154 _curl_timeout = 101 _curl_timeout = ecore_timer_add((double)ms / 1000, _ecore_con_url_idler_handler, (void *)0xACE);
155 ecore_timer_add((double)ms / 1000, _ecore_con_url_idler_handler,
156 (void *)0xACE);
157 ecore_timer_freeze(_curl_timeout); 102 ecore_timer_freeze(_curl_timeout);
158 } 103 }
159 104
160 return 1; 105 return _init_count;
161#else 106#else
162 return 0; 107 return 0;
163#endif 108#endif
@@ -167,34 +112,31 @@ EAPI int
167ecore_con_url_shutdown(void) 112ecore_con_url_shutdown(void)
168{ 113{
169#ifdef HAVE_CURL 114#ifdef HAVE_CURL
170 if (!_init_count) 115 if (_init_count == 0) return 0;
171 return 0;
172
173 _init_count--;
174 116
175 if (_init_count != 0) 117 if (--_init_count == 0)
176 return _init_count; 118 {
177 119 Ecore_Con_Url *con_url;
178 if (_fd_idler_handler) 120 Ecore_Fd_Handler *fd_handler;
179 ecore_idler_del(_fd_idler_handler);
180
181 _fd_idler_handler = NULL;
182
183 if (_curl_timeout)
184 ecore_timer_del(_curl_timeout);
185
186 _curl_timeout = NULL;
187 121
188 while (_url_con_list) 122 if (_curl_timeout)
189 ecore_con_url_free(eina_list_data_get(_url_con_list)); 123 {
124 ecore_timer_del(_curl_timeout);
125 _curl_timeout = NULL;
126 }
190 127
191 if (_curlm) 128 FD_ZERO(&_current_fd_set);
192 { 129 EINA_LIST_FREE(_url_con_list, con_url) ecore_con_url_free(con_url);
193 curl_multi_cleanup(_curlm); 130 EINA_LIST_FREE(_fd_hd_list, fd_handler) ecore_main_fd_handler_del(fd_handler);
194 _curlm = NULL;
195 }
196 131
197 curl_global_cleanup(); 132 if (_curlm)
133 {
134 curl_multi_cleanup(_curlm);
135 _curlm = NULL;
136 }
137 curl_global_cleanup();
138 }
139 return _init_count;
198#endif 140#endif
199 return 1; 141 return 1;
200} 142}
@@ -237,7 +179,6 @@ ecore_con_url_new(const char *url)
237 if (!url_con) 179 if (!url_con)
238 return NULL; 180 return NULL;
239 181
240 url_con->fd = -1;
241 url_con->write_fd = -1; 182 url_con->write_fd = -1;
242 183
243 url_con->curl_easy = curl_easy_init(); 184 url_con->curl_easy = curl_easy_init();
@@ -255,6 +196,24 @@ ecore_con_url_new(const char *url)
255 return NULL; 196 return NULL;
256 } 197 }
257 198
199 url_con->proxy_type = -1;
200 if (_ecore_con_proxy_global)
201 {
202 if (_ecore_con_proxy_global->ip)
203 {
204 char host[128];
205 if (_ecore_con_proxy_global->port > 0 &&
206 _ecore_con_proxy_global->port <= 65535)
207 snprintf(host, sizeof(host), "socks4://%s:%d",
208 _ecore_con_proxy_global->ip,
209 _ecore_con_proxy_global->port);
210 else
211 snprintf(host, sizeof(host), "socks4://%s",
212 _ecore_con_proxy_global->ip);
213 ecore_con_url_proxy_set(url_con, host);
214 }
215 }
216
258 ret = curl_easy_setopt(url_con->curl_easy, CURLOPT_ENCODING, "gzip,deflate"); 217 ret = curl_easy_setopt(url_con->curl_easy, CURLOPT_ENCODING, "gzip,deflate");
259 if (ret != CURLE_OK) 218 if (ret != CURLE_OK)
260 { 219 {
@@ -344,43 +303,30 @@ ecore_con_url_free(Ecore_Con_Url *url_con)
344 } 303 }
345 304
346 ECORE_MAGIC_SET(url_con, ECORE_MAGIC_NONE); 305 ECORE_MAGIC_SET(url_con, ECORE_MAGIC_NONE);
347 if(url_con->fd != -1)
348 {
349 FD_CLR(url_con->fd, &_current_fd_set);
350 if (url_con->fd_handler)
351 ecore_main_fd_handler_del(url_con->fd_handler);
352
353 url_con->fd = -1;
354 url_con->fd_handler = NULL;
355 }
356 306
357 if (url_con->curl_easy) 307 if (url_con->curl_easy)
358 { 308 {
359 // FIXME: For an unknown reason, progress continue to arrive after destruction
360 // this prevent any further call to the callback.
361 curl_easy_setopt(url_con->curl_easy, CURLOPT_PROGRESSFUNCTION, NULL); 309 curl_easy_setopt(url_con->curl_easy, CURLOPT_PROGRESSFUNCTION, NULL);
362 curl_easy_setopt(url_con->curl_easy, CURLOPT_NOPROGRESS, EINA_TRUE); 310 curl_easy_setopt(url_con->curl_easy, CURLOPT_NOPROGRESS, EINA_TRUE);
363 311
364 if (url_con->active) 312 if (eina_list_data_find(_url_con_list, url_con))
365 { 313 {
366 url_con->active = EINA_FALSE;
367
368 ret = curl_multi_remove_handle(_curlm, url_con->curl_easy); 314 ret = curl_multi_remove_handle(_curlm, url_con->curl_easy);
369 if (ret != CURLM_OK) 315 if (ret != CURLM_OK) ERR("curl_multi_remove_handle failed: %s", curl_multi_strerror(ret));
370 ERR("curl_multi_remove_handle failed: %s", 316 _url_con_list = eina_list_remove(_url_con_list, url_con);
371 curl_multi_strerror(ret));
372 } 317 }
373 318
374 curl_easy_cleanup(url_con->curl_easy); 319 curl_easy_cleanup(url_con->curl_easy);
375 } 320 }
321 if (url_con->timer) ecore_timer_del(url_con->timer);
376 322
377 _url_con_list = eina_list_remove(_url_con_list, url_con);
378 curl_slist_free_all(url_con->headers); 323 curl_slist_free_all(url_con->headers);
379 EINA_LIST_FREE(url_con->additional_headers, s) 324 EINA_LIST_FREE(url_con->additional_headers, s)
380 free(s); 325 free(s);
381 EINA_LIST_FREE(url_con->response_headers, s) 326 EINA_LIST_FREE(url_con->response_headers, s)
382 free(s); 327 free(s);
383 eina_stringshare_del(url_con->url); 328 eina_stringshare_del(url_con->url);
329 if (url_con->post_data) free(url_con->post_data);
384 free(url_con); 330 free(url_con);
385#else 331#else
386 return; 332 return;
@@ -415,8 +361,7 @@ ecore_con_url_url_set(Ecore_Con_Url *url_con,
415 return EINA_FALSE; 361 return EINA_FALSE;
416 } 362 }
417 363
418 if (url_con->active) 364 if (eina_list_data_find(_url_con_list, url_con)) return EINA_FALSE;
419 return EINA_FALSE;
420 365
421 eina_stringshare_replace(&url_con->url, url); 366 eina_stringshare_replace(&url_con->url, url);
422 367
@@ -660,7 +605,7 @@ _ecore_con_url_send(Ecore_Con_Url *url_con,
660#ifdef HAVE_CURL 605#ifdef HAVE_CURL
661 Eina_List *l; 606 Eina_List *l;
662 const char *s; 607 const char *s;
663 char tmp[256]; 608 char tmp[512];
664 609
665 if (!ECORE_MAGIC_CHECK(url_con, ECORE_MAGIC_CON_URL)) 610 if (!ECORE_MAGIC_CHECK(url_con, ECORE_MAGIC_CON_URL))
666 { 611 {
@@ -668,8 +613,7 @@ _ecore_con_url_send(Ecore_Con_Url *url_con,
668 return EINA_FALSE; 613 return EINA_FALSE;
669 } 614 }
670 615
671 if (url_con->active) 616 if (eina_list_data_find(_url_con_list, url_con)) return EINA_FALSE;
672 return EINA_FALSE;
673 617
674 if (!url_con->url) 618 if (!url_con->url)
675 return EINA_FALSE; 619 return EINA_FALSE;
@@ -684,16 +628,24 @@ _ecore_con_url_send(Ecore_Con_Url *url_con,
684 628
685 if ((mode == MODE_POST) || (mode == MODE_AUTO)) 629 if ((mode == MODE_POST) || (mode == MODE_AUTO))
686 { 630 {
687 if (data) 631 if (url_con->post_data) free(url_con->post_data);
632 url_con->post_data = NULL;
633 if ((data) && (length > 0))
688 { 634 {
689 if ((content_type) && (strlen(content_type) < 200)) 635 url_con->post_data = malloc(length);
636 if (url_con->post_data)
690 { 637 {
691 snprintf(tmp, sizeof(tmp), "Content-Type: %s", content_type); 638 memcpy(url_con->post_data, data, length);
692 url_con->headers = curl_slist_append(url_con->headers, tmp); 639 if ((content_type) && (strlen(content_type) < 450))
640 {
641 snprintf(tmp, sizeof(tmp), "Content-Type: %s", content_type);
642 url_con->headers = curl_slist_append(url_con->headers, tmp);
643 }
644 curl_easy_setopt(url_con->curl_easy, CURLOPT_POSTFIELDS, url_con->post_data);
645 curl_easy_setopt(url_con->curl_easy, CURLOPT_POSTFIELDSIZE, length);
693 } 646 }
694 647 else
695 curl_easy_setopt(url_con->curl_easy, CURLOPT_POSTFIELDS, data); 648 return EINA_FALSE;
696 curl_easy_setopt(url_con->curl_easy, CURLOPT_POSTFIELDSIZE, length);
697 } 649 }
698 else curl_easy_setopt(url_con->curl_easy, CURLOPT_POSTFIELDSIZE, 0); 650 else curl_easy_setopt(url_con->curl_easy, CURLOPT_POSTFIELDSIZE, 0);
699 if (mode == MODE_POST) 651 if (mode == MODE_POST)
@@ -787,8 +739,7 @@ ecore_con_url_ftp_upload(Ecore_Con_Url *url_con,
787 return EINA_FALSE; 739 return EINA_FALSE;
788 } 740 }
789 741
790 if (url_con->active) 742 if (eina_list_data_find(_url_con_list, url_con)) return EINA_FALSE;
791 return EINA_FALSE;
792 743
793 if (!url_con->url) 744 if (!url_con->url)
794 return EINA_FALSE; 745 return EINA_FALSE;
@@ -1021,8 +972,7 @@ ecore_con_url_verbose_set(Ecore_Con_Url *url_con,
1021 return; 972 return;
1022 } 973 }
1023 974
1024 if (url_con->active) 975 if (eina_list_data_find(_url_con_list, url_con)) return;
1025 return;
1026 976
1027 if (!url_con->url) 977 if (!url_con->url)
1028 return; 978 return;
@@ -1047,8 +997,7 @@ ecore_con_url_ftp_use_epsv_set(Ecore_Con_Url *url_con,
1047 return; 997 return;
1048 } 998 }
1049 999
1050 if (url_con->active) 1000 if (eina_list_data_find(_url_con_list, url_con)) return;
1051 return;
1052 1001
1053 if (!url_con->url) 1002 if (!url_con->url)
1054 return; 1003 return;
@@ -1085,8 +1034,7 @@ ecore_con_url_ssl_verify_peer_set(Ecore_Con_Url *url_con,
1085 return; 1034 return;
1086 } 1035 }
1087 1036
1088 if (url_con->active) 1037 if (eina_list_data_find(_url_con_list, url_con)) return;
1089 return;
1090 1038
1091 if (!url_con->url) 1039 if (!url_con->url)
1092 return; 1040 return;
@@ -1129,7 +1077,7 @@ ecore_con_url_ssl_ca_set(Ecore_Con_Url *url_con, const char *ca_path)
1129 return -1; 1077 return -1;
1130 } 1078 }
1131 1079
1132 if (url_con->active) return -1; 1080 if (eina_list_data_find(_url_con_list, url_con)) return -1;
1133 if (!url_con->url) return -1; 1081 if (!url_con->url) return -1;
1134 if (ca_path == NULL) 1082 if (ca_path == NULL)
1135 res = curl_easy_setopt(url_con->curl_easy, CURLOPT_SSL_VERIFYPEER, 0); 1083 res = curl_easy_setopt(url_con->curl_easy, CURLOPT_SSL_VERIFYPEER, 0);
@@ -1148,58 +1096,180 @@ ecore_con_url_ssl_ca_set(Ecore_Con_Url *url_con, const char *ca_path)
1148 return res; 1096 return res;
1149} 1097}
1150 1098
1151 1099EAPI Eina_Bool
1152/** 1100ecore_con_url_proxy_set(Ecore_Con_Url *url_con, const char *proxy)
1153 * @}
1154 */
1155
1156#ifdef HAVE_CURL
1157static int
1158_ecore_con_url_suspend_fd_handler(void)
1159{ 1101{
1160 Eina_List *l; 1102#ifdef HAVE_CURL
1161 Ecore_Con_Url *url_con; 1103 int res = -1;
1162 int deleted = 0; 1104 curl_version_info_data *vers = NULL;
1163 1105
1164 if (!_url_con_list) 1106 if (!ECORE_MAGIC_CHECK(url_con, ECORE_MAGIC_CON_URL))
1165 return 0; 1107 {
1108 ECORE_MAGIC_FAIL(url_con, ECORE_MAGIC_CON_URL, "ecore_con_url_proxy_set");
1109 return EINA_FALSE;
1110 }
1166 1111
1167 EINA_LIST_FOREACH(_url_con_list, l, url_con) 1112 if (eina_list_data_find(_url_con_list, url_con)) return EINA_FALSE;
1113 if (!url_con->url) return EINA_FALSE;
1114
1115 if (!proxy) res = curl_easy_setopt(url_con->curl_easy, CURLOPT_PROXY, "");
1116 else
1168 { 1117 {
1169 if (url_con->active && url_con->fd_handler) 1118 // before curl version 7.21.7, socks protocol:// prefix is not supported
1119 // (e.g. socks4://, socks4a://, socks5:// or socks5h://, etc.)
1120 vers = curl_version_info(CURLVERSION_NOW);
1121 if (vers->version_num < 0x71507)
1170 { 1122 {
1171 ecore_main_fd_handler_del(url_con->fd_handler); 1123 url_con->proxy_type = CURLPROXY_HTTP;
1172 url_con->fd_handler = NULL; 1124 if (strstr(proxy, "socks4")) url_con->proxy_type = CURLPROXY_SOCKS4;
1173 deleted++; 1125 else if (strstr(proxy, "socks4a")) url_con->proxy_type = CURLPROXY_SOCKS4A;
1126 else if (strstr(proxy, "socks5")) url_con->proxy_type = CURLPROXY_SOCKS5;
1127 else if (strstr(proxy, "socks5h")) url_con->proxy_type = CURLPROXY_SOCKS5_HOSTNAME;
1128 res = curl_easy_setopt(url_con->curl_easy, CURLOPT_PROXYTYPE, url_con->proxy_type);
1129 if (res != CURLE_OK)
1130 {
1131 ERR("curl proxy type setting failed: %s", curl_easy_strerror(res));
1132 url_con->proxy_type = -1;
1133 return EINA_FALSE;
1134 }
1174 } 1135 }
1136 res = curl_easy_setopt(url_con->curl_easy, CURLOPT_PROXY, proxy);
1137 }
1138 if (res != CURLE_OK)
1139 {
1140 ERR("curl proxy setting failed: %s", curl_easy_strerror(res));
1141 url_con->proxy_type = -1;
1142 return EINA_FALSE;
1143 }
1144 return EINA_TRUE;
1145#else
1146 return EINA_FALSE;
1147 (void)url_con;
1148 (void)proxy;
1149#endif
1150}
1151
1152EAPI void
1153ecore_con_url_timeout_set(Ecore_Con_Url *url_con, double timeout)
1154{
1155#ifdef HAVE_CURL
1156 if (!ECORE_MAGIC_CHECK(url_con, ECORE_MAGIC_CON_URL))
1157 {
1158 ECORE_MAGIC_FAIL(url_con, ECORE_MAGIC_CON_URL, "ecore_con_url_timeout_set");
1159 return;
1175 } 1160 }
1176 1161
1177 return deleted; 1162 if (eina_list_data_find(_url_con_list, url_con)) return;
1163 if (!url_con->url || timeout < 0) return;
1164 if (url_con->timer) ecore_timer_del(url_con->timer);
1165 url_con->timer = ecore_timer_add(timeout, _ecore_con_url_timeout_cb, url_con);
1166#else
1167 return;
1168 (void)url_con;
1169 (void)timeout;
1170#endif
1178} 1171}
1179 1172
1180static int 1173EAPI Eina_Bool
1181_ecore_con_url_restart_fd_handler(void) 1174ecore_con_url_proxy_username_set(Ecore_Con_Url *url_con, const char *username)
1182{ 1175{
1183 Eina_List *l; 1176#ifdef HAVE_CURL
1184 Ecore_Con_Url *url_con; 1177 int res = -1;
1185 int activated = 0; 1178 if (!ECORE_MAGIC_CHECK(url_con, ECORE_MAGIC_CON_URL))
1179 {
1180 ECORE_MAGIC_FAIL(url_con, ECORE_MAGIC_CON_URL, "ecore_con_url_proxy_username_set");
1181 return EINA_FALSE;
1182 }
1186 1183
1187 if (!_url_con_list) 1184 if (eina_list_data_find(_url_con_list, url_con)) return EINA_FALSE;
1188 return 0; 1185 if (!url_con->url) return EINA_FALSE;
1186 if (!username) return EINA_FALSE;
1187 if (url_con->proxy_type == CURLPROXY_SOCKS4 || url_con->proxy_type == CURLPROXY_SOCKS4A)
1188 {
1189 ERR("Proxy type should be socks5 and above");
1190 return EINA_FALSE;
1191 }
1189 1192
1190 EINA_LIST_FOREACH(_url_con_list, l, url_con) 1193 res = curl_easy_setopt(url_con->curl_easy, CURLOPT_USERNAME, username);
1194 if (res != CURLE_OK)
1191 { 1195 {
1192 if (!url_con->fd_handler && url_con->fd != -1) 1196 ERR("curl_easy_setopt() failed: %s", curl_easy_strerror(res));
1193 { 1197 return EINA_FALSE;
1194 url_con->fd_handler = 1198 }
1195 ecore_main_fd_handler_add(url_con->fd, url_con->flags, 1199 return EINA_TRUE;
1196 _ecore_con_url_fd_handler, 1200#else
1197 NULL, NULL, NULL); 1201 return EINA_FALSE;
1198 activated++; 1202 (void)url_con;
1199 } 1203 (void)username;
1204#endif
1205}
1206
1207EAPI Eina_Bool
1208ecore_con_url_proxy_password_set(Ecore_Con_Url *url_con, const char *password)
1209{
1210#ifdef HAVE_CURL
1211 int res = -1;
1212 if (!ECORE_MAGIC_CHECK(url_con, ECORE_MAGIC_CON_URL))
1213 {
1214 ECORE_MAGIC_FAIL(url_con, ECORE_MAGIC_CON_URL, "ecore_con_url_proxy_password_set");
1215 return EINA_FALSE;
1216 }
1217 if (eina_list_data_find(_url_con_list, url_con)) return EINA_FALSE;
1218 if (!url_con->url) return EINA_FALSE;
1219 if (!password) return EINA_FALSE;
1220 if (url_con->proxy_type == CURLPROXY_SOCKS4 || url_con->proxy_type == CURLPROXY_SOCKS4A)
1221 {
1222 ERR("Proxy type should be socks5 and above");
1223 return EINA_FALSE;
1224 }
1225
1226 res = curl_easy_setopt(url_con->curl_easy, CURLOPT_PASSWORD, password);
1227 if (res != CURLE_OK)
1228 {
1229 ERR("curl_easy_setopt() failed: %s", curl_easy_strerror(res));
1230 return EINA_FALSE;
1200 } 1231 }
1232 return EINA_TRUE;
1233#else
1234 return EINA_FALSE;
1235 (void)url_con;
1236 (void)password;
1237#endif
1238}
1239
1240/**
1241 * @}
1242 */
1201 1243
1202 return activated; 1244#ifdef HAVE_CURL
1245static Eina_Bool
1246_ecore_con_url_timeout_cb(void *data)
1247{
1248 Ecore_Con_Url *url_con = data;
1249 CURLMcode ret;
1250 Ecore_Con_Event_Url_Complete *e;
1251
1252 if (!url_con) return ECORE_CALLBACK_CANCEL;
1253 if (!url_con->curl_easy) return ECORE_CALLBACK_CANCEL;
1254 if (!eina_list_data_find(_url_con_list, url_con)) return ECORE_CALLBACK_CANCEL;
1255
1256 ret = curl_multi_remove_handle(_curlm, url_con->curl_easy);
1257 if (ret != CURLM_OK) ERR("curl_multi_remove_handle failed: %s", curl_multi_strerror(ret));
1258 _url_con_list = eina_list_remove(_url_con_list, url_con);
1259
1260 curl_slist_free_all(url_con->headers);
1261 url_con->headers = NULL;
1262
1263 url_con->timer = NULL;
1264
1265 e = calloc(1, sizeof(Ecore_Con_Event_Url_Complete));
1266 if (e)
1267 {
1268 e->url_con = url_con;
1269 e->status = 0;
1270 ecore_event_add(ECORE_CON_EVENT_URL_COMPLETE, e, _ecore_con_event_url_free, NULL);
1271 }
1272 return ECORE_CALLBACK_CANCEL;
1203} 1273}
1204 1274
1205static size_t 1275static size_t
@@ -1235,8 +1305,7 @@ _ecore_con_url_data_cb(void *buffer,
1235 e->url_con = url_con; 1305 e->url_con = url_con;
1236 e->size = real_size; 1306 e->size = real_size;
1237 memcpy(e->data, buffer, real_size); 1307 memcpy(e->data, buffer, real_size);
1238 ecore_event_add(ECORE_CON_EVENT_URL_DATA, e, 1308 ecore_event_add(ECORE_CON_EVENT_URL_DATA, e, _ecore_con_event_url_free, NULL);
1239 _ecore_con_event_url_free, NULL);
1240 } 1309 }
1241 } 1310 }
1242 else 1311 else
@@ -1266,22 +1335,6 @@ _ecore_con_url_data_cb(void *buffer,
1266 return real_size; 1335 return real_size;
1267} 1336}
1268 1337
1269#define ECORE_CON_URL_TRANSMISSION(Transmit, Event, Url_con, Total, Now) \
1270 { \
1271 Ecore_Con_Event_Url_Progress *e; \
1272 if ((Total != 0) || (Now != 0)) \
1273 { \
1274 e = calloc(1, sizeof(Ecore_Con_Event_Url_Progress)); \
1275 if (e) \
1276 { \
1277 e->url_con = url_con; \
1278 e->total = Total; \
1279 e->now = Now; \
1280 ecore_event_add(Event, e, _ecore_con_event_url_free, NULL); \
1281 } \
1282 } \
1283 }
1284
1285static size_t 1338static size_t
1286_ecore_con_url_header_cb(void *ptr, 1339_ecore_con_url_header_cb(void *ptr,
1287 size_t size, 1340 size_t size,
@@ -1324,8 +1377,7 @@ _ecore_con_url_progress_cb(void *clientp,
1324 e->down.now = dlnow; 1377 e->down.now = dlnow;
1325 e->up.total = ultotal; 1378 e->up.total = ultotal;
1326 e->up.now = ulnow; 1379 e->up.now = ulnow;
1327 ecore_event_add(ECORE_CON_EVENT_URL_PROGRESS, e, 1380 ecore_event_add(ECORE_CON_EVENT_URL_PROGRESS, e, _ecore_con_event_url_free, NULL);
1328 _ecore_con_event_url_free, NULL);
1329 } 1381 }
1330 1382
1331 return 0; 1383 return 0;
@@ -1358,208 +1410,196 @@ _ecore_con_url_read_cb(void *ptr,
1358 return retcode; 1410 return retcode;
1359} 1411}
1360 1412
1361static Eina_Bool 1413static void
1362_ecore_con_url_perform(Ecore_Con_Url *url_con) 1414_ecore_con_url_info_read(void)
1363{ 1415{
1364 fd_set read_set, write_set, exc_set; 1416 CURLMsg *curlmsg;
1365 int fd_max, fd; 1417 int n_remaining;
1366 int flags, still_running;
1367 int completed_immediately = 0;
1368 CURLMcode ret;
1369
1370 _url_con_list = eina_list_append(_url_con_list, url_con);
1371
1372 url_con->active = EINA_TRUE;
1373 curl_multi_add_handle(_curlm, url_con->curl_easy);
1374 curl_multi_perform(_curlm, &still_running);
1375
1376 completed_immediately = _ecore_con_url_process_completed_jobs(url_con);
1377 1418
1378 if (!completed_immediately) 1419 while ((curlmsg = curl_multi_info_read(_curlm, &n_remaining)))
1379 { 1420 {
1380 if (url_con->fd_handler) 1421 if (curlmsg->msg == CURLMSG_DONE)
1381 ecore_main_fd_handler_del(url_con->fd_handler);
1382
1383 url_con->fd_handler = NULL;
1384
1385 /* url_con still active -- set up an fd_handler */
1386 FD_ZERO(&read_set);
1387 FD_ZERO(&write_set);
1388 FD_ZERO(&exc_set);
1389
1390 /* Stupid curl, why can't I get the fd to the current added job? */
1391 ret = curl_multi_fdset(_curlm, &read_set, &write_set, &exc_set,
1392 &fd_max);
1393 if (ret != CURLM_OK)
1394 { 1422 {
1395 ERR("curl_multi_fdset failed: %s", curl_multi_strerror(ret)); 1423 Eina_List *l, *ll;
1396 return EINA_FALSE; 1424 Ecore_Con_Url *url_con;
1397 }
1398 1425
1399 for (fd = 0; fd <= fd_max; fd++) 1426 EINA_LIST_FOREACH_SAFE(_url_con_list, l, ll, url_con)
1400 {
1401 if (!FD_ISSET(fd, &_current_fd_set))
1402 { 1427 {
1403 flags = 0; 1428 if (curlmsg->easy_handle == url_con->curl_easy)
1404 if (FD_ISSET(fd, &read_set)) 1429 {
1405 flags |= ECORE_FD_READ; 1430 CURLMcode ret;
1406 1431 Ecore_Con_Event_Url_Complete *e;
1407 if (FD_ISSET(fd, &write_set))
1408 flags |= ECORE_FD_WRITE;
1409 1432
1410 if (FD_ISSET(fd, &exc_set)) 1433 e = calloc(1, sizeof(Ecore_Con_Event_Url_Complete));
1411 flags |= ECORE_FD_ERROR; 1434 if (e)
1435 {
1436 e->url_con = url_con;
1437 e->status = 0;
1438 if (curlmsg->data.result == CURLE_OK)
1439 {
1440 long status; /* curl API uses long, not int */
1441 status = 0;
1442 curl_easy_getinfo(curlmsg->easy_handle, CURLINFO_RESPONSE_CODE, &status);
1443 e->status = status;
1444 }
1445 ecore_event_add(ECORE_CON_EVENT_URL_COMPLETE, e, _ecore_con_event_url_free, NULL);
1446 }
1412 1447
1413 if (flags) 1448 ret = curl_multi_remove_handle(_curlm, url_con->curl_easy);
1414 { 1449 if (ret != CURLM_OK) ERR("curl_multi_remove_handle failed: %s", curl_multi_strerror(ret));
1415 long ms = 0; 1450 _url_con_list = eina_list_remove(_url_con_list, url_con);
1416
1417 ret = curl_multi_timeout(_curlm, &ms);
1418 if (ret != CURLM_OK)
1419 ERR("curl_multi_timeout failed: %s",
1420 curl_multi_strerror(ret));
1421
1422 if (ms == 0)
1423 ms = 1000;
1424
1425 FD_SET(fd, &_current_fd_set);
1426 url_con->fd = fd;
1427 url_con->flags = flags;
1428 url_con->fd_handler =
1429 ecore_main_fd_handler_add(fd, flags,
1430 _ecore_con_url_fd_handler,
1431 NULL, NULL, NULL);
1432 break; 1451 break;
1433 } 1452 }
1434 } 1453 }
1435 } 1454 }
1436 if (!url_con->fd_handler)
1437 {
1438 /* Failed to set up an fd_handler */
1439 ecore_timer_freeze(_curl_timeout);
1440
1441 ret = curl_multi_remove_handle(_curlm, url_con->curl_easy);
1442 if (ret != CURLM_OK)
1443 ERR("curl_multi_remove_handle failed: %s",
1444 curl_multi_strerror(ret));
1445
1446 url_con->active = EINA_FALSE;
1447 url_con->fd = -1;
1448 return EINA_FALSE;
1449 }
1450
1451 ecore_timer_thaw(_curl_timeout);
1452 } 1455 }
1453
1454 return EINA_TRUE;
1455} 1456}
1456 1457
1457static Eina_Bool 1458static void
1458_ecore_con_url_idler_handler(void *data) 1459_ecore_con_url_curl_clear(void)
1459{ 1460{
1460 int done, still_running; 1461 Ecore_Con_Url *url_con;
1461
1462 done = (curl_multi_perform(_curlm, &still_running) != CURLM_CALL_MULTI_PERFORM);
1463
1464 _ecore_con_url_process_completed_jobs(NULL);
1465 1462
1466 if (done) 1463 FD_ZERO(&_current_fd_set);
1464 if (_fd_hd_list)
1467 { 1465 {
1468 _ecore_con_url_restart_fd_handler(); 1466 Ecore_Fd_Handler *fd_handler;
1469 _fd_idler_handler = NULL; 1467 EINA_LIST_FREE(_fd_hd_list, fd_handler)
1468 {
1469 int fd = ecore_main_fd_handler_fd_get(fd_handler);
1470 FD_CLR(fd, &_current_fd_set);
1471 // FIXME: ecore_main_fd_handler_del() sometimes give errors
1472 // because curl do not make fd itself controlled by users, but it can be ignored.
1473 ecore_main_fd_handler_del(fd_handler);
1474 }
1475 }
1470 1476
1471 if (!_url_con_list) 1477 EINA_LIST_FREE(_url_con_list, url_con)
1472 ecore_timer_freeze(_curl_timeout); 1478 {
1479 CURLMcode ret;
1480 Ecore_Con_Event_Url_Complete *e;
1473 1481
1474 return data == 1482 e = calloc(1, sizeof(Ecore_Con_Event_Url_Complete));
1475 (void *)0xACE ? ECORE_CALLBACK_RENEW : ECORE_CALLBACK_CANCEL; 1483 if (e)
1484 {
1485 e->url_con = url_con;
1486 e->status = 0;
1487 ecore_event_add(ECORE_CON_EVENT_URL_COMPLETE, e, _ecore_con_event_url_free, NULL);
1488 }
1489 ret = curl_multi_remove_handle(_curlm, url_con->curl_easy);
1490 if (ret != CURLM_OK) ERR("curl_multi_remove_handle failed: %s", curl_multi_strerror(ret));
1476 } 1491 }
1477
1478 return ECORE_CALLBACK_RENEW;
1479} 1492}
1480 1493
1481static Eina_Bool 1494static Eina_Bool
1482_ecore_con_url_fd_handler(void *data __UNUSED__, 1495_ecore_con_url_fd_handler(void *data __UNUSED__, Ecore_Fd_Handler *fd_handler __UNUSED__)
1483 Ecore_Fd_Handler *fd_handler __UNUSED__)
1484{ 1496{
1485 _ecore_con_url_suspend_fd_handler(); 1497 if (_fd_hd_list)
1486 1498 {
1487 if (!_fd_idler_handler) 1499 Ecore_Fd_Handler *fd_handler;
1488 _fd_idler_handler = ecore_idler_add( 1500 EINA_LIST_FREE(_fd_hd_list, fd_handler)
1489 _ecore_con_url_idler_handler, NULL); 1501 {
1490 1502 int fd = ecore_main_fd_handler_fd_get(fd_handler);
1503 FD_CLR(fd, &_current_fd_set);
1504 // FIXME: ecore_main_fd_handler_del() sometimes give errors
1505 // because curl do not make fd itself controlled by users, but it can be ignored.
1506 ecore_main_fd_handler_del(fd_handler);
1507 }
1508 }
1509 ecore_timer_thaw(_curl_timeout);
1491 return ECORE_CALLBACK_RENEW; 1510 return ECORE_CALLBACK_RENEW;
1492} 1511}
1493 1512
1494static int 1513static void
1495_ecore_con_url_process_completed_jobs(Ecore_Con_Url *url_con_to_match) 1514_ecore_con_url_fdset(void)
1496{ 1515{
1497 Eina_List *l;
1498 Ecore_Con_Url *url_con;
1499 Ecore_Con_Event_Url_Complete *e;
1500 CURLMsg *curlmsg;
1501 CURLMcode ret; 1516 CURLMcode ret;
1502 int n_remaining; 1517 fd_set read_set, write_set, exc_set;
1503 int job_matched = 0; 1518 int fd, fd_max;
1519 Ecore_Fd_Handler *fd_handler;
1504 1520
1505 /* Loop jobs and check if any are done */ 1521 FD_ZERO(&read_set);
1506 while ((curlmsg = curl_multi_info_read(_curlm, &n_remaining))) 1522 FD_ZERO(&write_set);
1523 FD_ZERO(&exc_set);
1524
1525 ret = curl_multi_fdset(_curlm, &read_set, &write_set, &exc_set, &fd_max);
1526 if (ret != CURLM_OK)
1507 { 1527 {
1508 if (curlmsg->msg != CURLMSG_DONE) 1528 ERR("curl_multi_fdset failed: %s", curl_multi_strerror(ret));
1509 continue; 1529 return;
1530 }
1510 1531
1511 /* find the job which is done */ 1532 for (fd = 0; fd <= fd_max; fd++)
1512 EINA_LIST_FOREACH(_url_con_list, l, url_con) 1533 {
1534 int flags = 0;
1535 if (FD_ISSET(fd, &read_set)) flags |= ECORE_FD_READ;
1536 if (FD_ISSET(fd, &write_set)) flags |= ECORE_FD_WRITE;
1537 if (FD_ISSET(fd, &exc_set)) flags |= ECORE_FD_ERROR;
1538 if (flags)
1513 { 1539 {
1514 if (curlmsg->easy_handle == url_con->curl_easy) 1540 if (!FD_ISSET(fd, &_current_fd_set))
1515 { 1541 {
1516 if (url_con_to_match && 1542 FD_SET(fd, &_current_fd_set);
1517 (url_con == url_con_to_match)) 1543 fd_handler = ecore_main_fd_handler_add(fd, flags, _ecore_con_url_fd_handler, NULL, NULL, NULL);
1518 job_matched = 1; 1544 if (fd_handler) _fd_hd_list = eina_list_append(_fd_hd_list, fd_handler);
1519 1545 ecore_timer_freeze(_curl_timeout);
1520 if(url_con->fd != -1) 1546 }
1521 { 1547 }
1522 FD_CLR(url_con->fd, &_current_fd_set); 1548 }
1523 if (url_con->fd_handler) 1549}
1524 ecore_main_fd_handler_del(
1525 url_con->fd_handler);
1526 1550
1527 url_con->fd = -1; 1551static Eina_Bool
1528 url_con->fd_handler = NULL; 1552_ecore_con_url_idler_handler(void *data __UNUSED__)
1529 } 1553{
1554 int still_running;
1555 CURLMcode ret;
1530 1556
1531 _url_con_list = eina_list_remove(_url_con_list, url_con); 1557 ret = curl_multi_perform(_curlm, &still_running);
1532 url_con->active = EINA_FALSE; 1558 if (ret == CURLM_CALL_MULTI_PERFORM)
1533 e = calloc(1, sizeof(Ecore_Con_Event_Url_Complete)); 1559 {
1534 if (e) 1560 DBG("Call multiperform again");
1535 { 1561 return ECORE_CALLBACK_RENEW;
1536 e->url_con = url_con; 1562 }
1537 e->status = 0; 1563 else if (ret != CURLM_OK)
1538 if (curlmsg->data.result == CURLE_OK) 1564 {
1539 { 1565 ERR("curl_multi_perform() failed: %s", curl_multi_strerror(ret));
1540 long status; /* curl API uses long, not int */ 1566 _ecore_con_url_curl_clear();
1567 ecore_timer_freeze(_curl_timeout);
1568 return ECORE_CALLBACK_RENEW;
1569 }
1541 1570
1542 status = 0; 1571 _ecore_con_url_info_read();
1543 curl_easy_getinfo(curlmsg->easy_handle, 1572 if (still_running)
1544 CURLINFO_RESPONSE_CODE, 1573 {
1545 &status); 1574 DBG("multiperform is still_running");
1546 e->status = status; 1575 _ecore_con_url_fdset();
1547 } 1576 }
1577 else
1578 {
1579 DBG("multiperform ended");
1580 _ecore_con_url_curl_clear();
1581 ecore_timer_freeze(_curl_timeout);
1582 }
1548 1583
1549 _url_complete_push_event(ECORE_CON_EVENT_URL_COMPLETE, e); 1584 return ECORE_CALLBACK_RENEW;
1550 } 1585}
1551 1586
1552 ret = curl_multi_remove_handle(_curlm, url_con->curl_easy); 1587static Eina_Bool
1553 if (ret != CURLM_OK) 1588_ecore_con_url_perform(Ecore_Con_Url *url_con)
1554 ERR("curl_multi_remove_handle failed: %s", 1589{
1555 curl_multi_strerror(ret)); 1590 CURLMcode ret;
1556 1591
1557 break; 1592 ret = curl_multi_add_handle(_curlm, url_con->curl_easy);
1558 } 1593 if (ret != CURLM_OK)
1559 } 1594 {
1595 ERR("curl_multi_add_handle() failed: %s", curl_multi_strerror(ret));
1596 return EINA_FALSE;
1560 } 1597 }
1561 1598
1562 return job_matched; 1599 _url_con_list = eina_list_append(_url_con_list, url_con);
1600 ecore_timer_thaw(_curl_timeout);
1601
1602 return EINA_TRUE;
1563} 1603}
1564 1604
1565static void 1605static void
diff --git a/libraries/ecore/src/lib/ecore_config/Makefile.in b/libraries/ecore/src/lib/ecore_config/Makefile.in
index 1732a34..6870d44 100644
--- a/libraries/ecore/src/lib/ecore_config/Makefile.in
+++ b/libraries/ecore/src/lib/ecore_config/Makefile.in
@@ -260,10 +260,10 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
260PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 260PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
261PIXMAN_LIBS = @PIXMAN_LIBS@ 261PIXMAN_LIBS = @PIXMAN_LIBS@
262PKG_CONFIG = @PKG_CONFIG@ 262PKG_CONFIG = @PKG_CONFIG@
263PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
264PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
265POSUB = @POSUB@ 263POSUB = @POSUB@
266RANLIB = @RANLIB@ 264RANLIB = @RANLIB@
265SCIM_CFLAGS = @SCIM_CFLAGS@
266SCIM_LIBS = @SCIM_LIBS@
267SDL_CFLAGS = @SDL_CFLAGS@ 267SDL_CFLAGS = @SDL_CFLAGS@
268SDL_CONFIG = @SDL_CONFIG@ 268SDL_CONFIG = @SDL_CONFIG@
269SDL_LIBS = @SDL_LIBS@ 269SDL_LIBS = @SDL_LIBS@
@@ -282,6 +282,10 @@ TSLIB_LIBS = @TSLIB_LIBS@
282USE_NLS = @USE_NLS@ 282USE_NLS = @USE_NLS@
283VERSION = @VERSION@ 283VERSION = @VERSION@
284VMAJ = @VMAJ@ 284VMAJ = @VMAJ@
285WAYLAND_CFLAGS = @WAYLAND_CFLAGS@
286WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
287WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
288WAYLAND_LIBS = @WAYLAND_LIBS@
285WIN32_CFLAGS = @WIN32_CFLAGS@ 289WIN32_CFLAGS = @WIN32_CFLAGS@
286WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 290WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
287WIN32_LIBS = @WIN32_LIBS@ 291WIN32_LIBS = @WIN32_LIBS@
@@ -395,6 +399,8 @@ ecore_imf_cflags = @ecore_imf_cflags@
395ecore_imf_evas_cflags = @ecore_imf_evas_cflags@ 399ecore_imf_evas_cflags = @ecore_imf_evas_cflags@
396ecore_imf_evas_libs = @ecore_imf_evas_libs@ 400ecore_imf_evas_libs = @ecore_imf_evas_libs@
397ecore_imf_libs = @ecore_imf_libs@ 401ecore_imf_libs = @ecore_imf_libs@
402ecore_imf_scim_cflags = @ecore_imf_scim_cflags@
403ecore_imf_scim_libs = @ecore_imf_scim_libs@
398ecore_imf_xim_cflags = @ecore_imf_xim_cflags@ 404ecore_imf_xim_cflags = @ecore_imf_xim_cflags@
399ecore_imf_xim_libs = @ecore_imf_xim_libs@ 405ecore_imf_xim_libs = @ecore_imf_xim_libs@
400ecore_input_cflags = @ecore_input_cflags@ 406ecore_input_cflags = @ecore_input_cflags@
@@ -407,6 +413,8 @@ ecore_psl1ght_cflags = @ecore_psl1ght_cflags@
407ecore_psl1ght_libs = @ecore_psl1ght_libs@ 413ecore_psl1ght_libs = @ecore_psl1ght_libs@
408ecore_sdl_cflags = @ecore_sdl_cflags@ 414ecore_sdl_cflags = @ecore_sdl_cflags@
409ecore_sdl_libs = @ecore_sdl_libs@ 415ecore_sdl_libs = @ecore_sdl_libs@
416ecore_wayland_cflags = @ecore_wayland_cflags@
417ecore_wayland_libs = @ecore_wayland_libs@
410ecore_win32_cflags = @ecore_win32_cflags@ 418ecore_win32_cflags = @ecore_win32_cflags@
411ecore_win32_libs = @ecore_win32_libs@ 419ecore_win32_libs = @ecore_win32_libs@
412ecore_wince_cflags = @ecore_wince_cflags@ 420ecore_wince_cflags = @ecore_wince_cflags@
@@ -451,12 +459,14 @@ requirements_ecore_fb = @requirements_ecore_fb@
451requirements_ecore_file = @requirements_ecore_file@ 459requirements_ecore_file = @requirements_ecore_file@
452requirements_ecore_imf = @requirements_ecore_imf@ 460requirements_ecore_imf = @requirements_ecore_imf@
453requirements_ecore_imf_evas = @requirements_ecore_imf_evas@ 461requirements_ecore_imf_evas = @requirements_ecore_imf_evas@
462requirements_ecore_imf_scim = @requirements_ecore_imf_scim@
454requirements_ecore_imf_xim = @requirements_ecore_imf_xim@ 463requirements_ecore_imf_xim = @requirements_ecore_imf_xim@
455requirements_ecore_input = @requirements_ecore_input@ 464requirements_ecore_input = @requirements_ecore_input@
456requirements_ecore_input_evas = @requirements_ecore_input_evas@ 465requirements_ecore_input_evas = @requirements_ecore_input_evas@
457requirements_ecore_ipc = @requirements_ecore_ipc@ 466requirements_ecore_ipc = @requirements_ecore_ipc@
458requirements_ecore_psl1ght = @requirements_ecore_psl1ght@ 467requirements_ecore_psl1ght = @requirements_ecore_psl1ght@
459requirements_ecore_sdl = @requirements_ecore_sdl@ 468requirements_ecore_sdl = @requirements_ecore_sdl@
469requirements_ecore_wayland = @requirements_ecore_wayland@
460requirements_ecore_win32 = @requirements_ecore_win32@ 470requirements_ecore_win32 = @requirements_ecore_win32@
461requirements_ecore_wince = @requirements_ecore_wince@ 471requirements_ecore_wince = @requirements_ecore_wince@
462requirements_ecore_x = @requirements_ecore_x@ 472requirements_ecore_x = @requirements_ecore_x@
diff --git a/libraries/ecore/src/lib/ecore_directfb/Makefile.in b/libraries/ecore/src/lib/ecore_directfb/Makefile.in
index 51d113f..b7e1d29 100644
--- a/libraries/ecore/src/lib/ecore_directfb/Makefile.in
+++ b/libraries/ecore/src/lib/ecore_directfb/Makefile.in
@@ -245,10 +245,10 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
245PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 245PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
246PIXMAN_LIBS = @PIXMAN_LIBS@ 246PIXMAN_LIBS = @PIXMAN_LIBS@
247PKG_CONFIG = @PKG_CONFIG@ 247PKG_CONFIG = @PKG_CONFIG@
248PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
249PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
250POSUB = @POSUB@ 248POSUB = @POSUB@
251RANLIB = @RANLIB@ 249RANLIB = @RANLIB@
250SCIM_CFLAGS = @SCIM_CFLAGS@
251SCIM_LIBS = @SCIM_LIBS@
252SDL_CFLAGS = @SDL_CFLAGS@ 252SDL_CFLAGS = @SDL_CFLAGS@
253SDL_CONFIG = @SDL_CONFIG@ 253SDL_CONFIG = @SDL_CONFIG@
254SDL_LIBS = @SDL_LIBS@ 254SDL_LIBS = @SDL_LIBS@
@@ -267,6 +267,10 @@ TSLIB_LIBS = @TSLIB_LIBS@
267USE_NLS = @USE_NLS@ 267USE_NLS = @USE_NLS@
268VERSION = @VERSION@ 268VERSION = @VERSION@
269VMAJ = @VMAJ@ 269VMAJ = @VMAJ@
270WAYLAND_CFLAGS = @WAYLAND_CFLAGS@
271WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
272WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
273WAYLAND_LIBS = @WAYLAND_LIBS@
270WIN32_CFLAGS = @WIN32_CFLAGS@ 274WIN32_CFLAGS = @WIN32_CFLAGS@
271WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 275WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
272WIN32_LIBS = @WIN32_LIBS@ 276WIN32_LIBS = @WIN32_LIBS@
@@ -380,6 +384,8 @@ ecore_imf_cflags = @ecore_imf_cflags@
380ecore_imf_evas_cflags = @ecore_imf_evas_cflags@ 384ecore_imf_evas_cflags = @ecore_imf_evas_cflags@
381ecore_imf_evas_libs = @ecore_imf_evas_libs@ 385ecore_imf_evas_libs = @ecore_imf_evas_libs@
382ecore_imf_libs = @ecore_imf_libs@ 386ecore_imf_libs = @ecore_imf_libs@
387ecore_imf_scim_cflags = @ecore_imf_scim_cflags@
388ecore_imf_scim_libs = @ecore_imf_scim_libs@
383ecore_imf_xim_cflags = @ecore_imf_xim_cflags@ 389ecore_imf_xim_cflags = @ecore_imf_xim_cflags@
384ecore_imf_xim_libs = @ecore_imf_xim_libs@ 390ecore_imf_xim_libs = @ecore_imf_xim_libs@
385ecore_input_cflags = @ecore_input_cflags@ 391ecore_input_cflags = @ecore_input_cflags@
@@ -392,6 +398,8 @@ ecore_psl1ght_cflags = @ecore_psl1ght_cflags@
392ecore_psl1ght_libs = @ecore_psl1ght_libs@ 398ecore_psl1ght_libs = @ecore_psl1ght_libs@
393ecore_sdl_cflags = @ecore_sdl_cflags@ 399ecore_sdl_cflags = @ecore_sdl_cflags@
394ecore_sdl_libs = @ecore_sdl_libs@ 400ecore_sdl_libs = @ecore_sdl_libs@
401ecore_wayland_cflags = @ecore_wayland_cflags@
402ecore_wayland_libs = @ecore_wayland_libs@
395ecore_win32_cflags = @ecore_win32_cflags@ 403ecore_win32_cflags = @ecore_win32_cflags@
396ecore_win32_libs = @ecore_win32_libs@ 404ecore_win32_libs = @ecore_win32_libs@
397ecore_wince_cflags = @ecore_wince_cflags@ 405ecore_wince_cflags = @ecore_wince_cflags@
@@ -436,12 +444,14 @@ requirements_ecore_fb = @requirements_ecore_fb@
436requirements_ecore_file = @requirements_ecore_file@ 444requirements_ecore_file = @requirements_ecore_file@
437requirements_ecore_imf = @requirements_ecore_imf@ 445requirements_ecore_imf = @requirements_ecore_imf@
438requirements_ecore_imf_evas = @requirements_ecore_imf_evas@ 446requirements_ecore_imf_evas = @requirements_ecore_imf_evas@
447requirements_ecore_imf_scim = @requirements_ecore_imf_scim@
439requirements_ecore_imf_xim = @requirements_ecore_imf_xim@ 448requirements_ecore_imf_xim = @requirements_ecore_imf_xim@
440requirements_ecore_input = @requirements_ecore_input@ 449requirements_ecore_input = @requirements_ecore_input@
441requirements_ecore_input_evas = @requirements_ecore_input_evas@ 450requirements_ecore_input_evas = @requirements_ecore_input_evas@
442requirements_ecore_ipc = @requirements_ecore_ipc@ 451requirements_ecore_ipc = @requirements_ecore_ipc@
443requirements_ecore_psl1ght = @requirements_ecore_psl1ght@ 452requirements_ecore_psl1ght = @requirements_ecore_psl1ght@
444requirements_ecore_sdl = @requirements_ecore_sdl@ 453requirements_ecore_sdl = @requirements_ecore_sdl@
454requirements_ecore_wayland = @requirements_ecore_wayland@
445requirements_ecore_win32 = @requirements_ecore_win32@ 455requirements_ecore_win32 = @requirements_ecore_win32@
446requirements_ecore_wince = @requirements_ecore_wince@ 456requirements_ecore_wince = @requirements_ecore_wince@
447requirements_ecore_x = @requirements_ecore_x@ 457requirements_ecore_x = @requirements_ecore_x@
diff --git a/libraries/ecore/src/lib/ecore_directfb/ecore_directfb.c b/libraries/ecore/src/lib/ecore_directfb/ecore_directfb.c
index f45b3c3..7c56b5d 100644
--- a/libraries/ecore/src/lib/ecore_directfb/ecore_directfb.c
+++ b/libraries/ecore/src/lib/ecore_directfb/ecore_directfb.c
@@ -80,7 +80,7 @@ _ecore_directfb_event_free_key_down(void *data __UNUSED__, void *ev)
80 free(e->key_compose); 80 free(e->key_compose);
81 81
82 free(e); 82 free(e);
83} /* _ecore_directfb_event_free_key_down */ 83}
84 84
85static void 85static void
86_ecore_directfb_event_free_key_up(void *data __UNUSED__, void *ev) 86_ecore_directfb_event_free_key_up(void *data __UNUSED__, void *ev)
@@ -98,7 +98,7 @@ _ecore_directfb_event_free_key_up(void *data __UNUSED__, void *ev)
98 free(e->key_compose); 98 free(e->key_compose);
99 99
100 free(e); 100 free(e);
101} /* _ecore_directfb_event_free_key_up */ 101}
102 102
103/* directfb window input events handler */ 103/* directfb window input events handler */
104/****************************************/ 104/****************************************/
@@ -131,7 +131,7 @@ _ecore_directfb_event_handle_motion(DFBEvent *evt)
131 131
132 default: 132 default:
133 return; 133 return;
134 } /* switch */ 134 }
135 e->win = _ecore_directfb_fullscreen_window_id; 135 e->win = _ecore_directfb_fullscreen_window_id;
136 e->time = 0; 136 e->time = 0;
137 break; 137 break;
@@ -146,9 +146,9 @@ _ecore_directfb_event_handle_motion(DFBEvent *evt)
146 146
147 default: 147 default:
148 break; 148 break;
149 } /* switch */ 149 }
150 ecore_event_add(ECORE_DIRECTFB_EVENT_MOTION, e, NULL, NULL); 150 ecore_event_add(ECORE_DIRECTFB_EVENT_MOTION, e, NULL, NULL);
151} /* _ecore_directfb_event_handle_motion */ 151}
152 152
153static void 153static void
154_ecore_directfb_event_handle_key_down(DFBEvent *evt) 154_ecore_directfb_event_handle_key_down(DFBEvent *evt)
@@ -197,10 +197,10 @@ _ecore_directfb_event_handle_key_down(DFBEvent *evt)
197 197
198 default: 198 default:
199 break; 199 break;
200 } /* switch */ 200 }
201 201
202 ecore_event_add(ECORE_DIRECTFB_EVENT_KEY_DOWN, e, _ecore_directfb_event_free_key_down, NULL); 202 ecore_event_add(ECORE_DIRECTFB_EVENT_KEY_DOWN, e, _ecore_directfb_event_free_key_down, NULL);
203} /* _ecore_directfb_event_handle_key_down */ 203}
204 204
205static void 205static void
206_ecore_directfb_event_handle_key_up(DFBEvent *evt) 206_ecore_directfb_event_handle_key_up(DFBEvent *evt)
@@ -249,9 +249,9 @@ _ecore_directfb_event_handle_key_up(DFBEvent *evt)
249 249
250 default: 250 default:
251 break; 251 break;
252 } /* switch */ 252 }
253 ecore_event_add(ECORE_DIRECTFB_EVENT_KEY_UP, e, _ecore_directfb_event_free_key_up, NULL); 253 ecore_event_add(ECORE_DIRECTFB_EVENT_KEY_UP, e, _ecore_directfb_event_free_key_up, NULL);
254} /* _ecore_directfb_event_handle_key_up */ 254}
255 255
256static void 256static void
257_ecore_directfb_event_handle_button_down(DFBEvent *evt) 257_ecore_directfb_event_handle_button_down(DFBEvent *evt)
@@ -283,10 +283,10 @@ _ecore_directfb_event_handle_button_down(DFBEvent *evt)
283 283
284 default: 284 default:
285 break; 285 break;
286 } /* switch */ 286 }
287 287
288 ecore_event_add(ECORE_DIRECTFB_EVENT_BUTTON_DOWN, e, NULL, NULL); 288 ecore_event_add(ECORE_DIRECTFB_EVENT_BUTTON_DOWN, e, NULL, NULL);
289} /* _ecore_directfb_event_handle_button_down */ 289}
290 290
291static void 291static void
292_ecore_directfb_event_handle_button_up(DFBEvent *evt) 292_ecore_directfb_event_handle_button_up(DFBEvent *evt)
@@ -317,9 +317,9 @@ _ecore_directfb_event_handle_button_up(DFBEvent *evt)
317 317
318 default: 318 default:
319 break; 319 break;
320 } /* switch */ 320 }
321 ecore_event_add(ECORE_DIRECTFB_EVENT_BUTTON_UP, e, NULL, NULL); 321 ecore_event_add(ECORE_DIRECTFB_EVENT_BUTTON_UP, e, NULL, NULL);
322} /* _ecore_directfb_event_handle_button_up */ 322}
323 323
324static void 324static void
325_ecore_directfb_event_handle_enter(DFBWindowEvent *evt) 325_ecore_directfb_event_handle_enter(DFBWindowEvent *evt)
@@ -334,7 +334,7 @@ _ecore_directfb_event_handle_enter(DFBWindowEvent *evt)
334 e->time = 0; 334 e->time = 0;
335 335
336 ecore_event_add(ECORE_DIRECTFB_EVENT_ENTER, e, NULL, NULL); 336 ecore_event_add(ECORE_DIRECTFB_EVENT_ENTER, e, NULL, NULL);
337} /* _ecore_directfb_event_handle_enter */ 337}
338 338
339static void 339static void
340_ecore_directfb_event_handle_leave(DFBWindowEvent *evt) 340_ecore_directfb_event_handle_leave(DFBWindowEvent *evt)
@@ -349,7 +349,7 @@ _ecore_directfb_event_handle_leave(DFBWindowEvent *evt)
349 e->time = 0; 349 e->time = 0;
350 350
351 ecore_event_add(ECORE_DIRECTFB_EVENT_LEAVE, e, NULL, NULL); 351 ecore_event_add(ECORE_DIRECTFB_EVENT_LEAVE, e, NULL, NULL);
352} /* _ecore_directfb_event_handle_leave */ 352}
353 353
354static void 354static void
355_ecore_directfb_event_handle_wheel(DFBWindowEvent *evt) 355_ecore_directfb_event_handle_wheel(DFBWindowEvent *evt)
@@ -365,7 +365,7 @@ _ecore_directfb_event_handle_wheel(DFBWindowEvent *evt)
365 e->time = 0; 365 e->time = 0;
366 366
367 ecore_event_add(ECORE_DIRECTFB_EVENT_WHEEL, e, NULL, NULL); 367 ecore_event_add(ECORE_DIRECTFB_EVENT_WHEEL, e, NULL, NULL);
368} /* _ecore_directfb_event_handle_wheel */ 368}
369 369
370static void 370static void
371_ecore_directfb_event_handle_got_focus(DFBWindowEvent *evt) 371_ecore_directfb_event_handle_got_focus(DFBWindowEvent *evt)
@@ -377,7 +377,7 @@ _ecore_directfb_event_handle_got_focus(DFBWindowEvent *evt)
377 e->time = 0; 377 e->time = 0;
378 378
379 ecore_event_add(ECORE_DIRECTFB_EVENT_GOT_FOCUS, e, NULL, NULL); 379 ecore_event_add(ECORE_DIRECTFB_EVENT_GOT_FOCUS, e, NULL, NULL);
380} /* _ecore_directfb_event_handle_got_focus */ 380}
381 381
382static void 382static void
383_ecore_directfb_event_handle_lost_focus(DFBWindowEvent *evt) 383_ecore_directfb_event_handle_lost_focus(DFBWindowEvent *evt)
@@ -389,7 +389,7 @@ _ecore_directfb_event_handle_lost_focus(DFBWindowEvent *evt)
389 e->time = 0; 389 e->time = 0;
390 390
391 ecore_event_add(ECORE_DIRECTFB_EVENT_LOST_FOCUS, e, NULL, NULL); 391 ecore_event_add(ECORE_DIRECTFB_EVENT_LOST_FOCUS, e, NULL, NULL);
392} /* _ecore_directfb_event_handle_lost_focus */ 392}
393 393
394/* inputs and windows fds handlers */ 394/* inputs and windows fds handlers */
395/***********************************/ 395/***********************************/
@@ -428,7 +428,7 @@ _ecore_directfb_input_event_fd_handler(void *data __UNUSED__,Ecore_Fd_Handler *f
428 _ecore_directfb_event_handle_motion(&evt); 428 _ecore_directfb_event_handle_motion(&evt);
429 429
430 return EINA_TRUE; 430 return EINA_TRUE;
431} /* _ecore_directfb_input_event_fd_handler */ 431}
432 432
433static Eina_Bool 433static Eina_Bool
434_ecore_directfb_window_event_fd_handler(void *data __UNUSED__,Ecore_Fd_Handler *fd_handler __UNUSED__) 434_ecore_directfb_window_event_fd_handler(void *data __UNUSED__,Ecore_Fd_Handler *fd_handler __UNUSED__)
@@ -486,7 +486,7 @@ _ecore_directfb_window_event_fd_handler(void *data __UNUSED__,Ecore_Fd_Handler *
486 _ecore_directfb_event_handle_wheel(&evt.window); 486 _ecore_directfb_event_handle_wheel(&evt.window);
487 487
488 return EINA_TRUE; 488 return EINA_TRUE;
489} /* _ecore_directfb_window_event_fd_handler */ 489}
490 490
491/* api functions */ 491/* api functions */
492/*****************/ 492/*****************/
@@ -495,7 +495,7 @@ EAPI IDirectFB *
495ecore_directfb_interface_get(void) 495ecore_directfb_interface_get(void)
496{ 496{
497 return _dfb; 497 return _dfb;
498} /* ecore_directfb_interface_get */ 498}
499 499
500EAPI Ecore_DirectFB_Window * 500EAPI Ecore_DirectFB_Window *
501ecore_directfb_window_new(int x, int y, int w, int h) 501ecore_directfb_window_new(int x, int y, int w, int h)
@@ -530,7 +530,7 @@ ecore_directfb_window_new(int x, int y, int w, int h)
530 window->cursor = NULL; 530 window->cursor = NULL;
531 531
532 return window; 532 return window;
533} /* ecore_directfb_window_new */ 533}
534 534
535EAPI void 535EAPI void
536ecore_directfb_window_free(Ecore_DirectFB_Window *ecore_window) 536ecore_directfb_window_free(Ecore_DirectFB_Window *ecore_window)
@@ -538,37 +538,37 @@ ecore_directfb_window_free(Ecore_DirectFB_Window *ecore_window)
538 DFBCHECK(ecore_window->surface->Release(ecore_window->surface)); 538 DFBCHECK(ecore_window->surface->Release(ecore_window->surface));
539 DFBCHECK(ecore_window->window->Release(ecore_window->window)); 539 DFBCHECK(ecore_window->window->Release(ecore_window->window));
540 free(ecore_window); 540 free(ecore_window);
541} /* ecore_directfb_window_free */ 541}
542 542
543EAPI void 543EAPI void
544ecore_directfb_window_move(Ecore_DirectFB_Window *ecore_window, int x, int y) 544ecore_directfb_window_move(Ecore_DirectFB_Window *ecore_window, int x, int y)
545{ 545{
546 DFBCHECK(ecore_window->window->MoveTo(ecore_window->window, x, y)); 546 DFBCHECK(ecore_window->window->MoveTo(ecore_window->window, x, y));
547} /* ecore_directfb_window_move */ 547}
548 548
549EAPI void 549EAPI void
550ecore_directfb_window_resize(Ecore_DirectFB_Window *ecore_window, int w, int h) 550ecore_directfb_window_resize(Ecore_DirectFB_Window *ecore_window, int w, int h)
551{ 551{
552 DFBCHECK(ecore_window->window->Resize(ecore_window->window, w, h)); 552 DFBCHECK(ecore_window->window->Resize(ecore_window->window, w, h));
553} /* ecore_directfb_window_resize */ 553}
554 554
555EAPI void 555EAPI void
556ecore_directfb_window_focus(Ecore_DirectFB_Window *ecore_window) 556ecore_directfb_window_focus(Ecore_DirectFB_Window *ecore_window)
557{ 557{
558 DFBCHECK(ecore_window->window->RequestFocus(ecore_window->window)); 558 DFBCHECK(ecore_window->window->RequestFocus(ecore_window->window));
559} /* ecore_directfb_window_focus */ 559}
560 560
561EAPI void 561EAPI void
562ecore_directfb_window_hide(Ecore_DirectFB_Window *ecore_window) 562ecore_directfb_window_hide(Ecore_DirectFB_Window *ecore_window)
563{ 563{
564 DFBCHECK(ecore_window->window->SetOpacity(ecore_window->window, 0)); 564 DFBCHECK(ecore_window->window->SetOpacity(ecore_window->window, 0));
565} /* ecore_directfb_window_hide */ 565}
566 566
567EAPI void 567EAPI void
568ecore_directfb_window_show(Ecore_DirectFB_Window *ecore_window) 568ecore_directfb_window_show(Ecore_DirectFB_Window *ecore_window)
569{ 569{
570 DFBCHECK(ecore_window->window->SetOpacity(ecore_window->window, 0xFF)); 570 DFBCHECK(ecore_window->window->SetOpacity(ecore_window->window, 0xFF));
571} /* ecore_directfb_window_show */ 571}
572 572
573EAPI void 573EAPI void
574ecore_directfb_window_shaped_set(Ecore_DirectFB_Window *ecore_window, Eina_Bool set) 574ecore_directfb_window_shaped_set(Ecore_DirectFB_Window *ecore_window, Eina_Bool set)
@@ -588,7 +588,7 @@ ecore_directfb_window_shaped_set(Ecore_DirectFB_Window *ecore_window, Eina_Bool
588 opts &= ~DWOP_ALPHACHANNEL; 588 opts &= ~DWOP_ALPHACHANNEL;
589 DFBCHECK(ecore_window->window->SetOptions(ecore_window->window, opts)); 589 DFBCHECK(ecore_window->window->SetOptions(ecore_window->window, opts));
590 } 590 }
591} /* ecore_directfb_window_shaped_set */ 591}
592 592
593EAPI void 593EAPI void
594ecore_directfb_window_cursor_show(Ecore_DirectFB_Window *ecore_window, Eina_Bool show) 594ecore_directfb_window_cursor_show(Ecore_DirectFB_Window *ecore_window, Eina_Bool show)
@@ -622,7 +622,7 @@ ecore_directfb_window_cursor_show(Ecore_DirectFB_Window *ecore_window, Eina_Bool
622 DFBCHECK(ecore_window->window->SetCursorShape(ecore_window->window, NULL, 0, 0)); 622 DFBCHECK(ecore_window->window->SetCursorShape(ecore_window->window, NULL, 0, 0));
623 } 623 }
624 } 624 }
625} /* ecore_directfb_window_cursor_show */ 625}
626 626
627EAPI void 627EAPI void
628ecore_directfb_window_cursor_set(Ecore_DirectFB_Window *ecore_window, Ecore_DirectFB_Cursor *cursor) 628ecore_directfb_window_cursor_set(Ecore_DirectFB_Window *ecore_window, Ecore_DirectFB_Cursor *cursor)
@@ -639,7 +639,7 @@ ecore_directfb_window_cursor_set(Ecore_DirectFB_Window *ecore_window, Ecore_Dire
639 ecore_window->cursor = cursor; 639 ecore_window->cursor = cursor;
640 DFBCHECK(ecore_window->window->SetCursorShape(ecore_window->window, cursor->surface, cursor->hot_x, cursor->hot_y)); 640 DFBCHECK(ecore_window->window->SetCursorShape(ecore_window->window, cursor->surface, cursor->hot_x, cursor->hot_y));
641 } 641 }
642} /* ecore_directfb_window_cursor_set */ 642}
643 643
644EAPI void 644EAPI void
645ecore_directfb_window_fullscreen_set(Ecore_DirectFB_Window *ecore_window, Eina_Bool on) 645ecore_directfb_window_fullscreen_set(Ecore_DirectFB_Window *ecore_window, Eina_Bool on)
@@ -666,14 +666,14 @@ ecore_directfb_window_fullscreen_set(Ecore_DirectFB_Window *ecore_window, Eina_B
666 DFBCHECK(ecore_window->window->GetSurface(ecore_window->window, &ecore_window->surface)); 666 DFBCHECK(ecore_window->window->GetSurface(ecore_window->window, &ecore_window->surface));
667 _ecore_directfb_fullscreen_window_id = 0; 667 _ecore_directfb_fullscreen_window_id = 0;
668 } 668 }
669} /* ecore_directfb_window_fullscreen_set */ 669}
670 670
671EAPI void 671EAPI void
672ecore_directfb_window_size_get(Ecore_DirectFB_Window *ecore_window, int *w, int *h) 672ecore_directfb_window_size_get(Ecore_DirectFB_Window *ecore_window, int *w, int *h)
673{ 673{
674 DFBCHECK(ecore_window->surface->GetSize(ecore_window->surface,w,h)); 674 DFBCHECK(ecore_window->surface->GetSize(ecore_window->surface,w,h));
675 return; 675 return;
676} /* ecore_directfb_window_size_get */ 676}
677 677
678EAPI int 678EAPI int
679ecore_directfb_init(const char *name __UNUSED__) 679ecore_directfb_init(const char *name __UNUSED__)
@@ -730,7 +730,7 @@ ecore_directfb_init(const char *name __UNUSED__)
730 } 730 }
731 /* create the hash for the windows(key = windowid, val = Ecore_DirectFB_Window struct) */ 731 /* create the hash for the windows(key = windowid, val = Ecore_DirectFB_Window struct) */
732 return _ecore_directfb_init_count; 732 return _ecore_directfb_init_count;
733} /* ecore_directfb_init */ 733}
734 734
735EAPI int 735EAPI int
736ecore_directfb_shutdown(void) 736ecore_directfb_shutdown(void)
@@ -753,5 +753,5 @@ ecore_directfb_shutdown(void)
753 eina_log_domain_unregister(_ecore_directfb_log_dom); 753 eina_log_domain_unregister(_ecore_directfb_log_dom);
754 _ecore_directfb_log_dom = -1; 754 _ecore_directfb_log_dom = -1;
755 return _ecore_directfb_init_count; 755 return _ecore_directfb_init_count;
756} /* ecore_directfb_shutdown */ 756}
757 757
diff --git a/libraries/ecore/src/lib/ecore_evas/Ecore_Evas.h b/libraries/ecore/src/lib/ecore_evas/Ecore_Evas.h
index 256e57c..8d9abc4 100644
--- a/libraries/ecore/src/lib/ecore_evas/Ecore_Evas.h
+++ b/libraries/ecore/src/lib/ecore_evas/Ecore_Evas.h
@@ -81,6 +81,8 @@ extern "C" {
81#define HAVE_ECORE_EVAS_WINCE 1 81#define HAVE_ECORE_EVAS_WINCE 1
82#define HAVE_ECORE_EVAS_EWS 1 82#define HAVE_ECORE_EVAS_EWS 1
83#define HAVE_ECORE_EVAS_PSL1GHT 1 83#define HAVE_ECORE_EVAS_PSL1GHT 1
84#define HAVE_ECORE_EVAS_WAYLAND_SHM 1
85#define HAVE_ECORE_EVAS_WAYLAND_EGL 1
84 86
85typedef enum _Ecore_Evas_Engine_Type 87typedef enum _Ecore_Evas_Engine_Type
86{ 88{
@@ -104,7 +106,9 @@ typedef enum _Ecore_Evas_Engine_Type
104 ECORE_EVAS_ENGINE_SOFTWARE_16_WINCE, 106 ECORE_EVAS_ENGINE_SOFTWARE_16_WINCE,
105 ECORE_EVAS_ENGINE_OPENGL_SDL, 107 ECORE_EVAS_ENGINE_OPENGL_SDL,
106 ECORE_EVAS_ENGINE_EWS, 108 ECORE_EVAS_ENGINE_EWS,
107 ECORE_EVAS_ENGINE_PSL1GHT 109 ECORE_EVAS_ENGINE_PSL1GHT,
110 ECORE_EVAS_ENGINE_WAYLAND_SHM,
111 ECORE_EVAS_ENGINE_WAYLAND_EGL
108} Ecore_Evas_Engine_Type; 112} Ecore_Evas_Engine_Type;
109 113
110typedef enum _Ecore_Evas_Avoid_Damage_Type 114typedef enum _Ecore_Evas_Avoid_Damage_Type
@@ -689,6 +693,11 @@ EAPI Ecore_Evas *ecore_evas_fb_new(const char *disp_name, int rotation, int
689EAPI Ecore_Evas *ecore_evas_directfb_new(const char *disp_name, int windowed, int x, int y, int w, int h); 693EAPI Ecore_Evas *ecore_evas_directfb_new(const char *disp_name, int windowed, int x, int y, int w, int h);
690EAPI Ecore_DirectFB_Window *ecore_evas_directfb_window_get(const Ecore_Evas *ee); 694EAPI Ecore_DirectFB_Window *ecore_evas_directfb_window_get(const Ecore_Evas *ee);
691 695
696EAPI Ecore_Evas *ecore_evas_wayland_shm_new(const char *disp_name, int x, int y, int w, int h, int frame);
697EAPI Ecore_Evas *ecore_evas_wayland_egl_new(const char *disp_name, int x, int y, int w, int h, int frame);
698EAPI void ecore_evas_wayland_resize(Ecore_Evas *ee, int location);
699EAPI void ecore_evas_wayland_drag_start(Ecore_Evas *ee, Ecore_Evas *drag_ee, void *source);
700
692/** 701/**
693 * @brief Create a new @c Ecore_Evas canvas bound to the Evas 702 * @brief Create a new @c Ecore_Evas canvas bound to the Evas
694 * @b buffer engine 703 * @b buffer engine
@@ -818,7 +827,7 @@ EAPI void ecore_evas_ews_delete_request(Ecore_Evas *ee);
818 827
819/** 828/**
820 * @brief Create an Evas image object with image data <b>bound to an 829 * @brief Create an Evas image object with image data <b>bound to an
821 * own, internal @c Ecore_Evas canvas wrapper<b> 830 * own, internal @c Ecore_Evas canvas wrapper</b>
822 * 831 *
823 * @param ee_target @c Ecore_Evas to have the canvas receiving the new 832 * @param ee_target @c Ecore_Evas to have the canvas receiving the new
824 * image object 833 * image object
@@ -1320,7 +1329,7 @@ EAPI void ecore_evas_size_base_get(const Ecore_Evas *ee, int *w, int *h);
1320 * @param h The step height 1329 * @param h The step height
1321 * 1330 *
1322 * This function sets the size steps of @p ee to be @p w x @p h. This 1331 * This function sets the size steps of @p ee to be @p w x @p h. This
1323 * limits the size of this @cEcore_Evas window to be @b always an 1332 * limits the size of this @c Ecore_Evas window to be @b always an
1324 * integer multiple of the step size, for each axis. 1333 * integer multiple of the step size, for each axis.
1325 */ 1334 */
1326EAPI void ecore_evas_size_step_set(Ecore_Evas *ee, int w, int h); 1335EAPI void ecore_evas_size_step_set(Ecore_Evas *ee, int w, int h);
@@ -1450,6 +1459,9 @@ EAPI Eina_Bool ecore_evas_comp_sync_get(const Ecore_Evas *ee);
1450 */ 1459 */
1451EAPI void ecore_evas_screen_geometry_get(const Ecore_Evas *ee, int *x, int *y, int *w, int *h); 1460EAPI void ecore_evas_screen_geometry_get(const Ecore_Evas *ee, int *x, int *y, int *w, int *h);
1452 1461
1462EAPI void ecore_evas_draw_frame_set(Ecore_Evas *ee, Eina_Bool draw_frame);
1463EAPI Eina_Bool ecore_evas_draw_frame_get(const Ecore_Evas *ee);
1464
1453/** 1465/**
1454 * @brief Associate the given object to this ecore evas. 1466 * @brief Associate the given object to this ecore evas.
1455 * 1467 *
@@ -1625,29 +1637,238 @@ EAPI void ecore_evas_ews_manager_set(const void *manager);
1625 */ 1637 */
1626EAPI const void *ecore_evas_ews_manager_get(void); 1638EAPI const void *ecore_evas_ews_manager_get(void);
1627 1639
1628EAPI extern int ECORE_EVAS_EWS_EVENT_MANAGER_CHANGE; /**< manager was changed */ 1640EAPI extern int ECORE_EVAS_EWS_EVENT_MANAGER_CHANGE; /**< manager was changed @since 1.1 */
1629EAPI extern int ECORE_EVAS_EWS_EVENT_ADD; /**< window was created */ 1641EAPI extern int ECORE_EVAS_EWS_EVENT_ADD; /**< window was created @since 1.1 */
1630EAPI extern int ECORE_EVAS_EWS_EVENT_DEL; /**< window was deleted, pointer is already invalid but may be used as reference for further cleanup work. */ 1642EAPI extern int ECORE_EVAS_EWS_EVENT_DEL; /**< window was deleted, pointer is already invalid but may be used as reference for further cleanup work. @since 1.1 */
1631EAPI extern int ECORE_EVAS_EWS_EVENT_RESIZE; /**< window was resized */ 1643EAPI extern int ECORE_EVAS_EWS_EVENT_RESIZE; /**< window was resized @since 1.1 */
1632EAPI extern int ECORE_EVAS_EWS_EVENT_MOVE; /**< window was moved */ 1644EAPI extern int ECORE_EVAS_EWS_EVENT_MOVE; /**< window was moved @since 1.1 */
1633EAPI extern int ECORE_EVAS_EWS_EVENT_SHOW; /**< window become visible */ 1645EAPI extern int ECORE_EVAS_EWS_EVENT_SHOW; /**< window become visible @since 1.1 */
1634EAPI extern int ECORE_EVAS_EWS_EVENT_HIDE; /**< window become hidden */ 1646EAPI extern int ECORE_EVAS_EWS_EVENT_HIDE; /**< window become hidden @since 1.1 */
1635EAPI extern int ECORE_EVAS_EWS_EVENT_FOCUS; /**< window was focused */ 1647EAPI extern int ECORE_EVAS_EWS_EVENT_FOCUS; /**< window was focused @since 1.1 */
1636EAPI extern int ECORE_EVAS_EWS_EVENT_UNFOCUS; /**< window lost focus */ 1648EAPI extern int ECORE_EVAS_EWS_EVENT_UNFOCUS; /**< window lost focus @since 1.1 */
1637EAPI extern int ECORE_EVAS_EWS_EVENT_RAISE; /**< window was raised */ 1649EAPI extern int ECORE_EVAS_EWS_EVENT_RAISE; /**< window was raised @since 1.1 */
1638EAPI extern int ECORE_EVAS_EWS_EVENT_LOWER; /**< window was lowered */ 1650EAPI extern int ECORE_EVAS_EWS_EVENT_LOWER; /**< window was lowered @since 1.1 */
1639EAPI extern int ECORE_EVAS_EWS_EVENT_ACTIVATE; /**< window was activated */ 1651EAPI extern int ECORE_EVAS_EWS_EVENT_ACTIVATE; /**< window was activated @since 1.1 */
1640 1652
1641EAPI extern int ECORE_EVAS_EWS_EVENT_ICONIFIED_CHANGE; /**< window minimized/iconified changed */ 1653EAPI extern int ECORE_EVAS_EWS_EVENT_ICONIFIED_CHANGE; /**< window minimized/iconified changed @since 1.1 */
1642EAPI extern int ECORE_EVAS_EWS_EVENT_MAXIMIZED_CHANGE; /**< window maximized changed */ 1654EAPI extern int ECORE_EVAS_EWS_EVENT_MAXIMIZED_CHANGE; /**< window maximized changed @since 1.1 */
1643EAPI extern int ECORE_EVAS_EWS_EVENT_LAYER_CHANGE; /**< window layer changed */ 1655EAPI extern int ECORE_EVAS_EWS_EVENT_LAYER_CHANGE; /**< window layer changed @since 1.1 */
1644EAPI extern int ECORE_EVAS_EWS_EVENT_FULLSCREEN_CHANGE; /**< window fullscreen changed */ 1656EAPI extern int ECORE_EVAS_EWS_EVENT_FULLSCREEN_CHANGE; /**< window fullscreen changed @since 1.1 */
1645EAPI extern int ECORE_EVAS_EWS_EVENT_CONFIG_CHANGE; /**< some other window property changed (title, name, class, alpha, transparent, shaped...) */ 1657EAPI extern int ECORE_EVAS_EWS_EVENT_CONFIG_CHANGE; /**< some other window property changed (title, name, class, alpha, transparent, shaped...) @since 1.1 */
1646 1658
1647/** 1659/**
1648 * @} 1660 * @}
1649 */ 1661 */
1650 1662
1663/**
1664 * @defgroup Ecore_Evas_Extn External plug/socket infrastructure to remote canvases
1665 *
1666 * These functions allow 1 process to create a "socket" was pluged into which another
1667 * process can create a "plug" remotely to plug into.
1668 * Socket can provides content for several plugs.
1669 * This is best for small sized objects (about the size range
1670 * of a small icon up to a few large icons). Sine the plug is actually an
1671 * image object, you can fetch the pixel data
1672 *
1673 * @since 1.2
1674 * @{
1675 */
1676
1677EAPI extern int ECORE_EVAS_EXTN_CLIENT_ADD; /**< this event is received when a plug has connected to an extn socket @since 1.2 */
1678EAPI extern int ECORE_EVAS_EXTN_CLIENT_DEL; /**< this event is received when a plug has disconnected from an extn socket @since 1.2 */
1679
1680/**
1681 * @brief Create a new Ecore_Evas canvas for the new external ecore evas socket
1682 *
1683 * @param w The width of the canvas, in pixels
1684 * @param h The height of the canvas, in pixels
1685 * @return A new @c Ecore_Evas instance or @c NULL, on failure
1686 *
1687 * This creates a new extn_socket canvas wrapper, with image data array
1688 * @b bound to the ARGB format, 8 bits per pixel.
1689 *
1690 * If creation is successful, an Ecore_Evas handle is returned or NULL if creation
1691 * fails. Also focus, show, hide etc. callbacks
1692 * will also be called if the plug object is shown, or already visible on
1693 * connect, or if it is hidden later, focused or unfocused.
1694 *
1695 * This function has to be flowed by ecore_evas_extn_socket_listen(),
1696 * for starting ecore ipc service.
1697 *
1698 * @code
1699 * Eina_Bool res = EINA_FALSE;
1700 * Ecore_Evas *ee = ecore_evas_extn_socket_new(1, 1);
1701 *
1702 * res = ecore_evas_extn_socket_listen("svcname", 1, EINA_FALSE);
1703 * if (!res) return;
1704 * ecore_evas_resize(ee, 240, 400);
1705 * @endcode
1706 *
1707 * or
1708 *
1709 * @code
1710 * Eina_Bool res = EINA_FALSE;
1711 * Ecore_Evas *ee = ecore_evas_extn_socket_new(240, 400);
1712 *
1713 * res = ecore_evas_extn_socket_listen("svcname", 1, EINA_FALSE);
1714 * if (!res) return;
1715 * @endcode
1716 *
1717 * When a client(plug) connects, you will get the ECORE_EVAS_EXTN_CLIENT_ADD event
1718 * in the ecore event queue, with event_info being the image object pointer
1719 * passed as a void pointer. When a client disconnects you will get the
1720 * ECORE_EVAS_EXTN_CLIENT_DEL event.
1721 *
1722 * You can set up event handles for these events as follows:
1723 *
1724 * @code
1725 * static void client_add_cb(void *data, int event, void *event_info)
1726 * {
1727 * Evas_Object *obj = event_info;
1728 * printf("client added to image object %p\n", obj);
1729 * evas_object_show(obj);
1730 * }
1731 *
1732 * static void client_del_cb(void *data, int event, void *event_info)
1733 * {
1734 * Evas_Object *obj = event_info;
1735 * printf("client deleted from image object %p\n", obj);
1736 * evas_object_hide(obj);
1737 * }
1738 *
1739 * void setup(void)
1740 * {
1741 * ecore_event_handler_add(ECORE_EVAS_EXTN_CLIENT_ADD,
1742 * client_add_cb, NULL);
1743 * ecore_event_handler_add(ECORE_EVAS_EXTN_CLIENT_DEL,
1744 * client_del_cb, NULL);
1745 * }
1746 * @endcode
1747 *
1748 * Note that events come in later after the event happened. You may want to be
1749 * careful as data structures you had associated with the image object
1750 * may have been freed after deleting, but the object may still be around
1751 * awating cleanup and thus still be valid.You can change the size with something like:
1752 *
1753 * @see ecore_evas_extn_socket_listen()
1754 * @see ecore_evas_extn_plug_new()
1755 * @see ecore_evas_extn_plug_object_data_lock()
1756 * @see ecore_evas_extn_plug_object_data_unlock()
1757 *
1758 * @since 1.2
1759 */
1760EAPI Ecore_Evas *ecore_evas_extn_socket_new(int w, int h);
1761
1762/**
1763 * @brief Create a socket to provide the service for external ecore evas socket.
1764 *
1765 * @param svcname The name of the service to be advertised. ensure that it is unique (when combined with @p svcnum) otherwise creation may fail.
1766 * @param svcnum A number (any value, 0 beig the common default) to differentiate multiple instances of services with the same name.
1767 * @param svcsys A boolean that if true, specifies to create a system-wide service all users can connect to, otherwise the service is private to the user ide that created the service.
1768 * @return EINA_TRUE if creation is successful, EINA_FALSE if it does not.
1769 *
1770 * This creates socket specified by @p svcname, @p svcnum and @p svcsys. If creation
1771 * is successful, EINA_TRUE is returned or EINA_FALSE if creation
1772 * fails.
1773 *
1774 * @see ecore_evas_extn_socket_new()
1775 * @see ecore_evas_extn_plug_new()
1776 * @see ecore_evas_extn_plug_object_data_lock()
1777 * @see ecore_evas_extn_plug_object_data_unlock()
1778 *
1779 * @since 1.2
1780 */
1781EAPI Eina_Bool ecore_evas_extn_socket_listen(Ecore_Evas *ee, const char *svcname, int svcnum, Eina_Bool svcsys);
1782
1783/**
1784 * @brief Lock the pixel data so the socket cannot change it
1785 *
1786 * @param obj The image object returned by ecore_evas_extn_plug_new() to lock
1787 *
1788 * You may need to get the image pixel data with evas_object_image_data_get()
1789 * from the image object, but need to ensure that it does not change while
1790 * you are using the data. This function lets you set an advisory lock on the
1791 * image data so the external plug process will not render to it or alter it.
1792 *
1793 * You should only hold the lock for just as long as you need to read out the
1794 * image data or otherwise deal with it, and then unlokc it with
1795 * ecore_evas_extn_plug_object_data_unlock(). Keeping a lock over more than
1796 * 1 iteration of the main ecore loop will be problematic, so avoid it. Also
1797 * forgetting to unlock may cause the socket process to freeze and thus create
1798 * odd behavior.
1799 *
1800 * @see ecore_evas_extn_plug_new()
1801 * @see ecore_evas_extn_plug_object_data_unlock()
1802 *
1803 * @since 1.2
1804 */
1805EAPI void ecore_evas_extn_plug_object_data_lock(Evas_Object *obj);
1806
1807/**
1808 * @brief Unlock the pixel data so the socket can change it again.
1809 *
1810 * @param obj The image object returned by ecore_evas_extn_plug_new() to unlock
1811 *
1812 * This unlocks after an advisor lock has been taken by
1813 * ecore_evas_extn_plug_object_data_lock().
1814 *
1815 * @see ecore_evas_extn_plug_new()
1816 * @see ecore_evas_extn_plug_object_data_lock()
1817 *
1818 * @since 1.2
1819 */
1820EAPI void ecore_evas_extn_plug_object_data_unlock(Evas_Object *obj);
1821
1822/**
1823 * @brief Create a new external ecore evas plug
1824 *
1825 * @param ee_target The Ecore_Evas containing the canvas in which the new image object will live.
1826 * @return An evas image object that will contain the image output of a socket.
1827 *
1828 * This creates an image object that will contain the output of another
1829 * processes socket canvas when it connects. All input will be sent back to
1830 * this process as well, effectively swallowing or placing the socket process
1831 * in the canvas of the plug process in place of the image object. The image
1832 * object by default is created to be filled (equivalent of
1833 * evas_object_image_filled_add() on creation) so image content will scale
1834 * toi fill the image unless otherwise reconfigured. The Ecore_Evas size
1835 * of the plug is the master size and determines size in pixels of the
1836 * plug canvas. You can change the size with something like:
1837 *
1838 * @code
1839 * Eina_Bool res = EINA_FALSE;
1840 * Evas_Object *obj = ecore_evas_extn_plug_new(ee);
1841 *
1842 * res = ecore_evas_extn_plug_connect("svcname", 1, EINA_FALSE);
1843 * if (!res) return;
1844 * ecore_evas_resize(ee, 240, 400);
1845 * @endcode
1846 *
1847 * @see ecore_evas_extn_socket_new()
1848 * @see ecore_evas_extn_plug_connect()
1849 * @since 1.2
1850 */
1851EAPI Evas_Object *ecore_evas_extn_plug_new(Ecore_Evas *ee_target);
1852
1853/**
1854 * @brief Connect a external ecore evas plug to service provided by external ecore evas socket
1855 *
1856 * @param obj The Ecore_Evas containing the canvas in which the new image object will live.
1857 * @param svcname The service name to connect to set up by the socket.
1858 * @param svcnum The service number to connect to (set up by socket).
1859 * @param svcsys Booleain to set if the service is a system one or not (set up by socket).
1860 * @return EINA_TRUE if creation is successful, EINA_FALSE if it does not.
1861 *
1862 *
1863 * @see ecore_evas_extn_plug_new()
1864 *
1865 * @since 1.2
1866 */
1867EAPI Eina_Bool ecore_evas_extn_plug_connect(Evas_Object *obj, const char *svcname, int svcnum, Eina_Bool svcsys);
1868
1869/**
1870 * @}
1871 */
1651 1872
1652/** 1873/**
1653 * @} 1874 * @}
diff --git a/libraries/ecore/src/lib/ecore_evas/Makefile.am b/libraries/ecore/src/lib/ecore_evas/Makefile.am
index fbb7190..a1d9215 100644
--- a/libraries/ecore/src/lib/ecore_evas/Makefile.am
+++ b/libraries/ecore/src/lib/ecore_evas/Makefile.am
@@ -1,8 +1,8 @@
1MAINTAINERCLEANFILES = Makefile.in 1MAINTAINERCLEANFILES = Makefile.in
2 2
3if BUILD_ECORE_X 3if BUILD_ECORE_X
4ECORE_X_INC = -I$(top_srcdir)/src/lib/ecore_x @x_cflags@ @ECORE_XCB_CFLAGS@ 4ECORE_X_INC = -I$(top_srcdir)/src/lib/ecore_x @x_cflags@
5ECORE_X_LIB = $(top_builddir)/src/lib/ecore_x/libecore_x.la @x_libs@ @ECORE_XCB_LIBS@ 5ECORE_X_LIB = $(top_builddir)/src/lib/ecore_x/libecore_x.la @x_libs@
6else 6else
7ECORE_X_INC = 7ECORE_X_INC =
8ECORE_X_LIB = 8ECORE_X_LIB =
@@ -66,6 +66,24 @@ ECORE_PSL1GHT_INC =
66ECORE_PSL1GHT_LIB = 66ECORE_PSL1GHT_LIB =
67endif 67endif
68 68
69if BUILD_ECORE_WAYLAND
70ECORE_WAYLAND_INC = -I$(top_srcdir)/src/lib/ecore_wayland @WAYLAND_CFLAGS@
71ECORE_WAYLAND_LIB = $(top_builddir)/src/lib/ecore_wayland/libecore_wayland.la
72ECORE_WAYLAND_LIBADD = @WAYLAND_LIBS@ $(ECORE_WAYLAND_LIB)
73else
74ECORE_WAYLAND_INC =
75ECORE_WAYLAND_LIB =
76ECORE_WAYLAND_LIBADD =
77endif
78
79if BUILD_ECORE_IPC
80ECORE_IPC_INC= \
81-I$(top_srcdir)/src/lib/ecore_ipc \
82-I$(top_builddir)/src/lib/ecore_ipc
83
84ECORE_IPC_LIB=$(top_builddir)/src/lib/ecore_ipc/libecore_ipc.la
85endif
86
69AM_CPPFLAGS = \ 87AM_CPPFLAGS = \
70-I$(top_srcdir)/src/lib/ecore \ 88-I$(top_srcdir)/src/lib/ecore \
71-I$(top_srcdir)/src/lib/ecore_evas \ 89-I$(top_srcdir)/src/lib/ecore_evas \
@@ -84,9 +102,12 @@ $(ECORE_SDL_INC) \
84$(ECORE_COCOA_INC) \ 102$(ECORE_COCOA_INC) \
85$(ECORE_WINCE_INC) \ 103$(ECORE_WINCE_INC) \
86$(ECORE_PSL1GHT_INC) \ 104$(ECORE_PSL1GHT_INC) \
105$(ECORE_WAYLAND_INC) \
106$(ECORE_IPC_INC) \
87@EVAS_CFLAGS@ \ 107@EVAS_CFLAGS@ \
88@EINA_CFLAGS@ \ 108@EINA_CFLAGS@ \
89@EVIL_CFLAGS@ 109@EVIL_CFLAGS@ \
110@WAYLAND_EGL_CFLAGS@
90 111
91AM_CFLAGS = @WIN32_CFLAGS@ 112AM_CFLAGS = @WIN32_CFLAGS@
92 113
@@ -106,7 +127,10 @@ ecore_evas_sdl.c \
106ecore_evas_cocoa.c \ 127ecore_evas_cocoa.c \
107ecore_evas_wince.c \ 128ecore_evas_wince.c \
108ecore_evas_ews.c \ 129ecore_evas_ews.c \
109ecore_evas_psl1ght.c 130ecore_evas_psl1ght.c \
131ecore_evas_wayland_shm.c \
132ecore_evas_wayland_egl.c \
133ecore_evas_extn.c
110 134
111libecore_evas_la_LIBADD = \ 135libecore_evas_la_LIBADD = \
112$(ECORE_X_LIB) \ 136$(ECORE_X_LIB) \
@@ -117,13 +141,17 @@ $(ECORE_SDL_LIB) \
117$(ECORE_SDL_LIBADD) \ 141$(ECORE_SDL_LIBADD) \
118$(ECORE_COCOA_LIB) \ 142$(ECORE_COCOA_LIB) \
119$(ECORE_WINCE_LIB) \ 143$(ECORE_WINCE_LIB) \
144$(ECORE_IPC_LIB) \
120$(ECORE_PSL1GHT_LIB) \ 145$(ECORE_PSL1GHT_LIB) \
146$(ECORE_WAYLAND_LIB) \
147$(ECORE_WAYLAND_LIBADD) \
121$(top_builddir)/src/lib/ecore_input/libecore_input.la \ 148$(top_builddir)/src/lib/ecore_input/libecore_input.la \
122$(top_builddir)/src/lib/ecore_input_evas/libecore_input_evas.la \ 149$(top_builddir)/src/lib/ecore_input_evas/libecore_input_evas.la \
123$(top_builddir)/src/lib/ecore/libecore.la \ 150$(top_builddir)/src/lib/ecore/libecore.la \
124@EVAS_LIBS@ \ 151@EVAS_LIBS@ \
125@EINA_LIBS@ \ 152@EINA_LIBS@ \
126@EVIL_LIBS@ 153@EVIL_LIBS@ \
154@WAYLAND_EGL_LIBS@
127 155
128libecore_evas_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@ @release_info@ 156libecore_evas_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@ @release_info@
129 157
diff --git a/libraries/ecore/src/lib/ecore_evas/Makefile.in b/libraries/ecore/src/lib/ecore_evas/Makefile.in
index 793e59d..a269b75 100644
--- a/libraries/ecore/src/lib/ecore_evas/Makefile.in
+++ b/libraries/ecore/src/lib/ecore_evas/Makefile.in
@@ -95,11 +95,15 @@ LTLIBRARIES = $(lib_LTLIBRARIES)
95@BUILD_ECORE_COCOA_TRUE@am__DEPENDENCIES_7 = $(top_builddir)/src/lib/ecore_cocoa/libecore_cocoa.la 95@BUILD_ECORE_COCOA_TRUE@am__DEPENDENCIES_7 = $(top_builddir)/src/lib/ecore_cocoa/libecore_cocoa.la
96@BUILD_ECORE_WINCE_TRUE@am__DEPENDENCIES_8 = $(top_builddir)/src/lib/ecore_wince/libecore_wince.la 96@BUILD_ECORE_WINCE_TRUE@am__DEPENDENCIES_8 = $(top_builddir)/src/lib/ecore_wince/libecore_wince.la
97@BUILD_ECORE_PSL1GHT_TRUE@am__DEPENDENCIES_9 = $(top_builddir)/src/lib/ecore_psl1ght/libecore_psl1ght.la 97@BUILD_ECORE_PSL1GHT_TRUE@am__DEPENDENCIES_9 = $(top_builddir)/src/lib/ecore_psl1ght/libecore_psl1ght.la
98@BUILD_ECORE_WAYLAND_TRUE@am__DEPENDENCIES_10 = $(top_builddir)/src/lib/ecore_wayland/libecore_wayland.la
99@BUILD_ECORE_WAYLAND_TRUE@am__DEPENDENCIES_11 = \
100@BUILD_ECORE_WAYLAND_TRUE@ $(am__DEPENDENCIES_10)
98libecore_evas_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ 101libecore_evas_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
99 $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_3) \ 102 $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_3) \
100 $(am__DEPENDENCIES_4) $(am__DEPENDENCIES_5) \ 103 $(am__DEPENDENCIES_4) $(am__DEPENDENCIES_5) \
101 $(am__DEPENDENCIES_6) $(am__DEPENDENCIES_7) \ 104 $(am__DEPENDENCIES_6) $(am__DEPENDENCIES_7) \
102 $(am__DEPENDENCIES_8) $(am__DEPENDENCIES_9) \ 105 $(am__DEPENDENCIES_8) $(ECORE_IPC_LIB) $(am__DEPENDENCIES_9) \
106 $(am__DEPENDENCIES_10) $(am__DEPENDENCIES_11) \
103 $(top_builddir)/src/lib/ecore_input/libecore_input.la \ 107 $(top_builddir)/src/lib/ecore_input/libecore_input.la \
104 $(top_builddir)/src/lib/ecore_input_evas/libecore_input_evas.la \ 108 $(top_builddir)/src/lib/ecore_input_evas/libecore_input_evas.la \
105 $(top_builddir)/src/lib/ecore/libecore.la 109 $(top_builddir)/src/lib/ecore/libecore.la
@@ -107,7 +111,8 @@ am_libecore_evas_la_OBJECTS = ecore_evas.lo ecore_evas_util.lo \
107 ecore_evas_x.lo ecore_evas_fb.lo ecore_evas_buffer.lo \ 111 ecore_evas_x.lo ecore_evas_fb.lo ecore_evas_buffer.lo \
108 ecore_evas_directfb.lo ecore_evas_win32.lo ecore_evas_sdl.lo \ 112 ecore_evas_directfb.lo ecore_evas_win32.lo ecore_evas_sdl.lo \
109 ecore_evas_cocoa.lo ecore_evas_wince.lo ecore_evas_ews.lo \ 113 ecore_evas_cocoa.lo ecore_evas_wince.lo ecore_evas_ews.lo \
110 ecore_evas_psl1ght.lo 114 ecore_evas_psl1ght.lo ecore_evas_wayland_shm.lo \
115 ecore_evas_wayland_egl.lo ecore_evas_extn.lo
111libecore_evas_la_OBJECTS = $(am_libecore_evas_la_OBJECTS) 116libecore_evas_la_OBJECTS = $(am_libecore_evas_la_OBJECTS)
112AM_V_lt = $(am__v_lt_$(V)) 117AM_V_lt = $(am__v_lt_$(V))
113am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) 118am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
@@ -266,10 +271,10 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
266PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 271PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
267PIXMAN_LIBS = @PIXMAN_LIBS@ 272PIXMAN_LIBS = @PIXMAN_LIBS@
268PKG_CONFIG = @PKG_CONFIG@ 273PKG_CONFIG = @PKG_CONFIG@
269PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
270PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
271POSUB = @POSUB@ 274POSUB = @POSUB@
272RANLIB = @RANLIB@ 275RANLIB = @RANLIB@
276SCIM_CFLAGS = @SCIM_CFLAGS@
277SCIM_LIBS = @SCIM_LIBS@
273SDL_CFLAGS = @SDL_CFLAGS@ 278SDL_CFLAGS = @SDL_CFLAGS@
274SDL_CONFIG = @SDL_CONFIG@ 279SDL_CONFIG = @SDL_CONFIG@
275SDL_LIBS = @SDL_LIBS@ 280SDL_LIBS = @SDL_LIBS@
@@ -288,6 +293,10 @@ TSLIB_LIBS = @TSLIB_LIBS@
288USE_NLS = @USE_NLS@ 293USE_NLS = @USE_NLS@
289VERSION = @VERSION@ 294VERSION = @VERSION@
290VMAJ = @VMAJ@ 295VMAJ = @VMAJ@
296WAYLAND_CFLAGS = @WAYLAND_CFLAGS@
297WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
298WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
299WAYLAND_LIBS = @WAYLAND_LIBS@
291WIN32_CFLAGS = @WIN32_CFLAGS@ 300WIN32_CFLAGS = @WIN32_CFLAGS@
292WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 301WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
293WIN32_LIBS = @WIN32_LIBS@ 302WIN32_LIBS = @WIN32_LIBS@
@@ -401,6 +410,8 @@ ecore_imf_cflags = @ecore_imf_cflags@
401ecore_imf_evas_cflags = @ecore_imf_evas_cflags@ 410ecore_imf_evas_cflags = @ecore_imf_evas_cflags@
402ecore_imf_evas_libs = @ecore_imf_evas_libs@ 411ecore_imf_evas_libs = @ecore_imf_evas_libs@
403ecore_imf_libs = @ecore_imf_libs@ 412ecore_imf_libs = @ecore_imf_libs@
413ecore_imf_scim_cflags = @ecore_imf_scim_cflags@
414ecore_imf_scim_libs = @ecore_imf_scim_libs@
404ecore_imf_xim_cflags = @ecore_imf_xim_cflags@ 415ecore_imf_xim_cflags = @ecore_imf_xim_cflags@
405ecore_imf_xim_libs = @ecore_imf_xim_libs@ 416ecore_imf_xim_libs = @ecore_imf_xim_libs@
406ecore_input_cflags = @ecore_input_cflags@ 417ecore_input_cflags = @ecore_input_cflags@
@@ -413,6 +424,8 @@ ecore_psl1ght_cflags = @ecore_psl1ght_cflags@
413ecore_psl1ght_libs = @ecore_psl1ght_libs@ 424ecore_psl1ght_libs = @ecore_psl1ght_libs@
414ecore_sdl_cflags = @ecore_sdl_cflags@ 425ecore_sdl_cflags = @ecore_sdl_cflags@
415ecore_sdl_libs = @ecore_sdl_libs@ 426ecore_sdl_libs = @ecore_sdl_libs@
427ecore_wayland_cflags = @ecore_wayland_cflags@
428ecore_wayland_libs = @ecore_wayland_libs@
416ecore_win32_cflags = @ecore_win32_cflags@ 429ecore_win32_cflags = @ecore_win32_cflags@
417ecore_win32_libs = @ecore_win32_libs@ 430ecore_win32_libs = @ecore_win32_libs@
418ecore_wince_cflags = @ecore_wince_cflags@ 431ecore_wince_cflags = @ecore_wince_cflags@
@@ -457,12 +470,14 @@ requirements_ecore_fb = @requirements_ecore_fb@
457requirements_ecore_file = @requirements_ecore_file@ 470requirements_ecore_file = @requirements_ecore_file@
458requirements_ecore_imf = @requirements_ecore_imf@ 471requirements_ecore_imf = @requirements_ecore_imf@
459requirements_ecore_imf_evas = @requirements_ecore_imf_evas@ 472requirements_ecore_imf_evas = @requirements_ecore_imf_evas@
473requirements_ecore_imf_scim = @requirements_ecore_imf_scim@
460requirements_ecore_imf_xim = @requirements_ecore_imf_xim@ 474requirements_ecore_imf_xim = @requirements_ecore_imf_xim@
461requirements_ecore_input = @requirements_ecore_input@ 475requirements_ecore_input = @requirements_ecore_input@
462requirements_ecore_input_evas = @requirements_ecore_input_evas@ 476requirements_ecore_input_evas = @requirements_ecore_input_evas@
463requirements_ecore_ipc = @requirements_ecore_ipc@ 477requirements_ecore_ipc = @requirements_ecore_ipc@
464requirements_ecore_psl1ght = @requirements_ecore_psl1ght@ 478requirements_ecore_psl1ght = @requirements_ecore_psl1ght@
465requirements_ecore_sdl = @requirements_ecore_sdl@ 479requirements_ecore_sdl = @requirements_ecore_sdl@
480requirements_ecore_wayland = @requirements_ecore_wayland@
466requirements_ecore_win32 = @requirements_ecore_win32@ 481requirements_ecore_win32 = @requirements_ecore_win32@
467requirements_ecore_wince = @requirements_ecore_wince@ 482requirements_ecore_wince = @requirements_ecore_wince@
468requirements_ecore_x = @requirements_ecore_x@ 483requirements_ecore_x = @requirements_ecore_x@
@@ -481,9 +496,9 @@ x_includes = @x_includes@
481x_libs = @x_libs@ 496x_libs = @x_libs@
482MAINTAINERCLEANFILES = Makefile.in 497MAINTAINERCLEANFILES = Makefile.in
483@BUILD_ECORE_X_FALSE@ECORE_X_INC = 498@BUILD_ECORE_X_FALSE@ECORE_X_INC =
484@BUILD_ECORE_X_TRUE@ECORE_X_INC = -I$(top_srcdir)/src/lib/ecore_x @x_cflags@ @ECORE_XCB_CFLAGS@ 499@BUILD_ECORE_X_TRUE@ECORE_X_INC = -I$(top_srcdir)/src/lib/ecore_x @x_cflags@
485@BUILD_ECORE_X_FALSE@ECORE_X_LIB = 500@BUILD_ECORE_X_FALSE@ECORE_X_LIB =
486@BUILD_ECORE_X_TRUE@ECORE_X_LIB = $(top_builddir)/src/lib/ecore_x/libecore_x.la @x_libs@ @ECORE_XCB_LIBS@ 501@BUILD_ECORE_X_TRUE@ECORE_X_LIB = $(top_builddir)/src/lib/ecore_x/libecore_x.la @x_libs@
487@BUILD_ECORE_FB_FALSE@ECORE_FB_INC = 502@BUILD_ECORE_FB_FALSE@ECORE_FB_INC =
488@BUILD_ECORE_FB_TRUE@ECORE_FB_INC = -I$(top_srcdir)/src/lib/ecore_fb 503@BUILD_ECORE_FB_TRUE@ECORE_FB_INC = -I$(top_srcdir)/src/lib/ecore_fb
489@BUILD_ECORE_FB_FALSE@ECORE_FB_LIB = 504@BUILD_ECORE_FB_FALSE@ECORE_FB_LIB =
@@ -514,6 +529,17 @@ MAINTAINERCLEANFILES = Makefile.in
514@BUILD_ECORE_PSL1GHT_TRUE@ECORE_PSL1GHT_INC = -I$(top_srcdir)/src/lib/ecore_psl1ght 529@BUILD_ECORE_PSL1GHT_TRUE@ECORE_PSL1GHT_INC = -I$(top_srcdir)/src/lib/ecore_psl1ght
515@BUILD_ECORE_PSL1GHT_FALSE@ECORE_PSL1GHT_LIB = 530@BUILD_ECORE_PSL1GHT_FALSE@ECORE_PSL1GHT_LIB =
516@BUILD_ECORE_PSL1GHT_TRUE@ECORE_PSL1GHT_LIB = $(top_builddir)/src/lib/ecore_psl1ght/libecore_psl1ght.la 531@BUILD_ECORE_PSL1GHT_TRUE@ECORE_PSL1GHT_LIB = $(top_builddir)/src/lib/ecore_psl1ght/libecore_psl1ght.la
532@BUILD_ECORE_WAYLAND_FALSE@ECORE_WAYLAND_INC =
533@BUILD_ECORE_WAYLAND_TRUE@ECORE_WAYLAND_INC = -I$(top_srcdir)/src/lib/ecore_wayland @WAYLAND_CFLAGS@
534@BUILD_ECORE_WAYLAND_FALSE@ECORE_WAYLAND_LIB =
535@BUILD_ECORE_WAYLAND_TRUE@ECORE_WAYLAND_LIB = $(top_builddir)/src/lib/ecore_wayland/libecore_wayland.la
536@BUILD_ECORE_WAYLAND_FALSE@ECORE_WAYLAND_LIBADD =
537@BUILD_ECORE_WAYLAND_TRUE@ECORE_WAYLAND_LIBADD = @WAYLAND_LIBS@ $(ECORE_WAYLAND_LIB)
538@BUILD_ECORE_IPC_TRUE@ECORE_IPC_INC = \
539@BUILD_ECORE_IPC_TRUE@-I$(top_srcdir)/src/lib/ecore_ipc \
540@BUILD_ECORE_IPC_TRUE@-I$(top_builddir)/src/lib/ecore_ipc
541
542@BUILD_ECORE_IPC_TRUE@ECORE_IPC_LIB = $(top_builddir)/src/lib/ecore_ipc/libecore_ipc.la
517AM_CPPFLAGS = \ 543AM_CPPFLAGS = \
518-I$(top_srcdir)/src/lib/ecore \ 544-I$(top_srcdir)/src/lib/ecore \
519-I$(top_srcdir)/src/lib/ecore_evas \ 545-I$(top_srcdir)/src/lib/ecore_evas \
@@ -532,9 +558,12 @@ $(ECORE_SDL_INC) \
532$(ECORE_COCOA_INC) \ 558$(ECORE_COCOA_INC) \
533$(ECORE_WINCE_INC) \ 559$(ECORE_WINCE_INC) \
534$(ECORE_PSL1GHT_INC) \ 560$(ECORE_PSL1GHT_INC) \
561$(ECORE_WAYLAND_INC) \
562$(ECORE_IPC_INC) \
535@EVAS_CFLAGS@ \ 563@EVAS_CFLAGS@ \
536@EINA_CFLAGS@ \ 564@EINA_CFLAGS@ \
537@EVIL_CFLAGS@ 565@EVIL_CFLAGS@ \
566@WAYLAND_EGL_CFLAGS@
538 567
539AM_CFLAGS = @WIN32_CFLAGS@ 568AM_CFLAGS = @WIN32_CFLAGS@
540lib_LTLIBRARIES = libecore_evas.la 569lib_LTLIBRARIES = libecore_evas.la
@@ -552,7 +581,10 @@ ecore_evas_sdl.c \
552ecore_evas_cocoa.c \ 581ecore_evas_cocoa.c \
553ecore_evas_wince.c \ 582ecore_evas_wince.c \
554ecore_evas_ews.c \ 583ecore_evas_ews.c \
555ecore_evas_psl1ght.c 584ecore_evas_psl1ght.c \
585ecore_evas_wayland_shm.c \
586ecore_evas_wayland_egl.c \
587ecore_evas_extn.c
556 588
557libecore_evas_la_LIBADD = \ 589libecore_evas_la_LIBADD = \
558$(ECORE_X_LIB) \ 590$(ECORE_X_LIB) \
@@ -563,13 +595,17 @@ $(ECORE_SDL_LIB) \
563$(ECORE_SDL_LIBADD) \ 595$(ECORE_SDL_LIBADD) \
564$(ECORE_COCOA_LIB) \ 596$(ECORE_COCOA_LIB) \
565$(ECORE_WINCE_LIB) \ 597$(ECORE_WINCE_LIB) \
598$(ECORE_IPC_LIB) \
566$(ECORE_PSL1GHT_LIB) \ 599$(ECORE_PSL1GHT_LIB) \
600$(ECORE_WAYLAND_LIB) \
601$(ECORE_WAYLAND_LIBADD) \
567$(top_builddir)/src/lib/ecore_input/libecore_input.la \ 602$(top_builddir)/src/lib/ecore_input/libecore_input.la \
568$(top_builddir)/src/lib/ecore_input_evas/libecore_input_evas.la \ 603$(top_builddir)/src/lib/ecore_input_evas/libecore_input_evas.la \
569$(top_builddir)/src/lib/ecore/libecore.la \ 604$(top_builddir)/src/lib/ecore/libecore.la \
570@EVAS_LIBS@ \ 605@EVAS_LIBS@ \
571@EINA_LIBS@ \ 606@EINA_LIBS@ \
572@EVIL_LIBS@ 607@EVIL_LIBS@ \
608@WAYLAND_EGL_LIBS@
573 609
574libecore_evas_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@ @release_info@ 610libecore_evas_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@ @release_info@
575EXTRA_DIST = \ 611EXTRA_DIST = \
@@ -654,10 +690,13 @@ distclean-compile:
654@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecore_evas_cocoa.Plo@am__quote@ 690@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecore_evas_cocoa.Plo@am__quote@
655@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecore_evas_directfb.Plo@am__quote@ 691@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecore_evas_directfb.Plo@am__quote@
656@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecore_evas_ews.Plo@am__quote@ 692@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecore_evas_ews.Plo@am__quote@
693@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecore_evas_extn.Plo@am__quote@
657@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecore_evas_fb.Plo@am__quote@ 694@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecore_evas_fb.Plo@am__quote@
658@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecore_evas_psl1ght.Plo@am__quote@ 695@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecore_evas_psl1ght.Plo@am__quote@
659@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecore_evas_sdl.Plo@am__quote@ 696@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecore_evas_sdl.Plo@am__quote@
660@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecore_evas_util.Plo@am__quote@ 697@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecore_evas_util.Plo@am__quote@
698@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecore_evas_wayland_egl.Plo@am__quote@
699@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecore_evas_wayland_shm.Plo@am__quote@
661@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecore_evas_win32.Plo@am__quote@ 700@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecore_evas_win32.Plo@am__quote@
662@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecore_evas_wince.Plo@am__quote@ 701@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecore_evas_wince.Plo@am__quote@
663@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecore_evas_x.Plo@am__quote@ 702@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecore_evas_x.Plo@am__quote@
diff --git a/libraries/ecore/src/lib/ecore_evas/ecore_evas.c b/libraries/ecore/src/lib/ecore_evas/ecore_evas.c
index dc42f92..2b04488 100644
--- a/libraries/ecore/src/lib/ecore_evas/ecore_evas.c
+++ b/libraries/ecore/src/lib/ecore_evas/ecore_evas.c
@@ -2,14 +2,21 @@
2# include <config.h> 2# include <config.h>
3#endif 3#endif
4 4
5#include <stdlib.h>
5#include <string.h> 6#include <string.h>
6#include <sys/types.h> 7#include <sys/types.h>
7#include <errno.h> 8#include <errno.h>
9#include <sys/stat.h>
10#include <fcntl.h>
8 11
9#ifndef _MSC_VER 12#ifndef _MSC_VER
10# include <unistd.h> 13# include <unistd.h>
11#endif 14#endif
12 15
16#ifdef HAVE_SYS_MMAN_H
17# include <sys/mman.h>
18#endif
19
13#ifdef HAVE_EVIL 20#ifdef HAVE_EVIL
14# include <Evil.h> 21# include <Evil.h>
15#endif 22#endif
@@ -194,6 +201,18 @@ ecore_evas_engine_type_supported_get(Ecore_Evas_Engine_Type engine)
194#else 201#else
195 return EINA_FALSE; 202 return EINA_FALSE;
196#endif 203#endif
204 case ECORE_EVAS_ENGINE_WAYLAND_SHM:
205#ifdef BUILD_ECORE_EVAS_WAYLAND_SHM
206 return EINA_TRUE;
207#else
208 return EINA_FALSE;
209#endif
210 case ECORE_EVAS_ENGINE_WAYLAND_EGL:
211#ifdef BUILD_ECORE_EVAS_WAYLAND_EGL
212 return EINA_TRUE;
213#else
214 return EINA_FALSE;
215#endif
197 default: 216 default:
198 return EINA_FALSE; 217 return EINA_FALSE;
199 }; 218 };
@@ -237,6 +256,8 @@ ecore_evas_init(void)
237 _ecore_evas_ews_events_init(); 256 _ecore_evas_ews_events_init();
238#endif 257#endif
239 258
259 _ecore_evas_extn_init();
260
240 if (getenv("ECORE_EVAS_COMP_NOSYNC")) 261 if (getenv("ECORE_EVAS_COMP_NOSYNC"))
241 _ecore_evas_app_comp_sync = 0; 262 _ecore_evas_app_comp_sync = 0;
242 return _ecore_evas_init_count; 263 return _ecore_evas_init_count;
@@ -257,6 +278,8 @@ ecore_evas_shutdown(void)
257 278
258 while (ecore_evases) _ecore_evas_free(ecore_evases); 279 while (ecore_evases) _ecore_evas_free(ecore_evases);
259 280
281 _ecore_evas_extn_shutdown();
282
260 if (_ecore_evas_fps_debug) _ecore_evas_fps_debug_shutdown(); 283 if (_ecore_evas_fps_debug) _ecore_evas_fps_debug_shutdown();
261 ecore_idle_enterer_del(ecore_evas_idle_enterer); 284 ecore_idle_enterer_del(ecore_evas_idle_enterer);
262 ecore_evas_idle_enterer = NULL; 285 ecore_evas_idle_enterer = NULL;
@@ -282,6 +305,7 @@ ecore_evas_shutdown(void)
282#ifdef BUILD_ECORE_EVAS_SOFTWARE_16_WINCE 305#ifdef BUILD_ECORE_EVAS_SOFTWARE_16_WINCE
283 while (_ecore_evas_wince_shutdown()); 306 while (_ecore_evas_wince_shutdown());
284#endif 307#endif
308
285 if (_ecore_evas_async_events_fd) 309 if (_ecore_evas_async_events_fd)
286 ecore_main_fd_handler_del(_ecore_evas_async_events_fd); 310 ecore_main_fd_handler_del(_ecore_evas_async_events_fd);
287 311
@@ -577,6 +601,40 @@ _ecore_evas_constructor_psl1ght(int x __UNUSED__, int y __UNUSED__, int w, int h
577} 601}
578#endif 602#endif
579 603
604#ifdef BUILD_ECORE_EVAS_WAYLAND_SHM
605static Ecore_Evas *
606_ecore_evas_constructor_wayland_shm(int x, int y, int w, int h, const char *extra_options)
607{
608 char *disp_name = NULL;
609 unsigned int frame = 0;
610 Ecore_Evas *ee;
611
612 _ecore_evas_parse_extra_options_str(extra_options, "display=", &disp_name);
613 _ecore_evas_parse_extra_options_uint(extra_options, "frame=", &frame);
614 ee = ecore_evas_wayland_shm_new(disp_name, x, y, w, h, frame);
615 free(disp_name);
616
617 return ee;
618}
619#endif
620
621#ifdef BUILD_ECORE_EVAS_WAYLAND_EGL
622static Ecore_Evas *
623_ecore_evas_constructor_wayland_egl(int x, int y, int w, int h, const char *extra_options)
624{
625 char *disp_name = NULL;
626 unsigned int frame = 0;
627 Ecore_Evas *ee;
628
629 _ecore_evas_parse_extra_options_str(extra_options, "display=", &disp_name);
630 _ecore_evas_parse_extra_options_uint(extra_options, "frame=", &frame);
631 ee = ecore_evas_wayland_egl_new(disp_name, x, y, w, h, frame);
632 free(disp_name);
633
634 return ee;
635}
636#endif
637
580#ifdef BUILD_ECORE_EVAS_SOFTWARE_GDI 638#ifdef BUILD_ECORE_EVAS_SOFTWARE_GDI
581static Ecore_Evas * 639static Ecore_Evas *
582_ecore_evas_constructor_software_gdi(int x, int y, int w, int h, const char *extra_options) 640_ecore_evas_constructor_software_gdi(int x, int y, int w, int h, const char *extra_options)
@@ -714,7 +772,16 @@ static const struct ecore_evas_engine _engines[] = {
714 {"psl1ght", _ecore_evas_constructor_psl1ght}, 772 {"psl1ght", _ecore_evas_constructor_psl1ght},
715#endif 773#endif
716 774
717 /* Last chance to have a window */ 775 /* Wayland */
776#ifdef BUILD_ECORE_EVAS_WAYLAND_SHM
777 {"wayland_shm", _ecore_evas_constructor_wayland_shm},
778#endif
779
780#ifdef BUILD_ECORE_EVAS_WAYLAND_EGL
781 {"wayland_egl", _ecore_evas_constructor_wayland_egl},
782#endif
783
784 /* Last chance to have a window */
718#ifdef BUILD_ECORE_EVAS_OPENGL_SDL 785#ifdef BUILD_ECORE_EVAS_OPENGL_SDL
719 {"opengl_sdl", _ecore_evas_constructor_opengl_sdl}, 786 {"opengl_sdl", _ecore_evas_constructor_opengl_sdl},
720#endif 787#endif
@@ -1938,7 +2005,7 @@ ecore_evas_fullscreen_get(const Ecore_Evas *ee)
1938 * Set whether or not an Ecore_Evas' window should avoid damage 2005 * Set whether or not an Ecore_Evas' window should avoid damage
1939 * 2006 *
1940 * @param ee The Ecore_Evas 2007 * @param ee The Ecore_Evas
1941 * @param The type of the damage management 2008 * @param on The type of the damage management
1942 * 2009 *
1943 * This function causes @p ee to be drawn to a pixmap to avoid recalculations. 2010 * This function causes @p ee to be drawn to a pixmap to avoid recalculations.
1944 * On expose events it will copy from the pixmap to the window. 2011 * On expose events it will copy from the pixmap to the window.
@@ -2008,8 +2075,8 @@ ecore_evas_withdrawn_get(const Ecore_Evas *ee)
2008 ECORE_MAGIC_FAIL(ee, ECORE_MAGIC_EVAS, 2075 ECORE_MAGIC_FAIL(ee, ECORE_MAGIC_EVAS,
2009 "ecore_evas_withdrawn_get"); 2076 "ecore_evas_withdrawn_get");
2010 return EINA_FALSE; 2077 return EINA_FALSE;
2011 } else 2078 }
2012 return ee->prop.withdrawn ? EINA_TRUE : EINA_FALSE; 2079 return ee->prop.withdrawn ? EINA_TRUE : EINA_FALSE;
2013} 2080}
2014 2081
2015/** 2082/**
@@ -2048,8 +2115,8 @@ ecore_evas_sticky_get(const Ecore_Evas *ee)
2048 ECORE_MAGIC_FAIL(ee, ECORE_MAGIC_EVAS, 2115 ECORE_MAGIC_FAIL(ee, ECORE_MAGIC_EVAS,
2049 "ecore_evas_sticky_get"); 2116 "ecore_evas_sticky_get");
2050 return EINA_FALSE; 2117 return EINA_FALSE;
2051 } else 2118 }
2052 return ee->prop.sticky ? EINA_TRUE : EINA_FALSE; 2119 return ee->prop.sticky ? EINA_TRUE : EINA_FALSE;
2053} 2120}
2054 2121
2055EAPI void 2122EAPI void
@@ -2170,6 +2237,28 @@ ecore_evas_screen_geometry_get(const Ecore_Evas *ee, int *x, int *y, int *w, int
2170 IFE; 2237 IFE;
2171} 2238}
2172 2239
2240EAPI void
2241ecore_evas_draw_frame_set(Ecore_Evas *ee, Eina_Bool draw_frame)
2242{
2243 if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS))
2244 {
2245 ECORE_MAGIC_FAIL(ee, ECORE_MAGIC_EVAS, "ecore_evas_draw_frame_set");
2246 return;
2247 }
2248 ee->prop.draw_frame = draw_frame;
2249}
2250
2251EAPI Eina_Bool
2252ecore_evas_draw_frame_get(const Ecore_Evas *ee)
2253{
2254 if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS))
2255 {
2256 ECORE_MAGIC_FAIL(ee, ECORE_MAGIC_EVAS, "ecore_evas_draw_frame_get");
2257 return EINA_FALSE;
2258 }
2259 return ee->prop.draw_frame;
2260}
2261
2173/* fps debug calls - for debugging how much time your app actually spends */ 2262/* fps debug calls - for debugging how much time your app actually spends */
2174/* rendering graphics... :) */ 2263/* rendering graphics... :) */
2175 2264
@@ -2586,3 +2675,55 @@ ecore_evas_input_event_unregister(Ecore_Evas *ee)
2586{ 2675{
2587 ecore_event_window_unregister((Ecore_Window)ee); 2676 ecore_event_window_unregister((Ecore_Window)ee);
2588} 2677}
2678
2679#if defined(BUILD_ECORE_EVAS_WAYLAND_SHM) || defined (BUILD_ECORE_EVAS_WAYLAND_EGL)
2680EAPI void
2681ecore_evas_wayland_resize(Ecore_Evas *ee, int location)
2682{
2683 if (!ee) return;
2684 if (!strcmp(ee->driver, "wayland_shm"))
2685 {
2686#ifdef BUILD_ECORE_EVAS_WAYLAND_SHM
2687 _ecore_evas_wayland_shm_resize(ee, location);
2688#endif
2689 }
2690 else if (!strcmp(ee->driver, "wayland_egl"))
2691 {
2692#ifdef BUILD_ECORE_EVAS_WAYLAND_EGL
2693 _ecore_evas_wayland_egl_resize(ee, location);
2694#endif
2695 }
2696}
2697
2698EAPI void
2699ecore_evas_wayland_drag_start(Ecore_Evas *ee, Ecore_Evas *drag_ee, void *source)
2700{
2701 if ((!ee) || (!source)) return;
2702 if (!ee->engine.wl.surface) return;
2703
2704 if (!strcmp(ee->driver, "wayland_shm"))
2705 {
2706#ifdef BUILD_ECORE_EVAS_WAYLAND_SHM
2707 _ecore_evas_wayland_shm_drag_start(ee, drag_ee, source);
2708#endif
2709 }
2710 else if (!strcmp(ee->driver, "wayland_egl"))
2711 {
2712#ifdef BUILD_ECORE_EVAS_WAYLAND_EGL
2713 _ecore_evas_wayland_egl_drag_start(ee, drag_ee, source);
2714#endif
2715 }
2716}
2717#else
2718EAPI void
2719ecore_evas_wayland_resize(Ecore_Evas *ee __UNUSED__, int location __UNUSED__)
2720{
2721
2722}
2723
2724EAPI void
2725ecore_evas_wayland_drag_start(Ecore_Evas *ee __UNUSED__, Ecore_Evas *drag_ee __UNUSED__, void *source __UNUSED__)
2726{
2727
2728}
2729#endif
diff --git a/libraries/ecore/src/lib/ecore_evas/ecore_evas_buffer.c b/libraries/ecore/src/lib/ecore_evas/ecore_evas_buffer.c
index a3e49d6..3f82efb 100644
--- a/libraries/ecore/src/lib/ecore_evas/ecore_evas_buffer.c
+++ b/libraries/ecore/src/lib/ecore_evas/ecore_evas_buffer.c
@@ -3,6 +3,7 @@
3#endif 3#endif
4 4
5// NOTE: if you fix this, consider fixing ecore_evas_ews.c as it is similar! 5// NOTE: if you fix this, consider fixing ecore_evas_ews.c as it is similar!
6#include <stdlib.h>
6 7
7#include <Ecore.h> 8#include <Ecore.h>
8#include "ecore_private.h" 9#include "ecore_private.h"
@@ -93,6 +94,12 @@ _ecore_evas_resize(Ecore_Evas *ee, int w, int h)
93 if (ee->func.fn_resize) ee->func.fn_resize(ee); 94 if (ee->func.fn_resize) ee->func.fn_resize(ee);
94} 95}
95 96
97static void
98_ecore_evas_move_resize(Ecore_Evas *ee, int x __UNUSED__, int y __UNUSED__, int w, int h)
99{
100 _ecore_evas_resize(ee, w, h);
101}
102
96int 103int
97_ecore_evas_buffer_shutdown(void) 104_ecore_evas_buffer_shutdown(void)
98{ 105{
@@ -168,6 +175,14 @@ _ecore_evas_buffer_coord_translate(Ecore_Evas *ee, Evas_Coord *x, Evas_Coord *y)
168 if (fw < 1) fw = 1; 175 if (fw < 1) fw = 1;
169 if (fh < 1) fh = 1; 176 if (fh < 1) fh = 1;
170 177
178 if (evas_object_map_get(ee->engine.buffer.image) &&
179 evas_object_map_enable_get(ee->engine.buffer.image))
180 {
181 fx = 0; fy = 0;
182 fw = ee->w; fh = ee->h;
183 ww = ee->w; hh = ee->h;
184 }
185
171 if ((fx == 0) && (fy == 0) && (fw == ww) && (fh == hh)) 186 if ((fx == 0) && (fy == 0) && (fw == ww) && (fh == hh))
172 { 187 {
173 *x = (ee->w * (*x - xx)) / fw; 188 *x = (ee->w * (*x - xx)) / fw;
@@ -188,51 +203,80 @@ _ecore_evas_buffer_coord_translate(Ecore_Evas *ee, Evas_Coord *x, Evas_Coord *y)
188} 203}
189 204
190static void 205static void
191_ecore_evas_buffer_cb_mouse_in(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) 206_ecore_evas_buffer_transfer_modifiers_locks(Evas *e, Evas *e2)
207{
208 const char *mods[] =
209 { "Shift", "Control", "Alt", "Meta", "Hyper", "Super", NULL };
210 const char *locks[] =
211 { "Scroll_Lock", "Num_Lock", "Caps_Lock", NULL };
212 int i;
213
214 for (i = 0; mods[i]; i++)
215 {
216 if (evas_key_modifier_is_set(evas_key_modifier_get(e), mods[i]))
217 evas_key_modifier_on(e2, mods[i]);
218 else
219 evas_key_modifier_off(e2, mods[i]);
220 }
221 for (i = 0; locks[i]; i++)
222 {
223 if (evas_key_lock_is_set(evas_key_lock_get(e), locks[i]))
224 evas_key_lock_on(e2, locks[i]);
225 else
226 evas_key_lock_off(e2, locks[i]);
227 }
228}
229
230static void
231_ecore_evas_buffer_cb_mouse_in(void *data, Evas *e, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
192{ 232{
193 Ecore_Evas *ee; 233 Ecore_Evas *ee;
194 Evas_Event_Mouse_In *ev; 234 Evas_Event_Mouse_In *ev;
195 235
196 ee = data; 236 ee = data;
197 ev = event_info; 237 ev = event_info;
238 _ecore_evas_buffer_transfer_modifiers_locks(e, ee->evas);
198 evas_event_feed_mouse_in(ee->evas, ev->timestamp, NULL); 239 evas_event_feed_mouse_in(ee->evas, ev->timestamp, NULL);
199} 240}
200 241
201static void 242static void
202_ecore_evas_buffer_cb_mouse_out(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) 243_ecore_evas_buffer_cb_mouse_out(void *data, Evas *e, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
203{ 244{
204 Ecore_Evas *ee; 245 Ecore_Evas *ee;
205 Evas_Event_Mouse_Out *ev; 246 Evas_Event_Mouse_Out *ev;
206 247
207 ee = data; 248 ee = data;
208 ev = event_info; 249 ev = event_info;
250 _ecore_evas_buffer_transfer_modifiers_locks(e, ee->evas);
209 evas_event_feed_mouse_out(ee->evas, ev->timestamp, NULL); 251 evas_event_feed_mouse_out(ee->evas, ev->timestamp, NULL);
210} 252}
211 253
212static void 254static void
213_ecore_evas_buffer_cb_mouse_down(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info) 255_ecore_evas_buffer_cb_mouse_down(void *data, Evas *e, Evas_Object *obj __UNUSED__, void *event_info)
214{ 256{
215 Ecore_Evas *ee; 257 Ecore_Evas *ee;
216 Evas_Event_Mouse_Down *ev; 258 Evas_Event_Mouse_Down *ev;
217 259
218 ee = data; 260 ee = data;
219 ev = event_info; 261 ev = event_info;
262 _ecore_evas_buffer_transfer_modifiers_locks(e, ee->evas);
220 evas_event_feed_mouse_down(ee->evas, ev->button, ev->flags, ev->timestamp, NULL); 263 evas_event_feed_mouse_down(ee->evas, ev->button, ev->flags, ev->timestamp, NULL);
221} 264}
222 265
223static void 266static void
224_ecore_evas_buffer_cb_mouse_up(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info) 267_ecore_evas_buffer_cb_mouse_up(void *data, Evas *e, Evas_Object *obj __UNUSED__, void *event_info)
225{ 268{
226 Ecore_Evas *ee; 269 Ecore_Evas *ee;
227 Evas_Event_Mouse_Up *ev; 270 Evas_Event_Mouse_Up *ev;
228 271
229 ee = data; 272 ee = data;
230 ev = event_info; 273 ev = event_info;
274 _ecore_evas_buffer_transfer_modifiers_locks(e, ee->evas);
231 evas_event_feed_mouse_up(ee->evas, ev->button, ev->flags, ev->timestamp, NULL); 275 evas_event_feed_mouse_up(ee->evas, ev->button, ev->flags, ev->timestamp, NULL);
232} 276}
233 277
234static void 278static void
235_ecore_evas_buffer_cb_mouse_move(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info) 279_ecore_evas_buffer_cb_mouse_move(void *data, Evas *e, Evas_Object *obj __UNUSED__, void *event_info)
236{ 280{
237 Ecore_Evas *ee; 281 Ecore_Evas *ee;
238 Evas_Event_Mouse_Move *ev; 282 Evas_Event_Mouse_Move *ev;
@@ -243,22 +287,24 @@ _ecore_evas_buffer_cb_mouse_move(void *data, Evas *e __UNUSED__, Evas_Object *ob
243 x = ev->cur.canvas.x; 287 x = ev->cur.canvas.x;
244 y = ev->cur.canvas.y; 288 y = ev->cur.canvas.y;
245 _ecore_evas_buffer_coord_translate(ee, &x, &y); 289 _ecore_evas_buffer_coord_translate(ee, &x, &y);
290 _ecore_evas_buffer_transfer_modifiers_locks(e, ee->evas);
246 _ecore_evas_mouse_move_process(ee, x, y, ev->timestamp); 291 _ecore_evas_mouse_move_process(ee, x, y, ev->timestamp);
247} 292}
248 293
249static void 294static void
250_ecore_evas_buffer_cb_mouse_wheel(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info) 295_ecore_evas_buffer_cb_mouse_wheel(void *data, Evas *e, Evas_Object *obj __UNUSED__, void *event_info)
251{ 296{
252 Ecore_Evas *ee; 297 Ecore_Evas *ee;
253 Evas_Event_Mouse_Wheel *ev; 298 Evas_Event_Mouse_Wheel *ev;
254 299
255 ee = data; 300 ee = data;
256 ev = event_info; 301 ev = event_info;
302 _ecore_evas_buffer_transfer_modifiers_locks(e, ee->evas);
257 evas_event_feed_mouse_wheel(ee->evas, ev->direction, ev->z, ev->timestamp, NULL); 303 evas_event_feed_mouse_wheel(ee->evas, ev->direction, ev->z, ev->timestamp, NULL);
258} 304}
259 305
260static void 306static void
261_ecore_evas_buffer_cb_multi_down(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info) 307_ecore_evas_buffer_cb_multi_down(void *data, Evas *e, Evas_Object *obj __UNUSED__, void *event_info)
262{ 308{
263 Ecore_Evas *ee; 309 Ecore_Evas *ee;
264 Evas_Event_Multi_Down *ev; 310 Evas_Event_Multi_Down *ev;
@@ -274,11 +320,12 @@ _ecore_evas_buffer_cb_multi_down(void *data, Evas *e __UNUSED__, Evas_Object *ob
274 _ecore_evas_buffer_coord_translate(ee, &x, &y); 320 _ecore_evas_buffer_coord_translate(ee, &x, &y);
275 xf = (ev->canvas.xsub - (double)xx) + (double)x; 321 xf = (ev->canvas.xsub - (double)xx) + (double)x;
276 yf = (ev->canvas.ysub - (double)yy) + (double)y; 322 yf = (ev->canvas.ysub - (double)yy) + (double)y;
323 _ecore_evas_buffer_transfer_modifiers_locks(e, ee->evas);
277 evas_event_feed_multi_down(ee->evas, ev->device, x, y, ev->radius, ev->radius_x, ev->radius_y, ev->pressure, ev->angle, xf, yf, ev->flags, ev->timestamp, NULL); 324 evas_event_feed_multi_down(ee->evas, ev->device, x, y, ev->radius, ev->radius_x, ev->radius_y, ev->pressure, ev->angle, xf, yf, ev->flags, ev->timestamp, NULL);
278} 325}
279 326
280static void 327static void
281_ecore_evas_buffer_cb_multi_up(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info) 328_ecore_evas_buffer_cb_multi_up(void *data, Evas *e, Evas_Object *obj __UNUSED__, void *event_info)
282{ 329{
283 Ecore_Evas *ee; 330 Ecore_Evas *ee;
284 Evas_Event_Multi_Up *ev; 331 Evas_Event_Multi_Up *ev;
@@ -294,11 +341,12 @@ _ecore_evas_buffer_cb_multi_up(void *data, Evas *e __UNUSED__, Evas_Object *obj
294 _ecore_evas_buffer_coord_translate(ee, &x, &y); 341 _ecore_evas_buffer_coord_translate(ee, &x, &y);
295 xf = (ev->canvas.xsub - (double)xx) + (double)x; 342 xf = (ev->canvas.xsub - (double)xx) + (double)x;
296 yf = (ev->canvas.ysub - (double)yy) + (double)y; 343 yf = (ev->canvas.ysub - (double)yy) + (double)y;
344 _ecore_evas_buffer_transfer_modifiers_locks(e, ee->evas);
297 evas_event_feed_multi_up(ee->evas, ev->device, x, y, ev->radius, ev->radius_x, ev->radius_y, ev->pressure, ev->angle, xf, yf, ev->flags, ev->timestamp, NULL); 345 evas_event_feed_multi_up(ee->evas, ev->device, x, y, ev->radius, ev->radius_x, ev->radius_y, ev->pressure, ev->angle, xf, yf, ev->flags, ev->timestamp, NULL);
298} 346}
299 347
300static void 348static void
301_ecore_evas_buffer_cb_multi_move(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info) 349_ecore_evas_buffer_cb_multi_move(void *data, Evas *e, Evas_Object *obj __UNUSED__, void *event_info)
302{ 350{
303 Ecore_Evas *ee; 351 Ecore_Evas *ee;
304 Evas_Event_Multi_Move *ev; 352 Evas_Event_Multi_Move *ev;
@@ -314,6 +362,7 @@ _ecore_evas_buffer_cb_multi_move(void *data, Evas *e __UNUSED__, Evas_Object *ob
314 _ecore_evas_buffer_coord_translate(ee, &x, &y); 362 _ecore_evas_buffer_coord_translate(ee, &x, &y);
315 xf = (ev->cur.canvas.xsub - (double)xx) + (double)x; 363 xf = (ev->cur.canvas.xsub - (double)xx) + (double)x;
316 yf = (ev->cur.canvas.ysub - (double)yy) + (double)y; 364 yf = (ev->cur.canvas.ysub - (double)yy) + (double)y;
365 _ecore_evas_buffer_transfer_modifiers_locks(e, ee->evas);
317 evas_event_feed_multi_move(ee->evas, ev->device, x, y, ev->radius, ev->radius_x, ev->radius_y, ev->pressure, ev->angle, xf, yf, ev->timestamp, NULL); 366 evas_event_feed_multi_move(ee->evas, ev->device, x, y, ev->radius, ev->radius_x, ev->radius_y, ev->pressure, ev->angle, xf, yf, ev->timestamp, NULL);
318} 367}
319 368
@@ -334,42 +383,7 @@ _ecore_evas_buffer_cb_key_down(void *data, Evas *e, Evas_Object *obj __UNUSED__,
334 383
335 ee = data; 384 ee = data;
336 ev = event_info; 385 ev = event_info;
337 if (evas_key_modifier_is_set(evas_key_modifier_get(e), "Shift")) 386 _ecore_evas_buffer_transfer_modifiers_locks(e, ee->evas);
338 evas_key_modifier_on(ee->evas, "Shift");
339 else
340 evas_key_modifier_off(ee->evas, "Shift");
341 if (evas_key_modifier_is_set(evas_key_modifier_get(e), "Control"))
342 evas_key_modifier_on(ee->evas, "Control");
343 else
344 evas_key_modifier_off(ee->evas, "Control");
345 if (evas_key_modifier_is_set(evas_key_modifier_get(e), "Alt"))
346 evas_key_modifier_on(ee->evas, "Alt");
347 else
348 evas_key_modifier_off(ee->evas, "Alt");
349 if (evas_key_modifier_is_set(evas_key_modifier_get(e), "Meta"))
350 evas_key_modifier_on(ee->evas, "Meta");
351 else
352 evas_key_modifier_off(ee->evas, "Meta");
353 if (evas_key_modifier_is_set(evas_key_modifier_get(e), "Hyper"))
354 evas_key_modifier_on(ee->evas, "Hyper");
355 else
356 evas_key_modifier_off(ee->evas, "Hyper");
357 if (evas_key_modifier_is_set(evas_key_modifier_get(e), "Super"))
358 evas_key_modifier_on(ee->evas, "Super");
359 else
360 evas_key_modifier_off(ee->evas, "Super");
361 if (evas_key_lock_is_set(evas_key_lock_get(e), "Scroll_Lock"))
362 evas_key_lock_on(ee->evas, "Scroll_Lock");
363 else
364 evas_key_lock_off(ee->evas, "Scroll_Lock");
365 if (evas_key_lock_is_set(evas_key_lock_get(e), "Num_Lock"))
366 evas_key_lock_on(ee->evas, "Num_Lock");
367 else
368 evas_key_lock_off(ee->evas, "Num_Lock");
369 if (evas_key_lock_is_set(evas_key_lock_get(e), "Caps_Lock"))
370 evas_key_lock_on(ee->evas, "Caps_Lock");
371 else
372 evas_key_lock_off(ee->evas, "Caps_Lock");
373 evas_event_feed_key_down(ee->evas, ev->keyname, ev->key, ev->string, ev->compose, ev->timestamp, NULL); 387 evas_event_feed_key_down(ee->evas, ev->keyname, ev->key, ev->string, ev->compose, ev->timestamp, NULL);
374} 388}
375 389
@@ -381,42 +395,7 @@ _ecore_evas_buffer_cb_key_up(void *data, Evas *e, Evas_Object *obj __UNUSED__, v
381 395
382 ee = data; 396 ee = data;
383 ev = event_info; 397 ev = event_info;
384 if (evas_key_modifier_is_set(evas_key_modifier_get(e), "Shift")) 398 _ecore_evas_buffer_transfer_modifiers_locks(e, ee->evas);
385 evas_key_modifier_on(ee->evas, "Shift");
386 else
387 evas_key_modifier_off(ee->evas, "Shift");
388 if (evas_key_modifier_is_set(evas_key_modifier_get(e), "Control"))
389 evas_key_modifier_on(ee->evas, "Control");
390 else
391 evas_key_modifier_off(ee->evas, "Control");
392 if (evas_key_modifier_is_set(evas_key_modifier_get(e), "Alt"))
393 evas_key_modifier_on(ee->evas, "Alt");
394 else
395 evas_key_modifier_off(ee->evas, "Alt");
396 if (evas_key_modifier_is_set(evas_key_modifier_get(e), "Meta"))
397 evas_key_modifier_on(ee->evas, "Meta");
398 else
399 evas_key_modifier_off(ee->evas, "Meta");
400 if (evas_key_modifier_is_set(evas_key_modifier_get(e), "Hyper"))
401 evas_key_modifier_on(ee->evas, "Hyper");
402 else
403 evas_key_modifier_off(ee->evas, "Hyper");
404 if (evas_key_modifier_is_set(evas_key_modifier_get(e), "Super"))
405 evas_key_modifier_on(ee->evas, "Super");
406 else
407 evas_key_modifier_off(ee->evas, "Super");
408 if (evas_key_lock_is_set(evas_key_lock_get(e), "Scroll_Lock"))
409 evas_key_lock_on(ee->evas, "Scroll_Lock");
410 else
411 evas_key_lock_off(ee->evas, "Scroll_Lock");
412 if (evas_key_lock_is_set(evas_key_lock_get(e), "Num_Lock"))
413 evas_key_lock_on(ee->evas, "Num_Lock");
414 else
415 evas_key_lock_off(ee->evas, "Num_Lock");
416 if (evas_key_lock_is_set(evas_key_lock_get(e), "Caps_Lock"))
417 evas_key_lock_on(ee->evas, "Caps_Lock");
418 else
419 evas_key_lock_off(ee->evas, "Caps_Lock");
420 evas_event_feed_key_up(ee->evas, ev->keyname, ev->key, ev->string, ev->compose, ev->timestamp, NULL); 399 evas_event_feed_key_up(ee->evas, ev->keyname, ev->key, ev->string, ev->compose, ev->timestamp, NULL);
421} 400}
422 401
@@ -469,6 +448,20 @@ _ecore_evas_buffer_alpha_set(Ecore_Evas *ee, int alpha)
469 ee->alpha = alpha; 448 ee->alpha = alpha;
470 if (ee->engine.buffer.image) 449 if (ee->engine.buffer.image)
471 evas_object_image_alpha_set(ee->engine.buffer.image, ee->alpha); 450 evas_object_image_alpha_set(ee->engine.buffer.image, ee->alpha);
451 else
452 {
453 Evas_Engine_Info_Buffer *einfo;
454
455 einfo = (Evas_Engine_Info_Buffer *)evas_engine_info_get(ee->evas);
456 if (einfo)
457 {
458 if (ee->alpha)
459 einfo->info.depth_type = EVAS_ENGINE_BUFFER_DEPTH_ARGB32;
460 else
461 einfo->info.depth_type = EVAS_ENGINE_BUFFER_DEPTH_RGB32;
462 evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo);
463 }
464 }
472} 465}
473 466
474static Ecore_Evas_Engine_Func _ecore_buffer_engine_func = 467static Ecore_Evas_Engine_Func _ecore_buffer_engine_func =
@@ -491,7 +484,7 @@ static Ecore_Evas_Engine_Func _ecore_buffer_engine_func =
491 NULL, 484 NULL,
492 NULL, 485 NULL,
493 _ecore_evas_resize, 486 _ecore_evas_resize,
494 NULL, 487 _ecore_evas_move_resize,
495 NULL, 488 NULL,
496 NULL, 489 NULL,
497 _ecore_evas_show, 490 _ecore_evas_show,
@@ -520,7 +513,7 @@ static Ecore_Evas_Engine_Func _ecore_buffer_engine_func =
520 _ecore_evas_buffer_alpha_set, 513 _ecore_evas_buffer_alpha_set,
521 NULL, //transparent 514 NULL, //transparent
522 515
523 NULL, // render 516 _ecore_evas_buffer_render,
524 NULL // screen_geometry_get 517 NULL // screen_geometry_get
525}; 518};
526#endif 519#endif
@@ -604,7 +597,7 @@ ecore_evas_buffer_allocfunc_new(int w, int h, void *(*alloc_func) (void *data, i
604 einfo = (Evas_Engine_Info_Buffer *)evas_engine_info_get(ee->evas); 597 einfo = (Evas_Engine_Info_Buffer *)evas_engine_info_get(ee->evas);
605 if (einfo) 598 if (einfo)
606 { 599 {
607 einfo->info.depth_type = EVAS_ENGINE_BUFFER_DEPTH_ARGB32; 600 einfo->info.depth_type = EVAS_ENGINE_BUFFER_DEPTH_RGB32;
608 einfo->info.dest_buffer = ee->engine.buffer.pixels; 601 einfo->info.dest_buffer = ee->engine.buffer.pixels;
609 einfo->info.dest_buffer_row_bytes = ee->w * sizeof(int); 602 einfo->info.dest_buffer_row_bytes = ee->w * sizeof(int);
610 einfo->info.use_color_key = 0; 603 einfo->info.use_color_key = 0;
@@ -636,7 +629,6 @@ ecore_evas_buffer_allocfunc_new(int w, int h, void *(*alloc_func) (void *data, i
636 629
637 evas_event_feed_mouse_in(ee->evas, 0, NULL); 630 evas_event_feed_mouse_in(ee->evas, 0, NULL);
638 631
639 ee->engine.func->fn_render = _ecore_evas_buffer_render;
640 _ecore_evas_register(ee); 632 _ecore_evas_register(ee);
641 633
642 evas_event_feed_mouse_in(ee->evas, (unsigned int)((unsigned long long)(ecore_time_get() * 1000.0) & 0xffffffff), NULL); 634 evas_event_feed_mouse_in(ee->evas, (unsigned int)((unsigned long long)(ecore_time_get() * 1000.0) & 0xffffffff), NULL);
@@ -818,8 +810,6 @@ ecore_evas_object_image_new(Ecore_Evas *ee_target)
818 810
819 ee_target->sub_ecore_evas = eina_list_append(ee_target->sub_ecore_evas, ee); 811 ee_target->sub_ecore_evas = eina_list_append(ee_target->sub_ecore_evas, ee);
820 812
821 ee->engine.func->fn_render = _ecore_evas_buffer_render;
822
823 return o; 813 return o;
824#else 814#else
825 return NULL; 815 return NULL;
diff --git a/libraries/ecore/src/lib/ecore_evas/ecore_evas_cocoa.c b/libraries/ecore/src/lib/ecore_evas/ecore_evas_cocoa.c
index 1f946d5..36d41f8 100644
--- a/libraries/ecore/src/lib/ecore_evas/ecore_evas_cocoa.c
+++ b/libraries/ecore/src/lib/ecore_evas/ecore_evas_cocoa.c
@@ -568,7 +568,7 @@ ecore_evas_cocoa_new(Ecore_Cocoa_Window *parent, int x, int y, int w, int h)
568#else 568#else
569 ERR("Cocoa support in ecore-evas not enabled"); 569 ERR("Cocoa support in ecore-evas not enabled");
570 return NULL; 570 return NULL;
571 parent = NULL; 571 (void) parent;
572 x = y = w = h = 0; 572 (void) x; (void) y; (void) w; (void) h;
573#endif 573#endif
574} 574}
diff --git a/libraries/ecore/src/lib/ecore_evas/ecore_evas_ews.c b/libraries/ecore/src/lib/ecore_evas/ecore_evas_ews.c
index e19fb05..eccf98b 100644
--- a/libraries/ecore/src/lib/ecore_evas/ecore_evas_ews.c
+++ b/libraries/ecore/src/lib/ecore_evas/ecore_evas_ews.c
@@ -2,6 +2,11 @@
2# include <config.h> 2# include <config.h>
3#endif 3#endif
4 4
5#include <stdlib.h>
6#include <string.h>
7#include <sys/types.h>
8
9#include <Eina.h>
5#include <Ecore.h> 10#include <Ecore.h>
6#include "ecore_private.h" 11#include "ecore_private.h"
7#include <Ecore_Input.h> 12#include <Ecore_Input.h>
diff --git a/libraries/ecore/src/lib/ecore_evas/ecore_evas_extn.c b/libraries/ecore/src/lib/ecore_evas/ecore_evas_extn.c
new file mode 100644
index 0000000..e46ab4a
--- /dev/null
+++ b/libraries/ecore/src/lib/ecore_evas/ecore_evas_extn.c
@@ -0,0 +1,2152 @@
1#ifdef HAVE_CONFIG_H
2# include <config.h>
3#endif
4
5#include <stdlib.h>
6#include <unistd.h>
7
8#include <Ecore.h>
9#include "ecore_private.h"
10#include <Ecore_Input.h>
11
12#ifdef BUILD_ECORE_IPC
13# ifdef BUILD_ECORE_EVAS_SOFTWARE_BUFFER
14# define EXTN_ENABLED 1
15# endif
16#endif
17
18#include "ecore_evas_private.h"
19#include "Ecore_Evas.h"
20#ifdef EXTN_ENABLED
21#include "Ecore_Ipc.h"
22
23#include <stdio.h>
24#include <stdlib.h>
25#include <sys/types.h>
26#include <unistd.h>
27#include <math.h>
28#include <time.h>
29#include <sys/mman.h>
30#include <sys/stat.h>
31#include <fcntl.h>
32#include <string.h>
33#include <sys/file.h>
34
35typedef struct _Shmfile Shmfile;
36
37struct _Shmfile
38{
39 int fd;
40 int size;
41 void *addr;
42 const char *file;
43};
44
45static int blank = 0x00000000;
46
47static Shmfile *
48shmfile_new(const char *base, int id, int size, Eina_Bool sys)
49{
50 Shmfile *sf;
51 char file[PATH_MAX];
52
53 sf = calloc(1, sizeof(Shmfile));
54 do
55 {
56 mode_t mode;
57
58 snprintf(file, sizeof(file), "/%s-%i-%i.%i.%i",
59 base, id, (int)time(NULL), (int)getpid(), (int)rand());
60 mode = S_IRUSR | S_IWUSR;
61 if (sys) mode |= S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH;
62 sf->fd = shm_open(file, O_RDWR | O_CREAT | O_EXCL, mode);
63 }
64 while (sf->fd < 0);
65
66 sf->file = eina_stringshare_add(file);
67 if (!sf->file)
68 {
69 close(sf->fd);
70 shm_unlink(sf->file);
71 eina_stringshare_del(sf->file);
72 free(sf);
73 return NULL;
74 }
75 sf->size = size;
76 if (ftruncate(sf->fd, size) < 0)
77 {
78 close(sf->fd);
79 shm_unlink(sf->file);
80 eina_stringshare_del(sf->file);
81 free(sf);
82 return NULL;
83 }
84 sf->addr = mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_SHARED, sf->fd, 0);
85 if (sf->addr == MAP_FAILED)
86 {
87 close(sf->fd);
88 shm_unlink(sf->file);
89 eina_stringshare_del(sf->file);
90 free(sf);
91 return NULL;
92 }
93 return sf;
94}
95
96void
97shmfile_free(Shmfile *sf)
98{
99 munmap(sf->addr, sf->size);
100 close(sf->fd);
101 shm_unlink(sf->file);
102 eina_stringshare_del(sf->file);
103 free(sf);
104}
105
106static Shmfile *
107shmfile_open(const char *ref, int size, Eina_Bool sys)
108{
109 Shmfile *sf;
110 mode_t mode;
111
112 sf = calloc(1, sizeof(Shmfile));
113 mode = S_IRUSR | S_IWUSR;
114 if (sys) mode |= S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH;
115 sf->fd = shm_open(ref, O_RDWR, mode);
116 if (sf->fd < 0)
117 {
118 free(sf);
119 return NULL;
120 }
121 sf->file = eina_stringshare_add(ref);
122 if (!sf->file)
123 {
124 close(sf->fd);
125 eina_stringshare_del(sf->file);
126 free(sf);
127 return NULL;
128 }
129 sf->size = size;
130 sf->addr = mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_SHARED, sf->fd, 0);
131 if (sf->addr == MAP_FAILED)
132 {
133 close(sf->fd);
134 eina_stringshare_del(sf->file);
135 free(sf);
136 return NULL;
137 }
138 return sf;
139}
140
141void
142shmfile_close(Shmfile *sf)
143{
144 munmap(sf->addr, sf->size);
145 close(sf->fd);
146 eina_stringshare_del(sf->file);
147 free(sf);
148}
149
150// procotol version - change this as needed
151#define MAJOR 0x1011
152
153enum // opcodes
154{
155 OP_RESIZE,
156 OP_SHOW,
157 OP_HIDE,
158 OP_FOCUS,
159 OP_UNFOCUS,
160 OP_UPDATE,
161 OP_UPDATE_DONE,
162 OP_LOCK_FILE,
163 OP_SHM_REF,
164 OP_EV_MOUSE_IN,
165 OP_EV_MOUSE_OUT,
166 OP_EV_MOUSE_UP,
167 OP_EV_MOUSE_DOWN,
168 OP_EV_MOUSE_MOVE,
169 OP_EV_MOUSE_WHEEL,
170 OP_EV_MULTI_UP,
171 OP_EV_MULTI_DOWN,
172 OP_EV_MULTI_MOVE,
173 OP_EV_KEY_UP,
174 OP_EV_KEY_DOWN,
175 OP_EV_HOLD
176};
177
178enum
179{
180 MOD_SHIFT = (1 << 0),
181 MOD_CTRL = (1 << 1),
182 MOD_ALT = (1 << 2),
183 MOD_META = (1 << 3),
184 MOD_HYPER = (1 << 4),
185 MOD_SUPER = (1 << 5),
186 MOD_CAPS = (1 << 6),
187 MOD_NUM = (1 << 7),
188 MOD_SCROLL = (1 << 8),
189};
190
191typedef struct _Ipc_Data_Resize Ipc_Data_Resize;
192typedef struct _Ipc_Data_Update Ipc_Data_Update;
193typedef struct _Ipc_Data_Ev_Mouse_In Ipc_Data_Ev_Mouse_In;
194typedef struct _Ipc_Data_Ev_Mouse_Out Ipc_Data_Ev_Mouse_Out;
195typedef struct _Ipc_Data_Ev_Mouse_Up Ipc_Data_Ev_Mouse_Up;
196typedef struct _Ipc_Data_Ev_Mouse_Down Ipc_Data_Ev_Mouse_Down;
197typedef struct _Ipc_Data_Ev_Mouse_Move Ipc_Data_Ev_Mouse_Move;
198typedef struct _Ipc_Data_Ev_Mouse_Wheel Ipc_Data_Ev_Mouse_Wheel;
199typedef struct _Ipc_Data_Ev_Hold Ipc_Data_Ev_Hold;
200typedef struct _Ipc_Data_Ev_Multi_Up Ipc_Data_Ev_Multi_Up;
201typedef struct _Ipc_Data_Ev_Multi_Down Ipc_Data_Ev_Multi_Down;
202typedef struct _Ipc_Data_Ev_Multi_Move Ipc_Data_Ev_Multi_Move;
203typedef struct _Ipc_Data_Ev_Key_Up Ipc_Data_Ev_Key_Up;
204typedef struct _Ipc_Data_Ev_Key_Down Ipc_Data_Ev_Key_Down;
205
206struct _Ipc_Data_Resize
207{
208 int w, h;
209};
210
211struct _Ipc_Data_Update
212{
213 int x, w, y, h;
214};
215
216struct _Ipc_Data_Ev_Mouse_In
217{
218 unsigned int timestamp;
219 int mask;
220 Evas_Event_Flags event_flags;
221};
222
223struct _Ipc_Data_Ev_Mouse_Out
224{
225 unsigned int timestamp;
226 int mask;
227 Evas_Event_Flags event_flags;
228};
229
230struct _Ipc_Data_Ev_Mouse_Up
231{
232 int b;
233 Evas_Button_Flags flags;
234 int mask;
235 unsigned int timestamp;
236 Evas_Event_Flags event_flags;
237};
238
239struct _Ipc_Data_Ev_Mouse_Down
240{
241 int b;
242 Evas_Button_Flags flags;
243 int mask;
244 unsigned int timestamp;
245 Evas_Event_Flags event_flags;
246};
247
248struct _Ipc_Data_Ev_Mouse_Move
249{
250 int x, y;
251 Evas_Button_Flags flags;
252 int mask;
253 unsigned int timestamp;
254 Evas_Event_Flags event_flags;
255};
256
257struct _Ipc_Data_Ev_Mouse_Wheel
258{
259 int direction, z;
260 Evas_Button_Flags flags;
261 int mask;
262 unsigned int timestamp;
263 Evas_Event_Flags event_flags;
264};
265
266struct _Ipc_Data_Ev_Hold
267{
268 int hold;
269 unsigned int timestamp;
270 Evas_Event_Flags event_flags;
271};
272
273struct _Ipc_Data_Ev_Multi_Up
274{
275 Evas_Button_Flags flags;
276 int d, x, y;
277 double rad, radx, rady, pres, ang, fx, fy;
278 int mask;
279 unsigned int timestamp;
280 Evas_Event_Flags event_flags;
281};
282
283struct _Ipc_Data_Ev_Multi_Down
284{
285 Evas_Button_Flags flags;
286 int d, x, y;
287 double rad, radx, rady, pres, ang, fx, fy;
288 int mask;
289 unsigned int timestamp;
290 Evas_Event_Flags event_flags;
291};
292
293struct _Ipc_Data_Ev_Multi_Move
294{
295 int d, x, y;
296 double rad, radx, rady, pres, ang, fx, fy;
297 int mask;
298 unsigned int timestamp;
299 Evas_Event_Flags event_flags;
300};
301
302struct _Ipc_Data_Ev_Key_Up
303{
304 const char *keyname, *key, *string, *compose;
305 int mask;
306 unsigned int timestamp;
307 Evas_Event_Flags event_flags;
308};
309
310struct _Ipc_Data_Ev_Key_Down
311{
312 const char *keyname, *key, *string, *compose;
313 int mask;
314 unsigned int timestamp;
315 Evas_Event_Flags event_flags;
316};
317
318typedef struct _Extn Extn;
319
320struct _Extn
321{
322 struct {
323 Ecore_Ipc_Server *server;
324 Eina_List *clients;
325 Eina_List *handlers;
326 Eina_Bool am_server : 1;
327 } ipc;
328 struct {
329 const char *name;
330 int num;
331 Eina_Bool sys : 1;
332 } svc;
333 struct {
334 const char *lock;
335 int lockfd;
336 const char *shm;
337 int w, h;
338 Shmfile *shmfile;
339 Eina_List *updates;
340 Eina_Bool have_lock : 1;
341 } file;
342};
343
344static Eina_List *extn_ee_list = NULL;
345
346EAPI int ECORE_EVAS_EXTN_CLIENT_ADD = 0;
347EAPI int ECORE_EVAS_EXTN_CLIENT_DEL = 0;
348
349void
350_ecore_evas_extn_init(void)
351{
352 if (ECORE_EVAS_EXTN_CLIENT_ADD) return;
353 ECORE_EVAS_EXTN_CLIENT_ADD = ecore_event_type_new();
354 ECORE_EVAS_EXTN_CLIENT_DEL = ecore_event_type_new();
355}
356
357void
358_ecore_evas_extn_shutdown(void)
359{
360}
361
362static void
363_ecore_evas_extn_event_free(void *data, void *ev __UNUSED__)
364{
365 Ecore_Evas *ee = data;
366 if (ee->engine.buffer.image)
367 evas_object_unref(ee->engine.buffer.image);
368 _ecore_evas_unref(ee);
369}
370
371static void
372_ecore_evas_extn_event(Ecore_Evas *ee, int event)
373{
374 _ecore_evas_ref(ee);
375 if (ee->engine.buffer.image)
376 evas_object_ref(ee->engine.buffer.image);
377 ecore_event_add(event, ee->engine.buffer.image,
378 _ecore_evas_extn_event_free, ee);
379}
380
381static void
382_ecore_evas_socket_lock(Ecore_Evas *ee)
383{
384 Extn *extn;
385
386 extn = ee->engine.buffer.data;
387 if (!extn) return;
388 if (extn->file.lockfd < 0) return;
389 if (extn->file.have_lock) return;
390 flock(extn->file.lockfd, LOCK_EX);
391 extn->file.have_lock = EINA_TRUE;
392}
393
394static void
395_ecore_evas_socket_unlock(Ecore_Evas *ee)
396{
397 Extn *extn;
398
399 extn = ee->engine.buffer.data;
400 if (!extn) return;
401 if (extn->file.lockfd < 0) return;
402 if (!extn->file.have_lock) return;
403 flock(extn->file.lockfd, LOCK_UN);
404 extn->file.have_lock = EINA_FALSE;
405}
406
407static void
408_ecore_evas_extn_plug_targer_render_pre(void *data, Evas *e __UNUSED__, void *event_info __UNUSED__)
409{
410 Ecore_Evas *ee = data;
411 if (ee) _ecore_evas_socket_lock(ee);
412}
413
414static void
415_ecore_evas_extn_plug_targer_render_post(void *data, Evas *e __UNUSED__, void *event_info __UNUSED__)
416{
417 Ecore_Evas *ee = data;
418 if (ee) _ecore_evas_socket_unlock(ee);
419}
420
421static void
422_ecore_evas_extn_plug_image_obj_del(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
423{
424 Ecore_Evas *ee = data;
425 if (ee) ecore_evas_free(ee);
426}
427
428static void
429_ecore_evas_extn_coord_translate(Ecore_Evas *ee, Evas_Coord *x, Evas_Coord *y)
430{
431 Evas_Coord xx, yy, ww, hh, fx, fy, fw, fh;
432
433 evas_object_geometry_get(ee->engine.buffer.image, &xx, &yy, &ww, &hh);
434 evas_object_image_fill_get(ee->engine.buffer.image, &fx, &fy, &fw, &fh);
435
436 if (fw < 1) fw = 1;
437 if (fh < 1) fh = 1;
438
439 if (evas_object_map_get(ee->engine.buffer.image) &&
440 evas_object_map_enable_get(ee->engine.buffer.image))
441 {
442 fx = 0; fy = 0;
443 fw = ee->w; fh = ee->h;
444 ww = ee->w; hh = ee->h;
445 }
446
447 if ((fx == 0) && (fy == 0) && (fw == ww) && (fh == hh))
448 {
449 *x = (ee->w * (*x - xx)) / fw;
450 *y = (ee->h * (*y - yy)) / fh;
451 }
452 else
453 {
454 xx = (*x - xx) - fx;
455 while (xx < 0) xx += fw;
456 while (xx > fw) xx -= fw;
457 *x = (ee->w * xx) / fw;
458
459 yy = (*y - yy) - fy;
460 while (yy < 0) yy += fh;
461 while (yy > fh) yy -= fh;
462 *y = (ee->h * yy) / fh;
463 }
464}
465
466static void
467_ecore_evas_extn_free(Ecore_Evas *ee)
468{
469 Extn *extn;
470 Ecore_Ipc_Client *client;
471
472 extn = ee->engine.buffer.data;
473 if (extn)
474 {
475 Ecore_Event_Handler *hdl;
476
477 if (extn->file.have_lock)
478 _ecore_evas_socket_unlock(ee);
479 if (extn->file.lockfd)
480 {
481 close(extn->file.lockfd);
482 if (extn->ipc.am_server)
483 {
484 if (extn->file.lock) unlink(extn->file.lock);
485 }
486 }
487 if (extn->svc.name) eina_stringshare_del(extn->svc.name);
488 if (extn->ipc.clients)
489 {
490 EINA_LIST_FREE(extn->ipc.clients, client)
491 ecore_ipc_client_del(client);
492 }
493 if (extn->ipc.server) ecore_ipc_server_del(extn->ipc.server);
494 if (extn->file.lock) eina_stringshare_del(extn->file.lock);
495 if (extn->file.shm) eina_stringshare_del(extn->file.shm);
496 if (extn->file.shmfile)
497 {
498 if (extn->ipc.am_server)
499 shmfile_free(extn->file.shmfile);
500 else
501 shmfile_close(extn->file.shmfile);
502 }
503
504 EINA_LIST_FREE(extn->ipc.handlers, hdl)
505 ecore_event_handler_del(hdl);
506 free(extn);
507 ecore_ipc_shutdown();
508 ee->engine.buffer.data = NULL;
509 }
510 if (ee->engine.buffer.image)
511 {
512 Ecore_Evas *ee2;
513
514 evas_object_event_callback_del_full(ee->engine.buffer.image,
515 EVAS_CALLBACK_DEL,
516 _ecore_evas_extn_plug_image_obj_del,
517 ee);
518 evas_event_callback_del_full(evas_object_evas_get(ee->engine.buffer.image),
519 EVAS_CALLBACK_RENDER_PRE,
520 _ecore_evas_extn_plug_targer_render_pre,
521 ee);
522 evas_event_callback_del_full(evas_object_evas_get(ee->engine.buffer.image),
523 EVAS_CALLBACK_RENDER_POST,
524 _ecore_evas_extn_plug_targer_render_post,
525 ee);
526 evas_object_del(ee->engine.buffer.image);
527 ee2 = evas_object_data_get(ee->engine.buffer.image, "Ecore_Evas_Parent");
528 if (ee2)
529 {
530 ee2->sub_ecore_evas = eina_list_remove(ee2->sub_ecore_evas, ee);
531 }
532 }
533 extn_ee_list = eina_list_remove(extn_ee_list, ee);
534}
535
536static void
537_ecore_evas_resize(Ecore_Evas *ee, int w, int h)
538{
539 if (w < 1) w = 1;
540 if (h < 1) h = 1;
541 ee->req.w = w;
542 ee->req.h = h;
543 if ((w == ee->w) && (h == ee->h)) return;
544 ee->w = w;
545 ee->h = h;
546
547 /*
548 * No need for it if not used later.
549 Extn *extn;
550
551 extn = ee->engine.buffer.data;
552 */
553 if (ee->engine.buffer.image)
554 evas_object_image_size_set(ee->engine.buffer.image, ee->w, ee->h);
555 /* Server can have many plugs, so I block resize comand from client to server *
556 if ((extn) && (extn->ipc.server))
557 {
558 Ipc_Data_Resize ipc;
559
560 ipc.w = ee->w;
561 ipc.h = ee->h;
562 ecore_ipc_server_send(extn->ipc.server, MAJOR, OP_RESIZE, 0, 0, 0, &ipc, sizeof(ipc));
563 }*/
564 if (ee->func.fn_resize) ee->func.fn_resize(ee);
565}
566
567static void
568_ecore_evas_move_resize(Ecore_Evas *ee, int x __UNUSED__, int y __UNUSED__, int w, int h)
569{
570 _ecore_evas_resize(ee, w, h);
571}
572
573static int
574_ecore_evas_modifiers_locks_mask_get(Evas *e)
575{
576 int mask = 0;
577
578 if (evas_key_modifier_is_set(evas_key_modifier_get(e), "Shift"))
579 mask |= MOD_SHIFT;
580 if (evas_key_modifier_is_set(evas_key_modifier_get(e), "Control"))
581 mask |= MOD_CTRL;
582 if (evas_key_modifier_is_set(evas_key_modifier_get(e), "Alt"))
583 mask |= MOD_ALT;
584 if (evas_key_modifier_is_set(evas_key_modifier_get(e), "Meta"))
585 mask |= MOD_META;
586 if (evas_key_modifier_is_set(evas_key_modifier_get(e), "Hyper"))
587 mask |= MOD_HYPER;
588 if (evas_key_modifier_is_set(evas_key_modifier_get(e), "Super"))
589 mask |= MOD_SUPER;
590 if (evas_key_lock_is_set(evas_key_lock_get(e), "Scroll_Lock"))
591 mask |= MOD_SCROLL;
592 if (evas_key_lock_is_set(evas_key_lock_get(e), "Num_Lock"))
593 mask |= MOD_NUM;
594 if (evas_key_lock_is_set(evas_key_lock_get(e), "Caps_Lock"))
595 mask |= MOD_CAPS;
596 return mask;
597}
598
599static void
600_ecore_evas_modifiers_locks_mask_set(Evas *e, int mask)
601{
602 if (mask & MOD_SHIFT) evas_key_modifier_on (e, "Shift");
603 else evas_key_modifier_off(e, "Shift");
604 if (mask & MOD_CTRL) evas_key_modifier_on (e, "Control");
605 else evas_key_modifier_off(e, "Control");
606 if (mask & MOD_ALT) evas_key_modifier_on (e, "Alt");
607 else evas_key_modifier_off(e, "Alt");
608 if (mask & MOD_META) evas_key_modifier_on (e, "Meta");
609 else evas_key_modifier_off(e, "Meta");
610 if (mask & MOD_HYPER) evas_key_modifier_on (e, "Hyper");
611 else evas_key_modifier_off(e, "Hyper");
612 if (mask & MOD_SUPER) evas_key_modifier_on (e, "Super");
613 else evas_key_modifier_off(e, "Super");
614 if (mask & MOD_SCROLL) evas_key_lock_on (e, "Scroll_Lock");
615 else evas_key_lock_off(e, "Scroll_Lock");
616 if (mask & MOD_NUM) evas_key_lock_on (e, "Num_Lock");
617 else evas_key_lock_off(e, "Num_Lock");
618 if (mask & MOD_CAPS) evas_key_lock_on (e, "Caps_Lock");
619 else evas_key_lock_off(e, "Caps_Lock");
620}
621
622static void
623_ecore_evas_extn_cb_mouse_in(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
624{
625 Ecore_Evas *ee = data;
626 Evas_Event_Mouse_In *ev = event_info;
627 Extn *extn;
628
629 extn = ee->engine.buffer.data;
630 if (!extn) return;
631 if (extn->ipc.server)
632 {
633 Ipc_Data_Ev_Mouse_In ipc;
634
635 ipc.timestamp = ev->timestamp;
636 ipc.mask = _ecore_evas_modifiers_locks_mask_get(ee->evas);
637 ipc.event_flags = ev->event_flags;
638 ecore_ipc_server_send(extn->ipc.server, MAJOR, OP_EV_MOUSE_IN, 0, 0, 0, &ipc, sizeof(ipc));
639 }
640}
641
642static void
643_ecore_evas_extn_cb_mouse_out(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
644{
645 Ecore_Evas *ee = data;
646 Evas_Event_Mouse_Out *ev = event_info;
647 Extn *extn;
648
649 extn = ee->engine.buffer.data;
650 if (!extn) return;
651 if (extn->ipc.server)
652 {
653 Ipc_Data_Ev_Mouse_Out ipc;
654
655 ipc.timestamp = ev->timestamp;
656 ipc.mask = _ecore_evas_modifiers_locks_mask_get(ee->evas);
657 ipc.event_flags = ev->event_flags;
658 ecore_ipc_server_send(extn->ipc.server, MAJOR, OP_EV_MOUSE_OUT, 0, 0, 0, &ipc, sizeof(ipc));
659 }
660}
661
662static void
663_ecore_evas_extn_cb_mouse_down(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
664{
665 Ecore_Evas *ee = data;
666 Evas_Event_Mouse_Down *ev = event_info;
667 Extn *extn;
668
669 extn = ee->engine.buffer.data;
670 if (!extn) return;
671 if (extn->ipc.server)
672 {
673 Ipc_Data_Ev_Mouse_Down ipc;
674
675 ipc.b = ev->button;
676 ipc.flags = ev->flags;
677 ipc.timestamp = ev->timestamp;
678 ipc.mask = _ecore_evas_modifiers_locks_mask_get(ee->evas);
679 ipc.event_flags = ev->event_flags;
680 ecore_ipc_server_send(extn->ipc.server, MAJOR, OP_EV_MOUSE_DOWN, 0, 0, 0, &ipc, sizeof(ipc));
681 }
682}
683
684static void
685_ecore_evas_extn_cb_mouse_up(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
686{
687 Ecore_Evas *ee = data;
688 Evas_Event_Mouse_Up *ev = event_info;
689 Extn *extn;
690
691 extn = ee->engine.buffer.data;
692 if (!extn) return;
693 if (extn->ipc.server)
694 {
695 Ipc_Data_Ev_Mouse_Up ipc;
696
697 ipc.b = ev->button;
698 ipc.flags = ev->flags;
699 ipc.timestamp = ev->timestamp;
700 ipc.mask = _ecore_evas_modifiers_locks_mask_get(ee->evas);
701 ipc.event_flags = ev->event_flags;
702 ecore_ipc_server_send(extn->ipc.server, MAJOR, OP_EV_MOUSE_UP, 0, 0, 0, &ipc, sizeof(ipc));
703 }
704}
705
706static void
707_ecore_evas_extn_cb_mouse_move(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
708{
709 Ecore_Evas *ee = data;
710 Evas_Event_Mouse_Move *ev = event_info;
711 Extn *extn;
712
713 extn = ee->engine.buffer.data;
714 if (!extn) return;
715 if (extn->ipc.server)
716 {
717 Ipc_Data_Ev_Mouse_Move ipc;
718 Evas_Coord x, y;
719
720 x = ev->cur.canvas.x;
721 y = ev->cur.canvas.y;
722 _ecore_evas_extn_coord_translate(ee, &x, &y);
723 ipc.x = x;
724 ipc.y = y;
725 ipc.timestamp = ev->timestamp;
726 ipc.mask = _ecore_evas_modifiers_locks_mask_get(ee->evas);
727 ipc.event_flags = ev->event_flags;
728 ecore_ipc_server_send(extn->ipc.server, MAJOR, OP_EV_MOUSE_MOVE, 0, 0, 0, &ipc, sizeof(ipc));
729 }
730}
731
732static void
733_ecore_evas_extn_cb_mouse_wheel(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
734{
735 Ecore_Evas *ee = data;
736 Evas_Event_Mouse_Wheel *ev = event_info;
737 Extn *extn;
738
739 extn = ee->engine.buffer.data;
740 if (!extn) return;
741 if (extn->ipc.server)
742 {
743 Ipc_Data_Ev_Mouse_Wheel ipc;
744
745 ipc.direction = ev->direction;
746 ipc.z = ev->z;
747 ipc.timestamp = ev->timestamp;
748 ipc.mask = _ecore_evas_modifiers_locks_mask_get(ee->evas);
749 ipc.event_flags = ev->event_flags;
750 ecore_ipc_server_send(extn->ipc.server, MAJOR, OP_EV_MOUSE_WHEEL, 0, 0, 0, &ipc, sizeof(ipc));
751 }
752}
753
754static void
755_ecore_evas_extn_cb_multi_down(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
756{
757 Ecore_Evas *ee = data;
758 Evas_Event_Multi_Down *ev = event_info;
759 Extn *extn;
760
761 extn = ee->engine.buffer.data;
762 if (!extn) return;
763 if (extn->ipc.server)
764 {
765 Ipc_Data_Ev_Multi_Down ipc;
766 Evas_Coord x, y;
767
768 ipc.d = ev->device;
769 x = ev->canvas.x;
770 y = ev->canvas.y;
771 _ecore_evas_extn_coord_translate(ee, &x, &y);
772 ipc.x = x;
773 ipc.y = y;
774 ipc.rad = ev->radius;
775 ipc.radx = ev->radius_x;
776 ipc.rady = ev->radius_y;
777 ipc.pres = ev->pressure;
778 ipc.ang = ev->angle;
779 ipc.fx = ev->canvas.xsub;
780 ipc.fy = ev->canvas.ysub;
781 ipc.flags = ev->flags;
782 ipc.timestamp = ev->timestamp;
783 ipc.mask = _ecore_evas_modifiers_locks_mask_get(ee->evas);
784 ipc.event_flags = ev->event_flags;
785 ecore_ipc_server_send(extn->ipc.server, MAJOR, OP_EV_MULTI_DOWN, 0, 0, 0, &ipc, sizeof(ipc));
786 }
787}
788
789
790static void
791_ecore_evas_extn_cb_multi_up(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
792{
793 Ecore_Evas *ee = data;
794 Evas_Event_Multi_Up *ev = event_info;
795 Extn *extn;
796
797 extn = ee->engine.buffer.data;
798 if (!extn) return;
799 if (extn->ipc.server)
800 {
801 Ipc_Data_Ev_Multi_Up ipc;
802 Evas_Coord x, y;
803
804 ipc.d = ev->device;
805 x = ev->canvas.x;
806 y = ev->canvas.y;
807 _ecore_evas_extn_coord_translate(ee, &x, &y);
808 ipc.x = x;
809 ipc.y = y;
810 ipc.rad = ev->radius;
811 ipc.radx = ev->radius_x;
812 ipc.rady = ev->radius_y;
813 ipc.pres = ev->pressure;
814 ipc.ang = ev->angle;
815 ipc.fx = ev->canvas.xsub;
816 ipc.fy = ev->canvas.ysub;
817 ipc.flags = ev->flags;
818 ipc.timestamp = ev->timestamp;
819 ipc.mask = _ecore_evas_modifiers_locks_mask_get(ee->evas);
820 ipc.event_flags = ev->event_flags;
821 ecore_ipc_server_send(extn->ipc.server, MAJOR, OP_EV_MULTI_UP, 0, 0, 0, &ipc, sizeof(ipc));
822 }
823}
824
825static void
826_ecore_evas_extn_cb_multi_move(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
827{
828 Ecore_Evas *ee = data;
829 Evas_Event_Multi_Move *ev = event_info;
830 Extn *extn;
831
832 extn = ee->engine.buffer.data;
833 if (!extn) return;
834 if (extn->ipc.server)
835 {
836 Ipc_Data_Ev_Multi_Move ipc;
837 Evas_Coord x, y;
838
839 ipc.d = ev->device;
840 x = ev->cur.canvas.x;
841 y = ev->cur.canvas.y;
842 _ecore_evas_extn_coord_translate(ee, &x, &y);
843 ipc.x = x;
844 ipc.y = y;
845 ipc.rad = ev->radius;
846 ipc.radx = ev->radius_x;
847 ipc.rady = ev->radius_y;
848 ipc.pres = ev->pressure;
849 ipc.ang = ev->angle;
850 ipc.fx = ev->cur.canvas.xsub;
851 ipc.fy = ev->cur.canvas.ysub;
852 ipc.timestamp = ev->timestamp;
853 ipc.mask = _ecore_evas_modifiers_locks_mask_get(ee->evas);
854 ipc.event_flags = ev->event_flags;
855 ecore_ipc_server_send(extn->ipc.server, MAJOR, OP_EV_MULTI_MOVE, 0, 0, 0, &ipc, sizeof(ipc));
856 }
857}
858
859static void
860_ecore_evas_extn_cb_free(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
861{
862 Ecore_Evas *ee;
863
864 ee = data;
865 if (ee->driver) _ecore_evas_free(ee);
866}
867
868static void
869_ecore_evas_extn_cb_key_down(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
870{
871 Ecore_Evas *ee = data;
872 Evas_Event_Key_Down *ev = event_info;
873 Extn *extn;
874
875 extn = ee->engine.buffer.data;
876 if (!extn) return;
877 if (extn->ipc.server)
878 {
879 Ipc_Data_Ev_Key_Down *ipc;
880 char *st, *p;
881 int len = 0;
882
883 len = sizeof(Ipc_Data_Ev_Key_Down);
884 if (ev->key) len += strlen(ev->key) + 1;
885 if (ev->keyname) len += strlen(ev->keyname) + 1;
886 if (ev->string) len += strlen(ev->string) + 1;
887 if (ev->compose) len += strlen(ev->compose) + 1;
888 len += 1;
889 st = alloca(len);
890 ipc = (Ipc_Data_Ev_Key_Down *)st;
891 memset(st, 0, len);
892 p = st + sizeof(Ipc_Data_Ev_Key_Down);
893 if (ev->key)
894 {
895 strcpy(p, ev->key);
896 ipc->key = p - (long)st;
897 p += strlen(p) + 1;
898 }
899 if (ev->keyname)
900 {
901 strcpy(p, ev->keyname);
902 ipc->keyname = p - (long)st;
903 p += strlen(p) + 1;
904 }
905 if (ev->string)
906 {
907 strcpy(p, ev->string);
908 ipc->string = p - (long)st;
909 p += strlen(p) + 1;
910 }
911 if (ev->compose)
912 {
913 strcpy(p, ev->compose);
914 ipc->compose = p - (long)st;
915 p += strlen(p) + 1;
916 }
917 ipc->timestamp = ev->timestamp;
918 ipc->mask = _ecore_evas_modifiers_locks_mask_get(ee->evas);
919 ipc->event_flags = ev->event_flags;
920 ecore_ipc_server_send(extn->ipc.server, MAJOR, OP_EV_KEY_DOWN, 0, 0, 0, ipc, len);
921 }
922}
923
924static void
925_ecore_evas_extn_cb_key_up(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
926{
927 Ecore_Evas *ee = data;
928 Evas_Event_Key_Up *ev = event_info;
929 Extn *extn;
930
931 extn = ee->engine.buffer.data;
932 if (!extn) return;
933 if (extn->ipc.server)
934 {
935 Ipc_Data_Ev_Key_Up *ipc;
936 char *st, *p;
937 int len = 0;
938
939 len = sizeof(Ipc_Data_Ev_Key_Up);
940 if (ev->key) len += strlen(ev->key) + 1;
941 if (ev->keyname) len += strlen(ev->keyname) + 1;
942 if (ev->string) len += strlen(ev->string) + 1;
943 if (ev->compose) len += strlen(ev->compose) + 1;
944 len += 1;
945 st = alloca(len);
946 ipc = (Ipc_Data_Ev_Key_Up *)st;
947 memset(st, 0, len);
948 p = st + sizeof(Ipc_Data_Ev_Key_Down);
949 if (ev->key)
950 {
951 strcpy(p, ev->key);
952 ipc->key = p - (long)st;
953 p += strlen(p) + 1;
954 }
955 if (ev->keyname)
956 {
957 strcpy(p, ev->keyname);
958 ipc->keyname = p - (long)st;
959 p += strlen(p) + 1;
960 }
961 if (ev->string)
962 {
963 strcpy(p, ev->string);
964 ipc->string = p - (long)st;
965 p += strlen(p) + 1;
966 }
967 if (ev->compose)
968 {
969 strcpy(p, ev->compose);
970 ipc->compose = p - (long)st;
971 p += strlen(p) + 1;
972 }
973 ipc->timestamp = ev->timestamp;
974 ipc->mask = _ecore_evas_modifiers_locks_mask_get(ee->evas);
975 ipc->event_flags = ev->event_flags;
976 ecore_ipc_server_send(extn->ipc.server, MAJOR, OP_EV_KEY_UP, 0, 0, 0, ipc, len);
977 }
978}
979
980static void
981_ecore_evas_extn_cb_hold(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
982{
983 Ecore_Evas *ee = data;
984 Evas_Event_Hold *ev = event_info;
985 Extn *extn;
986
987 extn = ee->engine.buffer.data;
988 if (!extn) return;
989 if (extn->ipc.server)
990 {
991 Ipc_Data_Ev_Hold ipc;
992
993 ipc.hold = ev->hold;
994 ipc.timestamp = ev->timestamp;
995 ipc.event_flags = ev->event_flags;
996 ecore_ipc_server_send(extn->ipc.server, MAJOR, OP_EV_HOLD, 0, 0, 0, &ipc, sizeof(ipc));
997 }
998}
999
1000static void
1001_ecore_evas_extn_cb_focus_in(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
1002{
1003 Ecore_Evas *ee;
1004 Extn *extn;
1005
1006 ee = data;
1007 ee->prop.focused = 1;
1008 extn = ee->engine.buffer.data;
1009 if (!extn) return;
1010 if (!extn->ipc.server) return;
1011 ecore_ipc_server_send(extn->ipc.server, MAJOR, OP_FOCUS, 0, 0, 0, NULL, 0);
1012}
1013
1014static void
1015_ecore_evas_extn_cb_focus_out(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
1016{
1017 Ecore_Evas *ee;
1018 Extn *extn;
1019
1020 ee = data;
1021 ee->prop.focused = 0;
1022 extn = ee->engine.buffer.data;
1023 if (!extn) return;
1024 if (!extn->ipc.server) return;
1025 ecore_ipc_server_send(extn->ipc.server, MAJOR, OP_UNFOCUS, 0, 0, 0, NULL, 0);
1026}
1027
1028static void
1029_ecore_evas_extn_cb_show(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
1030{
1031 Ecore_Evas *ee;
1032 Extn *extn;
1033
1034 ee = data;
1035 ee->visible = 1;
1036 extn = ee->engine.buffer.data;
1037 if (!extn) return;
1038 if (!extn->ipc.server) return;
1039 ecore_ipc_server_send(extn->ipc.server, MAJOR, OP_SHOW, 0, 0, 0, NULL, 0);
1040}
1041
1042static void
1043_ecore_evas_extn_cb_hide(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
1044{
1045 Ecore_Evas *ee;
1046 Extn *extn;
1047
1048 ee = data;
1049 ee->visible = 0;
1050 extn = ee->engine.buffer.data;
1051 if (!extn) return;
1052 if (!extn->ipc.server) return;
1053 ecore_ipc_server_send(extn->ipc.server, MAJOR, OP_HIDE, 0, 0, 0, NULL, 0);
1054}
1055
1056static const Ecore_Evas_Engine_Func _ecore_extn_plug_engine_func =
1057{
1058 _ecore_evas_extn_free,
1059 NULL,
1060 NULL,
1061 NULL,
1062 NULL,
1063 NULL,
1064 NULL,
1065 NULL,
1066 NULL,
1067 NULL,
1068 NULL,
1069 NULL,
1070 NULL,
1071 NULL,
1072 NULL,
1073 NULL,
1074 NULL,
1075 _ecore_evas_resize,
1076 _ecore_evas_move_resize,
1077 NULL,
1078 NULL,
1079 NULL,
1080 NULL,
1081 NULL,
1082 NULL,
1083 NULL,
1084 NULL,
1085 NULL,
1086 NULL,
1087 NULL,
1088 NULL,
1089 NULL,
1090 NULL,
1091 NULL,
1092 NULL,
1093 NULL,
1094 NULL,
1095 NULL,
1096 NULL,
1097 NULL,
1098 NULL,
1099 NULL,
1100 NULL,
1101 NULL,
1102 NULL,
1103 NULL, //transparent
1104
1105 NULL, // render
1106 NULL // screen_geometry_get
1107};
1108
1109static Eina_Bool
1110_ipc_server_add(void *data, int type __UNUSED__, void *event)
1111{
1112 Ecore_Ipc_Event_Server_Add *e = event;
1113 Ecore_Evas *ee = data;
1114 Extn *extn;
1115
1116 if (ee != ecore_ipc_server_data_get(e->server))
1117 return ECORE_CALLBACK_PASS_ON;
1118 if (!eina_list_data_find(extn_ee_list, ee))
1119 return ECORE_CALLBACK_PASS_ON;
1120 extn = ee->engine.buffer.data;
1121 if (!extn) return ECORE_CALLBACK_PASS_ON;
1122 //FIXME: find a way to let app know server there
1123 return ECORE_CALLBACK_PASS_ON;
1124}
1125
1126static Eina_Bool
1127_ipc_server_del(void *data, int type __UNUSED__, void *event)
1128{
1129 Ecore_Ipc_Event_Server_Del *e = event;
1130 Ecore_Evas *ee = data;
1131 Extn *extn;
1132
1133 extn = ee->engine.buffer.data;
1134 if (!extn) return ECORE_CALLBACK_PASS_ON;
1135 if (extn->ipc.server != e->server) return ECORE_CALLBACK_PASS_ON;
1136 evas_object_image_data_set(ee->engine.buffer.image, NULL);
1137 ee->engine.buffer.pixels = NULL;
1138 if (extn->file.shmfile)
1139 {
1140 shmfile_close(extn->file.shmfile);
1141 extn->file.shmfile = NULL;
1142 }
1143 if (extn->file.shm)
1144 {
1145 eina_stringshare_del(extn->file.shm);
1146 extn->file.shm = NULL;
1147 }
1148 extn->ipc.server = NULL;
1149 if (ee->func.fn_delete_request) ee->func.fn_delete_request(ee);
1150 return ECORE_CALLBACK_PASS_ON;
1151}
1152
1153static Eina_Bool
1154_ipc_server_data(void *data, int type __UNUSED__, void *event)
1155{
1156 Ecore_Ipc_Event_Server_Data *e = event;
1157 Ecore_Evas *ee = data;
1158 Extn *extn;
1159
1160 if (ee != ecore_ipc_server_data_get(e->server))
1161 return ECORE_CALLBACK_PASS_ON;
1162 if (!eina_list_data_find(extn_ee_list, ee))
1163 return ECORE_CALLBACK_PASS_ON;
1164 extn = ee->engine.buffer.data;
1165 if (!extn) return ECORE_CALLBACK_PASS_ON;
1166 if (e->major != MAJOR)
1167 return ECORE_CALLBACK_PASS_ON;
1168 switch (e->minor)
1169 {
1170 case OP_UPDATE:
1171 // add rect to update list
1172 if (e->size >= (int)sizeof(Ipc_Data_Update))
1173 {
1174 Ipc_Data_Update *ipc = malloc(sizeof(Ipc_Data_Update));
1175 if (ipc)
1176 {
1177 memcpy(ipc, e->data, sizeof(Ipc_Data_Update));
1178 extn->file.updates = eina_list_append(extn->file.updates, ipc);
1179 }
1180 }
1181 break;
1182 case OP_UPDATE_DONE:
1183 // updates finished being sent - done now. frame ready
1184 {
1185 Ipc_Data_Update *ipc;
1186
1187 EINA_LIST_FREE(extn->file.updates, ipc)
1188 {
1189 if (ee->engine.buffer.image)
1190 evas_object_image_data_update_add(ee->engine.buffer.image,
1191 ipc->x, ipc->y,
1192 ipc->w, ipc->h);
1193 }
1194 }
1195 break;
1196 case OP_LOCK_FILE:
1197 if ((e->data) && (e->size > 0) &&
1198 (((unsigned char *)e->data)[e->size - 1] == 0))
1199 {
1200 if (extn->file.lockfd) close(extn->file.lockfd);
1201 if (extn->file.lock) eina_stringshare_del(extn->file.lock);
1202 extn->file.lock = eina_stringshare_add(e->data);
1203 extn->file.lockfd = open(extn->file.lock, O_RDONLY);
1204 }
1205 break;
1206 case OP_SHM_REF:
1207 // e->ref == w
1208 // e->ref_to == h
1209 // e->response == alpha
1210 // e->data = shm ref string + nul byte
1211 if ((e->data) && ((unsigned char *)e->data)[e->size - 1] == 0)
1212 {
1213 ee->engine.buffer.pixels = NULL;
1214 if (extn->file.shmfile)
1215 {
1216 shmfile_close(extn->file.shmfile);
1217 extn->file.shmfile = NULL;
1218 }
1219 if (extn->file.shm)
1220 {
1221 eina_stringshare_del(extn->file.shm);
1222 extn->file.shm = NULL;
1223 }
1224 if ((e->ref > 0) && (e->ref_to > 0))
1225 {
1226 extn->file.w = e->ref;
1227 extn->file.h = e->ref_to;
1228 extn->file.shm = eina_stringshare_add(e->data);
1229 extn->file.shmfile = shmfile_open(extn->file.shm,
1230 extn->file.w *
1231 extn->file.h * 4,
1232 EINA_TRUE);
1233 if (extn->file.shmfile)
1234 {
1235 ee->engine.buffer.pixels = extn->file.shmfile->addr;
1236 if (ee->engine.buffer.image)
1237 {
1238 if (e->response)
1239 evas_object_image_alpha_set(ee->engine.buffer.image,
1240 EINA_TRUE);
1241 else
1242 evas_object_image_alpha_set(ee->engine.buffer.image,
1243 EINA_FALSE);
1244 evas_object_image_size_set(ee->engine.buffer.image,
1245 extn->file.w,
1246 extn->file.h);
1247 evas_object_image_data_set(ee->engine.buffer.image,
1248 ee->engine.buffer.pixels);
1249 evas_object_image_data_update_add(ee->engine.buffer.image,
1250 0, 0,
1251 extn->file.w,
1252 extn->file.h);
1253 _ecore_evas_resize(ee,
1254 extn->file.w,
1255 extn->file.h);
1256 }
1257 else
1258 evas_object_image_data_set(ee->engine.buffer.image, NULL);
1259 }
1260 else
1261 evas_object_image_data_set(ee->engine.buffer.image, NULL);
1262 }
1263 else
1264 evas_object_image_data_set(ee->engine.buffer.image, NULL);
1265 }
1266 break;
1267 case OP_RESIZE:
1268 if ((e->data) && (e->size >= (int)sizeof(Ipc_Data_Resize)))
1269 {
1270 Ipc_Data_Resize *ipc = e->data;
1271 _ecore_evas_resize(ee, ipc->w, ipc->h);
1272 }
1273 break;
1274 default:
1275 break;
1276 }
1277 return ECORE_CALLBACK_PASS_ON;
1278}
1279#else
1280void
1281_ecore_evas_extn_init(void)
1282{
1283}
1284
1285void
1286_ecore_evas_extn_shutdown(void)
1287{
1288}
1289#endif
1290
1291EAPI Evas_Object *
1292ecore_evas_extn_plug_new(Ecore_Evas *ee_target)
1293{
1294#ifdef EXTN_ENABLED
1295 Evas_Object *o;
1296 Ecore_Evas *ee;
1297 int w = 1, h = 1;
1298
1299 if (!ee_target) return NULL;
1300
1301 ee = calloc(1, sizeof(Ecore_Evas));
1302 if (!ee) return NULL;
1303
1304 o = evas_object_image_filled_add(ee_target->evas);
1305 evas_object_image_content_hint_set(o, EVAS_IMAGE_CONTENT_HINT_DYNAMIC);
1306 evas_object_image_colorspace_set(o, EVAS_COLORSPACE_ARGB8888);
1307 evas_object_image_alpha_set(o, 1);
1308 evas_object_image_size_set(o, 1, 1);
1309 evas_object_image_data_set(o, &blank);
1310
1311 ECORE_MAGIC_SET(ee, ECORE_MAGIC_EVAS);
1312
1313 ee->engine.func = (Ecore_Evas_Engine_Func *)&_ecore_extn_plug_engine_func;
1314
1315 ee->driver = "extn_plug";
1316
1317 ee->rotation = 0;
1318 ee->visible = 0;
1319 ee->w = w;
1320 ee->h = h;
1321 ee->req.w = ee->w;
1322 ee->req.h = ee->h;
1323
1324 ee->prop.max.w = 0;
1325 ee->prop.max.h = 0;
1326 ee->prop.layer = 0;
1327 ee->prop.focused = 0;
1328 ee->prop.borderless = 1;
1329 ee->prop.override = 1;
1330 ee->prop.maximized = 0;
1331 ee->prop.fullscreen = 0;
1332 ee->prop.withdrawn = 0;
1333 ee->prop.sticky = 0;
1334
1335 ee->engine.buffer.image = o;
1336 evas_object_data_set(ee->engine.buffer.image, "Ecore_Evas", ee);
1337 evas_object_data_set(ee->engine.buffer.image, "Ecore_Evas_Parent", ee_target);
1338 evas_object_event_callback_add(ee->engine.buffer.image,
1339 EVAS_CALLBACK_MOUSE_IN,
1340 _ecore_evas_extn_cb_mouse_in, ee);
1341 evas_object_event_callback_add(ee->engine.buffer.image,
1342 EVAS_CALLBACK_MOUSE_OUT,
1343 _ecore_evas_extn_cb_mouse_out, ee);
1344 evas_object_event_callback_add(ee->engine.buffer.image,
1345 EVAS_CALLBACK_MOUSE_DOWN,
1346 _ecore_evas_extn_cb_mouse_down, ee);
1347 evas_object_event_callback_add(ee->engine.buffer.image,
1348 EVAS_CALLBACK_MOUSE_UP,
1349 _ecore_evas_extn_cb_mouse_up, ee);
1350 evas_object_event_callback_add(ee->engine.buffer.image,
1351 EVAS_CALLBACK_MOUSE_MOVE,
1352 _ecore_evas_extn_cb_mouse_move, ee);
1353 evas_object_event_callback_add(ee->engine.buffer.image,
1354 EVAS_CALLBACK_MOUSE_WHEEL,
1355 _ecore_evas_extn_cb_mouse_wheel, ee);
1356 evas_object_event_callback_add(ee->engine.buffer.image,
1357 EVAS_CALLBACK_MULTI_DOWN,
1358 _ecore_evas_extn_cb_multi_down, ee);
1359 evas_object_event_callback_add(ee->engine.buffer.image,
1360 EVAS_CALLBACK_MULTI_UP,
1361 _ecore_evas_extn_cb_multi_up, ee);
1362 evas_object_event_callback_add(ee->engine.buffer.image,
1363 EVAS_CALLBACK_MULTI_MOVE,
1364 _ecore_evas_extn_cb_multi_move, ee);
1365 evas_object_event_callback_add(ee->engine.buffer.image,
1366 EVAS_CALLBACK_FREE,
1367 _ecore_evas_extn_cb_free, ee);
1368 evas_object_event_callback_add(ee->engine.buffer.image,
1369 EVAS_CALLBACK_KEY_DOWN,
1370 _ecore_evas_extn_cb_key_down, ee);
1371 evas_object_event_callback_add(ee->engine.buffer.image,
1372 EVAS_CALLBACK_KEY_UP,
1373 _ecore_evas_extn_cb_key_up, ee);
1374 evas_object_event_callback_add(ee->engine.buffer.image,
1375 EVAS_CALLBACK_HOLD,
1376 _ecore_evas_extn_cb_hold, ee);
1377 evas_object_event_callback_add(ee->engine.buffer.image,
1378 EVAS_CALLBACK_FOCUS_IN,
1379 _ecore_evas_extn_cb_focus_in, ee);
1380 evas_object_event_callback_add(ee->engine.buffer.image,
1381 EVAS_CALLBACK_FOCUS_OUT,
1382 _ecore_evas_extn_cb_focus_out, ee);
1383 evas_object_event_callback_add(ee->engine.buffer.image,
1384 EVAS_CALLBACK_SHOW,
1385 _ecore_evas_extn_cb_show, ee);
1386 evas_object_event_callback_add(ee->engine.buffer.image,
1387 EVAS_CALLBACK_HIDE,
1388 _ecore_evas_extn_cb_hide, ee);
1389
1390 evas_object_event_callback_add(ee->engine.buffer.image,
1391 EVAS_CALLBACK_DEL,
1392 _ecore_evas_extn_plug_image_obj_del, ee);
1393
1394
1395 extn_ee_list = eina_list_append(extn_ee_list, ee);
1396 ee_target->sub_ecore_evas = eina_list_append(ee_target->sub_ecore_evas, ee);
1397
1398 evas_event_callback_add(ee_target->evas, EVAS_CALLBACK_RENDER_PRE,
1399 _ecore_evas_extn_plug_targer_render_pre, ee);
1400 evas_event_callback_add(ee_target->evas, EVAS_CALLBACK_RENDER_POST,
1401 _ecore_evas_extn_plug_targer_render_post, ee);
1402 return o;
1403#else
1404 return NULL;
1405#endif
1406}
1407
1408EAPI Eina_Bool
1409ecore_evas_extn_plug_connect(Evas_Object *obj, const char *svcname, int svcnum, Eina_Bool svcsys)
1410{
1411#ifdef EXTN_ENABLED
1412 Extn *extn;
1413 Ecore_Evas *ee = NULL;
1414
1415 if (!obj) return EINA_FALSE;
1416
1417 ee = evas_object_data_get(obj, "Ecore_Evas");
1418 if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS)) return EINA_FALSE;
1419
1420 extn = calloc(1, sizeof(Extn));
1421 if (!extn) return EINA_FALSE;
1422
1423 Ecore_Ipc_Type ipctype = ECORE_IPC_LOCAL_USER;
1424
1425 ecore_ipc_init();
1426 extn->svc.name = eina_stringshare_add(svcname);
1427 extn->svc.num = svcnum;
1428 extn->svc.sys = svcsys;
1429
1430 if (extn->svc.sys) ipctype = ECORE_IPC_LOCAL_SYSTEM;
1431 extn->ipc.server = ecore_ipc_server_connect(ipctype, (char *)extn->svc.name,
1432 extn->svc.num, ee);
1433 if (!extn->ipc.server)
1434 {
1435 eina_stringshare_del(extn->svc.name);
1436 free(extn);
1437 ecore_ipc_shutdown();
1438 return EINA_FALSE;
1439 }
1440 ee->engine.buffer.data = extn;
1441 extn->ipc.handlers = eina_list_append
1442 (extn->ipc.handlers,
1443 ecore_event_handler_add(ECORE_IPC_EVENT_SERVER_ADD,
1444 _ipc_server_add, ee));
1445 extn->ipc.handlers = eina_list_append
1446 (extn->ipc.handlers,
1447 ecore_event_handler_add(ECORE_IPC_EVENT_SERVER_DEL,
1448 _ipc_server_del, ee));
1449 extn->ipc.handlers = eina_list_append
1450 (extn->ipc.handlers,
1451 ecore_event_handler_add(ECORE_IPC_EVENT_SERVER_DATA,
1452 _ipc_server_data, ee));
1453 return EINA_TRUE;
1454#else
1455 return EINA_FALSE;
1456#endif
1457}
1458
1459EAPI void
1460ecore_evas_extn_plug_object_data_lock(Evas_Object *obj)
1461{
1462#ifdef EXTN_ENABLED
1463 Ecore_Evas *ee;
1464
1465 ee = ecore_evas_object_ecore_evas_get(obj);
1466 if (!ee) return;
1467 _ecore_evas_socket_lock(ee);
1468#endif
1469}
1470
1471EAPI void
1472ecore_evas_extn_plug_object_data_unlock(Evas_Object *obj)
1473{
1474#ifdef EXTN_ENABLED
1475 Ecore_Evas *ee;
1476
1477 ee = ecore_evas_object_ecore_evas_get(obj);
1478 if (!ee) return;
1479 _ecore_evas_socket_unlock(ee);
1480#endif
1481}
1482
1483#ifdef EXTN_ENABLED
1484static void
1485_ecore_evas_socket_resize(Ecore_Evas *ee, int w, int h)
1486{
1487 Extn *extn;
1488 Evas_Engine_Info_Buffer *einfo;
1489 int stride = 0;
1490
1491 if (w < 1) w = 1;
1492 if (h < 1) h = 1;
1493 ee->req.w = w;
1494 ee->req.h = h;
1495 if ((w == ee->w) && (h == ee->h)) return;
1496 ee->w = w;
1497 ee->h = h;
1498 evas_output_size_set(ee->evas, ee->w, ee->h);
1499 evas_output_viewport_set(ee->evas, 0, 0, ee->w, ee->h);
1500 evas_damage_rectangle_add(ee->evas, 0, 0, ee->w, ee->h);
1501 extn = ee->engine.buffer.data;
1502 if (extn)
1503 {
1504 if (extn->file.shmfile)
1505 shmfile_free(extn->file.shmfile);
1506 ee->engine.buffer.pixels = NULL;
1507 extn->file.shmfile = shmfile_new(extn->svc.name, extn->svc.num,
1508 ee->w * ee->h * 4, extn->svc.sys);
1509 if (extn->file.shmfile)
1510 ee->engine.buffer.pixels = extn->file.shmfile->addr;
1511
1512 stride = ee->w * 4;
1513 einfo = (Evas_Engine_Info_Buffer *)evas_engine_info_get(ee->evas);
1514 if (einfo)
1515 {
1516 if (ee->alpha)
1517 einfo->info.depth_type = EVAS_ENGINE_BUFFER_DEPTH_ARGB32;
1518 else
1519 einfo->info.depth_type = EVAS_ENGINE_BUFFER_DEPTH_RGB32;
1520 einfo->info.dest_buffer = ee->engine.buffer.pixels;
1521 einfo->info.dest_buffer_row_bytes = stride;
1522 einfo->info.use_color_key = 0;
1523 einfo->info.alpha_threshold = 0;
1524 einfo->info.func.new_update_region = NULL;
1525 einfo->info.func.free_update_region = NULL;
1526 if (!evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo))
1527 {
1528 ERR("evas_engine_info_set() for engine '%s' failed.", ee->driver);
1529 }
1530 }
1531
1532 if (extn->ipc.clients && extn->file.shmfile)
1533 {
1534 Ipc_Data_Resize ipc;
1535 Eina_List *l;
1536 Ecore_Ipc_Client *client;
1537
1538 EINA_LIST_FOREACH(extn->ipc.clients, l, client)
1539 ecore_ipc_client_send(client, MAJOR, OP_SHM_REF,
1540 ee->w, ee->h, ee->alpha,
1541 extn->file.shmfile->file,
1542 strlen(extn->file.shmfile->file) + 1);
1543 ipc.w = ee->w;
1544 ipc.h = ee->h;
1545 EINA_LIST_FOREACH(extn->ipc.clients, l, client)
1546 ecore_ipc_client_send(client, MAJOR, OP_RESIZE,
1547 0, 0, 0, &ipc, sizeof(ipc));
1548 }
1549 }
1550 if (ee->func.fn_resize) ee->func.fn_resize(ee);
1551}
1552
1553static void
1554_ecore_evas_socket_move_resize(Ecore_Evas *ee, int x __UNUSED__, int y __UNUSED__, int w, int h)
1555{
1556 _ecore_evas_socket_resize(ee, w, h);
1557}
1558
1559int
1560_ecore_evas_extn_socket_render(Ecore_Evas *ee)
1561{
1562 Eina_List *updates = NULL, *l, *ll;
1563 Ecore_Evas *ee2;
1564 int rend = 0;
1565 Eina_Rectangle *r;
1566 Extn *extn;
1567 Ecore_Ipc_Client *client;
1568
1569 extn = ee->engine.buffer.data;
1570 EINA_LIST_FOREACH(ee->sub_ecore_evas, ll, ee2)
1571 {
1572 if (ee2->func.fn_pre_render) ee2->func.fn_pre_render(ee2);
1573 if (ee2->engine.func->fn_render)
1574 rend |= ee2->engine.func->fn_render(ee2);
1575 if (ee2->func.fn_post_render) ee2->func.fn_post_render(ee2);
1576 }
1577 if (ee->engine.buffer.pixels)
1578 {
1579 _ecore_evas_socket_lock(ee);
1580 updates = evas_render_updates(ee->evas);
1581 _ecore_evas_socket_unlock(ee);
1582 }
1583 EINA_LIST_FOREACH(updates, l, r)
1584 {
1585 Ipc_Data_Update ipc;
1586
1587
1588 ipc.x = r->x;
1589 ipc.y = r->y;
1590 ipc.w = r->w;
1591 ipc.h = r->h;
1592 EINA_LIST_FOREACH(extn->ipc.clients, ll, client)
1593 ecore_ipc_client_send(client, MAJOR, OP_UPDATE, 0, 0, 0, &ipc, sizeof(ipc));
1594 }
1595 if (updates)
1596 {
1597 evas_render_updates_free(updates);
1598 _ecore_evas_idle_timeout_update(ee);
1599 EINA_LIST_FOREACH(extn->ipc.clients, ll, client)
1600 ecore_ipc_client_send(client, MAJOR, OP_UPDATE_DONE, 0, 0, 0, NULL, 0);
1601 }
1602
1603 return updates ? 1 : rend;
1604}
1605
1606static Eina_Bool
1607_ipc_client_add(void *data, int type __UNUSED__, void *event)
1608{
1609 Ecore_Ipc_Event_Client_Add *e = event;
1610 Ecore_Evas *ee = data;
1611 Extn *extn;
1612
1613 if (ee != ecore_ipc_server_data_get(ecore_ipc_client_server_get(e->client)))
1614 return ECORE_CALLBACK_PASS_ON;
1615 if (!eina_list_data_find(extn_ee_list, ee))
1616 return ECORE_CALLBACK_PASS_ON;
1617 extn = ee->engine.buffer.data;
1618 if (!extn) return ECORE_CALLBACK_PASS_ON;
1619
1620 extn->ipc.clients = eina_list_append(extn->ipc.clients, e->client);
1621 ecore_ipc_client_send(e->client, MAJOR, OP_LOCK_FILE, 0, 0, 0, extn->file.lock, strlen(extn->file.lock) + 1);
1622
1623 if (extn->file.shmfile)
1624 {
1625 Ipc_Data_Resize ipc;
1626
1627 ecore_ipc_client_send(e->client, MAJOR, OP_SHM_REF,
1628 ee->w, ee->h, ee->alpha,
1629 extn->file.shmfile->file,
1630 strlen(extn->file.shmfile->file) + 1);
1631 ipc.w = ee->w;
1632 ipc.h = ee->h;
1633
1634 ecore_ipc_client_send(e->client, MAJOR, OP_RESIZE,
1635 0, 0, 0, &ipc, sizeof(ipc));
1636 }
1637 _ecore_evas_extn_event(ee, ECORE_EVAS_EXTN_CLIENT_ADD);
1638 return ECORE_CALLBACK_PASS_ON;
1639}
1640
1641static Eina_Bool
1642_ipc_client_del(void *data, int type __UNUSED__, void *event)
1643{
1644 Ecore_Ipc_Event_Client_Del *e = event;
1645 Ecore_Evas *ee = data;
1646 Extn *extn;
1647 extn = ee->engine.buffer.data;
1648 if (!extn) return ECORE_CALLBACK_PASS_ON;
1649 if (!eina_list_data_find(extn->ipc.clients, e->client)) return ECORE_CALLBACK_PASS_ON;
1650
1651 extn->ipc.clients = eina_list_remove(extn->ipc.clients, e->client);
1652
1653 _ecore_evas_extn_event(ee, ECORE_EVAS_EXTN_CLIENT_DEL);
1654 return ECORE_CALLBACK_PASS_ON;
1655}
1656
1657static Eina_Bool
1658_ipc_client_data(void *data, int type __UNUSED__, void *event)
1659{
1660 Ecore_Ipc_Event_Client_Data *e = event;
1661 Ecore_Evas *ee = data;
1662 Extn *extn;
1663
1664 if (ee != ecore_ipc_server_data_get(ecore_ipc_client_server_get(e->client)))
1665 return ECORE_CALLBACK_PASS_ON;
1666 if (!eina_list_data_find(extn_ee_list, ee))
1667 return ECORE_CALLBACK_PASS_ON;
1668 extn = ee->engine.buffer.data;
1669 if (!extn) return ECORE_CALLBACK_PASS_ON;
1670 if (e->major != MAJOR)
1671 return ECORE_CALLBACK_PASS_ON;
1672 switch (e->minor)
1673 {
1674 case OP_RESIZE:
1675 if ((e->data) && (e->size >= (int)sizeof(Ipc_Data_Resize)))
1676 {
1677
1678 Ipc_Data_Resize *ipc = e->data;
1679 /* create callbacke data size changed */
1680 _ecore_evas_socket_resize(ee, ipc->w, ipc->h);
1681 }
1682 break;
1683 case OP_SHOW:
1684 if (!ee->visible)
1685 {
1686 ee->visible = 1;
1687 if (ee->func.fn_show) ee->func.fn_show(ee);
1688 }
1689 break;
1690 case OP_HIDE:
1691 if (ee->visible)
1692 {
1693 ee->visible = 0;
1694 if (ee->func.fn_hide) ee->func.fn_hide(ee);
1695 }
1696 break;
1697 case OP_FOCUS:
1698 if (!ee->prop.focused)
1699 {
1700 ee->prop.focused = 1;
1701 evas_focus_in(ee->evas);
1702 if (ee->func.fn_focus_in) ee->func.fn_focus_in(ee);
1703 }
1704 break;
1705 case OP_UNFOCUS:
1706 if (ee->prop.focused)
1707 {
1708 ee->prop.focused = 0;
1709 evas_focus_out(ee->evas);
1710 if (ee->func.fn_focus_out) ee->func.fn_focus_out(ee);
1711 }
1712 break;
1713 case OP_EV_MOUSE_IN:
1714 if (e->size >= (int)sizeof(Ipc_Data_Ev_Mouse_In))
1715 {
1716 Ipc_Data_Ev_Mouse_In *ipc = e->data;
1717 Evas_Event_Flags flags;
1718
1719 flags = evas_event_default_flags_get(ee->evas);
1720 evas_event_default_flags_set(ee->evas, ipc->event_flags);
1721 _ecore_evas_modifiers_locks_mask_set(ee->evas, ipc->mask);
1722 evas_event_feed_mouse_in(ee->evas, ipc->timestamp, NULL);
1723 evas_event_default_flags_set(ee->evas, flags);
1724 }
1725 break;
1726 case OP_EV_MOUSE_OUT:
1727 if (e->size >= (int)sizeof(Ipc_Data_Ev_Mouse_Out))
1728 {
1729 Ipc_Data_Ev_Mouse_Out *ipc = e->data;
1730 Evas_Event_Flags flags;
1731
1732 flags = evas_event_default_flags_get(ee->evas);
1733 evas_event_default_flags_set(ee->evas, ipc->event_flags);
1734 _ecore_evas_modifiers_locks_mask_set(ee->evas, ipc->mask);
1735 evas_event_feed_mouse_out(ee->evas, ipc->timestamp, NULL);
1736 evas_event_default_flags_set(ee->evas, flags);
1737 }
1738 break;
1739 case OP_EV_MOUSE_UP:
1740 if (e->size >= (int)sizeof(Ipc_Data_Ev_Mouse_Up))
1741 {
1742 Ipc_Data_Ev_Mouse_Up *ipc = e->data;
1743 Evas_Event_Flags flags;
1744
1745 flags = evas_event_default_flags_get(ee->evas);
1746 evas_event_default_flags_set(ee->evas, ipc->event_flags);
1747 _ecore_evas_modifiers_locks_mask_set(ee->evas, ipc->mask);
1748 evas_event_feed_mouse_up(ee->evas, ipc->b, ipc->flags, ipc->timestamp, NULL);
1749 evas_event_default_flags_set(ee->evas, flags);
1750 }
1751 break;
1752 case OP_EV_MOUSE_DOWN:
1753 if (e->size >= (int)sizeof(Ipc_Data_Ev_Mouse_Down))
1754 {
1755 Ipc_Data_Ev_Mouse_Up *ipc = e->data;
1756 Evas_Event_Flags flags;
1757
1758 flags = evas_event_default_flags_get(ee->evas);
1759 evas_event_default_flags_set(ee->evas, ipc->event_flags);
1760 _ecore_evas_modifiers_locks_mask_set(ee->evas, ipc->mask);
1761 evas_event_feed_mouse_down(ee->evas, ipc->b, ipc->flags, ipc->timestamp, NULL);
1762 evas_event_default_flags_set(ee->evas, flags);
1763 }
1764 break;
1765 case OP_EV_MOUSE_MOVE:
1766 if (e->size >= (int)sizeof(Ipc_Data_Ev_Mouse_Move))
1767 {
1768 Ipc_Data_Ev_Mouse_Move *ipc = e->data;
1769 Evas_Event_Flags flags;
1770
1771 flags = evas_event_default_flags_get(ee->evas);
1772 evas_event_default_flags_set(ee->evas, ipc->event_flags);
1773 _ecore_evas_modifiers_locks_mask_set(ee->evas, ipc->mask);
1774 evas_event_feed_mouse_move(ee->evas, ipc->x, ipc->y, ipc->timestamp, NULL);
1775 evas_event_default_flags_set(ee->evas, flags);
1776 }
1777 break;
1778 case OP_EV_MOUSE_WHEEL:
1779 if (e->size >= (int)sizeof(Ipc_Data_Ev_Mouse_Wheel))
1780 {
1781 Ipc_Data_Ev_Mouse_Wheel *ipc = e->data;
1782 Evas_Event_Flags flags;
1783
1784 flags = evas_event_default_flags_get(ee->evas);
1785 evas_event_default_flags_set(ee->evas, ipc->event_flags);
1786 _ecore_evas_modifiers_locks_mask_set(ee->evas, ipc->mask);
1787 evas_event_feed_mouse_wheel(ee->evas, ipc->direction, ipc->z, ipc->timestamp, NULL);
1788 evas_event_default_flags_set(ee->evas, flags);
1789 }
1790 break;
1791 case OP_EV_MULTI_UP:
1792 if (e->size >= (int)sizeof(Ipc_Data_Ev_Multi_Up))
1793 {
1794 Ipc_Data_Ev_Multi_Up *ipc = e->data;
1795 Evas_Event_Flags flags;
1796
1797 flags = evas_event_default_flags_get(ee->evas);
1798 evas_event_default_flags_set(ee->evas, ipc->event_flags);
1799 _ecore_evas_modifiers_locks_mask_set(ee->evas, ipc->mask);
1800 evas_event_feed_multi_up(ee->evas, ipc->d, ipc->x, ipc->y, ipc->rad, ipc->radx, ipc->rady, ipc->pres, ipc->ang, ipc->fx, ipc->fy, ipc->flags, ipc->timestamp, NULL);
1801 evas_event_default_flags_set(ee->evas, flags);
1802 }
1803 break;
1804 case OP_EV_MULTI_DOWN:
1805 if (e->size >= (int)sizeof(Ipc_Data_Ev_Multi_Down))
1806 {
1807 Ipc_Data_Ev_Multi_Down *ipc = e->data;
1808 Evas_Event_Flags flags;
1809
1810 flags = evas_event_default_flags_get(ee->evas);
1811 evas_event_default_flags_set(ee->evas, ipc->event_flags);
1812 _ecore_evas_modifiers_locks_mask_set(ee->evas, ipc->mask);
1813 evas_event_feed_multi_down(ee->evas, ipc->d, ipc->x, ipc->y, ipc->rad, ipc->radx, ipc->rady, ipc->pres, ipc->ang, ipc->fx, ipc->fy, ipc->flags, ipc->timestamp, NULL);
1814 evas_event_default_flags_set(ee->evas, flags);
1815 }
1816 break;
1817 case OP_EV_MULTI_MOVE:
1818 if (e->size >= (int)sizeof(Ipc_Data_Ev_Multi_Move))
1819 {
1820 Ipc_Data_Ev_Multi_Move *ipc = e->data;
1821 Evas_Event_Flags flags;
1822
1823 flags = evas_event_default_flags_get(ee->evas);
1824 evas_event_default_flags_set(ee->evas, ipc->event_flags);
1825 _ecore_evas_modifiers_locks_mask_set(ee->evas, ipc->mask);
1826 evas_event_feed_multi_move(ee->evas, ipc->d, ipc->x, ipc->y, ipc->rad, ipc->radx, ipc->rady, ipc->pres, ipc->ang, ipc->fx, ipc->fy, ipc->timestamp, NULL);
1827 evas_event_default_flags_set(ee->evas, flags);
1828 }
1829 break;
1830
1831#define STRGET(val) \
1832 do { \
1833 if ((ipc->val) && (ipc->val < (char *)(e->size - 1))) \
1834 ipc->val = ((char *)ipc) + (long)ipc->val; \
1835 else \
1836 ipc->val = NULL; \
1837 } while (0)
1838
1839 case OP_EV_KEY_UP:
1840 if (e->size >= (int)sizeof(Ipc_Data_Ev_Key_Up))
1841 {
1842 if ((e->data) && (e->size > 0) &&
1843 (((unsigned char *)e->data)[e->size - 1] == 0))
1844 {
1845 Ipc_Data_Ev_Key_Up *ipc = e->data;
1846 Evas_Event_Flags flags;
1847
1848 STRGET(keyname);
1849 STRGET(key);
1850 STRGET(string);
1851 STRGET(compose);
1852 flags = evas_event_default_flags_get(ee->evas);
1853 evas_event_default_flags_set(ee->evas, ipc->event_flags);
1854 _ecore_evas_modifiers_locks_mask_set(ee->evas, ipc->mask);
1855 evas_event_feed_key_up(ee->evas, ipc->keyname, ipc->key, ipc->string, ipc->compose, ipc->timestamp, NULL);
1856 evas_event_default_flags_set(ee->evas, flags);
1857 }
1858 }
1859 break;
1860 case OP_EV_KEY_DOWN:
1861 if (e->size >= (int)sizeof(Ipc_Data_Ev_Key_Down))
1862 {
1863 if ((e->data) && (e->size > 0) &&
1864 (((unsigned char *)e->data)[e->size - 1] == 0))
1865 {
1866 Ipc_Data_Ev_Key_Down *ipc = e->data;
1867 Evas_Event_Flags flags;
1868
1869 STRGET(keyname);
1870 STRGET(key);
1871 STRGET(string);
1872 STRGET(compose);
1873 flags = evas_event_default_flags_get(ee->evas);
1874 evas_event_default_flags_set(ee->evas, ipc->event_flags);
1875 _ecore_evas_modifiers_locks_mask_set(ee->evas, ipc->mask);
1876 evas_event_feed_key_down(ee->evas, ipc->keyname, ipc->key, ipc->string, ipc->compose, ipc->timestamp, NULL);
1877 evas_event_default_flags_set(ee->evas, flags);
1878 }
1879 }
1880 break;
1881 case OP_EV_HOLD:
1882 if (e->size >= (int)sizeof(Ipc_Data_Ev_Hold))
1883 {
1884 Ipc_Data_Ev_Hold *ipc = e->data;
1885 Evas_Event_Flags flags;
1886
1887 flags = evas_event_default_flags_get(ee->evas);
1888 evas_event_default_flags_set(ee->evas, ipc->event_flags);
1889 evas_event_feed_hold(ee->evas, ipc->hold, ipc->timestamp, NULL);
1890 evas_event_default_flags_set(ee->evas, flags);
1891 }
1892 break;
1893 default:
1894 break;
1895 }
1896 return ECORE_CALLBACK_PASS_ON;
1897}
1898
1899static void
1900_ecore_evas_extn_socket_alpha_set(Ecore_Evas *ee, int alpha)
1901{
1902 Extn *extn;
1903 Eina_List *l;
1904 Ecore_Ipc_Client *client;
1905
1906 if (((ee->alpha) && (alpha)) || ((!ee->alpha) && (!alpha))) return;
1907 ee->alpha = alpha;
1908
1909 extn = ee->engine.buffer.data;
1910 if (extn)
1911 {
1912 Evas_Engine_Info_Buffer *einfo;
1913
1914 einfo = (Evas_Engine_Info_Buffer *)evas_engine_info_get(ee->evas);
1915 if (einfo)
1916 {
1917 if (ee->alpha)
1918 einfo->info.depth_type = EVAS_ENGINE_BUFFER_DEPTH_ARGB32;
1919 else
1920 einfo->info.depth_type = EVAS_ENGINE_BUFFER_DEPTH_RGB32;
1921 evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo);
1922 evas_damage_rectangle_add(ee->evas, 0, 0, ee->w, ee->h);
1923 }
1924 EINA_LIST_FOREACH(extn->ipc.clients, l, client)
1925 ecore_ipc_client_send(client, MAJOR, OP_SHM_REF,
1926 ee->w, ee->h, ee->alpha,
1927 extn->file.shmfile->file,
1928 strlen(extn->file.shmfile->file) + 1);
1929 }
1930}
1931
1932static const Ecore_Evas_Engine_Func _ecore_extn_socket_engine_func =
1933{
1934 _ecore_evas_extn_free,
1935 NULL,
1936 NULL,
1937 NULL,
1938 NULL,
1939 NULL,
1940 NULL,
1941 NULL,
1942 NULL,
1943 NULL,
1944 NULL,
1945 NULL,
1946 NULL,
1947 NULL,
1948 NULL,
1949 NULL,
1950 NULL,
1951 _ecore_evas_socket_resize,
1952 _ecore_evas_socket_move_resize,
1953 NULL,
1954 NULL,
1955 NULL,
1956 NULL,
1957 NULL,
1958 NULL,
1959 NULL,
1960 NULL,
1961 NULL,
1962 NULL,
1963 NULL,
1964 NULL,
1965 NULL,
1966 NULL,
1967 NULL,
1968 NULL,
1969 NULL,
1970 NULL,
1971 NULL,
1972 NULL,
1973 NULL,
1974 NULL,
1975 NULL,
1976 NULL,
1977 NULL,
1978 _ecore_evas_extn_socket_alpha_set,
1979 NULL, //transparent
1980
1981 _ecore_evas_extn_socket_render, // render
1982 NULL // screen_geometry_get
1983};
1984
1985#endif
1986
1987EAPI Ecore_Evas *
1988ecore_evas_extn_socket_new(int w, int h)
1989{
1990#ifdef EXTN_ENABLED
1991 Evas_Engine_Info_Buffer *einfo;
1992 Ecore_Evas *ee;
1993 int rmethod;
1994
1995 rmethod = evas_render_method_lookup("buffer");
1996 if (!rmethod) return NULL;
1997 ee = calloc(1, sizeof(Ecore_Evas));
1998 if (!ee) return NULL;
1999
2000 ECORE_MAGIC_SET(ee, ECORE_MAGIC_EVAS);
2001
2002 ee->engine.func = (Ecore_Evas_Engine_Func *)&_ecore_extn_socket_engine_func;
2003
2004 ee->driver = "extn_socket";
2005
2006 ee->rotation = 0;
2007 ee->visible = 0;
2008 ee->w = w;
2009 ee->h = h;
2010 ee->req.w = ee->w;
2011 ee->req.h = ee->h;
2012
2013 ee->prop.max.w = 0;
2014 ee->prop.max.h = 0;
2015 ee->prop.layer = 0;
2016 ee->prop.focused = 0;
2017 ee->prop.borderless = 1;
2018 ee->prop.override = 1;
2019 ee->prop.maximized = 0;
2020 ee->prop.fullscreen = 0;
2021 ee->prop.withdrawn = 0;
2022 ee->prop.sticky = 0;
2023
2024 /* init evas here */
2025 ee->evas = evas_new();
2026 evas_data_attach_set(ee->evas, ee);
2027 evas_output_method_set(ee->evas, rmethod);
2028 evas_output_size_set(ee->evas, w, h);
2029 evas_output_viewport_set(ee->evas, 0, 0, w, h);
2030
2031 einfo = (Evas_Engine_Info_Buffer *)evas_engine_info_get(ee->evas);
2032 if (einfo)
2033 {
2034 if (ee->alpha)
2035 einfo->info.depth_type = EVAS_ENGINE_BUFFER_DEPTH_ARGB32;
2036 else
2037 einfo->info.depth_type = EVAS_ENGINE_BUFFER_DEPTH_RGB32;
2038 einfo->info.dest_buffer = NULL;
2039 einfo->info.dest_buffer_row_bytes = 0;
2040 einfo->info.use_color_key = 0;
2041 einfo->info.alpha_threshold = 0;
2042 einfo->info.func.new_update_region = NULL;
2043 einfo->info.func.free_update_region = NULL;
2044 if (!evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo))
2045 {
2046 ERR("evas_engine_info_set() for engine '%s' failed.", ee->driver);
2047 ecore_evas_free(ee);
2048 return NULL;
2049 }
2050 }
2051 else
2052 {
2053 ERR("evas_engine_info_set() init engine '%s' failed.", ee->driver);
2054 ecore_evas_free(ee);
2055 return NULL;
2056 }
2057 evas_key_modifier_add(ee->evas, "Shift");
2058 evas_key_modifier_add(ee->evas, "Control");
2059 evas_key_modifier_add(ee->evas, "Alt");
2060 evas_key_modifier_add(ee->evas, "Meta");
2061 evas_key_modifier_add(ee->evas, "Hyper");
2062 evas_key_modifier_add(ee->evas, "Super");
2063 evas_key_lock_add(ee->evas, "Caps_Lock");
2064 evas_key_lock_add(ee->evas, "Num_Lock");
2065 evas_key_lock_add(ee->evas, "Scroll_Lock");
2066
2067 extn_ee_list = eina_list_append(extn_ee_list, ee);
2068
2069 _ecore_evas_register(ee);
2070
2071 return ee;
2072#else
2073 return NULL;
2074#endif
2075}
2076
2077EAPI Eina_Bool
2078ecore_evas_extn_socket_listen(Ecore_Evas *ee, const char *svcname, int svcnum, Eina_Bool svcsys)
2079{
2080#ifdef EXTN_ENABLED
2081 Extn *extn;
2082
2083 extn = calloc(1, sizeof(Extn));
2084 if (!extn)
2085 {
2086 return EINA_FALSE;
2087 }
2088 else
2089 {
2090 Ecore_Ipc_Type ipctype = ECORE_IPC_LOCAL_USER;
2091 char buf[PATH_MAX];
2092
2093 ecore_ipc_init();
2094 extn->svc.name = eina_stringshare_add(svcname);
2095 extn->svc.num = svcnum;
2096 extn->svc.sys = svcsys;
2097
2098 snprintf(buf, sizeof(buf), "/tmp/ee-lock-XXXXXX");
2099 extn->file.lockfd = mkstemp(buf);
2100 if (extn->file.lockfd >= 0)
2101 extn->file.lock = eina_stringshare_add(buf);
2102 if ((extn->file.lockfd < 0) || (!extn->file.lock))
2103 {
2104 if (extn->file.lockfd)
2105 {
2106 close(extn->file.lockfd);
2107 unlink(buf);
2108 }
2109 eina_stringshare_del(extn->svc.name);
2110 if (extn->file.lock) eina_stringshare_del(extn->file.lock);
2111 free(extn);
2112 ecore_ipc_shutdown();
2113 return EINA_FALSE;
2114 }
2115
2116 if (extn->svc.sys) ipctype = ECORE_IPC_LOCAL_SYSTEM;
2117 extn->ipc.am_server = EINA_TRUE;
2118 extn->ipc.server = ecore_ipc_server_add(ipctype,
2119 (char *)extn->svc.name,
2120 extn->svc.num, ee);
2121 if (!extn->ipc.server)
2122 {
2123 if (extn->file.lockfd)
2124 {
2125 close(extn->file.lockfd);
2126 if (extn->file.lock) unlink(extn->file.lock);
2127 }
2128 eina_stringshare_del(extn->svc.name);
2129 eina_stringshare_del(extn->file.lock);
2130 free(extn);
2131 ecore_ipc_shutdown();
2132 return EINA_FALSE;
2133 }
2134 ee->engine.buffer.data = extn;
2135 extn->ipc.handlers = eina_list_append
2136 (extn->ipc.handlers,
2137 ecore_event_handler_add(ECORE_IPC_EVENT_CLIENT_ADD,
2138 _ipc_client_add, ee));
2139 extn->ipc.handlers = eina_list_append
2140 (extn->ipc.handlers,
2141 ecore_event_handler_add(ECORE_IPC_EVENT_CLIENT_DEL,
2142 _ipc_client_del, ee));
2143 extn->ipc.handlers = eina_list_append
2144 (extn->ipc.handlers,
2145 ecore_event_handler_add(ECORE_IPC_EVENT_CLIENT_DATA,
2146 _ipc_client_data, ee));
2147 }
2148 return EINA_TRUE;
2149#else
2150 return EINA_FALSE;
2151#endif
2152}
diff --git a/libraries/ecore/src/lib/ecore_evas/ecore_evas_fb.c b/libraries/ecore/src/lib/ecore_evas/ecore_evas_fb.c
index 3ee913e..74caada 100644
--- a/libraries/ecore/src/lib/ecore_evas/ecore_evas_fb.c
+++ b/libraries/ecore/src/lib/ecore_evas/ecore_evas_fb.c
@@ -2,6 +2,7 @@
2# include <config.h> 2# include <config.h>
3#endif 3#endif
4 4
5#include <stdlib.h>
5#include <sys/types.h> 6#include <sys/types.h>
6#include <dirent.h> 7#include <dirent.h>
7 8
@@ -154,9 +155,9 @@ _ecore_evas_fb_render(Ecore_Evas *ee)
154 if (ee->visible) 155 if (ee->visible)
155 { 156 {
156 Eina_List *updates; 157 Eina_List *updates;
157
158 Eina_List *ll; 158 Eina_List *ll;
159 Ecore_Evas *ee2; 159 Ecore_Evas *ee2;
160
160 if (ee->func.fn_pre_render) ee->func.fn_pre_render(ee); 161 if (ee->func.fn_pre_render) ee->func.fn_pre_render(ee);
161 162
162 EINA_LIST_FOREACH(ee->sub_ecore_evas, ll, ee2) 163 EINA_LIST_FOREACH(ee->sub_ecore_evas, ll, ee2)
@@ -184,31 +185,26 @@ _ecore_evas_fb_render(Ecore_Evas *ee)
184static int 185static int
185_ecore_evas_fb_init(Ecore_Evas *ee, int w, int h) 186_ecore_evas_fb_init(Ecore_Evas *ee, int w, int h)
186{ 187{
188 Eina_File_Direct_Info *info;
189 Eina_Iterator *ls;
187 Ecore_Fb_Input_Device *device; 190 Ecore_Fb_Input_Device *device;
188 Ecore_Fb_Input_Device_Cap caps; 191 Ecore_Fb_Input_Device_Cap caps;
189 int mouse_handled = 0; 192 int mouse_handled = 0;
190 193
191 DIR *input_dir;
192 struct dirent *input_entry;
193
194 _ecore_evas_init_count++; 194 _ecore_evas_init_count++;
195 if (_ecore_evas_init_count > 1) return _ecore_evas_init_count; 195 if (_ecore_evas_init_count > 1) return _ecore_evas_init_count;
196 196
197 ecore_event_evas_init(); 197 ecore_event_evas_init();
198 198
199 /* register all input devices */ 199 /* register all input devices */
200 input_dir = opendir("/dev/input/"); 200 ls = eina_file_direct_ls("/dev/input/");
201 if (!input_dir) return _ecore_evas_init_count;
202 201
203 while ((input_entry = readdir(input_dir))) 202 EINA_ITERATOR_FOREACH(ls, info)
204 { 203 {
205 char device_path[256]; 204 if (strncmp(info->path + info->name_start, "event", 5) != 0)
206
207 if (strncmp(input_entry->d_name, "event", 5) != 0)
208 continue; 205 continue;
209 206
210 snprintf(device_path, 256, "/dev/input/%s", input_entry->d_name); 207 if (!(device = ecore_fb_input_device_open(info->path)))
211 if (!(device = ecore_fb_input_device_open(device_path)))
212 continue; 208 continue;
213 ecore_fb_input_device_window_set(device, ee); 209 ecore_fb_input_device_window_set(device, ee);
214 210
@@ -240,7 +236,7 @@ _ecore_evas_fb_init(Ecore_Evas *ee, int w, int h)
240 ecore_evas_input_devices = eina_list_append(ecore_evas_input_devices, device); 236 ecore_evas_input_devices = eina_list_append(ecore_evas_input_devices, device);
241 } 237 }
242 } 238 }
243 closedir(input_dir); 239 eina_iterator_free(ls);
244 240
245 if (!mouse_handled) 241 if (!mouse_handled)
246 { 242 {
diff --git a/libraries/ecore/src/lib/ecore_evas/ecore_evas_private.h b/libraries/ecore/src/lib/ecore_evas/ecore_evas_private.h
index 2c20761..9a88a7a 100644
--- a/libraries/ecore/src/lib/ecore_evas/ecore_evas_private.h
+++ b/libraries/ecore/src/lib/ecore_evas/ecore_evas_private.h
@@ -1,18 +1,6 @@
1#ifndef _ECORE_EVAS_PRIVATE_H 1#ifndef _ECORE_EVAS_PRIVATE_H
2#define _ECORE_EVAS_PRIVATE_H 2#define _ECORE_EVAS_PRIVATE_H
3 3
4#ifdef HAVE_CONFIG_H
5# include <config.h>
6#endif
7
8#include <sys/types.h>
9#include <sys/stat.h>
10#include <fcntl.h>
11
12#ifdef HAVE_SYS_MMAN_H
13# include <sys/mman.h>
14#endif
15
16#include <Evas.h> 4#include <Evas.h>
17#include <Ecore.h> 5#include <Ecore.h>
18#include <ecore_private.h> 6#include <ecore_private.h>
@@ -91,9 +79,17 @@
91# include <Evas_Engine_Gl_Cocoa.h> 79# include <Evas_Engine_Gl_Cocoa.h>
92#endif 80#endif
93 81
94/** 82#ifdef BUILD_ECORE_EVAS_WAYLAND_SHM
95 Log domain macros and variable 83# include "Ecore_Wayland.h"
96 **/ 84# include <Evas_Engine_Wayland_Shm.h>
85#endif
86
87#ifdef BUILD_ECORE_EVAS_WAYLAND_EGL
88# include "Ecore_Wayland.h"
89# include <Evas_Engine_Wayland_Egl.h>
90#endif
91
92/** Log domain macros and variables **/
97 93
98extern int _ecore_evas_log_dom; 94extern int _ecore_evas_log_dom;
99 95
@@ -272,6 +268,17 @@ struct _Ecore_Evas_Engine
272 } ews; 268 } ews;
273#endif 269#endif
274 270
271#if defined(BUILD_ECORE_EVAS_WAYLAND_SHM) || defined(BUILD_ECORE_EVAS_WAYLAND_EGL)
272 struct
273 {
274 Evas_Object *frame;
275
276 struct wl_shell_surface *shell_surface;
277 struct wl_surface *surface;
278 struct wl_buffer *buffer;
279 } wl;
280#endif
281
275 Ecore_Timer *idle_flush_timer; 282 Ecore_Timer *idle_flush_timer;
276}; 283};
277 284
@@ -290,6 +297,7 @@ struct _Ecore_Evas
290 Eina_Bool should_be_visible : 1; 297 Eina_Bool should_be_visible : 1;
291 Eina_Bool alpha : 1; 298 Eina_Bool alpha : 1;
292 Eina_Bool transparent : 1; 299 Eina_Bool transparent : 1;
300 Eina_Bool in : 1;
293 301
294 Eina_Hash *data; 302 Eina_Hash *data;
295 303
@@ -334,6 +342,7 @@ struct _Ecore_Evas
334 char withdrawn : 1; 342 char withdrawn : 1;
335 char sticky : 1; 343 char sticky : 1;
336 char request_pos : 1; 344 char request_pos : 1;
345 char draw_frame : 1;
337 } prop; 346 } prop;
338 347
339 struct { 348 struct {
@@ -394,6 +403,16 @@ void _ecore_evas_ews_events_init(void);
394int _ecore_evas_ews_shutdown(void); 403int _ecore_evas_ews_shutdown(void);
395#endif 404#endif
396 405
406#ifdef BUILD_ECORE_EVAS_WAYLAND_SHM
407void _ecore_evas_wayland_shm_resize(Ecore_Evas *ee, int location);
408void _ecore_evas_wayland_shm_drag_start(Ecore_Evas *ee, Ecore_Evas *drag_ee, void *source);
409#endif
410
411#ifdef BUILD_ECORE_EVAS_WAYLAND_EGL
412void _ecore_evas_wayland_egl_resize(Ecore_Evas *ee, int location);
413void _ecore_evas_wayland_egl_drag_start(Ecore_Evas *ee, Ecore_Evas *drag_ee, void *source);
414#endif
415
397void _ecore_evas_fps_debug_init(void); 416void _ecore_evas_fps_debug_init(void);
398void _ecore_evas_fps_debug_shutdown(void); 417void _ecore_evas_fps_debug_shutdown(void);
399void _ecore_evas_fps_debug_rendertime_add(double t); 418void _ecore_evas_fps_debug_rendertime_add(double t);
@@ -430,4 +449,7 @@ void _ecore_evas_mouse_multi_up_process(Ecore_Evas *ee, int device,
430 449
431extern Eina_Bool _ecore_evas_app_comp_sync; 450extern Eina_Bool _ecore_evas_app_comp_sync;
432 451
452void _ecore_evas_extn_init(void);
453void _ecore_evas_extn_shutdown(void);
454
433#endif 455#endif
diff --git a/libraries/ecore/src/lib/ecore_evas/ecore_evas_psl1ght.c b/libraries/ecore/src/lib/ecore_evas/ecore_evas_psl1ght.c
index 0849c79..be130ad 100644
--- a/libraries/ecore/src/lib/ecore_evas/ecore_evas_psl1ght.c
+++ b/libraries/ecore/src/lib/ecore_evas/ecore_evas_psl1ght.c
@@ -16,7 +16,7 @@
16static int _ecore_evas_init_count = 0; 16static int _ecore_evas_init_count = 0;
17 17
18static Ecore_Evas *psl1ght_ee = NULL; 18static Ecore_Evas *psl1ght_ee = NULL;
19static Ecore_Event_Handler *ecore_evas_event_handlers[4] = { 19static Ecore_Event_Handler *ecore_evas_event_handlers[5] = {
20 NULL, NULL, NULL, NULL 20 NULL, NULL, NULL, NULL
21}; 21};
22 22
@@ -48,7 +48,7 @@ _ecore_evas_psl1ght_event_got_focus(void *data __UNUSED__, int type __UNUSED__,
48 ee->prop.focused = 1; 48 ee->prop.focused = 1;
49 evas_focus_in(ee->evas); 49 evas_focus_in(ee->evas);
50 if (ee->func.fn_focus_in) ee->func.fn_focus_in(ee); 50 if (ee->func.fn_focus_in) ee->func.fn_focus_in(ee);
51 51
52 return ECORE_CALLBACK_PASS_ON; 52 return ECORE_CALLBACK_PASS_ON;
53} 53}
54 54
@@ -64,7 +64,7 @@ _ecore_evas_psl1ght_event_lost_focus(void *data __UNUSED__, int type __UNUSED__,
64 evas_focus_out(ee->evas); 64 evas_focus_out(ee->evas);
65 ee->prop.focused = 0; 65 ee->prop.focused = 0;
66 if (ee->func.fn_focus_out) ee->func.fn_focus_out(ee); 66 if (ee->func.fn_focus_out) ee->func.fn_focus_out(ee);
67 67
68 return ECORE_CALLBACK_PASS_ON; 68 return ECORE_CALLBACK_PASS_ON;
69} 69}
70 70
@@ -98,6 +98,19 @@ _ecore_evas_psl1ght_event_key_modifiers(void *data __UNUSED__, int type __UNUSED
98 return ECORE_CALLBACK_PASS_ON; 98 return ECORE_CALLBACK_PASS_ON;
99} 99}
100 100
101static Eina_Bool
102_ecore_evas_psl1ght_event_quit (void *data __UNUSED__, int type __UNUSED__, void *event __UNUSED__)
103{
104 Ecore_Evas *ee;
105
106 ee = _ecore_evas_psl1ght_match();
107
108 if (!ee) return ECORE_CALLBACK_PASS_ON; /* pass on event */
109 if (ee->func.fn_delete_request)
110 ee->func.fn_delete_request(ee);
111 return ECORE_CALLBACK_PASS_ON;
112}
113
101static int 114static int
102_ecore_evas_render(Ecore_Evas *ee) 115_ecore_evas_render(Ecore_Evas *ee)
103{ 116{
@@ -170,10 +183,21 @@ _ecore_evas_psl1ght_init(int w __UNUSED__, int h __UNUSED__)
170 183
171 ecore_event_evas_init(); 184 ecore_event_evas_init();
172 185
173 ecore_evas_event_handlers[0] = ecore_event_handler_add(ECORE_PSL1GHT_EVENT_GOT_FOCUS, _ecore_evas_psl1ght_event_got_focus, NULL); 186 ecore_evas_event_handlers[0] =
174 ecore_evas_event_handlers[1] = ecore_event_handler_add(ECORE_PSL1GHT_EVENT_LOST_FOCUS, _ecore_evas_psl1ght_event_lost_focus, NULL); 187 ecore_event_handler_add(ECORE_PSL1GHT_EVENT_GOT_FOCUS,
175 ecore_evas_event_handlers[2] = ecore_event_handler_add(ECORE_PSL1GHT_EVENT_EXPOSE, _ecore_evas_psl1ght_event_video_expose, NULL); 188 _ecore_evas_psl1ght_event_got_focus, NULL);
176 ecore_evas_event_handlers[3] = ecore_event_handler_add(ECORE_PSL1GHT_EVENT_KEY_MODIFIERS, _ecore_evas_psl1ght_event_key_modifiers, NULL); 189 ecore_evas_event_handlers[1] =
190 ecore_event_handler_add(ECORE_PSL1GHT_EVENT_LOST_FOCUS,
191 _ecore_evas_psl1ght_event_lost_focus, NULL);
192 ecore_evas_event_handlers[2] =
193 ecore_event_handler_add(ECORE_PSL1GHT_EVENT_EXPOSE,
194 _ecore_evas_psl1ght_event_video_expose, NULL);
195 ecore_evas_event_handlers[3] =
196 ecore_event_handler_add(ECORE_PSL1GHT_EVENT_KEY_MODIFIERS,
197 _ecore_evas_psl1ght_event_key_modifiers, NULL);
198 ecore_evas_event_handlers[4] =
199 ecore_event_handler_add(ECORE_PSL1GHT_EVENT_QUIT,
200 _ecore_evas_psl1ght_event_quit, NULL);
177 201
178 return _ecore_evas_init_count; 202 return _ecore_evas_init_count;
179} 203}
@@ -209,6 +233,12 @@ _ecore_evas_psl1ght_free(Ecore_Evas *ee)
209} 233}
210 234
211static void 235static void
236_ecore_evas_psl1ght_callback_delete_request_set(Ecore_Evas *ee, void (*func) (Ecore_Evas *ee))
237{
238 ee->func.fn_delete_request = func;
239}
240
241static void
212_ecore_evas_screen_resized(Ecore_Evas *ee) 242_ecore_evas_screen_resized(Ecore_Evas *ee)
213{ 243{
214 int w, h; 244 int w, h;
@@ -324,7 +354,7 @@ static Ecore_Evas_Engine_Func _ecore_psl1ght_engine_func =
324 NULL, 354 NULL,
325 NULL, 355 NULL,
326 NULL, 356 NULL,
327 NULL, 357 _ecore_evas_psl1ght_callback_delete_request_set,
328 NULL, 358 NULL,
329 NULL, 359 NULL,
330 NULL, 360 NULL,
diff --git a/libraries/ecore/src/lib/ecore_evas/ecore_evas_sdl.c b/libraries/ecore/src/lib/ecore_evas/ecore_evas_sdl.c
index b333d96..a3be2c7 100644
--- a/libraries/ecore/src/lib/ecore_evas/ecore_evas_sdl.c
+++ b/libraries/ecore/src/lib/ecore_evas/ecore_evas_sdl.c
@@ -15,6 +15,9 @@
15# endif 15# endif
16#endif 16#endif
17 17
18#include <stdlib.h>
19#include <string.h>
20
18#include "ecore_evas_private.h" 21#include "ecore_evas_private.h"
19#include "Ecore_Evas.h" 22#include "Ecore_Evas.h"
20 23
diff --git a/libraries/ecore/src/lib/ecore_evas/ecore_evas_util.c b/libraries/ecore/src/lib/ecore_evas/ecore_evas_util.c
index 95b6d22..839f0c8 100644
--- a/libraries/ecore/src/lib/ecore_evas/ecore_evas_util.c
+++ b/libraries/ecore/src/lib/ecore_evas/ecore_evas_util.c
@@ -2,6 +2,7 @@
2# include <config.h> 2# include <config.h>
3#endif 3#endif
4 4
5#include <stdlib.h>
5#include <string.h> 6#include <string.h>
6 7
7#include <Ecore.h> 8#include <Ecore.h>
@@ -115,15 +116,16 @@ _ecore_evas_obj_callback_hide(void *data, Evas *e __UNUSED__, Evas_Object *obj _
115} 116}
116 117
117static void 118static void
118_ecore_evas_obj_callback_resize(void *data, Evas *e __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__) 119_ecore_evas_obj_callback_resize(void *data, Evas *e, Evas_Object *obj, void *event_info __UNUSED__)
119{ 120{
120 Ecore_Evas *ee = data; 121 Ecore_Evas *ee = data;
121 Evas_Coord ow, oh, w, h; 122 Evas_Coord ow, oh, fw, fh;
122 123
123 evas_object_geometry_get(obj, NULL, NULL, &ow, &oh); 124 evas_object_geometry_get(obj, NULL, NULL, &ow, &oh);
124 ecore_evas_geometry_get(ee, NULL, NULL, &w, &h); 125 evas_output_framespace_get(e, NULL, NULL, &fw, &fh);
125 /*if ((w != ow) || (h != oh))*/ /* avoid recursion on ecore_evas_resize side */ 126 ow += fw;
126 ecore_evas_resize(ee, ow, oh); 127 oh += fh;
128 ecore_evas_resize(ee, ow, oh);
127} 129}
128 130
129static void 131static void
diff --git a/libraries/ecore/src/lib/ecore_evas/ecore_evas_wayland_egl.c b/libraries/ecore/src/lib/ecore_evas/ecore_evas_wayland_egl.c
new file mode 100644
index 0000000..72e8555
--- /dev/null
+++ b/libraries/ecore/src/lib/ecore_evas/ecore_evas_wayland_egl.c
@@ -0,0 +1,1131 @@
1#ifdef HAVE_CONFIG_H
2# include <config.h>
3#endif
4
5#define LOGFNS 1
6
7#ifdef LOGFNS
8# include <stdio.h>
9# define LOGFN(fl, ln, fn) \
10 printf("-ECORE_EVAS-WL: %25s: %5i - %s\n", fl, ln, fn);
11#else
12# define LOGFN(fl, ln, fn)
13#endif
14
15#ifdef BUILD_ECORE_EVAS_WAYLAND_EGL
16# include <stdlib.h>
17# include <string.h>
18# include <unistd.h>
19# include <sys/types.h>
20# include <sys/mman.h>
21#endif
22
23#include <Eina.h>
24#include <Evas.h>
25#include <Ecore.h>
26
27#include "ecore_evas_private.h"
28#include "Ecore_Evas.h"
29
30#ifdef BUILD_ECORE_EVAS_WAYLAND_EGL
31# include <wayland-egl.h>
32# include <Evas_Engine_Wayland_Egl.h>
33# include <Ecore_Wayland.h>
34
35/* local structures */
36typedef struct _EE_Wl_Smart_Data EE_Wl_Smart_Data;
37struct _EE_Wl_Smart_Data
38{
39 Evas_Object *frame, *text;
40 Evas_Coord x, y, w, h;
41};
42
43/* local function prototypes */
44static int _ecore_evas_wl_init(void);
45static int _ecore_evas_wl_shutdown(void);
46static void _ecore_evas_wl_pre_free(Ecore_Evas *ee);
47static void _ecore_evas_wl_free(Ecore_Evas *ee);
48static void _ecore_evas_wl_callback_resize_set(Ecore_Evas *ee, void (*func)(Ecore_Evas *ee));
49static void _ecore_evas_wl_callback_move_set(Ecore_Evas *ee, void (*func)(Ecore_Evas *ee));
50static void _ecore_evas_wl_callback_delete_request_set(Ecore_Evas *ee, void (*func)(Ecore_Evas *ee));
51static void _ecore_evas_wl_callback_focus_in_set(Ecore_Evas *ee, void (*func)(Ecore_Evas *ee));
52static void _ecore_evas_wl_callback_focus_out_set(Ecore_Evas *ee, void (*func)(Ecore_Evas *ee));
53static void _ecore_evas_wl_callback_mouse_in_set(Ecore_Evas *ee, void (*func)(Ecore_Evas *ee));
54static void _ecore_evas_wl_move(Ecore_Evas *ee, int x, int y);
55static void _ecore_evas_wl_resize(Ecore_Evas *ee, int w, int h);
56static void _ecore_evas_wl_show(Ecore_Evas *ee);
57static void _ecore_evas_wl_hide(Ecore_Evas *ee);
58static void _ecore_evas_wl_raise(Ecore_Evas *ee);
59static void _ecore_evas_wl_lower(Ecore_Evas *ee);
60static void _ecore_evas_wl_activate(Ecore_Evas *ee);
61static void _ecore_evas_wl_title_set(Ecore_Evas *ee, const char *t);
62static void _ecore_evas_wl_name_class_set(Ecore_Evas *ee, const char *n, const char *c);
63static void _ecore_evas_wl_size_min_set(Ecore_Evas *ee, int w, int h);
64static void _ecore_evas_wl_size_max_set(Ecore_Evas *ee, int w, int h);
65static void _ecore_evas_wl_size_base_set(Ecore_Evas *ee, int w, int h);
66static void _ecore_evas_wl_size_step_set(Ecore_Evas *ee, int w, int h);
67static void _ecore_evas_wl_object_cursor_set(Ecore_Evas *ee, Evas_Object *obj, int layer, int hot_x, int hot_y);
68static void _ecore_evas_wl_object_cursor_del(void *data, Evas *evas __UNUSED__, Evas_Object *obj __UNUSED__, void *event __UNUSED__);
69static void _ecore_evas_wl_layer_set(Ecore_Evas *ee, int layer);
70static void _ecore_evas_wl_focus_set(Ecore_Evas *ee, int focus __UNUSED__);
71static void _ecore_evas_wl_iconified_set(Ecore_Evas *ee, int iconify);
72static void _ecore_evas_wl_maximized_set(Ecore_Evas *ee, int max);
73static void _ecore_evas_wl_fullscreen_set(Ecore_Evas *ee, int full __UNUSED__);
74static int _ecore_evas_wl_render(Ecore_Evas *ee);
75static void _ecore_evas_wl_screen_geometry_get(const Ecore_Evas *ee __UNUSED__, int *x, int *y, int *w, int *h);
76
77static Eina_Bool _ecore_evas_wl_event_mouse_down(void *data __UNUSED__, int type __UNUSED__, void *event);
78static Eina_Bool _ecore_evas_wl_event_mouse_up(void *data __UNUSED__, int type __UNUSED__, void *event);
79static Eina_Bool _ecore_evas_wl_event_mouse_move(void *data __UNUSED__, int type __UNUSED__, void *event);
80static Eina_Bool _ecore_evas_wl_event_mouse_wheel(void *data __UNUSED__, int type __UNUSED__, void *event);
81static Eina_Bool _ecore_evas_wl_event_mouse_in(void *data __UNUSED__, int type __UNUSED__, void *event);
82static Eina_Bool _ecore_evas_wl_event_mouse_out(void *data __UNUSED__, int type __UNUSED__, void *event);
83static Eina_Bool _ecore_evas_wl_event_focus_in(void *data __UNUSED__, int type __UNUSED__, void *event);
84static Eina_Bool _ecore_evas_wl_event_focus_out(void *data __UNUSED__, int type __UNUSED__, void *event);
85
86static void _ecore_evas_wl_handle_configure(void *data, struct wl_shell_surface *shell_surface __UNUSED__, uint32_t timestamp __UNUSED__, uint32_t edges __UNUSED__, int32_t width, int32_t height);
87static void _ecore_evas_wl_handle_popup_done(void *data __UNUSED__, struct wl_shell_surface *shell_surface __UNUSED__);
88
89/* SMART stuff for frame */
90static Evas_Smart *_ecore_evas_wl_smart = NULL;
91
92static void _ecore_evas_wl_smart_init(void);
93static void _ecore_evas_wl_smart_add(Evas_Object *obj);
94static void _ecore_evas_wl_smart_del(Evas_Object *obj);
95static void _ecore_evas_wl_smart_resize(Evas_Object *obj, Evas_Coord w, Evas_Coord h);
96static void _ecore_evas_wl_smart_show(Evas_Object *obj);
97static void _ecore_evas_wl_smart_hide(Evas_Object *obj);
98
99static Evas_Object *_ecore_evas_wl_frame_add(Evas *evas);
100
101/* local variables */
102static int _ecore_evas_wl_init_count = 0;
103static Ecore_Event_Handler *_ecore_evas_wl_event_handlers[8];
104static uint32_t _ecore_evas_wl_btn_timestamp;
105static const struct wl_shell_surface_listener _ecore_evas_wl_shell_surface_listener =
106{
107 _ecore_evas_wl_handle_configure,
108 _ecore_evas_wl_handle_popup_done
109};
110
111static Ecore_Evas_Engine_Func _ecore_wl_engine_func =
112{
113 _ecore_evas_wl_free,
114 _ecore_evas_wl_callback_resize_set,
115 _ecore_evas_wl_callback_move_set,
116 NULL, // callback show set
117 NULL, // callback hide set
118 _ecore_evas_wl_callback_delete_request_set,
119 NULL, // callback destroy set
120 _ecore_evas_wl_callback_focus_in_set,
121 _ecore_evas_wl_callback_focus_out_set,
122 _ecore_evas_wl_callback_mouse_in_set,
123 NULL, // callback mouse out set
124 NULL, // callback sticky set
125 NULL, // callback unsticky set
126 NULL, // callback pre render set
127 NULL, // callback post render set
128 _ecore_evas_wl_move,
129 NULL, // func managed move
130 _ecore_evas_wl_resize,
131 NULL, // _ecore_evas_wl_move_resize,
132 NULL, // func rotation set
133 NULL, // func shaped set
134 _ecore_evas_wl_show,
135 _ecore_evas_wl_hide,
136 _ecore_evas_wl_raise,
137 _ecore_evas_wl_lower,
138 _ecore_evas_wl_activate,
139 _ecore_evas_wl_title_set,
140 _ecore_evas_wl_name_class_set,
141 _ecore_evas_wl_size_min_set,
142 _ecore_evas_wl_size_max_set,
143 _ecore_evas_wl_size_base_set,
144 _ecore_evas_wl_size_step_set,
145 _ecore_evas_wl_object_cursor_set,
146 _ecore_evas_wl_layer_set,
147 _ecore_evas_wl_focus_set,
148 _ecore_evas_wl_iconified_set,
149 NULL, // func borderless set
150 NULL, // func override set
151 _ecore_evas_wl_maximized_set,
152 _ecore_evas_wl_fullscreen_set,
153 NULL, // _ecore_evas_wl_avoid_damage_set,
154 NULL, // func withdrawn set
155 NULL, // func sticky set
156 NULL, // func ignore events set
157 NULL, // func alpha set
158 NULL, // func transparent set
159 _ecore_evas_wl_render,
160 _ecore_evas_wl_screen_geometry_get
161};
162
163#endif
164
165#ifdef BUILD_ECORE_EVAS_WAYLAND_EGL
166EAPI Ecore_Evas *
167ecore_evas_wayland_egl_new(const char *disp_name, int x, int y, int w, int h, int frame)
168{
169 Evas_Engine_Info_Wayland_Egl *einfo;
170 Ecore_Evas *ee;
171 int method = 0;
172 static int _win_id = 1;
173
174 LOGFN(__FILE__, __LINE__, __FUNCTION__);
175
176 if (!(method = evas_render_method_lookup("wayland_egl")))
177 {
178 printf("Render method lookup failed for Wayland Egl");
179 return NULL;
180 }
181
182 if (!ecore_wl_init(disp_name))
183 {
184 printf("Failed to initialize Ecore Wayland");
185 return NULL;
186 }
187
188 if (!(ee = calloc(1, sizeof(Ecore_Evas))))
189 {
190 printf("Failed to allocate Ecore_Evas.");
191 ecore_wl_shutdown();
192 return NULL;
193 }
194
195 ECORE_MAGIC_SET(ee, ECORE_MAGIC_EVAS);
196
197 _ecore_evas_wl_init();
198
199 ee->engine.func = (Ecore_Evas_Engine_Func *)&_ecore_wl_engine_func;
200
201 ee->driver = "wayland_egl";
202 if (disp_name) ee->name = strdup(disp_name);
203
204 if (w < 1) w = 1;
205 if (h < 1) h = 1;
206
207 ee->req.x = ee->x = x;
208 ee->req.y = ee->y = y;
209 ee->req.w = ee->w = w;
210 ee->req.h = ee->h = h;
211 ee->rotation = 0;
212 ee->prop.max.w = ee->prop.max.h = 32767;
213 ee->prop.layer = 4;
214 ee->prop.request_pos = 0;
215 ee->prop.sticky = 0;
216 ee->prop.draw_frame = frame;
217 ee->prop.window = _win_id++;
218
219 ee->evas = evas_new();
220 evas_data_attach_set(ee->evas, ee);
221 evas_output_method_set(ee->evas, method);
222 evas_output_size_set(ee->evas, ee->w, ee->h);
223 evas_output_viewport_set(ee->evas, 0, 0, ee->w, ee->h);
224
225 if (ee->prop.draw_frame)
226 evas_output_framespace_set(ee->evas, 4, 18, 8, 22);
227
228 if ((einfo = (Evas_Engine_Info_Wayland_Egl *)evas_engine_info_get(ee->evas)))
229 {
230 einfo->info.display = ecore_wl_display_get();
231 einfo->info.rotation = ee->rotation;
232 if (!evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo))
233 {
234 printf("Failed to set Evas Engine Info for '%s'.", ee->driver);
235 ecore_evas_free(ee);
236 return NULL;
237 }
238 }
239 else
240 {
241 printf("Failed to get Evas Engine Info for '%s'.", ee->driver);
242 ecore_evas_free(ee);
243 return NULL;
244 }
245
246 /* NB: we need to be notified before 'free' so we can munmap the evas
247 * engine destination */
248 ecore_evas_callback_pre_free_set(ee, _ecore_evas_wl_pre_free);
249
250 if (ee->prop.draw_frame)
251 {
252 ee->engine.wl.frame = _ecore_evas_wl_frame_add(ee->evas);
253 evas_object_is_frame_object_set(ee->engine.wl.frame, EINA_TRUE);
254 evas_object_move(ee->engine.wl.frame, 0, 0);
255 }
256
257 ecore_evas_input_event_register(ee);
258 _ecore_evas_register(ee);
259
260 ecore_event_window_register(ee->prop.window, ee, ee->evas,
261 (Ecore_Event_Mouse_Move_Cb)_ecore_evas_mouse_move_process,
262 (Ecore_Event_Multi_Move_Cb)_ecore_evas_mouse_multi_move_process,
263 (Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process,
264 (Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process);
265
266 evas_event_feed_mouse_in(ee->evas, (unsigned int)((unsigned long long)(ecore_time_get() * 1000.0) & 0xffffffff), NULL);
267
268 return ee;
269}
270
271/* local functions */
272static int
273_ecore_evas_wl_init(void)
274{
275 LOGFN(__FILE__, __LINE__, __FUNCTION__);
276
277 if (++_ecore_evas_wl_init_count != 1)
278 return _ecore_evas_wl_init_count;
279
280 _ecore_evas_wl_event_handlers[0] =
281 ecore_event_handler_add(ECORE_EVENT_MOUSE_BUTTON_DOWN,
282 _ecore_evas_wl_event_mouse_down, NULL);
283 _ecore_evas_wl_event_handlers[1] =
284 ecore_event_handler_add(ECORE_EVENT_MOUSE_BUTTON_UP,
285 _ecore_evas_wl_event_mouse_up, NULL);
286 _ecore_evas_wl_event_handlers[2] =
287 ecore_event_handler_add(ECORE_EVENT_MOUSE_MOVE,
288 _ecore_evas_wl_event_mouse_move, NULL);
289 _ecore_evas_wl_event_handlers[3] =
290 ecore_event_handler_add(ECORE_EVENT_MOUSE_WHEEL,
291 _ecore_evas_wl_event_mouse_wheel, NULL);
292 _ecore_evas_wl_event_handlers[4] =
293 ecore_event_handler_add(ECORE_WL_EVENT_MOUSE_IN,
294 _ecore_evas_wl_event_mouse_in, NULL);
295 _ecore_evas_wl_event_handlers[5] =
296 ecore_event_handler_add(ECORE_WL_EVENT_MOUSE_OUT,
297 _ecore_evas_wl_event_mouse_out, NULL);
298 _ecore_evas_wl_event_handlers[6] =
299 ecore_event_handler_add(ECORE_WL_EVENT_FOCUS_IN,
300 _ecore_evas_wl_event_focus_in, NULL);
301 _ecore_evas_wl_event_handlers[7] =
302 ecore_event_handler_add(ECORE_WL_EVENT_FOCUS_OUT,
303 _ecore_evas_wl_event_focus_out, NULL);
304
305 ecore_event_evas_init();
306
307 return _ecore_evas_wl_init_count;
308}
309
310static int
311_ecore_evas_wl_shutdown(void)
312{
313 unsigned int i = 0;
314
315 LOGFN(__FILE__, __LINE__, __FUNCTION__);
316
317 if (--_ecore_evas_wl_init_count != 0)
318 return _ecore_evas_wl_init_count;
319
320 for (i = 0; i < sizeof(_ecore_evas_wl_event_handlers) / sizeof(Ecore_Event_Handler *); i++)
321 {
322 if (_ecore_evas_wl_event_handlers[i])
323 ecore_event_handler_del(_ecore_evas_wl_event_handlers[i]);
324 }
325
326 ecore_event_evas_shutdown();
327
328 return _ecore_evas_wl_init_count;
329}
330
331static void
332_ecore_evas_wl_pre_free(Ecore_Evas *ee)
333{
334 LOGFN(__FILE__, __LINE__, __FUNCTION__);
335
336 if (!ee) return;
337 if (ee->engine.wl.frame) evas_object_del(ee->engine.wl.frame);
338}
339
340static void
341_ecore_evas_wl_free(Ecore_Evas *ee)
342{
343 LOGFN(__FILE__, __LINE__, __FUNCTION__);
344
345 if (ee)
346 {
347 /* destroy shell surface */
348 if (ee->engine.wl.shell_surface)
349 wl_shell_surface_destroy(ee->engine.wl.shell_surface);
350 ee->engine.wl.shell_surface = NULL;
351
352 /* destroy surface */
353 if (ee->engine.wl.surface) wl_surface_destroy(ee->engine.wl.surface);
354 ee->engine.wl.surface = NULL;
355
356 ecore_event_window_unregister(ee->prop.window);
357 ecore_evas_input_event_unregister(ee);
358 }
359 _ecore_evas_wl_shutdown();
360 ecore_wl_shutdown();
361}
362
363static void
364_ecore_evas_wl_callback_resize_set(Ecore_Evas *ee, void (*func)(Ecore_Evas *ee))
365{
366 LOGFN(__FILE__, __LINE__, __FUNCTION__);
367
368 if (!ee) return;
369 ee->func.fn_resize = func;
370}
371
372static void
373_ecore_evas_wl_callback_move_set(Ecore_Evas *ee, void (*func)(Ecore_Evas *ee))
374{
375 LOGFN(__FILE__, __LINE__, __FUNCTION__);
376
377 if (!ee) return;
378 ee->func.fn_move = func;
379}
380
381static void
382_ecore_evas_wl_callback_delete_request_set(Ecore_Evas *ee, void (*func)(Ecore_Evas *ee))
383{
384 LOGFN(__FILE__, __LINE__, __FUNCTION__);
385
386 if (!ee) return;
387 ee->func.fn_delete_request = func;
388}
389
390static void
391_ecore_evas_wl_callback_focus_in_set(Ecore_Evas *ee, void (*func)(Ecore_Evas *ee))
392{
393 LOGFN(__FILE__, __LINE__, __FUNCTION__);
394
395 if (!ee) return;
396 ee->func.fn_focus_in = func;
397}
398
399static void
400_ecore_evas_wl_callback_focus_out_set(Ecore_Evas *ee, void (*func)(Ecore_Evas *ee))
401{
402 LOGFN(__FILE__, __LINE__, __FUNCTION__);
403
404 if (!ee) return;
405 ee->func.fn_focus_out = func;
406}
407
408static void
409_ecore_evas_wl_callback_mouse_in_set(Ecore_Evas *ee, void (*func)(Ecore_Evas *ee))
410{
411 LOGFN(__FILE__, __LINE__, __FUNCTION__);
412
413 if (!ee) return;
414 ee->func.fn_mouse_in = func;
415}
416
417static void
418_ecore_evas_wl_move(Ecore_Evas *ee, int x, int y)
419{
420 LOGFN(__FILE__, __LINE__, __FUNCTION__);
421
422 if (!ee) return;
423// if ((ee->x == x) && (ee->y == y)) return;
424 ee->req.x = x;
425 ee->req.y = y;
426
427 ee->x = x;
428 ee->y = y;
429 if (ee->engine.wl.shell_surface)
430 {
431 wl_shell_surface_move(ee->engine.wl.shell_surface,
432 ecore_wl_input_device_get(),
433 _ecore_evas_wl_btn_timestamp);
434 }
435 if (ee->func.fn_move) ee->func.fn_move(ee);
436}
437
438static void
439_ecore_evas_wl_resize(Ecore_Evas *ee, int w, int h)
440{
441 LOGFN(__FILE__, __LINE__, __FUNCTION__);
442
443 if (!ee) return;
444 if (w < 1) w = 1;
445 if (h < 1) h = 1;
446 if ((ee->w == w) && (ee->h == h)) return;
447
448 ee->req.w = w;
449 ee->req.h = h;
450
451 /* if (ee->visible) */
452 /* { */
453 /* damage old surface, if it exists */
454
455 /* NB: This removes any lingering screen artifacts in the compositor.
456 * This may be a 'HACK' if the issue is actually in the wayland
457 * compositor, but for now lets implement this so we don't have screen
458 * artifacts laying around during a resize */
459 /* if (ee->engine.wl.surface) */
460 /* wl_surface_damage(ee->engine.wl.surface, 0, 0, ee->w, ee->h); */
461 /* } */
462
463 ee->w = w;
464 ee->h = h;
465
466// ecore_wl_flush();
467
468 evas_output_size_set(ee->evas, ee->w, ee->h);
469 evas_output_viewport_set(ee->evas, 0, 0, ee->w, ee->h);
470 evas_damage_rectangle_add(ee->evas, 0, 0, ee->w, ee->h);
471 if (ee->engine.wl.frame)
472 evas_object_resize(ee->engine.wl.frame, ee->w, ee->h);
473
474 /* if ((ee->visible) && (ee->engine.wl.surface)) */
475 /* wl_surface_damage(ee->engine.wl.surface, 0, 0, ee->w, ee->h); */
476
477 if (ee->func.fn_resize) ee->func.fn_resize(ee);
478}
479
480static void
481_ecore_evas_wl_show(Ecore_Evas *ee)
482{
483 Evas_Engine_Info_Wayland_Egl *einfo;
484
485 LOGFN(__FILE__, __LINE__, __FUNCTION__);
486
487 if (!ee) return;
488 if (ee->visible) return;
489
490 einfo = (Evas_Engine_Info_Wayland_Egl *)evas_engine_info_get(ee->evas);
491
492 /* create new surface */
493 ee->engine.wl.surface =
494 wl_compositor_create_surface(ecore_wl_compositor_get());
495 wl_surface_set_user_data(ee->engine.wl.surface, (void *)ee->prop.window);
496
497 /* create new shell surface */
498 ee->engine.wl.shell_surface =
499 wl_shell_get_shell_surface(ecore_wl_shell_get(), ee->engine.wl.surface);
500
501 /* set the engine surface here. This should trigger an egl window create */
502 einfo->info.surface = ee->engine.wl.surface;
503 evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo);
504
505 /* add listener for configure events (happen on shell surface resize) */
506 wl_shell_surface_add_listener(ee->engine.wl.shell_surface,
507 &_ecore_evas_wl_shell_surface_listener, ee);
508
509 /* Raise this surface to the top */
510 wl_shell_surface_set_toplevel(ee->engine.wl.shell_surface);
511
512 if (ee->engine.wl.frame)
513 {
514 evas_object_show(ee->engine.wl.frame);
515 evas_object_resize(ee->engine.wl.frame, ee->w, ee->h);
516 }
517
518 ecore_wl_flush();
519
520 ee->visible = 1;
521 if (ee->func.fn_show) ee->func.fn_show(ee);
522}
523
524static void
525_ecore_evas_wl_hide(Ecore_Evas *ee)
526{
527 Evas_Engine_Info_Wayland_Egl *einfo;
528
529 LOGFN(__FILE__, __LINE__, __FUNCTION__);
530
531 if (!ee) return;
532 if (!ee->visible) return;
533
534 /* get engine info */
535 einfo = (Evas_Engine_Info_Wayland_Egl *)evas_engine_info_get(ee->evas);
536 einfo->info.surface = NULL;
537 evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo);
538
539 /* destroy shell surface */
540 if (ee->engine.wl.shell_surface)
541 wl_shell_surface_destroy(ee->engine.wl.shell_surface);
542 ee->engine.wl.shell_surface = NULL;
543
544 /* destroy surface */
545 if (ee->engine.wl.surface) wl_surface_destroy(ee->engine.wl.surface);
546 ee->engine.wl.surface = NULL;
547
548 ee->visible = 0;
549 ee->should_be_visible = 0;
550 if (ee->func.fn_hide) ee->func.fn_hide(ee);
551}
552
553static void
554_ecore_evas_wl_raise(Ecore_Evas *ee)
555{
556 LOGFN(__FILE__, __LINE__, __FUNCTION__);
557
558 if ((!ee) || (!ee->visible)) return;
559 if (!ee->engine.wl.shell_surface) return;
560 wl_shell_surface_set_toplevel(ee->engine.wl.shell_surface);
561}
562
563static void
564_ecore_evas_wl_lower(Ecore_Evas *ee)
565{
566 LOGFN(__FILE__, __LINE__, __FUNCTION__);
567
568 if ((!ee) || (!ee->visible)) return;
569 /* FIXME: Need a way to tell Wayland to lower */
570}
571
572static void
573_ecore_evas_wl_activate(Ecore_Evas *ee)
574{
575 LOGFN(__FILE__, __LINE__, __FUNCTION__);
576
577 if ((!ee) || (!ee->visible)) return;
578 if (!ee->engine.wl.shell_surface) return;
579 wl_shell_surface_set_toplevel(ee->engine.wl.shell_surface);
580}
581
582static void
583_ecore_evas_wl_title_set(Ecore_Evas *ee, const char *t)
584{
585 LOGFN(__FILE__, __LINE__, __FUNCTION__);
586
587 if (!ee) return;
588 if (ee->prop.title) free(ee->prop.title);
589 ee->prop.title = NULL;
590 if (t) ee->prop.title = strdup(t);
591
592 if ((ee->prop.draw_frame) && (ee->engine.wl.frame))
593 {
594 EE_Wl_Smart_Data *sd;
595
596 if (!(sd = evas_object_smart_data_get(ee->engine.wl.frame))) return;
597 evas_object_text_text_set(sd->text, ee->prop.title);
598 }
599}
600
601static void
602_ecore_evas_wl_name_class_set(Ecore_Evas *ee, const char *n, const char *c)
603{
604 LOGFN(__FILE__, __LINE__, __FUNCTION__);
605
606 if (!ee) return;
607 if (ee->prop.name) free(ee->prop.name);
608 if (ee->prop.clas) free(ee->prop.clas);
609 ee->prop.name = NULL;
610 ee->prop.clas = NULL;
611 if (n) ee->prop.name = strdup(n);
612 if (c) ee->prop.clas = strdup(c);
613 /* FIXME: Forward these changes to Wayland somehow */
614}
615
616static void
617_ecore_evas_wl_size_min_set(Ecore_Evas *ee, int w, int h)
618{
619 LOGFN(__FILE__, __LINE__, __FUNCTION__);
620
621 if (!ee) return;
622 if (w < 0) w = 0;
623 if (h < 0) h = 0;
624 if ((ee->prop.min.w == w) && (ee->prop.min.h == h)) return;
625 ee->prop.min.w = w;
626 ee->prop.min.h = h;
627}
628
629static void
630_ecore_evas_wl_size_max_set(Ecore_Evas *ee, int w, int h)
631{
632 LOGFN(__FILE__, __LINE__, __FUNCTION__);
633
634 if (!ee) return;
635 if (w < 0) w = 0;
636 if (h < 0) h = 0;
637 if ((ee->prop.max.w == w) && (ee->prop.max.h == h)) return;
638 ee->prop.max.w = w;
639 ee->prop.max.h = h;
640}
641
642static void
643_ecore_evas_wl_size_base_set(Ecore_Evas *ee, int w, int h)
644{
645 LOGFN(__FILE__, __LINE__, __FUNCTION__);
646
647 if (!ee) return;
648 if (w < 0) w = 0;
649 if (h < 0) h = 0;
650 if ((ee->prop.base.w == w) && (ee->prop.base.h == h)) return;
651 ee->prop.base.w = w;
652 ee->prop.base.h = h;
653}
654
655static void
656_ecore_evas_wl_size_step_set(Ecore_Evas *ee, int w, int h)
657{
658 LOGFN(__FILE__, __LINE__, __FUNCTION__);
659
660 if (!ee) return;
661 if (w < 0) w = 0;
662 if (h < 0) h = 0;
663 if ((ee->prop.step.w == w) && (ee->prop.step.h == h)) return;
664 ee->prop.step.w = w;
665 ee->prop.step.h = h;
666}
667
668static void
669_ecore_evas_wl_object_cursor_set(Ecore_Evas *ee, Evas_Object *obj, int layer, int hot_x, int hot_y)
670{
671 int x = 0, y = 0;
672
673 LOGFN(__FILE__, __LINE__, __FUNCTION__);
674
675 if (!ee) return;
676 if (ee->prop.cursor.object) evas_object_del(ee->prop.cursor.object);
677 ee->prop.cursor.object = NULL;
678
679 if (!obj)
680 {
681 ee->prop.cursor.layer = 0;
682 ee->prop.cursor.hot.x = 0;
683 ee->prop.cursor.hot.y = 0;
684 return;
685 }
686
687 ee->prop.cursor.object = obj;
688 ee->prop.cursor.layer = layer;
689 ee->prop.cursor.hot.x = hot_x;
690 ee->prop.cursor.hot.y = hot_y;
691
692 evas_pointer_output_xy_get(ee->evas, &x, &y);
693 evas_object_layer_set(ee->prop.cursor.object, ee->prop.cursor.layer);
694 evas_object_move(ee->prop.cursor.object,
695 x - ee->prop.cursor.hot.x, y - ee->prop.cursor.hot.y);
696 evas_object_pass_events_set(ee->prop.cursor.object, 1);
697 if (evas_pointer_inside_get(ee->evas))
698 evas_object_show(ee->prop.cursor.object);
699
700 evas_object_event_callback_add(obj, EVAS_CALLBACK_DEL,
701 _ecore_evas_wl_object_cursor_del, ee);
702}
703
704static void
705_ecore_evas_wl_object_cursor_del(void *data, Evas *evas __UNUSED__, Evas_Object *obj __UNUSED__, void *event __UNUSED__)
706{
707 Ecore_Evas *ee;
708
709 if (!(ee = data)) return;
710 ee->prop.cursor.object = NULL;
711}
712
713static void
714_ecore_evas_wl_layer_set(Ecore_Evas *ee, int layer)
715{
716 LOGFN(__FILE__, __LINE__, __FUNCTION__);
717
718 if (!ee) return;
719 if (ee->prop.layer == layer) return;
720 if (layer < 1) layer = 1;
721 else if (layer > 255) layer = 255;
722 ee->prop.layer = layer;
723}
724
725static void
726_ecore_evas_wl_focus_set(Ecore_Evas *ee, int focus __UNUSED__)
727{
728 LOGFN(__FILE__, __LINE__, __FUNCTION__);
729
730 if ((!ee) || (!ee->visible)) return;
731 if (!ee->engine.wl.shell_surface) return;
732 wl_shell_surface_set_toplevel(ee->engine.wl.shell_surface);
733}
734
735static void
736_ecore_evas_wl_iconified_set(Ecore_Evas *ee, int iconify)
737{
738 LOGFN(__FILE__, __LINE__, __FUNCTION__);
739
740 if (!ee) return;
741 if (ee->prop.iconified == iconify) return;
742 ee->prop.iconified = iconify;
743 /* FIXME: Implement this in Wayland someshow */
744}
745
746static void
747_ecore_evas_wl_maximized_set(Ecore_Evas *ee, int max)
748{
749 LOGFN(__FILE__, __LINE__, __FUNCTION__);
750
751 if (!ee) return;
752 if (ee->prop.maximized == max) return;
753 ee->prop.maximized = max;
754 /* FIXME: Implement this in Wayland someshow */
755}
756
757static void
758_ecore_evas_wl_fullscreen_set(Ecore_Evas *ee, int full __UNUSED__)
759{
760 LOGFN(__FILE__, __LINE__, __FUNCTION__);
761
762 if ((!ee) || (!ee->visible)) return;
763 if (!ee->engine.wl.shell_surface) return;
764 wl_shell_surface_set_fullscreen(ee->engine.wl.shell_surface);
765}
766
767static int
768_ecore_evas_wl_render(Ecore_Evas *ee)
769{
770 int rend = 0;
771
772 if (!ee) return 0;
773 if (!ee->visible)
774 evas_norender(ee->evas);
775 else
776 {
777 Eina_List *ll = NULL, *updates = NULL;
778 Ecore_Evas *ee2 = NULL;
779
780 if (ee->func.fn_pre_render) ee->func.fn_pre_render(ee);
781
782 EINA_LIST_FOREACH(ee->sub_ecore_evas, ll, ee2)
783 {
784 if (ee2->func.fn_pre_render) ee2->func.fn_pre_render(ee2);
785 if (ee2->engine.func->fn_render)
786 rend |= ee2->engine.func->fn_render(ee2);
787 if (ee2->func.fn_post_render) ee2->func.fn_post_render(ee2);
788 }
789
790 if ((updates = evas_render_updates(ee->evas)))
791 {
792 /* if (ee->engine.wl.surface) */
793 /* { */
794 /* Eina_List *l = NULL; */
795 /* Eina_Rectangle *r; */
796
797 /* EINA_LIST_FOREACH(updates, l, r) */
798 /* wl_surface_damage(ee->engine.wl.surface, */
799 /* r->x, r->y, r->w, r->h); */
800 /* } */
801
802 evas_render_updates_free(updates);
803 _ecore_evas_idle_timeout_update(ee);
804 rend = 1;
805
806 ecore_wl_flush();
807 }
808
809 if (ee->func.fn_post_render) ee->func.fn_post_render(ee);
810 }
811
812 return rend;
813}
814
815static void
816_ecore_evas_wl_screen_geometry_get(const Ecore_Evas *ee __UNUSED__, int *x, int *y, int *w, int *h)
817{
818 LOGFN(__FILE__, __LINE__, __FUNCTION__);
819
820 if (x) *x = 0;
821 if (y) *y = 0;
822 ecore_wl_screen_size_get(w, h);
823}
824
825static Eina_Bool
826_ecore_evas_wl_event_mouse_down(void *data __UNUSED__, int type __UNUSED__, void *event)
827{
828 Ecore_Evas *ee;
829 Ecore_Event_Mouse_Button *ev;
830
831 LOGFN(__FILE__, __LINE__, __FUNCTION__);
832
833 ev = event;
834 _ecore_evas_wl_btn_timestamp = ev->timestamp;
835 ee = ecore_event_window_match(ev->window);
836 if ((!ee) || (ee->ignore_events)) return ECORE_CALLBACK_PASS_ON;
837 if (ev->window != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
838 evas_event_feed_mouse_down(ee->evas, ev->buttons, ev->modifiers,
839 ev->timestamp, NULL);
840 return ECORE_CALLBACK_PASS_ON;
841}
842
843static Eina_Bool
844_ecore_evas_wl_event_mouse_up(void *data __UNUSED__, int type __UNUSED__, void *event)
845{
846 Ecore_Evas *ee;
847 Ecore_Event_Mouse_Button *ev;
848
849 LOGFN(__FILE__, __LINE__, __FUNCTION__);
850
851 ev = event;
852 ee = ecore_event_window_match(ev->window);
853 if ((!ee) || (ee->ignore_events)) return ECORE_CALLBACK_PASS_ON;
854 if (ev->window != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
855 evas_event_feed_mouse_up(ee->evas, ev->buttons, ev->modifiers,
856 ev->timestamp, NULL);
857 return ECORE_CALLBACK_PASS_ON;
858}
859
860static Eina_Bool
861_ecore_evas_wl_event_mouse_move(void *data __UNUSED__, int type __UNUSED__, void *event)
862{
863 Ecore_Evas *ee;
864 Ecore_Event_Mouse_Move *ev;
865
866 ev = event;
867 ee = ecore_event_window_match(ev->window);
868 if ((!ee) || (ee->ignore_events)) return ECORE_CALLBACK_PASS_ON;
869 if (ev->window != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
870 ee->mouse.x = ev->x;
871 ee->mouse.y = ev->y;
872 evas_event_feed_mouse_move(ee->evas, ev->x, ev->y, ev->timestamp, NULL);
873 _ecore_evas_mouse_move_process(ee, ev->x, ev->y, ev->timestamp);
874 return ECORE_CALLBACK_PASS_ON;
875}
876
877static Eina_Bool
878_ecore_evas_wl_event_mouse_wheel(void *data __UNUSED__, int type __UNUSED__, void *event)
879{
880 Ecore_Evas *ee;
881 Ecore_Event_Mouse_Wheel *ev;
882
883 LOGFN(__FILE__, __LINE__, __FUNCTION__);
884
885 ev = event;
886 ee = ecore_event_window_match(ev->window);
887 if ((!ee) || (ee->ignore_events)) return ECORE_CALLBACK_PASS_ON;
888 if (ev->window != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
889 evas_event_feed_mouse_wheel(ee->evas, ev->direction, ev->z,
890 ev->timestamp, NULL);
891 return ECORE_CALLBACK_PASS_ON;
892}
893
894static Eina_Bool
895_ecore_evas_wl_event_mouse_in(void *data __UNUSED__, int type __UNUSED__, void *event)
896{
897 Ecore_Evas *ee;
898 Ecore_Wl_Event_Mouse_In *ev;
899
900 LOGFN(__FILE__, __LINE__, __FUNCTION__);
901
902 ev = event;
903 ee = ecore_event_window_match(ev->window);
904 if ((!ee) || (ee->ignore_events)) return ECORE_CALLBACK_PASS_ON;
905 if (ev->window != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
906 if (ee->func.fn_mouse_in) ee->func.fn_mouse_in(ee);
907 ecore_event_evas_modifier_lock_update(ee->evas, ev->modifiers);
908 evas_event_feed_mouse_in(ee->evas, ev->time, NULL);
909 _ecore_evas_mouse_move_process(ee, ev->x, ev->y, ev->time);
910 return ECORE_CALLBACK_PASS_ON;
911}
912
913static Eina_Bool
914_ecore_evas_wl_event_mouse_out(void *data __UNUSED__, int type __UNUSED__, void *event)
915{
916 Ecore_Evas *ee;
917 Ecore_Wl_Event_Mouse_Out *ev;
918
919 LOGFN(__FILE__, __LINE__, __FUNCTION__);
920
921 ev = event;
922 ee = ecore_event_window_match(ev->window);
923 if ((!ee) || (ee->ignore_events)) return ECORE_CALLBACK_PASS_ON;
924 if (ev->window != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
925 ecore_event_evas_modifier_lock_update(ee->evas, ev->modifiers);
926 _ecore_evas_mouse_move_process(ee, ev->x, ev->y, ev->time);
927 evas_event_feed_mouse_out(ee->evas, ev->time, NULL);
928 if (ee->func.fn_mouse_out) ee->func.fn_mouse_out(ee);
929 if (ee->prop.cursor.object) evas_object_hide(ee->prop.cursor.object);
930 return ECORE_CALLBACK_PASS_ON;
931}
932
933static Eina_Bool
934_ecore_evas_wl_event_focus_in(void *data __UNUSED__, int type __UNUSED__, void *event)
935{
936 Ecore_Evas *ee;
937 Ecore_Wl_Event_Focus_In *ev;
938
939 LOGFN(__FILE__, __LINE__, __FUNCTION__);
940
941 ev = event;
942 ee = ecore_event_window_match(ev->window);
943 if ((!ee) || (ee->ignore_events)) return ECORE_CALLBACK_PASS_ON;
944 if (ev->window != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
945 ee->prop.focused = 1;
946 evas_focus_in(ee->evas);
947 if (ee->func.fn_focus_in) ee->func.fn_focus_in(ee);
948 return ECORE_CALLBACK_PASS_ON;
949}
950
951static Eina_Bool
952_ecore_evas_wl_event_focus_out(void *data __UNUSED__, int type __UNUSED__, void *event)
953{
954 Ecore_Evas *ee;
955 Ecore_Wl_Event_Focus_Out *ev;
956
957 LOGFN(__FILE__, __LINE__, __FUNCTION__);
958
959 ev = event;
960 ee = ecore_event_window_match(ev->window);
961 if ((!ee) || (ee->ignore_events)) return ECORE_CALLBACK_PASS_ON;
962 if (ev->window != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
963 evas_focus_out(ee->evas);
964 ee->prop.focused = 0;
965 if (ee->func.fn_focus_out) ee->func.fn_focus_out(ee);
966 return ECORE_CALLBACK_PASS_ON;
967}
968
969static void
970_ecore_evas_wl_handle_configure(void *data, struct wl_shell_surface *shell_surface, uint32_t timestamp __UNUSED__, uint32_t edges __UNUSED__, int32_t width, int32_t height)
971{
972 Ecore_Evas *ee;
973
974 /* NB: Trap to prevent compositor from crashing */
975 if ((width <= 0) || (height <= 0)) return;
976
977 if (!(ee = data)) return;
978
979 printf("EGL Handle Configure Message\n");
980 if ((shell_surface) && (ee->engine.wl.shell_surface))
981 {
982 if (ee->engine.wl.shell_surface != shell_surface) return;
983 ecore_evas_resize(ee, width, height);
984 }
985}
986
987static void
988_ecore_evas_wl_handle_popup_done(void *data __UNUSED__, struct wl_shell_surface *shell_surface __UNUSED__)
989{
990
991}
992
993static void
994_ecore_evas_wl_smart_init(void)
995{
996 if (_ecore_evas_wl_smart) return;
997 {
998 static const Evas_Smart_Class sc =
999 {
1000 "ecore_evas_wl_frame", EVAS_SMART_CLASS_VERSION,
1001 _ecore_evas_wl_smart_add,
1002 _ecore_evas_wl_smart_del,
1003 NULL,
1004 _ecore_evas_wl_smart_resize,
1005 _ecore_evas_wl_smart_show,
1006 _ecore_evas_wl_smart_hide,
1007 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL
1008 };
1009 _ecore_evas_wl_smart = evas_smart_class_new(&sc);
1010 }
1011}
1012
1013static void
1014_ecore_evas_wl_smart_add(Evas_Object *obj)
1015{
1016 EE_Wl_Smart_Data *sd;
1017 Evas *evas;
1018
1019 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1020
1021 if (!(sd = calloc(1, sizeof(EE_Wl_Smart_Data)))) return;
1022
1023 evas = evas_object_evas_get(obj);
1024
1025 sd->x = 0;
1026 sd->y = 0;
1027 sd->w = 1;
1028 sd->h = 1;
1029
1030 sd->frame = evas_object_rectangle_add(evas);
1031 evas_object_is_frame_object_set(sd->frame, EINA_TRUE);
1032 evas_object_color_set(sd->frame, 249, 249, 249, 255);
1033 evas_object_smart_member_add(sd->frame, obj);
1034
1035 sd->text = evas_object_text_add(evas);
1036 evas_object_color_set(sd->text, 0, 0, 0, 255);
1037 evas_object_text_style_set(sd->text, EVAS_TEXT_STYLE_PLAIN);
1038 evas_object_text_font_set(sd->text, "Sans", 10);
1039 evas_object_text_text_set(sd->text, "Smart Test");
1040
1041 evas_object_smart_data_set(obj, sd);
1042}
1043
1044static void
1045_ecore_evas_wl_smart_del(Evas_Object *obj)
1046{
1047 EE_Wl_Smart_Data *sd;
1048
1049 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1050
1051 if (!(sd = evas_object_smart_data_get(obj))) return;
1052 evas_object_del(sd->text);
1053 evas_object_del(sd->frame);
1054 free(sd);
1055}
1056
1057static void
1058_ecore_evas_wl_smart_resize(Evas_Object *obj, Evas_Coord w, Evas_Coord h)
1059{
1060 EE_Wl_Smart_Data *sd;
1061
1062 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1063
1064 if (!(sd = evas_object_smart_data_get(obj))) return;
1065 if ((sd->w == w) && (sd->h == h)) return;
1066 sd->w = w;
1067 sd->h = h;
1068 evas_object_resize(sd->frame, w, h);
1069}
1070
1071static void
1072_ecore_evas_wl_smart_show(Evas_Object *obj)
1073{
1074 EE_Wl_Smart_Data *sd;
1075
1076 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1077
1078 if (!(sd = evas_object_smart_data_get(obj))) return;
1079 evas_object_show(sd->frame);
1080 evas_object_show(sd->text);
1081}
1082
1083static void
1084_ecore_evas_wl_smart_hide(Evas_Object *obj)
1085{
1086 EE_Wl_Smart_Data *sd;
1087
1088 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1089
1090 if (!(sd = evas_object_smart_data_get(obj))) return;
1091 evas_object_hide(sd->text);
1092 evas_object_hide(sd->frame);
1093}
1094
1095static Evas_Object *
1096_ecore_evas_wl_frame_add(Evas *evas)
1097{
1098 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1099
1100 _ecore_evas_wl_smart_init();
1101 return evas_object_smart_add(evas, _ecore_evas_wl_smart);
1102}
1103
1104void
1105_ecore_evas_wayland_egl_resize(Ecore_Evas *ee, int location)
1106{
1107 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1108
1109 if ((!ee) || (!ee->engine.wl.shell_surface)) return;
1110 wl_shell_surface_resize(ee->engine.wl.shell_surface,
1111 ecore_wl_input_device_get(),
1112 _ecore_evas_wl_btn_timestamp, location);
1113}
1114
1115void
1116_ecore_evas_wayland_egl_drag_start(Ecore_Evas *ee, Ecore_Evas *drag_ee, void *source)
1117{
1118 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1119
1120 if ((!ee) || (!ee->engine.wl.surface)) return;
1121 if ((!source) || (!drag_ee)) return;
1122 ecore_wl_drag_start(source, ee->engine.wl.surface, drag_ee->engine.wl.buffer);
1123}
1124
1125#else
1126EAPI Ecore_Evas *
1127ecore_evas_wayland_egl_new(const char *disp_name __UNUSED__, int x __UNUSED__, int y __UNUSED__, int w __UNUSED__, int h __UNUSED__, int frame __UNUSED__)
1128{
1129 return NULL;
1130}
1131#endif
diff --git a/libraries/ecore/src/lib/ecore_evas/ecore_evas_wayland_shm.c b/libraries/ecore/src/lib/ecore_evas/ecore_evas_wayland_shm.c
new file mode 100644
index 0000000..e3b15c8
--- /dev/null
+++ b/libraries/ecore/src/lib/ecore_evas/ecore_evas_wayland_shm.c
@@ -0,0 +1,1257 @@
1#ifdef HAVE_CONFIG_H
2# include "config.h"
3#endif
4
5//#define LOGFNS 1
6
7#ifdef LOGFNS
8# include <stdio.h>
9# define LOGFN(fl, ln, fn) \
10 printf("-ECORE_EVAS-WL: %25s: %5i - %s\n", fl, ln, fn);
11#else
12# define LOGFN(fl, ln, fn)
13#endif
14
15#ifdef BUILD_ECORE_EVAS_WAYLAND_SHM
16# include <stdlib.h>
17# include <string.h>
18# include <unistd.h>
19# include <sys/types.h>
20# include <sys/mman.h>
21#endif
22
23# include <Eina.h>
24# include <Evas.h>
25# include <Ecore.h>
26
27# include "ecore_evas_private.h"
28# include "Ecore_Evas.h"
29
30#ifdef BUILD_ECORE_EVAS_WAYLAND_SHM
31# include <Evas_Engine_Wayland_Shm.h>
32# include <Ecore_Wayland.h>
33
34/* local structures */
35typedef struct _EE_Wl_Smart_Data EE_Wl_Smart_Data;
36struct _EE_Wl_Smart_Data
37{
38 Evas_Object *frame;
39 Evas_Object *text;
40 Evas_Coord x, y, w, h;
41};
42
43/* local function prototypes */
44static int _ecore_evas_wl_init(void);
45static int _ecore_evas_wl_shutdown(void);
46static void _ecore_evas_wl_pre_free(Ecore_Evas *ee);
47static void _ecore_evas_wl_free(Ecore_Evas *ee);
48static void _ecore_evas_wl_callback_resize_set(Ecore_Evas *ee, void (*func)(Ecore_Evas *ee));
49static void _ecore_evas_wl_callback_move_set(Ecore_Evas *ee, void (*func)(Ecore_Evas *ee));
50static void _ecore_evas_wl_callback_delete_request_set(Ecore_Evas *ee, void (*func)(Ecore_Evas *ee));
51static void _ecore_evas_wl_callback_focus_in_set(Ecore_Evas *ee, void (*func)(Ecore_Evas *ee));
52static void _ecore_evas_wl_callback_focus_out_set(Ecore_Evas *ee, void (*func)(Ecore_Evas *ee));
53static void _ecore_evas_wl_callback_mouse_in_set(Ecore_Evas *ee, void (*func)(Ecore_Evas *ee));
54static void _ecore_evas_wl_move(Ecore_Evas *ee, int x, int y);
55static void _ecore_evas_wl_resize(Ecore_Evas *ee, int w, int h);
56static void _ecore_evas_wl_show(Ecore_Evas *ee);
57static void _ecore_evas_wl_hide(Ecore_Evas *ee);
58static void _ecore_evas_wl_raise(Ecore_Evas *ee);
59static void _ecore_evas_wl_lower(Ecore_Evas *ee);
60static void _ecore_evas_wl_activate(Ecore_Evas *ee);
61static void _ecore_evas_wl_title_set(Ecore_Evas *ee, const char *t);
62static void _ecore_evas_wl_name_class_set(Ecore_Evas *ee, const char *n, const char *c);
63static void _ecore_evas_wl_size_min_set(Ecore_Evas *ee, int w, int h);
64static void _ecore_evas_wl_size_max_set(Ecore_Evas *ee, int w, int h);
65static void _ecore_evas_wl_size_base_set(Ecore_Evas *ee, int w, int h);
66static void _ecore_evas_wl_size_step_set(Ecore_Evas *ee, int w, int h);
67static void _ecore_evas_wl_object_cursor_set(Ecore_Evas *ee, Evas_Object *obj, int layer, int hot_x, int hot_y);
68static void _ecore_evas_wl_object_cursor_del(void *data, Evas *evas __UNUSED__, Evas_Object *obj __UNUSED__, void *event __UNUSED__);
69static void _ecore_evas_wl_layer_set(Ecore_Evas *ee, int layer);
70static void _ecore_evas_wl_focus_set(Ecore_Evas *ee, int focus __UNUSED__);
71static void _ecore_evas_wl_iconified_set(Ecore_Evas *ee, int iconify);
72static void _ecore_evas_wl_maximized_set(Ecore_Evas *ee, int max);
73static void _ecore_evas_wl_fullscreen_set(Ecore_Evas *ee, int full __UNUSED__);
74static int _ecore_evas_wl_render(Ecore_Evas *ee);
75static void _ecore_evas_wl_screen_geometry_get(const Ecore_Evas *ee __UNUSED__, int *x, int *y, int *w, int *h);
76static void _ecore_evas_wl_buffer_new(Ecore_Evas *ee, void **dest);
77
78static Eina_Bool _ecore_evas_wl_event_mouse_down(void *data __UNUSED__, int type __UNUSED__, void *event);
79static Eina_Bool _ecore_evas_wl_event_mouse_up(void *data __UNUSED__, int type __UNUSED__, void *event);
80static Eina_Bool _ecore_evas_wl_event_mouse_move(void *data __UNUSED__, int type __UNUSED__, void *event);
81static Eina_Bool _ecore_evas_wl_event_mouse_wheel(void *data __UNUSED__, int type __UNUSED__, void *event);
82static Eina_Bool _ecore_evas_wl_event_mouse_in(void *data __UNUSED__, int type __UNUSED__, void *event);
83static Eina_Bool _ecore_evas_wl_event_mouse_out(void *data __UNUSED__, int type __UNUSED__, void *event);
84static Eina_Bool _ecore_evas_wl_event_focus_in(void *data __UNUSED__, int type __UNUSED__, void *event);
85static Eina_Bool _ecore_evas_wl_event_focus_out(void *data __UNUSED__, int type __UNUSED__, void *event);
86
87static void _ecore_evas_wl_handle_configure(void *data, struct wl_shell_surface *shell_surface __UNUSED__, uint32_t timestamp __UNUSED__, uint32_t edges __UNUSED__, int32_t width, int32_t height);
88static void _ecore_evas_wl_handle_popup_done(void *data __UNUSED__, struct wl_shell_surface *shell_surface __UNUSED__);
89
90/* SMART stuff for frame */
91static Evas_Smart *_ecore_evas_wl_smart = NULL;
92
93static void _ecore_evas_wl_smart_init(void);
94static void _ecore_evas_wl_smart_add(Evas_Object *obj);
95static void _ecore_evas_wl_smart_del(Evas_Object *obj);
96static void _ecore_evas_wl_smart_resize(Evas_Object *obj, Evas_Coord w, Evas_Coord h);
97static void _ecore_evas_wl_smart_show(Evas_Object *obj);
98static void _ecore_evas_wl_smart_hide(Evas_Object *obj);
99
100static Evas_Object *_ecore_evas_wl_frame_add(Evas *evas);
101
102/* local variables */
103static int _ecore_evas_wl_init_count = 0;
104static Ecore_Event_Handler *_ecore_evas_wl_event_handlers[8];
105static uint32_t _ecore_evas_wl_btn_timestamp;
106static const struct wl_shell_surface_listener _ecore_evas_wl_shell_surface_listener =
107{
108 _ecore_evas_wl_handle_configure,
109 _ecore_evas_wl_handle_popup_done
110};
111
112static Ecore_Evas_Engine_Func _ecore_wl_engine_func =
113{
114 _ecore_evas_wl_free,
115 _ecore_evas_wl_callback_resize_set,
116 _ecore_evas_wl_callback_move_set,
117 NULL, // callback show set
118 NULL, // callback hide set
119 _ecore_evas_wl_callback_delete_request_set,
120 NULL, // callback destroy set
121 _ecore_evas_wl_callback_focus_in_set,
122 _ecore_evas_wl_callback_focus_out_set,
123 _ecore_evas_wl_callback_mouse_in_set,
124 NULL, // callback mouse out set
125 NULL, // callback sticky set
126 NULL, // callback unsticky set
127 NULL, // callback pre render set
128 NULL, // callback post render set
129 _ecore_evas_wl_move,
130 NULL, // func managed move
131 _ecore_evas_wl_resize,
132 NULL, // func move_resize
133 NULL, // func rotation set
134 NULL, // func shaped set
135 _ecore_evas_wl_show,
136 _ecore_evas_wl_hide,
137 _ecore_evas_wl_raise,
138 _ecore_evas_wl_lower,
139 _ecore_evas_wl_activate,
140 _ecore_evas_wl_title_set,
141 _ecore_evas_wl_name_class_set,
142 _ecore_evas_wl_size_min_set,
143 _ecore_evas_wl_size_max_set,
144 _ecore_evas_wl_size_base_set,
145 _ecore_evas_wl_size_step_set,
146 _ecore_evas_wl_object_cursor_set,
147 _ecore_evas_wl_layer_set,
148 _ecore_evas_wl_focus_set,
149 _ecore_evas_wl_iconified_set,
150 NULL, // func borderless set
151 NULL, // func override set
152 _ecore_evas_wl_maximized_set,
153 _ecore_evas_wl_fullscreen_set,
154 NULL, // func avoid_damage set
155 NULL, // func withdrawn set
156 NULL, // func sticky set
157 NULL, // func ignore_events set
158 NULL, // func alpha set
159 NULL, // func transparent set
160 _ecore_evas_wl_render,
161 _ecore_evas_wl_screen_geometry_get
162};
163
164/* external variables */
165#endif
166
167#ifdef BUILD_ECORE_EVAS_WAYLAND_SHM
168EAPI Ecore_Evas *
169ecore_evas_wayland_shm_new(const char *disp_name, int x, int y, int w, int h, int frame)
170{
171 Evas_Engine_Info_Wayland_Shm *einfo;
172 Ecore_Evas *ee;
173 int method = 0;
174 static int _win_id = 1;
175
176 LOGFN(__FILE__, __LINE__, __FUNCTION__);
177
178 if (!(method = evas_render_method_lookup("wayland_shm")))
179 {
180 ERR("Render method lookup failed.");
181 return NULL;
182 }
183
184 if (!(ecore_wl_init(disp_name)))
185 {
186 ERR("Failed to initialize Ecore Wayland.");
187 return NULL;
188 }
189
190 if (!(ee = calloc(1, sizeof(Ecore_Evas))))
191 {
192 ERR("Failed to allocate Ecore_Evas.");
193 ecore_wl_shutdown();
194 return NULL;
195 }
196
197 ECORE_MAGIC_SET(ee, ECORE_MAGIC_EVAS);
198
199 _ecore_evas_wl_init();
200
201 ee->engine.func = (Ecore_Evas_Engine_Func *)&_ecore_wl_engine_func;
202
203 ee->driver = "wayland_shm";
204 if (disp_name) ee->name = strdup(disp_name);
205
206 if (w < 1) w = 1;
207 if (h < 1) h = 1;
208
209 ee->req.x = ee->x = x;
210 ee->req.y = ee->y = y;
211 ee->req.w = ee->w = w;
212 ee->req.h = ee->h = h;
213 ee->rotation = 0;
214 ee->prop.max.w = ee->prop.max.h = 32767;
215 ee->prop.layer = 4;
216 ee->prop.request_pos = 0;
217 ee->prop.sticky = 0;
218 ee->prop.draw_frame = frame;
219 ee->prop.window = _win_id++;
220
221 ee->evas = evas_new();
222 evas_data_attach_set(ee->evas, ee);
223 evas_output_method_set(ee->evas, method);
224 evas_output_size_set(ee->evas, ee->w, ee->h);
225 evas_output_viewport_set(ee->evas, 0, 0, ee->w, ee->h);
226
227 if (ee->prop.draw_frame)
228 evas_output_framespace_set(ee->evas, 4, 18, 8, 22);
229
230 if ((einfo = (Evas_Engine_Info_Wayland_Shm *)evas_engine_info_get(ee->evas)))
231 {
232 einfo->info.rotation = ee->rotation;
233 einfo->info.debug = EINA_FALSE;
234 if (!evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo))
235 {
236 ERR("Failed to set Evas Engine Info for '%s'.", ee->driver);
237 ecore_evas_free(ee);
238 return NULL;
239 }
240 }
241 else
242 {
243 ERR("Failed to get Evas Engine Info for '%s'.", ee->driver);
244 ecore_evas_free(ee);
245 return NULL;
246 }
247
248 /* NB: we need to be notified before 'free' so we can munmap the evas
249 * engine destination */
250 ecore_evas_callback_pre_free_set(ee, _ecore_evas_wl_pre_free);
251
252 if (ee->prop.draw_frame)
253 {
254 ee->engine.wl.frame = _ecore_evas_wl_frame_add(ee->evas);
255 evas_object_is_frame_object_set(ee->engine.wl.frame, EINA_TRUE);
256 evas_object_move(ee->engine.wl.frame, 0, 0);
257 }
258
259 ecore_evas_input_event_register(ee);
260 _ecore_evas_register(ee);
261
262 ecore_event_window_register(ee->prop.window, ee, ee->evas,
263 (Ecore_Event_Mouse_Move_Cb)_ecore_evas_mouse_move_process,
264 (Ecore_Event_Multi_Move_Cb)_ecore_evas_mouse_multi_move_process,
265 (Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process,
266 (Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process);
267
268 evas_event_feed_mouse_in(ee->evas, (unsigned int)((unsigned long long)(ecore_time_get() * 1000.0) & 0xffffffff), NULL);
269
270 return ee;
271}
272
273/* local functions */
274static int
275_ecore_evas_wl_init(void)
276{
277 LOGFN(__FILE__, __LINE__, __FUNCTION__);
278
279 if (++_ecore_evas_wl_init_count != 1)
280 return _ecore_evas_wl_init_count;
281
282 _ecore_evas_wl_event_handlers[0] =
283 ecore_event_handler_add(ECORE_EVENT_MOUSE_BUTTON_DOWN,
284 _ecore_evas_wl_event_mouse_down, NULL);
285 _ecore_evas_wl_event_handlers[1] =
286 ecore_event_handler_add(ECORE_EVENT_MOUSE_BUTTON_UP,
287 _ecore_evas_wl_event_mouse_up, NULL);
288 _ecore_evas_wl_event_handlers[2] =
289 ecore_event_handler_add(ECORE_EVENT_MOUSE_MOVE,
290 _ecore_evas_wl_event_mouse_move, NULL);
291 _ecore_evas_wl_event_handlers[3] =
292 ecore_event_handler_add(ECORE_EVENT_MOUSE_WHEEL,
293 _ecore_evas_wl_event_mouse_wheel, NULL);
294 _ecore_evas_wl_event_handlers[4] =
295 ecore_event_handler_add(ECORE_WL_EVENT_MOUSE_IN,
296 _ecore_evas_wl_event_mouse_in, NULL);
297 _ecore_evas_wl_event_handlers[5] =
298 ecore_event_handler_add(ECORE_WL_EVENT_MOUSE_OUT,
299 _ecore_evas_wl_event_mouse_out, NULL);
300 _ecore_evas_wl_event_handlers[6] =
301 ecore_event_handler_add(ECORE_WL_EVENT_FOCUS_IN,
302 _ecore_evas_wl_event_focus_in, NULL);
303 _ecore_evas_wl_event_handlers[7] =
304 ecore_event_handler_add(ECORE_WL_EVENT_FOCUS_OUT,
305 _ecore_evas_wl_event_focus_out, NULL);
306
307 ecore_event_evas_init();
308
309 return _ecore_evas_wl_init_count;
310}
311
312static int
313_ecore_evas_wl_shutdown(void)
314{
315 unsigned int i = 0;
316
317 LOGFN(__FILE__, __LINE__, __FUNCTION__);
318
319 if (--_ecore_evas_wl_init_count != 0)
320 return _ecore_evas_wl_init_count;
321
322 for (i = 0; i < sizeof(_ecore_evas_wl_event_handlers) / sizeof(Ecore_Event_Handler *); i++)
323 {
324 if (_ecore_evas_wl_event_handlers[i])
325 ecore_event_handler_del(_ecore_evas_wl_event_handlers[i]);
326 }
327
328 ecore_event_evas_shutdown();
329
330 return _ecore_evas_wl_init_count;
331}
332
333static void
334_ecore_evas_wl_pre_free(Ecore_Evas *ee)
335{
336 Evas_Engine_Info_Wayland_Shm *einfo;
337
338 LOGFN(__FILE__, __LINE__, __FUNCTION__);
339
340 /* destroy frame */
341 if (ee->engine.wl.frame) evas_object_del(ee->engine.wl.frame);
342
343 /* get engine info */
344 einfo = (Evas_Engine_Info_Wayland_Shm *)evas_engine_info_get(ee->evas);
345 if ((einfo) && (einfo->info.dest))
346 {
347 int ret = 0;
348
349 /* munmap previous engine destination */
350 ret = munmap(einfo->info.dest, ((ee->w * sizeof(int)) * ee->h));
351 }
352}
353
354static void
355_ecore_evas_wl_free(Ecore_Evas *ee)
356{
357 LOGFN(__FILE__, __LINE__, __FUNCTION__);
358
359 /* destroy buffer */
360 if (ee->engine.wl.buffer) wl_buffer_destroy(ee->engine.wl.buffer);
361 ee->engine.wl.buffer = NULL;
362
363 /* destroy shell surface */
364 if (ee->engine.wl.shell_surface)
365 wl_shell_surface_destroy(ee->engine.wl.shell_surface);
366 ee->engine.wl.shell_surface = NULL;
367
368 /* destroy surface */
369 if (ee->engine.wl.surface) wl_surface_destroy(ee->engine.wl.surface);
370 ee->engine.wl.surface = NULL;
371
372 ecore_event_window_unregister(ee->prop.window);
373 ecore_evas_input_event_unregister(ee);
374
375 _ecore_evas_wl_shutdown();
376 ecore_wl_shutdown();
377}
378
379static void
380_ecore_evas_wl_callback_resize_set(Ecore_Evas *ee, void (*func)(Ecore_Evas *ee))
381{
382 LOGFN(__FILE__, __LINE__, __FUNCTION__);
383
384 if (!ee) return;
385 ee->func.fn_resize = func;
386}
387
388static void
389_ecore_evas_wl_callback_move_set(Ecore_Evas *ee, void (*func)(Ecore_Evas *ee))
390{
391 LOGFN(__FILE__, __LINE__, __FUNCTION__);
392
393 if (!ee) return;
394 ee->func.fn_move = func;
395}
396
397static void
398_ecore_evas_wl_callback_delete_request_set(Ecore_Evas *ee, void (*func)(Ecore_Evas *ee))
399{
400 LOGFN(__FILE__, __LINE__, __FUNCTION__);
401
402 if (!ee) return;
403 ee->func.fn_delete_request = func;
404}
405
406static void
407_ecore_evas_wl_callback_focus_in_set(Ecore_Evas *ee, void (*func)(Ecore_Evas *ee))
408{
409 LOGFN(__FILE__, __LINE__, __FUNCTION__);
410
411 if (!ee) return;
412 ee->func.fn_focus_in = func;
413}
414
415static void
416_ecore_evas_wl_callback_focus_out_set(Ecore_Evas *ee, void (*func)(Ecore_Evas *ee))
417{
418 LOGFN(__FILE__, __LINE__, __FUNCTION__);
419
420 if (!ee) return;
421 ee->func.fn_focus_out = func;
422}
423
424static void
425_ecore_evas_wl_callback_mouse_in_set(Ecore_Evas *ee, void (*func)(Ecore_Evas *ee))
426{
427 LOGFN(__FILE__, __LINE__, __FUNCTION__);
428
429 if (!ee) return;
430 ee->func.fn_mouse_in = func;
431}
432
433static void
434_ecore_evas_wl_move(Ecore_Evas *ee, int x, int y)
435{
436 LOGFN(__FILE__, __LINE__, __FUNCTION__);
437
438 if (!ee) return;
439// if ((ee->x == x) && (ee->y == y)) return;
440 ee->req.x = x;
441 ee->req.y = y;
442
443 ee->x = x;
444 ee->y = y;
445
446 if (ee->engine.wl.shell_surface)
447 {
448 wl_shell_surface_move(ee->engine.wl.shell_surface,
449 ecore_wl_input_device_get(),
450 _ecore_evas_wl_btn_timestamp);
451 }
452
453 if (ee->func.fn_move) ee->func.fn_move(ee);
454}
455
456static void
457_ecore_evas_wl_resize(Ecore_Evas *ee, int w, int h)
458{
459 Evas_Engine_Info_Wayland_Shm *einfo;
460
461 LOGFN(__FILE__, __LINE__, __FUNCTION__);
462
463 if (!ee) return;
464 if (w < 1) w = 1;
465 if (h < 1) h = 1;
466 if ((ee->w == w) && (ee->h == h)) return;
467
468 ee->req.w = w;
469 ee->req.h = h;
470
471 if (ee->visible)
472 {
473 /* damage old surface, if it exists */
474
475 /* NB: This removes any lingering screen artifacts in the compositor.
476 * This may be a 'HACK' if the issue is actually in the wayland
477 * compositor, but for now lets implement this so we don't have screen
478 * artifacts laying around during a resize */
479 if (ee->engine.wl.surface)
480 wl_surface_damage(ee->engine.wl.surface, 0, 0, ee->w, ee->h);
481 }
482
483 /* get engine info */
484 einfo = (Evas_Engine_Info_Wayland_Shm *)evas_engine_info_get(ee->evas);
485 if (einfo->info.dest)
486 {
487 int ret = 0;
488
489 /* munmap previous engine destination */
490 ret = munmap(einfo->info.dest, ((ee->w * sizeof(int)) * ee->h));
491 }
492
493 /* free old buffer */
494 if (ee->engine.wl.buffer) wl_buffer_destroy(ee->engine.wl.buffer);
495 ee->engine.wl.buffer = NULL;
496
497 ee->w = w;
498 ee->h = h;
499
500 /* create buffer @ new size (also mmaps the new destination) */
501 _ecore_evas_wl_buffer_new(ee, &einfo->info.dest);
502
503 /* flush new buffer fd */
504 ecore_wl_flush();
505
506 /* change evas output & viewport sizes */
507 evas_output_size_set(ee->evas, ee->w, ee->h);
508 evas_output_viewport_set(ee->evas, 0, 0, ee->w, ee->h);
509 evas_damage_rectangle_add(ee->evas, 0, 0, ee->w, ee->h);
510 if (ee->engine.wl.frame)
511 evas_object_resize(ee->engine.wl.frame, ee->w, ee->h);
512
513 /* set new engine destination */
514 evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo);
515
516 /* damage buffer */
517 wl_buffer_damage(ee->engine.wl.buffer, 0, 0, ee->w, ee->h);
518
519 if (ee->visible)
520 {
521 /* damage surface */
522 wl_surface_damage(ee->engine.wl.surface, 0, 0, ee->w, ee->h);
523
524 /* if visible, attach to surface */
525 wl_surface_attach(ee->engine.wl.surface, ee->engine.wl.buffer, 0, 0);
526 }
527
528 if (ee->func.fn_resize) ee->func.fn_resize(ee);
529}
530
531static void
532_ecore_evas_wl_show(Ecore_Evas *ee)
533{
534 Evas_Engine_Info_Wayland_Shm *einfo;
535
536 LOGFN(__FILE__, __LINE__, __FUNCTION__);
537
538 if (!ee) return;
539 if (ee->visible) return;
540
541 /* get engine info */
542 einfo = (Evas_Engine_Info_Wayland_Shm *)evas_engine_info_get(ee->evas);
543
544 /* create new surface */
545 ee->engine.wl.surface =
546 wl_compositor_create_surface(ecore_wl_compositor_get());
547 wl_surface_set_user_data(ee->engine.wl.surface, (void *)ee->prop.window);
548
549 /* get new shell surface */
550 ee->engine.wl.shell_surface =
551 wl_shell_get_shell_surface(ecore_wl_shell_get(), ee->engine.wl.surface);
552
553 /* set toplevel */
554 wl_shell_surface_set_toplevel(ee->engine.wl.shell_surface);
555
556 /* create buffer @ new size (also mmaps the new destination) */
557 _ecore_evas_wl_buffer_new(ee, &einfo->info.dest);
558
559 if (ee->engine.wl.frame)
560 {
561 evas_object_show(ee->engine.wl.frame);
562 evas_object_resize(ee->engine.wl.frame, ee->w, ee->h);
563 }
564
565 /* set new engine destination */
566 evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo);
567
568 /* add configure listener for wayland resize events */
569 wl_shell_surface_add_listener(ee->engine.wl.shell_surface,
570 &_ecore_evas_wl_shell_surface_listener, ee);
571
572 /* flush new buffer fd */
573 ecore_wl_flush();
574
575 /* attach buffer to surface */
576 wl_surface_attach(ee->engine.wl.surface, ee->engine.wl.buffer, 0, 0);
577
578 /* NB: No need to do a damage here. If we do, we end up w/ screen
579 * artifacts in the compositor */
580 /* wl_surface_damage(ee->engine.wl.surface, 0, 0, ee->w, ee->h); */
581
582 ee->visible = 1;
583 if (ee->func.fn_show) ee->func.fn_show(ee);
584}
585
586static void
587_ecore_evas_wl_hide(Ecore_Evas *ee)
588{
589 Evas_Engine_Info_Wayland_Shm *einfo;
590
591 LOGFN(__FILE__, __LINE__, __FUNCTION__);
592
593 if (!ee) return;
594 if (!ee->visible) return;
595
596 /* get engine info */
597 einfo = (Evas_Engine_Info_Wayland_Shm *)evas_engine_info_get(ee->evas);
598 if (einfo->info.dest)
599 {
600 int ret = 0;
601
602 /* munmap previous engine destination */
603 ret = munmap(einfo->info.dest, ((ee->w * sizeof(int)) * ee->h));
604 einfo->info.dest = NULL;
605 }
606
607 /* free old buffer */
608 if (ee->engine.wl.buffer) wl_buffer_destroy(ee->engine.wl.buffer);
609 ee->engine.wl.buffer = NULL;
610
611 /* set new engine destination */
612 evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo);
613
614 /* destroy shell surface */
615 if (ee->engine.wl.shell_surface)
616 wl_shell_surface_destroy(ee->engine.wl.shell_surface);
617 ee->engine.wl.shell_surface = NULL;
618
619 /* destroy surface */
620 if (ee->engine.wl.surface) wl_surface_destroy(ee->engine.wl.surface);
621 ee->engine.wl.surface = NULL;
622
623 ee->visible = 0;
624 ee->should_be_visible = 0;
625 if (ee->func.fn_hide) ee->func.fn_hide(ee);
626}
627
628static void
629_ecore_evas_wl_raise(Ecore_Evas *ee)
630{
631 LOGFN(__FILE__, __LINE__, __FUNCTION__);
632
633 if ((!ee) || (!ee->visible)) return;
634 if (!ee->engine.wl.shell_surface) return;
635 wl_shell_surface_set_toplevel(ee->engine.wl.shell_surface);
636}
637
638static void
639_ecore_evas_wl_lower(Ecore_Evas *ee)
640{
641 LOGFN(__FILE__, __LINE__, __FUNCTION__);
642
643 if ((!ee) || (!ee->visible)) return;
644 /* FIXME: Need a way to tell Wayland to lower */
645}
646
647static void
648_ecore_evas_wl_activate(Ecore_Evas *ee)
649{
650 LOGFN(__FILE__, __LINE__, __FUNCTION__);
651
652 if ((!ee) || (!ee->visible)) return;
653 if (!ee->engine.wl.shell_surface) return;
654 wl_shell_surface_set_toplevel(ee->engine.wl.shell_surface);
655}
656
657static void
658_ecore_evas_wl_title_set(Ecore_Evas *ee, const char *t)
659{
660 LOGFN(__FILE__, __LINE__, __FUNCTION__);
661
662 if (!ee) return;
663 if (ee->prop.title) free(ee->prop.title);
664 ee->prop.title = NULL;
665 if (t) ee->prop.title = strdup(t);
666
667 if ((ee->prop.draw_frame) && (ee->engine.wl.frame))
668 {
669 EE_Wl_Smart_Data *sd;
670
671 if (!(sd = evas_object_smart_data_get(ee->engine.wl.frame))) return;
672 evas_object_text_text_set(sd->text, ee->prop.title);
673 }
674}
675
676static void
677_ecore_evas_wl_name_class_set(Ecore_Evas *ee, const char *n, const char *c)
678{
679 LOGFN(__FILE__, __LINE__, __FUNCTION__);
680
681 if (!ee) return;
682 if (ee->prop.name) free(ee->prop.name);
683 if (ee->prop.clas) free(ee->prop.clas);
684 ee->prop.name = NULL;
685 ee->prop.clas = NULL;
686 if (n) ee->prop.name = strdup(n);
687 if (c) ee->prop.clas = strdup(c);
688 /* FIXME: Forward these changes to Wayland somehow */
689}
690
691static void
692_ecore_evas_wl_size_min_set(Ecore_Evas *ee, int w, int h)
693{
694 LOGFN(__FILE__, __LINE__, __FUNCTION__);
695
696 if (!ee) return;
697 if (w < 0) w = 0;
698 if (h < 0) h = 0;
699 if ((ee->prop.min.w == w) && (ee->prop.min.h == h)) return;
700 ee->prop.min.w = w;
701 ee->prop.min.h = h;
702}
703
704static void
705_ecore_evas_wl_size_max_set(Ecore_Evas *ee, int w, int h)
706{
707 LOGFN(__FILE__, __LINE__, __FUNCTION__);
708
709 if (!ee) return;
710 if (w < 0) w = 0;
711 if (h < 0) h = 0;
712 if ((ee->prop.max.w == w) && (ee->prop.max.h == h)) return;
713 ee->prop.max.w = w;
714 ee->prop.max.h = h;
715}
716
717static void
718_ecore_evas_wl_size_base_set(Ecore_Evas *ee, int w, int h)
719{
720 LOGFN(__FILE__, __LINE__, __FUNCTION__);
721
722 if (!ee) return;
723 if (w < 0) w = 0;
724 if (h < 0) h = 0;
725 if ((ee->prop.base.w == w) && (ee->prop.base.h == h)) return;
726 ee->prop.base.w = w;
727 ee->prop.base.h = h;
728}
729
730static void
731_ecore_evas_wl_size_step_set(Ecore_Evas *ee, int w, int h)
732{
733 LOGFN(__FILE__, __LINE__, __FUNCTION__);
734
735 if (!ee) return;
736 if (w < 0) w = 0;
737 if (h < 0) h = 0;
738 if ((ee->prop.step.w == w) && (ee->prop.step.h == h)) return;
739 ee->prop.step.w = w;
740 ee->prop.step.h = h;
741}
742
743static void
744_ecore_evas_wl_object_cursor_set(Ecore_Evas *ee, Evas_Object *obj, int layer, int hot_x, int hot_y)
745{
746 int x = 0, y = 0;
747
748 LOGFN(__FILE__, __LINE__, __FUNCTION__);
749
750 if (!ee) return;
751 if (ee->prop.cursor.object) evas_object_del(ee->prop.cursor.object);
752 ee->prop.cursor.object = NULL;
753
754 if (!obj)
755 {
756 ee->prop.cursor.layer = 0;
757 ee->prop.cursor.hot.x = 0;
758 ee->prop.cursor.hot.y = 0;
759 return;
760 }
761
762 ee->prop.cursor.object = obj;
763 ee->prop.cursor.layer = layer;
764 ee->prop.cursor.hot.x = hot_x;
765 ee->prop.cursor.hot.y = hot_y;
766
767 evas_pointer_output_xy_get(ee->evas, &x, &y);
768 evas_object_layer_set(ee->prop.cursor.object, ee->prop.cursor.layer);
769 evas_object_move(ee->prop.cursor.object,
770 x - ee->prop.cursor.hot.x, y - ee->prop.cursor.hot.y);
771 evas_object_pass_events_set(ee->prop.cursor.object, 1);
772 if (evas_pointer_inside_get(ee->evas))
773 evas_object_show(ee->prop.cursor.object);
774
775 evas_object_event_callback_add(obj, EVAS_CALLBACK_DEL,
776 _ecore_evas_wl_object_cursor_del, ee);
777}
778
779static void
780_ecore_evas_wl_object_cursor_del(void *data, Evas *evas __UNUSED__, Evas_Object *obj __UNUSED__, void *event __UNUSED__)
781{
782 Ecore_Evas *ee;
783
784 if (!(ee = data)) return;
785 ee->prop.cursor.object = NULL;
786}
787
788static void
789_ecore_evas_wl_layer_set(Ecore_Evas *ee, int layer)
790{
791 LOGFN(__FILE__, __LINE__, __FUNCTION__);
792
793 if (!ee) return;
794 if (ee->prop.layer == layer) return;
795 if (layer < 1) layer = 1;
796 else if (layer > 255) layer = 255;
797 ee->prop.layer = layer;
798}
799
800static void
801_ecore_evas_wl_focus_set(Ecore_Evas *ee, int focus __UNUSED__)
802{
803 LOGFN(__FILE__, __LINE__, __FUNCTION__);
804
805 if ((!ee) || (!ee->visible)) return;
806 if (!ee->engine.wl.shell_surface) return;
807 wl_shell_surface_set_toplevel(ee->engine.wl.shell_surface);
808}
809
810static void
811_ecore_evas_wl_iconified_set(Ecore_Evas *ee, int iconify)
812{
813 LOGFN(__FILE__, __LINE__, __FUNCTION__);
814
815 if (!ee) return;
816 if (ee->prop.iconified == iconify) return;
817 ee->prop.iconified = iconify;
818 /* FIXME: Implement this in Wayland someshow */
819}
820
821static void
822_ecore_evas_wl_maximized_set(Ecore_Evas *ee, int max)
823{
824 LOGFN(__FILE__, __LINE__, __FUNCTION__);
825
826 if (!ee) return;
827 if (ee->prop.maximized == max) return;
828 ee->prop.maximized = max;
829 /* FIXME: Implement this in Wayland someshow */
830}
831
832static void
833_ecore_evas_wl_fullscreen_set(Ecore_Evas *ee, int full __UNUSED__)
834{
835 LOGFN(__FILE__, __LINE__, __FUNCTION__);
836
837 if ((!ee) || (!ee->visible)) return;
838 if (!ee->engine.wl.shell_surface) return;
839 wl_shell_surface_set_fullscreen(ee->engine.wl.shell_surface);
840}
841
842static int
843_ecore_evas_wl_render(Ecore_Evas *ee)
844{
845 int rend = 0;
846
847 if (!ee) return 0;
848 if (!ee->visible)
849 evas_norender(ee->evas);
850 else
851 {
852 Eina_List *ll = NULL, *updates = NULL;
853 Ecore_Evas *ee2 = NULL;
854
855 if (ee->func.fn_pre_render) ee->func.fn_pre_render(ee);
856
857 EINA_LIST_FOREACH(ee->sub_ecore_evas, ll, ee2)
858 {
859 if (ee2->func.fn_pre_render) ee2->func.fn_pre_render(ee2);
860 if (ee2->engine.func->fn_render)
861 rend |= ee2->engine.func->fn_render(ee2);
862 if (ee2->func.fn_post_render) ee2->func.fn_post_render(ee2);
863 }
864
865 if ((updates = evas_render_updates(ee->evas)))
866 {
867 Eina_List *l = NULL;
868 Eina_Rectangle *r;
869
870 EINA_LIST_FOREACH(updates, l, r)
871 {
872 if (ee->engine.wl.buffer)
873 wl_buffer_damage(ee->engine.wl.buffer,
874 r->x, r->y, r->w, r->h);
875
876 if (ee->engine.wl.surface)
877 wl_surface_damage(ee->engine.wl.surface,
878 r->x, r->y, r->w, r->h);
879 }
880
881 evas_render_updates_free(updates);
882 _ecore_evas_idle_timeout_update(ee);
883 rend = 1;
884
885 ecore_wl_flush();
886 }
887
888 if (ee->func.fn_post_render) ee->func.fn_post_render(ee);
889 }
890
891 return rend;
892}
893
894static void
895_ecore_evas_wl_screen_geometry_get(const Ecore_Evas *ee __UNUSED__, int *x, int *y, int *w, int *h)
896{
897 LOGFN(__FILE__, __LINE__, __FUNCTION__);
898
899 if (x) *x = 0;
900 if (y) *y = 0;
901 ecore_wl_screen_size_get(w, h);
902}
903
904static Eina_Bool
905_ecore_evas_wl_event_mouse_down(void *data __UNUSED__, int type __UNUSED__, void *event)
906{
907 Ecore_Evas *ee;
908 Ecore_Event_Mouse_Button *ev;
909
910 LOGFN(__FILE__, __LINE__, __FUNCTION__);
911
912 ev = event;
913 _ecore_evas_wl_btn_timestamp = ev->timestamp;
914 ee = ecore_event_window_match(ev->window);
915 if ((!ee) || (ee->ignore_events)) return ECORE_CALLBACK_PASS_ON;
916 if (ev->window != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
917 evas_event_feed_mouse_down(ee->evas, ev->buttons, ev->modifiers,
918 ev->timestamp, NULL);
919 return ECORE_CALLBACK_PASS_ON;
920}
921
922static Eina_Bool
923_ecore_evas_wl_event_mouse_up(void *data __UNUSED__, int type __UNUSED__, void *event)
924{
925 Ecore_Evas *ee;
926 Ecore_Event_Mouse_Button *ev;
927
928 LOGFN(__FILE__, __LINE__, __FUNCTION__);
929
930 ev = event;
931 ee = ecore_event_window_match(ev->window);
932 if ((!ee) || (ee->ignore_events)) return ECORE_CALLBACK_PASS_ON;
933 if (ev->window != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
934 evas_event_feed_mouse_up(ee->evas, ev->buttons, ev->modifiers,
935 ev->timestamp, NULL);
936 return ECORE_CALLBACK_PASS_ON;
937}
938
939static Eina_Bool
940_ecore_evas_wl_event_mouse_move(void *data __UNUSED__, int type __UNUSED__, void *event)
941{
942 Ecore_Evas *ee;
943 Ecore_Event_Mouse_Move *ev;
944
945 ev = event;
946 ee = ecore_event_window_match(ev->window);
947 if ((!ee) || (ee->ignore_events)) return ECORE_CALLBACK_PASS_ON;
948 if (ev->window != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
949 ee->mouse.x = ev->x;
950 ee->mouse.y = ev->y;
951 evas_event_feed_mouse_move(ee->evas, ev->x, ev->y, ev->timestamp, NULL);
952 _ecore_evas_mouse_move_process(ee, ev->x, ev->y, ev->timestamp);
953 return ECORE_CALLBACK_PASS_ON;
954}
955
956static Eina_Bool
957_ecore_evas_wl_event_mouse_wheel(void *data __UNUSED__, int type __UNUSED__, void *event)
958{
959 Ecore_Evas *ee;
960 Ecore_Event_Mouse_Wheel *ev;
961
962 LOGFN(__FILE__, __LINE__, __FUNCTION__);
963
964 ev = event;
965 ee = ecore_event_window_match(ev->window);
966 if ((!ee) || (ee->ignore_events)) return ECORE_CALLBACK_PASS_ON;
967 if (ev->window != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
968 evas_event_feed_mouse_wheel(ee->evas, ev->direction, ev->z,
969 ev->timestamp, NULL);
970 return ECORE_CALLBACK_PASS_ON;
971}
972
973static Eina_Bool
974_ecore_evas_wl_event_mouse_in(void *data __UNUSED__, int type __UNUSED__, void *event)
975{
976 Ecore_Evas *ee;
977 Ecore_Wl_Event_Mouse_In *ev;
978
979 LOGFN(__FILE__, __LINE__, __FUNCTION__);
980
981 ev = event;
982 ee = ecore_event_window_match(ev->window);
983 if ((!ee) || (ee->ignore_events)) return ECORE_CALLBACK_PASS_ON;
984 if (ev->window != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
985 if (ee->func.fn_mouse_in) ee->func.fn_mouse_in(ee);
986 ecore_event_evas_modifier_lock_update(ee->evas, ev->modifiers);
987 evas_event_feed_mouse_in(ee->evas, ev->time, NULL);
988 _ecore_evas_mouse_move_process(ee, ev->x, ev->y, ev->time);
989 return ECORE_CALLBACK_PASS_ON;
990}
991
992static Eina_Bool
993_ecore_evas_wl_event_mouse_out(void *data __UNUSED__, int type __UNUSED__, void *event)
994{
995 Ecore_Evas *ee;
996 Ecore_Wl_Event_Mouse_Out *ev;
997
998 LOGFN(__FILE__, __LINE__, __FUNCTION__);
999
1000 ev = event;
1001 ee = ecore_event_window_match(ev->window);
1002 if ((!ee) || (ee->ignore_events)) return ECORE_CALLBACK_PASS_ON;
1003 if (ev->window != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
1004 ecore_event_evas_modifier_lock_update(ee->evas, ev->modifiers);
1005 _ecore_evas_mouse_move_process(ee, ev->x, ev->y, ev->time);
1006 evas_event_feed_mouse_out(ee->evas, ev->time, NULL);
1007 if (ee->func.fn_mouse_out) ee->func.fn_mouse_out(ee);
1008 if (ee->prop.cursor.object) evas_object_hide(ee->prop.cursor.object);
1009 return ECORE_CALLBACK_PASS_ON;
1010}
1011
1012static Eina_Bool
1013_ecore_evas_wl_event_focus_in(void *data __UNUSED__, int type __UNUSED__, void *event)
1014{
1015 Ecore_Evas *ee;
1016 Ecore_Wl_Event_Focus_In *ev;
1017
1018 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1019
1020 ev = event;
1021 ee = ecore_event_window_match(ev->window);
1022 if ((!ee) || (ee->ignore_events)) return ECORE_CALLBACK_PASS_ON;
1023 if (ev->window != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
1024 ee->prop.focused = 1;
1025 evas_focus_in(ee->evas);
1026 if (ee->func.fn_focus_in) ee->func.fn_focus_in(ee);
1027 return ECORE_CALLBACK_PASS_ON;
1028}
1029
1030static Eina_Bool
1031_ecore_evas_wl_event_focus_out(void *data __UNUSED__, int type __UNUSED__, void *event)
1032{
1033 Ecore_Evas *ee;
1034 Ecore_Wl_Event_Focus_Out *ev;
1035
1036 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1037
1038 ev = event;
1039 ee = ecore_event_window_match(ev->window);
1040 if ((!ee) || (ee->ignore_events)) return ECORE_CALLBACK_PASS_ON;
1041 if (ev->window != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
1042 evas_focus_out(ee->evas);
1043 ee->prop.focused = 0;
1044 if (ee->func.fn_focus_out) ee->func.fn_focus_out(ee);
1045 return ECORE_CALLBACK_PASS_ON;
1046}
1047
1048static void
1049_ecore_evas_wl_handle_configure(void *data, struct wl_shell_surface *shell_surface, uint32_t timestamp __UNUSED__, uint32_t edges __UNUSED__, int32_t width, int32_t height)
1050{
1051 Ecore_Evas *ee;
1052
1053 /* NB: Trap to prevent compositor from crashing */
1054 if ((width <= 0) || (height <= 0)) return;
1055
1056 if (!(ee = data)) return;
1057
1058 if ((shell_surface) && (ee->engine.wl.shell_surface))
1059 {
1060 if (ee->engine.wl.shell_surface != shell_surface) return;
1061 ecore_evas_resize(ee, width, height);
1062 }
1063}
1064
1065static void
1066_ecore_evas_wl_handle_popup_done(void *data __UNUSED__, struct wl_shell_surface *shell_surface __UNUSED__)
1067{
1068
1069}
1070
1071static void
1072_ecore_evas_wl_buffer_new(Ecore_Evas *ee, void **dest)
1073{
1074 static unsigned int format;
1075 char tmp[PATH_MAX];
1076 int fd = -1, stride = 0, size = 0;
1077 void *ret;
1078
1079 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1080
1081 if (dest) *dest = NULL;
1082
1083 if (!format) format = ecore_wl_format_get();
1084
1085 strcpy(tmp, "/tmp/ecore-wayland_shm-XXXXXX");
1086 if ((fd = mkstemp(tmp)) < 0)
1087 {
1088 ERR("Could not create temporary file.");
1089 return;
1090 }
1091
1092 stride = (ee->w * sizeof(int));
1093 size = (stride * ee->h);
1094 if (ftruncate(fd, size) < 0)
1095 {
1096 ERR("Could not truncate temporary file.");
1097 close(fd);
1098 return;
1099 }
1100
1101 ret = mmap(NULL, size, (PROT_READ | PROT_WRITE), MAP_SHARED, fd, 0);
1102 unlink(tmp);
1103
1104 if (ret == MAP_FAILED)
1105 {
1106 ERR("mmap of temporary file failed.");
1107 close(fd);
1108 return;
1109 }
1110
1111 if (dest) *dest = ret;
1112
1113 ee->engine.wl.buffer =
1114 wl_shm_create_buffer(ecore_wl_shm_get(), fd, ee->w, ee->h, stride, format);
1115
1116 close(fd);
1117}
1118
1119static void
1120_ecore_evas_wl_smart_init(void)
1121{
1122 if (_ecore_evas_wl_smart) return;
1123 {
1124 static const Evas_Smart_Class sc =
1125 {
1126 "ecore_evas_wl_frame", EVAS_SMART_CLASS_VERSION,
1127 _ecore_evas_wl_smart_add,
1128 _ecore_evas_wl_smart_del,
1129 NULL,
1130 _ecore_evas_wl_smart_resize,
1131 _ecore_evas_wl_smart_show,
1132 _ecore_evas_wl_smart_hide,
1133 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL
1134 };
1135 _ecore_evas_wl_smart = evas_smart_class_new(&sc);
1136 }
1137}
1138
1139static void
1140_ecore_evas_wl_smart_add(Evas_Object *obj)
1141{
1142 EE_Wl_Smart_Data *sd;
1143 Evas *evas;
1144
1145 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1146
1147 if (!(sd = calloc(1, sizeof(EE_Wl_Smart_Data)))) return;
1148
1149 evas = evas_object_evas_get(obj);
1150
1151 sd->x = 0;
1152 sd->y = 0;
1153 sd->w = 1;
1154 sd->h = 1;
1155
1156 sd->frame = evas_object_rectangle_add(evas);
1157 evas_object_is_frame_object_set(sd->frame, EINA_TRUE);
1158 evas_object_color_set(sd->frame, 249, 249, 249, 255);
1159 evas_object_smart_member_add(sd->frame, obj);
1160
1161 sd->text = evas_object_text_add(evas);
1162 evas_object_color_set(sd->text, 0, 0, 0, 255);
1163 evas_object_text_style_set(sd->text, EVAS_TEXT_STYLE_PLAIN);
1164 evas_object_text_font_set(sd->text, "Sans", 10);
1165 evas_object_text_text_set(sd->text, "Smart Test");
1166
1167 evas_object_smart_data_set(obj, sd);
1168}
1169
1170static void
1171_ecore_evas_wl_smart_del(Evas_Object *obj)
1172{
1173 EE_Wl_Smart_Data *sd;
1174
1175 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1176
1177 if (!(sd = evas_object_smart_data_get(obj))) return;
1178 evas_object_del(sd->text);
1179 evas_object_del(sd->frame);
1180 free(sd);
1181}
1182
1183static void
1184_ecore_evas_wl_smart_resize(Evas_Object *obj, Evas_Coord w, Evas_Coord h)
1185{
1186 EE_Wl_Smart_Data *sd;
1187
1188 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1189
1190 if (!(sd = evas_object_smart_data_get(obj))) return;
1191 if ((sd->w == w) && (sd->h == h)) return;
1192 sd->w = w;
1193 sd->h = h;
1194 evas_object_resize(sd->frame, w, h);
1195}
1196
1197static void
1198_ecore_evas_wl_smart_show(Evas_Object *obj)
1199{
1200 EE_Wl_Smart_Data *sd;
1201
1202 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1203
1204 if (!(sd = evas_object_smart_data_get(obj))) return;
1205 evas_object_show(sd->frame);
1206 evas_object_show(sd->text);
1207}
1208
1209static void
1210_ecore_evas_wl_smart_hide(Evas_Object *obj)
1211{
1212 EE_Wl_Smart_Data *sd;
1213
1214 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1215
1216 if (!(sd = evas_object_smart_data_get(obj))) return;
1217 evas_object_hide(sd->text);
1218 evas_object_hide(sd->frame);
1219}
1220
1221static Evas_Object *
1222_ecore_evas_wl_frame_add(Evas *evas)
1223{
1224 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1225
1226 _ecore_evas_wl_smart_init();
1227 return evas_object_smart_add(evas, _ecore_evas_wl_smart);
1228}
1229
1230void
1231_ecore_evas_wayland_shm_resize(Ecore_Evas *ee, int location)
1232{
1233 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1234
1235 if ((!ee) || (!ee->engine.wl.shell_surface)) return;
1236 wl_shell_surface_resize(ee->engine.wl.shell_surface,
1237 ecore_wl_input_device_get(),
1238 _ecore_evas_wl_btn_timestamp, location);
1239}
1240
1241void
1242_ecore_evas_wayland_shm_drag_start(Ecore_Evas *ee, Ecore_Evas *drag_ee, void *source)
1243{
1244 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1245
1246 if ((!ee) || (!ee->engine.wl.surface)) return;
1247 if ((!source) || (!drag_ee)) return;
1248 ecore_wl_drag_start(source, ee->engine.wl.surface, drag_ee->engine.wl.buffer);
1249}
1250
1251#else
1252EAPI Ecore_Evas *
1253ecore_evas_wayland_shm_new(const char *disp_name __UNUSED__, int x __UNUSED__, int y __UNUSED__, int w __UNUSED__, int h __UNUSED__, int frame __UNUSED__)
1254{
1255 return NULL;
1256}
1257#endif
diff --git a/libraries/ecore/src/lib/ecore_evas/ecore_evas_win32.c b/libraries/ecore/src/lib/ecore_evas/ecore_evas_win32.c
index 2ca7cb0..cfec528 100644
--- a/libraries/ecore/src/lib/ecore_evas/ecore_evas_win32.c
+++ b/libraries/ecore/src/lib/ecore_evas/ecore_evas_win32.c
@@ -147,9 +147,9 @@ _ecore_evas_win32_event_mouse_in(void *data __UNUSED__, int type __UNUSED__, voi
147 if (ee->func.fn_mouse_in) ee->func.fn_mouse_in(ee); 147 if (ee->func.fn_mouse_in) ee->func.fn_mouse_in(ee);
148 /* FIXME to do */ 148 /* FIXME to do */
149/* _ecore_evas_x_modifier_locks_update(ee, e->modifiers); */ 149/* _ecore_evas_x_modifier_locks_update(ee, e->modifiers); */
150 evas_event_feed_mouse_in(ee->evas, e->time, NULL); 150 evas_event_feed_mouse_in(ee->evas, e->timestamp, NULL);
151 evas_focus_in(ee->evas); 151 evas_focus_in(ee->evas);
152 _ecore_evas_mouse_move_process(ee, e->x, e->y, e->time); 152 _ecore_evas_mouse_move_process(ee, e->x, e->y, e->timestamp);
153 153
154 return 1; 154 return 1;
155} 155}
@@ -169,9 +169,9 @@ _ecore_evas_win32_event_mouse_out(void *data __UNUSED__, int type __UNUSED__, vo
169 169
170 /* FIXME to do */ 170 /* FIXME to do */
171/* _ecore_evas_x_modifier_locks_update(ee, e->modifiers); */ 171/* _ecore_evas_x_modifier_locks_update(ee, e->modifiers); */
172 _ecore_evas_mouse_move_process(ee, e->x, e->y, e->time); 172 _ecore_evas_mouse_move_process(ee, e->x, e->y, e->timestamp);
173 173
174 evas_event_feed_mouse_out(ee->evas, e->time, NULL); 174 evas_event_feed_mouse_out(ee->evas, e->timestamp, NULL);
175 if (ee->func.fn_mouse_out) ee->func.fn_mouse_out(ee); 175 if (ee->func.fn_mouse_out) ee->func.fn_mouse_out(ee);
176 if (ee->prop.cursor.object) evas_object_hide(ee->prop.cursor.object); 176 if (ee->prop.cursor.object) evas_object_hide(ee->prop.cursor.object);
177 177
diff --git a/libraries/ecore/src/lib/ecore_evas/ecore_evas_x.c b/libraries/ecore/src/lib/ecore_evas/ecore_evas_x.c
index d9ccd6e..7d3af12 100644
--- a/libraries/ecore/src/lib/ecore_evas/ecore_evas_x.c
+++ b/libraries/ecore/src/lib/ecore_evas/ecore_evas_x.c
@@ -1,4 +1,13 @@
1#ifdef HAVE_CONFIG_H
2# include <config.h>
3#endif
4
5#include <stdlib.h>
1#include <string.h> 6#include <string.h>
7
8#include <Eina.h>
9#include <Ecore.h>
10
2#include "ecore_evas_private.h" 11#include "ecore_evas_private.h"
3#include "Ecore_Evas.h" 12#include "Ecore_Evas.h"
4 13
@@ -731,10 +740,14 @@ _ecore_evas_x_event_mouse_in(void *data __UNUSED__, int type __UNUSED__, void *e
731 // (e->mode == ECORE_X_EVENT_MODE_UNGRAB)) 740 // (e->mode == ECORE_X_EVENT_MODE_UNGRAB))
732 // return 0; 741 // return 0;
733 /* if (e->mode != ECORE_X_EVENT_MODE_NORMAL) return 0; */ 742 /* if (e->mode != ECORE_X_EVENT_MODE_NORMAL) return 0; */
734 if (ee->func.fn_mouse_in) ee->func.fn_mouse_in(ee); 743 if (!ee->in)
735 ecore_event_evas_modifier_lock_update(ee->evas, e->modifiers); 744 {
736 evas_event_feed_mouse_in(ee->evas, e->time, NULL); 745 if (ee->func.fn_mouse_in) ee->func.fn_mouse_in(ee);
737 _ecore_evas_mouse_move_process(ee, e->x, e->y, e->time); 746 ecore_event_evas_modifier_lock_update(ee->evas, e->modifiers);
747 evas_event_feed_mouse_in(ee->evas, e->time, NULL);
748 _ecore_evas_mouse_move_process(ee, e->x, e->y, e->time);
749 ee->in = EINA_TRUE;
750 }
738 return ECORE_CALLBACK_PASS_ON; 751 return ECORE_CALLBACK_PASS_ON;
739} 752}
740 753
@@ -783,13 +796,23 @@ _ecore_evas_x_event_mouse_out(void *data __UNUSED__, int type __UNUSED__, void *
783 // (e->mode == ECORE_X_EVENT_MODE_UNGRAB)) 796 // (e->mode == ECORE_X_EVENT_MODE_UNGRAB))
784 // return 0; 797 // return 0;
785 /* if (e->mode != ECORE_X_EVENT_MODE_NORMAL) return 0; */ 798 /* if (e->mode != ECORE_X_EVENT_MODE_NORMAL) return 0; */
786 ecore_event_evas_modifier_lock_update(ee->evas, e->modifiers); 799// printf("OUT: ee->in=%i, e->mode=%i, e->detail=%i, dount_count=%i\n",
787 _ecore_evas_mouse_move_process(ee, e->x, e->y, e->time); 800// ee->in, e->mode, e->detail, evas_event_down_count_get(ee->evas));
788 if (e->mode == ECORE_X_EVENT_MODE_GRAB) 801 if (ee->in)
789 evas_event_feed_mouse_cancel(ee->evas, e->time, NULL); 802 {
790 evas_event_feed_mouse_out(ee->evas, e->time, NULL); 803 if ((evas_event_down_count_get(ee->evas) > 0) &&
791 if (ee->func.fn_mouse_out) ee->func.fn_mouse_out(ee); 804 (!((e->mode == ECORE_X_EVENT_MODE_GRAB) &&
792 if (ee->prop.cursor.object) evas_object_hide(ee->prop.cursor.object); 805 (e->detail == ECORE_X_EVENT_DETAIL_NON_LINEAR))))
806 return ECORE_CALLBACK_PASS_ON;
807 ecore_event_evas_modifier_lock_update(ee->evas, e->modifiers);
808 _ecore_evas_mouse_move_process(ee, e->x, e->y, e->time);
809 if (e->mode == ECORE_X_EVENT_MODE_GRAB)
810 evas_event_feed_mouse_cancel(ee->evas, e->time, NULL);
811 evas_event_feed_mouse_out(ee->evas, e->time, NULL);
812 if (ee->func.fn_mouse_out) ee->func.fn_mouse_out(ee);
813 if (ee->prop.cursor.object) evas_object_hide(ee->prop.cursor.object);
814 ee->in = EINA_FALSE;
815 }
793 return ECORE_CALLBACK_PASS_ON; 816 return ECORE_CALLBACK_PASS_ON;
794} 817}
795 818
@@ -1023,6 +1046,14 @@ _ecore_evas_x_event_window_hide(void *data __UNUSED__, int type __UNUSED__, void
1023 ee = ecore_event_window_match(e->win); 1046 ee = ecore_event_window_match(e->win);
1024 if (!ee) return ECORE_CALLBACK_PASS_ON; /* pass on event */ 1047 if (!ee) return ECORE_CALLBACK_PASS_ON; /* pass on event */
1025 if (e->win != ee->prop.window) return ECORE_CALLBACK_PASS_ON; 1048 if (e->win != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
1049 if (ee->in)
1050 {
1051 evas_event_feed_mouse_cancel(ee->evas, e->time, NULL);
1052 evas_event_feed_mouse_out(ee->evas, e->time, NULL);
1053 if (ee->func.fn_mouse_out) ee->func.fn_mouse_out(ee);
1054 if (ee->prop.cursor.object) evas_object_hide(ee->prop.cursor.object);
1055 ee->in = EINA_FALSE;
1056 }
1026 if (!ee->visible) return ECORE_CALLBACK_PASS_ON; 1057 if (!ee->visible) return ECORE_CALLBACK_PASS_ON;
1027// if (!ee->visible) return ECORE_CALLBACK_DONE; 1058// if (!ee->visible) return ECORE_CALLBACK_DONE;
1028// printf("HIDE EVENT %p\n", ee); 1059// printf("HIDE EVENT %p\n", ee);
diff --git a/libraries/ecore/src/lib/ecore_fb/Makefile.in b/libraries/ecore/src/lib/ecore_fb/Makefile.in
index b37120f..c0c30a5 100644
--- a/libraries/ecore/src/lib/ecore_fb/Makefile.in
+++ b/libraries/ecore/src/lib/ecore_fb/Makefile.in
@@ -249,10 +249,10 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
249PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 249PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
250PIXMAN_LIBS = @PIXMAN_LIBS@ 250PIXMAN_LIBS = @PIXMAN_LIBS@
251PKG_CONFIG = @PKG_CONFIG@ 251PKG_CONFIG = @PKG_CONFIG@
252PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
253PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
254POSUB = @POSUB@ 252POSUB = @POSUB@
255RANLIB = @RANLIB@ 253RANLIB = @RANLIB@
254SCIM_CFLAGS = @SCIM_CFLAGS@
255SCIM_LIBS = @SCIM_LIBS@
256SDL_CFLAGS = @SDL_CFLAGS@ 256SDL_CFLAGS = @SDL_CFLAGS@
257SDL_CONFIG = @SDL_CONFIG@ 257SDL_CONFIG = @SDL_CONFIG@
258SDL_LIBS = @SDL_LIBS@ 258SDL_LIBS = @SDL_LIBS@
@@ -271,6 +271,10 @@ TSLIB_LIBS = @TSLIB_LIBS@
271USE_NLS = @USE_NLS@ 271USE_NLS = @USE_NLS@
272VERSION = @VERSION@ 272VERSION = @VERSION@
273VMAJ = @VMAJ@ 273VMAJ = @VMAJ@
274WAYLAND_CFLAGS = @WAYLAND_CFLAGS@
275WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
276WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
277WAYLAND_LIBS = @WAYLAND_LIBS@
274WIN32_CFLAGS = @WIN32_CFLAGS@ 278WIN32_CFLAGS = @WIN32_CFLAGS@
275WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 279WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
276WIN32_LIBS = @WIN32_LIBS@ 280WIN32_LIBS = @WIN32_LIBS@
@@ -384,6 +388,8 @@ ecore_imf_cflags = @ecore_imf_cflags@
384ecore_imf_evas_cflags = @ecore_imf_evas_cflags@ 388ecore_imf_evas_cflags = @ecore_imf_evas_cflags@
385ecore_imf_evas_libs = @ecore_imf_evas_libs@ 389ecore_imf_evas_libs = @ecore_imf_evas_libs@
386ecore_imf_libs = @ecore_imf_libs@ 390ecore_imf_libs = @ecore_imf_libs@
391ecore_imf_scim_cflags = @ecore_imf_scim_cflags@
392ecore_imf_scim_libs = @ecore_imf_scim_libs@
387ecore_imf_xim_cflags = @ecore_imf_xim_cflags@ 393ecore_imf_xim_cflags = @ecore_imf_xim_cflags@
388ecore_imf_xim_libs = @ecore_imf_xim_libs@ 394ecore_imf_xim_libs = @ecore_imf_xim_libs@
389ecore_input_cflags = @ecore_input_cflags@ 395ecore_input_cflags = @ecore_input_cflags@
@@ -396,6 +402,8 @@ ecore_psl1ght_cflags = @ecore_psl1ght_cflags@
396ecore_psl1ght_libs = @ecore_psl1ght_libs@ 402ecore_psl1ght_libs = @ecore_psl1ght_libs@
397ecore_sdl_cflags = @ecore_sdl_cflags@ 403ecore_sdl_cflags = @ecore_sdl_cflags@
398ecore_sdl_libs = @ecore_sdl_libs@ 404ecore_sdl_libs = @ecore_sdl_libs@
405ecore_wayland_cflags = @ecore_wayland_cflags@
406ecore_wayland_libs = @ecore_wayland_libs@
399ecore_win32_cflags = @ecore_win32_cflags@ 407ecore_win32_cflags = @ecore_win32_cflags@
400ecore_win32_libs = @ecore_win32_libs@ 408ecore_win32_libs = @ecore_win32_libs@
401ecore_wince_cflags = @ecore_wince_cflags@ 409ecore_wince_cflags = @ecore_wince_cflags@
@@ -440,12 +448,14 @@ requirements_ecore_fb = @requirements_ecore_fb@
440requirements_ecore_file = @requirements_ecore_file@ 448requirements_ecore_file = @requirements_ecore_file@
441requirements_ecore_imf = @requirements_ecore_imf@ 449requirements_ecore_imf = @requirements_ecore_imf@
442requirements_ecore_imf_evas = @requirements_ecore_imf_evas@ 450requirements_ecore_imf_evas = @requirements_ecore_imf_evas@
451requirements_ecore_imf_scim = @requirements_ecore_imf_scim@
443requirements_ecore_imf_xim = @requirements_ecore_imf_xim@ 452requirements_ecore_imf_xim = @requirements_ecore_imf_xim@
444requirements_ecore_input = @requirements_ecore_input@ 453requirements_ecore_input = @requirements_ecore_input@
445requirements_ecore_input_evas = @requirements_ecore_input_evas@ 454requirements_ecore_input_evas = @requirements_ecore_input_evas@
446requirements_ecore_ipc = @requirements_ecore_ipc@ 455requirements_ecore_ipc = @requirements_ecore_ipc@
447requirements_ecore_psl1ght = @requirements_ecore_psl1ght@ 456requirements_ecore_psl1ght = @requirements_ecore_psl1ght@
448requirements_ecore_sdl = @requirements_ecore_sdl@ 457requirements_ecore_sdl = @requirements_ecore_sdl@
458requirements_ecore_wayland = @requirements_ecore_wayland@
449requirements_ecore_win32 = @requirements_ecore_win32@ 459requirements_ecore_win32 = @requirements_ecore_win32@
450requirements_ecore_wince = @requirements_ecore_wince@ 460requirements_ecore_wince = @requirements_ecore_wince@
451requirements_ecore_x = @requirements_ecore_x@ 461requirements_ecore_x = @requirements_ecore_x@
diff --git a/libraries/ecore/src/lib/ecore_fb/ecore_fb_li.c b/libraries/ecore/src/lib/ecore_fb/ecore_fb_li.c
index 4a196dd..3850792 100644
--- a/libraries/ecore/src/lib/ecore_fb/ecore_fb_li.c
+++ b/libraries/ecore/src/lib/ecore_fb/ecore_fb_li.c
@@ -2,6 +2,8 @@
2# include <config.h> 2# include <config.h>
3#endif 3#endif
4 4
5#include <stdlib.h>
6
5#include "Ecore_Fb.h" 7#include "Ecore_Fb.h"
6#include "ecore_fb_private.h" 8#include "ecore_fb_private.h"
7 9
@@ -452,9 +454,9 @@ ecore_fb_input_device_listen(Ecore_Fb_Input_Device *dev, Eina_Bool listen)
452#endif 454#endif
453 455
454/** 456/**
455 * @brief Associates an input device with the given @ref Ecore_Evas. 457 * @brief Associates an input device with the given @ref Ecore_Evas_Group.
456 * 458 *
457 * @param dev The input being associated with an @ref Ecore_Evas (not @c NULL). 459 * @param dev The input being associated with an @ref Ecore_Evas_Group (not @c NULL).
458 * @param window The window which this input is being associated to. 460 * @param window The window which this input is being associated to.
459 * @c NULL will remove any previous association. 461 * @c NULL will remove any previous association.
460 * 462 *
@@ -475,7 +477,7 @@ ecore_fb_input_device_listen(Ecore_Fb_Input_Device *dev, Eina_Bool listen)
475 * @endcode 477 * @endcode
476 * 478 *
477 * On the previous code, all input captured on the mentioned device will be 479 * On the previous code, all input captured on the mentioned device will be
478 * delivered to the @Ecore_Evas @c ee. 480 * delivered to the @c Ecore_Evas @c ee.
479 * 481 *
480 * @since 1.1 482 * @since 1.1
481 */ 483 */
diff --git a/libraries/ecore/src/lib/ecore_fb/ecore_fb_private.h b/libraries/ecore/src/lib/ecore_fb/ecore_fb_private.h
index 3e908a0..797f863 100644
--- a/libraries/ecore/src/lib/ecore_fb/ecore_fb_private.h
+++ b/libraries/ecore/src/lib/ecore_fb/ecore_fb_private.h
@@ -6,6 +6,7 @@
6#include "Ecore_Input.h" 6#include "Ecore_Input.h"
7 7
8#include <stdio.h> 8#include <stdio.h>
9#include <stdlib.h>
9#include <string.h> 10#include <string.h>
10#include <unistd.h> 11#include <unistd.h>
11#include <termios.h> 12#include <termios.h>
@@ -30,6 +31,8 @@
30#include <fcntl.h> 31#include <fcntl.h>
31#include <errno.h> 32#include <errno.h>
32 33
34#include <Ecore_Fb.h>
35
33/* ecore_fb_li.c */ 36/* ecore_fb_li.c */
34struct _Ecore_Fb_Input_Device 37struct _Ecore_Fb_Input_Device
35{ 38{
diff --git a/libraries/ecore/src/lib/ecore_file/Makefile.in b/libraries/ecore/src/lib/ecore_file/Makefile.in
index 34945b3..04e0bf1 100644
--- a/libraries/ecore/src/lib/ecore_file/Makefile.in
+++ b/libraries/ecore/src/lib/ecore_file/Makefile.in
@@ -250,10 +250,10 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
250PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 250PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
251PIXMAN_LIBS = @PIXMAN_LIBS@ 251PIXMAN_LIBS = @PIXMAN_LIBS@
252PKG_CONFIG = @PKG_CONFIG@ 252PKG_CONFIG = @PKG_CONFIG@
253PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
254PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
255POSUB = @POSUB@ 253POSUB = @POSUB@
256RANLIB = @RANLIB@ 254RANLIB = @RANLIB@
255SCIM_CFLAGS = @SCIM_CFLAGS@
256SCIM_LIBS = @SCIM_LIBS@
257SDL_CFLAGS = @SDL_CFLAGS@ 257SDL_CFLAGS = @SDL_CFLAGS@
258SDL_CONFIG = @SDL_CONFIG@ 258SDL_CONFIG = @SDL_CONFIG@
259SDL_LIBS = @SDL_LIBS@ 259SDL_LIBS = @SDL_LIBS@
@@ -272,6 +272,10 @@ TSLIB_LIBS = @TSLIB_LIBS@
272USE_NLS = @USE_NLS@ 272USE_NLS = @USE_NLS@
273VERSION = @VERSION@ 273VERSION = @VERSION@
274VMAJ = @VMAJ@ 274VMAJ = @VMAJ@
275WAYLAND_CFLAGS = @WAYLAND_CFLAGS@
276WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
277WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
278WAYLAND_LIBS = @WAYLAND_LIBS@
275WIN32_CFLAGS = @WIN32_CFLAGS@ 279WIN32_CFLAGS = @WIN32_CFLAGS@
276WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 280WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
277WIN32_LIBS = @WIN32_LIBS@ 281WIN32_LIBS = @WIN32_LIBS@
@@ -385,6 +389,8 @@ ecore_imf_cflags = @ecore_imf_cflags@
385ecore_imf_evas_cflags = @ecore_imf_evas_cflags@ 389ecore_imf_evas_cflags = @ecore_imf_evas_cflags@
386ecore_imf_evas_libs = @ecore_imf_evas_libs@ 390ecore_imf_evas_libs = @ecore_imf_evas_libs@
387ecore_imf_libs = @ecore_imf_libs@ 391ecore_imf_libs = @ecore_imf_libs@
392ecore_imf_scim_cflags = @ecore_imf_scim_cflags@
393ecore_imf_scim_libs = @ecore_imf_scim_libs@
388ecore_imf_xim_cflags = @ecore_imf_xim_cflags@ 394ecore_imf_xim_cflags = @ecore_imf_xim_cflags@
389ecore_imf_xim_libs = @ecore_imf_xim_libs@ 395ecore_imf_xim_libs = @ecore_imf_xim_libs@
390ecore_input_cflags = @ecore_input_cflags@ 396ecore_input_cflags = @ecore_input_cflags@
@@ -397,6 +403,8 @@ ecore_psl1ght_cflags = @ecore_psl1ght_cflags@
397ecore_psl1ght_libs = @ecore_psl1ght_libs@ 403ecore_psl1ght_libs = @ecore_psl1ght_libs@
398ecore_sdl_cflags = @ecore_sdl_cflags@ 404ecore_sdl_cflags = @ecore_sdl_cflags@
399ecore_sdl_libs = @ecore_sdl_libs@ 405ecore_sdl_libs = @ecore_sdl_libs@
406ecore_wayland_cflags = @ecore_wayland_cflags@
407ecore_wayland_libs = @ecore_wayland_libs@
400ecore_win32_cflags = @ecore_win32_cflags@ 408ecore_win32_cflags = @ecore_win32_cflags@
401ecore_win32_libs = @ecore_win32_libs@ 409ecore_win32_libs = @ecore_win32_libs@
402ecore_wince_cflags = @ecore_wince_cflags@ 410ecore_wince_cflags = @ecore_wince_cflags@
@@ -441,12 +449,14 @@ requirements_ecore_fb = @requirements_ecore_fb@
441requirements_ecore_file = @requirements_ecore_file@ 449requirements_ecore_file = @requirements_ecore_file@
442requirements_ecore_imf = @requirements_ecore_imf@ 450requirements_ecore_imf = @requirements_ecore_imf@
443requirements_ecore_imf_evas = @requirements_ecore_imf_evas@ 451requirements_ecore_imf_evas = @requirements_ecore_imf_evas@
452requirements_ecore_imf_scim = @requirements_ecore_imf_scim@
444requirements_ecore_imf_xim = @requirements_ecore_imf_xim@ 453requirements_ecore_imf_xim = @requirements_ecore_imf_xim@
445requirements_ecore_input = @requirements_ecore_input@ 454requirements_ecore_input = @requirements_ecore_input@
446requirements_ecore_input_evas = @requirements_ecore_input_evas@ 455requirements_ecore_input_evas = @requirements_ecore_input_evas@
447requirements_ecore_ipc = @requirements_ecore_ipc@ 456requirements_ecore_ipc = @requirements_ecore_ipc@
448requirements_ecore_psl1ght = @requirements_ecore_psl1ght@ 457requirements_ecore_psl1ght = @requirements_ecore_psl1ght@
449requirements_ecore_sdl = @requirements_ecore_sdl@ 458requirements_ecore_sdl = @requirements_ecore_sdl@
459requirements_ecore_wayland = @requirements_ecore_wayland@
450requirements_ecore_win32 = @requirements_ecore_win32@ 460requirements_ecore_win32 = @requirements_ecore_win32@
451requirements_ecore_wince = @requirements_ecore_wince@ 461requirements_ecore_wince = @requirements_ecore_wince@
452requirements_ecore_x = @requirements_ecore_x@ 462requirements_ecore_x = @requirements_ecore_x@
diff --git a/libraries/ecore/src/lib/ecore_file/ecore_file.c b/libraries/ecore/src/lib/ecore_file/ecore_file.c
index 2546f2f..cfbf2b5 100644
--- a/libraries/ecore/src/lib/ecore_file/ecore_file.c
+++ b/libraries/ecore/src/lib/ecore_file/ecore_file.c
@@ -2,6 +2,7 @@
2# include <config.h> 2# include <config.h>
3#endif 3#endif
4 4
5#include <stdlib.h>
5#include <stdio.h> 6#include <stdio.h>
6#include <string.h> 7#include <string.h>
7 8
@@ -597,11 +598,7 @@ ecore_file_mv(const char *src, const char *dst)
597 dir, ecore_file_file_get(dst)); 598 dir, ecore_file_file_get(dst));
598 free(dir); 599 free(dir);
599 fd = mkstemp(buf); 600 fd = mkstemp(buf);
600 if (fd < 0) 601 if (fd < 0) goto FAIL;
601 {
602 perror("mkstemp");
603 goto FAIL;
604 }
605 close(fd); 602 close(fd);
606 603
607 // Copy to temp file 604 // Copy to temp file
@@ -761,7 +758,7 @@ ecore_file_can_write(const char *file)
761} 758}
762 759
763/** 760/**
764 * @bbrief Check if the given file can be executed. 761 * @brief Check if the given file can be executed.
765 * 762 *
766 * @param file The name of the file. 763 * @param file The name of the file.
767 * @return EINA_TRUE if the file can be executed, EINA_FALSE otherwise. 764 * @return EINA_TRUE if the file can be executed, EINA_FALSE otherwise.
@@ -859,7 +856,7 @@ ecore_file_app_exe_get(const char *app)
859 856
860 p = (char *)app; 857 p = (char *)app;
861restart: 858restart:
862 while ((*p) && (isspace(*p))) p++; 859 while ((*p) && (isspace((unsigned char)*p))) p++;
863 exe1 = p; 860 exe1 = p;
864 while (*p) 861 while (*p)
865 { 862 {
@@ -879,7 +876,7 @@ restart:
879 in_quot_sing = 1; 876 in_quot_sing = 1;
880 else if (*p == '\"') 877 else if (*p == '\"')
881 in_quot_dbl = 1; 878 in_quot_dbl = 1;
882 if ((isspace(*p)) && (!((p > app) && (p[-1] != '\\')))) 879 if ((isspace((unsigned char)*p)) && ((p <= app) || (p[-1] == '\\')))
883 break; 880 break;
884 } 881 }
885 p++; 882 p++;
@@ -974,7 +971,7 @@ restart:
974 in_quot_sing = 1; 971 in_quot_sing = 1;
975 else if (*p == '\"') 972 else if (*p == '\"')
976 in_quot_dbl = 1; 973 in_quot_dbl = 1;
977 else if (isspace(*p)) 974 else if (isspace((unsigned char)*p))
978 { 975 {
979 if (restart) 976 if (restart)
980 goto restart; 977 goto restart;
@@ -1040,7 +1037,7 @@ ecore_file_escape_name(const char *filename)
1040} 1037}
1041 1038
1042/** 1039/**
1043 * @bried Remove the extension from the given file name. 1040 * @brief Remove the extension from the given file name.
1044 * 1041 *
1045 * @param path The name of the file. 1042 * @param path The name of the file.
1046 * @return A newly allocated string with the extension stripped out or 1043 * @return A newly allocated string with the extension stripped out or
diff --git a/libraries/ecore/src/lib/ecore_file/ecore_file_download.c b/libraries/ecore/src/lib/ecore_file/ecore_file_download.c
index c7efc4d..c5e56bd 100644
--- a/libraries/ecore/src/lib/ecore_file/ecore_file_download.c
+++ b/libraries/ecore/src/lib/ecore_file/ecore_file_download.c
@@ -2,6 +2,7 @@
2# include <config.h> 2# include <config.h>
3#endif 3#endif
4 4
5#include <stdlib.h>
5#include <stdio.h> 6#include <stdio.h>
6#include <string.h> 7#include <string.h>
7 8
@@ -14,6 +15,7 @@
14#ifdef BUILD_ECORE_CON 15#ifdef BUILD_ECORE_CON
15 16
16#define ECORE_MAGIC_FILE_DOWNLOAD_JOB 0xf7427cb8 17#define ECORE_MAGIC_FILE_DOWNLOAD_JOB 0xf7427cb8
18#define ECORE_FILE_DOWNLOAD_TIMEOUT 30
17 19
18struct _Ecore_File_Download_Job 20struct _Ecore_File_Download_Job
19{ 21{
@@ -360,6 +362,7 @@ _ecore_file_download_curl(const char *url, const char *dst,
360 } 362 }
361 363
362 if (headers) eina_hash_foreach(headers, _ecore_file_download_headers_foreach_cb, job); 364 if (headers) eina_hash_foreach(headers, _ecore_file_download_headers_foreach_cb, job);
365 ecore_con_url_timeout_set(job->url_con, ECORE_FILE_DOWNLOAD_TIMEOUT);
363 ecore_con_url_fd_set(job->url_con, fileno(job->file)); 366 ecore_con_url_fd_set(job->url_con, fileno(job->file));
364 ecore_con_url_data_set(job->url_con, data); 367 ecore_con_url_data_set(job->url_con, data);
365 368
diff --git a/libraries/ecore/src/lib/ecore_file/ecore_file_monitor_inotify.c b/libraries/ecore/src/lib/ecore_file/ecore_file_monitor_inotify.c
index c3533ad..efdd8c2 100644
--- a/libraries/ecore/src/lib/ecore_file/ecore_file_monitor_inotify.c
+++ b/libraries/ecore/src/lib/ecore_file/ecore_file_monitor_inotify.c
@@ -2,6 +2,7 @@
2# include <config.h> 2# include <config.h>
3#endif 3#endif
4 4
5#include <stdlib.h>
5#include <stdio.h> 6#include <stdio.h>
6#include <string.h> 7#include <string.h>
7#include <sys/types.h> 8#include <sys/types.h>
diff --git a/libraries/ecore/src/lib/ecore_file/ecore_file_monitor_poll.c b/libraries/ecore/src/lib/ecore_file/ecore_file_monitor_poll.c
index 1f71b55..49bfcb6 100644
--- a/libraries/ecore/src/lib/ecore_file/ecore_file_monitor_poll.c
+++ b/libraries/ecore/src/lib/ecore_file/ecore_file_monitor_poll.c
@@ -2,6 +2,7 @@
2# include <config.h> 2# include <config.h>
3#endif 3#endif
4 4
5#include <stdlib.h>
5#include <stdio.h> 6#include <stdio.h>
6#include <string.h> 7#include <string.h>
7 8
diff --git a/libraries/ecore/src/lib/ecore_file/ecore_file_path.c b/libraries/ecore/src/lib/ecore_file/ecore_file_path.c
index ade3bc6..f5294b7 100644
--- a/libraries/ecore/src/lib/ecore_file/ecore_file_path.c
+++ b/libraries/ecore/src/lib/ecore_file/ecore_file_path.c
@@ -20,6 +20,7 @@ extern "C"
20void *alloca (size_t); 20void *alloca (size_t);
21#endif 21#endif
22 22
23#include <stdlib.h>
23#include <stdio.h> 24#include <stdio.h>
24#include <string.h> 25#include <string.h>
25 26
@@ -85,7 +86,7 @@ _ecore_file_path_from_env(const char *env)
85/** 86/**
86 * @brief Check if the given directory is in PATH. 87 * @brief Check if the given directory is in PATH.
87 * 88 *
88 * @param The name of the directory to search in PATH. 89 * @param in_dir The name of the directory to search in PATH.
89 * @return EINA_TRUE if the directory exist in PATH, EINA_FALSE otherwise. 90 * @return EINA_TRUE if the directory exist in PATH, EINA_FALSE otherwise.
90 * 91 *
91 * This function checks if @p in_dir is in the environment variable 92 * This function checks if @p in_dir is in the environment variable
diff --git a/libraries/ecore/src/lib/ecore_imf/Ecore_IMF.h b/libraries/ecore/src/lib/ecore_imf/Ecore_IMF.h
index 21df2a0..adea35d 100644
--- a/libraries/ecore/src/lib/ecore_imf/Ecore_IMF.h
+++ b/libraries/ecore/src/lib/ecore_imf/Ecore_IMF.h
@@ -64,6 +64,17 @@ EAPI extern int ECORE_IMF_EVENT_PREEDIT_CHANGED;
64EAPI extern int ECORE_IMF_EVENT_COMMIT; 64EAPI extern int ECORE_IMF_EVENT_COMMIT;
65EAPI extern int ECORE_IMF_EVENT_DELETE_SURROUNDING; 65EAPI extern int ECORE_IMF_EVENT_DELETE_SURROUNDING;
66 66
67typedef void (*Ecore_IMF_Event_Cb) (void *data, Ecore_IMF_Context *ctx, void *event_info);
68
69typedef enum
70{
71 ECORE_IMF_CALLBACK_PREEDIT_START,
72 ECORE_IMF_CALLBACK_PREEDIT_END,
73 ECORE_IMF_CALLBACK_PREEDIT_CHANGED,
74 ECORE_IMF_CALLBACK_COMMIT,
75 ECORE_IMF_CALLBACK_DELETE_SURROUNDING
76} Ecore_IMF_Callback_Type;
77
67typedef enum 78typedef enum
68{ 79{
69 ECORE_IMF_EVENT_MOUSE_DOWN, 80 ECORE_IMF_EVENT_MOUSE_DOWN,
@@ -138,7 +149,10 @@ typedef enum
138 ECORE_IMF_INPUT_PANEL_LAYOUT_IP, /**< IP layout */ 149 ECORE_IMF_INPUT_PANEL_LAYOUT_IP, /**< IP layout */
139 ECORE_IMF_INPUT_PANEL_LAYOUT_MONTH, /**< Month layout */ 150 ECORE_IMF_INPUT_PANEL_LAYOUT_MONTH, /**< Month layout */
140 ECORE_IMF_INPUT_PANEL_LAYOUT_NUMBERONLY, /**< Number Only layout */ 151 ECORE_IMF_INPUT_PANEL_LAYOUT_NUMBERONLY, /**< Number Only layout */
141 ECORE_IMF_INPUT_PANEL_LAYOUT_INVALID 152 ECORE_IMF_INPUT_PANEL_LAYOUT_INVALID, /**< Never use this */
153 ECORE_IMF_INPUT_PANEL_LAYOUT_HEX, /**< Hexadecimal layout @since 1.2 */
154 ECORE_IMF_INPUT_PANEL_LAYOUT_TERMINAL, /**< Command-line terminal layout @since 1.2 */
155 ECORE_IMF_INPUT_PANEL_LAYOUT_PASSWORD /**< Like normal, but no auto-correct, no auto-capitalization etc. @since 1.2 */
142} Ecore_IMF_Input_Panel_Layout; 156} Ecore_IMF_Input_Panel_Layout;
143 157
144typedef enum 158typedef enum
@@ -385,6 +399,9 @@ EAPI void ecore_imf_context_preedit_end_event_add(Ecore
385EAPI void ecore_imf_context_preedit_changed_event_add(Ecore_IMF_Context *ctx); 399EAPI void ecore_imf_context_preedit_changed_event_add(Ecore_IMF_Context *ctx);
386EAPI void ecore_imf_context_commit_event_add(Ecore_IMF_Context *ctx, const char *str); 400EAPI void ecore_imf_context_commit_event_add(Ecore_IMF_Context *ctx, const char *str);
387EAPI void ecore_imf_context_delete_surrounding_event_add(Ecore_IMF_Context *ctx, int offset, int n_chars); 401EAPI void ecore_imf_context_delete_surrounding_event_add(Ecore_IMF_Context *ctx, int offset, int n_chars);
402EAPI void ecore_imf_context_event_callback_add(Ecore_IMF_Context *ctx, Ecore_IMF_Callback_Type type, Ecore_IMF_Event_Cb func, const void *data);
403EAPI void *ecore_imf_context_event_callback_del(Ecore_IMF_Context *ctx, Ecore_IMF_Callback_Type type, Ecore_IMF_Event_Cb func);
404EAPI void ecore_imf_context_event_callback_call(Ecore_IMF_Context *ctx, Ecore_IMF_Callback_Type type, void *event_info);
388EAPI void ecore_imf_context_prediction_allow_set(Ecore_IMF_Context *ctx, Eina_Bool prediction); 405EAPI void ecore_imf_context_prediction_allow_set(Ecore_IMF_Context *ctx, Eina_Bool prediction);
389EAPI Eina_Bool ecore_imf_context_prediction_allow_get(Ecore_IMF_Context *ctx); 406EAPI Eina_Bool ecore_imf_context_prediction_allow_get(Ecore_IMF_Context *ctx);
390EAPI void ecore_imf_context_autocapital_type_set(Ecore_IMF_Context *ctx, Ecore_IMF_Autocapital_Type autocapital_type); 407EAPI void ecore_imf_context_autocapital_type_set(Ecore_IMF_Context *ctx, Ecore_IMF_Autocapital_Type autocapital_type);
diff --git a/libraries/ecore/src/lib/ecore_imf/Makefile.in b/libraries/ecore/src/lib/ecore_imf/Makefile.in
index adf8dea..9f91360 100644
--- a/libraries/ecore/src/lib/ecore_imf/Makefile.in
+++ b/libraries/ecore/src/lib/ecore_imf/Makefile.in
@@ -248,10 +248,10 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
248PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 248PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
249PIXMAN_LIBS = @PIXMAN_LIBS@ 249PIXMAN_LIBS = @PIXMAN_LIBS@
250PKG_CONFIG = @PKG_CONFIG@ 250PKG_CONFIG = @PKG_CONFIG@
251PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
252PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
253POSUB = @POSUB@ 251POSUB = @POSUB@
254RANLIB = @RANLIB@ 252RANLIB = @RANLIB@
253SCIM_CFLAGS = @SCIM_CFLAGS@
254SCIM_LIBS = @SCIM_LIBS@
255SDL_CFLAGS = @SDL_CFLAGS@ 255SDL_CFLAGS = @SDL_CFLAGS@
256SDL_CONFIG = @SDL_CONFIG@ 256SDL_CONFIG = @SDL_CONFIG@
257SDL_LIBS = @SDL_LIBS@ 257SDL_LIBS = @SDL_LIBS@
@@ -270,6 +270,10 @@ TSLIB_LIBS = @TSLIB_LIBS@
270USE_NLS = @USE_NLS@ 270USE_NLS = @USE_NLS@
271VERSION = @VERSION@ 271VERSION = @VERSION@
272VMAJ = @VMAJ@ 272VMAJ = @VMAJ@
273WAYLAND_CFLAGS = @WAYLAND_CFLAGS@
274WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
275WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
276WAYLAND_LIBS = @WAYLAND_LIBS@
273WIN32_CFLAGS = @WIN32_CFLAGS@ 277WIN32_CFLAGS = @WIN32_CFLAGS@
274WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 278WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
275WIN32_LIBS = @WIN32_LIBS@ 279WIN32_LIBS = @WIN32_LIBS@
@@ -383,6 +387,8 @@ ecore_imf_cflags = @ecore_imf_cflags@
383ecore_imf_evas_cflags = @ecore_imf_evas_cflags@ 387ecore_imf_evas_cflags = @ecore_imf_evas_cflags@
384ecore_imf_evas_libs = @ecore_imf_evas_libs@ 388ecore_imf_evas_libs = @ecore_imf_evas_libs@
385ecore_imf_libs = @ecore_imf_libs@ 389ecore_imf_libs = @ecore_imf_libs@
390ecore_imf_scim_cflags = @ecore_imf_scim_cflags@
391ecore_imf_scim_libs = @ecore_imf_scim_libs@
386ecore_imf_xim_cflags = @ecore_imf_xim_cflags@ 392ecore_imf_xim_cflags = @ecore_imf_xim_cflags@
387ecore_imf_xim_libs = @ecore_imf_xim_libs@ 393ecore_imf_xim_libs = @ecore_imf_xim_libs@
388ecore_input_cflags = @ecore_input_cflags@ 394ecore_input_cflags = @ecore_input_cflags@
@@ -395,6 +401,8 @@ ecore_psl1ght_cflags = @ecore_psl1ght_cflags@
395ecore_psl1ght_libs = @ecore_psl1ght_libs@ 401ecore_psl1ght_libs = @ecore_psl1ght_libs@
396ecore_sdl_cflags = @ecore_sdl_cflags@ 402ecore_sdl_cflags = @ecore_sdl_cflags@
397ecore_sdl_libs = @ecore_sdl_libs@ 403ecore_sdl_libs = @ecore_sdl_libs@
404ecore_wayland_cflags = @ecore_wayland_cflags@
405ecore_wayland_libs = @ecore_wayland_libs@
398ecore_win32_cflags = @ecore_win32_cflags@ 406ecore_win32_cflags = @ecore_win32_cflags@
399ecore_win32_libs = @ecore_win32_libs@ 407ecore_win32_libs = @ecore_win32_libs@
400ecore_wince_cflags = @ecore_wince_cflags@ 408ecore_wince_cflags = @ecore_wince_cflags@
@@ -439,12 +447,14 @@ requirements_ecore_fb = @requirements_ecore_fb@
439requirements_ecore_file = @requirements_ecore_file@ 447requirements_ecore_file = @requirements_ecore_file@
440requirements_ecore_imf = @requirements_ecore_imf@ 448requirements_ecore_imf = @requirements_ecore_imf@
441requirements_ecore_imf_evas = @requirements_ecore_imf_evas@ 449requirements_ecore_imf_evas = @requirements_ecore_imf_evas@
450requirements_ecore_imf_scim = @requirements_ecore_imf_scim@
442requirements_ecore_imf_xim = @requirements_ecore_imf_xim@ 451requirements_ecore_imf_xim = @requirements_ecore_imf_xim@
443requirements_ecore_input = @requirements_ecore_input@ 452requirements_ecore_input = @requirements_ecore_input@
444requirements_ecore_input_evas = @requirements_ecore_input_evas@ 453requirements_ecore_input_evas = @requirements_ecore_input_evas@
445requirements_ecore_ipc = @requirements_ecore_ipc@ 454requirements_ecore_ipc = @requirements_ecore_ipc@
446requirements_ecore_psl1ght = @requirements_ecore_psl1ght@ 455requirements_ecore_psl1ght = @requirements_ecore_psl1ght@
447requirements_ecore_sdl = @requirements_ecore_sdl@ 456requirements_ecore_sdl = @requirements_ecore_sdl@
457requirements_ecore_wayland = @requirements_ecore_wayland@
448requirements_ecore_win32 = @requirements_ecore_win32@ 458requirements_ecore_win32 = @requirements_ecore_win32@
449requirements_ecore_wince = @requirements_ecore_wince@ 459requirements_ecore_wince = @requirements_ecore_wince@
450requirements_ecore_x = @requirements_ecore_x@ 460requirements_ecore_x = @requirements_ecore_x@
diff --git a/libraries/ecore/src/lib/ecore_imf/ecore_imf_context.c b/libraries/ecore/src/lib/ecore_imf/ecore_imf_context.c
index 417fad3..b65ee26 100644
--- a/libraries/ecore/src/lib/ecore_imf/ecore_imf_context.c
+++ b/libraries/ecore/src/lib/ecore_imf/ecore_imf_context.c
@@ -223,6 +223,8 @@ ecore_imf_context_info_get(Ecore_IMF_Context *ctx)
223EAPI void 223EAPI void
224ecore_imf_context_del(Ecore_IMF_Context *ctx) 224ecore_imf_context_del(Ecore_IMF_Context *ctx)
225{ 225{
226 Ecore_IMF_Func_Node *fn;
227
226 if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT)) 228 if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
227 { 229 {
228 ECORE_MAGIC_FAIL(ctx, ECORE_MAGIC_CONTEXT, 230 ECORE_MAGIC_FAIL(ctx, ECORE_MAGIC_CONTEXT,
@@ -230,6 +232,13 @@ ecore_imf_context_del(Ecore_IMF_Context *ctx)
230 return; 232 return;
231 } 233 }
232 if (ctx->klass->del) ctx->klass->del(ctx); 234 if (ctx->klass->del) ctx->klass->del(ctx);
235
236 if (ctx->callbacks)
237 {
238 EINA_LIST_FREE(ctx->callbacks, fn)
239 free(fn);
240 }
241
233 ECORE_MAGIC_SET(ctx, ECORE_MAGIC_NONE); 242 ECORE_MAGIC_SET(ctx, ECORE_MAGIC_NONE);
234 free(ctx); 243 free(ctx);
235} 244}
@@ -529,7 +538,7 @@ ecore_imf_context_cursor_location_set(Ecore_IMF_Context *ctx, int x, int y, int
529 538
530/** 539/**
531 * Set whether the IM context should use the preedit string 540 * Set whether the IM context should use the preedit string
532 * to display feedback. If @use_preedit is EINA_FALSE (default 541 * to display feedback. If @c use_preedit is EINA_FALSE (default
533 * is EINA_TRUE), then the IM context may use some other method to display 542 * is EINA_TRUE), then the IM context may use some other method to display
534 * feedback, such as displaying it in a child of the root window. 543 * feedback, such as displaying it in a child of the root window.
535 * 544 *
@@ -551,7 +560,7 @@ ecore_imf_context_use_preedit_set(Ecore_IMF_Context *ctx, Eina_Bool use_preedit)
551 560
552/** 561/**
553 * Set whether the IM context should allow to use the text prediction. 562 * Set whether the IM context should allow to use the text prediction.
554 * If @prediction is EINA_FALSE (default is EINA_TRUE), then the IM context will not display the text prediction window. 563 * If @c prediction is EINA_FALSE (default is EINA_TRUE), then the IM context will not display the text prediction window.
555 * 564 *
556 * @param ctx An #Ecore_IMF_Context. 565 * @param ctx An #Ecore_IMF_Context.
557 * @param prediction Whether the IM context should allow to use the text prediction. 566 * @param prediction Whether the IM context should allow to use the text prediction.
@@ -1016,6 +1025,134 @@ ecore_imf_context_delete_surrounding_event_add(Ecore_IMF_Context *ctx, int offse
1016} 1025}
1017 1026
1018/** 1027/**
1028 * Add (register) a callback function to a given context event.
1029 *
1030 * This function adds a function callback to the context @p ctx when the
1031 * event of type @p type occurs on it. The function pointer is @p
1032 * func.
1033 *
1034 * The event type @p type to trigger the function may be one of
1035 * #ECORE_IMF_CALLBACK_PREEDIT_START, #ECORE_IMF_CALLBACK_PREEDIT_END,
1036 * #ECORE_IMF_CALLBACK_PREEDIT_CHANGED, #ECORE_IMF_CALLBACK_COMMIT and
1037 * #ECORE_IMF_CALLBACK_DELETE_SURROUNDING.
1038 *
1039 * @param ctx Ecore_IMF_Context to attach a callback to.
1040 * @param type The type of event that will trigger the callback
1041 * @param func The (callback) function to be called when the event is
1042 * triggered
1043 * @param data The data pointer to be passed to @p func
1044 * @ingroup Ecore_IMF_Context_Module_Group
1045 * @since 1.2.0
1046 */
1047EAPI void
1048ecore_imf_context_event_callback_add(Ecore_IMF_Context *ctx, Ecore_IMF_Callback_Type type, Ecore_IMF_Event_Cb func, const void *data)
1049{
1050 Ecore_IMF_Func_Node *fn = NULL;
1051
1052 if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
1053 {
1054 ECORE_MAGIC_FAIL(ctx, ECORE_MAGIC_CONTEXT,
1055 "ecore_imf_context_event_callback_add");
1056 return;
1057 }
1058
1059 if (!func) return;
1060
1061 fn = calloc(1, sizeof (Ecore_IMF_Func_Node));
1062 if (!fn) return;
1063
1064 fn->func = func;
1065 fn->data = data;
1066 fn->type = type;
1067
1068 ctx->callbacks = eina_list_append(ctx->callbacks, fn);
1069}
1070
1071/**
1072 * Delete (unregister) a callback function registered to a given
1073 * context event.
1074 *
1075 * This function removes a function callback from the context @p ctx when the
1076 * event of type @p type occurs on it. The function pointer is @p
1077 * func.
1078 *
1079 * @see ecore_imf_context_event_callback_add() for more details
1080 *
1081 * @param ctx Ecore_IMF_Context to remove a callback from.
1082 * @param type The type of event that was trigerring the callback
1083 * @param func The (callback) function that was to be called when the event was triggered
1084 * @return the data pointer
1085 * @ingroup Ecore_IMF_Context_Module_Group
1086 * @since 1.2.0
1087 */
1088EAPI void *
1089ecore_imf_context_event_callback_del(Ecore_IMF_Context *ctx, Ecore_IMF_Callback_Type type, Ecore_IMF_Event_Cb func)
1090{
1091 Eina_List *l = NULL;
1092 Eina_List *l_next = NULL;
1093 Ecore_IMF_Func_Node *fn = NULL;
1094
1095 if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
1096 {
1097 ECORE_MAGIC_FAIL(ctx, ECORE_MAGIC_CONTEXT,
1098 "ecore_imf_context_event_callback_del");
1099 return;
1100 }
1101
1102 if (!func) return NULL;
1103 if (!ctx->callbacks) return NULL;
1104
1105 EINA_LIST_FOREACH_SAFE(ctx->callbacks, l, l_next, fn)
1106 {
1107 if ((fn) && (fn->func == func) && (fn->type == type))
1108 {
1109 void *tmp = fn->data;
1110 free(fn);
1111 ctx->callbacks = eina_list_remove_list(ctx->callbacks, l);
1112 return tmp;
1113 }
1114 }
1115 return NULL;
1116}
1117
1118/**
1119 * Call a given callback on the context @p ctx.
1120 *
1121 * ecore_imf_context_preedit_start_event_add, ecore_imf_context_preedit_end_event_add,
1122 * ecore_imf_context_preedit_changed_event_add, ecore_imf_context_commit_event_add and
1123 * ecore_imf_context_delete_surrounding_event_add APIs are asynchronous
1124 * because those API adds each event to the event queue.
1125 *
1126 * This API provides the way to call each callback function immediately.
1127 *
1128 * @param ctx Ecore_IMF_Context.
1129 * @param type The type of event that will trigger the callback
1130 * @param event_info The pointer to event specific struct or information to
1131 * pass to the callback functions registered on this event
1132 * @ingroup Ecore_IMF_Context_Module_Group
1133 * @since 1.2.0
1134 */
1135EAPI void
1136ecore_imf_context_event_callback_call(Ecore_IMF_Context *ctx, Ecore_IMF_Callback_Type type, void *event_info)
1137{
1138 Ecore_IMF_Func_Node *fn = NULL;
1139 Eina_List *l = NULL;
1140
1141 if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
1142 {
1143 ECORE_MAGIC_FAIL(ctx, ECORE_MAGIC_CONTEXT,
1144 "ecore_imf_context_event_callback_call");
1145 return;
1146 }
1147
1148 EINA_LIST_FOREACH(ctx->callbacks, l, fn)
1149 {
1150 if ((fn) && (fn->type == type) && (fn->func))
1151 fn->func(fn->data, ctx, event_info);
1152 }
1153}
1154
1155/**
1019 * Ask the Input Method Context to show the control panel of using Input Method. 1156 * Ask the Input Method Context to show the control panel of using Input Method.
1020 * 1157 *
1021 * @param ctx An #Ecore_IMF_Context. 1158 * @param ctx An #Ecore_IMF_Context.
diff --git a/libraries/ecore/src/lib/ecore_imf/ecore_imf_private.h b/libraries/ecore/src/lib/ecore_imf/ecore_imf_private.h
index 07a5b09..d9dae80 100644
--- a/libraries/ecore/src/lib/ecore_imf/ecore_imf_private.h
+++ b/libraries/ecore/src/lib/ecore_imf/ecore_imf_private.h
@@ -35,6 +35,7 @@ extern int _ecore_imf_log_dom;
35#define CRIT(...) EINA_LOG_DOM_CRIT(_ecore_imf_log_dom, __VA_ARGS__) 35#define CRIT(...) EINA_LOG_DOM_CRIT(_ecore_imf_log_dom, __VA_ARGS__)
36 36
37typedef struct _Ecore_IMF_Module Ecore_IMF_Module; 37typedef struct _Ecore_IMF_Module Ecore_IMF_Module;
38typedef struct _Ecore_IMF_Func_Node Ecore_IMF_Func_Node;
38 39
39struct _Ecore_IMF_Context 40struct _Ecore_IMF_Context
40{ 41{
@@ -47,6 +48,7 @@ struct _Ecore_IMF_Context
47 void *client_canvas; 48 void *client_canvas;
48 Eina_Bool (*retrieve_surrounding_func)(void *data, Ecore_IMF_Context *ctx, char **text, int *cursor_pos); 49 Eina_Bool (*retrieve_surrounding_func)(void *data, Ecore_IMF_Context *ctx, char **text, int *cursor_pos);
49 void *retrieve_surrounding_data; 50 void *retrieve_surrounding_data;
51 Eina_List *callbacks;
50 Ecore_IMF_Autocapital_Type autocapital_type; 52 Ecore_IMF_Autocapital_Type autocapital_type;
51 Ecore_IMF_Input_Panel_Layout input_panel_layout; 53 Ecore_IMF_Input_Panel_Layout input_panel_layout;
52 Ecore_IMF_Input_Panel_Lang input_panel_lang; 54 Ecore_IMF_Input_Panel_Lang input_panel_lang;
@@ -61,6 +63,13 @@ struct _Ecore_IMF_Module
61 Ecore_IMF_Context *(*exit)(void); 63 Ecore_IMF_Context *(*exit)(void);
62}; 64};
63 65
66struct _Ecore_IMF_Func_Node
67{
68 void (*func) ();
69 const void *data;
70 Ecore_IMF_Callback_Type type;
71};
72
64void ecore_imf_module_init(void); 73void ecore_imf_module_init(void);
65void ecore_imf_module_shutdown(void); 74void ecore_imf_module_shutdown(void);
66Eina_List *ecore_imf_module_available_get(void); 75Eina_List *ecore_imf_module_available_get(void);
diff --git a/libraries/ecore/src/lib/ecore_imf_evas/Makefile.in b/libraries/ecore/src/lib/ecore_imf_evas/Makefile.in
index 9b26915..ab6503b 100644
--- a/libraries/ecore/src/lib/ecore_imf_evas/Makefile.in
+++ b/libraries/ecore/src/lib/ecore_imf_evas/Makefile.in
@@ -247,10 +247,10 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
247PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 247PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
248PIXMAN_LIBS = @PIXMAN_LIBS@ 248PIXMAN_LIBS = @PIXMAN_LIBS@
249PKG_CONFIG = @PKG_CONFIG@ 249PKG_CONFIG = @PKG_CONFIG@
250PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
251PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
252POSUB = @POSUB@ 250POSUB = @POSUB@
253RANLIB = @RANLIB@ 251RANLIB = @RANLIB@
252SCIM_CFLAGS = @SCIM_CFLAGS@
253SCIM_LIBS = @SCIM_LIBS@
254SDL_CFLAGS = @SDL_CFLAGS@ 254SDL_CFLAGS = @SDL_CFLAGS@
255SDL_CONFIG = @SDL_CONFIG@ 255SDL_CONFIG = @SDL_CONFIG@
256SDL_LIBS = @SDL_LIBS@ 256SDL_LIBS = @SDL_LIBS@
@@ -269,6 +269,10 @@ TSLIB_LIBS = @TSLIB_LIBS@
269USE_NLS = @USE_NLS@ 269USE_NLS = @USE_NLS@
270VERSION = @VERSION@ 270VERSION = @VERSION@
271VMAJ = @VMAJ@ 271VMAJ = @VMAJ@
272WAYLAND_CFLAGS = @WAYLAND_CFLAGS@
273WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
274WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
275WAYLAND_LIBS = @WAYLAND_LIBS@
272WIN32_CFLAGS = @WIN32_CFLAGS@ 276WIN32_CFLAGS = @WIN32_CFLAGS@
273WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 277WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
274WIN32_LIBS = @WIN32_LIBS@ 278WIN32_LIBS = @WIN32_LIBS@
@@ -382,6 +386,8 @@ ecore_imf_cflags = @ecore_imf_cflags@
382ecore_imf_evas_cflags = @ecore_imf_evas_cflags@ 386ecore_imf_evas_cflags = @ecore_imf_evas_cflags@
383ecore_imf_evas_libs = @ecore_imf_evas_libs@ 387ecore_imf_evas_libs = @ecore_imf_evas_libs@
384ecore_imf_libs = @ecore_imf_libs@ 388ecore_imf_libs = @ecore_imf_libs@
389ecore_imf_scim_cflags = @ecore_imf_scim_cflags@
390ecore_imf_scim_libs = @ecore_imf_scim_libs@
385ecore_imf_xim_cflags = @ecore_imf_xim_cflags@ 391ecore_imf_xim_cflags = @ecore_imf_xim_cflags@
386ecore_imf_xim_libs = @ecore_imf_xim_libs@ 392ecore_imf_xim_libs = @ecore_imf_xim_libs@
387ecore_input_cflags = @ecore_input_cflags@ 393ecore_input_cflags = @ecore_input_cflags@
@@ -394,6 +400,8 @@ ecore_psl1ght_cflags = @ecore_psl1ght_cflags@
394ecore_psl1ght_libs = @ecore_psl1ght_libs@ 400ecore_psl1ght_libs = @ecore_psl1ght_libs@
395ecore_sdl_cflags = @ecore_sdl_cflags@ 401ecore_sdl_cflags = @ecore_sdl_cflags@
396ecore_sdl_libs = @ecore_sdl_libs@ 402ecore_sdl_libs = @ecore_sdl_libs@
403ecore_wayland_cflags = @ecore_wayland_cflags@
404ecore_wayland_libs = @ecore_wayland_libs@
397ecore_win32_cflags = @ecore_win32_cflags@ 405ecore_win32_cflags = @ecore_win32_cflags@
398ecore_win32_libs = @ecore_win32_libs@ 406ecore_win32_libs = @ecore_win32_libs@
399ecore_wince_cflags = @ecore_wince_cflags@ 407ecore_wince_cflags = @ecore_wince_cflags@
@@ -438,12 +446,14 @@ requirements_ecore_fb = @requirements_ecore_fb@
438requirements_ecore_file = @requirements_ecore_file@ 446requirements_ecore_file = @requirements_ecore_file@
439requirements_ecore_imf = @requirements_ecore_imf@ 447requirements_ecore_imf = @requirements_ecore_imf@
440requirements_ecore_imf_evas = @requirements_ecore_imf_evas@ 448requirements_ecore_imf_evas = @requirements_ecore_imf_evas@
449requirements_ecore_imf_scim = @requirements_ecore_imf_scim@
441requirements_ecore_imf_xim = @requirements_ecore_imf_xim@ 450requirements_ecore_imf_xim = @requirements_ecore_imf_xim@
442requirements_ecore_input = @requirements_ecore_input@ 451requirements_ecore_input = @requirements_ecore_input@
443requirements_ecore_input_evas = @requirements_ecore_input_evas@ 452requirements_ecore_input_evas = @requirements_ecore_input_evas@
444requirements_ecore_ipc = @requirements_ecore_ipc@ 453requirements_ecore_ipc = @requirements_ecore_ipc@
445requirements_ecore_psl1ght = @requirements_ecore_psl1ght@ 454requirements_ecore_psl1ght = @requirements_ecore_psl1ght@
446requirements_ecore_sdl = @requirements_ecore_sdl@ 455requirements_ecore_sdl = @requirements_ecore_sdl@
456requirements_ecore_wayland = @requirements_ecore_wayland@
447requirements_ecore_win32 = @requirements_ecore_win32@ 457requirements_ecore_win32 = @requirements_ecore_win32@
448requirements_ecore_wince = @requirements_ecore_wince@ 458requirements_ecore_wince = @requirements_ecore_wince@
449requirements_ecore_x = @requirements_ecore_x@ 459requirements_ecore_x = @requirements_ecore_x@
diff --git a/libraries/ecore/src/lib/ecore_input/Makefile.in b/libraries/ecore/src/lib/ecore_input/Makefile.in
index dd4d663..f9fc99a 100644
--- a/libraries/ecore/src/lib/ecore_input/Makefile.in
+++ b/libraries/ecore/src/lib/ecore_input/Makefile.in
@@ -247,10 +247,10 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
247PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 247PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
248PIXMAN_LIBS = @PIXMAN_LIBS@ 248PIXMAN_LIBS = @PIXMAN_LIBS@
249PKG_CONFIG = @PKG_CONFIG@ 249PKG_CONFIG = @PKG_CONFIG@
250PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
251PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
252POSUB = @POSUB@ 250POSUB = @POSUB@
253RANLIB = @RANLIB@ 251RANLIB = @RANLIB@
252SCIM_CFLAGS = @SCIM_CFLAGS@
253SCIM_LIBS = @SCIM_LIBS@
254SDL_CFLAGS = @SDL_CFLAGS@ 254SDL_CFLAGS = @SDL_CFLAGS@
255SDL_CONFIG = @SDL_CONFIG@ 255SDL_CONFIG = @SDL_CONFIG@
256SDL_LIBS = @SDL_LIBS@ 256SDL_LIBS = @SDL_LIBS@
@@ -269,6 +269,10 @@ TSLIB_LIBS = @TSLIB_LIBS@
269USE_NLS = @USE_NLS@ 269USE_NLS = @USE_NLS@
270VERSION = @VERSION@ 270VERSION = @VERSION@
271VMAJ = @VMAJ@ 271VMAJ = @VMAJ@
272WAYLAND_CFLAGS = @WAYLAND_CFLAGS@
273WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
274WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
275WAYLAND_LIBS = @WAYLAND_LIBS@
272WIN32_CFLAGS = @WIN32_CFLAGS@ 276WIN32_CFLAGS = @WIN32_CFLAGS@
273WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 277WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
274WIN32_LIBS = @WIN32_LIBS@ 278WIN32_LIBS = @WIN32_LIBS@
@@ -382,6 +386,8 @@ ecore_imf_cflags = @ecore_imf_cflags@
382ecore_imf_evas_cflags = @ecore_imf_evas_cflags@ 386ecore_imf_evas_cflags = @ecore_imf_evas_cflags@
383ecore_imf_evas_libs = @ecore_imf_evas_libs@ 387ecore_imf_evas_libs = @ecore_imf_evas_libs@
384ecore_imf_libs = @ecore_imf_libs@ 388ecore_imf_libs = @ecore_imf_libs@
389ecore_imf_scim_cflags = @ecore_imf_scim_cflags@
390ecore_imf_scim_libs = @ecore_imf_scim_libs@
385ecore_imf_xim_cflags = @ecore_imf_xim_cflags@ 391ecore_imf_xim_cflags = @ecore_imf_xim_cflags@
386ecore_imf_xim_libs = @ecore_imf_xim_libs@ 392ecore_imf_xim_libs = @ecore_imf_xim_libs@
387ecore_input_cflags = @ecore_input_cflags@ 393ecore_input_cflags = @ecore_input_cflags@
@@ -394,6 +400,8 @@ ecore_psl1ght_cflags = @ecore_psl1ght_cflags@
394ecore_psl1ght_libs = @ecore_psl1ght_libs@ 400ecore_psl1ght_libs = @ecore_psl1ght_libs@
395ecore_sdl_cflags = @ecore_sdl_cflags@ 401ecore_sdl_cflags = @ecore_sdl_cflags@
396ecore_sdl_libs = @ecore_sdl_libs@ 402ecore_sdl_libs = @ecore_sdl_libs@
403ecore_wayland_cflags = @ecore_wayland_cflags@
404ecore_wayland_libs = @ecore_wayland_libs@
397ecore_win32_cflags = @ecore_win32_cflags@ 405ecore_win32_cflags = @ecore_win32_cflags@
398ecore_win32_libs = @ecore_win32_libs@ 406ecore_win32_libs = @ecore_win32_libs@
399ecore_wince_cflags = @ecore_wince_cflags@ 407ecore_wince_cflags = @ecore_wince_cflags@
@@ -438,12 +446,14 @@ requirements_ecore_fb = @requirements_ecore_fb@
438requirements_ecore_file = @requirements_ecore_file@ 446requirements_ecore_file = @requirements_ecore_file@
439requirements_ecore_imf = @requirements_ecore_imf@ 447requirements_ecore_imf = @requirements_ecore_imf@
440requirements_ecore_imf_evas = @requirements_ecore_imf_evas@ 448requirements_ecore_imf_evas = @requirements_ecore_imf_evas@
449requirements_ecore_imf_scim = @requirements_ecore_imf_scim@
441requirements_ecore_imf_xim = @requirements_ecore_imf_xim@ 450requirements_ecore_imf_xim = @requirements_ecore_imf_xim@
442requirements_ecore_input = @requirements_ecore_input@ 451requirements_ecore_input = @requirements_ecore_input@
443requirements_ecore_input_evas = @requirements_ecore_input_evas@ 452requirements_ecore_input_evas = @requirements_ecore_input_evas@
444requirements_ecore_ipc = @requirements_ecore_ipc@ 453requirements_ecore_ipc = @requirements_ecore_ipc@
445requirements_ecore_psl1ght = @requirements_ecore_psl1ght@ 454requirements_ecore_psl1ght = @requirements_ecore_psl1ght@
446requirements_ecore_sdl = @requirements_ecore_sdl@ 455requirements_ecore_sdl = @requirements_ecore_sdl@
456requirements_ecore_wayland = @requirements_ecore_wayland@
447requirements_ecore_win32 = @requirements_ecore_win32@ 457requirements_ecore_win32 = @requirements_ecore_win32@
448requirements_ecore_wince = @requirements_ecore_wince@ 458requirements_ecore_wince = @requirements_ecore_wince@
449requirements_ecore_x = @requirements_ecore_x@ 459requirements_ecore_x = @requirements_ecore_x@
diff --git a/libraries/ecore/src/lib/ecore_input_evas/Makefile.in b/libraries/ecore/src/lib/ecore_input_evas/Makefile.in
index 9097992..d0ac95e 100644
--- a/libraries/ecore/src/lib/ecore_input_evas/Makefile.in
+++ b/libraries/ecore/src/lib/ecore_input_evas/Makefile.in
@@ -248,10 +248,10 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
248PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 248PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
249PIXMAN_LIBS = @PIXMAN_LIBS@ 249PIXMAN_LIBS = @PIXMAN_LIBS@
250PKG_CONFIG = @PKG_CONFIG@ 250PKG_CONFIG = @PKG_CONFIG@
251PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
252PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
253POSUB = @POSUB@ 251POSUB = @POSUB@
254RANLIB = @RANLIB@ 252RANLIB = @RANLIB@
253SCIM_CFLAGS = @SCIM_CFLAGS@
254SCIM_LIBS = @SCIM_LIBS@
255SDL_CFLAGS = @SDL_CFLAGS@ 255SDL_CFLAGS = @SDL_CFLAGS@
256SDL_CONFIG = @SDL_CONFIG@ 256SDL_CONFIG = @SDL_CONFIG@
257SDL_LIBS = @SDL_LIBS@ 257SDL_LIBS = @SDL_LIBS@
@@ -270,6 +270,10 @@ TSLIB_LIBS = @TSLIB_LIBS@
270USE_NLS = @USE_NLS@ 270USE_NLS = @USE_NLS@
271VERSION = @VERSION@ 271VERSION = @VERSION@
272VMAJ = @VMAJ@ 272VMAJ = @VMAJ@
273WAYLAND_CFLAGS = @WAYLAND_CFLAGS@
274WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
275WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
276WAYLAND_LIBS = @WAYLAND_LIBS@
273WIN32_CFLAGS = @WIN32_CFLAGS@ 277WIN32_CFLAGS = @WIN32_CFLAGS@
274WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 278WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
275WIN32_LIBS = @WIN32_LIBS@ 279WIN32_LIBS = @WIN32_LIBS@
@@ -383,6 +387,8 @@ ecore_imf_cflags = @ecore_imf_cflags@
383ecore_imf_evas_cflags = @ecore_imf_evas_cflags@ 387ecore_imf_evas_cflags = @ecore_imf_evas_cflags@
384ecore_imf_evas_libs = @ecore_imf_evas_libs@ 388ecore_imf_evas_libs = @ecore_imf_evas_libs@
385ecore_imf_libs = @ecore_imf_libs@ 389ecore_imf_libs = @ecore_imf_libs@
390ecore_imf_scim_cflags = @ecore_imf_scim_cflags@
391ecore_imf_scim_libs = @ecore_imf_scim_libs@
386ecore_imf_xim_cflags = @ecore_imf_xim_cflags@ 392ecore_imf_xim_cflags = @ecore_imf_xim_cflags@
387ecore_imf_xim_libs = @ecore_imf_xim_libs@ 393ecore_imf_xim_libs = @ecore_imf_xim_libs@
388ecore_input_cflags = @ecore_input_cflags@ 394ecore_input_cflags = @ecore_input_cflags@
@@ -395,6 +401,8 @@ ecore_psl1ght_cflags = @ecore_psl1ght_cflags@
395ecore_psl1ght_libs = @ecore_psl1ght_libs@ 401ecore_psl1ght_libs = @ecore_psl1ght_libs@
396ecore_sdl_cflags = @ecore_sdl_cflags@ 402ecore_sdl_cflags = @ecore_sdl_cflags@
397ecore_sdl_libs = @ecore_sdl_libs@ 403ecore_sdl_libs = @ecore_sdl_libs@
404ecore_wayland_cflags = @ecore_wayland_cflags@
405ecore_wayland_libs = @ecore_wayland_libs@
398ecore_win32_cflags = @ecore_win32_cflags@ 406ecore_win32_cflags = @ecore_win32_cflags@
399ecore_win32_libs = @ecore_win32_libs@ 407ecore_win32_libs = @ecore_win32_libs@
400ecore_wince_cflags = @ecore_wince_cflags@ 408ecore_wince_cflags = @ecore_wince_cflags@
@@ -439,12 +447,14 @@ requirements_ecore_fb = @requirements_ecore_fb@
439requirements_ecore_file = @requirements_ecore_file@ 447requirements_ecore_file = @requirements_ecore_file@
440requirements_ecore_imf = @requirements_ecore_imf@ 448requirements_ecore_imf = @requirements_ecore_imf@
441requirements_ecore_imf_evas = @requirements_ecore_imf_evas@ 449requirements_ecore_imf_evas = @requirements_ecore_imf_evas@
450requirements_ecore_imf_scim = @requirements_ecore_imf_scim@
442requirements_ecore_imf_xim = @requirements_ecore_imf_xim@ 451requirements_ecore_imf_xim = @requirements_ecore_imf_xim@
443requirements_ecore_input = @requirements_ecore_input@ 452requirements_ecore_input = @requirements_ecore_input@
444requirements_ecore_input_evas = @requirements_ecore_input_evas@ 453requirements_ecore_input_evas = @requirements_ecore_input_evas@
445requirements_ecore_ipc = @requirements_ecore_ipc@ 454requirements_ecore_ipc = @requirements_ecore_ipc@
446requirements_ecore_psl1ght = @requirements_ecore_psl1ght@ 455requirements_ecore_psl1ght = @requirements_ecore_psl1ght@
447requirements_ecore_sdl = @requirements_ecore_sdl@ 456requirements_ecore_sdl = @requirements_ecore_sdl@
457requirements_ecore_wayland = @requirements_ecore_wayland@
448requirements_ecore_win32 = @requirements_ecore_win32@ 458requirements_ecore_win32 = @requirements_ecore_win32@
449requirements_ecore_wince = @requirements_ecore_wince@ 459requirements_ecore_wince = @requirements_ecore_wince@
450requirements_ecore_x = @requirements_ecore_x@ 460requirements_ecore_x = @requirements_ecore_x@
diff --git a/libraries/ecore/src/lib/ecore_input_evas/ecore_input_evas.c b/libraries/ecore/src/lib/ecore_input_evas/ecore_input_evas.c
index 0cfe20a..53d206e 100644
--- a/libraries/ecore/src/lib/ecore_input_evas/ecore_input_evas.c
+++ b/libraries/ecore/src/lib/ecore_input_evas/ecore_input_evas.c
@@ -3,6 +3,7 @@
3#endif 3#endif
4 4
5#include <string.h> 5#include <string.h>
6#include <stdlib.h>
6 7
7#include "Ecore.h" 8#include "Ecore.h"
8#include "Ecore_Input.h" 9#include "Ecore_Input.h"
diff --git a/libraries/ecore/src/lib/ecore_ipc/Makefile.in b/libraries/ecore/src/lib/ecore_ipc/Makefile.in
index 189e069..ac2cf6f 100644
--- a/libraries/ecore/src/lib/ecore_ipc/Makefile.in
+++ b/libraries/ecore/src/lib/ecore_ipc/Makefile.in
@@ -248,10 +248,10 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
248PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 248PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
249PIXMAN_LIBS = @PIXMAN_LIBS@ 249PIXMAN_LIBS = @PIXMAN_LIBS@
250PKG_CONFIG = @PKG_CONFIG@ 250PKG_CONFIG = @PKG_CONFIG@
251PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
252PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
253POSUB = @POSUB@ 251POSUB = @POSUB@
254RANLIB = @RANLIB@ 252RANLIB = @RANLIB@
253SCIM_CFLAGS = @SCIM_CFLAGS@
254SCIM_LIBS = @SCIM_LIBS@
255SDL_CFLAGS = @SDL_CFLAGS@ 255SDL_CFLAGS = @SDL_CFLAGS@
256SDL_CONFIG = @SDL_CONFIG@ 256SDL_CONFIG = @SDL_CONFIG@
257SDL_LIBS = @SDL_LIBS@ 257SDL_LIBS = @SDL_LIBS@
@@ -270,6 +270,10 @@ TSLIB_LIBS = @TSLIB_LIBS@
270USE_NLS = @USE_NLS@ 270USE_NLS = @USE_NLS@
271VERSION = @VERSION@ 271VERSION = @VERSION@
272VMAJ = @VMAJ@ 272VMAJ = @VMAJ@
273WAYLAND_CFLAGS = @WAYLAND_CFLAGS@
274WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
275WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
276WAYLAND_LIBS = @WAYLAND_LIBS@
273WIN32_CFLAGS = @WIN32_CFLAGS@ 277WIN32_CFLAGS = @WIN32_CFLAGS@
274WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 278WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
275WIN32_LIBS = @WIN32_LIBS@ 279WIN32_LIBS = @WIN32_LIBS@
@@ -383,6 +387,8 @@ ecore_imf_cflags = @ecore_imf_cflags@
383ecore_imf_evas_cflags = @ecore_imf_evas_cflags@ 387ecore_imf_evas_cflags = @ecore_imf_evas_cflags@
384ecore_imf_evas_libs = @ecore_imf_evas_libs@ 388ecore_imf_evas_libs = @ecore_imf_evas_libs@
385ecore_imf_libs = @ecore_imf_libs@ 389ecore_imf_libs = @ecore_imf_libs@
390ecore_imf_scim_cflags = @ecore_imf_scim_cflags@
391ecore_imf_scim_libs = @ecore_imf_scim_libs@
386ecore_imf_xim_cflags = @ecore_imf_xim_cflags@ 392ecore_imf_xim_cflags = @ecore_imf_xim_cflags@
387ecore_imf_xim_libs = @ecore_imf_xim_libs@ 393ecore_imf_xim_libs = @ecore_imf_xim_libs@
388ecore_input_cflags = @ecore_input_cflags@ 394ecore_input_cflags = @ecore_input_cflags@
@@ -395,6 +401,8 @@ ecore_psl1ght_cflags = @ecore_psl1ght_cflags@
395ecore_psl1ght_libs = @ecore_psl1ght_libs@ 401ecore_psl1ght_libs = @ecore_psl1ght_libs@
396ecore_sdl_cflags = @ecore_sdl_cflags@ 402ecore_sdl_cflags = @ecore_sdl_cflags@
397ecore_sdl_libs = @ecore_sdl_libs@ 403ecore_sdl_libs = @ecore_sdl_libs@
404ecore_wayland_cflags = @ecore_wayland_cflags@
405ecore_wayland_libs = @ecore_wayland_libs@
398ecore_win32_cflags = @ecore_win32_cflags@ 406ecore_win32_cflags = @ecore_win32_cflags@
399ecore_win32_libs = @ecore_win32_libs@ 407ecore_win32_libs = @ecore_win32_libs@
400ecore_wince_cflags = @ecore_wince_cflags@ 408ecore_wince_cflags = @ecore_wince_cflags@
@@ -439,12 +447,14 @@ requirements_ecore_fb = @requirements_ecore_fb@
439requirements_ecore_file = @requirements_ecore_file@ 447requirements_ecore_file = @requirements_ecore_file@
440requirements_ecore_imf = @requirements_ecore_imf@ 448requirements_ecore_imf = @requirements_ecore_imf@
441requirements_ecore_imf_evas = @requirements_ecore_imf_evas@ 449requirements_ecore_imf_evas = @requirements_ecore_imf_evas@
450requirements_ecore_imf_scim = @requirements_ecore_imf_scim@
442requirements_ecore_imf_xim = @requirements_ecore_imf_xim@ 451requirements_ecore_imf_xim = @requirements_ecore_imf_xim@
443requirements_ecore_input = @requirements_ecore_input@ 452requirements_ecore_input = @requirements_ecore_input@
444requirements_ecore_input_evas = @requirements_ecore_input_evas@ 453requirements_ecore_input_evas = @requirements_ecore_input_evas@
445requirements_ecore_ipc = @requirements_ecore_ipc@ 454requirements_ecore_ipc = @requirements_ecore_ipc@
446requirements_ecore_psl1ght = @requirements_ecore_psl1ght@ 455requirements_ecore_psl1ght = @requirements_ecore_psl1ght@
447requirements_ecore_sdl = @requirements_ecore_sdl@ 456requirements_ecore_sdl = @requirements_ecore_sdl@
457requirements_ecore_wayland = @requirements_ecore_wayland@
448requirements_ecore_win32 = @requirements_ecore_win32@ 458requirements_ecore_win32 = @requirements_ecore_win32@
449requirements_ecore_wince = @requirements_ecore_wince@ 459requirements_ecore_wince = @requirements_ecore_wince@
450requirements_ecore_x = @requirements_ecore_x@ 460requirements_ecore_x = @requirements_ecore_x@
diff --git a/libraries/ecore/src/lib/ecore_ipc/ecore_ipc.c b/libraries/ecore/src/lib/ecore_ipc/ecore_ipc.c
index c17cadd..e27134d 100644
--- a/libraries/ecore/src/lib/ecore_ipc/ecore_ipc.c
+++ b/libraries/ecore/src/lib/ecore_ipc/ecore_ipc.c
@@ -926,7 +926,7 @@ ecore_ipc_client_data_get(Ecore_Ipc_Client *cl)
926/** 926/**
927 * Sets the max data payload size for an Ipc message in bytes 927 * Sets the max data payload size for an Ipc message in bytes
928 * 928 *
929 * @param client The given client. 929 * @param cl The given client.
930 * @param size The maximum data payload size in bytes. 930 * @param size The maximum data payload size in bytes.
931 * @ingroup Ecore_Ipc_Client_Group 931 * @ingroup Ecore_Ipc_Client_Group
932 */ 932 */
@@ -946,7 +946,6 @@ ecore_ipc_client_data_size_max_set(Ecore_Ipc_Client *cl, int size)
946 * Sets the max data payload size for an Ipc message in bytes 946 * Sets the max data payload size for an Ipc message in bytes
947 * 947 *
948 * @param cl The given client. 948 * @param cl The given client.
949 * @param size The maximum data payload size in bytes.
950 * @ingroup Ecore_Ipc_Client_Group 949 * @ingroup Ecore_Ipc_Client_Group
951 */ 950 */
952EAPI int 951EAPI int
diff --git a/libraries/ecore/src/lib/ecore_psl1ght/Ecore_Psl1ght.h b/libraries/ecore/src/lib/ecore_psl1ght/Ecore_Psl1ght.h
index 39331f7..c6300fd 100644
--- a/libraries/ecore/src/lib/ecore_psl1ght/Ecore_Psl1ght.h
+++ b/libraries/ecore/src/lib/ecore_psl1ght/Ecore_Psl1ght.h
@@ -28,6 +28,7 @@ EAPI extern int ECORE_PSL1GHT_EVENT_KEY_MODIFIERS;
28EAPI extern int ECORE_PSL1GHT_EVENT_GOT_FOCUS; 28EAPI extern int ECORE_PSL1GHT_EVENT_GOT_FOCUS;
29EAPI extern int ECORE_PSL1GHT_EVENT_LOST_FOCUS; 29EAPI extern int ECORE_PSL1GHT_EVENT_LOST_FOCUS;
30EAPI extern int ECORE_PSL1GHT_EVENT_EXPOSE; 30EAPI extern int ECORE_PSL1GHT_EVENT_EXPOSE;
31EAPI extern int ECORE_PSL1GHT_EVENT_QUIT;
31 32
32typedef struct _Ecore_Psl1ght_Event_Key_Modifiers Ecore_Psl1ght_Event_Key_Modifiers; 33typedef struct _Ecore_Psl1ght_Event_Key_Modifiers Ecore_Psl1ght_Event_Key_Modifiers;
33struct _Ecore_Psl1ght_Event_Key_Modifiers /** PSL1GHT Key Modifier event */ 34struct _Ecore_Psl1ght_Event_Key_Modifiers /** PSL1GHT Key Modifier event */
@@ -105,14 +106,10 @@ struct _Ecore_Psl1ght_Event_Mouse_Wheel /** PSL1GHT Mouse Wheel event */
105 unsigned int time; 106 unsigned int time;
106}; 107};
107 108
108EAPI int 109EAPI int ecore_psl1ght_init(const char *name);
109 ecore_psl1ght_init(const char *name); 110EAPI int ecore_psl1ght_shutdown(void);
110EAPI int 111EAPI void ecore_psl1ght_resolution_set(int width, int height);
111 ecore_psl1ght_shutdown(void); 112EAPI void ecore_psl1ght_poll_events(void);
112EAPI void
113 ecore_psl1ght_resolution_set(int width, int height);
114EAPI void
115 ecore_psl1ght_poll_events(void);
116 113
117EAPI void ecore_psl1ght_screen_resolution_get(int *w, int *h); 114EAPI void ecore_psl1ght_screen_resolution_get(int *w, int *h);
118EAPI void ecore_psl1ght_optimal_screen_resolution_get(int *w, int *h); 115EAPI void ecore_psl1ght_optimal_screen_resolution_get(int *w, int *h);
diff --git a/libraries/ecore/src/lib/ecore_psl1ght/Makefile.in b/libraries/ecore/src/lib/ecore_psl1ght/Makefile.in
index 9b75b74..487231b 100644
--- a/libraries/ecore/src/lib/ecore_psl1ght/Makefile.in
+++ b/libraries/ecore/src/lib/ecore_psl1ght/Makefile.in
@@ -249,10 +249,10 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
249PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 249PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
250PIXMAN_LIBS = @PIXMAN_LIBS@ 250PIXMAN_LIBS = @PIXMAN_LIBS@
251PKG_CONFIG = @PKG_CONFIG@ 251PKG_CONFIG = @PKG_CONFIG@
252PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
253PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
254POSUB = @POSUB@ 252POSUB = @POSUB@
255RANLIB = @RANLIB@ 253RANLIB = @RANLIB@
254SCIM_CFLAGS = @SCIM_CFLAGS@
255SCIM_LIBS = @SCIM_LIBS@
256SDL_CFLAGS = @SDL_CFLAGS@ 256SDL_CFLAGS = @SDL_CFLAGS@
257SDL_CONFIG = @SDL_CONFIG@ 257SDL_CONFIG = @SDL_CONFIG@
258SDL_LIBS = @SDL_LIBS@ 258SDL_LIBS = @SDL_LIBS@
@@ -271,6 +271,10 @@ TSLIB_LIBS = @TSLIB_LIBS@
271USE_NLS = @USE_NLS@ 271USE_NLS = @USE_NLS@
272VERSION = @VERSION@ 272VERSION = @VERSION@
273VMAJ = @VMAJ@ 273VMAJ = @VMAJ@
274WAYLAND_CFLAGS = @WAYLAND_CFLAGS@
275WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
276WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
277WAYLAND_LIBS = @WAYLAND_LIBS@
274WIN32_CFLAGS = @WIN32_CFLAGS@ 278WIN32_CFLAGS = @WIN32_CFLAGS@
275WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 279WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
276WIN32_LIBS = @WIN32_LIBS@ 280WIN32_LIBS = @WIN32_LIBS@
@@ -384,6 +388,8 @@ ecore_imf_cflags = @ecore_imf_cflags@
384ecore_imf_evas_cflags = @ecore_imf_evas_cflags@ 388ecore_imf_evas_cflags = @ecore_imf_evas_cflags@
385ecore_imf_evas_libs = @ecore_imf_evas_libs@ 389ecore_imf_evas_libs = @ecore_imf_evas_libs@
386ecore_imf_libs = @ecore_imf_libs@ 390ecore_imf_libs = @ecore_imf_libs@
391ecore_imf_scim_cflags = @ecore_imf_scim_cflags@
392ecore_imf_scim_libs = @ecore_imf_scim_libs@
387ecore_imf_xim_cflags = @ecore_imf_xim_cflags@ 393ecore_imf_xim_cflags = @ecore_imf_xim_cflags@
388ecore_imf_xim_libs = @ecore_imf_xim_libs@ 394ecore_imf_xim_libs = @ecore_imf_xim_libs@
389ecore_input_cflags = @ecore_input_cflags@ 395ecore_input_cflags = @ecore_input_cflags@
@@ -396,6 +402,8 @@ ecore_psl1ght_cflags = @ecore_psl1ght_cflags@
396ecore_psl1ght_libs = @ecore_psl1ght_libs@ 402ecore_psl1ght_libs = @ecore_psl1ght_libs@
397ecore_sdl_cflags = @ecore_sdl_cflags@ 403ecore_sdl_cflags = @ecore_sdl_cflags@
398ecore_sdl_libs = @ecore_sdl_libs@ 404ecore_sdl_libs = @ecore_sdl_libs@
405ecore_wayland_cflags = @ecore_wayland_cflags@
406ecore_wayland_libs = @ecore_wayland_libs@
399ecore_win32_cflags = @ecore_win32_cflags@ 407ecore_win32_cflags = @ecore_win32_cflags@
400ecore_win32_libs = @ecore_win32_libs@ 408ecore_win32_libs = @ecore_win32_libs@
401ecore_wince_cflags = @ecore_wince_cflags@ 409ecore_wince_cflags = @ecore_wince_cflags@
@@ -440,12 +448,14 @@ requirements_ecore_fb = @requirements_ecore_fb@
440requirements_ecore_file = @requirements_ecore_file@ 448requirements_ecore_file = @requirements_ecore_file@
441requirements_ecore_imf = @requirements_ecore_imf@ 449requirements_ecore_imf = @requirements_ecore_imf@
442requirements_ecore_imf_evas = @requirements_ecore_imf_evas@ 450requirements_ecore_imf_evas = @requirements_ecore_imf_evas@
451requirements_ecore_imf_scim = @requirements_ecore_imf_scim@
443requirements_ecore_imf_xim = @requirements_ecore_imf_xim@ 452requirements_ecore_imf_xim = @requirements_ecore_imf_xim@
444requirements_ecore_input = @requirements_ecore_input@ 453requirements_ecore_input = @requirements_ecore_input@
445requirements_ecore_input_evas = @requirements_ecore_input_evas@ 454requirements_ecore_input_evas = @requirements_ecore_input_evas@
446requirements_ecore_ipc = @requirements_ecore_ipc@ 455requirements_ecore_ipc = @requirements_ecore_ipc@
447requirements_ecore_psl1ght = @requirements_ecore_psl1ght@ 456requirements_ecore_psl1ght = @requirements_ecore_psl1ght@
448requirements_ecore_sdl = @requirements_ecore_sdl@ 457requirements_ecore_sdl = @requirements_ecore_sdl@
458requirements_ecore_wayland = @requirements_ecore_wayland@
449requirements_ecore_win32 = @requirements_ecore_win32@ 459requirements_ecore_win32 = @requirements_ecore_win32@
450requirements_ecore_wince = @requirements_ecore_wince@ 460requirements_ecore_wince = @requirements_ecore_wince@
451requirements_ecore_x = @requirements_ecore_x@ 461requirements_ecore_x = @requirements_ecore_x@
diff --git a/libraries/ecore/src/lib/ecore_psl1ght/ecore_psl1ght.c b/libraries/ecore/src/lib/ecore_psl1ght/ecore_psl1ght.c
index 64cef9f..16487ad 100644
--- a/libraries/ecore/src/lib/ecore_psl1ght/ecore_psl1ght.c
+++ b/libraries/ecore/src/lib/ecore_psl1ght/ecore_psl1ght.c
@@ -31,6 +31,7 @@ EAPI int ECORE_PSL1GHT_EVENT_KEY_MODIFIERS = 0;
31EAPI int ECORE_PSL1GHT_EVENT_GOT_FOCUS = 0; 31EAPI int ECORE_PSL1GHT_EVENT_GOT_FOCUS = 0;
32EAPI int ECORE_PSL1GHT_EVENT_LOST_FOCUS = 0; 32EAPI int ECORE_PSL1GHT_EVENT_LOST_FOCUS = 0;
33EAPI int ECORE_PSL1GHT_EVENT_EXPOSE = 0; 33EAPI int ECORE_PSL1GHT_EVENT_EXPOSE = 0;
34EAPI int ECORE_PSL1GHT_EVENT_QUIT = 0;
34 35
35static int _ecore_psl1ght_init_count = 0; 36static int _ecore_psl1ght_init_count = 0;
36static int window_width = 0; 37static int window_width = 0;
@@ -47,6 +48,7 @@ static KbMkey keyboard_mods = {{0}};
47static u16 keyboard_old_key = 0; 48static u16 keyboard_old_key = 0;
48/* Pad support */ 49/* Pad support */
49static padData pad_data; 50static padData pad_data;
51static padData old_pad_data = {0};
50static int pad_old_x = 0; 52static int pad_old_x = 0;
51static int pad_old_o = 0; 53static int pad_old_o = 0;
52/* Move support */ 54/* Move support */
@@ -148,6 +150,7 @@ ecore_psl1ght_init(const char *name __UNUSED__)
148 ECORE_PSL1GHT_EVENT_LOST_FOCUS = ecore_event_type_new(); 150 ECORE_PSL1GHT_EVENT_LOST_FOCUS = ecore_event_type_new();
149 ECORE_PSL1GHT_EVENT_EXPOSE = ecore_event_type_new(); 151 ECORE_PSL1GHT_EVENT_EXPOSE = ecore_event_type_new();
150 ECORE_PSL1GHT_EVENT_KEY_MODIFIERS = ecore_event_type_new(); 152 ECORE_PSL1GHT_EVENT_KEY_MODIFIERS = ecore_event_type_new();
153 ECORE_PSL1GHT_EVENT_QUIT = ecore_event_type_new();
151 154
152 mouse_x = 0; 155 mouse_x = 0;
153 mouse_y = 0; 156 mouse_y = 0;
@@ -175,6 +178,7 @@ ecore_psl1ght_shutdown(void)
175 ECORE_PSL1GHT_EVENT_LOST_FOCUS = 0; 178 ECORE_PSL1GHT_EVENT_LOST_FOCUS = 0;
176 ECORE_PSL1GHT_EVENT_EXPOSE = 0; 179 ECORE_PSL1GHT_EVENT_EXPOSE = 0;
177 ECORE_PSL1GHT_EVENT_KEY_MODIFIERS = 0; 180 ECORE_PSL1GHT_EVENT_KEY_MODIFIERS = 0;
181 ECORE_PSL1GHT_EVENT_QUIT = 0;
178 182
179 ioPadEnd(); 183 ioPadEnd();
180 ioMouseEnd(); 184 ioMouseEnd();
@@ -354,7 +358,6 @@ _ecore_psl1ght_event_key(u16 key)
354 ev->event_window = 0; 358 ev->event_window = 0;
355 ev->modifiers = _ecore_psl1ght_get_modifiers(); 359 ev->modifiers = _ecore_psl1ght_get_modifiers();
356 360
357 printf ("Key is %X\n", key);
358 key &= ~KB_KEYPAD; 361 key &= ~KB_KEYPAD;
359 for (i = 0; i < sizeof(keystable) / sizeof(struct _ecore_psl1ght_keys_s); ++i) 362 for (i = 0; i < sizeof(keystable) / sizeof(struct _ecore_psl1ght_keys_s); ++i)
360 if (keystable[i].code == key) 363 if (keystable[i].code == key)
@@ -364,13 +367,11 @@ _ecore_psl1ght_event_key(u16 key)
364 ev->string = keystable[i].compose; 367 ev->string = keystable[i].compose;
365 ev->compose = keystable[i].compose; 368 ev->compose = keystable[i].compose;
366 369
367 printf ("Found key '%s' in the table\n", ev->keyname);
368 return ev; 370 return ev;
369 } 371 }
370 372
371 utf16 = ioKbCnvRawCode (KB_MAPPING_101, keyboard_mods, keyboard_leds, key); 373 utf16 = ioKbCnvRawCode (KB_MAPPING_101, keyboard_mods, keyboard_leds, key);
372 unicodeToUtf8(utf16, utf8); 374 unicodeToUtf8(utf16, utf8);
373 printf ("Converting to utf16 : %X - utf8 : %s\n", utf16, utf8);
374 ev->keyname = ev->key = ev->string = ev->compose = strdup (utf8); 375 ev->keyname = ev->key = ev->string = ev->compose = strdup (utf8);
375 376
376 return ev; 377 return ev;
@@ -460,6 +461,30 @@ _ecore_psl1ght_mouse_wheel(s8 wheel, s8 tilt)
460 ecore_event_add(ECORE_EVENT_MOUSE_WHEEL, ev, NULL, NULL); 461 ecore_event_add(ECORE_EVENT_MOUSE_WHEEL, ev, NULL, NULL);
461} 462}
462 463
464static void
465_ecore_psl1ght_pad_button (const char *name, int pressed)
466{
467 Ecore_Event_Key *ev = NULL;
468
469 ev = malloc(sizeof(Ecore_Event_Key));
470 if (!ev) return;
471
472 ev->timestamp = _ecore_psl1ght_get_time ();
473 ev->window = 0;
474 ev->event_window = 0;
475 ev->modifiers = 0;
476
477 ev->keyname = name;
478 ev->key = name;
479 ev->string = "";
480 ev->compose = "";
481
482 if (pressed)
483 ecore_event_add(ECORE_EVENT_KEY_DOWN, ev, NULL, NULL);
484 else
485 ecore_event_add(ECORE_EVENT_KEY_UP, ev, NULL, NULL);
486}
487
463#define PAD_STICK_DEADZONE 0x20 488#define PAD_STICK_DEADZONE 0x20
464 489
465static void 490static void
@@ -502,15 +527,44 @@ _ecore_psl1ght_poll_joypad(void)
502 if (analog_h != 0 || analog_v != 0) 527 if (analog_h != 0 || analog_v != 0)
503 _ecore_psl1ght_mouse_move (analog_h, analog_v); 528 _ecore_psl1ght_mouse_move (analog_h, analog_v);
504 529
505 if (pad_old_x != pad_data.BTN_CROSS) 530 if (old_pad_data.BTN_CROSS ^ pad_data.BTN_CROSS) {
531 _ecore_psl1ght_pad_button ("Cross", pad_data.BTN_CROSS);
506 _ecore_psl1ght_mouse_button (1, pad_data.BTN_CROSS); 532 _ecore_psl1ght_mouse_button (1, pad_data.BTN_CROSS);
507 if (pad_old_o != pad_data.BTN_CIRCLE) 533 }
534 if (old_pad_data.BTN_CIRCLE ^ pad_data.BTN_CIRCLE) {
535 _ecore_psl1ght_pad_button ("Circle", pad_data.BTN_CIRCLE);
508 _ecore_psl1ght_mouse_button (3, pad_data.BTN_CIRCLE); 536 _ecore_psl1ght_mouse_button (3, pad_data.BTN_CIRCLE);
509 537 }
510 pad_old_x = pad_data.BTN_CROSS; 538 if (old_pad_data.BTN_SQUARE ^ pad_data.BTN_SQUARE)
511 pad_old_o = pad_data.BTN_CIRCLE; 539 _ecore_psl1ght_pad_button ("Square", pad_data.BTN_SQUARE);
512 540 if (old_pad_data.BTN_TRIANGLE ^ pad_data.BTN_TRIANGLE)
513 //pad_buttons = paddata.buttons; 541 _ecore_psl1ght_pad_button ("Triangle", pad_data.BTN_TRIANGLE);
542 if (old_pad_data.BTN_UP ^ pad_data.BTN_UP)
543 _ecore_psl1ght_pad_button ("Up", pad_data.BTN_UP);
544 if (old_pad_data.BTN_DOWN ^ pad_data.BTN_DOWN)
545 _ecore_psl1ght_pad_button ("Down", pad_data.BTN_DOWN);
546 if (old_pad_data.BTN_LEFT ^ pad_data.BTN_LEFT)
547 _ecore_psl1ght_pad_button ("Left", pad_data.BTN_LEFT);
548 if (old_pad_data.BTN_RIGHT ^ pad_data.BTN_RIGHT)
549 _ecore_psl1ght_pad_button ("Right", pad_data.BTN_RIGHT);
550 if (old_pad_data.BTN_L1 ^ pad_data.BTN_L1)
551 _ecore_psl1ght_pad_button ("L1", pad_data.BTN_L1);
552 if (old_pad_data.BTN_L2 ^ pad_data.BTN_L2)
553 _ecore_psl1ght_pad_button ("L2", pad_data.BTN_L2);
554 if (old_pad_data.BTN_L3 ^ pad_data.BTN_L3)
555 _ecore_psl1ght_pad_button ("L3", pad_data.BTN_L3);
556 if (old_pad_data.BTN_R1 ^ pad_data.BTN_R1)
557 _ecore_psl1ght_pad_button ("R1", pad_data.BTN_R1);
558 if (old_pad_data.BTN_R2 ^ pad_data.BTN_R2)
559 _ecore_psl1ght_pad_button ("R2", pad_data.BTN_R2);
560 if (old_pad_data.BTN_R3 ^ pad_data.BTN_R3)
561 _ecore_psl1ght_pad_button ("R3", pad_data.BTN_R3);
562 if (old_pad_data.BTN_START ^ pad_data.BTN_START)
563 _ecore_psl1ght_pad_button ("Start", pad_data.BTN_START);
564 if (old_pad_data.BTN_SELECT ^ pad_data.BTN_SELECT)
565 _ecore_psl1ght_pad_button ("Select", pad_data.BTN_SELECT);
566
567 old_pad_data = pad_data;
514 } 568 }
515 } 569 }
516} 570}
@@ -602,7 +656,7 @@ _ecore_psl1ght_poll_move(void)
602 656
603 case 4: 657 case 4:
604 // Move button 658 // Move button
605 printf ("Calibrating\n"); 659 //printf ("Calibrating\n");
606 gemCalibrate (0); 660 gemCalibrate (0);
607 calibrated = 1; 661 calibrated = 1;
608 break; 662 break;
@@ -717,23 +771,24 @@ _ecore_psl1ght_poll_keyboard(void)
717static void 771static void
718xmb_event_handler(u64 status, u64 param, void *user_data) 772xmb_event_handler(u64 status, u64 param, void *user_data)
719{ 773{
720 printf ("Received event %lX\n", status); 774 //printf ("Received event %lX\n", status);
721 if (status == SYSUTIL_EXIT_GAME) 775 switch (status) {
722 { 776 case SYSUTIL_EXIT_GAME:
723 ecore_main_loop_quit(); 777 ecore_event_add(ECORE_PSL1GHT_EVENT_QUIT, NULL, NULL, NULL);
724 } 778 break;
725 else if (status == SYSUTIL_MENU_OPEN) 779 case SYSUTIL_DRAW_BEGIN:
726 { 780 ecore_event_add(ECORE_PSL1GHT_EVENT_EXPOSE, NULL, NULL, NULL);
727 } 781 case SYSUTIL_MENU_OPEN:
728 else if (status == SYSUTIL_MENU_CLOSE) 782 ecore_event_add(ECORE_PSL1GHT_EVENT_LOST_FOCUS, NULL, NULL, NULL);
729 { 783 break;
730 } 784 case SYSUTIL_DRAW_END:
731 else if (status == SYSUTIL_DRAW_BEGIN) 785 ecore_event_add(ECORE_PSL1GHT_EVENT_EXPOSE, NULL, NULL, NULL);
732 { 786 case SYSUTIL_MENU_CLOSE:
733 } 787 ecore_event_add(ECORE_PSL1GHT_EVENT_GOT_FOCUS, NULL, NULL, NULL);
734 else if (status == SYSUTIL_DRAW_END) 788 break;
735 { 789 default:
736 } 790 break;
791 }
737} 792}
738 793
739EAPI void 794EAPI void
diff --git a/libraries/ecore/src/lib/ecore_sdl/Makefile.in b/libraries/ecore/src/lib/ecore_sdl/Makefile.in
index 0141ebe..c0312b0 100644
--- a/libraries/ecore/src/lib/ecore_sdl/Makefile.in
+++ b/libraries/ecore/src/lib/ecore_sdl/Makefile.in
@@ -248,10 +248,10 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
248PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 248PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
249PIXMAN_LIBS = @PIXMAN_LIBS@ 249PIXMAN_LIBS = @PIXMAN_LIBS@
250PKG_CONFIG = @PKG_CONFIG@ 250PKG_CONFIG = @PKG_CONFIG@
251PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
252PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
253POSUB = @POSUB@ 251POSUB = @POSUB@
254RANLIB = @RANLIB@ 252RANLIB = @RANLIB@
253SCIM_CFLAGS = @SCIM_CFLAGS@
254SCIM_LIBS = @SCIM_LIBS@
255SDL_CFLAGS = @SDL_CFLAGS@ 255SDL_CFLAGS = @SDL_CFLAGS@
256SDL_CONFIG = @SDL_CONFIG@ 256SDL_CONFIG = @SDL_CONFIG@
257SDL_LIBS = @SDL_LIBS@ 257SDL_LIBS = @SDL_LIBS@
@@ -270,6 +270,10 @@ TSLIB_LIBS = @TSLIB_LIBS@
270USE_NLS = @USE_NLS@ 270USE_NLS = @USE_NLS@
271VERSION = @VERSION@ 271VERSION = @VERSION@
272VMAJ = @VMAJ@ 272VMAJ = @VMAJ@
273WAYLAND_CFLAGS = @WAYLAND_CFLAGS@
274WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
275WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
276WAYLAND_LIBS = @WAYLAND_LIBS@
273WIN32_CFLAGS = @WIN32_CFLAGS@ 277WIN32_CFLAGS = @WIN32_CFLAGS@
274WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 278WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
275WIN32_LIBS = @WIN32_LIBS@ 279WIN32_LIBS = @WIN32_LIBS@
@@ -383,6 +387,8 @@ ecore_imf_cflags = @ecore_imf_cflags@
383ecore_imf_evas_cflags = @ecore_imf_evas_cflags@ 387ecore_imf_evas_cflags = @ecore_imf_evas_cflags@
384ecore_imf_evas_libs = @ecore_imf_evas_libs@ 388ecore_imf_evas_libs = @ecore_imf_evas_libs@
385ecore_imf_libs = @ecore_imf_libs@ 389ecore_imf_libs = @ecore_imf_libs@
390ecore_imf_scim_cflags = @ecore_imf_scim_cflags@
391ecore_imf_scim_libs = @ecore_imf_scim_libs@
386ecore_imf_xim_cflags = @ecore_imf_xim_cflags@ 392ecore_imf_xim_cflags = @ecore_imf_xim_cflags@
387ecore_imf_xim_libs = @ecore_imf_xim_libs@ 393ecore_imf_xim_libs = @ecore_imf_xim_libs@
388ecore_input_cflags = @ecore_input_cflags@ 394ecore_input_cflags = @ecore_input_cflags@
@@ -395,6 +401,8 @@ ecore_psl1ght_cflags = @ecore_psl1ght_cflags@
395ecore_psl1ght_libs = @ecore_psl1ght_libs@ 401ecore_psl1ght_libs = @ecore_psl1ght_libs@
396ecore_sdl_cflags = @ecore_sdl_cflags@ 402ecore_sdl_cflags = @ecore_sdl_cflags@
397ecore_sdl_libs = @ecore_sdl_libs@ 403ecore_sdl_libs = @ecore_sdl_libs@
404ecore_wayland_cflags = @ecore_wayland_cflags@
405ecore_wayland_libs = @ecore_wayland_libs@
398ecore_win32_cflags = @ecore_win32_cflags@ 406ecore_win32_cflags = @ecore_win32_cflags@
399ecore_win32_libs = @ecore_win32_libs@ 407ecore_win32_libs = @ecore_win32_libs@
400ecore_wince_cflags = @ecore_wince_cflags@ 408ecore_wince_cflags = @ecore_wince_cflags@
@@ -439,12 +447,14 @@ requirements_ecore_fb = @requirements_ecore_fb@
439requirements_ecore_file = @requirements_ecore_file@ 447requirements_ecore_file = @requirements_ecore_file@
440requirements_ecore_imf = @requirements_ecore_imf@ 448requirements_ecore_imf = @requirements_ecore_imf@
441requirements_ecore_imf_evas = @requirements_ecore_imf_evas@ 449requirements_ecore_imf_evas = @requirements_ecore_imf_evas@
450requirements_ecore_imf_scim = @requirements_ecore_imf_scim@
442requirements_ecore_imf_xim = @requirements_ecore_imf_xim@ 451requirements_ecore_imf_xim = @requirements_ecore_imf_xim@
443requirements_ecore_input = @requirements_ecore_input@ 452requirements_ecore_input = @requirements_ecore_input@
444requirements_ecore_input_evas = @requirements_ecore_input_evas@ 453requirements_ecore_input_evas = @requirements_ecore_input_evas@
445requirements_ecore_ipc = @requirements_ecore_ipc@ 454requirements_ecore_ipc = @requirements_ecore_ipc@
446requirements_ecore_psl1ght = @requirements_ecore_psl1ght@ 455requirements_ecore_psl1ght = @requirements_ecore_psl1ght@
447requirements_ecore_sdl = @requirements_ecore_sdl@ 456requirements_ecore_sdl = @requirements_ecore_sdl@
457requirements_ecore_wayland = @requirements_ecore_wayland@
448requirements_ecore_win32 = @requirements_ecore_win32@ 458requirements_ecore_win32 = @requirements_ecore_win32@
449requirements_ecore_wince = @requirements_ecore_wince@ 459requirements_ecore_wince = @requirements_ecore_wince@
450requirements_ecore_x = @requirements_ecore_x@ 460requirements_ecore_x = @requirements_ecore_x@
diff --git a/libraries/ecore/src/lib/ecore_wayland/Ecore_Wayland.h b/libraries/ecore/src/lib/ecore_wayland/Ecore_Wayland.h
new file mode 100644
index 0000000..fdf6314
--- /dev/null
+++ b/libraries/ecore/src/lib/ecore_wayland/Ecore_Wayland.h
@@ -0,0 +1,123 @@
1#ifndef _ECORE_WAYLAND_H_
2# define _ECORE_WAYLAND_H_
3
4# include <Eina.h>
5# include <wayland-client.h>
6
7# ifdef EAPI
8# undef EAPI
9# endif
10
11# ifdef __GNUC__
12# if __GNUC__ >= 4
13# define EAPI __attribute__ ((visibility("default")))
14# else
15# define EAPI
16# endif
17# else
18# define EAPI
19# endif
20
21typedef struct _Ecore_Wl_Event_Mouse_In Ecore_Wl_Event_Mouse_In;
22typedef struct _Ecore_Wl_Event_Mouse_Out Ecore_Wl_Event_Mouse_Out;
23typedef struct _Ecore_Wl_Event_Focus_In Ecore_Wl_Event_Focus_In;
24typedef struct _Ecore_Wl_Event_Focus_Out Ecore_Wl_Event_Focus_Out;
25
26typedef struct _Ecore_Wl_Drag_Source Ecore_Wl_Drag_Source;
27
28typedef struct _Ecore_Wl_Event_Drag_Start Ecore_Wl_Event_Drag_Start;
29typedef struct _Ecore_Wl_Event_Drag_Stop Ecore_Wl_Event_Drag_Stop;
30
31struct _Ecore_Wl_Event_Mouse_In
32{
33 int modifiers;
34 int x, y;
35
36 struct
37 {
38 int x, y;
39 } root;
40
41 unsigned int window;
42
43 unsigned int time;
44};
45
46struct _Ecore_Wl_Event_Mouse_Out
47{
48 int modifiers;
49 int x, y;
50
51 struct
52 {
53 int x, y;
54 } root;
55
56 unsigned int window;
57
58 unsigned int time;
59};
60
61struct _Ecore_Wl_Event_Focus_In
62{
63 unsigned int window;
64 /* TODO: mode & detail */
65 unsigned int time;
66};
67
68struct _Ecore_Wl_Event_Focus_Out
69{
70 unsigned int window;
71 /* TODO: mode & detail */
72 unsigned int time;
73};
74
75struct _Ecore_Wl_Event_Drag_Start
76{
77 struct wl_data_device *device;
78 struct wl_surface *surface;
79 const char *mime_type;
80 uint32_t timestamp;
81};
82
83struct _Ecore_Wl_Event_Drag_Stop
84{
85
86};
87
88/**
89 * @file
90 * @brief Ecore functions for dealing with the Wayland window system
91 *
92 * Ecore_Wl provides a wrapper and convenience functions for using the
93 * Wayland window system. Function groups for this part of the library
94 * include the following:
95 * @li @ref Ecore_Wl_Init_Group
96 */
97
98EAPI int ecore_wl_init(const char *name);
99EAPI int ecore_wl_shutdown(void);
100
101EAPI struct wl_display *ecore_wl_display_get(void);
102EAPI struct wl_shm *ecore_wl_shm_get(void);
103EAPI struct wl_compositor *ecore_wl_compositor_get(void);
104EAPI struct wl_shell *ecore_wl_shell_get(void);
105EAPI struct wl_input_device *ecore_wl_input_device_get(void);
106EAPI void ecore_wl_screen_size_get(int *w, int *h);
107EAPI unsigned int ecore_wl_format_get(void);
108EAPI void ecore_wl_flush(void);
109EAPI void ecore_wl_sync(void);
110EAPI void ecore_wl_pointer_xy_get(int *x, int *y);
111
112EAPI Ecore_Wl_Drag_Source *ecore_wl_drag_source_create(int hotspot_x, int hotspot_y, int offset_x, int offset_y, const char *mimetype, unsigned int timestamp, void *data);
113EAPI void ecore_wl_drag_start(Ecore_Wl_Drag_Source *source, struct wl_surface *surface, struct wl_buffer *buffer);
114EAPI void ecore_wl_drag_stop(void);
115
116EAPI extern int ECORE_WL_EVENT_MOUSE_IN;
117EAPI extern int ECORE_WL_EVENT_MOUSE_OUT;
118EAPI extern int ECORE_WL_EVENT_FOCUS_IN;
119EAPI extern int ECORE_WL_EVENT_FOCUS_OUT;
120EAPI extern int ECORE_WL_EVENT_DRAG_START;
121EAPI extern int ECORE_WL_EVENT_DRAG_STOP;
122
123#endif
diff --git a/libraries/ecore/src/lib/ecore_wayland/Makefile.am b/libraries/ecore/src/lib/ecore_wayland/Makefile.am
new file mode 100644
index 0000000..ea005b2
--- /dev/null
+++ b/libraries/ecore/src/lib/ecore_wayland/Makefile.am
@@ -0,0 +1,31 @@
1MAINTAINERCLEANFILES = Makefile.in
2
3AM_CPPFLAGS = \
4-I$(top_srcdir)/src/lib/ecore \
5-I$(top_srcdir)/src/lib/ecore_input \
6-I$(top_builddir)/src/lib/ecore \
7-I$(top_builddir)/src/lib/ecore_input \
8@WAYLAND_CFLAGS@ \
9@EVAS_CFLAGS@ \
10@EINA_CFLAGS@
11
12lib_LTLIBRARIES = libecore_wayland.la
13includes_HEADERS = Ecore_Wayland.h
14includesdir = $(includedir)/ecore-@VMAJ@
15
16libecore_wayland_la_SOURCES = \
17ecore_wl.c
18
19## ecore_wl_window.c
20
21libecore_wayland_la_LIBADD = \
22$(top_builddir)/src/lib/ecore/libecore.la \
23$(top_builddir)/src/lib/ecore_input/libecore_input.la \
24@WAYLAND_LIBS@ \
25@EVAS_LIBS@ \
26@EINA_LIBS@
27
28libecore_wayland_la_LDFLAGS = -version-info @version_info@ @release_info@
29libecore_wayland_la_DEPENDENCIES = $(top_builddir)/src/lib/ecore/libecore.la
30
31EXTRA_DIST = ecore_wl_private.h
diff --git a/libraries/ecore/src/lib/ecore_wayland/Makefile.in b/libraries/ecore/src/lib/ecore_wayland/Makefile.in
new file mode 100644
index 0000000..411da19
--- /dev/null
+++ b/libraries/ecore/src/lib/ecore_wayland/Makefile.in
@@ -0,0 +1,829 @@
1# Makefile.in generated by automake 1.11.1 from Makefile.am.
2# @configure_input@
3
4# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
5# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
6# Inc.
7# This Makefile.in is free software; the Free Software Foundation
8# gives unlimited permission to copy and/or distribute it,
9# with or without modifications, as long as this notice is preserved.
10
11# This program is distributed in the hope that it will be useful,
12# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
13# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
14# PARTICULAR PURPOSE.
15
16@SET_MAKE@
17
18
19VPATH = @srcdir@
20pkgdatadir = $(datadir)/@PACKAGE@
21pkgincludedir = $(includedir)/@PACKAGE@
22pkglibdir = $(libdir)/@PACKAGE@
23pkglibexecdir = $(libexecdir)/@PACKAGE@
24am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
25install_sh_DATA = $(install_sh) -c -m 644
26install_sh_PROGRAM = $(install_sh) -c
27install_sh_SCRIPT = $(install_sh) -c
28INSTALL_HEADER = $(INSTALL_DATA)
29transform = $(program_transform_name)
30NORMAL_INSTALL = :
31PRE_INSTALL = :
32POST_INSTALL = :
33NORMAL_UNINSTALL = :
34PRE_UNINSTALL = :
35POST_UNINSTALL = :
36build_triplet = @build@
37host_triplet = @host@
38subdir = src/lib/ecore_wayland
39DIST_COMMON = $(includes_HEADERS) $(srcdir)/Makefile.am \
40 $(srcdir)/Makefile.in
41ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
42am__aclocal_m4_deps = $(top_srcdir)/m4/ac_attribute.m4 \
43 $(top_srcdir)/m4/ac_path_generic.m4 \
44 $(top_srcdir)/m4/check_x_extension.m4 \
45 $(top_srcdir)/m4/ecore_check_module.m4 \
46 $(top_srcdir)/m4/ecore_check_options.m4 \
47 $(top_srcdir)/m4/efl_compiler_flag.m4 \
48 $(top_srcdir)/m4/efl_doxygen.m4 \
49 $(top_srcdir)/m4/efl_examples.m4 \
50 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \
51 $(top_srcdir)/m4/efl_threads.m4 $(top_srcdir)/m4/gettext.m4 \
52 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
53 $(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/lib-ld.m4 \
54 $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
55 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
56 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
57 $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \
58 $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
59 $(top_srcdir)/configure.ac
60am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
61 $(ACLOCAL_M4)
62mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
63CONFIG_HEADER = $(top_builddir)/config.h
64CONFIG_CLEAN_FILES =
65CONFIG_CLEAN_VPATH_FILES =
66am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
67am__vpath_adj = case $$p in \
68 $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
69 *) f=$$p;; \
70 esac;
71am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
72am__install_max = 40
73am__nobase_strip_setup = \
74 srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
75am__nobase_strip = \
76 for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
77am__nobase_list = $(am__nobase_strip_setup); \
78 for p in $$list; do echo "$$p $$p"; done | \
79 sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
80 $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
81 if (++n[$$2] == $(am__install_max)) \
82 { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
83 END { for (dir in files) print dir, files[dir] }'
84am__base_list = \
85 sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
86 sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
87am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includesdir)"
88LTLIBRARIES = $(lib_LTLIBRARIES)
89am_libecore_wayland_la_OBJECTS = ecore_wl.lo
90libecore_wayland_la_OBJECTS = $(am_libecore_wayland_la_OBJECTS)
91AM_V_lt = $(am__v_lt_$(V))
92am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
93am__v_lt_0 = --silent
94libecore_wayland_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
95 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
96 $(AM_CFLAGS) $(CFLAGS) $(libecore_wayland_la_LDFLAGS) \
97 $(LDFLAGS) -o $@
98DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
99depcomp = $(SHELL) $(top_srcdir)/depcomp
100am__depfiles_maybe = depfiles
101am__mv = mv -f
102COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
103 $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
104LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
105 $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
106 $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
107 $(AM_CFLAGS) $(CFLAGS)
108AM_V_CC = $(am__v_CC_$(V))
109am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
110am__v_CC_0 = @echo " CC " $@;
111AM_V_at = $(am__v_at_$(V))
112am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
113am__v_at_0 = @
114CCLD = $(CC)
115LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
116 $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
117 $(AM_LDFLAGS) $(LDFLAGS) -o $@
118AM_V_CCLD = $(am__v_CCLD_$(V))
119am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
120am__v_CCLD_0 = @echo " CCLD " $@;
121AM_V_GEN = $(am__v_GEN_$(V))
122am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
123am__v_GEN_0 = @echo " GEN " $@;
124SOURCES = $(libecore_wayland_la_SOURCES)
125DIST_SOURCES = $(libecore_wayland_la_SOURCES)
126HEADERS = $(includes_HEADERS)
127ETAGS = etags
128CTAGS = ctags
129DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
130ACLOCAL = @ACLOCAL@
131ALLOCA = @ALLOCA@
132AMTAR = @AMTAR@
133AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
134AR = @AR@
135AS = @AS@
136AUTOCONF = @AUTOCONF@
137AUTOHEADER = @AUTOHEADER@
138AUTOMAKE = @AUTOMAKE@
139AWK = @AWK@
140CARES_CFLAGS = @CARES_CFLAGS@
141CARES_LIBS = @CARES_LIBS@
142CC = @CC@
143CCDEPMODE = @CCDEPMODE@
144CFLAGS = @CFLAGS@
145CHECK_CFLAGS = @CHECK_CFLAGS@
146CHECK_LIBS = @CHECK_LIBS@
147CPP = @CPP@
148CPPFLAGS = @CPPFLAGS@
149CURL_CFLAGS = @CURL_CFLAGS@
150CURL_LIBS = @CURL_LIBS@
151CXX = @CXX@
152CXXCPP = @CXXCPP@
153CXXDEPMODE = @CXXDEPMODE@
154CXXFLAGS = @CXXFLAGS@
155CYGPATH_W = @CYGPATH_W@
156DEFS = @DEFS@
157DEPDIR = @DEPDIR@
158DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@
159DIRECTFB_LIBS = @DIRECTFB_LIBS@
160DLLTOOL = @DLLTOOL@
161DSYMUTIL = @DSYMUTIL@
162DUMPBIN = @DUMPBIN@
163ECHO_C = @ECHO_C@
164ECHO_N = @ECHO_N@
165ECHO_T = @ECHO_T@
166ECORE_XCB_CFLAGS = @ECORE_XCB_CFLAGS@
167ECORE_XCB_LIBS = @ECORE_XCB_LIBS@
168EFL_ECORE_BUILD = @EFL_ECORE_BUILD@
169EFL_ECORE_CON_BUILD = @EFL_ECORE_CON_BUILD@
170EFL_ECORE_EVAS_BUILD = @EFL_ECORE_EVAS_BUILD@
171EFL_ECORE_FILE_BUILD = @EFL_ECORE_FILE_BUILD@
172EFL_ECORE_IMF_BUILD = @EFL_ECORE_IMF_BUILD@
173EFL_ECORE_IMF_EVAS_BUILD = @EFL_ECORE_IMF_EVAS_BUILD@
174EFL_ECORE_INPUT_BUILD = @EFL_ECORE_INPUT_BUILD@
175EFL_ECORE_INPUT_EVAS_BUILD = @EFL_ECORE_INPUT_EVAS_BUILD@
176EFL_ECORE_IPC_BUILD = @EFL_ECORE_IPC_BUILD@
177EFL_ECORE_PSL1GHT_BUILD = @EFL_ECORE_PSL1GHT_BUILD@
178EFL_ECORE_SDL_BUILD = @EFL_ECORE_SDL_BUILD@
179EFL_ECORE_WIN32_BUILD = @EFL_ECORE_WIN32_BUILD@
180EFL_ECORE_WINCE_BUILD = @EFL_ECORE_WINCE_BUILD@
181EFL_PTHREAD_CFLAGS = @EFL_PTHREAD_CFLAGS@
182EFL_PTHREAD_LIBS = @EFL_PTHREAD_LIBS@
183EGREP = @EGREP@
184EINA_CFLAGS = @EINA_CFLAGS@
185EINA_LIBS = @EINA_LIBS@
186ESCAPE_CFLAGS = @ESCAPE_CFLAGS@
187ESCAPE_LIBS = @ESCAPE_LIBS@
188EVAS_CFLAGS = @EVAS_CFLAGS@
189EVAS_LIBS = @EVAS_LIBS@
190EVIL_CFLAGS = @EVIL_CFLAGS@
191EVIL_LIBS = @EVIL_LIBS@
192EXEEXT = @EXEEXT@
193FGREP = @FGREP@
194GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
195GLIB_CFLAGS = @GLIB_CFLAGS@
196GLIB_LIBS = @GLIB_LIBS@
197GMSGFMT = @GMSGFMT@
198GMSGFMT_015 = @GMSGFMT_015@
199GREP = @GREP@
200INSTALL = @INSTALL@
201INSTALL_DATA = @INSTALL_DATA@
202INSTALL_PROGRAM = @INSTALL_PROGRAM@
203INSTALL_SCRIPT = @INSTALL_SCRIPT@
204INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
205INTLLIBS = @INTLLIBS@
206INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
207KEYSYMDEFS = @KEYSYMDEFS@
208LD = @LD@
209LDFLAGS = @LDFLAGS@
210LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@
211LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@
212LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@
213LIBICONV = @LIBICONV@
214LIBINTL = @LIBINTL@
215LIBOBJS = @LIBOBJS@
216LIBS = @LIBS@
217LIBTOOL = @LIBTOOL@
218LIPO = @LIPO@
219LN_S = @LN_S@
220LTLIBICONV = @LTLIBICONV@
221LTLIBINTL = @LTLIBINTL@
222LTLIBOBJS = @LTLIBOBJS@
223MAKEINFO = @MAKEINFO@
224MKDIR_P = @MKDIR_P@
225MSGFMT = @MSGFMT@
226MSGFMT_015 = @MSGFMT_015@
227MSGMERGE = @MSGMERGE@
228NM = @NM@
229NMEDIT = @NMEDIT@
230OBJC = @OBJC@
231OBJCDEPMODE = @OBJCDEPMODE@
232OBJCFLAGS = @OBJCFLAGS@
233OBJDUMP = @OBJDUMP@
234OBJEXT = @OBJEXT@
235OTOOL = @OTOOL@
236OTOOL64 = @OTOOL64@
237PACKAGE = @PACKAGE@
238PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
239PACKAGE_NAME = @PACKAGE_NAME@
240PACKAGE_STRING = @PACKAGE_STRING@
241PACKAGE_TARNAME = @PACKAGE_TARNAME@
242PACKAGE_URL = @PACKAGE_URL@
243PACKAGE_VERSION = @PACKAGE_VERSION@
244PATH_SEPARATOR = @PATH_SEPARATOR@
245PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
246PIXMAN_LIBS = @PIXMAN_LIBS@
247PKG_CONFIG = @PKG_CONFIG@
248POSUB = @POSUB@
249RANLIB = @RANLIB@
250SCIM_CFLAGS = @SCIM_CFLAGS@
251SCIM_LIBS = @SCIM_LIBS@
252SDL_CFLAGS = @SDL_CFLAGS@
253SDL_CONFIG = @SDL_CONFIG@
254SDL_LIBS = @SDL_LIBS@
255SED = @SED@
256SET_MAKE = @SET_MAKE@
257SHELL = @SHELL@
258SSL_CFLAGS = @SSL_CFLAGS@
259SSL_LIBS = @SSL_LIBS@
260STRIP = @STRIP@
261TLS2_CFLAGS = @TLS2_CFLAGS@
262TLS2_LIBS = @TLS2_LIBS@
263TLS_CFLAGS = @TLS_CFLAGS@
264TLS_LIBS = @TLS_LIBS@
265TSLIB_CFLAGS = @TSLIB_CFLAGS@
266TSLIB_LIBS = @TSLIB_LIBS@
267USE_NLS = @USE_NLS@
268VERSION = @VERSION@
269VMAJ = @VMAJ@
270WAYLAND_CFLAGS = @WAYLAND_CFLAGS@
271WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
272WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
273WAYLAND_LIBS = @WAYLAND_LIBS@
274WIN32_CFLAGS = @WIN32_CFLAGS@
275WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
276WIN32_LIBS = @WIN32_LIBS@
277XCB_COMPOSITE_CFLAGS = @XCB_COMPOSITE_CFLAGS@
278XCB_COMPOSITE_LIBS = @XCB_COMPOSITE_LIBS@
279XCB_CURSOR_CFLAGS = @XCB_CURSOR_CFLAGS@
280XCB_CURSOR_LIBS = @XCB_CURSOR_LIBS@
281XCB_DAMAGE_CFLAGS = @XCB_DAMAGE_CFLAGS@
282XCB_DAMAGE_LIBS = @XCB_DAMAGE_LIBS@
283XCB_DPMS_CFLAGS = @XCB_DPMS_CFLAGS@
284XCB_DPMS_LIBS = @XCB_DPMS_LIBS@
285XCB_RANDR_CFLAGS = @XCB_RANDR_CFLAGS@
286XCB_RANDR_LIBS = @XCB_RANDR_LIBS@
287XCB_RENDER_CFLAGS = @XCB_RENDER_CFLAGS@
288XCB_RENDER_LIBS = @XCB_RENDER_LIBS@
289XCB_SCREENSAVER_CFLAGS = @XCB_SCREENSAVER_CFLAGS@
290XCB_SCREENSAVER_LIBS = @XCB_SCREENSAVER_LIBS@
291XCB_SHAPE_CFLAGS = @XCB_SHAPE_CFLAGS@
292XCB_SHAPE_LIBS = @XCB_SHAPE_LIBS@
293XCB_SYNC_CFLAGS = @XCB_SYNC_CFLAGS@
294XCB_SYNC_LIBS = @XCB_SYNC_LIBS@
295XCB_X11_CFLAGS = @XCB_X11_CFLAGS@
296XCB_X11_LIBS = @XCB_X11_LIBS@
297XCB_XFIXES_CFLAGS = @XCB_XFIXES_CFLAGS@
298XCB_XFIXES_LIBS = @XCB_XFIXES_LIBS@
299XCB_XGESTURE_CFLAGS = @XCB_XGESTURE_CFLAGS@
300XCB_XGESTURE_LIBS = @XCB_XGESTURE_LIBS@
301XCB_XINERAMA_CFLAGS = @XCB_XINERAMA_CFLAGS@
302XCB_XINERAMA_LIBS = @XCB_XINERAMA_LIBS@
303XCB_XINPUT_CFLAGS = @XCB_XINPUT_CFLAGS@
304XCB_XINPUT_LIBS = @XCB_XINPUT_LIBS@
305XCB_XPRINT_CFLAGS = @XCB_XPRINT_CFLAGS@
306XCB_XPRINT_LIBS = @XCB_XPRINT_LIBS@
307XCB_XTEST_CFLAGS = @XCB_XTEST_CFLAGS@
308XCB_XTEST_LIBS = @XCB_XTEST_LIBS@
309XCOMPOSITE_CFLAGS = @XCOMPOSITE_CFLAGS@
310XCOMPOSITE_LIBS = @XCOMPOSITE_LIBS@
311XDAMAGE_CFLAGS = @XDAMAGE_CFLAGS@
312XDAMAGE_LIBS = @XDAMAGE_LIBS@
313XDPMS_CFLAGS = @XDPMS_CFLAGS@
314XDPMS_LIBS = @XDPMS_LIBS@
315XFIXES_CFLAGS = @XFIXES_CFLAGS@
316XFIXES_LIBS = @XFIXES_LIBS@
317XGESTURE_CFLAGS = @XGESTURE_CFLAGS@
318XGESTURE_LIBS = @XGESTURE_LIBS@
319XGETTEXT = @XGETTEXT@
320XGETTEXT_015 = @XGETTEXT_015@
321XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
322XI2_CFLAGS = @XI2_CFLAGS@
323XI2_LIBS = @XI2_LIBS@
324XINERAMA_CFLAGS = @XINERAMA_CFLAGS@
325XINERAMA_LIBS = @XINERAMA_LIBS@
326XKB_CFLAGS = @XKB_CFLAGS@
327XKB_LIBS = @XKB_LIBS@
328XMKMF = @XMKMF@
329XPRINT_CFLAGS = @XPRINT_CFLAGS@
330XPRINT_LIBS = @XPRINT_LIBS@
331XRANDR_CFLAGS = @XRANDR_CFLAGS@
332XRANDR_LIBS = @XRANDR_LIBS@
333XRENDER_CFLAGS = @XRENDER_CFLAGS@
334XRENDER_LIBS = @XRENDER_LIBS@
335XSS_CFLAGS = @XSS_CFLAGS@
336XSS_LIBS = @XSS_LIBS@
337XTEST_CFLAGS = @XTEST_CFLAGS@
338XTEST_LIBS = @XTEST_LIBS@
339X_CFLAGS = @X_CFLAGS@
340X_EXTRA_LIBS = @X_EXTRA_LIBS@
341X_LIBS = @X_LIBS@
342X_PRE_LIBS = @X_PRE_LIBS@
343Xcursor_cflags = @Xcursor_cflags@
344Xcursor_libs = @Xcursor_libs@
345abs_builddir = @abs_builddir@
346abs_srcdir = @abs_srcdir@
347abs_top_builddir = @abs_top_builddir@
348abs_top_srcdir = @abs_top_srcdir@
349ac_ct_CC = @ac_ct_CC@
350ac_ct_CXX = @ac_ct_CXX@
351ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
352ac_ct_OBJC = @ac_ct_OBJC@
353am__include = @am__include@
354am__leading_dot = @am__leading_dot@
355am__quote = @am__quote@
356am__tar = @am__tar@
357am__untar = @am__untar@
358bindir = @bindir@
359build = @build@
360build_alias = @build_alias@
361build_cpu = @build_cpu@
362build_os = @build_os@
363build_vendor = @build_vendor@
364builddir = @builddir@
365cocoa_ldflags = @cocoa_ldflags@
366datadir = @datadir@
367datarootdir = @datarootdir@
368dlopen_libs = @dlopen_libs@
369docdir = @docdir@
370dvidir = @dvidir@
371ecore_cocoa_cflags = @ecore_cocoa_cflags@
372ecore_cocoa_libs = @ecore_cocoa_libs@
373ecore_con_cflags = @ecore_con_cflags@
374ecore_con_libs = @ecore_con_libs@
375ecore_directfb_cflags = @ecore_directfb_cflags@
376ecore_directfb_libs = @ecore_directfb_libs@
377ecore_evas_cflags = @ecore_evas_cflags@
378ecore_evas_libs = @ecore_evas_libs@
379ecore_fb_cflags = @ecore_fb_cflags@
380ecore_fb_libs = @ecore_fb_libs@
381ecore_file_cflags = @ecore_file_cflags@
382ecore_file_libs = @ecore_file_libs@
383ecore_imf_cflags = @ecore_imf_cflags@
384ecore_imf_evas_cflags = @ecore_imf_evas_cflags@
385ecore_imf_evas_libs = @ecore_imf_evas_libs@
386ecore_imf_libs = @ecore_imf_libs@
387ecore_imf_scim_cflags = @ecore_imf_scim_cflags@
388ecore_imf_scim_libs = @ecore_imf_scim_libs@
389ecore_imf_xim_cflags = @ecore_imf_xim_cflags@
390ecore_imf_xim_libs = @ecore_imf_xim_libs@
391ecore_input_cflags = @ecore_input_cflags@
392ecore_input_evas_cflags = @ecore_input_evas_cflags@
393ecore_input_evas_libs = @ecore_input_evas_libs@
394ecore_input_libs = @ecore_input_libs@
395ecore_ipc_cflags = @ecore_ipc_cflags@
396ecore_ipc_libs = @ecore_ipc_libs@
397ecore_psl1ght_cflags = @ecore_psl1ght_cflags@
398ecore_psl1ght_libs = @ecore_psl1ght_libs@
399ecore_sdl_cflags = @ecore_sdl_cflags@
400ecore_sdl_libs = @ecore_sdl_libs@
401ecore_wayland_cflags = @ecore_wayland_cflags@
402ecore_wayland_libs = @ecore_wayland_libs@
403ecore_win32_cflags = @ecore_win32_cflags@
404ecore_win32_libs = @ecore_win32_libs@
405ecore_wince_cflags = @ecore_wince_cflags@
406ecore_wince_libs = @ecore_wince_libs@
407ecore_x_cflags = @ecore_x_cflags@
408ecore_x_libs = @ecore_x_libs@
409ecore_x_libs_private = @ecore_x_libs_private@
410efl_doxygen = @efl_doxygen@
411efl_have_doxygen = @efl_have_doxygen@
412exec_prefix = @exec_prefix@
413have_ecore_x_xcb_define = @have_ecore_x_xcb_define@
414host = @host@
415host_alias = @host_alias@
416host_cpu = @host_cpu@
417host_os = @host_os@
418host_vendor = @host_vendor@
419htmldir = @htmldir@
420includedir = @includedir@
421infodir = @infodir@
422install_sh = @install_sh@
423libdir = @libdir@
424libexecdir = @libexecdir@
425localedir = @localedir@
426localstatedir = @localstatedir@
427lt_ECHO = @lt_ECHO@
428lt_enable_auto_import = @lt_enable_auto_import@
429mandir = @mandir@
430mkdir_p = @mkdir_p@
431oldincludedir = @oldincludedir@
432pdfdir = @pdfdir@
433pkgconfig_requires_private = @pkgconfig_requires_private@
434prefix = @prefix@
435program_transform_name = @program_transform_name@
436psdir = @psdir@
437release_info = @release_info@
438requirements_ecore = @requirements_ecore@
439requirements_ecore_cocoa = @requirements_ecore_cocoa@
440requirements_ecore_con = @requirements_ecore_con@
441requirements_ecore_directfb = @requirements_ecore_directfb@
442requirements_ecore_evas = @requirements_ecore_evas@
443requirements_ecore_fb = @requirements_ecore_fb@
444requirements_ecore_file = @requirements_ecore_file@
445requirements_ecore_imf = @requirements_ecore_imf@
446requirements_ecore_imf_evas = @requirements_ecore_imf_evas@
447requirements_ecore_imf_scim = @requirements_ecore_imf_scim@
448requirements_ecore_imf_xim = @requirements_ecore_imf_xim@
449requirements_ecore_input = @requirements_ecore_input@
450requirements_ecore_input_evas = @requirements_ecore_input_evas@
451requirements_ecore_ipc = @requirements_ecore_ipc@
452requirements_ecore_psl1ght = @requirements_ecore_psl1ght@
453requirements_ecore_sdl = @requirements_ecore_sdl@
454requirements_ecore_wayland = @requirements_ecore_wayland@
455requirements_ecore_win32 = @requirements_ecore_win32@
456requirements_ecore_wince = @requirements_ecore_wince@
457requirements_ecore_x = @requirements_ecore_x@
458rt_libs = @rt_libs@
459sbindir = @sbindir@
460sharedstatedir = @sharedstatedir@
461srcdir = @srcdir@
462sysconfdir = @sysconfdir@
463target_alias = @target_alias@
464top_build_prefix = @top_build_prefix@
465top_builddir = @top_builddir@
466top_srcdir = @top_srcdir@
467version_info = @version_info@
468x_cflags = @x_cflags@
469x_includes = @x_includes@
470x_libs = @x_libs@
471MAINTAINERCLEANFILES = Makefile.in
472AM_CPPFLAGS = \
473-I$(top_srcdir)/src/lib/ecore \
474-I$(top_srcdir)/src/lib/ecore_input \
475-I$(top_builddir)/src/lib/ecore \
476-I$(top_builddir)/src/lib/ecore_input \
477@WAYLAND_CFLAGS@ \
478@EVAS_CFLAGS@ \
479@EINA_CFLAGS@
480
481lib_LTLIBRARIES = libecore_wayland.la
482includes_HEADERS = Ecore_Wayland.h
483includesdir = $(includedir)/ecore-@VMAJ@
484libecore_wayland_la_SOURCES = \
485ecore_wl.c
486
487libecore_wayland_la_LIBADD = \
488$(top_builddir)/src/lib/ecore/libecore.la \
489$(top_builddir)/src/lib/ecore_input/libecore_input.la \
490@WAYLAND_LIBS@ \
491@EVAS_LIBS@ \
492@EINA_LIBS@
493
494libecore_wayland_la_LDFLAGS = -version-info @version_info@ @release_info@
495libecore_wayland_la_DEPENDENCIES = $(top_builddir)/src/lib/ecore/libecore.la
496EXTRA_DIST = ecore_wl_private.h
497all: all-am
498
499.SUFFIXES:
500.SUFFIXES: .c .lo .o .obj
501$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
502 @for dep in $?; do \
503 case '$(am__configure_deps)' in \
504 *$$dep*) \
505 ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
506 && { if test -f $@; then exit 0; else break; fi; }; \
507 exit 1;; \
508 esac; \
509 done; \
510 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/lib/ecore_wayland/Makefile'; \
511 $(am__cd) $(top_srcdir) && \
512 $(AUTOMAKE) --gnu src/lib/ecore_wayland/Makefile
513.PRECIOUS: Makefile
514Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
515 @case '$?' in \
516 *config.status*) \
517 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
518 *) \
519 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
520 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
521 esac;
522
523$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
524 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
525
526$(top_srcdir)/configure: $(am__configure_deps)
527 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
528$(ACLOCAL_M4): $(am__aclocal_m4_deps)
529 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
530$(am__aclocal_m4_deps):
531install-libLTLIBRARIES: $(lib_LTLIBRARIES)
532 @$(NORMAL_INSTALL)
533 test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)"
534 @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
535 list2=; for p in $$list; do \
536 if test -f $$p; then \
537 list2="$$list2 $$p"; \
538 else :; fi; \
539 done; \
540 test -z "$$list2" || { \
541 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
542 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
543 }
544
545uninstall-libLTLIBRARIES:
546 @$(NORMAL_UNINSTALL)
547 @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
548 for p in $$list; do \
549 $(am__strip_dir) \
550 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \
551 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \
552 done
553
554clean-libLTLIBRARIES:
555 -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
556 @list='$(lib_LTLIBRARIES)'; for p in $$list; do \
557 dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
558 test "$$dir" != "$$p" || dir=.; \
559 echo "rm -f \"$${dir}/so_locations\""; \
560 rm -f "$${dir}/so_locations"; \
561 done
562libecore_wayland.la: $(libecore_wayland_la_OBJECTS) $(libecore_wayland_la_DEPENDENCIES)
563 $(AM_V_CCLD)$(libecore_wayland_la_LINK) -rpath $(libdir) $(libecore_wayland_la_OBJECTS) $(libecore_wayland_la_LIBADD) $(LIBS)
564
565mostlyclean-compile:
566 -rm -f *.$(OBJEXT)
567
568distclean-compile:
569 -rm -f *.tab.c
570
571@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecore_wl.Plo@am__quote@
572
573.c.o:
574@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
575@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
576@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
577@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
578@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
579@am__fastdepCC_FALSE@ $(COMPILE) -c $<
580
581.c.obj:
582@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
583@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
584@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
585@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
586@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
587@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
588
589.c.lo:
590@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
591@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
592@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
593@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
594@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
595@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
596
597mostlyclean-libtool:
598 -rm -f *.lo
599
600clean-libtool:
601 -rm -rf .libs _libs
602install-includesHEADERS: $(includes_HEADERS)
603 @$(NORMAL_INSTALL)
604 test -z "$(includesdir)" || $(MKDIR_P) "$(DESTDIR)$(includesdir)"
605 @list='$(includes_HEADERS)'; test -n "$(includesdir)" || list=; \
606 for p in $$list; do \
607 if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
608 echo "$$d$$p"; \
609 done | $(am__base_list) | \
610 while read files; do \
611 echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includesdir)'"; \
612 $(INSTALL_HEADER) $$files "$(DESTDIR)$(includesdir)" || exit $$?; \
613 done
614
615uninstall-includesHEADERS:
616 @$(NORMAL_UNINSTALL)
617 @list='$(includes_HEADERS)'; test -n "$(includesdir)" || list=; \
618 files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
619 test -n "$$files" || exit 0; \
620 echo " ( cd '$(DESTDIR)$(includesdir)' && rm -f" $$files ")"; \
621 cd "$(DESTDIR)$(includesdir)" && rm -f $$files
622
623ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
624 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
625 unique=`for i in $$list; do \
626 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
627 done | \
628 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
629 END { if (nonempty) { for (i in files) print i; }; }'`; \
630 mkid -fID $$unique
631tags: TAGS
632
633TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
634 $(TAGS_FILES) $(LISP)
635 set x; \
636 here=`pwd`; \
637 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
638 unique=`for i in $$list; do \
639 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
640 done | \
641 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
642 END { if (nonempty) { for (i in files) print i; }; }'`; \
643 shift; \
644 if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
645 test -n "$$unique" || unique=$$empty_fix; \
646 if test $$# -gt 0; then \
647 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
648 "$$@" $$unique; \
649 else \
650 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
651 $$unique; \
652 fi; \
653 fi
654ctags: CTAGS
655CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
656 $(TAGS_FILES) $(LISP)
657 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
658 unique=`for i in $$list; do \
659 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
660 done | \
661 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
662 END { if (nonempty) { for (i in files) print i; }; }'`; \
663 test -z "$(CTAGS_ARGS)$$unique" \
664 || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
665 $$unique
666
667GTAGS:
668 here=`$(am__cd) $(top_builddir) && pwd` \
669 && $(am__cd) $(top_srcdir) \
670 && gtags -i $(GTAGS_ARGS) "$$here"
671
672distclean-tags:
673 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
674
675distdir: $(DISTFILES)
676 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
677 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
678 list='$(DISTFILES)'; \
679 dist_files=`for file in $$list; do echo $$file; done | \
680 sed -e "s|^$$srcdirstrip/||;t" \
681 -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
682 case $$dist_files in \
683 */*) $(MKDIR_P) `echo "$$dist_files" | \
684 sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
685 sort -u` ;; \
686 esac; \
687 for file in $$dist_files; do \
688 if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
689 if test -d $$d/$$file; then \
690 dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
691 if test -d "$(distdir)/$$file"; then \
692 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
693 fi; \
694 if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
695 cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
696 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
697 fi; \
698 cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
699 else \
700 test -f "$(distdir)/$$file" \
701 || cp -p $$d/$$file "$(distdir)/$$file" \
702 || exit 1; \
703 fi; \
704 done
705check-am: all-am
706check: check-am
707all-am: Makefile $(LTLIBRARIES) $(HEADERS)
708installdirs:
709 for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includesdir)"; do \
710 test -z "$$dir" || $(MKDIR_P) "$$dir"; \
711 done
712install: install-am
713install-exec: install-exec-am
714install-data: install-data-am
715uninstall: uninstall-am
716
717install-am: all-am
718 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
719
720installcheck: installcheck-am
721install-strip:
722 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
723 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
724 `test -z '$(STRIP)' || \
725 echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
726mostlyclean-generic:
727
728clean-generic:
729
730distclean-generic:
731 -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
732 -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
733
734maintainer-clean-generic:
735 @echo "This command is intended for maintainers to use"
736 @echo "it deletes files that may require special tools to rebuild."
737 -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
738clean: clean-am
739
740clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
741 mostlyclean-am
742
743distclean: distclean-am
744 -rm -rf ./$(DEPDIR)
745 -rm -f Makefile
746distclean-am: clean-am distclean-compile distclean-generic \
747 distclean-tags
748
749dvi: dvi-am
750
751dvi-am:
752
753html: html-am
754
755html-am:
756
757info: info-am
758
759info-am:
760
761install-data-am: install-includesHEADERS
762
763install-dvi: install-dvi-am
764
765install-dvi-am:
766
767install-exec-am: install-libLTLIBRARIES
768
769install-html: install-html-am
770
771install-html-am:
772
773install-info: install-info-am
774
775install-info-am:
776
777install-man:
778
779install-pdf: install-pdf-am
780
781install-pdf-am:
782
783install-ps: install-ps-am
784
785install-ps-am:
786
787installcheck-am:
788
789maintainer-clean: maintainer-clean-am
790 -rm -rf ./$(DEPDIR)
791 -rm -f Makefile
792maintainer-clean-am: distclean-am maintainer-clean-generic
793
794mostlyclean: mostlyclean-am
795
796mostlyclean-am: mostlyclean-compile mostlyclean-generic \
797 mostlyclean-libtool
798
799pdf: pdf-am
800
801pdf-am:
802
803ps: ps-am
804
805ps-am:
806
807uninstall-am: uninstall-includesHEADERS uninstall-libLTLIBRARIES
808
809.MAKE: install-am install-strip
810
811.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
812 clean-libLTLIBRARIES clean-libtool ctags distclean \
813 distclean-compile distclean-generic distclean-libtool \
814 distclean-tags distdir dvi dvi-am html html-am info info-am \
815 install install-am install-data install-data-am install-dvi \
816 install-dvi-am install-exec install-exec-am install-html \
817 install-html-am install-includesHEADERS install-info \
818 install-info-am install-libLTLIBRARIES install-man install-pdf \
819 install-pdf-am install-ps install-ps-am install-strip \
820 installcheck installcheck-am installdirs maintainer-clean \
821 maintainer-clean-generic mostlyclean mostlyclean-compile \
822 mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
823 tags uninstall uninstall-am uninstall-includesHEADERS \
824 uninstall-libLTLIBRARIES
825
826
827# Tell versions [3.59,3.63) of GNU make to not export all variables.
828# Otherwise a system limit (for SysV at least) may be exceeded.
829.NOEXPORT:
diff --git a/libraries/ecore/src/lib/ecore_wayland/ecore_wl.c b/libraries/ecore/src/lib/ecore_wayland/ecore_wl.c
new file mode 100644
index 0000000..f62503b
--- /dev/null
+++ b/libraries/ecore/src/lib/ecore_wayland/ecore_wl.c
@@ -0,0 +1,1213 @@
1#ifdef HAVE_CONFIG_H
2# include "config.h"
3#endif
4
5#include "Ecore.h"
6#include "ecore_private.h"
7#include "Ecore_Input.h"
8#include "ecore_wl_private.h"
9#include "Ecore_Wayland.h"
10
11/* FIXME: This gives BTN_LEFT/RIGHT/MIDDLE for linux systems ...
12 * What about other OSs ?? */
13#include <fcntl.h>
14#ifdef __linux__
15# include <linux/input.h>
16#else
17# define BTN_LEFT 0x110
18# define BTN_RIGHT 0x111
19# define BTN_MIDDLE 0x112
20# define BTN_SIDE 0x113
21# define BTN_EXTRA 0x114
22# define BTN_FORWARD 0x115
23# define BTN_BACK 0x116
24#endif
25
26#include <X11/extensions/XKBcommon.h>
27
28/* local function prototypes */
29static Eina_Bool _ecore_wl_shutdown(Eina_Bool close_display);
30static void _ecore_wl_cb_disp_handle_global(struct wl_display *disp, uint32_t id, const char *interface, uint32_t version __UNUSED__, void *data __UNUSED__);
31static int _ecore_wl_cb_disp_event_mask_update(uint32_t mask, void *data __UNUSED__);
32static void _ecore_wl_cb_disp_handle_geometry(void *data __UNUSED__, struct wl_output *output __UNUSED__, int x, int y, int pw __UNUSED__, int ph __UNUSED__, int subpixel __UNUSED__, const char *make __UNUSED__, const char *model __UNUSED__);
33static void _ecore_wl_cb_disp_handle_mode(void *data __UNUSED__, struct wl_output *output __UNUSED__, uint32_t flags, int w, int h, int refresh __UNUSED__);
34static Eina_Bool _ecore_wl_cb_fd_handle(void *data, Ecore_Fd_Handler *hdl __UNUSED__);
35static void _ecore_wl_cb_handle_motion(void *data __UNUSED__, struct wl_input_device *dev, uint32_t t, int32_t x, int32_t y, int32_t sx, int32_t sy);
36static void _ecore_wl_cb_handle_button(void *data __UNUSED__, struct wl_input_device *dev, uint32_t t, uint32_t btn, uint32_t state);
37static void _ecore_wl_cb_handle_key(void *data __UNUSED__, struct wl_input_device *dev, uint32_t t __UNUSED__, uint32_t key, uint32_t state);
38static void _ecore_wl_cb_handle_pointer_focus(void *data __UNUSED__, struct wl_input_device *dev, uint32_t t, struct wl_surface *surface, int32_t x, int32_t y, int32_t sx, int32_t sy);
39static void _ecore_wl_cb_handle_keyboard_focus(void *data __UNUSED__, struct wl_input_device *dev, uint32_t t __UNUSED__, struct wl_surface *surface, struct wl_array *keys);
40static void _ecore_wl_cb_handle_touch_down(void *data __UNUSED__, struct wl_input_device *dev __UNUSED__, uint32_t timestamp, struct wl_surface *surface, int32_t id, int32_t x, int32_t y);
41static void _ecore_wl_cb_handle_touch_up(void *data __UNUSED__, struct wl_input_device *dev __UNUSED__, uint32_t timestamp, int32_t id);
42static void _ecore_wl_cb_handle_touch_motion(void *data __UNUSED__, struct wl_input_device *dev __UNUSED__, uint32_t timestamp, int32_t id, int32_t x, int32_t y);
43static void _ecore_wl_cb_handle_touch_frame(void *data __UNUSED__, struct wl_input_device *dev __UNUSED__);
44static void _ecore_wl_cb_handle_touch_cancel(void *data __UNUSED__, struct wl_input_device *dev __UNUSED__);
45static void _ecore_wl_cb_source_target(void *data, struct wl_data_source *source __UNUSED__, const char *mime_type __UNUSED__);
46static void _ecore_wl_cb_source_send(void *data, struct wl_data_source *source, const char *mime_type, int32_t fd);
47static void _ecore_wl_cb_source_cancelled(void *data, struct wl_data_source *source __UNUSED__);
48static void _ecore_wl_cb_source_offer(void *data, struct wl_data_offer *offer __UNUSED__, const char *type);
49static void _ecore_wl_cb_data_offer(void *data, struct wl_data_device *data_dev, uint32_t id);
50static void _ecore_wl_cb_data_enter(void *data __UNUSED__, struct wl_data_device *data_dev, uint32_t timestamp, struct wl_surface *surface, int32_t x, int32_t y, struct wl_data_offer *offer);
51static void _ecore_wl_cb_data_leave(void *data __UNUSED__, struct wl_data_device *data_dev);
52static void _ecore_wl_cb_data_motion(void *data __UNUSED__, struct wl_data_device *data_dev, uint32_t timestamp, int32_t x, int32_t y);
53static void _ecore_wl_cb_data_drop(void *data __UNUSED__, struct wl_data_device *data_dev);
54static void _ecore_wl_cb_data_selection(void *data, struct wl_data_device *data_dev, struct wl_data_offer *offer);
55
56static void _ecore_wl_mouse_move_send(uint32_t timestamp);
57static void _ecore_wl_mouse_out_send(struct wl_surface *surface, uint32_t timestamp);
58static void _ecore_wl_mouse_in_send(struct wl_surface *surface, uint32_t timestamp);
59static void _ecore_wl_mouse_up_send(struct wl_surface *surface, uint32_t button, uint32_t timestamp);
60static void _ecore_wl_mouse_down_send(struct wl_surface *surface, uint32_t button, uint32_t timestamp);
61static void _ecore_wl_focus_out_send(struct wl_surface *surface, uint32_t timestamp);
62static void _ecore_wl_focus_in_send(struct wl_surface *surface, uint32_t timestamp);
63
64/* local variables */
65static int _ecore_wl_init_count = 0;
66static struct wl_display *_ecore_wl_disp = NULL;
67static uint32_t _ecore_wl_disp_mask = 0;
68static uint32_t _ecore_wl_disp_format = WL_SHM_FORMAT_ARGB8888;
69static Eina_Rectangle _ecore_wl_screen;
70static Ecore_Fd_Handler *_ecore_wl_fd_hdl = NULL;
71static int _ecore_wl_screen_x = 0;
72static int _ecore_wl_screen_y = 0;
73static int _ecore_wl_surface_x = 0;
74static int _ecore_wl_surface_y = 0;
75static int _ecore_wl_touch_x = 0;
76static int _ecore_wl_touch_y = 0;
77static int _ecore_wl_input_modifiers = 0;
78static struct xkb_desc *_ecore_wl_xkb;
79static uint32_t _ecore_wl_input_button = 0;
80
81static struct wl_compositor *_ecore_wl_comp;
82static struct wl_shm *_ecore_wl_shm;
83static struct wl_shell *_ecore_wl_shell;
84static struct wl_output *_ecore_wl_output;
85static struct wl_input_device *_ecore_wl_input_dev;
86static struct wl_surface *_ecore_wl_input_surface;
87static struct wl_surface *_ecore_wl_touch_surface;
88static struct wl_data_device_manager *_ecore_wl_data_manager;
89static struct wl_data_device *_ecore_wl_data_dev;
90
91static const struct wl_output_listener _ecore_wl_output_listener =
92{
93 _ecore_wl_cb_disp_handle_geometry,
94 _ecore_wl_cb_disp_handle_mode
95};
96static const struct wl_input_device_listener _ecore_wl_input_listener =
97{
98 _ecore_wl_cb_handle_motion,
99 _ecore_wl_cb_handle_button,
100 _ecore_wl_cb_handle_key,
101 _ecore_wl_cb_handle_pointer_focus,
102 _ecore_wl_cb_handle_keyboard_focus,
103 _ecore_wl_cb_handle_touch_down,
104 _ecore_wl_cb_handle_touch_up,
105 _ecore_wl_cb_handle_touch_motion,
106 _ecore_wl_cb_handle_touch_frame,
107 _ecore_wl_cb_handle_touch_cancel,
108};
109static const struct wl_data_source_listener _ecore_wl_source_listener =
110{
111 _ecore_wl_cb_source_target,
112 _ecore_wl_cb_source_send,
113 _ecore_wl_cb_source_cancelled
114};
115static const struct wl_data_device_listener _ecore_wl_data_listener =
116{
117 _ecore_wl_cb_data_offer,
118 _ecore_wl_cb_data_enter,
119 _ecore_wl_cb_data_leave,
120 _ecore_wl_cb_data_motion,
121 _ecore_wl_cb_data_drop,
122 _ecore_wl_cb_data_selection
123};
124static const struct wl_data_offer_listener _ecore_wl_offer_listener =
125{
126 _ecore_wl_cb_source_offer,
127};
128
129/* external variables */
130int _ecore_wl_log_dom = -1;
131EAPI int ECORE_WL_EVENT_MOUSE_IN = 0;
132EAPI int ECORE_WL_EVENT_MOUSE_OUT = 0;
133EAPI int ECORE_WL_EVENT_FOCUS_IN = 0;
134EAPI int ECORE_WL_EVENT_FOCUS_OUT = 0;
135EAPI int ECORE_WL_EVENT_DRAG_START = 0;
136EAPI int ECORE_WL_EVENT_DRAG_STOP = 0;
137
138EAPI int
139ecore_wl_init(const char *name)
140{
141 struct xkb_rule_names xkb_names;
142 int fd = 0;
143
144 if (++_ecore_wl_init_count != 1)
145 return _ecore_wl_init_count;
146
147 LOGFN(__FILE__, __LINE__, __FUNCTION__);
148
149 if (!eina_init()) return --_ecore_wl_init_count;
150
151 _ecore_wl_log_dom =
152 eina_log_domain_register("ecore_wl", ECORE_WL_DEFAULT_LOG_COLOR);
153 if (_ecore_wl_log_dom < 0)
154 {
155 EINA_LOG_ERR("Cannot create a log domain for Ecore Wayland.");
156 eina_shutdown();
157 return --_ecore_wl_init_count;
158 }
159
160 if (!ecore_init())
161 {
162 eina_log_domain_unregister(_ecore_wl_log_dom);
163 _ecore_wl_log_dom = -1;
164 eina_shutdown();
165 return --_ecore_wl_init_count;
166 }
167
168 if (!ecore_event_init())
169 {
170 eina_log_domain_unregister(_ecore_wl_log_dom);
171 _ecore_wl_log_dom = -1;
172 ecore_shutdown();
173 eina_shutdown();
174 return --_ecore_wl_init_count;
175 }
176
177 if (!ECORE_WL_EVENT_MOUSE_IN)
178 {
179 ECORE_WL_EVENT_MOUSE_IN = ecore_event_type_new();
180 ECORE_WL_EVENT_MOUSE_OUT = ecore_event_type_new();
181 ECORE_WL_EVENT_FOCUS_IN = ecore_event_type_new();
182 ECORE_WL_EVENT_FOCUS_OUT = ecore_event_type_new();
183 ECORE_WL_EVENT_DRAG_START = ecore_event_type_new();
184 ECORE_WL_EVENT_DRAG_STOP = ecore_event_type_new();
185 }
186
187 /* init xkb */
188 /* FIXME: Somehow make this portable to other languages/countries */
189 xkb_names.rules = "evdev";
190 xkb_names.model = "evdev";
191 xkb_names.layout = "us";
192 xkb_names.variant = "";
193 xkb_names.options = "";
194 if (!(_ecore_wl_xkb = xkb_compile_keymap_from_rules(&xkb_names)))
195 {
196 ERR("Could not compile keymap");
197 eina_log_domain_unregister(_ecore_wl_log_dom);
198 _ecore_wl_log_dom = -1;
199 ecore_event_shutdown();
200 ecore_shutdown();
201 eina_shutdown();
202 return --_ecore_wl_init_count;
203 }
204
205 /* connect to the wayland display */
206 if (!(_ecore_wl_disp = wl_display_connect(name)))
207 {
208 eina_log_domain_unregister(_ecore_wl_log_dom);
209 _ecore_wl_log_dom = -1;
210 ecore_event_shutdown();
211 ecore_shutdown();
212 eina_shutdown();
213 return --_ecore_wl_init_count;
214 }
215
216 /* setup handler for wayland interfaces */
217 wl_display_add_global_listener(_ecore_wl_disp,
218 _ecore_wl_cb_disp_handle_global, NULL);
219
220 /* process connection events */
221 wl_display_iterate(_ecore_wl_disp, WL_DISPLAY_READABLE);
222
223 fd = wl_display_get_fd(_ecore_wl_disp,
224 _ecore_wl_cb_disp_event_mask_update, NULL);
225
226 _ecore_wl_fd_hdl =
227 ecore_main_fd_handler_add(fd, ECORE_FD_READ, _ecore_wl_cb_fd_handle,
228 _ecore_wl_disp, NULL, NULL);
229 if (!_ecore_wl_fd_hdl)
230 {
231 wl_display_destroy(_ecore_wl_disp);
232 _ecore_wl_disp = NULL;
233 eina_log_domain_unregister(_ecore_wl_log_dom);
234 _ecore_wl_log_dom = -1;
235 ecore_event_shutdown();
236 ecore_shutdown();
237 eina_shutdown();
238 return --_ecore_wl_init_count;
239 }
240
241 return _ecore_wl_init_count;
242}
243
244EAPI int
245ecore_wl_shutdown(void)
246{
247 return _ecore_wl_shutdown(EINA_TRUE);
248}
249
250EAPI struct wl_display *
251ecore_wl_display_get(void)
252{
253 return _ecore_wl_disp;
254}
255
256EAPI struct wl_shm *
257ecore_wl_shm_get(void)
258{
259 return _ecore_wl_shm;
260}
261
262EAPI struct wl_compositor *
263ecore_wl_compositor_get(void)
264{
265 return _ecore_wl_comp;
266}
267
268EAPI struct wl_shell *
269ecore_wl_shell_get(void)
270{
271 return _ecore_wl_shell;
272}
273
274EAPI struct wl_input_device *
275ecore_wl_input_device_get(void)
276{
277 return _ecore_wl_input_dev;
278}
279
280EAPI void
281ecore_wl_screen_size_get(int *w, int *h)
282{
283 if (w) *w = _ecore_wl_screen.w;
284 if (h) *h = _ecore_wl_screen.h;
285}
286
287EAPI unsigned int
288ecore_wl_format_get(void)
289{
290 return _ecore_wl_disp_format;
291}
292
293EAPI void
294ecore_wl_flush(void)
295{
296 wl_display_flush(_ecore_wl_disp);
297}
298
299EAPI void
300ecore_wl_sync(void)
301{
302 wl_display_iterate(_ecore_wl_disp, WL_DISPLAY_READABLE);
303}
304
305EAPI void
306ecore_wl_pointer_xy_get(int *x, int *y)
307{
308 if (x) *x = _ecore_wl_screen_x;
309 if (y) *y = _ecore_wl_screen_y;
310}
311
312EAPI Ecore_Wl_Drag_Source *
313ecore_wl_drag_source_create(int hotspot_x, int hotspot_y, int offset_x, int offset_y, const char *mimetype, unsigned int timestamp, void *data)
314{
315 Ecore_Wl_Drag_Source *source;
316
317 if (!(source = calloc(1, sizeof(Ecore_Wl_Drag_Source)))) return NULL;
318
319 source->data_dev = _ecore_wl_data_dev;
320 source->hotspot_x = hotspot_x;
321 source->hotspot_y = hotspot_y;
322 source->offset_x = offset_x;
323 source->offset_y = offset_y;
324 source->mimetype = mimetype;
325 source->timestamp = timestamp;
326 source->data = data;
327
328 source->data_source =
329 wl_data_device_manager_create_data_source(_ecore_wl_data_manager);
330
331 wl_data_source_add_listener(source->data_source,
332 &_ecore_wl_source_listener, source);
333
334 wl_data_source_offer(source->data_source, source->mimetype);
335
336 /* NB: Do we add some default mimetypes here ?? */
337 /* text/plain, etc */
338
339 return source;
340}
341
342EAPI void
343ecore_wl_drag_start(Ecore_Wl_Drag_Source *source, struct wl_surface *surface, struct wl_buffer *buffer)
344{
345 source->buffer = buffer;
346
347 wl_data_device_start_drag(source->data_dev, source->data_source,
348 surface, source->timestamp);
349}
350
351EAPI void
352ecore_wl_drag_stop(void)
353{
354
355}
356
357/* local functions */
358static Eina_Bool
359_ecore_wl_shutdown(Eina_Bool close_display)
360{
361 LOGFN(__FILE__, __LINE__, __FUNCTION__);
362
363 if (--_ecore_wl_init_count != 0)
364 return _ecore_wl_init_count;
365
366 if (!_ecore_wl_disp) return _ecore_wl_init_count;
367
368 if (_ecore_wl_xkb) free(_ecore_wl_xkb);
369
370 if (_ecore_wl_fd_hdl) ecore_main_fd_handler_del(_ecore_wl_fd_hdl);
371 _ecore_wl_fd_hdl = NULL;
372
373 if (close_display)
374 {
375 if (_ecore_wl_data_dev) wl_data_device_destroy(_ecore_wl_data_dev);
376 if (_ecore_wl_input_dev) wl_input_device_destroy(_ecore_wl_input_dev);
377 if (_ecore_wl_data_manager)
378 wl_data_device_manager_destroy(_ecore_wl_data_manager);
379 if (_ecore_wl_shell) wl_shell_destroy(_ecore_wl_shell);
380 if (_ecore_wl_shm) wl_shm_destroy(_ecore_wl_shm);
381 if (_ecore_wl_comp) wl_compositor_destroy(_ecore_wl_comp);
382 if (_ecore_wl_disp)
383 {
384 wl_display_flush(_ecore_wl_disp);
385 wl_display_destroy(_ecore_wl_disp);
386 }
387 _ecore_wl_disp = NULL;
388 }
389
390 eina_log_domain_unregister(_ecore_wl_log_dom);
391 _ecore_wl_log_dom = -1;
392
393 ecore_event_shutdown();
394 ecore_shutdown();
395 eina_shutdown();
396
397 return _ecore_wl_init_count;
398}
399
400static void
401_ecore_wl_cb_disp_handle_global(struct wl_display *disp, uint32_t id, const char *interface, uint32_t version __UNUSED__, void *data __UNUSED__)
402{
403// LOGFN(__FILE__, __LINE__, __FUNCTION__);
404
405 if (disp != _ecore_wl_disp) return;
406 if (!strcmp(interface, "wl_compositor"))
407 {
408 _ecore_wl_comp =
409 wl_display_bind(_ecore_wl_disp, id, &wl_compositor_interface);
410 }
411 else if (!strcmp(interface, "wl_shm"))
412 {
413 _ecore_wl_shm =
414 wl_display_bind(_ecore_wl_disp, id, &wl_shm_interface);
415 }
416 else if (!strcmp(interface, "wl_output"))
417 {
418 _ecore_wl_output =
419 wl_display_bind(_ecore_wl_disp, id, &wl_output_interface);
420 wl_output_add_listener(_ecore_wl_output,
421 &_ecore_wl_output_listener, NULL);
422 }
423 else if (!strcmp(interface, "wl_shell"))
424 {
425 _ecore_wl_shell =
426 wl_display_bind(_ecore_wl_disp, id, &wl_shell_interface);
427 }
428 else if (!strcmp(interface, "wl_input_device"))
429 {
430 _ecore_wl_input_dev =
431 wl_display_bind(_ecore_wl_disp, id, &wl_input_device_interface);
432 wl_input_device_add_listener(_ecore_wl_input_dev,
433 &_ecore_wl_input_listener, NULL);
434 }
435 else if (!strcmp(interface, "wl_data_device_manager"))
436 {
437 _ecore_wl_data_manager =
438 wl_display_bind(_ecore_wl_disp, id,
439 &wl_data_device_manager_interface);
440 }
441
442 if ((_ecore_wl_input_dev) && (_ecore_wl_data_manager) && (!_ecore_wl_data_dev))
443 {
444 _ecore_wl_data_dev =
445 wl_data_device_manager_get_data_device(_ecore_wl_data_manager,
446 _ecore_wl_input_dev);
447 wl_data_device_add_listener(_ecore_wl_data_dev,
448 &_ecore_wl_data_listener, NULL);
449 }
450}
451
452static int
453_ecore_wl_cb_disp_event_mask_update(uint32_t mask, void *data __UNUSED__)
454{
455// LOGFN(__FILE__, __LINE__, __FUNCTION__);
456
457 _ecore_wl_disp_mask = mask;
458
459 return 0;
460}
461
462static void
463_ecore_wl_cb_disp_handle_geometry(void *data __UNUSED__, struct wl_output *output __UNUSED__, int x, int y, int pw __UNUSED__, int ph __UNUSED__, int subpixel __UNUSED__, const char *make __UNUSED__, const char *model __UNUSED__)
464{
465 _ecore_wl_screen.x = x;
466 _ecore_wl_screen.y = y;
467}
468
469static void
470_ecore_wl_cb_disp_handle_mode(void *data __UNUSED__, struct wl_output *output __UNUSED__, uint32_t flags, int w, int h, int refresh __UNUSED__)
471{
472 if (flags & WL_OUTPUT_MODE_CURRENT)
473 {
474 _ecore_wl_screen.w = w;
475 _ecore_wl_screen.h = h;
476 }
477}
478
479static Eina_Bool
480_ecore_wl_cb_fd_handle(void *data, Ecore_Fd_Handler *hdl __UNUSED__)
481{
482 struct wl_display *disp;
483
484// LOGFN(__FILE__, __LINE__, __FUNCTION__);
485
486 if (!(disp = data)) return ECORE_CALLBACK_RENEW;
487 if (disp != _ecore_wl_disp) return ECORE_CALLBACK_RENEW;
488
489 if (_ecore_wl_disp_mask & WL_DISPLAY_WRITABLE)
490 wl_display_iterate(_ecore_wl_disp, WL_DISPLAY_WRITABLE);
491
492 if (_ecore_wl_disp_mask & WL_DISPLAY_READABLE)
493 wl_display_iterate(_ecore_wl_disp, WL_DISPLAY_READABLE);
494
495 return ECORE_CALLBACK_RENEW;
496}
497
498static void
499_ecore_wl_cb_handle_motion(void *data __UNUSED__, struct wl_input_device *dev, uint32_t t, int32_t x, int32_t y, int32_t sx, int32_t sy)
500{
501 if (dev != _ecore_wl_input_dev) return;
502
503 _ecore_wl_screen_x = x;
504 _ecore_wl_screen_y = y;
505 _ecore_wl_surface_x = sx;
506 _ecore_wl_surface_y = sy;
507
508 _ecore_wl_mouse_move_send(t);
509}
510
511static void
512_ecore_wl_cb_handle_button(void *data __UNUSED__, struct wl_input_device *dev, uint32_t t, uint32_t btn, uint32_t state)
513{
514 if (dev != _ecore_wl_input_dev) return;
515
516 if ((btn >= BTN_SIDE) && (btn <= BTN_BACK))
517 {
518 Ecore_Event_Mouse_Wheel *ev;
519
520 if (!(ev = malloc(sizeof(Ecore_Event_Mouse_Wheel)))) return;
521
522 ev->timestamp = t;
523 ev->x = _ecore_wl_surface_x;
524 ev->y = _ecore_wl_surface_y;
525 ev->root.x = _ecore_wl_screen_x;
526 ev->root.y = _ecore_wl_screen_y;
527 ev->modifiers = _ecore_wl_input_modifiers;
528 ev->direction = 0;
529
530 if (_ecore_wl_input_surface)
531 {
532 unsigned int id = 0;
533
534 if ((id = (unsigned int)wl_surface_get_user_data(_ecore_wl_input_surface)))
535 {
536 ev->window = id;
537 ev->event_window = id;
538 }
539 }
540
541 /* NB: (FIXME) Currently Wayland provides no measure of how much the
542 * wheel has scrolled (read: delta of movement). So for now, we will
543 * just assume that the amount scrolled is 1 */
544 if ((btn == BTN_EXTRA) || (btn == BTN_FORWARD)) // down
545 ev->z = 1;
546 else if ((btn == BTN_SIDE) || (btn == BTN_BACK)) // up
547 ev->z = -1;
548
549 ecore_event_add(ECORE_EVENT_MOUSE_WHEEL, ev, NULL, NULL);
550 }
551 else
552 {
553 if (state)
554 {
555 _ecore_wl_input_button = btn;
556 _ecore_wl_mouse_down_send(_ecore_wl_input_surface, btn, t);
557 /* NB: Ideally, this is not the place to check for drags.
558 * IMO, drags should be handled by the client. EG: we raise the
559 * mouse_down to the client, and the client can 'request' a
560 * drag_start from ecore_wl */
561 if ((_ecore_wl_input_surface) || (_ecore_wl_touch_surface))
562 {
563 /* record item which was grabbed.
564 * create drag source. start drag */
565 }
566 }
567 else
568 {
569 if ((_ecore_wl_input_surface) || (_ecore_wl_touch_surface))
570 {
571 /* release grabbed button and finish drag */
572 if ((_ecore_wl_input_button) &&
573 (_ecore_wl_input_button == btn))
574 {
575
576 }
577 }
578 _ecore_wl_input_button = 0;
579 _ecore_wl_mouse_up_send(_ecore_wl_input_surface, btn, t);
580 }
581 }
582}
583
584static void
585_ecore_wl_cb_handle_key(void *data __UNUSED__, struct wl_input_device *dev, uint32_t t __UNUSED__, uint32_t key, uint32_t state)
586{
587 unsigned int keycode = 0;
588
589 if (dev != _ecore_wl_input_dev) return;
590
591 keycode = key + _ecore_wl_xkb->min_key_code;
592
593 if (state)
594 _ecore_wl_input_modifiers |= _ecore_wl_xkb->map->modmap[keycode];
595 else
596 _ecore_wl_input_modifiers &= ~_ecore_wl_xkb->map->modmap[keycode];
597}
598
599static void
600_ecore_wl_cb_handle_pointer_focus(void *data __UNUSED__, struct wl_input_device *dev, uint32_t t, struct wl_surface *surface, int32_t x, int32_t y, int32_t sx, int32_t sy)
601{
602 if (dev != _ecore_wl_input_dev) return;
603
604 /* NB: Wayland pointer focus is weird. It's not pointer focus in the normal
605 * sense...Wayland 'moving/resizing' (and maybe other stuff) has a habit
606 * of stealing the pointer focus and thus this cannot be used to control
607 * normal pointer focus. On mouse down, the 'active' surface is stolen
608 * by Wayland for the grab, so 'surface' here ends up being NULL. When a
609 * move or resize is finished, we get this event again, but this time
610 * with an active surface */
611 _ecore_wl_screen_x = x;
612 _ecore_wl_screen_y = y;
613 _ecore_wl_surface_x = sx;
614 _ecore_wl_surface_y = sy;
615
616 if ((_ecore_wl_input_surface) && (_ecore_wl_input_surface != surface))
617 {
618 if (!_ecore_wl_input_button)
619 _ecore_wl_mouse_out_send(_ecore_wl_input_surface, t);
620 }
621
622 if (surface)
623 {
624 if (_ecore_wl_input_button)
625 {
626 _ecore_wl_mouse_up_send(surface, _ecore_wl_input_button, t);
627 _ecore_wl_input_button = 0;
628 }
629 else
630 _ecore_wl_mouse_in_send(surface, t);
631 }
632}
633
634static void
635_ecore_wl_cb_handle_keyboard_focus(void *data __UNUSED__, struct wl_input_device *dev, uint32_t t, struct wl_surface *surface, struct wl_array *keys)
636{
637 unsigned int *keyend = 0, *i = 0;
638
639 if (dev != _ecore_wl_input_dev) return;
640
641 /* NB: Remove old keyboard focus */
642 if ((_ecore_wl_input_surface) && (_ecore_wl_input_surface != surface))
643 _ecore_wl_focus_out_send(_ecore_wl_input_surface, t);
644
645 _ecore_wl_input_surface = NULL;
646
647 keyend = keys->data + keys->size;
648 _ecore_wl_input_modifiers = 0;
649 for (i = keys->data; i < keyend; i++)
650 _ecore_wl_input_modifiers |= _ecore_wl_xkb->map->modmap[*i];
651
652 if (surface)
653 {
654 /* set new input surface */
655 _ecore_wl_input_surface = surface;
656
657 /* send mouse in to new surface */
658 /* _ecore_wl_mouse_in_send(surface, t); */
659
660 /* send focus to new surface */
661 _ecore_wl_focus_in_send(surface, t);
662 }
663}
664
665static void
666_ecore_wl_cb_handle_touch_down(void *data __UNUSED__, struct wl_input_device *dev __UNUSED__, uint32_t timestamp, struct wl_surface *surface, int32_t id, int32_t x, int32_t y)
667{
668 Ecore_Event_Mouse_Button *ev;
669
670 LOGFN(__FILE__, __LINE__, __FUNCTION__);
671
672 _ecore_wl_touch_surface = surface;
673 _ecore_wl_touch_x = x;
674 _ecore_wl_touch_y = y;
675
676 if (!(ev = malloc(sizeof(Ecore_Event_Mouse_Button)))) return;
677
678 ev->timestamp = timestamp;
679
680 /* NB: Need to verify using x,y for these */
681 ev->x = x;
682 ev->y = y;
683 ev->root.x = x;
684 ev->root.y = y;
685 ev->modifiers = 0;
686 ev->buttons = 0;
687 ev->same_screen = 1;
688
689 /* FIXME: Need to get these from Wayland somehow */
690 ev->double_click = 0;
691 ev->triple_click = 0;
692
693 ev->multi.device = id;
694 ev->multi.radius = 1;
695 ev->multi.radius_x = 1;
696 ev->multi.radius_y = 1;
697 ev->multi.pressure = 1.0;
698 ev->multi.angle = 0.0;
699 /* NB: Need to verify using x,y for these */
700 ev->multi.x = x;
701 ev->multi.y = y;
702 ev->multi.root.x = x;
703 ev->multi.root.y = y;
704
705 {
706 unsigned int id = 0;
707
708 if ((id = (unsigned int)wl_surface_get_user_data(surface)))
709 {
710 ev->window = id;
711 ev->event_window = id;
712 }
713 }
714
715 ecore_event_add(ECORE_EVENT_MOUSE_BUTTON_DOWN, ev, NULL, NULL);
716}
717
718static void
719_ecore_wl_cb_handle_touch_up(void *data __UNUSED__, struct wl_input_device *dev __UNUSED__, uint32_t timestamp, int32_t id)
720{
721 Ecore_Event_Mouse_Button *ev;
722
723 LOGFN(__FILE__, __LINE__, __FUNCTION__);
724
725 if (!(ev = malloc(sizeof(Ecore_Event_Mouse_Button)))) return;
726
727 ev->timestamp = timestamp;
728
729 /* TODO: Need to verify using x,y for these */
730 ev->x = _ecore_wl_touch_x;
731 ev->y = _ecore_wl_touch_y;
732 ev->root.x = _ecore_wl_touch_x;
733 ev->root.y = _ecore_wl_touch_y;
734 ev->modifiers = 0;
735 ev->buttons = 0;
736 ev->same_screen = 1;
737
738 /* FIXME: Need to get these from Wayland somehow */
739 ev->double_click = 0;
740 ev->triple_click = 0;
741
742 ev->multi.device = id;
743 ev->multi.radius = 1;
744 ev->multi.radius_x = 1;
745 ev->multi.radius_y = 1;
746 ev->multi.pressure = 1.0;
747 ev->multi.angle = 0.0;
748
749 /* TODO: Need to verify using x,y for these */
750 ev->multi.x = _ecore_wl_touch_x;
751 ev->multi.y = _ecore_wl_touch_y;
752 ev->multi.root.x = _ecore_wl_touch_x;
753 ev->multi.root.y = _ecore_wl_touch_y;
754
755 {
756 unsigned int id = 0;
757
758 if ((id = (unsigned int)wl_surface_get_user_data(_ecore_wl_touch_surface)))
759 {
760 ev->window = id;
761 ev->event_window = id;
762 }
763 }
764
765 _ecore_wl_touch_surface = NULL;
766
767 ecore_event_add(ECORE_EVENT_MOUSE_BUTTON_UP, ev, NULL, NULL);
768}
769
770static void
771_ecore_wl_cb_handle_touch_motion(void *data __UNUSED__, struct wl_input_device *dev __UNUSED__, uint32_t timestamp, int32_t id, int32_t x, int32_t y)
772{
773 Ecore_Event_Mouse_Move *ev;
774
775 LOGFN(__FILE__, __LINE__, __FUNCTION__);
776
777 if (!_ecore_wl_touch_surface) return;
778
779 if (!(ev = malloc(sizeof(Ecore_Event_Mouse_Move)))) return;
780
781 ev->timestamp = timestamp;
782 /* TODO: Need to verify using x,y for these */
783 ev->x = x;
784 ev->y = y;
785 ev->root.x = x;
786 ev->root.y = y;
787 ev->modifiers = 0; //_ecore_wl_input_modifiers;
788 ev->same_screen = 1;
789
790 ev->multi.device = id;
791 ev->multi.radius = 1;
792 ev->multi.radius_x = 1;
793 ev->multi.radius_y = 1;
794 ev->multi.pressure = 1.0;
795 ev->multi.angle = 0.0;
796
797 /* TODO: Need to verify using x,y for these */
798 ev->multi.x = x;
799 ev->multi.y = y;
800 ev->multi.root.x = x;
801 ev->multi.root.y = y;
802
803 {
804 unsigned int id = 0;
805
806 if ((id = (unsigned int)wl_surface_get_user_data(_ecore_wl_touch_surface)))
807 {
808 ev->window = id;
809 ev->event_window = id;
810 }
811 }
812
813 ecore_event_add(ECORE_EVENT_MOUSE_MOVE, ev, NULL, NULL);
814}
815
816static void
817_ecore_wl_cb_handle_touch_frame(void *data __UNUSED__, struct wl_input_device *dev __UNUSED__)
818{
819 LOGFN(__FILE__, __LINE__, __FUNCTION__);
820
821 /* FIXME: Need to get a device and actually test what happens here */
822}
823
824static void
825_ecore_wl_cb_handle_touch_cancel(void *data __UNUSED__, struct wl_input_device *dev __UNUSED__)
826{
827 LOGFN(__FILE__, __LINE__, __FUNCTION__);
828
829 /* FIXME: Need to get a device and actually test what happens here */
830 _ecore_wl_touch_surface = NULL;
831}
832
833static void
834_ecore_wl_cb_source_target(void *data, struct wl_data_source *source __UNUSED__, const char *mime_type __UNUSED__)
835{
836 Ecore_Wl_Drag_Source *s;
837
838 LOGFN(__FILE__, __LINE__, __FUNCTION__);
839
840 printf("Ecore_Wl Source Target\n");
841 if (!(s = data)) return;
842 printf("\tHave Drag Source\n");
843
844 /* FIXME: buffer here should really be the mouse cursor buffer */
845 wl_data_device_attach(s->data_dev, s->timestamp, s->buffer,
846 s->hotspot_x, s->hotspot_y);
847}
848
849static void
850_ecore_wl_cb_source_send(void *data, struct wl_data_source *source, const char *mime_type, int32_t fd)
851{
852 Ecore_Wl_Drag_Source *s;
853
854 LOGFN(__FILE__, __LINE__, __FUNCTION__);
855
856 printf("Ecore_Wl Source Send\n");
857 if (!(s = data)) return;
858 printf("\tHave Drag Source\n");
859
860 /* FIXME: write message to fd */
861
862 /* NB: Wayland really sucks in this regard. Why should selection stuff
863 * require an 'fd' ?? */
864}
865
866static void
867_ecore_wl_cb_source_cancelled(void *data, struct wl_data_source *source __UNUSED__)
868{
869 Ecore_Wl_Drag_Source *s;
870
871 LOGFN(__FILE__, __LINE__, __FUNCTION__);
872
873 /* The cancelled event usually means source is no longer in use by
874 * the drag (or selection). */
875
876 printf("Ecore_Wl Source Cancel\n");
877 if (!(s = data)) return;
878 printf("\tHave Drag Source\n");
879
880 /* FIXME: raise this to ecore_evas so the surface/buffer
881 * of the drag can be destroyed */
882
883 if (s->data_source) wl_data_source_destroy(s->data_source);
884 s->data_source = NULL;
885
886 free(s);
887}
888
889static void
890_ecore_wl_cb_source_offer(void *data, struct wl_data_offer *offer __UNUSED__, const char *type)
891{
892 Ecore_Wl_Dnd_Source *s;
893
894 if (!(s = data)) return;
895 eina_array_push(s->types, strdup(type));
896}
897
898static void
899_ecore_wl_cb_data_offer(void *data, struct wl_data_device *data_dev, uint32_t id)
900{
901 Ecore_Wl_Dnd_Source *source;
902
903 /* create a new 'data offer' structure and setup a listener for it */
904 if (!(source = calloc(1, sizeof(Ecore_Wl_Dnd_Source)))) return;
905
906 source->types = eina_array_new(1);
907 source->data = data;
908 source->refs = 1;
909
910 /* FIXME: This will need to change when Wayland has typesafe wrappers for this */
911 source->offer = (struct wl_data_offer *)
912 wl_proxy_create_for_id((struct wl_proxy *)data_dev,
913 id, &wl_data_offer_interface);
914
915 wl_data_device_set_user_data(data_dev, source);
916 wl_data_offer_add_listener(source->offer, &_ecore_wl_offer_listener, source);
917}
918
919static void
920_ecore_wl_cb_data_enter(void *data __UNUSED__, struct wl_data_device *data_dev, uint32_t timestamp, struct wl_surface *surface, int32_t x, int32_t y, struct wl_data_offer *offer)
921{
922 Ecore_Wl_Dnd_Source *source;
923
924 if (!(source = wl_data_device_get_user_data(data_dev))) return;
925
926 /* TODO: maybe set pointer focus here ?? */
927
928 source->timestamp = timestamp;
929}
930
931static void
932_ecore_wl_cb_data_leave(void *data __UNUSED__, struct wl_data_device *data_dev)
933{
934 Ecore_Wl_Dnd_Source *source;
935
936 if (!(source = wl_data_device_get_user_data(data_dev))) return;
937
938 /* destroy drag offer */
939 wl_data_offer_destroy(source->offer);
940
941 while (eina_array_count(source->types))
942 free(eina_array_pop(source->types));
943
944 eina_array_free(source->types);
945 free(source);
946
947 wl_data_device_set_user_data(data_dev, NULL);
948}
949
950static void
951_ecore_wl_cb_data_motion(void *data __UNUSED__, struct wl_data_device *data_dev, uint32_t timestamp, int32_t x, int32_t y)
952{
953 Ecore_Wl_Dnd_Source *source;
954
955 if (!(source = wl_data_device_get_user_data(data_dev))) return;
956 /* TODO: Here we should raise motion events for dragging */
957}
958
959static void
960_ecore_wl_cb_data_drop(void *data __UNUSED__, struct wl_data_device *data_dev)
961{
962 Ecore_Wl_Dnd_Source *source;
963
964 if (!(source = wl_data_device_get_user_data(data_dev))) return;
965
966 /* TODO: Raise event for drop */
967
968 wl_data_offer_accept(source->offer, source->timestamp, NULL);
969// eina_array_data_get(source->types, 0));
970}
971
972static void
973_ecore_wl_cb_data_selection(void *data, struct wl_data_device *data_dev, struct wl_data_offer *offer)
974{
975 Ecore_Wl_Dnd_Source *source;
976
977 printf("Ecore_Wl Data Selection\n");
978 if ((source = wl_data_device_get_user_data(data_dev)))
979 {
980 /* destroy old source */
981 wl_data_offer_destroy(source->offer);
982
983 while (eina_array_count(source->types))
984 free(eina_array_pop(source->types));
985
986 eina_array_free(source->types);
987 free(source);
988
989 wl_data_device_set_user_data(data_dev, NULL);
990 }
991}
992
993static void
994_ecore_wl_mouse_move_send(uint32_t timestamp)
995{
996 Ecore_Event_Mouse_Move *ev;
997
998// if (!_ecore_wl_input_surface) return;
999
1000 if (!(ev = malloc(sizeof(Ecore_Event_Mouse_Move)))) return;
1001
1002 ev->timestamp = timestamp;
1003 ev->x = _ecore_wl_surface_x;
1004 ev->y = _ecore_wl_surface_y;
1005 ev->root.x = _ecore_wl_screen_x;
1006 ev->root.y = _ecore_wl_screen_y;
1007 ev->modifiers = _ecore_wl_input_modifiers;
1008
1009 ev->multi.device = 0;
1010 ev->multi.radius = 1;
1011 ev->multi.radius_x = 1;
1012 ev->multi.radius_y = 1;
1013 ev->multi.pressure = 1.0;
1014 ev->multi.angle = 0.0;
1015 ev->multi.x = _ecore_wl_surface_x;
1016 ev->multi.y = _ecore_wl_surface_y;
1017 ev->multi.root.x = _ecore_wl_screen_x;
1018 ev->multi.root.y = _ecore_wl_screen_y;
1019
1020 {
1021 unsigned int id = 0;
1022
1023 if ((id = (unsigned int)wl_surface_get_user_data(_ecore_wl_input_surface)))
1024 {
1025 ev->window = id;
1026 ev->event_window = id;
1027 }
1028 }
1029
1030 ecore_event_add(ECORE_EVENT_MOUSE_MOVE, ev, NULL, NULL);
1031}
1032
1033static void
1034_ecore_wl_mouse_out_send(struct wl_surface *surface, uint32_t timestamp)
1035{
1036 Ecore_Wl_Event_Mouse_Out *ev;
1037
1038 if (!(ev = calloc(1, sizeof(Ecore_Wl_Event_Mouse_Out)))) return;
1039
1040 ev->x = _ecore_wl_surface_x;
1041 ev->y = _ecore_wl_surface_y;
1042 ev->root.x = _ecore_wl_screen_x;
1043 ev->root.y = _ecore_wl_screen_y;
1044 ev->modifiers = _ecore_wl_input_modifiers;
1045 ev->time = timestamp;
1046
1047 if (surface)
1048 {
1049 unsigned int id = 0;
1050
1051 if ((id = (unsigned int)wl_surface_get_user_data(surface)))
1052 ev->window = id;
1053 }
1054
1055 ecore_event_add(ECORE_WL_EVENT_MOUSE_OUT, ev, NULL, NULL);
1056}
1057
1058static void
1059_ecore_wl_mouse_in_send(struct wl_surface *surface, uint32_t timestamp)
1060{
1061 Ecore_Wl_Event_Mouse_In *ev;
1062
1063 if (!(ev = calloc(1, sizeof(Ecore_Wl_Event_Mouse_In)))) return;
1064
1065 ev->x = _ecore_wl_surface_x;
1066 ev->y = _ecore_wl_surface_y;
1067 ev->root.x = _ecore_wl_screen_x;
1068 ev->root.y = _ecore_wl_screen_y;
1069 ev->modifiers = _ecore_wl_input_modifiers;
1070 ev->time = timestamp;
1071
1072 if (surface)
1073 {
1074 unsigned int id = 0;
1075
1076 if ((id = (unsigned int)wl_surface_get_user_data(surface)))
1077 ev->window = id;
1078 }
1079
1080 ecore_event_add(ECORE_WL_EVENT_MOUSE_IN, ev, NULL, NULL);
1081}
1082
1083static void
1084_ecore_wl_mouse_up_send(struct wl_surface *surface, uint32_t button, uint32_t timestamp)
1085{
1086 Ecore_Event_Mouse_Button *ev;
1087
1088 if (!(ev = malloc(sizeof(Ecore_Event_Mouse_Button)))) return;
1089
1090 if (button == BTN_LEFT)
1091 ev->buttons = 1;
1092 else if (button == BTN_MIDDLE)
1093 ev->buttons = 2;
1094 else if (button == BTN_RIGHT)
1095 ev->buttons = 3;
1096
1097 ev->timestamp = timestamp;
1098 ev->x = _ecore_wl_surface_x;
1099 ev->y = _ecore_wl_surface_y;
1100 ev->root.x = _ecore_wl_screen_x;
1101 ev->root.y = _ecore_wl_screen_y;
1102 ev->modifiers = _ecore_wl_input_modifiers;
1103
1104 /* FIXME: Need to get these from Wayland somehow */
1105 ev->double_click = 0;
1106 ev->triple_click = 0;
1107
1108 ev->multi.device = 0;
1109 ev->multi.radius = 1;
1110 ev->multi.radius_x = 1;
1111 ev->multi.radius_y = 1;
1112 ev->multi.pressure = 1.0;
1113 ev->multi.angle = 0.0;
1114 ev->multi.x = _ecore_wl_surface_x;
1115 ev->multi.y = _ecore_wl_surface_y;
1116 ev->multi.root.x = _ecore_wl_screen_x;
1117 ev->multi.root.y = _ecore_wl_screen_y;
1118
1119 {
1120 unsigned int id = 0;
1121
1122 if ((id = (unsigned int)wl_surface_get_user_data(surface)))
1123 {
1124 ev->window = id;
1125 ev->event_window = id;
1126 }
1127 }
1128
1129 ecore_event_add(ECORE_EVENT_MOUSE_BUTTON_UP, ev, NULL, NULL);
1130}
1131
1132static void
1133_ecore_wl_mouse_down_send(struct wl_surface *surface, uint32_t button, uint32_t timestamp)
1134{
1135 Ecore_Event_Mouse_Button *ev;
1136
1137 if (!(ev = malloc(sizeof(Ecore_Event_Mouse_Button)))) return;
1138
1139 if (button == BTN_LEFT)
1140 ev->buttons = 1;
1141 else if (button == BTN_MIDDLE)
1142 ev->buttons = 2;
1143 else if (button == BTN_RIGHT)
1144 ev->buttons = 3;
1145
1146 ev->timestamp = timestamp;
1147 ev->x = _ecore_wl_surface_x;
1148 ev->y = _ecore_wl_surface_y;
1149 ev->root.x = _ecore_wl_screen_x;
1150 ev->root.y = _ecore_wl_screen_y;
1151 ev->modifiers = _ecore_wl_input_modifiers;
1152
1153 /* FIXME: Need to get these from Wayland somehow */
1154 ev->double_click = 0;
1155 ev->triple_click = 0;
1156
1157 ev->multi.device = 0;
1158 ev->multi.radius = 1;
1159 ev->multi.radius_x = 1;
1160 ev->multi.radius_y = 1;
1161 ev->multi.pressure = 1.0;
1162 ev->multi.angle = 0.0;
1163 ev->multi.x = _ecore_wl_surface_x;
1164 ev->multi.y = _ecore_wl_surface_y;
1165 ev->multi.root.x = _ecore_wl_screen_x;
1166 ev->multi.root.y = _ecore_wl_screen_y;
1167
1168 {
1169 unsigned int id = 0;
1170
1171 if ((id = (unsigned int)wl_surface_get_user_data(surface)))
1172 {
1173 ev->window = id;
1174 ev->event_window = id;
1175 }
1176 }
1177
1178 ecore_event_add(ECORE_EVENT_MOUSE_BUTTON_DOWN, ev, NULL, NULL);
1179}
1180
1181static void
1182_ecore_wl_focus_out_send(struct wl_surface *surface, uint32_t timestamp)
1183{
1184 Ecore_Wl_Event_Focus_Out *ev;
1185
1186 if (!(ev = calloc(1, sizeof(Ecore_Wl_Event_Focus_Out)))) return;
1187 ev->time = timestamp;
1188 if (surface)
1189 {
1190 unsigned int id = 0;
1191
1192 if ((id = (unsigned int)wl_surface_get_user_data(surface)))
1193 ev->window = id;
1194 }
1195 ecore_event_add(ECORE_WL_EVENT_FOCUS_OUT, ev, NULL, NULL);
1196}
1197
1198static void
1199_ecore_wl_focus_in_send(struct wl_surface *surface, uint32_t timestamp)
1200{
1201 Ecore_Wl_Event_Focus_In *ev;
1202
1203 if (!(ev = calloc(1, sizeof(Ecore_Wl_Event_Focus_In)))) return;
1204 ev->time = timestamp;
1205 if (surface)
1206 {
1207 unsigned int id = 0;
1208
1209 if ((id = (unsigned int)wl_surface_get_user_data(surface)))
1210 ev->window = id;
1211 }
1212 ecore_event_add(ECORE_WL_EVENT_FOCUS_IN, ev, NULL, NULL);
1213}
diff --git a/libraries/ecore/src/lib/ecore_wayland/ecore_wl_private.h b/libraries/ecore/src/lib/ecore_wayland/ecore_wl_private.h
new file mode 100644
index 0000000..eec5ffe
--- /dev/null
+++ b/libraries/ecore/src/lib/ecore_wayland/ecore_wl_private.h
@@ -0,0 +1,85 @@
1#ifndef _ECORE_WAYLAND_PRIVATE_H
2# define _ECORE_WAYLAND_PRIVATE_H
3
4# include <limits.h>
5
6//# define LOGFNS 1
7
8# ifdef LOGFNS
9# include <stdio.h>
10# define LOGFN(fl, ln, fn) printf("-ECORE-WL: %25s: %5i - %s\n", fl, ln, fn);
11# else
12# define LOGFN(fl, ln, fn)
13# endif
14
15extern int _ecore_wl_log_dom;
16
17# ifdef ECORE_WL_DEFAULT_LOG_COLOR
18# undef ECORE_WL_DEFAULT_LOG_COLOR
19# endif
20# define ECORE_WL_DEFAULT_LOG_COLOR EINA_COLOR_BLUE
21
22# ifdef ERR
23# undef ERR
24# endif
25# define ERR(...) EINA_LOG_DOM_ERR(_ecore_wl_log_dom, __VA_ARGS__)
26
27# ifdef DBG
28# undef DBG
29# endif
30# define DBG(...) EINA_LOG_DOM_DBG(_ecore_wl_log_dom, __VA_ARGS__)
31
32# ifdef INF
33# undef INF
34# endif
35# define INF(...) EINA_LOG_DOM_INFO(_ecore_wl_log_dom, __VA_ARGS__)
36
37# ifdef WRN
38# undef WRN
39# endif
40# define WRN(...) EINA_LOG_DOM_WARN(_ecore_wl_log_dom, __VA_ARGS__)
41
42# ifdef CRIT
43# undef CRIT
44# endif
45# define CRIT(...) EINA_LOG_DOM_CRIT(_ecore_wl_log_dom, __VA_ARGS__)
46
47typedef struct _Ecore_Wl_Dnd_Source
48{
49 struct wl_data_offer *offer;
50 int refs;
51
52 Eina_Array *types;
53
54 uint32_t timestamp;
55 void *data;
56} Ecore_Wl_Dnd_Source;
57
58typedef struct _Ecore_Wl_Dnd_Target
59{
60 /* NB: These are not the real fields for this structure,
61 * and it is Bound to change....soon */
62 struct wl_data_offer *offer;
63 int refs;
64
65 Eina_Array *types;
66
67 uint32_t timestamp;
68 void *data;
69} Ecore_Wl_Dnd_Target;
70
71struct _Ecore_Wl_Drag_Source
72{
73 struct wl_data_device *data_dev;
74 struct wl_buffer *buffer;
75
76 int32_t hotspot_x, hotspot_y;
77 int32_t offset_x, offset_y;
78 const char *mimetype;
79 uint32_t timestamp;
80 void *data;
81
82 struct wl_data_source *data_source;
83};
84
85#endif
diff --git a/libraries/ecore/src/lib/ecore_win32/Ecore_Win32.h b/libraries/ecore/src/lib/ecore_win32/Ecore_Win32.h
index bdfb1c8..95e3749 100644
--- a/libraries/ecore/src/lib/ecore_win32/Ecore_Win32.h
+++ b/libraries/ecore/src/lib/ecore_win32/Ecore_Win32.h
@@ -221,7 +221,7 @@ struct _Ecore_Win32_Event_Mouse_In
221 Ecore_Win32_Window *window; /**< The window that received the event */ 221 Ecore_Win32_Window *window; /**< The window that received the event */
222 int x; /**< The x coordinate where the mouse leaved */ 222 int x; /**< The x coordinate where the mouse leaved */
223 int y; /**< The y coordinate where the mouse entered */ 223 int y; /**< The y coordinate where the mouse entered */
224 long time; /**< The time the event occurred */ 224 unsigned long timestamp; /**< The time the event occurred */
225}; 225};
226 226
227/** 227/**
@@ -233,7 +233,7 @@ struct _Ecore_Win32_Event_Mouse_Out
233 Ecore_Win32_Window *window; /**< The window that received the event */ 233 Ecore_Win32_Window *window; /**< The window that received the event */
234 int x; /**< The x coordinate where the mouse leaved */ 234 int x; /**< The x coordinate where the mouse leaved */
235 int y; /**< The y coordinate where the mouse leaved */ 235 int y; /**< The y coordinate where the mouse leaved */
236 long time; /**< The time the event occurred */ 236 unsigned long timestamp; /**< The time the event occurred */
237}; 237};
238 238
239/** 239/**
@@ -243,7 +243,7 @@ struct _Ecore_Win32_Event_Mouse_Out
243struct _Ecore_Win32_Event_Window_Focus_In 243struct _Ecore_Win32_Event_Window_Focus_In
244{ 244{
245 Ecore_Win32_Window *window; /**< The window that received the event */ 245 Ecore_Win32_Window *window; /**< The window that received the event */
246 long long time; /**< The time the event occurred */ 246 unsigned long timestamp; /**< The time the event occurred */
247}; 247};
248 248
249/** 249/**
@@ -253,7 +253,7 @@ struct _Ecore_Win32_Event_Window_Focus_In
253struct _Ecore_Win32_Event_Window_Focus_Out 253struct _Ecore_Win32_Event_Window_Focus_Out
254{ 254{
255 Ecore_Win32_Window *window; /**< The window that received the event */ 255 Ecore_Win32_Window *window; /**< The window that received the event */
256 long time; /**< The time the event occurred */ 256 unsigned long timestamp; /**< The time the event occurred */
257}; 257};
258 258
259/** 259/**
@@ -267,7 +267,7 @@ struct _Ecore_Win32_Event_Window_Damage
267 int y; /**< The y coordinate of the top left corner of the damaged region */ 267 int y; /**< The y coordinate of the top left corner of the damaged region */
268 int width; /**< The width of the damaged region */ 268 int width; /**< The width of the damaged region */
269 int height; /**< The time the event occurred */ 269 int height; /**< The time the event occurred */
270 long time; /**< The time the event occurred */ 270 unsigned long timestamp; /**< The time the event occurred */
271}; 271};
272 272
273/** 273/**
@@ -277,7 +277,7 @@ struct _Ecore_Win32_Event_Window_Damage
277struct _Ecore_Win32_Event_Window_Create 277struct _Ecore_Win32_Event_Window_Create
278{ 278{
279 Ecore_Win32_Window *window; /**< The window that received the event */ 279 Ecore_Win32_Window *window; /**< The window that received the event */
280 long time; /**< The time the event occurred */ 280 unsigned long timestamp; /**< The time the event occurred */
281}; 281};
282 282
283/** 283/**
@@ -287,7 +287,7 @@ struct _Ecore_Win32_Event_Window_Create
287struct _Ecore_Win32_Event_Window_Destroy 287struct _Ecore_Win32_Event_Window_Destroy
288{ 288{
289 Ecore_Win32_Window *window; /**< The window that received the event */ 289 Ecore_Win32_Window *window; /**< The window that received the event */
290 long time; /**< The time the event occurred */ 290 unsigned long timestamp; /**< The time the event occurred */
291}; 291};
292 292
293/** 293/**
@@ -297,7 +297,7 @@ struct _Ecore_Win32_Event_Window_Destroy
297struct _Ecore_Win32_Event_Window_Hide 297struct _Ecore_Win32_Event_Window_Hide
298{ 298{
299 Ecore_Win32_Window *window; /**< The window that received the event */ 299 Ecore_Win32_Window *window; /**< The window that received the event */
300 long time; /**< The time the event occurred */ 300 unsigned long timestamp; /**< The time the event occurred */
301}; 301};
302 302
303/** 303/**
@@ -307,7 +307,7 @@ struct _Ecore_Win32_Event_Window_Hide
307struct _Ecore_Win32_Event_Window_Show 307struct _Ecore_Win32_Event_Window_Show
308{ 308{
309 Ecore_Win32_Window *window; /**< The window that received the event */ 309 Ecore_Win32_Window *window; /**< The window that received the event */
310 long time; /**< The time the event occurred */ 310 unsigned long timestamp; /**< The time the event occurred */
311}; 311};
312 312
313/** 313/**
@@ -322,7 +322,7 @@ struct _Ecore_Win32_Event_Window_Configure
322 int y; /**< The new y coordinate of the top left corner */ 322 int y; /**< The new y coordinate of the top left corner */
323 int width; /**< The new width */ 323 int width; /**< The new width */
324 int height; /**< The new height */ 324 int height; /**< The new height */
325 long time; /**< The time the event occurred */ 325 unsigned long timestamp; /**< The time the event occurred */
326}; 326};
327 327
328/** 328/**
@@ -334,7 +334,7 @@ struct _Ecore_Win32_Event_Window_Resize
334 Ecore_Win32_Window *window; /**< The window that received the event */ 334 Ecore_Win32_Window *window; /**< The window that received the event */
335 int width; /**< The new width */ 335 int width; /**< The new width */
336 int height; /**< The new height */ 336 int height; /**< The new height */
337 long time; /**< The time the event occurred */ 337 unsigned long timestamp; /**< The time the event occurred */
338}; 338};
339 339
340/** 340/**
@@ -344,7 +344,7 @@ struct _Ecore_Win32_Event_Window_Resize
344struct _Ecore_Win32_Event_Window_Delete_Request 344struct _Ecore_Win32_Event_Window_Delete_Request
345{ 345{
346 Ecore_Win32_Window *window; /**< The window that received the event */ 346 Ecore_Win32_Window *window; /**< The window that received the event */
347 long time; /**< The time the event occurred */ 347 unsigned long timestamp; /**< The time the event occurred */
348}; 348};
349 349
350/** 350/**
@@ -369,12 +369,12 @@ EAPI extern int ECORE_WIN32_EVENT_WINDOW_DELETE_REQUEST; /**< Ecore_Event for th
369 369
370/* Core */ 370/* Core */
371 371
372EAPI int ecore_win32_init(); 372EAPI int ecore_win32_init();
373EAPI int ecore_win32_shutdown(); 373EAPI int ecore_win32_shutdown();
374EAPI int ecore_win32_screen_depth_get(); 374EAPI int ecore_win32_screen_depth_get();
375EAPI void ecore_win32_double_click_time_set(double t); 375EAPI void ecore_win32_double_click_time_set(double t);
376EAPI double ecore_win32_double_click_time_get(void); 376EAPI double ecore_win32_double_click_time_get(void);
377EAPI long ecore_win32_current_time_get(void); 377EAPI unsigned long ecore_win32_current_time_get(void);
378 378
379/* Window */ 379/* Window */
380 380
diff --git a/libraries/ecore/src/lib/ecore_win32/Makefile.in b/libraries/ecore/src/lib/ecore_win32/Makefile.in
index 4e4f363..9994ee7 100644
--- a/libraries/ecore/src/lib/ecore_win32/Makefile.in
+++ b/libraries/ecore/src/lib/ecore_win32/Makefile.in
@@ -268,10 +268,10 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
268PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 268PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
269PIXMAN_LIBS = @PIXMAN_LIBS@ 269PIXMAN_LIBS = @PIXMAN_LIBS@
270PKG_CONFIG = @PKG_CONFIG@ 270PKG_CONFIG = @PKG_CONFIG@
271PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
272PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
273POSUB = @POSUB@ 271POSUB = @POSUB@
274RANLIB = @RANLIB@ 272RANLIB = @RANLIB@
273SCIM_CFLAGS = @SCIM_CFLAGS@
274SCIM_LIBS = @SCIM_LIBS@
275SDL_CFLAGS = @SDL_CFLAGS@ 275SDL_CFLAGS = @SDL_CFLAGS@
276SDL_CONFIG = @SDL_CONFIG@ 276SDL_CONFIG = @SDL_CONFIG@
277SDL_LIBS = @SDL_LIBS@ 277SDL_LIBS = @SDL_LIBS@
@@ -290,6 +290,10 @@ TSLIB_LIBS = @TSLIB_LIBS@
290USE_NLS = @USE_NLS@ 290USE_NLS = @USE_NLS@
291VERSION = @VERSION@ 291VERSION = @VERSION@
292VMAJ = @VMAJ@ 292VMAJ = @VMAJ@
293WAYLAND_CFLAGS = @WAYLAND_CFLAGS@
294WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
295WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
296WAYLAND_LIBS = @WAYLAND_LIBS@
293WIN32_CFLAGS = @WIN32_CFLAGS@ 297WIN32_CFLAGS = @WIN32_CFLAGS@
294WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 298WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
295WIN32_LIBS = @WIN32_LIBS@ 299WIN32_LIBS = @WIN32_LIBS@
@@ -403,6 +407,8 @@ ecore_imf_cflags = @ecore_imf_cflags@
403ecore_imf_evas_cflags = @ecore_imf_evas_cflags@ 407ecore_imf_evas_cflags = @ecore_imf_evas_cflags@
404ecore_imf_evas_libs = @ecore_imf_evas_libs@ 408ecore_imf_evas_libs = @ecore_imf_evas_libs@
405ecore_imf_libs = @ecore_imf_libs@ 409ecore_imf_libs = @ecore_imf_libs@
410ecore_imf_scim_cflags = @ecore_imf_scim_cflags@
411ecore_imf_scim_libs = @ecore_imf_scim_libs@
406ecore_imf_xim_cflags = @ecore_imf_xim_cflags@ 412ecore_imf_xim_cflags = @ecore_imf_xim_cflags@
407ecore_imf_xim_libs = @ecore_imf_xim_libs@ 413ecore_imf_xim_libs = @ecore_imf_xim_libs@
408ecore_input_cflags = @ecore_input_cflags@ 414ecore_input_cflags = @ecore_input_cflags@
@@ -415,6 +421,8 @@ ecore_psl1ght_cflags = @ecore_psl1ght_cflags@
415ecore_psl1ght_libs = @ecore_psl1ght_libs@ 421ecore_psl1ght_libs = @ecore_psl1ght_libs@
416ecore_sdl_cflags = @ecore_sdl_cflags@ 422ecore_sdl_cflags = @ecore_sdl_cflags@
417ecore_sdl_libs = @ecore_sdl_libs@ 423ecore_sdl_libs = @ecore_sdl_libs@
424ecore_wayland_cflags = @ecore_wayland_cflags@
425ecore_wayland_libs = @ecore_wayland_libs@
418ecore_win32_cflags = @ecore_win32_cflags@ 426ecore_win32_cflags = @ecore_win32_cflags@
419ecore_win32_libs = @ecore_win32_libs@ 427ecore_win32_libs = @ecore_win32_libs@
420ecore_wince_cflags = @ecore_wince_cflags@ 428ecore_wince_cflags = @ecore_wince_cflags@
@@ -459,12 +467,14 @@ requirements_ecore_fb = @requirements_ecore_fb@
459requirements_ecore_file = @requirements_ecore_file@ 467requirements_ecore_file = @requirements_ecore_file@
460requirements_ecore_imf = @requirements_ecore_imf@ 468requirements_ecore_imf = @requirements_ecore_imf@
461requirements_ecore_imf_evas = @requirements_ecore_imf_evas@ 469requirements_ecore_imf_evas = @requirements_ecore_imf_evas@
470requirements_ecore_imf_scim = @requirements_ecore_imf_scim@
462requirements_ecore_imf_xim = @requirements_ecore_imf_xim@ 471requirements_ecore_imf_xim = @requirements_ecore_imf_xim@
463requirements_ecore_input = @requirements_ecore_input@ 472requirements_ecore_input = @requirements_ecore_input@
464requirements_ecore_input_evas = @requirements_ecore_input_evas@ 473requirements_ecore_input_evas = @requirements_ecore_input_evas@
465requirements_ecore_ipc = @requirements_ecore_ipc@ 474requirements_ecore_ipc = @requirements_ecore_ipc@
466requirements_ecore_psl1ght = @requirements_ecore_psl1ght@ 475requirements_ecore_psl1ght = @requirements_ecore_psl1ght@
467requirements_ecore_sdl = @requirements_ecore_sdl@ 476requirements_ecore_sdl = @requirements_ecore_sdl@
477requirements_ecore_wayland = @requirements_ecore_wayland@
468requirements_ecore_win32 = @requirements_ecore_win32@ 478requirements_ecore_win32 = @requirements_ecore_win32@
469requirements_ecore_wince = @requirements_ecore_wince@ 479requirements_ecore_wince = @requirements_ecore_wince@
470requirements_ecore_x = @requirements_ecore_x@ 480requirements_ecore_x = @requirements_ecore_x@
diff --git a/libraries/ecore/src/lib/ecore_win32/ecore_win32.c b/libraries/ecore/src/lib/ecore_win32/ecore_win32.c
index 19ca3ed..b571d74 100644
--- a/libraries/ecore/src/lib/ecore_win32/ecore_win32.c
+++ b/libraries/ecore/src/lib/ecore_win32/ecore_win32.c
@@ -73,18 +73,44 @@ _ecore_win32_window_procedure(HWND window,
73 data->message = message; 73 data->message = message;
74 data->window_param = window_param; 74 data->window_param = window_param;
75 data->data_param = data_param; 75 data->data_param = data_param;
76 data->time = GetMessageTime(); 76 data->timestamp = GetMessageTime();
77 coord = GetMessagePos(); 77 coord = GetMessagePos();
78 point = MAKEPOINTS(coord); 78 point = MAKEPOINTS(coord);
79 data->x = point.x; 79 data->x = point.x;
80 data->y = point.y; 80 data->y = point.y;
81 data->discard_ctrl = EINA_FALSE;
81 82
82 switch (data->message) 83 switch (data->message)
83 { 84 {
84 /* Keyboard input notifications */ 85 /* Keyboard input notifications */
85 case WM_KEYDOWN: 86 case WM_KEYDOWN:
86 case WM_SYSKEYDOWN: 87 case WM_SYSKEYDOWN:
87 INF("keydown message"); 88 if ((data->message == WM_KEYDOWN) &&
89 (data->window_param == VK_CONTROL) &&
90 ((HIWORD(data->data_param) & KF_EXTENDED) == 0))
91 {
92 /* Ctrl left key is pressed */
93 BOOL res;
94 MSG next_msg;
95
96 /*
97 * we check if the next message
98 * - is a WM_KEYDOWN
99 * - has the same timestamp than the Ctrl one
100 * - is the key press of the right Alt key
101 */
102 res = PeekMessage(&next_msg, data->window,
103 WM_KEYDOWN, WM_KEYDOWN,
104 PM_NOREMOVE);
105 if (res &&
106 (next_msg.wParam == VK_MENU) &&
107 (next_msg.time == data->timestamp) &&
108 (HIWORD(next_msg.lParam) & KF_EXTENDED))
109 {
110 INF("discard left Ctrl key press (sent by AltGr key press)");
111 data->discard_ctrl = EINA_TRUE;
112 }
113 }
88 _ecore_win32_event_handle_key_press(data, 1); 114 _ecore_win32_event_handle_key_press(data, 1);
89 return 0; 115 return 0;
90 case WM_CHAR: 116 case WM_CHAR:
@@ -95,6 +121,33 @@ _ecore_win32_window_procedure(HWND window,
95 case WM_KEYUP: 121 case WM_KEYUP:
96 case WM_SYSKEYUP: 122 case WM_SYSKEYUP:
97 INF("keyup message"); 123 INF("keyup message");
124 if ((data->window_param == VK_CONTROL) &&
125 ((HIWORD(data->data_param) & KF_EXTENDED) == 0))
126 {
127 /* Ctrl left key is pressed */
128 BOOL res;
129 MSG next_msg;
130
131 /*
132 * we check if the next message
133 * - is a WM_KEYUP or WM_SYSKEYUP
134 * - has the same timestamp than the Ctrl one
135 * - is the key release of the right Alt key
136 */
137 res = PeekMessage(&next_msg, data->window,
138 WM_KEYUP, WM_SYSKEYUP,
139 PM_NOREMOVE);
140 if (res &&
141 ((next_msg.message == WM_KEYUP) ||
142 (next_msg.message == WM_SYSKEYUP)) &&
143 (next_msg.wParam == VK_MENU) &&
144 (next_msg.time == data->timestamp) &&
145 (HIWORD(next_msg.lParam) & KF_EXTENDED))
146 {
147 INF("discard left Ctrl key release (sent by AltGr key release)");
148 data->discard_ctrl = EINA_TRUE;
149 }
150 }
98 _ecore_win32_event_handle_key_release(data); 151 _ecore_win32_event_handle_key_release(data);
99 return 0; 152 return 0;
100 case WM_SETFOCUS: 153 case WM_SETFOCUS:
@@ -492,7 +545,7 @@ _ecore_win32_window_procedure(HWND window,
492 545
493HINSTANCE _ecore_win32_instance = NULL; 546HINSTANCE _ecore_win32_instance = NULL;
494double _ecore_win32_double_click_time = 0.25; 547double _ecore_win32_double_click_time = 0.25;
495long _ecore_win32_event_last_time = 0; 548unsigned long _ecore_win32_event_last_time = 0;
496Ecore_Win32_Window *_ecore_win32_event_last_window = NULL; 549Ecore_Win32_Window *_ecore_win32_event_last_window = NULL;
497int _ecore_win32_log_dom_global = -1; 550int _ecore_win32_log_dom_global = -1;
498 551
@@ -777,7 +830,7 @@ ecore_win32_double_click_time_get(void)
777 * 830 *
778 * This function returns the last event time. 831 * This function returns the last event time.
779 */ 832 */
780EAPI long 833EAPI unsigned long
781ecore_win32_current_time_get(void) 834ecore_win32_current_time_get(void)
782{ 835{
783 return _ecore_win32_event_last_time; 836 return _ecore_win32_event_last_time;
diff --git a/libraries/ecore/src/lib/ecore_win32/ecore_win32_event.c b/libraries/ecore/src/lib/ecore_win32/ecore_win32_event.c
index 63356d3..388776c 100644
--- a/libraries/ecore/src/lib/ecore_win32/ecore_win32_event.c
+++ b/libraries/ecore/src/lib/ecore_win32/ecore_win32_event.c
@@ -45,18 +45,18 @@ static void _ecore_win32_event_free_key_down(void *data,
45static void _ecore_win32_event_free_key_up(void *data, 45static void _ecore_win32_event_free_key_up(void *data,
46 void *ev); 46 void *ev);
47 47
48static int _ecore_win32_event_keystroke_get(int key, 48static int _ecore_win32_event_keystroke_get(Ecore_Win32_Callback_Data *msg,
49 int is_extended, 49 Eina_Bool is_down,
50 Eina_Bool is_down, 50 char **keyname,
51 char **keyname, 51 char **keysymbol,
52 char **keysymbol, 52 char **keycompose,
53 char **keycompose, 53 unsigned int *modifiers);
54 unsigned int *modifiers);
55 54
56static int _ecore_win32_event_char_get(int key, 55static int _ecore_win32_event_char_get(int key,
57 char **keyname, 56 char **keyname,
58 char **keysymbol, 57 char **keysymbol,
59 char **keycompose); 58 char **keycompose,
59 unsigned int *modifiers);
60 60
61 61
62/***** Global functions definitions *****/ 62/***** Global functions definitions *****/
@@ -74,8 +74,7 @@ _ecore_win32_event_handle_key_press(Ecore_Win32_Callback_Data *msg,
74 74
75 if (is_keystroke) 75 if (is_keystroke)
76 { 76 {
77 if (!_ecore_win32_event_keystroke_get(msg->window_param, 77 if (!_ecore_win32_event_keystroke_get(msg,
78 msg->data_param & 0x01000000,
79 EINA_TRUE, 78 EINA_TRUE,
80 (char **)&e->keyname, 79 (char **)&e->keyname,
81 (char **)&e->key, 80 (char **)&e->key,
@@ -91,7 +90,8 @@ _ecore_win32_event_handle_key_press(Ecore_Win32_Callback_Data *msg,
91 if (!_ecore_win32_event_char_get(LOWORD(msg->window_param), 90 if (!_ecore_win32_event_char_get(LOWORD(msg->window_param),
92 (char **)&e->keyname, 91 (char **)&e->keyname,
93 (char **)&e->key, 92 (char **)&e->key,
94 (char **)&e->string)) 93 (char **)&e->string,
94 &e->modifiers))
95 { 95 {
96 free(e); 96 free(e);
97 return; 97 return;
@@ -105,7 +105,7 @@ _ecore_win32_event_handle_key_press(Ecore_Win32_Callback_Data *msg,
105 return; 105 return;
106 } 106 }
107 e->event_window = e->window; 107 e->event_window = e->window;
108 e->timestamp = msg->time; 108 e->timestamp = msg->timestamp;
109 109
110 _ecore_win32_event_last_time = e->timestamp; 110 _ecore_win32_event_last_time = e->timestamp;
111 111
@@ -122,18 +122,19 @@ _ecore_win32_event_handle_key_release(Ecore_Win32_Callback_Data *msg)
122 e = (Ecore_Event_Key *)calloc(1, sizeof(Ecore_Event_Key)); 122 e = (Ecore_Event_Key *)calloc(1, sizeof(Ecore_Event_Key));
123 if (!e) return; 123 if (!e) return;
124 124
125 if (!_ecore_win32_event_keystroke_get(LOWORD(msg->window_param), 125 if (!_ecore_win32_event_keystroke_get(msg,
126 msg->data_param & 0x01000000,
127 EINA_FALSE, 126 EINA_FALSE,
128 (char **)&e->keyname, 127 (char **)&e->keyname,
129 (char **)&e->key, 128 (char **)&e->key,
130 (char **)&e->string, 129 (char **)&e->string,
131 &e->modifiers)) 130 &e->modifiers))
132 { 131 {
133 if (!_ecore_win32_event_char_get(LOWORD(msg->window_param), 132 if (msg->discard_ctrl ||
133 !_ecore_win32_event_char_get(LOWORD(msg->window_param),
134 (char **)&e->keyname, 134 (char **)&e->keyname,
135 (char **)&e->key, 135 (char **)&e->key,
136 (char **)&e->string)) 136 (char **)&e->string,
137 &e->modifiers))
137 { 138 {
138 free(e); 139 free(e);
139 return; 140 return;
@@ -147,7 +148,7 @@ _ecore_win32_event_handle_key_release(Ecore_Win32_Callback_Data *msg)
147 return; 148 return;
148 } 149 }
149 e->event_window = e->window; 150 e->event_window = e->window;
150 e->timestamp = msg->time; 151 e->timestamp = msg->timestamp;
151 152
152 _ecore_win32_event_last_time = e->timestamp; 153 _ecore_win32_event_last_time = e->timestamp;
153 154
@@ -178,7 +179,7 @@ _ecore_win32_event_handle_button_press(Ecore_Win32_Callback_Data *msg,
178 e->z = GET_WHEEL_DELTA_WPARAM(msg->window_param) > 0 ? -1 : 1; 179 e->z = GET_WHEEL_DELTA_WPARAM(msg->window_param) > 0 ? -1 : 1;
179 e->x = GET_X_LPARAM(msg->data_param); 180 e->x = GET_X_LPARAM(msg->data_param);
180 e->y = GET_Y_LPARAM(msg->data_param); 181 e->y = GET_Y_LPARAM(msg->data_param);
181 e->timestamp = msg->time; 182 e->timestamp = msg->timestamp;
182 183
183 _ecore_win32_event_last_time = e->timestamp; 184 _ecore_win32_event_last_time = e->timestamp;
184 _ecore_win32_event_last_window = (Ecore_Win32_Window *)e->window; 185 _ecore_win32_event_last_window = (Ecore_Win32_Window *)e->window;
@@ -197,7 +198,7 @@ _ecore_win32_event_handle_button_press(Ecore_Win32_Callback_Data *msg,
197 e->event_window = e->window; 198 e->event_window = e->window;
198 e->x = GET_X_LPARAM(msg->data_param); 199 e->x = GET_X_LPARAM(msg->data_param);
199 e->y = GET_Y_LPARAM(msg->data_param); 200 e->y = GET_Y_LPARAM(msg->data_param);
200 e->timestamp = msg->time; 201 e->timestamp = msg->timestamp;
201 202
202 _ecore_win32_event_last_time = e->timestamp; 203 _ecore_win32_event_last_time = e->timestamp;
203 _ecore_win32_event_last_window = (Ecore_Win32_Window *)e->window; 204 _ecore_win32_event_last_window = (Ecore_Win32_Window *)e->window;
@@ -224,7 +225,7 @@ _ecore_win32_event_handle_button_press(Ecore_Win32_Callback_Data *msg,
224 e->buttons = button; 225 e->buttons = button;
225 e->x = GET_X_LPARAM(msg->data_param); 226 e->x = GET_X_LPARAM(msg->data_param);
226 e->y = GET_Y_LPARAM(msg->data_param); 227 e->y = GET_Y_LPARAM(msg->data_param);
227 e->timestamp = msg->time; 228 e->timestamp = msg->timestamp;
228 229
229 if (((e->timestamp - _ecore_win32_mouse_down_last_time) <= (unsigned long)(1000 * _ecore_win32_double_click_time)) && 230 if (((e->timestamp - _ecore_win32_mouse_down_last_time) <= (unsigned long)(1000 * _ecore_win32_double_click_time)) &&
230 (e->window == (Ecore_Window)_ecore_win32_mouse_down_last_window)) 231 (e->window == (Ecore_Window)_ecore_win32_mouse_down_last_window))
@@ -279,7 +280,7 @@ _ecore_win32_event_handle_button_release(Ecore_Win32_Callback_Data *msg,
279 e->event_window = e->window; 280 e->event_window = e->window;
280 e->x = GET_X_LPARAM(msg->data_param); 281 e->x = GET_X_LPARAM(msg->data_param);
281 e->y = GET_Y_LPARAM(msg->data_param); 282 e->y = GET_Y_LPARAM(msg->data_param);
282 e->timestamp = msg->time; 283 e->timestamp = msg->timestamp;
283 284
284 _ecore_win32_event_last_time = e->timestamp; 285 _ecore_win32_event_last_time = e->timestamp;
285 _ecore_win32_event_last_window = (Ecore_Win32_Window *)e->window; 286 _ecore_win32_event_last_window = (Ecore_Win32_Window *)e->window;
@@ -298,7 +299,7 @@ _ecore_win32_event_handle_button_release(Ecore_Win32_Callback_Data *msg,
298 e->buttons = button; 299 e->buttons = button;
299 e->x = GET_X_LPARAM(msg->data_param); 300 e->x = GET_X_LPARAM(msg->data_param);
300 e->y = GET_Y_LPARAM(msg->data_param); 301 e->y = GET_Y_LPARAM(msg->data_param);
301 e->timestamp = msg->time; 302 e->timestamp = msg->timestamp;
302 303
303 _ecore_win32_mouse_up_count++; 304 _ecore_win32_mouse_up_count++;
304 305
@@ -334,7 +335,7 @@ _ecore_win32_event_handle_motion_notify(Ecore_Win32_Callback_Data *msg)
334 e->event_window = e->window; 335 e->event_window = e->window;
335 e->x = GET_X_LPARAM(msg->data_param); 336 e->x = GET_X_LPARAM(msg->data_param);
336 e->y = GET_Y_LPARAM(msg->data_param); 337 e->y = GET_Y_LPARAM(msg->data_param);
337 e->timestamp = msg->time; 338 e->timestamp = msg->timestamp;
338 339
339 ecore_event_add(ECORE_EVENT_MOUSE_MOVE, e, NULL, NULL); 340 ecore_event_add(ECORE_EVENT_MOUSE_MOVE, e, NULL, NULL);
340} 341}
@@ -354,7 +355,7 @@ _ecore_win32_event_handle_enter_notify(Ecore_Win32_Callback_Data *msg)
354 e->event_window = e->window; 355 e->event_window = e->window;
355 e->x = msg->x; 356 e->x = msg->x;
356 e->y = msg->y; 357 e->y = msg->y;
357 e->timestamp = msg->time; 358 e->timestamp = msg->timestamp;
358 359
359 _ecore_win32_event_last_time = e->timestamp; 360 _ecore_win32_event_last_time = e->timestamp;
360 _ecore_win32_event_last_window = (Ecore_Win32_Window *)e->window; 361 _ecore_win32_event_last_window = (Ecore_Win32_Window *)e->window;
@@ -371,9 +372,9 @@ _ecore_win32_event_handle_enter_notify(Ecore_Win32_Callback_Data *msg)
371 e->window = (void *)GetWindowLongPtr(msg->window, GWLP_USERDATA); 372 e->window = (void *)GetWindowLongPtr(msg->window, GWLP_USERDATA);
372 e->x = msg->x; 373 e->x = msg->x;
373 e->y = msg->y; 374 e->y = msg->y;
374 e->time = msg->time ; 375 e->timestamp = msg->timestamp ;
375 376
376 _ecore_win32_event_last_time = e->time; 377 _ecore_win32_event_last_time = e->timestamp;
377 378
378 ecore_event_add(ECORE_WIN32_EVENT_MOUSE_IN, e, NULL, NULL); 379 ecore_event_add(ECORE_WIN32_EVENT_MOUSE_IN, e, NULL, NULL);
379 } 380 }
@@ -394,7 +395,7 @@ _ecore_win32_event_handle_leave_notify(Ecore_Win32_Callback_Data *msg)
394 e->event_window = e->window; 395 e->event_window = e->window;
395 e->x = msg->x; 396 e->x = msg->x;
396 e->y = msg->y; 397 e->y = msg->y;
397 e->timestamp = msg->time; 398 e->timestamp = msg->timestamp;
398 399
399 _ecore_win32_event_last_time = e->timestamp; 400 _ecore_win32_event_last_time = e->timestamp;
400 _ecore_win32_event_last_window = (Ecore_Win32_Window *)e->window; 401 _ecore_win32_event_last_window = (Ecore_Win32_Window *)e->window;
@@ -411,9 +412,9 @@ _ecore_win32_event_handle_leave_notify(Ecore_Win32_Callback_Data *msg)
411 e->window = (void *)GetWindowLongPtr(msg->window, GWLP_USERDATA); 412 e->window = (void *)GetWindowLongPtr(msg->window, GWLP_USERDATA);
412 e->x = msg->x; 413 e->x = msg->x;
413 e->y = msg->y; 414 e->y = msg->y;
414 e->time = msg->time; 415 e->timestamp = msg->timestamp;
415 416
416 _ecore_win32_event_last_time = e->time; 417 _ecore_win32_event_last_time = e->timestamp;
417 418
418 ecore_event_add(ECORE_WIN32_EVENT_MOUSE_OUT, e, NULL, NULL); 419 ecore_event_add(ECORE_WIN32_EVENT_MOUSE_OUT, e, NULL, NULL);
419 } 420 }
@@ -431,8 +432,8 @@ _ecore_win32_event_handle_focus_in(Ecore_Win32_Callback_Data *msg)
431 432
432 e->window = (void *)GetWindowLongPtr(msg->window, GWLP_USERDATA); 433 e->window = (void *)GetWindowLongPtr(msg->window, GWLP_USERDATA);
433 434
434 e->time = _ecore_win32_event_last_time; 435 e->timestamp = _ecore_win32_event_last_time;
435 _ecore_win32_event_last_time = e->time; 436 _ecore_win32_event_last_time = e->timestamp;
436 437
437 ecore_event_add(ECORE_WIN32_EVENT_WINDOW_FOCUS_IN, e, NULL, NULL); 438 ecore_event_add(ECORE_WIN32_EVENT_WINDOW_FOCUS_IN, e, NULL, NULL);
438} 439}
@@ -449,8 +450,8 @@ _ecore_win32_event_handle_focus_out(Ecore_Win32_Callback_Data *msg)
449 450
450 e->window = (void *)GetWindowLongPtr(msg->window, GWLP_USERDATA); 451 e->window = (void *)GetWindowLongPtr(msg->window, GWLP_USERDATA);
451 452
452 e->time = _ecore_win32_event_last_time; 453 e->timestamp = _ecore_win32_event_last_time;
453 _ecore_win32_event_last_time = e->time; 454 _ecore_win32_event_last_time = e->timestamp;
454 455
455 ecore_event_add(ECORE_WIN32_EVENT_WINDOW_FOCUS_OUT, e, NULL, NULL); 456 ecore_event_add(ECORE_WIN32_EVENT_WINDOW_FOCUS_OUT, e, NULL, NULL);
456} 457}
@@ -472,7 +473,7 @@ _ecore_win32_event_handle_expose(Ecore_Win32_Callback_Data *msg)
472 e->width = msg->update.right - msg->update.left; 473 e->width = msg->update.right - msg->update.left;
473 e->height = msg->update.bottom - msg->update.top; 474 e->height = msg->update.bottom - msg->update.top;
474 475
475 e->time = _ecore_win32_event_last_time; 476 e->timestamp = _ecore_win32_event_last_time;
476 477
477 ecore_event_add(ECORE_WIN32_EVENT_WINDOW_DAMAGE, e, NULL, NULL); 478 ecore_event_add(ECORE_WIN32_EVENT_WINDOW_DAMAGE, e, NULL, NULL);
478} 479}
@@ -489,7 +490,7 @@ _ecore_win32_event_handle_create_notify(Ecore_Win32_Callback_Data *msg)
489 490
490 e->window = (void *)GetWindowLongPtr(msg->window, GWLP_USERDATA); 491 e->window = (void *)GetWindowLongPtr(msg->window, GWLP_USERDATA);
491 492
492 e->time = _ecore_win32_event_last_time; 493 e->timestamp = _ecore_win32_event_last_time;
493 494
494 ecore_event_add(ECORE_WIN32_EVENT_WINDOW_CREATE, e, NULL, NULL); 495 ecore_event_add(ECORE_WIN32_EVENT_WINDOW_CREATE, e, NULL, NULL);
495} 496}
@@ -506,7 +507,7 @@ _ecore_win32_event_handle_destroy_notify(Ecore_Win32_Callback_Data *msg)
506 507
507 e->window = (void *)GetWindowLongPtr(msg->window, GWLP_USERDATA); 508 e->window = (void *)GetWindowLongPtr(msg->window, GWLP_USERDATA);
508 509
509 e->time = _ecore_win32_event_last_time; 510 e->timestamp = _ecore_win32_event_last_time;
510 if (e->window == _ecore_win32_event_last_window) _ecore_win32_event_last_window = NULL; 511 if (e->window == _ecore_win32_event_last_window) _ecore_win32_event_last_window = NULL;
511 512
512 ecore_event_add(ECORE_WIN32_EVENT_WINDOW_DESTROY, e, NULL, NULL); 513 ecore_event_add(ECORE_WIN32_EVENT_WINDOW_DESTROY, e, NULL, NULL);
@@ -524,7 +525,7 @@ _ecore_win32_event_handle_map_notify(Ecore_Win32_Callback_Data *msg)
524 525
525 e->window = (void *)GetWindowLongPtr(msg->window, GWLP_USERDATA); 526 e->window = (void *)GetWindowLongPtr(msg->window, GWLP_USERDATA);
526 527
527 e->time = _ecore_win32_event_last_time; 528 e->timestamp = _ecore_win32_event_last_time;
528 529
529 ecore_event_add(ECORE_WIN32_EVENT_WINDOW_SHOW, e, NULL, NULL); 530 ecore_event_add(ECORE_WIN32_EVENT_WINDOW_SHOW, e, NULL, NULL);
530} 531}
@@ -541,7 +542,7 @@ _ecore_win32_event_handle_unmap_notify(Ecore_Win32_Callback_Data *msg)
541 542
542 e->window = (void *)GetWindowLongPtr(msg->window, GWLP_USERDATA); 543 e->window = (void *)GetWindowLongPtr(msg->window, GWLP_USERDATA);
543 544
544 e->time = _ecore_win32_event_last_time; 545 e->timestamp = _ecore_win32_event_last_time;
545 546
546 ecore_event_add(ECORE_WIN32_EVENT_WINDOW_HIDE, e, NULL, NULL); 547 ecore_event_add(ECORE_WIN32_EVENT_WINDOW_HIDE, e, NULL, NULL);
547} 548}
@@ -572,7 +573,7 @@ _ecore_win32_event_handle_configure_notify(Ecore_Win32_Callback_Data *msg)
572 e->y = wi.rcClient.top; 573 e->y = wi.rcClient.top;
573 e->width = wi.rcClient.right - wi.rcClient.left; 574 e->width = wi.rcClient.right - wi.rcClient.left;
574 e->height = wi.rcClient.bottom - wi.rcClient.top; 575 e->height = wi.rcClient.bottom - wi.rcClient.top;
575 e->time = _ecore_win32_event_last_time; 576 e->timestamp = _ecore_win32_event_last_time;
576 577
577 ecore_event_add(ECORE_WIN32_EVENT_WINDOW_CONFIGURE, e, NULL, NULL); 578 ecore_event_add(ECORE_WIN32_EVENT_WINDOW_CONFIGURE, e, NULL, NULL);
578} 579}
@@ -594,7 +595,7 @@ _ecore_win32_event_handle_resize(Ecore_Win32_Callback_Data *msg)
594 e->window = (void *)GetWindowLongPtr(msg->window, GWLP_USERDATA); 595 e->window = (void *)GetWindowLongPtr(msg->window, GWLP_USERDATA);
595 e->width = rect.right - rect.left; 596 e->width = rect.right - rect.left;
596 e->height = rect.bottom - rect.top; 597 e->height = rect.bottom - rect.top;
597 e->time = _ecore_win32_event_last_time; 598 e->timestamp = _ecore_win32_event_last_time;
598 599
599 ecore_event_add(ECORE_WIN32_EVENT_WINDOW_RESIZE, e, NULL, NULL); 600 ecore_event_add(ECORE_WIN32_EVENT_WINDOW_RESIZE, e, NULL, NULL);
600} 601}
@@ -610,7 +611,7 @@ _ecore_win32_event_handle_delete_request(Ecore_Win32_Callback_Data *msg)
610 if (!e) return; 611 if (!e) return;
611 612
612 e->window = (void *)GetWindowLongPtr(msg->window, GWLP_USERDATA); 613 e->window = (void *)GetWindowLongPtr(msg->window, GWLP_USERDATA);
613 e->time = _ecore_win32_event_last_time; 614 e->timestamp = _ecore_win32_event_last_time;
614 615
615 ecore_event_add(ECORE_WIN32_EVENT_WINDOW_DELETE_REQUEST, e, NULL, NULL); 616 ecore_event_add(ECORE_WIN32_EVENT_WINDOW_DELETE_REQUEST, e, NULL, NULL);
616} 617}
@@ -645,24 +646,28 @@ _ecore_win32_event_free_key_up(void *data __UNUSED__,
645} 646}
646 647
647static int 648static int
648_ecore_win32_event_keystroke_get(int key, 649_ecore_win32_event_keystroke_get(Ecore_Win32_Callback_Data *msg,
649 int is_extended,
650 Eina_Bool is_down, 650 Eina_Bool is_down,
651 char **keyname, 651 char **keyname,
652 char **keysymbol, 652 char **keysymbol,
653 char **keycompose, 653 char **keycompose,
654 unsigned int *modifiers) 654 unsigned int *modifiers)
655{ 655{
656 WCHAR buf[3];
657 char delete_string[2] = { 0x7f, 0 };
656 char *kn = NULL; 658 char *kn = NULL;
657 char *ks = NULL; 659 char *ks = NULL;
658 char *kc = NULL; 660 char *kc = NULL;
661 int key;
662 int is_extended;
663
664 key = msg->window_param;
665 is_extended = msg->data_param & 0x01000000;
659 666
660 *keyname = NULL; 667 *keyname = NULL;
661 *keysymbol = NULL; 668 *keysymbol = NULL;
662 *keycompose = NULL; 669 *keycompose = NULL;
663 670
664
665 printf("vk key 0x%x\n", key);
666 switch (key) 671 switch (key)
667 { 672 {
668 /* Keystroke */ 673 /* Keystroke */
@@ -751,7 +756,6 @@ _ecore_win32_event_keystroke_get(int key,
751 } 756 }
752 break; 757 break;
753 case VK_RIGHT: 758 case VK_RIGHT:
754 printf("vk val 0x%x (right)\n", VK_RIGHT);
755 if (is_extended) 759 if (is_extended)
756 { 760 {
757 kn = "Right"; 761 kn = "Right";
@@ -798,8 +802,7 @@ _ecore_win32_event_keystroke_get(int key,
798 { 802 {
799 kn = "Delete"; 803 kn = "Delete";
800 ks = "Delete"; 804 ks = "Delete";
801 /* FIXME: kc is wrong, here */ 805 kc = delete_string;
802 kc = "Delete";
803 } 806 }
804 else 807 else
805 { 808 {
@@ -830,7 +833,7 @@ _ecore_win32_event_keystroke_get(int key,
830 ks = "Shift_R"; 833 ks = "Shift_R";
831 kc = ""; 834 kc = "";
832 } 835 }
833 *modifiers |= ECORE_EVENT_MODIFIER_SHIFT; 836 *modifiers &= ~ECORE_EVENT_MODIFIER_SHIFT;
834 } 837 }
835 else /* is_up */ 838 else /* is_up */
836 { 839 {
@@ -852,7 +855,7 @@ _ecore_win32_event_keystroke_get(int key,
852 kc = ""; 855 kc = "";
853 _ecore_win32_key_mask &= ~ECORE_WIN32_KEY_MASK_RSHIFT; 856 _ecore_win32_key_mask &= ~ECORE_WIN32_KEY_MASK_RSHIFT;
854 } 857 }
855 *modifiers &= ~ECORE_EVENT_MODIFIER_SHIFT; 858 *modifiers |= ECORE_EVENT_MODIFIER_SHIFT;
856 } 859 }
857 break; 860 break;
858 } 861 }
@@ -860,6 +863,9 @@ _ecore_win32_event_keystroke_get(int key,
860 { 863 {
861 SHORT res; 864 SHORT res;
862 865
866 if (msg->discard_ctrl)
867 return 0;
868
863 if (is_down) 869 if (is_down)
864 { 870 {
865 res = GetKeyState(VK_LCONTROL); 871 res = GetKeyState(VK_LCONTROL);
@@ -1113,11 +1119,53 @@ _ecore_win32_event_keystroke_get(int key,
1113 kc = ""; 1119 kc = "";
1114 break; 1120 break;
1115 default: 1121 default:
1116 /* other non keystroke characters */ 1122 {
1117 return 0; 1123 /* other non keystroke characters */
1124 BYTE kbd_state[256];
1125 int res;
1126
1127 if (is_down)
1128 return 0;
1129
1130 if (!GetKeyboardState(kbd_state))
1131 return 0;
1132
1133 res = ToUnicode(msg->window_param,
1134 MapVirtualKey(msg->window_param, 2),
1135 kbd_state, buf, 3, 0);
1136 if (res == 1)
1137 {
1138 /* FIXME: might be troublesome for non european languages */
1139 /* in that case, UNICODE should be used, I guess */
1140 buf[1] = '\0';
1141 kn = (char *)buf;
1142 ks = (char *)buf;
1143 kc = (char *)buf;
1144
1145 res = GetAsyncKeyState(VK_SHIFT);
1146 if (res & 0x8000)
1147 *modifiers |= ECORE_EVENT_MODIFIER_SHIFT;
1148 else
1149 *modifiers &= ~ECORE_EVENT_MODIFIER_SHIFT;
1150
1151 res = GetKeyState(VK_CONTROL);
1152 if (res & 0x8000)
1153 *modifiers |= ECORE_EVENT_MODIFIER_CTRL;
1154 else
1155 *modifiers &= ~ECORE_EVENT_MODIFIER_CTRL;
1156
1157 res = GetKeyState(VK_MENU);
1158 if (res & 0x8000)
1159 *modifiers |= ECORE_EVENT_MODIFIER_ALT;
1160 else
1161 *modifiers &= ~ECORE_EVENT_MODIFIER_ALT;
1162
1163 break;
1164 }
1165 return 0;
1166 }
1118 } 1167 }
1119 1168
1120 printf("sortie...\n");
1121 *keyname = strdup(kn); 1169 *keyname = strdup(kn);
1122 if (!*keyname) return 0; 1170 if (!*keyname) return 0;
1123 *keysymbol = strdup(ks); 1171 *keysymbol = strdup(ks);
@@ -1141,28 +1189,27 @@ _ecore_win32_event_keystroke_get(int key,
1141 return 0; 1189 return 0;
1142 } 1190 }
1143 } 1191 }
1144 printf("sortie 2 ...\n");
1145 1192
1146 return 1; 1193 return 1;
1147} 1194}
1148 1195
1149static int 1196static int
1150_ecore_win32_event_char_get(int key, 1197_ecore_win32_event_char_get(int key,
1151 char **keyname, 1198 char **keyname,
1152 char **keysymbol, 1199 char **keysymbol,
1153 char **keycompose) 1200 char **keycompose,
1201 unsigned int *modifiers)
1154{ 1202{
1155 char *kn = NULL; 1203 char *kn = NULL;
1156 char *ks = NULL; 1204 char *ks = NULL;
1157 char *kc = NULL; 1205 char *kc = NULL;
1158 char buf[2]; 1206 char buf[2];
1207 SHORT res;
1159 1208
1160 *keyname = NULL; 1209 *keyname = NULL;
1161 *keysymbol = NULL; 1210 *keysymbol = NULL;
1162 *keycompose = NULL; 1211 *keycompose = NULL;
1163 1212
1164 printf("char key 0x%x\n", key);
1165
1166 switch (key) 1213 switch (key)
1167 { 1214 {
1168 case VK_PROCESSKEY: 1215 case VK_PROCESSKEY:
@@ -1200,7 +1247,6 @@ _ecore_win32_event_char_get(int key,
1200 break; 1247 break;
1201 default: 1248 default:
1202 /* displayable characters */ 1249 /* displayable characters */
1203 printf (" * key : %d\n", key);
1204 buf[0] = key; 1250 buf[0] = key;
1205 buf[1] = '\0'; 1251 buf[1] = '\0';
1206 kn = buf; 1252 kn = buf;
@@ -1227,5 +1273,23 @@ _ecore_win32_event_char_get(int key,
1227 return 0; 1273 return 0;
1228 } 1274 }
1229 1275
1276 res = GetAsyncKeyState(VK_SHIFT);
1277 if (res & 0x8000)
1278 *modifiers |= ECORE_EVENT_MODIFIER_SHIFT;
1279 else
1280 *modifiers &= ~ECORE_EVENT_MODIFIER_SHIFT;
1281
1282 res = GetKeyState(VK_CONTROL);
1283 if (res & 0x8000)
1284 *modifiers |= ECORE_EVENT_MODIFIER_CTRL;
1285 else
1286 *modifiers &= ~ECORE_EVENT_MODIFIER_CTRL;
1287
1288 res = GetKeyState(VK_MENU);
1289 if (res & 0x8000)
1290 *modifiers |= ECORE_EVENT_MODIFIER_ALT;
1291 else
1292 *modifiers &= ~ECORE_EVENT_MODIFIER_ALT;
1293
1230 return 1; 1294 return 1;
1231} 1295}
diff --git a/libraries/ecore/src/lib/ecore_win32/ecore_win32_private.h b/libraries/ecore/src/lib/ecore_win32/ecore_win32_private.h
index 4533169..ab54763 100644
--- a/libraries/ecore/src/lib/ecore_win32/ecore_win32_private.h
+++ b/libraries/ecore/src/lib/ecore_win32/ecore_win32_private.h
@@ -49,14 +49,15 @@ typedef struct _Ecore_Win32_Callback_Data Ecore_Win32_Callback_Data;
49 49
50struct _Ecore_Win32_Callback_Data 50struct _Ecore_Win32_Callback_Data
51{ 51{
52 RECT update; 52 RECT update;
53 HWND window; 53 HWND window;
54 unsigned int message; 54 unsigned int message;
55 WPARAM window_param; 55 WPARAM window_param;
56 LPARAM data_param; 56 LPARAM data_param;
57 long time; 57 unsigned long timestamp;
58 int x; 58 int x;
59 int y; 59 int y;
60 Eina_Bool discard_ctrl;
60}; 61};
61 62
62struct _Ecore_Win32_Window 63struct _Ecore_Win32_Window
@@ -130,7 +131,7 @@ struct _Ecore_Win32_Window
130 131
131extern HINSTANCE _ecore_win32_instance; 132extern HINSTANCE _ecore_win32_instance;
132extern double _ecore_win32_double_click_time; 133extern double _ecore_win32_double_click_time;
133extern long _ecore_win32_event_last_time; 134extern unsigned long _ecore_win32_event_last_time;
134extern Ecore_Win32_Window *_ecore_win32_event_last_window; 135extern Ecore_Win32_Window *_ecore_win32_event_last_window;
135 136
136 137
diff --git a/libraries/ecore/src/lib/ecore_wince/Makefile.in b/libraries/ecore/src/lib/ecore_wince/Makefile.in
index 0610122..d23bf51 100644
--- a/libraries/ecore/src/lib/ecore_wince/Makefile.in
+++ b/libraries/ecore/src/lib/ecore_wince/Makefile.in
@@ -249,10 +249,10 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
249PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 249PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
250PIXMAN_LIBS = @PIXMAN_LIBS@ 250PIXMAN_LIBS = @PIXMAN_LIBS@
251PKG_CONFIG = @PKG_CONFIG@ 251PKG_CONFIG = @PKG_CONFIG@
252PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
253PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
254POSUB = @POSUB@ 252POSUB = @POSUB@
255RANLIB = @RANLIB@ 253RANLIB = @RANLIB@
254SCIM_CFLAGS = @SCIM_CFLAGS@
255SCIM_LIBS = @SCIM_LIBS@
256SDL_CFLAGS = @SDL_CFLAGS@ 256SDL_CFLAGS = @SDL_CFLAGS@
257SDL_CONFIG = @SDL_CONFIG@ 257SDL_CONFIG = @SDL_CONFIG@
258SDL_LIBS = @SDL_LIBS@ 258SDL_LIBS = @SDL_LIBS@
@@ -271,6 +271,10 @@ TSLIB_LIBS = @TSLIB_LIBS@
271USE_NLS = @USE_NLS@ 271USE_NLS = @USE_NLS@
272VERSION = @VERSION@ 272VERSION = @VERSION@
273VMAJ = @VMAJ@ 273VMAJ = @VMAJ@
274WAYLAND_CFLAGS = @WAYLAND_CFLAGS@
275WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
276WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
277WAYLAND_LIBS = @WAYLAND_LIBS@
274WIN32_CFLAGS = @WIN32_CFLAGS@ 278WIN32_CFLAGS = @WIN32_CFLAGS@
275WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 279WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
276WIN32_LIBS = @WIN32_LIBS@ 280WIN32_LIBS = @WIN32_LIBS@
@@ -384,6 +388,8 @@ ecore_imf_cflags = @ecore_imf_cflags@
384ecore_imf_evas_cflags = @ecore_imf_evas_cflags@ 388ecore_imf_evas_cflags = @ecore_imf_evas_cflags@
385ecore_imf_evas_libs = @ecore_imf_evas_libs@ 389ecore_imf_evas_libs = @ecore_imf_evas_libs@
386ecore_imf_libs = @ecore_imf_libs@ 390ecore_imf_libs = @ecore_imf_libs@
391ecore_imf_scim_cflags = @ecore_imf_scim_cflags@
392ecore_imf_scim_libs = @ecore_imf_scim_libs@
387ecore_imf_xim_cflags = @ecore_imf_xim_cflags@ 393ecore_imf_xim_cflags = @ecore_imf_xim_cflags@
388ecore_imf_xim_libs = @ecore_imf_xim_libs@ 394ecore_imf_xim_libs = @ecore_imf_xim_libs@
389ecore_input_cflags = @ecore_input_cflags@ 395ecore_input_cflags = @ecore_input_cflags@
@@ -396,6 +402,8 @@ ecore_psl1ght_cflags = @ecore_psl1ght_cflags@
396ecore_psl1ght_libs = @ecore_psl1ght_libs@ 402ecore_psl1ght_libs = @ecore_psl1ght_libs@
397ecore_sdl_cflags = @ecore_sdl_cflags@ 403ecore_sdl_cflags = @ecore_sdl_cflags@
398ecore_sdl_libs = @ecore_sdl_libs@ 404ecore_sdl_libs = @ecore_sdl_libs@
405ecore_wayland_cflags = @ecore_wayland_cflags@
406ecore_wayland_libs = @ecore_wayland_libs@
399ecore_win32_cflags = @ecore_win32_cflags@ 407ecore_win32_cflags = @ecore_win32_cflags@
400ecore_win32_libs = @ecore_win32_libs@ 408ecore_win32_libs = @ecore_win32_libs@
401ecore_wince_cflags = @ecore_wince_cflags@ 409ecore_wince_cflags = @ecore_wince_cflags@
@@ -440,12 +448,14 @@ requirements_ecore_fb = @requirements_ecore_fb@
440requirements_ecore_file = @requirements_ecore_file@ 448requirements_ecore_file = @requirements_ecore_file@
441requirements_ecore_imf = @requirements_ecore_imf@ 449requirements_ecore_imf = @requirements_ecore_imf@
442requirements_ecore_imf_evas = @requirements_ecore_imf_evas@ 450requirements_ecore_imf_evas = @requirements_ecore_imf_evas@
451requirements_ecore_imf_scim = @requirements_ecore_imf_scim@
443requirements_ecore_imf_xim = @requirements_ecore_imf_xim@ 452requirements_ecore_imf_xim = @requirements_ecore_imf_xim@
444requirements_ecore_input = @requirements_ecore_input@ 453requirements_ecore_input = @requirements_ecore_input@
445requirements_ecore_input_evas = @requirements_ecore_input_evas@ 454requirements_ecore_input_evas = @requirements_ecore_input_evas@
446requirements_ecore_ipc = @requirements_ecore_ipc@ 455requirements_ecore_ipc = @requirements_ecore_ipc@
447requirements_ecore_psl1ght = @requirements_ecore_psl1ght@ 456requirements_ecore_psl1ght = @requirements_ecore_psl1ght@
448requirements_ecore_sdl = @requirements_ecore_sdl@ 457requirements_ecore_sdl = @requirements_ecore_sdl@
458requirements_ecore_wayland = @requirements_ecore_wayland@
449requirements_ecore_win32 = @requirements_ecore_win32@ 459requirements_ecore_win32 = @requirements_ecore_win32@
450requirements_ecore_wince = @requirements_ecore_wince@ 460requirements_ecore_wince = @requirements_ecore_wince@
451requirements_ecore_x = @requirements_ecore_x@ 461requirements_ecore_x = @requirements_ecore_x@
diff --git a/libraries/ecore/src/lib/ecore_x/Ecore_X.h b/libraries/ecore/src/lib/ecore_x/Ecore_X.h
index 6588a75..b5d2c3f 100644
--- a/libraries/ecore/src/lib/ecore_x/Ecore_X.h
+++ b/libraries/ecore/src/lib/ecore_x/Ecore_X.h
@@ -1181,6 +1181,8 @@ EAPI int
1181 ecore_x_error_request_get(void); 1181 ecore_x_error_request_get(void);
1182EAPI int 1182EAPI int
1183 ecore_x_error_code_get(void); 1183 ecore_x_error_code_get(void);
1184EAPI Ecore_X_ID
1185ecore_x_error_resource_id_get(void);
1184 1186
1185EAPI void 1187EAPI void
1186ecore_x_event_mask_set(Ecore_X_Window w, 1188ecore_x_event_mask_set(Ecore_X_Window w,
@@ -3114,7 +3116,10 @@ EAPI Ecore_X_Randr_Edid_Display_Interface_Type
3114ecore_x_randr_edid_display_interface_type_get(unsigned char *edid, 3116ecore_x_randr_edid_display_interface_type_get(unsigned char *edid,
3115 unsigned long edid_length); 3117 unsigned long edid_length);
3116 3118
3117/* ecore_x_randr_13.c */ 3119/* ecore_x_randr_12.c */
3120
3121EAPI Eina_Bool
3122ecore_x_randr_output_backlight_available(void);
3118EAPI void 3123EAPI void
3119ecore_x_randr_screen_backlight_level_set(Ecore_X_Window root, 3124ecore_x_randr_screen_backlight_level_set(Ecore_X_Window root,
3120 double level); 3125 double level);
diff --git a/libraries/ecore/src/lib/ecore_x/Makefile.in b/libraries/ecore/src/lib/ecore_x/Makefile.in
index d5f4247..3b53cfe 100644
--- a/libraries/ecore/src/lib/ecore_x/Makefile.in
+++ b/libraries/ecore/src/lib/ecore_x/Makefile.in
@@ -279,10 +279,10 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
279PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 279PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
280PIXMAN_LIBS = @PIXMAN_LIBS@ 280PIXMAN_LIBS = @PIXMAN_LIBS@
281PKG_CONFIG = @PKG_CONFIG@ 281PKG_CONFIG = @PKG_CONFIG@
282PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
283PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
284POSUB = @POSUB@ 282POSUB = @POSUB@
285RANLIB = @RANLIB@ 283RANLIB = @RANLIB@
284SCIM_CFLAGS = @SCIM_CFLAGS@
285SCIM_LIBS = @SCIM_LIBS@
286SDL_CFLAGS = @SDL_CFLAGS@ 286SDL_CFLAGS = @SDL_CFLAGS@
287SDL_CONFIG = @SDL_CONFIG@ 287SDL_CONFIG = @SDL_CONFIG@
288SDL_LIBS = @SDL_LIBS@ 288SDL_LIBS = @SDL_LIBS@
@@ -301,6 +301,10 @@ TSLIB_LIBS = @TSLIB_LIBS@
301USE_NLS = @USE_NLS@ 301USE_NLS = @USE_NLS@
302VERSION = @VERSION@ 302VERSION = @VERSION@
303VMAJ = @VMAJ@ 303VMAJ = @VMAJ@
304WAYLAND_CFLAGS = @WAYLAND_CFLAGS@
305WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
306WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
307WAYLAND_LIBS = @WAYLAND_LIBS@
304WIN32_CFLAGS = @WIN32_CFLAGS@ 308WIN32_CFLAGS = @WIN32_CFLAGS@
305WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 309WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
306WIN32_LIBS = @WIN32_LIBS@ 310WIN32_LIBS = @WIN32_LIBS@
@@ -414,6 +418,8 @@ ecore_imf_cflags = @ecore_imf_cflags@
414ecore_imf_evas_cflags = @ecore_imf_evas_cflags@ 418ecore_imf_evas_cflags = @ecore_imf_evas_cflags@
415ecore_imf_evas_libs = @ecore_imf_evas_libs@ 419ecore_imf_evas_libs = @ecore_imf_evas_libs@
416ecore_imf_libs = @ecore_imf_libs@ 420ecore_imf_libs = @ecore_imf_libs@
421ecore_imf_scim_cflags = @ecore_imf_scim_cflags@
422ecore_imf_scim_libs = @ecore_imf_scim_libs@
417ecore_imf_xim_cflags = @ecore_imf_xim_cflags@ 423ecore_imf_xim_cflags = @ecore_imf_xim_cflags@
418ecore_imf_xim_libs = @ecore_imf_xim_libs@ 424ecore_imf_xim_libs = @ecore_imf_xim_libs@
419ecore_input_cflags = @ecore_input_cflags@ 425ecore_input_cflags = @ecore_input_cflags@
@@ -426,6 +432,8 @@ ecore_psl1ght_cflags = @ecore_psl1ght_cflags@
426ecore_psl1ght_libs = @ecore_psl1ght_libs@ 432ecore_psl1ght_libs = @ecore_psl1ght_libs@
427ecore_sdl_cflags = @ecore_sdl_cflags@ 433ecore_sdl_cflags = @ecore_sdl_cflags@
428ecore_sdl_libs = @ecore_sdl_libs@ 434ecore_sdl_libs = @ecore_sdl_libs@
435ecore_wayland_cflags = @ecore_wayland_cflags@
436ecore_wayland_libs = @ecore_wayland_libs@
429ecore_win32_cflags = @ecore_win32_cflags@ 437ecore_win32_cflags = @ecore_win32_cflags@
430ecore_win32_libs = @ecore_win32_libs@ 438ecore_win32_libs = @ecore_win32_libs@
431ecore_wince_cflags = @ecore_wince_cflags@ 439ecore_wince_cflags = @ecore_wince_cflags@
@@ -470,12 +478,14 @@ requirements_ecore_fb = @requirements_ecore_fb@
470requirements_ecore_file = @requirements_ecore_file@ 478requirements_ecore_file = @requirements_ecore_file@
471requirements_ecore_imf = @requirements_ecore_imf@ 479requirements_ecore_imf = @requirements_ecore_imf@
472requirements_ecore_imf_evas = @requirements_ecore_imf_evas@ 480requirements_ecore_imf_evas = @requirements_ecore_imf_evas@
481requirements_ecore_imf_scim = @requirements_ecore_imf_scim@
473requirements_ecore_imf_xim = @requirements_ecore_imf_xim@ 482requirements_ecore_imf_xim = @requirements_ecore_imf_xim@
474requirements_ecore_input = @requirements_ecore_input@ 483requirements_ecore_input = @requirements_ecore_input@
475requirements_ecore_input_evas = @requirements_ecore_input_evas@ 484requirements_ecore_input_evas = @requirements_ecore_input_evas@
476requirements_ecore_ipc = @requirements_ecore_ipc@ 485requirements_ecore_ipc = @requirements_ecore_ipc@
477requirements_ecore_psl1ght = @requirements_ecore_psl1ght@ 486requirements_ecore_psl1ght = @requirements_ecore_psl1ght@
478requirements_ecore_sdl = @requirements_ecore_sdl@ 487requirements_ecore_sdl = @requirements_ecore_sdl@
488requirements_ecore_wayland = @requirements_ecore_wayland@
479requirements_ecore_win32 = @requirements_ecore_win32@ 489requirements_ecore_win32 = @requirements_ecore_win32@
480requirements_ecore_wince = @requirements_ecore_wince@ 490requirements_ecore_wince = @requirements_ecore_wince@
481requirements_ecore_x = @requirements_ecore_x@ 491requirements_ecore_x = @requirements_ecore_x@
diff --git a/libraries/ecore/src/lib/ecore_x/xcb/Makefile.in b/libraries/ecore/src/lib/ecore_x/xcb/Makefile.in
index 0213aea..9108f23 100644
--- a/libraries/ecore/src/lib/ecore_x/xcb/Makefile.in
+++ b/libraries/ecore/src/lib/ecore_x/xcb/Makefile.in
@@ -261,10 +261,10 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
261PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 261PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
262PIXMAN_LIBS = @PIXMAN_LIBS@ 262PIXMAN_LIBS = @PIXMAN_LIBS@
263PKG_CONFIG = @PKG_CONFIG@ 263PKG_CONFIG = @PKG_CONFIG@
264PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
265PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
266POSUB = @POSUB@ 264POSUB = @POSUB@
267RANLIB = @RANLIB@ 265RANLIB = @RANLIB@
266SCIM_CFLAGS = @SCIM_CFLAGS@
267SCIM_LIBS = @SCIM_LIBS@
268SDL_CFLAGS = @SDL_CFLAGS@ 268SDL_CFLAGS = @SDL_CFLAGS@
269SDL_CONFIG = @SDL_CONFIG@ 269SDL_CONFIG = @SDL_CONFIG@
270SDL_LIBS = @SDL_LIBS@ 270SDL_LIBS = @SDL_LIBS@
@@ -283,6 +283,10 @@ TSLIB_LIBS = @TSLIB_LIBS@
283USE_NLS = @USE_NLS@ 283USE_NLS = @USE_NLS@
284VERSION = @VERSION@ 284VERSION = @VERSION@
285VMAJ = @VMAJ@ 285VMAJ = @VMAJ@
286WAYLAND_CFLAGS = @WAYLAND_CFLAGS@
287WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
288WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
289WAYLAND_LIBS = @WAYLAND_LIBS@
286WIN32_CFLAGS = @WIN32_CFLAGS@ 290WIN32_CFLAGS = @WIN32_CFLAGS@
287WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 291WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
288WIN32_LIBS = @WIN32_LIBS@ 292WIN32_LIBS = @WIN32_LIBS@
@@ -396,6 +400,8 @@ ecore_imf_cflags = @ecore_imf_cflags@
396ecore_imf_evas_cflags = @ecore_imf_evas_cflags@ 400ecore_imf_evas_cflags = @ecore_imf_evas_cflags@
397ecore_imf_evas_libs = @ecore_imf_evas_libs@ 401ecore_imf_evas_libs = @ecore_imf_evas_libs@
398ecore_imf_libs = @ecore_imf_libs@ 402ecore_imf_libs = @ecore_imf_libs@
403ecore_imf_scim_cflags = @ecore_imf_scim_cflags@
404ecore_imf_scim_libs = @ecore_imf_scim_libs@
399ecore_imf_xim_cflags = @ecore_imf_xim_cflags@ 405ecore_imf_xim_cflags = @ecore_imf_xim_cflags@
400ecore_imf_xim_libs = @ecore_imf_xim_libs@ 406ecore_imf_xim_libs = @ecore_imf_xim_libs@
401ecore_input_cflags = @ecore_input_cflags@ 407ecore_input_cflags = @ecore_input_cflags@
@@ -408,6 +414,8 @@ ecore_psl1ght_cflags = @ecore_psl1ght_cflags@
408ecore_psl1ght_libs = @ecore_psl1ght_libs@ 414ecore_psl1ght_libs = @ecore_psl1ght_libs@
409ecore_sdl_cflags = @ecore_sdl_cflags@ 415ecore_sdl_cflags = @ecore_sdl_cflags@
410ecore_sdl_libs = @ecore_sdl_libs@ 416ecore_sdl_libs = @ecore_sdl_libs@
417ecore_wayland_cflags = @ecore_wayland_cflags@
418ecore_wayland_libs = @ecore_wayland_libs@
411ecore_win32_cflags = @ecore_win32_cflags@ 419ecore_win32_cflags = @ecore_win32_cflags@
412ecore_win32_libs = @ecore_win32_libs@ 420ecore_win32_libs = @ecore_win32_libs@
413ecore_wince_cflags = @ecore_wince_cflags@ 421ecore_wince_cflags = @ecore_wince_cflags@
@@ -452,12 +460,14 @@ requirements_ecore_fb = @requirements_ecore_fb@
452requirements_ecore_file = @requirements_ecore_file@ 460requirements_ecore_file = @requirements_ecore_file@
453requirements_ecore_imf = @requirements_ecore_imf@ 461requirements_ecore_imf = @requirements_ecore_imf@
454requirements_ecore_imf_evas = @requirements_ecore_imf_evas@ 462requirements_ecore_imf_evas = @requirements_ecore_imf_evas@
463requirements_ecore_imf_scim = @requirements_ecore_imf_scim@
455requirements_ecore_imf_xim = @requirements_ecore_imf_xim@ 464requirements_ecore_imf_xim = @requirements_ecore_imf_xim@
456requirements_ecore_input = @requirements_ecore_input@ 465requirements_ecore_input = @requirements_ecore_input@
457requirements_ecore_input_evas = @requirements_ecore_input_evas@ 466requirements_ecore_input_evas = @requirements_ecore_input_evas@
458requirements_ecore_ipc = @requirements_ecore_ipc@ 467requirements_ecore_ipc = @requirements_ecore_ipc@
459requirements_ecore_psl1ght = @requirements_ecore_psl1ght@ 468requirements_ecore_psl1ght = @requirements_ecore_psl1ght@
460requirements_ecore_sdl = @requirements_ecore_sdl@ 469requirements_ecore_sdl = @requirements_ecore_sdl@
470requirements_ecore_wayland = @requirements_ecore_wayland@
461requirements_ecore_win32 = @requirements_ecore_win32@ 471requirements_ecore_win32 = @requirements_ecore_win32@
462requirements_ecore_wince = @requirements_ecore_wince@ 472requirements_ecore_wince = @requirements_ecore_wince@
463requirements_ecore_x = @requirements_ecore_x@ 473requirements_ecore_x = @requirements_ecore_x@
diff --git a/libraries/ecore/src/lib/ecore_x/xcb/ecore_xcb_damage.c b/libraries/ecore/src/lib/ecore_x/xcb/ecore_xcb_damage.c
index d0ffde1..bbab308 100644
--- a/libraries/ecore/src/lib/ecore_x/xcb/ecore_xcb_damage.c
+++ b/libraries/ecore/src/lib/ecore_x/xcb/ecore_xcb_damage.c
@@ -99,7 +99,7 @@ ecore_x_damage_new(Ecore_X_Drawable drawable,
99/** 99/**
100 * Destroy a damage object 100 * Destroy a damage object
101 * 101 *
102 * @param The damage object to destroy 102 * @param damage The damage object to destroy
103 * 103 *
104 * Destroys the damage object @p damage 104 * Destroys the damage object @p damage
105 * 105 *
diff --git a/libraries/ecore/src/lib/ecore_x/xcb/ecore_xcb_dnd.c b/libraries/ecore/src/lib/ecore_x/xcb/ecore_xcb_dnd.c
index 677de38..177e61d 100644
--- a/libraries/ecore/src/lib/ecore_x/xcb/ecore_xcb_dnd.c
+++ b/libraries/ecore/src/lib/ecore_x/xcb/ecore_xcb_dnd.c
@@ -422,9 +422,8 @@ ecore_x_dnd_actions_set(Ecore_X_Window win,
422 * @param data User data. 422 * @param data User data.
423 */ 423 */
424EAPI void 424EAPI void
425ecore_x_dnd_callback_pos_update_set(void (*cb)(void *, 425ecore_x_dnd_callback_pos_update_set(void (*cb)(void *, Ecore_X_Xdnd_Position *data),
426 Ecore_X_Xdnd_Position *data), 426 const void *data)
427 const void *data)
428{ 427{
429 _posupdatecb = cb; 428 _posupdatecb = cb;
430 _posupdatedata = (void *)data; 429 _posupdatedata = (void *)data;
diff --git a/libraries/ecore/src/lib/ecore_x/xcb/ecore_xcb_dpms.c b/libraries/ecore/src/lib/ecore_x/xcb/ecore_xcb_dpms.c
index 63b7f1e..324717c 100644
--- a/libraries/ecore/src/lib/ecore_x/xcb/ecore_xcb_dpms.c
+++ b/libraries/ecore/src/lib/ecore_x/xcb/ecore_xcb_dpms.c
@@ -270,7 +270,7 @@ ecore_x_dpms_timeout_off_get(void)
270 270
271/** 271/**
272 * Sets the standby timeout (in unit of seconds). 272 * Sets the standby timeout (in unit of seconds).
273 * @param new_standby Amount of time of inactivity before standby mode will be invoked. 273 * @param new_timeout Amount of time of inactivity before standby mode will be invoked.
274 * @ingroup Ecore_X_DPMS_Group 274 * @ingroup Ecore_X_DPMS_Group
275 */ 275 */
276EAPI void 276EAPI void
@@ -286,7 +286,7 @@ ecore_x_dpms_timeout_standby_set(unsigned int new_timeout)
286 286
287/** 287/**
288 * Sets the suspend timeout (in unit of seconds). 288 * Sets the suspend timeout (in unit of seconds).
289 * @param suspend Amount of time of inactivity before the screen is placed into suspend mode. 289 * @param new_timeout Amount of time of inactivity before the screen is placed into suspend mode.
290 * @ingroup Ecore_X_DPMS_Group 290 * @ingroup Ecore_X_DPMS_Group
291 */ 291 */
292EAPI void 292EAPI void
@@ -302,7 +302,7 @@ ecore_x_dpms_timeout_suspend_set(unsigned int new_timeout)
302 302
303/** 303/**
304 * Sets the off timeout (in unit of seconds). 304 * Sets the off timeout (in unit of seconds).
305 * @param off Amount of time of inactivity before the monitor is shut off. 305 * @param new_timeout Amount of time of inactivity before the monitor is shut off.
306 * @ingroup Ecore_X_DPMS_Group 306 * @ingroup Ecore_X_DPMS_Group
307 */ 307 */
308EAPI void 308EAPI void
diff --git a/libraries/ecore/src/lib/ecore_x/xcb/ecore_xcb_error.c b/libraries/ecore/src/lib/ecore_x/xcb/ecore_xcb_error.c
index bbd9c2a..fc32926 100644
--- a/libraries/ecore/src/lib/ecore_x/xcb/ecore_xcb_error.c
+++ b/libraries/ecore/src/lib/ecore_x/xcb/ecore_xcb_error.c
@@ -8,6 +8,7 @@ static void (*_io_error_func)(void *data) = NULL;
8static void *_io_error_data = NULL; 8static void *_io_error_data = NULL;
9static int _error_request_code = 0; 9static int _error_request_code = 0;
10static int _error_code = 0; 10static int _error_code = 0;
11static Ecore_X_ID _error_resource_id = 0;
11 12
12/** 13/**
13 * Set the error handler. 14 * Set the error handler.
@@ -63,6 +64,18 @@ ecore_x_error_code_get(void)
63 return _error_code; 64 return _error_code;
64} 65}
65 66
67/**
68 * Get the resource id that caused the error.
69 * @return The resource id causing the X error
70 *
71 * Return the X resource id that caused the last X error
72 */
73EAPI Ecore_X_ID
74ecore_x_error_resource_id_get(void)
75{
76 return _error_resource_id;
77}
78
66int 79int
67_ecore_xcb_error_handle(xcb_generic_error_t *err) 80_ecore_xcb_error_handle(xcb_generic_error_t *err)
68{ 81{
@@ -84,6 +97,7 @@ _ecore_xcb_error_handle(xcb_generic_error_t *err)
84 97
85 _error_request_code = err->sequence; 98 _error_request_code = err->sequence;
86 _error_code = err->error_code; 99 _error_code = err->error_code;
100 _error_resource_id = err->resource_id;
87 if (_error_func) 101 if (_error_func)
88 _error_func(_error_data); 102 _error_func(_error_data);
89 103
diff --git a/libraries/ecore/src/lib/ecore_x/xcb/ecore_xcb_icccm.c b/libraries/ecore/src/lib/ecore_x/xcb/ecore_xcb_icccm.c
index 6459db7..8dea861 100644
--- a/libraries/ecore/src/lib/ecore_x/xcb/ecore_xcb_icccm.c
+++ b/libraries/ecore/src/lib/ecore_x/xcb/ecore_xcb_icccm.c
@@ -396,7 +396,7 @@ ecore_x_icccm_transient_for_set(Ecore_X_Window win,
396 396
397/** 397/**
398 * Remove the transient_for setting from a window. 398 * Remove the transient_for setting from a window.
399 * @param The window 399 * @param win The window
400 */ 400 */
401EAPI void 401EAPI void
402ecore_x_icccm_transient_for_unset(Ecore_X_Window win) 402ecore_x_icccm_transient_for_unset(Ecore_X_Window win)
@@ -1452,6 +1452,7 @@ ecore_x_icccm_take_focus_send(Ecore_X_Window win,
1452 Ecore_X_Time t) 1452 Ecore_X_Time t)
1453{ 1453{
1454 LOGFN(__FILE__, __LINE__, __FUNCTION__); 1454 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1455 CHECK_XCB_CONN;
1455 1456
1456 ecore_x_client_message32_send(win, ECORE_X_ATOM_WM_PROTOCOLS, 1457 ecore_x_client_message32_send(win, ECORE_X_ATOM_WM_PROTOCOLS,
1457 XCB_EVENT_MASK_NO_EVENT, 1458 XCB_EVENT_MASK_NO_EVENT,
diff --git a/libraries/ecore/src/lib/ecore_x/xcb/ecore_xcb_randr.c b/libraries/ecore/src/lib/ecore_x/xcb/ecore_xcb_randr.c
index 510da49..62f7618 100644
--- a/libraries/ecore/src/lib/ecore_x/xcb/ecore_xcb_randr.c
+++ b/libraries/ecore/src/lib/ecore_x/xcb/ecore_xcb_randr.c
@@ -1528,9 +1528,9 @@ ecore_x_randr_crtc_geometry_get(Ecore_X_Window root,
1528 1528
1529/** 1529/**
1530 * @brief sets a CRTC relative to another one. 1530 * @brief sets a CRTC relative to another one.
1531 * @param crtc_r1 the CRTC to be positioned. 1531 * @param crtc1 the CRTC to be positioned.
1532 * @param crtc_r2 the CRTC the position should be relative to 1532 * @param crtc2 the CRTC the position should be relative to
1533 * @param position the relation between the crtcs 1533 * @param policy the relation between the crtcs
1534 * @param alignment in case CRTCs size differ, aligns CRTC1 accordingly at CRTC2's 1534 * @param alignment in case CRTCs size differ, aligns CRTC1 accordingly at CRTC2's
1535 * borders 1535 * borders
1536 * @return EINA_TRUE if crtc could be successfully positioned. EINA_FALSE if 1536 * @return EINA_TRUE if crtc could be successfully positioned. EINA_FALSE if
@@ -2449,6 +2449,45 @@ ecore_x_randr_output_backlight_level_set(Ecore_X_Window root,
2449 return EINA_FALSE; 2449 return EINA_FALSE;
2450} 2450}
2451 2451
2452/*
2453 * @brief check if a backlight is available
2454 * @return whether a blacklight is available
2455 */
2456EAPI Eina_Bool
2457ecore_x_randr_output_backlight_available(void)
2458{
2459#ifdef ECORE_XCB_RANDR
2460 Ecore_X_Atom _backlight;
2461 xcb_intern_atom_cookie_t acookie;
2462 xcb_intern_atom_reply_t *areply;
2463#endif
2464
2465 LOGFN(__FILE__, __LINE__, __FUNCTION__);
2466 CHECK_XCB_CONN;
2467
2468#ifdef ECORE_XCB_RANDR
2469 RANDR_CHECK_1_2_RET(EINA_FALSE);
2470
2471 acookie =
2472 xcb_intern_atom_unchecked(_ecore_xcb_conn, 1,
2473 strlen("Backlight"), "Backlight");
2474 areply = xcb_intern_atom_reply(_ecore_xcb_conn, acookie, NULL);
2475
2476 if (!areply)
2477 {
2478 ERR("Backlight property is not suppported on this server or driver");
2479 return EINA_FALSE;
2480 }
2481 else
2482 {
2483 _backlight = areply->atom;
2484 free(areply);
2485 return EINA_TRUE;
2486 }
2487#endif
2488 return EINA_FALSE;
2489}
2490
2452EAPI int 2491EAPI int
2453ecore_x_randr_edid_version_get(unsigned char *edid, unsigned long edid_length) 2492ecore_x_randr_edid_version_get(unsigned char *edid, unsigned long edid_length)
2454{ 2493{
diff --git a/libraries/ecore/src/lib/ecore_x/xcb/ecore_xcb_window.c b/libraries/ecore/src/lib/ecore_x/xcb/ecore_xcb_window.c
index 2616c93..27bceaf 100644
--- a/libraries/ecore/src/lib/ecore_x/xcb/ecore_xcb_window.c
+++ b/libraries/ecore/src/lib/ecore_x/xcb/ecore_xcb_window.c
@@ -783,13 +783,14 @@ ecore_x_window_focus(Ecore_X_Window win)
783 */ 783 */
784EAPI void 784EAPI void
785ecore_x_window_focus_at_time(Ecore_X_Window win, 785ecore_x_window_focus_at_time(Ecore_X_Window win,
786 Ecore_X_Time time) 786 Ecore_X_Time time __UNUSED__)
787{ 787{
788 LOGFN(__FILE__, __LINE__, __FUNCTION__); 788 LOGFN(__FILE__, __LINE__, __FUNCTION__);
789 CHECK_XCB_CONN; 789 CHECK_XCB_CONN;
790 790
791 if (!win) win = ((xcb_screen_t *)_ecore_xcb_screen)->root; 791 if (!win) win = ((xcb_screen_t *)_ecore_xcb_screen)->root;
792 xcb_set_input_focus(_ecore_xcb_conn, XCB_INPUT_FOCUS_PARENT, win, time); 792 xcb_set_input_focus(_ecore_xcb_conn,
793 XCB_INPUT_FOCUS_PARENT, win, XCB_CURRENT_TIME);
793// ecore_x_flush(); 794// ecore_x_flush();
794} 795}
795 796
diff --git a/libraries/ecore/src/lib/ecore_x/xcb/ecore_xcb_xfixes.c b/libraries/ecore/src/lib/ecore_x/xcb/ecore_xcb_xfixes.c
index bf9d5ee..bbca2a5 100644
--- a/libraries/ecore/src/lib/ecore_x/xcb/ecore_xcb_xfixes.c
+++ b/libraries/ecore/src/lib/ecore_x/xcb/ecore_xcb_xfixes.c
@@ -178,7 +178,7 @@ ecore_x_region_new_from_bitmap(Ecore_X_Pixmap bitmap)
178 178
179/** 179/**
180 * Create a region from a window. 180 * Create a region from a window.
181 * @param window The window used to initialize the region. 181 * @param win The window used to initialize the region.
182 * @param type The type of the region. 182 * @param type The type of the region.
183 * @return The newly created region. 183 * @return The newly created region.
184 * 184 *
@@ -609,8 +609,8 @@ ecore_x_region_expand(Ecore_X_Region dest,
609 * Change clip-mask in a graphic context to the specified region. 609 * Change clip-mask in a graphic context to the specified region.
610 * @param region The region to change. 610 * @param region The region to change.
611 * @param gc The clip-mask graphic context. 611 * @param gc The clip-mask graphic context.
612 * @param x_origin The horizontal translation. 612 * @param x The horizontal translation.
613 * @param y_origin The vertical translation. 613 * @param y The vertical translation.
614 * 614 *
615 * Changes clip-mask in @p gc to the specified @p region and 615 * Changes clip-mask in @p gc to the specified @p region and
616 * sets the clip origin with the values of @p x_origin and @p y_origin. 616 * sets the clip origin with the values of @p x_origin and @p y_origin.
@@ -643,8 +643,8 @@ ecore_x_region_gc_clip_set(Ecore_X_Region region,
643 * @param region The region. 643 * @param region The region.
644 * @param dest The window whose shape is changed. 644 * @param dest The window whose shape is changed.
645 * @param type The kind of shape. 645 * @param type The kind of shape.
646 * @param x_offset The horizontal offset. 646 * @param x The horizontal offset.
647 * @param y_offset The vertical offset. 647 * @param y The vertical offset.
648 * 648 *
649 * Set the specified Shape extension region of @p window to @p region, 649 * Set the specified Shape extension region of @p window to @p region,
650 * offset by @p x_offset and @p y_offset. Future changes to region 650 * offset by @p x_offset and @p y_offset. Future changes to region
@@ -673,8 +673,8 @@ ecore_x_region_window_shape_set(Ecore_X_Region region,
673 * Change clip-mask in picture to the specified region. 673 * Change clip-mask in picture to the specified region.
674 * @param region The region. 674 * @param region The region.
675 * @param picture The picture. 675 * @param picture The picture.
676 * @param x_origin The X coordinate of the origin. 676 * @param x The X coordinate of the origin.
677 * @param y_origin The Y coordinate of the origin. 677 * @param y The Y coordinate of the origin.
678 * 678 *
679 * Changes clip-mask in picture to the specified @p region 679 * Changes clip-mask in picture to the specified @p region
680 * and sets the clip origin. Input and output will be clipped to 680 * and sets the clip origin. Input and output will be clipped to
diff --git a/libraries/ecore/src/lib/ecore_x/xlib/Makefile.in b/libraries/ecore/src/lib/ecore_x/xlib/Makefile.in
index e1026e5..27a2841 100644
--- a/libraries/ecore/src/lib/ecore_x/xlib/Makefile.in
+++ b/libraries/ecore/src/lib/ecore_x/xlib/Makefile.in
@@ -252,10 +252,10 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
252PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 252PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
253PIXMAN_LIBS = @PIXMAN_LIBS@ 253PIXMAN_LIBS = @PIXMAN_LIBS@
254PKG_CONFIG = @PKG_CONFIG@ 254PKG_CONFIG = @PKG_CONFIG@
255PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
256PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
257POSUB = @POSUB@ 255POSUB = @POSUB@
258RANLIB = @RANLIB@ 256RANLIB = @RANLIB@
257SCIM_CFLAGS = @SCIM_CFLAGS@
258SCIM_LIBS = @SCIM_LIBS@
259SDL_CFLAGS = @SDL_CFLAGS@ 259SDL_CFLAGS = @SDL_CFLAGS@
260SDL_CONFIG = @SDL_CONFIG@ 260SDL_CONFIG = @SDL_CONFIG@
261SDL_LIBS = @SDL_LIBS@ 261SDL_LIBS = @SDL_LIBS@
@@ -274,6 +274,10 @@ TSLIB_LIBS = @TSLIB_LIBS@
274USE_NLS = @USE_NLS@ 274USE_NLS = @USE_NLS@
275VERSION = @VERSION@ 275VERSION = @VERSION@
276VMAJ = @VMAJ@ 276VMAJ = @VMAJ@
277WAYLAND_CFLAGS = @WAYLAND_CFLAGS@
278WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
279WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
280WAYLAND_LIBS = @WAYLAND_LIBS@
277WIN32_CFLAGS = @WIN32_CFLAGS@ 281WIN32_CFLAGS = @WIN32_CFLAGS@
278WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 282WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
279WIN32_LIBS = @WIN32_LIBS@ 283WIN32_LIBS = @WIN32_LIBS@
@@ -387,6 +391,8 @@ ecore_imf_cflags = @ecore_imf_cflags@
387ecore_imf_evas_cflags = @ecore_imf_evas_cflags@ 391ecore_imf_evas_cflags = @ecore_imf_evas_cflags@
388ecore_imf_evas_libs = @ecore_imf_evas_libs@ 392ecore_imf_evas_libs = @ecore_imf_evas_libs@
389ecore_imf_libs = @ecore_imf_libs@ 393ecore_imf_libs = @ecore_imf_libs@
394ecore_imf_scim_cflags = @ecore_imf_scim_cflags@
395ecore_imf_scim_libs = @ecore_imf_scim_libs@
390ecore_imf_xim_cflags = @ecore_imf_xim_cflags@ 396ecore_imf_xim_cflags = @ecore_imf_xim_cflags@
391ecore_imf_xim_libs = @ecore_imf_xim_libs@ 397ecore_imf_xim_libs = @ecore_imf_xim_libs@
392ecore_input_cflags = @ecore_input_cflags@ 398ecore_input_cflags = @ecore_input_cflags@
@@ -399,6 +405,8 @@ ecore_psl1ght_cflags = @ecore_psl1ght_cflags@
399ecore_psl1ght_libs = @ecore_psl1ght_libs@ 405ecore_psl1ght_libs = @ecore_psl1ght_libs@
400ecore_sdl_cflags = @ecore_sdl_cflags@ 406ecore_sdl_cflags = @ecore_sdl_cflags@
401ecore_sdl_libs = @ecore_sdl_libs@ 407ecore_sdl_libs = @ecore_sdl_libs@
408ecore_wayland_cflags = @ecore_wayland_cflags@
409ecore_wayland_libs = @ecore_wayland_libs@
402ecore_win32_cflags = @ecore_win32_cflags@ 410ecore_win32_cflags = @ecore_win32_cflags@
403ecore_win32_libs = @ecore_win32_libs@ 411ecore_win32_libs = @ecore_win32_libs@
404ecore_wince_cflags = @ecore_wince_cflags@ 412ecore_wince_cflags = @ecore_wince_cflags@
@@ -443,12 +451,14 @@ requirements_ecore_fb = @requirements_ecore_fb@
443requirements_ecore_file = @requirements_ecore_file@ 451requirements_ecore_file = @requirements_ecore_file@
444requirements_ecore_imf = @requirements_ecore_imf@ 452requirements_ecore_imf = @requirements_ecore_imf@
445requirements_ecore_imf_evas = @requirements_ecore_imf_evas@ 453requirements_ecore_imf_evas = @requirements_ecore_imf_evas@
454requirements_ecore_imf_scim = @requirements_ecore_imf_scim@
446requirements_ecore_imf_xim = @requirements_ecore_imf_xim@ 455requirements_ecore_imf_xim = @requirements_ecore_imf_xim@
447requirements_ecore_input = @requirements_ecore_input@ 456requirements_ecore_input = @requirements_ecore_input@
448requirements_ecore_input_evas = @requirements_ecore_input_evas@ 457requirements_ecore_input_evas = @requirements_ecore_input_evas@
449requirements_ecore_ipc = @requirements_ecore_ipc@ 458requirements_ecore_ipc = @requirements_ecore_ipc@
450requirements_ecore_psl1ght = @requirements_ecore_psl1ght@ 459requirements_ecore_psl1ght = @requirements_ecore_psl1ght@
451requirements_ecore_sdl = @requirements_ecore_sdl@ 460requirements_ecore_sdl = @requirements_ecore_sdl@
461requirements_ecore_wayland = @requirements_ecore_wayland@
452requirements_ecore_win32 = @requirements_ecore_win32@ 462requirements_ecore_win32 = @requirements_ecore_win32@
453requirements_ecore_wince = @requirements_ecore_wince@ 463requirements_ecore_wince = @requirements_ecore_wince@
454requirements_ecore_x = @requirements_ecore_x@ 464requirements_ecore_x = @requirements_ecore_x@
diff --git a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x.c b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x.c
index 844ab04..6d275bc 100644
--- a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x.c
+++ b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x.c
@@ -19,9 +19,9 @@
19#include "Ecore_X_Atoms.h" 19#include "Ecore_X_Atoms.h"
20#include "Ecore_Input.h" 20#include "Ecore_Input.h"
21 21
22static Eina_Bool _ecore_x_fd_handler(void *data, 22static Eina_Bool _ecore_x_fd_handler(void *data,
23 Ecore_Fd_Handler *fd_handler); 23 Ecore_Fd_Handler *fd_handler);
24static Eina_Bool _ecore_x_fd_handler_buf(void *data, 24static Eina_Bool _ecore_x_fd_handler_buf(void *data,
25 Ecore_Fd_Handler *fd_handler); 25 Ecore_Fd_Handler *fd_handler);
26static int _ecore_x_key_mask_get(KeySym sym); 26static int _ecore_x_key_mask_get(KeySym sym);
27static int _ecore_x_event_modifier(unsigned int state); 27static int _ecore_x_event_modifier(unsigned int state);
@@ -139,9 +139,9 @@ EAPI int ECORE_X_LOCK_SHIFT = 0;
139#ifdef LOGRT 139#ifdef LOGRT
140static double t0 = 0.0; 140static double t0 = 0.0;
141static Status (*_logrt_real_reply)(Display *disp, 141static Status (*_logrt_real_reply)(Display *disp,
142 void *rep, 142 void *rep,
143 int extra, 143 int extra,
144 Bool discard) = NULL; 144 Bool discard) = NULL;
145static void 145static void
146_logrt_init(void) 146_logrt_init(void)
147{ 147{
@@ -159,13 +159,13 @@ _logrt_init(void)
159 159
160 _logrt_real_reply = dlsym(lib, "_XReply"); 160 _logrt_real_reply = dlsym(lib, "_XReply");
161 t0 = ecore_time_get(); 161 t0 = ecore_time_get();
162} /* _logrt_init */ 162}
163 163
164Status 164Status
165_XReply(Display *disp, 165_XReply(Display *disp,
166 void *rep, 166 void *rep,
167 int extra, 167 int extra,
168 Bool discard) 168 Bool discard)
169{ 169{
170 void *bt[128]; 170 void *bt[128];
171 int i, n; 171 int i, n;
@@ -207,7 +207,7 @@ _XReply(Display *disp,
207 207
208 // fixme: logme 208 // fixme: logme
209 return _logrt_real_reply(disp, rep, extra, discard); 209 return _logrt_real_reply(disp, rep, extra, discard);
210} /* _XReply */ 210}
211 211
212#endif /* ifdef LOGRT */ 212#endif /* ifdef LOGRT */
213 213
@@ -215,35 +215,35 @@ void
215_ecore_x_modifiers_get(void) 215_ecore_x_modifiers_get(void)
216{ 216{
217 /* everything has these... unless its like a pda... :) */ 217 /* everything has these... unless its like a pda... :) */
218 ECORE_X_MODIFIER_SHIFT = _ecore_x_key_mask_get(XK_Shift_L); 218 ECORE_X_MODIFIER_SHIFT = _ecore_x_key_mask_get(XK_Shift_L);
219 ECORE_X_MODIFIER_CTRL = _ecore_x_key_mask_get(XK_Control_L); 219 ECORE_X_MODIFIER_CTRL = _ecore_x_key_mask_get(XK_Control_L);
220 220
221 /* apple's xdarwin has no alt!!!! */ 221 /* apple's xdarwin has no alt!!!! */
222 ECORE_X_MODIFIER_ALT = _ecore_x_key_mask_get(XK_Alt_L); 222 ECORE_X_MODIFIER_ALT = _ecore_x_key_mask_get(XK_Alt_L);
223 if (!ECORE_X_MODIFIER_ALT) 223 if (!ECORE_X_MODIFIER_ALT)
224 ECORE_X_MODIFIER_ALT = _ecore_x_key_mask_get(XK_Meta_L); 224 ECORE_X_MODIFIER_ALT = _ecore_x_key_mask_get(XK_Meta_L);
225 225
226 if (!ECORE_X_MODIFIER_ALT) 226 if (!ECORE_X_MODIFIER_ALT)
227 ECORE_X_MODIFIER_ALT = _ecore_x_key_mask_get(XK_Super_L); 227 ECORE_X_MODIFIER_ALT = _ecore_x_key_mask_get(XK_Super_L);
228 228
229 /* the windows key... a valid modifier :) */ 229 /* the windows key... a valid modifier :) */
230 ECORE_X_MODIFIER_WIN = _ecore_x_key_mask_get(XK_Super_L); 230 ECORE_X_MODIFIER_WIN = _ecore_x_key_mask_get(XK_Super_L);
231 if (!ECORE_X_MODIFIER_WIN) 231 if (!ECORE_X_MODIFIER_WIN)
232 ECORE_X_MODIFIER_WIN = _ecore_x_key_mask_get(XK_Mode_switch); 232 ECORE_X_MODIFIER_WIN = _ecore_x_key_mask_get(XK_Mode_switch);
233 233
234 if (!ECORE_X_MODIFIER_WIN) 234 if (!ECORE_X_MODIFIER_WIN)
235 ECORE_X_MODIFIER_WIN = _ecore_x_key_mask_get(XK_Meta_L); 235 ECORE_X_MODIFIER_WIN = _ecore_x_key_mask_get(XK_Meta_L);
236 236
237 if (ECORE_X_MODIFIER_WIN == ECORE_X_MODIFIER_ALT) 237 if (ECORE_X_MODIFIER_WIN == ECORE_X_MODIFIER_ALT)
238 ECORE_X_MODIFIER_WIN = 0; 238 ECORE_X_MODIFIER_WIN = 0;
239 239
240 if (ECORE_X_MODIFIER_ALT == ECORE_X_MODIFIER_CTRL) 240 if (ECORE_X_MODIFIER_ALT == ECORE_X_MODIFIER_CTRL)
241 ECORE_X_MODIFIER_ALT = 0; 241 ECORE_X_MODIFIER_ALT = 0;
242 242
243 ECORE_X_LOCK_SCROLL = _ecore_x_key_mask_get(XK_Scroll_Lock); 243 ECORE_X_LOCK_SCROLL = _ecore_x_key_mask_get(XK_Scroll_Lock);
244 ECORE_X_LOCK_NUM = _ecore_x_key_mask_get(XK_Num_Lock); 244 ECORE_X_LOCK_NUM = _ecore_x_key_mask_get(XK_Num_Lock);
245 ECORE_X_LOCK_CAPS = _ecore_x_key_mask_get(XK_Caps_Lock); 245 ECORE_X_LOCK_CAPS = _ecore_x_key_mask_get(XK_Caps_Lock);
246 ECORE_X_LOCK_SHIFT = _ecore_x_key_mask_get(XK_Shift_Lock); 246 ECORE_X_LOCK_SHIFT = _ecore_x_key_mask_get(XK_Shift_Lock);
247} 247}
248 248
249/** 249/**
@@ -300,7 +300,7 @@ ecore_x_init(const char *name)
300 eina_init(); 300 eina_init();
301 _ecore_xlib_log_dom = eina_log_domain_register 301 _ecore_xlib_log_dom = eina_log_domain_register
302 ("ecore_x", ECORE_XLIB_DEFAULT_LOG_COLOR); 302 ("ecore_x", ECORE_XLIB_DEFAULT_LOG_COLOR);
303 if(_ecore_xlib_log_dom < 0) 303 if (_ecore_xlib_log_dom < 0)
304 { 304 {
305 EINA_LOG_ERR( 305 EINA_LOG_ERR(
306 "Impossible to create a log domain for the Ecore Xlib module."); 306 "Impossible to create a log domain for the Ecore Xlib module.");
@@ -375,7 +375,7 @@ ecore_x_init(const char *name)
375 375
376#ifdef ECORE_XGESTURE 376#ifdef ECORE_XGESTURE
377 if (XGestureQueryExtension(_ecore_x_disp, &gesture_base, &gesture_err_base)) 377 if (XGestureQueryExtension(_ecore_x_disp, &gesture_base, &gesture_err_base))
378 _ecore_x_event_gesture_id = gesture_base; 378 _ecore_x_event_gesture_id = gesture_base;
379 379
380 ECORE_X_EVENT_HANDLERS_GROW(gesture_base, GestureNumberEvents); 380 ECORE_X_EVENT_HANDLERS_GROW(gesture_base, GestureNumberEvents);
381#endif /* ifdef ECORE_XGESTURE */ 381#endif /* ifdef ECORE_XGESTURE */
@@ -497,20 +497,20 @@ ecore_x_init(const char *name)
497#ifdef ECORE_XGESTURE 497#ifdef ECORE_XGESTURE
498 if (_ecore_x_event_gesture_id) 498 if (_ecore_x_event_gesture_id)
499 { 499 {
500 _ecore_x_event_handlers[_ecore_x_event_gesture_id + GestureNotifyFlick] = 500 _ecore_x_event_handlers[_ecore_x_event_gesture_id + GestureNotifyFlick] =
501 _ecore_x_event_handle_gesture_notify_flick; 501 _ecore_x_event_handle_gesture_notify_flick;
502 _ecore_x_event_handlers[_ecore_x_event_gesture_id + GestureNotifyPan] = 502 _ecore_x_event_handlers[_ecore_x_event_gesture_id + GestureNotifyPan] =
503 _ecore_x_event_handle_gesture_notify_pan; 503 _ecore_x_event_handle_gesture_notify_pan;
504 _ecore_x_event_handlers[_ecore_x_event_gesture_id + GestureNotifyPinchRotation] = 504 _ecore_x_event_handlers[_ecore_x_event_gesture_id + GestureNotifyPinchRotation] =
505 _ecore_x_event_handle_gesture_notify_pinchrotation; 505 _ecore_x_event_handle_gesture_notify_pinchrotation;
506 _ecore_x_event_handlers[_ecore_x_event_gesture_id + GestureNotifyTap] = 506 _ecore_x_event_handlers[_ecore_x_event_gesture_id + GestureNotifyTap] =
507 _ecore_x_event_handle_gesture_notify_tap; 507 _ecore_x_event_handle_gesture_notify_tap;
508 _ecore_x_event_handlers[_ecore_x_event_gesture_id + GestureNotifyTapNHold] = 508 _ecore_x_event_handlers[_ecore_x_event_gesture_id + GestureNotifyTapNHold] =
509 _ecore_x_event_handle_gesture_notify_tapnhold; 509 _ecore_x_event_handle_gesture_notify_tapnhold;
510 _ecore_x_event_handlers[_ecore_x_event_gesture_id + GestureNotifyHold] = 510 _ecore_x_event_handlers[_ecore_x_event_gesture_id + GestureNotifyHold] =
511 _ecore_x_event_handle_gesture_notify_hold; 511 _ecore_x_event_handle_gesture_notify_hold;
512 _ecore_x_event_handlers[_ecore_x_event_gesture_id + GestureNotifyGroup] = 512 _ecore_x_event_handlers[_ecore_x_event_gesture_id + GestureNotifyGroup] =
513 _ecore_x_event_handle_gesture_notify_group; 513 _ecore_x_event_handle_gesture_notify_group;
514 } 514 }
515 515
516#endif /* ifdef ECORE_XGESTURE */ 516#endif /* ifdef ECORE_XGESTURE */
@@ -641,7 +641,7 @@ shutdown_eina:
641 eina_shutdown(); 641 eina_shutdown();
642 642
643 return --_ecore_x_init_count; 643 return --_ecore_x_init_count;
644} /* ecore_x_init */ 644}
645 645
646static int 646static int
647_ecore_x_shutdown(int close_display) 647_ecore_x_shutdown(int close_display)
@@ -683,7 +683,7 @@ _ecore_x_shutdown(int close_display)
683 eina_shutdown(); 683 eina_shutdown();
684 684
685 return _ecore_x_init_count; 685 return _ecore_x_init_count;
686} /* _ecore_x_shutdown */ 686}
687 687
688/** 688/**
689 * Shuts down the Ecore X library. 689 * Shuts down the Ecore X library.
@@ -699,7 +699,7 @@ EAPI int
699ecore_x_shutdown(void) 699ecore_x_shutdown(void)
700{ 700{
701 return _ecore_x_shutdown(1); 701 return _ecore_x_shutdown(1);
702} /* ecore_x_shutdown */ 702}
703 703
704/** 704/**
705 * Shuts down the Ecore X library. 705 * Shuts down the Ecore X library.
@@ -712,7 +712,7 @@ EAPI int
712ecore_x_disconnect(void) 712ecore_x_disconnect(void)
713{ 713{
714 return _ecore_x_shutdown(0); 714 return _ecore_x_shutdown(0);
715} /* ecore_x_disconnect */ 715}
716 716
717/** 717/**
718 * @defgroup Ecore_X_Display_Attr_Group X Display Attributes 718 * @defgroup Ecore_X_Display_Attr_Group X Display Attributes
@@ -729,7 +729,7 @@ EAPI Ecore_X_Display *
729ecore_x_display_get(void) 729ecore_x_display_get(void)
730{ 730{
731 return (Ecore_X_Display *)_ecore_x_disp; 731 return (Ecore_X_Display *)_ecore_x_disp;
732} /* ecore_x_display_get */ 732}
733 733
734/** 734/**
735 * Retrieves the X display file descriptor. 735 * Retrieves the X display file descriptor.
@@ -741,7 +741,7 @@ ecore_x_fd_get(void)
741{ 741{
742 LOGFN(__FILE__, __LINE__, __FUNCTION__); 742 LOGFN(__FILE__, __LINE__, __FUNCTION__);
743 return ConnectionNumber(_ecore_x_disp); 743 return ConnectionNumber(_ecore_x_disp);
744} /* ecore_x_fd_get */ 744}
745 745
746/** 746/**
747 * Retrieves the Ecore_X_Screen handle used for the current X connection. 747 * Retrieves the Ecore_X_Screen handle used for the current X connection.
@@ -753,7 +753,7 @@ ecore_x_default_screen_get(void)
753{ 753{
754 LOGFN(__FILE__, __LINE__, __FUNCTION__); 754 LOGFN(__FILE__, __LINE__, __FUNCTION__);
755 return (Ecore_X_Screen *)DefaultScreenOfDisplay(_ecore_x_disp); 755 return (Ecore_X_Screen *)DefaultScreenOfDisplay(_ecore_x_disp);
756} /* ecore_x_default_screen_get */ 756}
757 757
758/** 758/**
759 * Retrieves the size of an Ecore_X_Screen. 759 * Retrieves the size of an Ecore_X_Screen.
@@ -767,8 +767,8 @@ ecore_x_default_screen_get(void)
767 */ 767 */
768EAPI void 768EAPI void
769ecore_x_screen_size_get(const Ecore_X_Screen *screen, 769ecore_x_screen_size_get(const Ecore_X_Screen *screen,
770 int *w, 770 int *w,
771 int *h) 771 int *h)
772{ 772{
773 Screen *s = (Screen *)screen; 773 Screen *s = (Screen *)screen;
774 LOGFN(__FILE__, __LINE__, __FUNCTION__); 774 LOGFN(__FILE__, __LINE__, __FUNCTION__);
@@ -840,7 +840,7 @@ ecore_x_double_click_time_set(double t)
840 t = 0.0; 840 t = 0.0;
841 841
842 _ecore_x_double_click_time = t; 842 _ecore_x_double_click_time = t;
843} /* ecore_x_double_click_time_set */ 843}
844 844
845/** 845/**
846 * Retrieves the double and triple click flag timeout. 846 * Retrieves the double and triple click flag timeout.
@@ -854,7 +854,7 @@ EAPI double
854ecore_x_double_click_time_get(void) 854ecore_x_double_click_time_get(void)
855{ 855{
856 return _ecore_x_double_click_time; 856 return _ecore_x_double_click_time;
857} /* ecore_x_double_click_time_get */ 857}
858 858
859/** 859/**
860 * @defgroup Ecore_X_Flush_Group X Synchronization Functions 860 * @defgroup Ecore_X_Flush_Group X Synchronization Functions
@@ -872,7 +872,7 @@ ecore_x_flush(void)
872{ 872{
873 LOGFN(__FILE__, __LINE__, __FUNCTION__); 873 LOGFN(__FILE__, __LINE__, __FUNCTION__);
874 XFlush(_ecore_x_disp); 874 XFlush(_ecore_x_disp);
875} /* ecore_x_flush */ 875}
876 876
877/** 877/**
878 * Flushes the command buffer and waits until all requests have been 878 * Flushes the command buffer and waits until all requests have been
@@ -884,7 +884,7 @@ ecore_x_sync(void)
884{ 884{
885 LOGFN(__FILE__, __LINE__, __FUNCTION__); 885 LOGFN(__FILE__, __LINE__, __FUNCTION__);
886 XSync(_ecore_x_disp, False); 886 XSync(_ecore_x_disp, False);
887} /* ecore_x_sync */ 887}
888 888
889/** 889/**
890 * Kill all clients with subwindows under a given window. 890 * Kill all clients with subwindows under a given window.
@@ -920,7 +920,7 @@ ecore_x_killall(Ecore_X_Window root)
920 } 920 }
921 XUngrabServer(_ecore_x_disp); 921 XUngrabServer(_ecore_x_disp);
922 XSync(_ecore_x_disp, False); 922 XSync(_ecore_x_disp, False);
923} /* ecore_x_killall */ 923}
924 924
925/** 925/**
926 * Kill a specific client 926 * Kill a specific client
@@ -934,7 +934,7 @@ ecore_x_kill(Ecore_X_Window win)
934{ 934{
935 LOGFN(__FILE__, __LINE__, __FUNCTION__); 935 LOGFN(__FILE__, __LINE__, __FUNCTION__);
936 XKillClient(_ecore_x_disp, win); 936 XKillClient(_ecore_x_disp, win);
937} /* ecore_x_kill */ 937}
938 938
939/** 939/**
940 * Return the last event time 940 * Return the last event time
@@ -943,7 +943,7 @@ EAPI Ecore_X_Time
943ecore_x_current_time_get(void) 943ecore_x_current_time_get(void)
944{ 944{
945 return _ecore_x_event_last_time; 945 return _ecore_x_event_last_time;
946} /* ecore_x_current_time_get */ 946}
947 947
948/** 948/**
949 * Return the screen DPI 949 * Return the screen DPI
@@ -965,7 +965,7 @@ ecore_x_dpi_get(void)
965 return 75; 965 return 75;
966 966
967 return (((s->width * 254) / s->mwidth) + 5) / 10; 967 return (((s->width * 254) / s->mwidth) + 5) / 10;
968} /* ecore_x_dpi_get */ 968}
969 969
970/** 970/**
971 * Invoke the standard system beep to alert users 971 * Invoke the standard system beep to alert users
@@ -989,10 +989,10 @@ ecore_x_bell(int percent)
989 return EINA_FALSE; 989 return EINA_FALSE;
990 990
991 return EINA_TRUE; 991 return EINA_TRUE;
992} /* ecore_x_bell */ 992}
993 993
994static Eina_Bool 994static Eina_Bool
995_ecore_x_fd_handler(void *data, 995_ecore_x_fd_handler(void *data,
996 Ecore_Fd_Handler *fd_handler __UNUSED__) 996 Ecore_Fd_Handler *fd_handler __UNUSED__)
997{ 997{
998 Display *d; 998 Display *d;
@@ -1021,10 +1021,10 @@ _ecore_x_fd_handler(void *data,
1021 } 1021 }
1022 } 1022 }
1023 return ECORE_CALLBACK_RENEW; 1023 return ECORE_CALLBACK_RENEW;
1024} /* _ecore_x_fd_handler */ 1024}
1025 1025
1026static Eina_Bool 1026static Eina_Bool
1027_ecore_x_fd_handler_buf(void *data, 1027_ecore_x_fd_handler_buf(void *data,
1028 Ecore_Fd_Handler *fd_handler __UNUSED__) 1028 Ecore_Fd_Handler *fd_handler __UNUSED__)
1029{ 1029{
1030 Display *d; 1030 Display *d;
@@ -1034,7 +1034,7 @@ _ecore_x_fd_handler_buf(void *data,
1034 return ECORE_CALLBACK_RENEW; 1034 return ECORE_CALLBACK_RENEW;
1035 1035
1036 return ECORE_CALLBACK_CANCEL; 1036 return ECORE_CALLBACK_CANCEL;
1037} /* _ecore_x_fd_handler_buf */ 1037}
1038 1038
1039static int 1039static int
1040_ecore_x_key_mask_get(KeySym sym) 1040_ecore_x_key_mask_get(KeySym sym)
@@ -1080,7 +1080,7 @@ _ecore_x_key_mask_get(KeySym sym)
1080 } 1080 }
1081 1081
1082 return 0; 1082 return 0;
1083} /* _ecore_x_key_mask_get */ 1083}
1084 1084
1085/*****************************************************************************/ 1085/*****************************************************************************/
1086/*****************************************************************************/ 1086/*****************************************************************************/
@@ -1132,7 +1132,7 @@ ecore_x_window_root_list(int *num_ret)
1132 overlap++; 1132 overlap++;
1133 } 1133 }
1134 } 1134 }
1135 roots = malloc((num - overlap) * sizeof(Window)); 1135 roots = malloc(MAX((num - overlap) * sizeof(Window), 1));
1136 if (roots) 1136 if (roots)
1137 { 1137 {
1138 int k; 1138 int k;
@@ -1195,7 +1195,7 @@ ecore_x_window_root_list(int *num_ret)
1195 roots[i] = RootWindow(_ecore_x_disp, i); 1195 roots[i] = RootWindow(_ecore_x_disp, i);
1196#endif /* ifdef ECORE_XPRINT */ 1196#endif /* ifdef ECORE_XPRINT */
1197 return roots; 1197 return roots;
1198} /* ecore_x_window_root_list */ 1198}
1199 1199
1200EAPI Ecore_X_Window 1200EAPI Ecore_X_Window
1201ecore_x_window_root_first_get(void) 1201ecore_x_window_root_first_get(void)
@@ -1217,7 +1217,7 @@ ecore_x_window_root_first_get(void)
1217 free(roots); 1217 free(roots);
1218 return root; 1218 return root;
1219 */ 1219 */
1220} /* ecore_x_window_root_first_get */ 1220}
1221 1221
1222static void _ecore_x_window_manage_error(void *data); 1222static void _ecore_x_window_manage_error(void *data);
1223 1223
@@ -1228,7 +1228,7 @@ _ecore_x_window_manage_error(void *data __UNUSED__)
1228 if ((ecore_x_error_request_get() == X_ChangeWindowAttributes) && 1228 if ((ecore_x_error_request_get() == X_ChangeWindowAttributes) &&
1229 (ecore_x_error_code_get() == BadAccess)) 1229 (ecore_x_error_code_get() == BadAccess))
1230 _ecore_x_window_manage_failed = 1; 1230 _ecore_x_window_manage_failed = 1;
1231} /* _ecore_x_window_manage_error */ 1231}
1232 1232
1233EAPI Eina_Bool 1233EAPI Eina_Bool
1234ecore_x_window_manage(Ecore_X_Window win) 1234ecore_x_window_manage(Ecore_X_Window win)
@@ -1262,7 +1262,7 @@ ecore_x_window_manage(Ecore_X_Window win)
1262 } 1262 }
1263 1263
1264 return EINA_TRUE; 1264 return EINA_TRUE;
1265} /* ecore_x_window_manage */ 1265}
1266 1266
1267EAPI void 1267EAPI void
1268ecore_x_window_container_manage(Ecore_X_Window win) 1268ecore_x_window_container_manage(Ecore_X_Window win)
@@ -1271,7 +1271,7 @@ ecore_x_window_container_manage(Ecore_X_Window win)
1271 XSelectInput(_ecore_x_disp, win, 1271 XSelectInput(_ecore_x_disp, win,
1272 SubstructureRedirectMask | 1272 SubstructureRedirectMask |
1273 SubstructureNotifyMask); 1273 SubstructureNotifyMask);
1274} /* ecore_x_window_container_manage */ 1274}
1275 1275
1276EAPI void 1276EAPI void
1277ecore_x_window_client_manage(Ecore_X_Window win) 1277ecore_x_window_client_manage(Ecore_X_Window win)
@@ -1287,7 +1287,7 @@ ecore_x_window_client_manage(Ecore_X_Window win)
1287 SubstructureNotifyMask 1287 SubstructureNotifyMask
1288 ); 1288 );
1289 XShapeSelectInput(_ecore_x_disp, win, ShapeNotifyMask); 1289 XShapeSelectInput(_ecore_x_disp, win, ShapeNotifyMask);
1290} /* ecore_x_window_client_manage */ 1290}
1291 1291
1292EAPI void 1292EAPI void
1293ecore_x_window_sniff(Ecore_X_Window win) 1293ecore_x_window_sniff(Ecore_X_Window win)
@@ -1296,7 +1296,7 @@ ecore_x_window_sniff(Ecore_X_Window win)
1296 XSelectInput(_ecore_x_disp, win, 1296 XSelectInput(_ecore_x_disp, win,
1297 PropertyChangeMask | 1297 PropertyChangeMask |
1298 SubstructureNotifyMask); 1298 SubstructureNotifyMask);
1299} /* ecore_x_window_sniff */ 1299}
1300 1300
1301EAPI void 1301EAPI void
1302ecore_x_window_client_sniff(Ecore_X_Window win) 1302ecore_x_window_client_sniff(Ecore_X_Window win)
@@ -1310,10 +1310,10 @@ ecore_x_window_client_sniff(Ecore_X_Window win)
1310 StructureNotifyMask | 1310 StructureNotifyMask |
1311 SubstructureNotifyMask); 1311 SubstructureNotifyMask);
1312 XShapeSelectInput(_ecore_x_disp, win, ShapeNotifyMask); 1312 XShapeSelectInput(_ecore_x_disp, win, ShapeNotifyMask);
1313} /* ecore_x_window_client_sniff */ 1313}
1314 1314
1315EAPI Eina_Bool 1315EAPI Eina_Bool
1316ecore_x_window_attributes_get(Ecore_X_Window win, 1316ecore_x_window_attributes_get(Ecore_X_Window win,
1317 Ecore_X_Window_Attributes *att_ret) 1317 Ecore_X_Window_Attributes *att_ret)
1318{ 1318{
1319 XWindowAttributes att; 1319 XWindowAttributes att;
@@ -1353,25 +1353,25 @@ ecore_x_window_attributes_get(Ecore_X_Window win,
1353 att_ret->colormap = att.colormap; 1353 att_ret->colormap = att.colormap;
1354 att_ret->visual = att.visual; 1354 att_ret->visual = att.visual;
1355 return EINA_TRUE; 1355 return EINA_TRUE;
1356} /* ecore_x_window_attributes_get */ 1356}
1357 1357
1358EAPI void 1358EAPI void
1359ecore_x_window_save_set_add(Ecore_X_Window win) 1359ecore_x_window_save_set_add(Ecore_X_Window win)
1360{ 1360{
1361 LOGFN(__FILE__, __LINE__, __FUNCTION__); 1361 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1362 XAddToSaveSet(_ecore_x_disp, win); 1362 XAddToSaveSet(_ecore_x_disp, win);
1363} /* ecore_x_window_save_set_add */ 1363}
1364 1364
1365EAPI void 1365EAPI void
1366ecore_x_window_save_set_del(Ecore_X_Window win) 1366ecore_x_window_save_set_del(Ecore_X_Window win)
1367{ 1367{
1368 LOGFN(__FILE__, __LINE__, __FUNCTION__); 1368 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1369 XRemoveFromSaveSet(_ecore_x_disp, win); 1369 XRemoveFromSaveSet(_ecore_x_disp, win);
1370} /* ecore_x_window_save_set_del */ 1370}
1371 1371
1372EAPI Ecore_X_Window * 1372EAPI Ecore_X_Window *
1373ecore_x_window_children_get(Ecore_X_Window win, 1373ecore_x_window_children_get(Ecore_X_Window win,
1374 int *num) 1374 int *num)
1375{ 1375{
1376 Ecore_X_Window *windows = NULL; 1376 Ecore_X_Window *windows = NULL;
1377 Window root_ret = 0, parent_ret = 0, *children_ret = NULL; 1377 Window root_ret = 0, parent_ret = 0, *children_ret = NULL;
@@ -1398,7 +1398,7 @@ ecore_x_window_children_get(Ecore_X_Window win,
1398 } 1398 }
1399 1399
1400 return windows; 1400 return windows;
1401} /* ecore_x_window_children_get */ 1401}
1402 1402
1403EAPI Eina_Bool 1403EAPI Eina_Bool
1404ecore_x_pointer_control_set(int accel_num, 1404ecore_x_pointer_control_set(int accel_num,
@@ -1408,7 +1408,7 @@ ecore_x_pointer_control_set(int accel_num,
1408 LOGFN(__FILE__, __LINE__, __FUNCTION__); 1408 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1409 return XChangePointerControl(_ecore_x_disp, 1, 1, 1409 return XChangePointerControl(_ecore_x_disp, 1, 1,
1410 accel_num, accel_denom, threshold) ? EINA_TRUE : EINA_FALSE; 1410 accel_num, accel_denom, threshold) ? EINA_TRUE : EINA_FALSE;
1411} /* ecore_x_pointer_control_set */ 1411}
1412 1412
1413EAPI Eina_Bool 1413EAPI Eina_Bool
1414ecore_x_pointer_control_get(int *accel_num, 1414ecore_x_pointer_control_get(int *accel_num,
@@ -1418,23 +1418,23 @@ ecore_x_pointer_control_get(int *accel_num,
1418 LOGFN(__FILE__, __LINE__, __FUNCTION__); 1418 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1419 return XGetPointerControl(_ecore_x_disp, 1419 return XGetPointerControl(_ecore_x_disp,
1420 accel_num, accel_denom, threshold) ? EINA_TRUE : EINA_FALSE; 1420 accel_num, accel_denom, threshold) ? EINA_TRUE : EINA_FALSE;
1421} /* ecore_x_pointer_control_get */ 1421}
1422 1422
1423EAPI Eina_Bool 1423EAPI Eina_Bool
1424ecore_x_pointer_mapping_set(unsigned char *map, 1424ecore_x_pointer_mapping_set(unsigned char *map,
1425 int nmap) 1425 int nmap)
1426{ 1426{
1427 LOGFN(__FILE__, __LINE__, __FUNCTION__); 1427 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1428 return XSetPointerMapping(_ecore_x_disp, map, nmap) ? EINA_TRUE : EINA_FALSE; 1428 return XSetPointerMapping(_ecore_x_disp, map, nmap) ? EINA_TRUE : EINA_FALSE;
1429} /* ecore_x_pointer_mapping_set */ 1429}
1430 1430
1431EAPI Eina_Bool 1431EAPI Eina_Bool
1432ecore_x_pointer_mapping_get(unsigned char *map, 1432ecore_x_pointer_mapping_get(unsigned char *map,
1433 int nmap) 1433 int nmap)
1434{ 1434{
1435 LOGFN(__FILE__, __LINE__, __FUNCTION__); 1435 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1436 return XGetPointerMapping(_ecore_x_disp, map, nmap) ? EINA_TRUE : EINA_FALSE; 1436 return XGetPointerMapping(_ecore_x_disp, map, nmap) ? EINA_TRUE : EINA_FALSE;
1437} /* ecore_x_pointer_mapping_get */ 1437}
1438 1438
1439EAPI Eina_Bool 1439EAPI Eina_Bool
1440ecore_x_pointer_grab(Ecore_X_Window win) 1440ecore_x_pointer_grab(Ecore_X_Window win)
@@ -1448,7 +1448,7 @@ ecore_x_pointer_grab(Ecore_X_Window win)
1448 return EINA_TRUE; 1448 return EINA_TRUE;
1449 1449
1450 return EINA_FALSE; 1450 return EINA_FALSE;
1451} /* ecore_x_pointer_grab */ 1451}
1452 1452
1453EAPI Eina_Bool 1453EAPI Eina_Bool
1454ecore_x_pointer_confine_grab(Ecore_X_Window win) 1454ecore_x_pointer_confine_grab(Ecore_X_Window win)
@@ -1462,23 +1462,23 @@ ecore_x_pointer_confine_grab(Ecore_X_Window win)
1462 return EINA_TRUE; 1462 return EINA_TRUE;
1463 1463
1464 return EINA_FALSE; 1464 return EINA_FALSE;
1465} /* ecore_x_pointer_confine_grab */ 1465}
1466 1466
1467EAPI void 1467EAPI void
1468ecore_x_pointer_ungrab(void) 1468ecore_x_pointer_ungrab(void)
1469{ 1469{
1470 LOGFN(__FILE__, __LINE__, __FUNCTION__); 1470 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1471 XUngrabPointer(_ecore_x_disp, CurrentTime); 1471 XUngrabPointer(_ecore_x_disp, CurrentTime);
1472} /* ecore_x_pointer_ungrab */ 1472}
1473 1473
1474EAPI Eina_Bool 1474EAPI Eina_Bool
1475ecore_x_pointer_warp(Ecore_X_Window win, 1475ecore_x_pointer_warp(Ecore_X_Window win,
1476 int x, 1476 int x,
1477 int y) 1477 int y)
1478{ 1478{
1479 LOGFN(__FILE__, __LINE__, __FUNCTION__); 1479 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1480 return XWarpPointer(_ecore_x_disp, None, win, 0, 0, 0, 0, x, y) ? EINA_TRUE : EINA_FALSE; 1480 return XWarpPointer(_ecore_x_disp, None, win, 0, 0, 0, 0, x, y) ? EINA_TRUE : EINA_FALSE;
1481} /* ecore_x_pointer_warp */ 1481}
1482 1482
1483EAPI Eina_Bool 1483EAPI Eina_Bool
1484ecore_x_keyboard_grab(Ecore_X_Window win) 1484ecore_x_keyboard_grab(Ecore_X_Window win)
@@ -1490,14 +1490,14 @@ ecore_x_keyboard_grab(Ecore_X_Window win)
1490 return EINA_TRUE; 1490 return EINA_TRUE;
1491 1491
1492 return EINA_FALSE; 1492 return EINA_FALSE;
1493} /* ecore_x_keyboard_grab */ 1493}
1494 1494
1495EAPI void 1495EAPI void
1496ecore_x_keyboard_ungrab(void) 1496ecore_x_keyboard_ungrab(void)
1497{ 1497{
1498 LOGFN(__FILE__, __LINE__, __FUNCTION__); 1498 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1499 XUngrabKeyboard(_ecore_x_disp, CurrentTime); 1499 XUngrabKeyboard(_ecore_x_disp, CurrentTime);
1500} /* ecore_x_keyboard_ungrab */ 1500}
1501 1501
1502EAPI void 1502EAPI void
1503ecore_x_grab(void) 1503ecore_x_grab(void)
@@ -1506,7 +1506,7 @@ ecore_x_grab(void)
1506 _ecore_x_grab_count++; 1506 _ecore_x_grab_count++;
1507 if (_ecore_x_grab_count == 1) 1507 if (_ecore_x_grab_count == 1)
1508 XGrabServer(_ecore_x_disp); 1508 XGrabServer(_ecore_x_disp);
1509} /* ecore_x_grab */ 1509}
1510 1510
1511EAPI void 1511EAPI void
1512ecore_x_ungrab(void) 1512ecore_x_ungrab(void)
@@ -1518,32 +1518,32 @@ ecore_x_ungrab(void)
1518 1518
1519 if (_ecore_x_grab_count == 0) 1519 if (_ecore_x_grab_count == 0)
1520 XUngrabServer(_ecore_x_disp); 1520 XUngrabServer(_ecore_x_disp);
1521} /* ecore_x_ungrab */ 1521}
1522 1522
1523int _ecore_window_grabs_num = 0; 1523int _ecore_window_grabs_num = 0;
1524Window *_ecore_window_grabs = NULL; 1524Window *_ecore_window_grabs = NULL;
1525Eina_Bool (*_ecore_window_grab_replay_func)(void *data, 1525Eina_Bool (*_ecore_window_grab_replay_func)(void *data,
1526 int event_type, 1526 int event_type,
1527 void *event); 1527 void *event);
1528void *_ecore_window_grab_replay_data; 1528void *_ecore_window_grab_replay_data;
1529 1529
1530EAPI void 1530EAPI void
1531ecore_x_passive_grab_replay_func_set(Eina_Bool (*func)(void *data, 1531ecore_x_passive_grab_replay_func_set(Eina_Bool (*func)(void *data,
1532 int event_type, 1532 int event_type,
1533 void *event), 1533 void *event),
1534 void *data) 1534 void *data)
1535{ 1535{
1536 LOGFN(__FILE__, __LINE__, __FUNCTION__); 1536 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1537 _ecore_window_grab_replay_func = func; 1537 _ecore_window_grab_replay_func = func;
1538 _ecore_window_grab_replay_data = data; 1538 _ecore_window_grab_replay_data = data;
1539} /* ecore_x_passive_grab_replay_func_set */ 1539}
1540 1540
1541EAPI void 1541EAPI void
1542ecore_x_window_button_grab(Ecore_X_Window win, 1542ecore_x_window_button_grab(Ecore_X_Window win,
1543 int button, 1543 int button,
1544 Ecore_X_Event_Mask event_mask, 1544 Ecore_X_Event_Mask event_mask,
1545 int mod, 1545 int mod,
1546 int any_mod) 1546 int any_mod)
1547{ 1547{
1548 unsigned int b; 1548 unsigned int b;
1549 unsigned int m; 1549 unsigned int m;
@@ -1578,10 +1578,10 @@ ecore_x_window_button_grab(Ecore_X_Window win,
1578 if (!t) return; 1578 if (!t) return;
1579 _ecore_window_grabs = t; 1579 _ecore_window_grabs = t;
1580 _ecore_window_grabs[_ecore_window_grabs_num - 1] = win; 1580 _ecore_window_grabs[_ecore_window_grabs_num - 1] = win;
1581} /* ecore_x_window_button_grab */ 1581}
1582 1582
1583void 1583void
1584_ecore_x_sync_magic_send(int val, 1584_ecore_x_sync_magic_send(int val,
1585 Ecore_X_Window swin) 1585 Ecore_X_Window swin)
1586{ 1586{
1587 XEvent xev; 1587 XEvent xev;
@@ -1597,7 +1597,7 @@ _ecore_x_sync_magic_send(int val,
1597 xev.xclient.data.l[1] = 0x10000000 + val; 1597 xev.xclient.data.l[1] = 0x10000000 + val;
1598 xev.xclient.data.l[2] = swin; 1598 xev.xclient.data.l[2] = swin;
1599 XSendEvent(_ecore_x_disp, _ecore_x_private_win, False, NoEventMask, &xev); 1599 XSendEvent(_ecore_x_disp, _ecore_x_private_win, False, NoEventMask, &xev);
1600} /* _ecore_x_sync_magic_send */ 1600}
1601 1601
1602void 1602void
1603_ecore_x_window_grab_remove(Ecore_X_Window win) 1603_ecore_x_window_grab_remove(Ecore_X_Window win)
@@ -1631,13 +1631,13 @@ _ecore_x_window_grab_remove(Ecore_X_Window win)
1631 _ecore_window_grabs = t; 1631 _ecore_window_grabs = t;
1632 } 1632 }
1633 } 1633 }
1634} /* _ecore_x_window_grab_remove */ 1634}
1635 1635
1636EAPI void 1636EAPI void
1637ecore_x_window_button_ungrab(Ecore_X_Window win, 1637ecore_x_window_button_ungrab(Ecore_X_Window win,
1638 int button, 1638 int button,
1639 int mod, 1639 int mod,
1640 int any_mod) 1640 int any_mod)
1641{ 1641{
1642 unsigned int b; 1642 unsigned int b;
1643 unsigned int m; 1643 unsigned int m;
@@ -1664,16 +1664,16 @@ ecore_x_window_button_ungrab(Ecore_X_Window win,
1664 for (i = 0; i < 8; i++) 1664 for (i = 0; i < 8; i++)
1665 XUngrabButton(_ecore_x_disp, b, m | locks[i], win); 1665 XUngrabButton(_ecore_x_disp, b, m | locks[i], win);
1666 _ecore_x_sync_magic_send(1, win); 1666 _ecore_x_sync_magic_send(1, win);
1667} /* ecore_x_window_button_ungrab */ 1667}
1668 1668
1669int _ecore_key_grabs_num = 0; 1669int _ecore_key_grabs_num = 0;
1670Window *_ecore_key_grabs = NULL; 1670Window *_ecore_key_grabs = NULL;
1671 1671
1672EAPI void 1672EAPI void
1673ecore_x_window_key_grab(Ecore_X_Window win, 1673ecore_x_window_key_grab(Ecore_X_Window win,
1674 const char *key, 1674 const char *key,
1675 int mod, 1675 int mod,
1676 int any_mod) 1676 int any_mod)
1677{ 1677{
1678 KeyCode keycode = 0; 1678 KeyCode keycode = 0;
1679 KeySym keysym; 1679 KeySym keysym;
@@ -1718,7 +1718,7 @@ ecore_x_window_key_grab(Ecore_X_Window win,
1718 if (!t) return; 1718 if (!t) return;
1719 _ecore_key_grabs = t; 1719 _ecore_key_grabs = t;
1720 _ecore_key_grabs[_ecore_key_grabs_num - 1] = win; 1720 _ecore_key_grabs[_ecore_key_grabs_num - 1] = win;
1721} /* ecore_x_window_key_grab */ 1721}
1722 1722
1723void 1723void
1724_ecore_x_key_grab_remove(Ecore_X_Window win) 1724_ecore_x_key_grab_remove(Ecore_X_Window win)
@@ -1751,13 +1751,13 @@ _ecore_x_key_grab_remove(Ecore_X_Window win)
1751 _ecore_key_grabs = t; 1751 _ecore_key_grabs = t;
1752 } 1752 }
1753 } 1753 }
1754} /* _ecore_x_key_grab_remove */ 1754}
1755 1755
1756EAPI void 1756EAPI void
1757ecore_x_window_key_ungrab(Ecore_X_Window win, 1757ecore_x_window_key_ungrab(Ecore_X_Window win,
1758 const char *key, 1758 const char *key,
1759 int mod, 1759 int mod,
1760 int any_mod) 1760 int any_mod)
1761{ 1761{
1762 KeyCode keycode = 0; 1762 KeyCode keycode = 0;
1763 KeySym keysym; 1763 KeySym keysym;
@@ -1795,7 +1795,7 @@ ecore_x_window_key_ungrab(Ecore_X_Window win,
1795 for (i = 0; i < 8; i++) 1795 for (i = 0; i < 8; i++)
1796 XUngrabKey(_ecore_x_disp, keycode, m | locks[i], win); 1796 XUngrabKey(_ecore_x_disp, keycode, m | locks[i], win);
1797 _ecore_x_sync_magic_send(2, win); 1797 _ecore_x_sync_magic_send(2, win);
1798} /* ecore_x_window_key_ungrab */ 1798}
1799 1799
1800/** 1800/**
1801 * Send client message with given type and format 32. 1801 * Send client message with given type and format 32.
@@ -1811,14 +1811,14 @@ ecore_x_window_key_ungrab(Ecore_X_Window win,
1811 * @return EINA_TRUE on success EINA_FALSE otherwise. 1811 * @return EINA_TRUE on success EINA_FALSE otherwise.
1812 */ 1812 */
1813EAPI Eina_Bool 1813EAPI Eina_Bool
1814ecore_x_client_message32_send(Ecore_X_Window win, 1814ecore_x_client_message32_send(Ecore_X_Window win,
1815 Ecore_X_Atom type, 1815 Ecore_X_Atom type,
1816 Ecore_X_Event_Mask mask, 1816 Ecore_X_Event_Mask mask,
1817 long d0, 1817 long d0,
1818 long d1, 1818 long d1,
1819 long d2, 1819 long d2,
1820 long d3, 1820 long d3,
1821 long d4) 1821 long d4)
1822{ 1822{
1823 XEvent xev; 1823 XEvent xev;
1824 1824
@@ -1834,7 +1834,7 @@ ecore_x_client_message32_send(Ecore_X_Window win,
1834 xev.xclient.data.l[4] = d4; 1834 xev.xclient.data.l[4] = d4;
1835 1835
1836 return XSendEvent(_ecore_x_disp, win, False, mask, &xev) ? EINA_TRUE : EINA_FALSE; 1836 return XSendEvent(_ecore_x_disp, win, False, mask, &xev) ? EINA_TRUE : EINA_FALSE;
1837} /* ecore_x_client_message32_send */ 1837}
1838 1838
1839/** 1839/**
1840 * Send client message with given type and format 8. 1840 * Send client message with given type and format 8.
@@ -1848,9 +1848,9 @@ ecore_x_client_message32_send(Ecore_X_Window win,
1848 */ 1848 */
1849EAPI Eina_Bool 1849EAPI Eina_Bool
1850ecore_x_client_message8_send(Ecore_X_Window win, 1850ecore_x_client_message8_send(Ecore_X_Window win,
1851 Ecore_X_Atom type, 1851 Ecore_X_Atom type,
1852 const void *data, 1852 const void *data,
1853 int len) 1853 int len)
1854{ 1854{
1855 XEvent xev; 1855 XEvent xev;
1856 1856
@@ -1866,12 +1866,12 @@ ecore_x_client_message8_send(Ecore_X_Window win,
1866 memset(xev.xclient.data.b + len, 0, 20 - len); 1866 memset(xev.xclient.data.b + len, 0, 20 - len);
1867 1867
1868 return XSendEvent(_ecore_x_disp, win, False, NoEventMask, &xev) ? EINA_TRUE : EINA_FALSE; 1868 return XSendEvent(_ecore_x_disp, win, False, NoEventMask, &xev) ? EINA_TRUE : EINA_FALSE;
1869} /* ecore_x_client_message8_send */ 1869}
1870 1870
1871EAPI Eina_Bool 1871EAPI Eina_Bool
1872ecore_x_mouse_move_send(Ecore_X_Window win, 1872ecore_x_mouse_move_send(Ecore_X_Window win,
1873 int x, 1873 int x,
1874 int y) 1874 int y)
1875{ 1875{
1876 XEvent xev; 1876 XEvent xev;
1877 XWindowAttributes att; 1877 XWindowAttributes att;
@@ -1894,13 +1894,13 @@ ecore_x_mouse_move_send(Ecore_X_Window win,
1894 xev.xmotion.is_hint = 0; 1894 xev.xmotion.is_hint = 0;
1895 xev.xmotion.same_screen = 1; 1895 xev.xmotion.same_screen = 1;
1896 return XSendEvent(_ecore_x_disp, win, True, PointerMotionMask, &xev) ? EINA_TRUE : EINA_FALSE; 1896 return XSendEvent(_ecore_x_disp, win, True, PointerMotionMask, &xev) ? EINA_TRUE : EINA_FALSE;
1897} /* ecore_x_mouse_move_send */ 1897}
1898 1898
1899EAPI Eina_Bool 1899EAPI Eina_Bool
1900ecore_x_mouse_down_send(Ecore_X_Window win, 1900ecore_x_mouse_down_send(Ecore_X_Window win,
1901 int x, 1901 int x,
1902 int y, 1902 int y,
1903 int b) 1903 int b)
1904{ 1904{
1905 XEvent xev; 1905 XEvent xev;
1906 XWindowAttributes att; 1906 XWindowAttributes att;
@@ -1923,13 +1923,13 @@ ecore_x_mouse_down_send(Ecore_X_Window win,
1923 xev.xbutton.button = b; 1923 xev.xbutton.button = b;
1924 xev.xbutton.same_screen = 1; 1924 xev.xbutton.same_screen = 1;
1925 return XSendEvent(_ecore_x_disp, win, True, ButtonPressMask, &xev) ? EINA_TRUE : EINA_FALSE; 1925 return XSendEvent(_ecore_x_disp, win, True, ButtonPressMask, &xev) ? EINA_TRUE : EINA_FALSE;
1926} /* ecore_x_mouse_down_send */ 1926}
1927 1927
1928EAPI Eina_Bool 1928EAPI Eina_Bool
1929ecore_x_mouse_up_send(Ecore_X_Window win, 1929ecore_x_mouse_up_send(Ecore_X_Window win,
1930 int x, 1930 int x,
1931 int y, 1931 int y,
1932 int b) 1932 int b)
1933{ 1933{
1934 XEvent xev; 1934 XEvent xev;
1935 XWindowAttributes att; 1935 XWindowAttributes att;
@@ -1952,21 +1952,21 @@ ecore_x_mouse_up_send(Ecore_X_Window win,
1952 xev.xbutton.button = b; 1952 xev.xbutton.button = b;
1953 xev.xbutton.same_screen = 1; 1953 xev.xbutton.same_screen = 1;
1954 return XSendEvent(_ecore_x_disp, win, True, ButtonReleaseMask, &xev) ? EINA_TRUE : EINA_FALSE; 1954 return XSendEvent(_ecore_x_disp, win, True, ButtonReleaseMask, &xev) ? EINA_TRUE : EINA_FALSE;
1955} /* ecore_x_mouse_up_send */ 1955}
1956 1956
1957EAPI void 1957EAPI void
1958ecore_x_focus_reset(void) 1958ecore_x_focus_reset(void)
1959{ 1959{
1960 LOGFN(__FILE__, __LINE__, __FUNCTION__); 1960 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1961 XSetInputFocus(_ecore_x_disp, PointerRoot, RevertToPointerRoot, CurrentTime); 1961 XSetInputFocus(_ecore_x_disp, PointerRoot, RevertToPointerRoot, CurrentTime);
1962} /* ecore_x_focus_reset */ 1962}
1963 1963
1964EAPI void 1964EAPI void
1965ecore_x_events_allow_all(void) 1965ecore_x_events_allow_all(void)
1966{ 1966{
1967 LOGFN(__FILE__, __LINE__, __FUNCTION__); 1967 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1968 XAllowEvents(_ecore_x_disp, AsyncBoth, CurrentTime); 1968 XAllowEvents(_ecore_x_disp, AsyncBoth, CurrentTime);
1969} /* ecore_x_events_allow_all */ 1969}
1970 1970
1971EAPI void 1971EAPI void
1972ecore_x_pointer_last_xy_get(int *x, 1972ecore_x_pointer_last_xy_get(int *x,
@@ -1977,12 +1977,12 @@ ecore_x_pointer_last_xy_get(int *x,
1977 1977
1978 if (y) 1978 if (y)
1979 *y = _ecore_x_event_last_root_y; 1979 *y = _ecore_x_event_last_root_y;
1980} /* ecore_x_pointer_last_xy_get */ 1980}
1981 1981
1982EAPI void 1982EAPI void
1983ecore_x_pointer_xy_get(Ecore_X_Window win, 1983ecore_x_pointer_xy_get(Ecore_X_Window win,
1984 int *x, 1984 int *x,
1985 int *y) 1985 int *y)
1986{ 1986{
1987 Window rwin, cwin; 1987 Window rwin, cwin;
1988 int rx, ry, wx, wy, ret; 1988 int rx, ry, wx, wy, ret;
@@ -1996,7 +1996,7 @@ ecore_x_pointer_xy_get(Ecore_X_Window win,
1996 1996
1997 if (x) *x = wx; 1997 if (x) *x = wx;
1998 if (y) *y = wy; 1998 if (y) *y = wy;
1999} /* ecore_x_pointer_xy_get */ 1999}
2000 2000
2001/** 2001/**
2002 * Retrieve the Visual ID from a given Visual. 2002 * Retrieve the Visual ID from a given Visual.
@@ -2023,7 +2023,7 @@ ecore_x_visual_id_get(Ecore_X_Visual visual)
2023 */ 2023 */
2024EAPI Ecore_X_Visual 2024EAPI Ecore_X_Visual
2025ecore_x_default_visual_get(Ecore_X_Display *disp, 2025ecore_x_default_visual_get(Ecore_X_Display *disp,
2026 Ecore_X_Screen *screen) 2026 Ecore_X_Screen *screen)
2027{ 2027{
2028 return DefaultVisual(disp, ecore_x_screen_index_get(screen)); 2028 return DefaultVisual(disp, ecore_x_screen_index_get(screen));
2029} 2029}
@@ -2039,7 +2039,7 @@ ecore_x_default_visual_get(Ecore_X_Display *disp,
2039 */ 2039 */
2040EAPI Ecore_X_Colormap 2040EAPI Ecore_X_Colormap
2041ecore_x_default_colormap_get(Ecore_X_Display *disp, 2041ecore_x_default_colormap_get(Ecore_X_Display *disp,
2042 Ecore_X_Screen *screen) 2042 Ecore_X_Screen *screen)
2043{ 2043{
2044 return DefaultColormap(disp, ecore_x_screen_index_get(screen)); 2044 return DefaultColormap(disp, ecore_x_screen_index_get(screen));
2045} 2045}
@@ -2055,7 +2055,7 @@ ecore_x_default_colormap_get(Ecore_X_Display *disp,
2055 */ 2055 */
2056EAPI int 2056EAPI int
2057ecore_x_default_depth_get(Ecore_X_Display *disp, 2057ecore_x_default_depth_get(Ecore_X_Display *disp,
2058 Ecore_X_Screen *screen) 2058 Ecore_X_Screen *screen)
2059{ 2059{
2060 return DefaultDepth(disp, ecore_x_screen_index_get(screen)); 2060 return DefaultDepth(disp, ecore_x_screen_index_get(screen));
2061} 2061}
@@ -2094,5 +2094,5 @@ _ecore_x_event_modifier(unsigned int state)
2094 xmodifiers |= ECORE_X_LOCK_SHIFT; 2094 xmodifiers |= ECORE_X_LOCK_SHIFT;
2095 2095
2096 return xmodifiers; 2096 return xmodifiers;
2097} /* _ecore_x_event_modifier */ 2097}
2098 2098
diff --git a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_atoms.c b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_atoms.c
index fd96d5c..ee981fe 100644
--- a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_atoms.c
+++ b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_atoms.c
@@ -291,10 +291,12 @@ _ecore_x_atoms_init(void)
291 num = sizeof(items) / sizeof(Atom_Item); 291 num = sizeof(items) / sizeof(Atom_Item);
292 atoms = alloca(num * sizeof(Atom)); 292 atoms = alloca(num * sizeof(Atom));
293 names = alloca(num * sizeof(char *)); 293 names = alloca(num * sizeof(char *));
294 for (i = 0; i < num; i++) names[i] = (char *)items[i].name; 294 for (i = 0; i < num; i++)
295 names[i] = (char *)items[i].name;
295 XInternAtoms(_ecore_x_disp, names, num, False, atoms); 296 XInternAtoms(_ecore_x_disp, names, num, False, atoms);
296 for (i = 0; i < num; i++) *(items[i].atom) = atoms[i]; 297 for (i = 0; i < num; i++)
297} /* _ecore_x_atoms_init */ 298 *(items[i].atom) = atoms[i];
299}
298 300
299/** 301/**
300 * Retrieves the atom value associated with the given name. 302 * Retrieves the atom value associated with the given name.
@@ -309,11 +311,11 @@ ecore_x_atom_get(const char *name)
309 311
310 LOGFN(__FILE__, __LINE__, __FUNCTION__); 312 LOGFN(__FILE__, __LINE__, __FUNCTION__);
311 return XInternAtom(_ecore_x_disp, name, False); 313 return XInternAtom(_ecore_x_disp, name, False);
312} /* ecore_x_atom_get */ 314}
313 315
314EAPI void 316EAPI void
315ecore_x_atoms_get(const char **names, 317ecore_x_atoms_get(const char **names,
316 int num, 318 int num,
317 Ecore_X_Atom *atoms) 319 Ecore_X_Atom *atoms)
318{ 320{
319 Atom *atoms_int; 321 Atom *atoms_int;
@@ -327,7 +329,7 @@ ecore_x_atoms_get(const char **names,
327 XInternAtoms(_ecore_x_disp, (char **)names, num, False, atoms_int); 329 XInternAtoms(_ecore_x_disp, (char **)names, num, False, atoms_int);
328 for (i = 0; i < num; i++) 330 for (i = 0; i < num; i++)
329 atoms[i] = atoms_int[i]; 331 atoms[i] = atoms_int[i];
330} /* ecore_x_atoms_get */ 332}
331 333
332EAPI char * 334EAPI char *
333ecore_x_atom_name_get(Ecore_X_Atom atom) 335ecore_x_atom_name_get(Ecore_X_Atom atom)
@@ -348,5 +350,5 @@ ecore_x_atom_name_get(Ecore_X_Atom atom)
348 XFree(xname); 350 XFree(xname);
349 351
350 return name; 352 return name;
351} /* ecore_x_atom_name_get */ 353}
352 354
diff --git a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_composite.c b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_composite.c
index 43153ff..b919db9 100644
--- a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_composite.c
+++ b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_composite.c
@@ -30,24 +30,24 @@ _ecore_x_composite_init(void)
30# endif 30# endif
31 } 31 }
32#endif 32#endif
33} /* _ecore_x_composite_init */ 33}
34 34
35EAPI Eina_Bool 35EAPI Eina_Bool
36ecore_x_composite_query(void) 36ecore_x_composite_query(void)
37{ 37{
38 LOGFN(__FILE__, __LINE__, __FUNCTION__); 38 LOGFN(__FILE__, __LINE__, __FUNCTION__);
39 return _composite_available; 39 return _composite_available;
40} /* ecore_x_composite_query */ 40}
41 41
42EAPI void 42EAPI void
43ecore_x_composite_redirect_window(Ecore_X_Window win, 43ecore_x_composite_redirect_window(Ecore_X_Window win,
44 Ecore_X_Composite_Update_Type type) 44 Ecore_X_Composite_Update_Type type)
45{ 45{
46#ifdef ECORE_XCOMPOSITE 46#ifdef ECORE_XCOMPOSITE
47 int update = CompositeRedirectAutomatic; 47 int update = CompositeRedirectAutomatic;
48 48
49 LOGFN(__FILE__, __LINE__, __FUNCTION__); 49 LOGFN(__FILE__, __LINE__, __FUNCTION__);
50 switch(type) 50 switch (type)
51 { 51 {
52 case ECORE_X_COMPOSITE_UPDATE_AUTOMATIC: 52 case ECORE_X_COMPOSITE_UPDATE_AUTOMATIC:
53 update = CompositeRedirectAutomatic; 53 update = CompositeRedirectAutomatic;
@@ -56,20 +56,20 @@ ecore_x_composite_redirect_window(Ecore_X_Window win,
56 case ECORE_X_COMPOSITE_UPDATE_MANUAL: 56 case ECORE_X_COMPOSITE_UPDATE_MANUAL:
57 update = CompositeRedirectManual; 57 update = CompositeRedirectManual;
58 break; 58 break;
59 } /* switch */ 59 }
60 XCompositeRedirectWindow(_ecore_x_disp, win, update); 60 XCompositeRedirectWindow(_ecore_x_disp, win, update);
61#endif /* ifdef ECORE_XCOMPOSITE */ 61#endif /* ifdef ECORE_XCOMPOSITE */
62} /* ecore_x_composite_redirect_window */ 62}
63 63
64EAPI void 64EAPI void
65ecore_x_composite_redirect_subwindows(Ecore_X_Window win, 65ecore_x_composite_redirect_subwindows(Ecore_X_Window win,
66 Ecore_X_Composite_Update_Type type) 66 Ecore_X_Composite_Update_Type type)
67{ 67{
68#ifdef ECORE_XCOMPOSITE 68#ifdef ECORE_XCOMPOSITE
69 int update = CompositeRedirectAutomatic; 69 int update = CompositeRedirectAutomatic;
70 70
71 LOGFN(__FILE__, __LINE__, __FUNCTION__); 71 LOGFN(__FILE__, __LINE__, __FUNCTION__);
72 switch(type) 72 switch (type)
73 { 73 {
74 case ECORE_X_COMPOSITE_UPDATE_AUTOMATIC: 74 case ECORE_X_COMPOSITE_UPDATE_AUTOMATIC:
75 update = CompositeRedirectAutomatic; 75 update = CompositeRedirectAutomatic;
@@ -78,20 +78,20 @@ ecore_x_composite_redirect_subwindows(Ecore_X_Window win,
78 case ECORE_X_COMPOSITE_UPDATE_MANUAL: 78 case ECORE_X_COMPOSITE_UPDATE_MANUAL:
79 update = CompositeRedirectManual; 79 update = CompositeRedirectManual;
80 break; 80 break;
81 } /* switch */ 81 }
82 XCompositeRedirectSubwindows(_ecore_x_disp, win, update); 82 XCompositeRedirectSubwindows(_ecore_x_disp, win, update);
83#endif /* ifdef ECORE_XCOMPOSITE */ 83#endif /* ifdef ECORE_XCOMPOSITE */
84} /* ecore_x_composite_redirect_subwindows */ 84}
85 85
86EAPI void 86EAPI void
87ecore_x_composite_unredirect_window(Ecore_X_Window win, 87ecore_x_composite_unredirect_window(Ecore_X_Window win,
88 Ecore_X_Composite_Update_Type type) 88 Ecore_X_Composite_Update_Type type)
89{ 89{
90#ifdef ECORE_XCOMPOSITE 90#ifdef ECORE_XCOMPOSITE
91 int update = CompositeRedirectAutomatic; 91 int update = CompositeRedirectAutomatic;
92 92
93 LOGFN(__FILE__, __LINE__, __FUNCTION__); 93 LOGFN(__FILE__, __LINE__, __FUNCTION__);
94 switch(type) 94 switch (type)
95 { 95 {
96 case ECORE_X_COMPOSITE_UPDATE_AUTOMATIC: 96 case ECORE_X_COMPOSITE_UPDATE_AUTOMATIC:
97 update = CompositeRedirectAutomatic; 97 update = CompositeRedirectAutomatic;
@@ -100,20 +100,20 @@ ecore_x_composite_unredirect_window(Ecore_X_Window win,
100 case ECORE_X_COMPOSITE_UPDATE_MANUAL: 100 case ECORE_X_COMPOSITE_UPDATE_MANUAL:
101 update = CompositeRedirectManual; 101 update = CompositeRedirectManual;
102 break; 102 break;
103 } /* switch */ 103 }
104 XCompositeUnredirectWindow(_ecore_x_disp, win, update); 104 XCompositeUnredirectWindow(_ecore_x_disp, win, update);
105#endif /* ifdef ECORE_XCOMPOSITE */ 105#endif /* ifdef ECORE_XCOMPOSITE */
106} /* ecore_x_composite_unredirect_window */ 106}
107 107
108EAPI void 108EAPI void
109ecore_x_composite_unredirect_subwindows(Ecore_X_Window win, 109ecore_x_composite_unredirect_subwindows(Ecore_X_Window win,
110 Ecore_X_Composite_Update_Type type) 110 Ecore_X_Composite_Update_Type type)
111{ 111{
112#ifdef ECORE_XCOMPOSITE 112#ifdef ECORE_XCOMPOSITE
113 int update = CompositeRedirectAutomatic; 113 int update = CompositeRedirectAutomatic;
114 114
115 LOGFN(__FILE__, __LINE__, __FUNCTION__); 115 LOGFN(__FILE__, __LINE__, __FUNCTION__);
116 switch(type) 116 switch (type)
117 { 117 {
118 case ECORE_X_COMPOSITE_UPDATE_AUTOMATIC: 118 case ECORE_X_COMPOSITE_UPDATE_AUTOMATIC:
119 update = CompositeRedirectAutomatic; 119 update = CompositeRedirectAutomatic;
@@ -122,10 +122,10 @@ ecore_x_composite_unredirect_subwindows(Ecore_X_Window win,
122 case ECORE_X_COMPOSITE_UPDATE_MANUAL: 122 case ECORE_X_COMPOSITE_UPDATE_MANUAL:
123 update = CompositeRedirectManual; 123 update = CompositeRedirectManual;
124 break; 124 break;
125 } /* switch */ 125 }
126 XCompositeUnredirectSubwindows(_ecore_x_disp, win, update); 126 XCompositeUnredirectSubwindows(_ecore_x_disp, win, update);
127#endif /* ifdef ECORE_XCOMPOSITE */ 127#endif /* ifdef ECORE_XCOMPOSITE */
128} /* ecore_x_composite_unredirect_subwindows */ 128}
129 129
130EAPI Ecore_X_Pixmap 130EAPI Ecore_X_Pixmap
131ecore_x_composite_name_window_pixmap_get(Ecore_X_Window win) 131ecore_x_composite_name_window_pixmap_get(Ecore_X_Window win)
@@ -136,7 +136,7 @@ ecore_x_composite_name_window_pixmap_get(Ecore_X_Window win)
136 pixmap = XCompositeNameWindowPixmap(_ecore_x_disp, win); 136 pixmap = XCompositeNameWindowPixmap(_ecore_x_disp, win);
137#endif /* ifdef ECORE_XCOMPOSITE */ 137#endif /* ifdef ECORE_XCOMPOSITE */
138 return pixmap; 138 return pixmap;
139} /* ecore_x_composite_name_window_pixmap_get */ 139}
140 140
141EAPI void 141EAPI void
142ecore_x_composite_window_events_disable(Ecore_X_Window win) 142ecore_x_composite_window_events_disable(Ecore_X_Window win)
@@ -163,7 +163,7 @@ ecore_x_composite_render_window_enable(Ecore_X_Window root)
163 ecore_x_composite_window_events_disable(win); 163 ecore_x_composite_window_events_disable(win);
164#endif /* ifdef ECORE_XCOMPOSITE */ 164#endif /* ifdef ECORE_XCOMPOSITE */
165 return win; 165 return win;
166} /* ecore_x_composite_render_window_enable */ 166}
167 167
168EAPI void 168EAPI void
169ecore_x_composite_render_window_disable(Ecore_X_Window root) 169ecore_x_composite_render_window_disable(Ecore_X_Window root)
@@ -172,5 +172,5 @@ ecore_x_composite_render_window_disable(Ecore_X_Window root)
172 LOGFN(__FILE__, __LINE__, __FUNCTION__); 172 LOGFN(__FILE__, __LINE__, __FUNCTION__);
173 XCompositeReleaseOverlayWindow(_ecore_x_disp, root); 173 XCompositeReleaseOverlayWindow(_ecore_x_disp, root);
174#endif /* ifdef ECORE_XCOMPOSITE */ 174#endif /* ifdef ECORE_XCOMPOSITE */
175} /* ecore_x_composite_render_window_disable */ 175}
176 176
diff --git a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_cursor.c b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_cursor.c
index 434505c..a968c56 100644
--- a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_cursor.c
+++ b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_cursor.c
@@ -10,15 +10,15 @@ EAPI Eina_Bool
10ecore_x_cursor_color_supported_get(void) 10ecore_x_cursor_color_supported_get(void)
11{ 11{
12 return _ecore_x_xcursor; 12 return _ecore_x_xcursor;
13} /* ecore_x_cursor_color_supported_get */ 13}
14 14
15EAPI Ecore_X_Cursor 15EAPI Ecore_X_Cursor
16ecore_x_cursor_new(Ecore_X_Window win, 16ecore_x_cursor_new(Ecore_X_Window win,
17 int *pixels, 17 int *pixels,
18 int w, 18 int w,
19 int h, 19 int h,
20 int hot_x, 20 int hot_x,
21 int hot_y) 21 int hot_y)
22{ 22{
23#ifdef ECORE_XCURSOR 23#ifdef ECORE_XCURSOR
24 LOGFN(__FILE__, __LINE__, __FUNCTION__); 24 LOGFN(__FILE__, __LINE__, __FUNCTION__);
@@ -43,7 +43,7 @@ ecore_x_cursor_new(Ecore_X_Window win,
43// r = (((pixels[i] >> 16) & 0xff) * a) / 0xff; 43// r = (((pixels[i] >> 16) & 0xff) * a) / 0xff;
44// g = (((pixels[i] >> 8 ) & 0xff) * a) / 0xff; 44// g = (((pixels[i] >> 8 ) & 0xff) * a) / 0xff;
45// b = (((pixels[i] ) & 0xff) * a) / 0xff; 45// b = (((pixels[i] ) & 0xff) * a) / 0xff;
46 xci->pixels[i] = pixels[i]; 46 xci->pixels[i] = pixels[i];
47// (a << 24) | (r << 16) | (g << 8) | (b); 47// (a << 24) | (r << 16) | (g << 8) | (b);
48 } 48 }
49 c = XcursorImageLoadCursor(_ecore_x_disp, xci); 49 c = XcursorImageLoadCursor(_ecore_x_disp, xci);
@@ -200,14 +200,14 @@ ecore_x_cursor_new(Ecore_X_Window win,
200 } 200 }
201 201
202 return 0; 202 return 0;
203} /* ecore_x_cursor_new */ 203}
204 204
205EAPI void 205EAPI void
206ecore_x_cursor_free(Ecore_X_Cursor c) 206ecore_x_cursor_free(Ecore_X_Cursor c)
207{ 207{
208 LOGFN(__FILE__, __LINE__, __FUNCTION__); 208 LOGFN(__FILE__, __LINE__, __FUNCTION__);
209 XFreeCursor(_ecore_x_disp, c); 209 XFreeCursor(_ecore_x_disp, c);
210} /* ecore_x_cursor_free */ 210}
211 211
212/* 212/*
213 * Returns the cursor for the given shape. 213 * Returns the cursor for the given shape.
@@ -220,7 +220,7 @@ ecore_x_cursor_shape_get(int shape)
220 LOGFN(__FILE__, __LINE__, __FUNCTION__); 220 LOGFN(__FILE__, __LINE__, __FUNCTION__);
221 /* Shapes are defined in Ecore_X_Cursor.h */ 221 /* Shapes are defined in Ecore_X_Cursor.h */
222 return XCreateFontCursor(_ecore_x_disp, shape); 222 return XCreateFontCursor(_ecore_x_disp, shape);
223} /* ecore_x_cursor_shape_get */ 223}
224 224
225EAPI void 225EAPI void
226ecore_x_cursor_size_set(int size) 226ecore_x_cursor_size_set(int size)
@@ -231,7 +231,7 @@ ecore_x_cursor_size_set(int size)
231#else /* ifdef ECORE_XCURSOR */ 231#else /* ifdef ECORE_XCURSOR */
232 size = 0; 232 size = 0;
233#endif /* ifdef ECORE_XCURSOR */ 233#endif /* ifdef ECORE_XCURSOR */
234} /* ecore_x_cursor_size_set */ 234}
235 235
236EAPI int 236EAPI int
237ecore_x_cursor_size_get(void) 237ecore_x_cursor_size_get(void)
@@ -242,5 +242,5 @@ ecore_x_cursor_size_get(void)
242#else /* ifdef ECORE_XCURSOR */ 242#else /* ifdef ECORE_XCURSOR */
243 return 0; 243 return 0;
244#endif /* ifdef ECORE_XCURSOR */ 244#endif /* ifdef ECORE_XCURSOR */
245} /* ecore_x_cursor_size_get */ 245}
246 246
diff --git a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_damage.c b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_damage.c
index 5e44d07..b094f85 100644
--- a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_damage.c
+++ b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_damage.c
@@ -26,16 +26,16 @@ _ecore_x_damage_init(void)
26#else /* ifdef ECORE_XDAMAGE */ 26#else /* ifdef ECORE_XDAMAGE */
27 _damage_available = EINA_FALSE; 27 _damage_available = EINA_FALSE;
28#endif /* ifdef ECORE_XDAMAGE */ 28#endif /* ifdef ECORE_XDAMAGE */
29} /* _ecore_x_damage_init */ 29}
30 30
31EAPI Eina_Bool 31EAPI Eina_Bool
32ecore_x_damage_query(void) 32ecore_x_damage_query(void)
33{ 33{
34 return _damage_available; 34 return _damage_available;
35} /* ecore_x_damage_query */ 35}
36 36
37EAPI Ecore_X_Damage 37EAPI Ecore_X_Damage
38ecore_x_damage_new(Ecore_X_Drawable d, 38ecore_x_damage_new(Ecore_X_Drawable d,
39 Ecore_X_Damage_Report_Level level) 39 Ecore_X_Damage_Report_Level level)
40{ 40{
41#ifdef ECORE_XDAMAGE 41#ifdef ECORE_XDAMAGE
@@ -47,7 +47,7 @@ ecore_x_damage_new(Ecore_X_Drawable d,
47#else /* ifdef ECORE_XDAMAGE */ 47#else /* ifdef ECORE_XDAMAGE */
48 return 0; 48 return 0;
49#endif /* ifdef ECORE_XDAMAGE */ 49#endif /* ifdef ECORE_XDAMAGE */
50} /* ecore_x_damage_new */ 50}
51 51
52EAPI void 52EAPI void
53ecore_x_damage_free(Ecore_X_Damage damage) 53ecore_x_damage_free(Ecore_X_Damage damage)
@@ -56,7 +56,7 @@ ecore_x_damage_free(Ecore_X_Damage damage)
56 LOGFN(__FILE__, __LINE__, __FUNCTION__); 56 LOGFN(__FILE__, __LINE__, __FUNCTION__);
57 XDamageDestroy(_ecore_x_disp, damage); 57 XDamageDestroy(_ecore_x_disp, damage);
58#endif /* ifdef ECORE_XDAMAGE */ 58#endif /* ifdef ECORE_XDAMAGE */
59} /* ecore_x_damage_free */ 59}
60 60
61EAPI void 61EAPI void
62ecore_x_damage_subtract(Ecore_X_Damage damage, 62ecore_x_damage_subtract(Ecore_X_Damage damage,
@@ -67,5 +67,5 @@ ecore_x_damage_subtract(Ecore_X_Damage damage,
67 LOGFN(__FILE__, __LINE__, __FUNCTION__); 67 LOGFN(__FILE__, __LINE__, __FUNCTION__);
68 XDamageSubtract(_ecore_x_disp, damage, repair, parts); 68 XDamageSubtract(_ecore_x_disp, damage, repair, parts);
69#endif /* ifdef ECORE_XDAMAGE */ 69#endif /* ifdef ECORE_XDAMAGE */
70} /* ecore_x_damage_subtract */ 70}
71 71
diff --git a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_dnd.c b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_dnd.c
index 7908584..372470a 100644
--- a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_dnd.c
+++ b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_dnd.c
@@ -65,7 +65,7 @@ _ecore_x_dnd_init(void)
65 } 65 }
66 66
67 _ecore_x_dnd_init_count++; 67 _ecore_x_dnd_init_count++;
68} /* _ecore_x_dnd_init */ 68}
69 69
70void 70void
71_ecore_x_dnd_shutdown(void) 71_ecore_x_dnd_shutdown(void)
@@ -85,16 +85,16 @@ _ecore_x_dnd_shutdown(void)
85 _target = NULL; 85 _target = NULL;
86 86
87 _ecore_x_dnd_init_count = 0; 87 _ecore_x_dnd_init_count = 0;
88} /* _ecore_x_dnd_shutdown */ 88}
89 89
90static Eina_Bool 90static Eina_Bool
91_ecore_x_dnd_converter_copy(char *target __UNUSED__, 91_ecore_x_dnd_converter_copy(char *target __UNUSED__,
92 void *data, 92 void *data,
93 int size, 93 int size,
94 void **data_ret, 94 void **data_ret,
95 int *size_ret, 95 int *size_ret,
96 Ecore_X_Atom *tprop __UNUSED__, 96 Ecore_X_Atom *tprop __UNUSED__,
97 int *count __UNUSED__) 97 int *count __UNUSED__)
98{ 98{
99 XTextProperty text_prop; 99 XTextProperty text_prop;
100 char *mystr; 100 char *mystr;
@@ -130,11 +130,11 @@ _ecore_x_dnd_converter_copy(char *target __UNUSED__,
130 free(mystr); 130 free(mystr);
131 return EINA_FALSE; 131 return EINA_FALSE;
132 } 132 }
133} /* _ecore_x_dnd_converter_copy */ 133}
134 134
135EAPI void 135EAPI void
136ecore_x_dnd_aware_set(Ecore_X_Window win, 136ecore_x_dnd_aware_set(Ecore_X_Window win,
137 Eina_Bool on) 137 Eina_Bool on)
138{ 138{
139 Ecore_X_Atom prop_data = ECORE_X_DND_VERSION; 139 Ecore_X_Atom prop_data = ECORE_X_DND_VERSION;
140 140
@@ -144,7 +144,7 @@ ecore_x_dnd_aware_set(Ecore_X_Window win,
144 XA_ATOM, 32, &prop_data, 1); 144 XA_ATOM, 32, &prop_data, 1);
145 else 145 else
146 ecore_x_window_prop_property_del(win, ECORE_X_ATOM_XDND_AWARE); 146 ecore_x_window_prop_property_del(win, ECORE_X_ATOM_XDND_AWARE);
147} /* ecore_x_dnd_aware_set */ 147}
148 148
149EAPI int 149EAPI int
150ecore_x_dnd_version_get(Ecore_X_Window win) 150ecore_x_dnd_version_get(Ecore_X_Window win)
@@ -208,11 +208,11 @@ ecore_x_dnd_version_get(Ecore_X_Window win)
208 } 208 }
209 209
210 return 0; 210 return 0;
211} /* ecore_x_dnd_version_get */ 211}
212 212
213EAPI Eina_Bool 213EAPI Eina_Bool
214ecore_x_dnd_type_isset(Ecore_X_Window win, 214ecore_x_dnd_type_isset(Ecore_X_Window win,
215 const char *type) 215 const char *type)
216{ 216{
217 int num, i, ret = EINA_FALSE; 217 int num, i, ret = EINA_FALSE;
218 unsigned char *data; 218 unsigned char *data;
@@ -237,12 +237,12 @@ ecore_x_dnd_type_isset(Ecore_X_Window win,
237 237
238 XFree(data); 238 XFree(data);
239 return ret; 239 return ret;
240} /* ecore_x_dnd_type_isset */ 240}
241 241
242EAPI void 242EAPI void
243ecore_x_dnd_type_set(Ecore_X_Window win, 243ecore_x_dnd_type_set(Ecore_X_Window win,
244 const char *type, 244 const char *type,
245 Eina_Bool on) 245 Eina_Bool on)
246{ 246{
247 Ecore_X_Atom atom; 247 Ecore_X_Atom atom;
248 Ecore_X_Atom *oldset = NULL, *newset = NULL; 248 Ecore_X_Atom *oldset = NULL, *newset = NULL;
@@ -305,12 +305,12 @@ ecore_x_dnd_type_set(Ecore_X_Window win,
305 305
306 XFree(oldset); 306 XFree(oldset);
307 free(newset); 307 free(newset);
308} /* ecore_x_dnd_type_set */ 308}
309 309
310EAPI void 310EAPI void
311ecore_x_dnd_types_set(Ecore_X_Window win, 311ecore_x_dnd_types_set(Ecore_X_Window win,
312 const char **types, 312 const char **types,
313 unsigned int num_types) 313 unsigned int num_types)
314{ 314{
315 Ecore_X_Atom *newset = NULL; 315 Ecore_X_Atom *newset = NULL;
316 unsigned int i; 316 unsigned int i;
@@ -336,12 +336,12 @@ ecore_x_dnd_types_set(Ecore_X_Window win,
336 XA_ATOM, 32, data, num_types); 336 XA_ATOM, 32, data, num_types);
337 free(newset); 337 free(newset);
338 } 338 }
339} /* ecore_x_dnd_types_set */ 339}
340 340
341EAPI void 341EAPI void
342ecore_x_dnd_actions_set(Ecore_X_Window win, 342ecore_x_dnd_actions_set(Ecore_X_Window win,
343 Ecore_X_Atom *actions, 343 Ecore_X_Atom *actions,
344 unsigned int num_actions) 344 unsigned int num_actions)
345{ 345{
346 unsigned int i; 346 unsigned int i;
347 unsigned char *data = NULL; 347 unsigned char *data = NULL;
@@ -360,7 +360,7 @@ ecore_x_dnd_actions_set(Ecore_X_Window win,
360 ecore_x_window_prop_property_set(win, ECORE_X_ATOM_XDND_ACTION_LIST, 360 ecore_x_window_prop_property_set(win, ECORE_X_ATOM_XDND_ACTION_LIST,
361 XA_ATOM, 32, data, num_actions); 361 XA_ATOM, 32, data, num_actions);
362 } 362 }
363} /* ecore_x_dnd_actions_set */ 363}
364 364
365/** 365/**
366 * The DND position update cb is called Ecore_X sends a DND position to a 366 * The DND position update cb is called Ecore_X sends a DND position to a
@@ -378,9 +378,9 @@ ecore_x_dnd_actions_set(Ecore_X_Window win,
378 */ 378 */
379EAPI void 379EAPI void
380ecore_x_dnd_callback_pos_update_set( 380ecore_x_dnd_callback_pos_update_set(
381 void (*cb)(void *, 381 void (*cb)(void *,
382 Ecore_X_Xdnd_Position *data), 382 Ecore_X_Xdnd_Position *data),
383 const void *data) 383 const void *data)
384{ 384{
385 _posupdatecb = cb; 385 _posupdatecb = cb;
386 _posupdatedata = (void *)data; /* Discard the const early */ 386 _posupdatedata = (void *)data; /* Discard the const early */
@@ -390,18 +390,18 @@ Ecore_X_DND_Source *
390_ecore_x_dnd_source_get(void) 390_ecore_x_dnd_source_get(void)
391{ 391{
392 return _source; 392 return _source;
393} /* _ecore_x_dnd_source_get */ 393}
394 394
395Ecore_X_DND_Target * 395Ecore_X_DND_Target *
396_ecore_x_dnd_target_get(void) 396_ecore_x_dnd_target_get(void)
397{ 397{
398 return _target; 398 return _target;
399} /* _ecore_x_dnd_target_get */ 399}
400 400
401EAPI Eina_Bool 401EAPI Eina_Bool
402ecore_x_dnd_begin(Ecore_X_Window source, 402ecore_x_dnd_begin(Ecore_X_Window source,
403 unsigned char *data, 403 unsigned char *data,
404 int size) 404 int size)
405{ 405{
406 LOGFN(__FILE__, __LINE__, __FUNCTION__); 406 LOGFN(__FILE__, __LINE__, __FUNCTION__);
407 if (!ecore_x_dnd_version_get(source)) 407 if (!ecore_x_dnd_version_get(source))
@@ -433,7 +433,7 @@ ecore_x_dnd_begin(Ecore_X_Window source,
433 _source->dest = None; 433 _source->dest = None;
434 434
435 return EINA_TRUE; 435 return EINA_TRUE;
436} /* ecore_x_dnd_begin */ 436}
437 437
438EAPI Eina_Bool 438EAPI Eina_Bool
439ecore_x_dnd_drop(void) 439ecore_x_dnd_drop(void)
@@ -471,8 +471,8 @@ ecore_x_dnd_drop(void)
471 else 471 else
472 { 472 {
473 /* Dropping on nothing */ 473 /* Dropping on nothing */
474 ecore_x_selection_xdnd_clear(); 474 ecore_x_selection_xdnd_clear();
475 _source->state = ECORE_X_DND_SOURCE_IDLE; 475 _source->state = ECORE_X_DND_SOURCE_IDLE;
476 } 476 }
477 477
478 ecore_x_window_ignore_set(_source->win, 0); 478 ecore_x_window_ignore_set(_source->win, 0);
@@ -480,13 +480,13 @@ ecore_x_dnd_drop(void)
480 _source->prev.window = 0; 480 _source->prev.window = 0;
481 481
482 return status; 482 return status;
483} /* ecore_x_dnd_drop */ 483}
484 484
485EAPI void 485EAPI void
486ecore_x_dnd_send_status(Eina_Bool will_accept, 486ecore_x_dnd_send_status(Eina_Bool will_accept,
487 Eina_Bool suppress, 487 Eina_Bool suppress,
488 Ecore_X_Rectangle rectangle, 488 Ecore_X_Rectangle rectangle,
489 Ecore_X_Atom action) 489 Ecore_X_Atom action)
490{ 490{
491 XEvent xev; 491 XEvent xev;
492 492
@@ -532,7 +532,7 @@ ecore_x_dnd_send_status(Eina_Bool will_accept,
532 } 532 }
533 533
534 XSendEvent(_ecore_x_disp, _target->source, False, 0, &xev); 534 XSendEvent(_ecore_x_disp, _target->source, False, 0, &xev);
535} /* ecore_x_dnd_send_status */ 535}
536 536
537EAPI void 537EAPI void
538ecore_x_dnd_send_finished(void) 538ecore_x_dnd_send_finished(void)
@@ -561,7 +561,7 @@ ecore_x_dnd_send_finished(void)
561 XSendEvent(_ecore_x_disp, _target->source, False, 0, &xev); 561 XSendEvent(_ecore_x_disp, _target->source, False, 0, &xev);
562 562
563 _target->state = ECORE_X_DND_TARGET_IDLE; 563 _target->state = ECORE_X_DND_TARGET_IDLE;
564} /* ecore_x_dnd_send_finished */ 564}
565 565
566EAPI void 566EAPI void
567ecore_x_dnd_source_action_set(Ecore_X_Atom action) 567ecore_x_dnd_source_action_set(Ecore_X_Atom action)
@@ -569,18 +569,18 @@ ecore_x_dnd_source_action_set(Ecore_X_Atom action)
569 _source->action = action; 569 _source->action = action;
570 if (_source->prev.window) 570 if (_source->prev.window)
571 _ecore_x_dnd_drag(_source->prev.window, _source->prev.x, _source->prev.y); 571 _ecore_x_dnd_drag(_source->prev.window, _source->prev.x, _source->prev.y);
572} /* ecore_x_dnd_source_action_set */ 572}
573 573
574EAPI Ecore_X_Atom 574EAPI Ecore_X_Atom
575ecore_x_dnd_source_action_get(void) 575ecore_x_dnd_source_action_get(void)
576{ 576{
577 return _source->action; 577 return _source->action;
578} /* ecore_x_dnd_source_action_get */ 578}
579 579
580void 580void
581_ecore_x_dnd_drag(Ecore_X_Window root, 581_ecore_x_dnd_drag(Ecore_X_Window root,
582 int x, 582 int x,
583 int y) 583 int y)
584{ 584{
585 XEvent xev; 585 XEvent xev;
586 Ecore_X_Window win; 586 Ecore_X_Window win;
@@ -701,6 +701,6 @@ _ecore_x_dnd_drag(Ecore_X_Window root,
701 _source->prev.y = y; 701 _source->prev.y = y;
702 _source->prev.window = root; 702 _source->prev.window = root;
703 _source->dest = win; 703 _source->dest = win;
704} /* _ecore_x_dnd_drag */ 704}
705 705
706/* vim:set ts=8 sw=3 sts=3 expandtab cino=>5n-2f0^-2{2(0W1st0 :*/ 706/* vim:set ts=8 sw=3 sts=3 expandtab cino=>5n-2f0^-2{2(0W1st0 :*/
diff --git a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_dpms.c b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_dpms.c
index 74d5344..23349f4 100644
--- a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_dpms.c
+++ b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_dpms.c
@@ -23,7 +23,7 @@ _ecore_x_dpms_init(void)
23#else /* ifdef ECORE_XDPMS */ 23#else /* ifdef ECORE_XDPMS */
24 _dpms_available = EINA_FALSE; 24 _dpms_available = EINA_FALSE;
25#endif /* ifdef ECORE_XDPMS */ 25#endif /* ifdef ECORE_XDPMS */
26} /* _ecore_x_dpms_init */ 26}
27 27
28/** 28/**
29 * @defgroup Ecore_X_DPMS_Group X DPMS Extension Functions 29 * @defgroup Ecore_X_DPMS_Group X DPMS Extension Functions
@@ -40,7 +40,7 @@ EAPI Eina_Bool
40ecore_x_dpms_query(void) 40ecore_x_dpms_query(void)
41{ 41{
42 return _dpms_available; 42 return _dpms_available;
43} /* ecore_x_dpms_query */ 43}
44 44
45/** 45/**
46 * Checks if the X server is capable of DPMS. 46 * Checks if the X server is capable of DPMS.
@@ -56,7 +56,7 @@ ecore_x_dpms_capable_get(void)
56#else /* ifdef ECORE_XDPMS */ 56#else /* ifdef ECORE_XDPMS */
57 return EINA_FALSE; 57 return EINA_FALSE;
58#endif /* ifdef ECORE_XDPMS */ 58#endif /* ifdef ECORE_XDPMS */
59} /* ecore_x_dpms_capable_get */ 59}
60 60
61/** 61/**
62 * Checks the DPMS state of the display. 62 * Checks the DPMS state of the display.
@@ -76,7 +76,7 @@ ecore_x_dpms_enabled_get(void)
76#else /* ifdef ECORE_XDPMS */ 76#else /* ifdef ECORE_XDPMS */
77 return EINA_FALSE; 77 return EINA_FALSE;
78#endif /* ifdef ECORE_XDPMS */ 78#endif /* ifdef ECORE_XDPMS */
79} /* ecore_x_dpms_enabled_get */ 79}
80 80
81/** 81/**
82 * Sets the DPMS state of the display. 82 * Sets the DPMS state of the display.
@@ -94,7 +94,7 @@ ecore_x_dpms_enabled_set(int enabled)
94 DPMSDisable(_ecore_x_disp); 94 DPMSDisable(_ecore_x_disp);
95 95
96#endif /* ifdef ECORE_XDPMS */ 96#endif /* ifdef ECORE_XDPMS */
97} /* ecore_x_dpms_enabled_set */ 97}
98 98
99/** 99/**
100 * Gets the timeouts. The values are in unit of seconds. 100 * Gets the timeouts. The values are in unit of seconds.
@@ -113,7 +113,7 @@ ecore_x_dpms_timeouts_get(unsigned int *standby,
113 DPMSGetTimeouts(_ecore_x_disp, (unsigned short *)standby, 113 DPMSGetTimeouts(_ecore_x_disp, (unsigned short *)standby,
114 (unsigned short *)suspend, (unsigned short *)off); 114 (unsigned short *)suspend, (unsigned short *)off);
115#endif /* ifdef ECORE_XDPMS */ 115#endif /* ifdef ECORE_XDPMS */
116} /* ecore_x_dpms_timeouts_get */ 116}
117 117
118/** 118/**
119 * Sets the timeouts. The values are in unit of seconds. 119 * Sets the timeouts. The values are in unit of seconds.
@@ -133,7 +133,7 @@ ecore_x_dpms_timeouts_set(unsigned int standby,
133#else /* ifdef ECORE_XDPMS */ 133#else /* ifdef ECORE_XDPMS */
134 return EINA_FALSE; 134 return EINA_FALSE;
135#endif /* ifdef ECORE_XDPMS */ 135#endif /* ifdef ECORE_XDPMS */
136} /* ecore_x_dpms_timeouts_set */ 136}
137 137
138/** 138/**
139 * Returns the amount of time of inactivity before standby mode is invoked. 139 * Returns the amount of time of inactivity before standby mode is invoked.
@@ -152,7 +152,7 @@ ecore_x_dpms_timeout_standby_get(void)
152#else /* ifdef ECORE_XDPMS */ 152#else /* ifdef ECORE_XDPMS */
153 return 0; 153 return 0;
154#endif /* ifdef ECORE_XDPMS */ 154#endif /* ifdef ECORE_XDPMS */
155} /* ecore_x_dpms_timeout_standby_get */ 155}
156 156
157/** 157/**
158 * Returns the amount of time of inactivity before the second level of 158 * Returns the amount of time of inactivity before the second level of
@@ -172,7 +172,7 @@ ecore_x_dpms_timeout_suspend_get(void)
172#else /* ifdef ECORE_XDPMS */ 172#else /* ifdef ECORE_XDPMS */
173 return 0; 173 return 0;
174#endif /* ifdef ECORE_XDPMS */ 174#endif /* ifdef ECORE_XDPMS */
175} /* ecore_x_dpms_timeout_suspend_get */ 175}
176 176
177/** 177/**
178 * Returns the amount of time of inactivity before the third and final 178 * Returns the amount of time of inactivity before the third and final
@@ -192,11 +192,11 @@ ecore_x_dpms_timeout_off_get(void)
192#else /* ifdef ECORE_XDPMS */ 192#else /* ifdef ECORE_XDPMS */
193 return 0; 193 return 0;
194#endif /* ifdef ECORE_XDPMS */ 194#endif /* ifdef ECORE_XDPMS */
195} /* ecore_x_dpms_timeout_off_get */ 195}
196 196
197/** 197/**
198 * Sets the standby timeout (in unit of seconds). 198 * Sets the standby timeout (in unit of seconds).
199 * @param new_standby Amount of time of inactivity before standby mode will be invoked. 199 * @param new_timeout Amount of time of inactivity before standby mode will be invoked.
200 * @ingroup Ecore_X_DPMS_Group 200 * @ingroup Ecore_X_DPMS_Group
201 */ 201 */
202EAPI void 202EAPI void
@@ -209,11 +209,11 @@ ecore_x_dpms_timeout_standby_set(unsigned int new_timeout)
209 DPMSGetTimeouts(_ecore_x_disp, &standby, &suspend, &off); 209 DPMSGetTimeouts(_ecore_x_disp, &standby, &suspend, &off);
210 DPMSSetTimeouts(_ecore_x_disp, new_timeout, suspend, off); 210 DPMSSetTimeouts(_ecore_x_disp, new_timeout, suspend, off);
211#endif /* ifdef ECORE_XDPMS */ 211#endif /* ifdef ECORE_XDPMS */
212} /* ecore_x_dpms_timeout_standby_set */ 212}
213 213
214/** 214/**
215 * Sets the suspend timeout (in unit of seconds). 215 * Sets the suspend timeout (in unit of seconds).
216 * @param suspend Amount of time of inactivity before the screen is placed into suspend mode. 216 * @param new_timeout Amount of time of inactivity before the screen is placed into suspend mode.
217 * @ingroup Ecore_X_DPMS_Group 217 * @ingroup Ecore_X_DPMS_Group
218 */ 218 */
219EAPI void 219EAPI void
@@ -226,11 +226,11 @@ ecore_x_dpms_timeout_suspend_set(unsigned int new_timeout)
226 DPMSGetTimeouts(_ecore_x_disp, &standby, &suspend, &off); 226 DPMSGetTimeouts(_ecore_x_disp, &standby, &suspend, &off);
227 DPMSSetTimeouts(_ecore_x_disp, standby, new_timeout, off); 227 DPMSSetTimeouts(_ecore_x_disp, standby, new_timeout, off);
228#endif /* ifdef ECORE_XDPMS */ 228#endif /* ifdef ECORE_XDPMS */
229} /* ecore_x_dpms_timeout_suspend_set */ 229}
230 230
231/** 231/**
232 * Sets the off timeout (in unit of seconds). 232 * Sets the off timeout (in unit of seconds).
233 * @param off Amount of time of inactivity before the monitor is shut off. 233 * @param new_timeout Amount of time of inactivity before the monitor is shut off.
234 * @ingroup Ecore_X_DPMS_Group 234 * @ingroup Ecore_X_DPMS_Group
235 */ 235 */
236EAPI void 236EAPI void
@@ -243,5 +243,5 @@ ecore_x_dpms_timeout_off_set(unsigned int new_timeout)
243 DPMSGetTimeouts(_ecore_x_disp, &standby, &suspend, &off); 243 DPMSGetTimeouts(_ecore_x_disp, &standby, &suspend, &off);
244 DPMSSetTimeouts(_ecore_x_disp, standby, suspend, new_timeout); 244 DPMSSetTimeouts(_ecore_x_disp, standby, suspend, new_timeout);
245#endif /* ifdef ECORE_XDPMS */ 245#endif /* ifdef ECORE_XDPMS */
246} /* ecore_x_dpms_timeout_off_set */ 246}
247 247
diff --git a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_drawable.c b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_drawable.c
index a64060b..d1b4111 100644
--- a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_drawable.c
+++ b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_drawable.c
@@ -21,10 +21,10 @@
21 */ 21 */
22EAPI void 22EAPI void
23ecore_x_drawable_geometry_get(Ecore_X_Drawable d, 23ecore_x_drawable_geometry_get(Ecore_X_Drawable d,
24 int *x, 24 int *x,
25 int *y, 25 int *y,
26 int *w, 26 int *w,
27 int *h) 27 int *h)
28{ 28{
29 Window dummy_win; 29 Window dummy_win;
30 int ret_x, ret_y; 30 int ret_x, ret_y;
@@ -51,7 +51,7 @@ ecore_x_drawable_geometry_get(Ecore_X_Drawable d,
51 51
52 if (h) 52 if (h)
53 *h = (int)ret_h; 53 *h = (int)ret_h;
54} /* ecore_x_drawable_geometry_get */ 54}
55 55
56/** 56/**
57 * Retrieves the width of the border of the given drawable. 57 * Retrieves the width of the border of the given drawable.
@@ -72,7 +72,7 @@ ecore_x_drawable_border_width_get(Ecore_X_Drawable d)
72 border_ret = 0; 72 border_ret = 0;
73 73
74 return (int)border_ret; 74 return (int)border_ret;
75} /* ecore_x_drawable_border_width_get */ 75}
76 76
77/** 77/**
78 * Retrieves the depth of the given drawable. 78 * Retrieves the depth of the given drawable.
@@ -93,7 +93,7 @@ ecore_x_drawable_depth_get(Ecore_X_Drawable d)
93 depth_ret = 0; 93 depth_ret = 0;
94 94
95 return (int)depth_ret; 95 return (int)depth_ret;
96} /* ecore_x_drawable_depth_get */ 96}
97 97
98/** 98/**
99 * Fill the specified rectangle on a drawable. 99 * Fill the specified rectangle on a drawable.
@@ -106,13 +106,13 @@ ecore_x_drawable_depth_get(Ecore_X_Drawable d)
106 */ 106 */
107EAPI void 107EAPI void
108ecore_x_drawable_rectangle_fill(Ecore_X_Drawable d, 108ecore_x_drawable_rectangle_fill(Ecore_X_Drawable d,
109 Ecore_X_GC gc, 109 Ecore_X_GC gc,
110 int x, 110 int x,
111 int y, 111 int y,
112 int width, 112 int width,
113 int height) 113 int height)
114{ 114{
115 LOGFN(__FILE__, __LINE__, __FUNCTION__); 115 LOGFN(__FILE__, __LINE__, __FUNCTION__);
116 XFillRectangle(_ecore_x_disp, d, gc, x, y, width, height); 116 XFillRectangle(_ecore_x_disp, d, gc, x, y, width, height);
117} /* ecore_x_drawable_rectangle_fill */ 117}
118 118
diff --git a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_e.c b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_e.c
index d357c9b..5966bbd 100644
--- a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_e.c
+++ b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_e.c
@@ -14,14 +14,14 @@
14EAPI void 14EAPI void
15ecore_x_e_init(void) 15ecore_x_e_init(void)
16{ 16{
17} /* ecore_x_e_init */ 17}
18 18
19EAPI void 19EAPI void
20ecore_x_e_frame_size_set(Ecore_X_Window win, 20ecore_x_e_frame_size_set(Ecore_X_Window win,
21 int fl, 21 int fl,
22 int fr, 22 int fr,
23 int ft, 23 int ft,
24 int fb) 24 int fb)
25{ 25{
26 unsigned int frames[4]; 26 unsigned int frames[4];
27 27
@@ -31,16 +31,16 @@ ecore_x_e_frame_size_set(Ecore_X_Window win,
31 frames[2] = ft; 31 frames[2] = ft;
32 frames[3] = fb; 32 frames[3] = fb;
33 ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_FRAME_SIZE, frames, 4); 33 ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_FRAME_SIZE, frames, 4);
34} /* ecore_x_e_frame_size_set */ 34}
35 35
36EAPI void 36EAPI void
37ecore_x_e_virtual_keyboard_set(Ecore_X_Window win, 37ecore_x_e_virtual_keyboard_set(Ecore_X_Window win,
38 unsigned int is_keyboard) 38 unsigned int is_keyboard)
39{ 39{
40 LOGFN(__FILE__, __LINE__, __FUNCTION__); 40 LOGFN(__FILE__, __LINE__, __FUNCTION__);
41 ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_VIRTUAL_KEYBOARD, 41 ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_VIRTUAL_KEYBOARD,
42 &is_keyboard, 1); 42 &is_keyboard, 1);
43} /* ecore_x_e_virtual_keyboard_set */ 43}
44 44
45EAPI Eina_Bool 45EAPI Eina_Bool
46ecore_x_e_virtual_keyboard_get(Ecore_X_Window win) 46ecore_x_e_virtual_keyboard_get(Ecore_X_Window win)
@@ -53,7 +53,7 @@ ecore_x_e_virtual_keyboard_get(Ecore_X_Window win)
53 return EINA_FALSE; 53 return EINA_FALSE;
54 54
55 return val ? EINA_TRUE : EINA_FALSE; 55 return val ? EINA_TRUE : EINA_FALSE;
56} /* ecore_x_e_virtual_keyboard_get */ 56}
57 57
58static Ecore_X_Virtual_Keyboard_State 58static Ecore_X_Virtual_Keyboard_State
59_ecore_x_e_vkbd_state_get(Ecore_X_Atom atom) 59_ecore_x_e_vkbd_state_get(Ecore_X_Atom atom)
@@ -104,7 +104,7 @@ _ecore_x_e_vkbd_state_get(Ecore_X_Atom atom)
104 return ECORE_X_VIRTUAL_KEYBOARD_STATE_J2ME; 104 return ECORE_X_VIRTUAL_KEYBOARD_STATE_J2ME;
105 105
106 return ECORE_X_VIRTUAL_KEYBOARD_STATE_UNKNOWN; 106 return ECORE_X_VIRTUAL_KEYBOARD_STATE_UNKNOWN;
107} /* _ecore_x_e_vkbd_state_get */ 107}
108 108
109static Ecore_X_Atom 109static Ecore_X_Atom
110_ecore_x_e_vkbd_atom_get(Ecore_X_Virtual_Keyboard_State state) 110_ecore_x_e_vkbd_atom_get(Ecore_X_Virtual_Keyboard_State state)
@@ -157,12 +157,12 @@ _ecore_x_e_vkbd_atom_get(Ecore_X_Virtual_Keyboard_State state)
157 return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_J2ME; 157 return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_J2ME;
158 158
159 default: break; 159 default: break;
160 } /* switch */ 160 }
161 return 0; 161 return 0;
162} /* _ecore_x_e_vkbd_atom_get */ 162}
163 163
164EAPI void 164EAPI void
165ecore_x_e_virtual_keyboard_state_set(Ecore_X_Window win, 165ecore_x_e_virtual_keyboard_state_set(Ecore_X_Window win,
166 Ecore_X_Virtual_Keyboard_State state) 166 Ecore_X_Virtual_Keyboard_State state)
167{ 167{
168 Ecore_X_Atom atom = 0; 168 Ecore_X_Atom atom = 0;
@@ -171,7 +171,7 @@ ecore_x_e_virtual_keyboard_state_set(Ecore_X_Window win,
171 atom = _ecore_x_e_vkbd_atom_get(state); 171 atom = _ecore_x_e_vkbd_atom_get(state);
172 ecore_x_window_prop_atom_set(win, ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_STATE, 172 ecore_x_window_prop_atom_set(win, ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_STATE,
173 &atom, 1); 173 &atom, 1);
174} /* ecore_x_e_virtual_keyboard_state_set */ 174}
175 175
176EAPI Ecore_X_Virtual_Keyboard_State 176EAPI Ecore_X_Virtual_Keyboard_State
177ecore_x_e_virtual_keyboard_state_get(Ecore_X_Window win) 177ecore_x_e_virtual_keyboard_state_get(Ecore_X_Window win)
@@ -184,10 +184,10 @@ ecore_x_e_virtual_keyboard_state_get(Ecore_X_Window win)
184 return ECORE_X_VIRTUAL_KEYBOARD_STATE_UNKNOWN; 184 return ECORE_X_VIRTUAL_KEYBOARD_STATE_UNKNOWN;
185 185
186 return _ecore_x_e_vkbd_state_get(atom); 186 return _ecore_x_e_vkbd_state_get(atom);
187} /* ecore_x_e_virtual_keyboard_state_get */ 187}
188 188
189EAPI void 189EAPI void
190ecore_x_e_virtual_keyboard_state_send(Ecore_X_Window win, 190ecore_x_e_virtual_keyboard_state_send(Ecore_X_Window win,
191 Ecore_X_Virtual_Keyboard_State state) 191 Ecore_X_Virtual_Keyboard_State state)
192{ 192{
193 LOGFN(__FILE__, __LINE__, __FUNCTION__); 193 LOGFN(__FILE__, __LINE__, __FUNCTION__);
@@ -195,7 +195,7 @@ ecore_x_e_virtual_keyboard_state_send(Ecore_X_Window win,
195 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE, 195 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
196 _ecore_x_e_vkbd_atom_get(state), 196 _ecore_x_e_vkbd_atom_get(state),
197 0, 0, 0, 0); 197 0, 0, 0, 0);
198} /* ecore_x_e_virtual_keyboard_state_send */ 198}
199 199
200static Ecore_X_Atom 200static Ecore_X_Atom
201_ecore_x_e_illume_atom_get(Ecore_X_Illume_Mode mode) 201_ecore_x_e_illume_atom_get(Ecore_X_Illume_Mode mode)
@@ -213,9 +213,9 @@ _ecore_x_e_illume_atom_get(Ecore_X_Illume_Mode mode)
213 213
214 default: 214 default:
215 break; 215 break;
216 } /* switch */ 216 }
217 return ECORE_X_ILLUME_MODE_UNKNOWN; 217 return ECORE_X_ILLUME_MODE_UNKNOWN;
218} /* _ecore_x_e_illume_atom_get */ 218}
219 219
220static Ecore_X_Illume_Mode 220static Ecore_X_Illume_Mode
221_ecore_x_e_illume_mode_get(Ecore_X_Atom atom) 221_ecore_x_e_illume_mode_get(Ecore_X_Atom atom)
@@ -230,7 +230,7 @@ _ecore_x_e_illume_mode_get(Ecore_X_Atom atom)
230 return ECORE_X_ILLUME_MODE_DUAL_LEFT; 230 return ECORE_X_ILLUME_MODE_DUAL_LEFT;
231 231
232 return ECORE_X_ILLUME_MODE_UNKNOWN; 232 return ECORE_X_ILLUME_MODE_UNKNOWN;
233} /* _ecore_x_e_illume_mode_get */ 233}
234 234
235EAPI void 235EAPI void
236ecore_x_e_illume_zone_set(Ecore_X_Window win, 236ecore_x_e_illume_zone_set(Ecore_X_Window win,
@@ -239,7 +239,7 @@ ecore_x_e_illume_zone_set(Ecore_X_Window win,
239 LOGFN(__FILE__, __LINE__, __FUNCTION__); 239 LOGFN(__FILE__, __LINE__, __FUNCTION__);
240 ecore_x_window_prop_window_set(win, ECORE_X_ATOM_E_ILLUME_ZONE, 240 ecore_x_window_prop_window_set(win, ECORE_X_ATOM_E_ILLUME_ZONE,
241 &zone, 1); 241 &zone, 1);
242} /* ecore_x_e_illume_zone_set */ 242}
243 243
244EAPI Ecore_X_Window 244EAPI Ecore_X_Window
245ecore_x_e_illume_zone_get(Ecore_X_Window win) 245ecore_x_e_illume_zone_get(Ecore_X_Window win)
@@ -252,26 +252,26 @@ ecore_x_e_illume_zone_get(Ecore_X_Window win)
252 return 0; 252 return 0;
253 253
254 return zone; 254 return zone;
255} /* ecore_x_e_illume_zone_get */ 255}
256 256
257EAPI void 257EAPI void
258ecore_x_e_illume_zone_list_set(Ecore_X_Window win, 258ecore_x_e_illume_zone_list_set(Ecore_X_Window win,
259 Ecore_X_Window *zones, 259 Ecore_X_Window *zones,
260 unsigned int n_zones) 260 unsigned int n_zones)
261{ 261{
262 LOGFN(__FILE__, __LINE__, __FUNCTION__); 262 LOGFN(__FILE__, __LINE__, __FUNCTION__);
263 ecore_x_window_prop_window_set(win, ECORE_X_ATOM_E_ILLUME_ZONE_LIST, 263 ecore_x_window_prop_window_set(win, ECORE_X_ATOM_E_ILLUME_ZONE_LIST,
264 zones, n_zones); 264 zones, n_zones);
265} /* ecore_x_e_illume_zone_list_set */ 265}
266 266
267EAPI void 267EAPI void
268ecore_x_e_illume_conformant_set(Ecore_X_Window win, 268ecore_x_e_illume_conformant_set(Ecore_X_Window win,
269 unsigned int is_conformant) 269 unsigned int is_conformant)
270{ 270{
271 LOGFN(__FILE__, __LINE__, __FUNCTION__); 271 LOGFN(__FILE__, __LINE__, __FUNCTION__);
272 ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_ILLUME_CONFORMANT, 272 ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_ILLUME_CONFORMANT,
273 &is_conformant, 1); 273 &is_conformant, 1);
274} /* ecore_x_e_illume_conformant_set */ 274}
275 275
276EAPI Eina_Bool 276EAPI Eina_Bool
277ecore_x_e_illume_conformant_get(Ecore_X_Window win) 277ecore_x_e_illume_conformant_get(Ecore_X_Window win)
@@ -284,10 +284,10 @@ ecore_x_e_illume_conformant_get(Ecore_X_Window win)
284 return EINA_FALSE; 284 return EINA_FALSE;
285 285
286 return val ? EINA_TRUE : EINA_FALSE; 286 return val ? EINA_TRUE : EINA_FALSE;
287} /* ecore_x_e_illume_conformant_get */ 287}
288 288
289EAPI void 289EAPI void
290ecore_x_e_illume_mode_set(Ecore_X_Window win, 290ecore_x_e_illume_mode_set(Ecore_X_Window win,
291 Ecore_X_Illume_Mode mode) 291 Ecore_X_Illume_Mode mode)
292{ 292{
293 Ecore_X_Atom atom = 0; 293 Ecore_X_Atom atom = 0;
@@ -296,7 +296,7 @@ ecore_x_e_illume_mode_set(Ecore_X_Window win,
296 atom = _ecore_x_e_illume_atom_get(mode); 296 atom = _ecore_x_e_illume_atom_get(mode);
297 ecore_x_window_prop_atom_set(win, ECORE_X_ATOM_E_ILLUME_MODE, 297 ecore_x_window_prop_atom_set(win, ECORE_X_ATOM_E_ILLUME_MODE,
298 &atom, 1); 298 &atom, 1);
299} /* ecore_x_e_illume_mode_set */ 299}
300 300
301EAPI Ecore_X_Illume_Mode 301EAPI Ecore_X_Illume_Mode
302ecore_x_e_illume_mode_get(Ecore_X_Window win) 302ecore_x_e_illume_mode_get(Ecore_X_Window win)
@@ -308,10 +308,10 @@ ecore_x_e_illume_mode_get(Ecore_X_Window win)
308 return ECORE_X_ILLUME_MODE_UNKNOWN; 308 return ECORE_X_ILLUME_MODE_UNKNOWN;
309 309
310 return _ecore_x_e_illume_mode_get(atom); 310 return _ecore_x_e_illume_mode_get(atom);
311} /* ecore_x_e_illume_mode_get */ 311}
312 312
313EAPI void 313EAPI void
314ecore_x_e_illume_mode_send(Ecore_X_Window win, 314ecore_x_e_illume_mode_send(Ecore_X_Window win,
315 Ecore_X_Illume_Mode mode) 315 Ecore_X_Illume_Mode mode)
316{ 316{
317 LOGFN(__FILE__, __LINE__, __FUNCTION__); 317 LOGFN(__FILE__, __LINE__, __FUNCTION__);
@@ -319,7 +319,7 @@ ecore_x_e_illume_mode_send(Ecore_X_Window win,
319 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE, 319 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
320 _ecore_x_e_illume_atom_get(mode), 320 _ecore_x_e_illume_atom_get(mode),
321 0, 0, 0, 0); 321 0, 0, 0, 0);
322} /* ecore_x_e_illume_mode_send */ 322}
323 323
324EAPI void 324EAPI void
325ecore_x_e_illume_focus_back_send(Ecore_X_Window win) 325ecore_x_e_illume_focus_back_send(Ecore_X_Window win)
@@ -328,7 +328,7 @@ ecore_x_e_illume_focus_back_send(Ecore_X_Window win)
328 ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_FOCUS_BACK, 328 ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_FOCUS_BACK,
329 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE, 329 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
330 1, 0, 0, 0, 0); 330 1, 0, 0, 0, 0);
331} /* ecore_x_e_illume_focus_back_send */ 331}
332 332
333EAPI void 333EAPI void
334ecore_x_e_illume_focus_forward_send(Ecore_X_Window win) 334ecore_x_e_illume_focus_forward_send(Ecore_X_Window win)
@@ -337,7 +337,7 @@ ecore_x_e_illume_focus_forward_send(Ecore_X_Window win)
337 ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_FOCUS_FORWARD, 337 ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_FOCUS_FORWARD,
338 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE, 338 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
339 1, 0, 0, 0, 0); 339 1, 0, 0, 0, 0);
340} /* ecore_x_e_illume_focus_forward_send */ 340}
341 341
342EAPI void 342EAPI void
343ecore_x_e_illume_focus_home_send(Ecore_X_Window win) 343ecore_x_e_illume_focus_home_send(Ecore_X_Window win)
@@ -346,7 +346,7 @@ ecore_x_e_illume_focus_home_send(Ecore_X_Window win)
346 ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_FOCUS_HOME, 346 ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_FOCUS_HOME,
347 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE, 347 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
348 1, 0, 0, 0, 0); 348 1, 0, 0, 0, 0);
349} /* ecore_x_e_illume_focus_home_send */ 349}
350 350
351EAPI void 351EAPI void
352ecore_x_e_illume_close_send(Ecore_X_Window win) 352ecore_x_e_illume_close_send(Ecore_X_Window win)
@@ -355,7 +355,7 @@ ecore_x_e_illume_close_send(Ecore_X_Window win)
355 ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_CLOSE, 355 ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_CLOSE,
356 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE, 356 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
357 1, 0, 0, 0, 0); 357 1, 0, 0, 0, 0);
358} /* ecore_x_e_illume_close_send */ 358}
359 359
360EAPI void 360EAPI void
361ecore_x_e_illume_home_new_send(Ecore_X_Window win) 361ecore_x_e_illume_home_new_send(Ecore_X_Window win)
@@ -364,7 +364,7 @@ ecore_x_e_illume_home_new_send(Ecore_X_Window win)
364 ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_HOME_NEW, 364 ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_HOME_NEW,
365 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE, 365 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
366 1, 0, 0, 0, 0); 366 1, 0, 0, 0, 0);
367} /* ecore_x_e_illume_home_new_send */ 367}
368 368
369EAPI void 369EAPI void
370ecore_x_e_illume_home_del_send(Ecore_X_Window win) 370ecore_x_e_illume_home_del_send(Ecore_X_Window win)
@@ -373,15 +373,15 @@ ecore_x_e_illume_home_del_send(Ecore_X_Window win)
373 ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_HOME_DEL, 373 ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_HOME_DEL,
374 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE, 374 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
375 1, 0, 0, 0, 0); 375 1, 0, 0, 0, 0);
376} /* ecore_x_e_illume_home_del_send */ 376}
377 377
378EAPI void 378EAPI void
379ecore_x_e_illume_drag_set(Ecore_X_Window win, 379ecore_x_e_illume_drag_set(Ecore_X_Window win,
380 unsigned int drag) 380 unsigned int drag)
381{ 381{
382 LOGFN(__FILE__, __LINE__, __FUNCTION__); 382 LOGFN(__FILE__, __LINE__, __FUNCTION__);
383 ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_ILLUME_DRAG, &drag, 1); 383 ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_ILLUME_DRAG, &drag, 1);
384} /* ecore_x_e_illume_drag_set */ 384}
385 385
386EAPI Eina_Bool 386EAPI Eina_Bool
387ecore_x_e_illume_drag_get(Ecore_X_Window win) 387ecore_x_e_illume_drag_get(Ecore_X_Window win)
@@ -393,16 +393,16 @@ ecore_x_e_illume_drag_get(Ecore_X_Window win)
393 return EINA_FALSE; 393 return EINA_FALSE;
394 394
395 return val ? EINA_TRUE : EINA_FALSE; 395 return val ? EINA_TRUE : EINA_FALSE;
396} /* ecore_x_e_illume_drag_get */ 396}
397 397
398EAPI void 398EAPI void
399ecore_x_e_illume_drag_locked_set(Ecore_X_Window win, 399ecore_x_e_illume_drag_locked_set(Ecore_X_Window win,
400 unsigned int is_locked) 400 unsigned int is_locked)
401{ 401{
402 LOGFN(__FILE__, __LINE__, __FUNCTION__); 402 LOGFN(__FILE__, __LINE__, __FUNCTION__);
403 ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_ILLUME_DRAG_LOCKED, 403 ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_ILLUME_DRAG_LOCKED,
404 &is_locked, 1); 404 &is_locked, 1);
405} /* ecore_x_e_illume_drag_locked_set */ 405}
406 406
407EAPI Eina_Bool 407EAPI Eina_Bool
408ecore_x_e_illume_drag_locked_get(Ecore_X_Window win) 408ecore_x_e_illume_drag_locked_get(Ecore_X_Window win)
@@ -415,7 +415,7 @@ ecore_x_e_illume_drag_locked_get(Ecore_X_Window win)
415 return EINA_FALSE; 415 return EINA_FALSE;
416 416
417 return val ? EINA_TRUE : EINA_FALSE; 417 return val ? EINA_TRUE : EINA_FALSE;
418} /* ecore_x_e_illume_drag_locked_get */ 418}
419 419
420EAPI void 420EAPI void
421ecore_x_e_illume_drag_start_send(Ecore_X_Window win) 421ecore_x_e_illume_drag_start_send(Ecore_X_Window win)
@@ -424,7 +424,7 @@ ecore_x_e_illume_drag_start_send(Ecore_X_Window win)
424 ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_DRAG_START, 424 ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_DRAG_START,
425 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE, 425 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
426 1, 0, 0, 0, 0); 426 1, 0, 0, 0, 0);
427} /* ecore_x_e_illume_drag_start_send */ 427}
428 428
429EAPI void 429EAPI void
430ecore_x_e_illume_drag_end_send(Ecore_X_Window win) 430ecore_x_e_illume_drag_end_send(Ecore_X_Window win)
@@ -433,14 +433,14 @@ ecore_x_e_illume_drag_end_send(Ecore_X_Window win)
433 ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_DRAG_END, 433 ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_DRAG_END,
434 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE, 434 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
435 1, 0, 0, 0, 0); 435 1, 0, 0, 0, 0);
436} /* ecore_x_e_illume_drag_end_send */ 436}
437 437
438EAPI void 438EAPI void
439ecore_x_e_illume_indicator_geometry_set(Ecore_X_Window win, 439ecore_x_e_illume_indicator_geometry_set(Ecore_X_Window win,
440 int x, 440 int x,
441 int y, 441 int y,
442 int w, 442 int w,
443 int h) 443 int h)
444{ 444{
445 unsigned int geom[4]; 445 unsigned int geom[4];
446 446
@@ -451,14 +451,14 @@ ecore_x_e_illume_indicator_geometry_set(Ecore_X_Window win,
451 geom[3] = h; 451 geom[3] = h;
452 ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_ILLUME_INDICATOR_GEOMETRY, 452 ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_ILLUME_INDICATOR_GEOMETRY,
453 geom, 4); 453 geom, 4);
454} /* ecore_x_e_illume_indicator_geometry_set */ 454}
455 455
456EAPI Eina_Bool 456EAPI Eina_Bool
457ecore_x_e_illume_indicator_geometry_get(Ecore_X_Window win, 457ecore_x_e_illume_indicator_geometry_get(Ecore_X_Window win,
458 int *x, 458 int *x,
459 int *y, 459 int *y,
460 int *w, 460 int *w,
461 int *h) 461 int *h)
462{ 462{
463 int ret = 0; 463 int ret = 0;
464 unsigned int geom[4]; 464 unsigned int geom[4];
@@ -484,14 +484,14 @@ ecore_x_e_illume_indicator_geometry_get(Ecore_X_Window win,
484 *h = geom[3]; 484 *h = geom[3];
485 485
486 return EINA_TRUE; 486 return EINA_TRUE;
487} /* ecore_x_e_illume_indicator_geometry_get */ 487}
488 488
489EAPI void 489EAPI void
490ecore_x_e_illume_softkey_geometry_set(Ecore_X_Window win, 490ecore_x_e_illume_softkey_geometry_set(Ecore_X_Window win,
491 int x, 491 int x,
492 int y, 492 int y,
493 int w, 493 int w,
494 int h) 494 int h)
495{ 495{
496 unsigned int geom[4]; 496 unsigned int geom[4];
497 497
@@ -502,14 +502,14 @@ ecore_x_e_illume_softkey_geometry_set(Ecore_X_Window win,
502 geom[3] = h; 502 geom[3] = h;
503 ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_ILLUME_SOFTKEY_GEOMETRY, 503 ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_ILLUME_SOFTKEY_GEOMETRY,
504 geom, 4); 504 geom, 4);
505} /* ecore_x_e_illume_softkey_geometry_set */ 505}
506 506
507EAPI Eina_Bool 507EAPI Eina_Bool
508ecore_x_e_illume_softkey_geometry_get(Ecore_X_Window win, 508ecore_x_e_illume_softkey_geometry_get(Ecore_X_Window win,
509 int *x, 509 int *x,
510 int *y, 510 int *y,
511 int *w, 511 int *w,
512 int *h) 512 int *h)
513{ 513{
514 int ret = 0; 514 int ret = 0;
515 unsigned int geom[4]; 515 unsigned int geom[4];
@@ -535,14 +535,14 @@ ecore_x_e_illume_softkey_geometry_get(Ecore_X_Window win,
535 *h = geom[3]; 535 *h = geom[3];
536 536
537 return EINA_TRUE; 537 return EINA_TRUE;
538} /* ecore_x_e_illume_softkey_geometry_get */ 538}
539 539
540EAPI void 540EAPI void
541ecore_x_e_illume_keyboard_geometry_set(Ecore_X_Window win, 541ecore_x_e_illume_keyboard_geometry_set(Ecore_X_Window win,
542 int x, 542 int x,
543 int y, 543 int y,
544 int w, 544 int w,
545 int h) 545 int h)
546{ 546{
547 unsigned int geom[4]; 547 unsigned int geom[4];
548 548
@@ -553,14 +553,14 @@ ecore_x_e_illume_keyboard_geometry_set(Ecore_X_Window win,
553 geom[3] = h; 553 geom[3] = h;
554 ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_ILLUME_KEYBOARD_GEOMETRY, 554 ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_ILLUME_KEYBOARD_GEOMETRY,
555 geom, 4); 555 geom, 4);
556} /* ecore_x_e_illume_keyboard_geometry_set */ 556}
557 557
558EAPI Eina_Bool 558EAPI Eina_Bool
559ecore_x_e_illume_keyboard_geometry_get(Ecore_X_Window win, 559ecore_x_e_illume_keyboard_geometry_get(Ecore_X_Window win,
560 int *x, 560 int *x,
561 int *y, 561 int *y,
562 int *w, 562 int *w,
563 int *h) 563 int *h)
564{ 564{
565 int ret = 0; 565 int ret = 0;
566 unsigned int geom[4]; 566 unsigned int geom[4];
@@ -586,7 +586,7 @@ ecore_x_e_illume_keyboard_geometry_get(Ecore_X_Window win,
586 *h = geom[3]; 586 *h = geom[3];
587 587
588 return EINA_TRUE; 588 return EINA_TRUE;
589} /* ecore_x_e_illume_keyboard_geometry_get */ 589}
590 590
591static Ecore_X_Atom 591static Ecore_X_Atom
592_ecore_x_e_quickpanel_atom_get(Ecore_X_Illume_Quickpanel_State state) 592_ecore_x_e_quickpanel_atom_get(Ecore_X_Illume_Quickpanel_State state)
@@ -601,9 +601,9 @@ _ecore_x_e_quickpanel_atom_get(Ecore_X_Illume_Quickpanel_State state)
601 601
602 default: 602 default:
603 break; 603 break;
604 } /* switch */ 604 }
605 return 0; 605 return 0;
606} /* _ecore_x_e_quickpanel_atom_get */ 606}
607 607
608static Ecore_X_Illume_Quickpanel_State 608static Ecore_X_Illume_Quickpanel_State
609_ecore_x_e_quickpanel_state_get(Ecore_X_Atom atom) 609_ecore_x_e_quickpanel_state_get(Ecore_X_Atom atom)
@@ -615,16 +615,16 @@ _ecore_x_e_quickpanel_state_get(Ecore_X_Atom atom)
615 return ECORE_X_ILLUME_QUICKPANEL_STATE_OFF; 615 return ECORE_X_ILLUME_QUICKPANEL_STATE_OFF;
616 616
617 return ECORE_X_ILLUME_QUICKPANEL_STATE_UNKNOWN; 617 return ECORE_X_ILLUME_QUICKPANEL_STATE_UNKNOWN;
618} /* _ecore_x_e_quickpanel_state_get */ 618}
619 619
620EAPI void 620EAPI void
621ecore_x_e_illume_quickpanel_set(Ecore_X_Window win, 621ecore_x_e_illume_quickpanel_set(Ecore_X_Window win,
622 unsigned int is_quickpanel) 622 unsigned int is_quickpanel)
623{ 623{
624 LOGFN(__FILE__, __LINE__, __FUNCTION__); 624 LOGFN(__FILE__, __LINE__, __FUNCTION__);
625 ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_ILLUME_QUICKPANEL, 625 ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_ILLUME_QUICKPANEL,
626 &is_quickpanel, 1); 626 &is_quickpanel, 1);
627} /* ecore_x_e_illume_quickpanel_set */ 627}
628 628
629EAPI Eina_Bool 629EAPI Eina_Bool
630ecore_x_e_illume_quickpanel_get(Ecore_X_Window win) 630ecore_x_e_illume_quickpanel_get(Ecore_X_Window win)
@@ -637,10 +637,10 @@ ecore_x_e_illume_quickpanel_get(Ecore_X_Window win)
637 return EINA_FALSE; 637 return EINA_FALSE;
638 638
639 return val ? EINA_TRUE : EINA_FALSE; 639 return val ? EINA_TRUE : EINA_FALSE;
640} /* ecore_x_e_illume_quickpanel_get */ 640}
641 641
642EAPI void 642EAPI void
643ecore_x_e_illume_quickpanel_state_set(Ecore_X_Window win, 643ecore_x_e_illume_quickpanel_state_set(Ecore_X_Window win,
644 Ecore_X_Illume_Quickpanel_State state) 644 Ecore_X_Illume_Quickpanel_State state)
645{ 645{
646 Ecore_X_Atom atom = 0; 646 Ecore_X_Atom atom = 0;
@@ -649,7 +649,7 @@ ecore_x_e_illume_quickpanel_state_set(Ecore_X_Window win,
649 atom = _ecore_x_e_quickpanel_atom_get(state); 649 atom = _ecore_x_e_quickpanel_atom_get(state);
650 ecore_x_window_prop_atom_set(win, ECORE_X_ATOM_E_ILLUME_QUICKPANEL_STATE, 650 ecore_x_window_prop_atom_set(win, ECORE_X_ATOM_E_ILLUME_QUICKPANEL_STATE,
651 &atom, 1); 651 &atom, 1);
652} /* ecore_x_e_illume_quickpanel_state_set */ 652}
653 653
654EAPI Ecore_X_Illume_Quickpanel_State 654EAPI Ecore_X_Illume_Quickpanel_State
655ecore_x_e_illume_quickpanel_state_get(Ecore_X_Window win) 655ecore_x_e_illume_quickpanel_state_get(Ecore_X_Window win)
@@ -663,10 +663,10 @@ ecore_x_e_illume_quickpanel_state_get(Ecore_X_Window win)
663 return ECORE_X_ILLUME_QUICKPANEL_STATE_UNKNOWN; 663 return ECORE_X_ILLUME_QUICKPANEL_STATE_UNKNOWN;
664 664
665 return _ecore_x_e_quickpanel_state_get(atom); 665 return _ecore_x_e_quickpanel_state_get(atom);
666} /* ecore_x_e_illume_quickpanel_state_get */ 666}
667 667
668EAPI void 668EAPI void
669ecore_x_e_illume_quickpanel_state_send(Ecore_X_Window win, 669ecore_x_e_illume_quickpanel_state_send(Ecore_X_Window win,
670 Ecore_X_Illume_Quickpanel_State state) 670 Ecore_X_Illume_Quickpanel_State state)
671{ 671{
672 LOGFN(__FILE__, __LINE__, __FUNCTION__); 672 LOGFN(__FILE__, __LINE__, __FUNCTION__);
@@ -674,7 +674,7 @@ ecore_x_e_illume_quickpanel_state_send(Ecore_X_Window win,
674 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE, 674 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
675 _ecore_x_e_quickpanel_atom_get(state), 675 _ecore_x_e_quickpanel_atom_get(state),
676 0, 0, 0, 0); 676 0, 0, 0, 0);
677} /* ecore_x_e_illume_quickpanel_state_send */ 677}
678 678
679EAPI void 679EAPI void
680ecore_x_e_illume_quickpanel_state_toggle(Ecore_X_Window win) 680ecore_x_e_illume_quickpanel_state_toggle(Ecore_X_Window win)
@@ -684,17 +684,17 @@ ecore_x_e_illume_quickpanel_state_toggle(Ecore_X_Window win)
684 ECORE_X_ATOM_E_ILLUME_QUICKPANEL_STATE_TOGGLE, 684 ECORE_X_ATOM_E_ILLUME_QUICKPANEL_STATE_TOGGLE,
685 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE, 685 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
686 0, 0, 0, 0, 0); 686 0, 0, 0, 0, 0);
687} /* ecore_x_e_illume_quickpanel_state_toggle */ 687}
688 688
689EAPI void 689EAPI void
690ecore_x_e_illume_quickpanel_priority_major_set(Ecore_X_Window win, 690ecore_x_e_illume_quickpanel_priority_major_set(Ecore_X_Window win,
691 unsigned int priority) 691 unsigned int priority)
692{ 692{
693 LOGFN(__FILE__, __LINE__, __FUNCTION__); 693 LOGFN(__FILE__, __LINE__, __FUNCTION__);
694 ecore_x_window_prop_card32_set(win, 694 ecore_x_window_prop_card32_set(win,
695 ECORE_X_ATOM_E_ILLUME_QUICKPANEL_PRIORITY_MAJOR, 695 ECORE_X_ATOM_E_ILLUME_QUICKPANEL_PRIORITY_MAJOR,
696 &priority, 1); 696 &priority, 1);
697} /* ecore_x_e_illume_quickpanel_priority_major_set */ 697}
698 698
699EAPI int 699EAPI int
700ecore_x_e_illume_quickpanel_priority_major_get(Ecore_X_Window win) 700ecore_x_e_illume_quickpanel_priority_major_get(Ecore_X_Window win)
@@ -708,17 +708,17 @@ ecore_x_e_illume_quickpanel_priority_major_get(Ecore_X_Window win)
708 return 0; 708 return 0;
709 709
710 return val; 710 return val;
711} /* ecore_x_e_illume_quickpanel_priority_major_get */ 711}
712 712
713EAPI void 713EAPI void
714ecore_x_e_illume_quickpanel_priority_minor_set(Ecore_X_Window win, 714ecore_x_e_illume_quickpanel_priority_minor_set(Ecore_X_Window win,
715 unsigned int priority) 715 unsigned int priority)
716{ 716{
717 LOGFN(__FILE__, __LINE__, __FUNCTION__); 717 LOGFN(__FILE__, __LINE__, __FUNCTION__);
718 ecore_x_window_prop_card32_set(win, 718 ecore_x_window_prop_card32_set(win,
719 ECORE_X_ATOM_E_ILLUME_QUICKPANEL_PRIORITY_MINOR, 719 ECORE_X_ATOM_E_ILLUME_QUICKPANEL_PRIORITY_MINOR,
720 &priority, 1); 720 &priority, 1);
721} /* ecore_x_e_illume_quickpanel_priority_minor_set */ 721}
722 722
723EAPI int 723EAPI int
724ecore_x_e_illume_quickpanel_priority_minor_get(Ecore_X_Window win) 724ecore_x_e_illume_quickpanel_priority_minor_get(Ecore_X_Window win)
@@ -732,17 +732,17 @@ ecore_x_e_illume_quickpanel_priority_minor_get(Ecore_X_Window win)
732 return 0; 732 return 0;
733 733
734 return val; 734 return val;
735} /* ecore_x_e_illume_quickpanel_priority_minor_get */ 735}
736 736
737EAPI void 737EAPI void
738ecore_x_e_illume_quickpanel_zone_set(Ecore_X_Window win, 738ecore_x_e_illume_quickpanel_zone_set(Ecore_X_Window win,
739 unsigned int zone) 739 unsigned int zone)
740{ 740{
741 LOGFN(__FILE__, __LINE__, __FUNCTION__); 741 LOGFN(__FILE__, __LINE__, __FUNCTION__);
742 ecore_x_window_prop_card32_set(win, 742 ecore_x_window_prop_card32_set(win,
743 ECORE_X_ATOM_E_ILLUME_QUICKPANEL_ZONE, 743 ECORE_X_ATOM_E_ILLUME_QUICKPANEL_ZONE,
744 &zone, 1); 744 &zone, 1);
745} /* ecore_x_e_illume_quickpanel_zone_set */ 745}
746 746
747EAPI int 747EAPI int
748ecore_x_e_illume_quickpanel_zone_get(Ecore_X_Window win) 748ecore_x_e_illume_quickpanel_zone_get(Ecore_X_Window win)
@@ -756,7 +756,7 @@ ecore_x_e_illume_quickpanel_zone_get(Ecore_X_Window win)
756 return 0; 756 return 0;
757 757
758 return val; 758 return val;
759} /* ecore_x_e_illume_quickpanel_zone_get */ 759}
760 760
761EAPI void 761EAPI void
762ecore_x_e_illume_quickpanel_position_update_send(Ecore_X_Window win) 762ecore_x_e_illume_quickpanel_position_update_send(Ecore_X_Window win)
@@ -766,10 +766,10 @@ ecore_x_e_illume_quickpanel_position_update_send(Ecore_X_Window win)
766 ECORE_X_ATOM_E_ILLUME_QUICKPANEL_POSITION_UPDATE, 766 ECORE_X_ATOM_E_ILLUME_QUICKPANEL_POSITION_UPDATE,
767 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE, 767 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
768 1, 0, 0, 0, 0); 768 1, 0, 0, 0, 0);
769} /* ecore_x_e_illume_quickpanel_position_update_send */ 769}
770 770
771EAPI void 771EAPI void
772ecore_x_e_comp_sync_counter_set(Ecore_X_Window win, 772ecore_x_e_comp_sync_counter_set(Ecore_X_Window win,
773 Ecore_X_Sync_Counter counter) 773 Ecore_X_Sync_Counter counter)
774{ 774{
775 LOGFN(__FILE__, __LINE__, __FUNCTION__); 775 LOGFN(__FILE__, __LINE__, __FUNCTION__);
@@ -778,7 +778,7 @@ ecore_x_e_comp_sync_counter_set(Ecore_X_Window win,
778 ECORE_X_ATOM_CARDINAL, &counter, 1); 778 ECORE_X_ATOM_CARDINAL, &counter, 1);
779 else 779 else
780 ecore_x_window_prop_property_del(win, ECORE_X_ATOM_E_COMP_SYNC_COUNTER); 780 ecore_x_window_prop_property_del(win, ECORE_X_ATOM_E_COMP_SYNC_COUNTER);
781} /* ecore_x_e_comp_sync_counter_set */ 781}
782 782
783EAPI Ecore_X_Sync_Counter 783EAPI Ecore_X_Sync_Counter
784ecore_x_e_comp_sync_counter_get(Ecore_X_Window win) 784ecore_x_e_comp_sync_counter_get(Ecore_X_Window win)
@@ -796,7 +796,7 @@ ecore_x_e_comp_sync_counter_get(Ecore_X_Window win)
796 return 0; 796 return 0;
797 797
798 return counter; 798 return counter;
799} /* ecore_x_e_comp_sync_counter_get */ 799}
800 800
801EAPI void 801EAPI void
802ecore_x_e_comp_sync_draw_done_send(Ecore_X_Window root, 802ecore_x_e_comp_sync_draw_done_send(Ecore_X_Window root,
@@ -822,13 +822,13 @@ ecore_x_e_comp_sync_draw_done_send(Ecore_X_Window root,
822 XSendEvent(_ecore_x_disp, root, False, 822 XSendEvent(_ecore_x_disp, root, False,
823 SubstructureRedirectMask | SubstructureNotifyMask, 823 SubstructureRedirectMask | SubstructureNotifyMask,
824 &xev); 824 &xev);
825} /* ecore_x_e_comp_sync_draw_done_send */ 825}
826 826
827EAPI void 827EAPI void
828ecore_x_e_comp_sync_draw_size_done_send(Ecore_X_Window root, 828ecore_x_e_comp_sync_draw_size_done_send(Ecore_X_Window root,
829 Ecore_X_Window win, 829 Ecore_X_Window win,
830 int w, 830 int w,
831 int h) 831 int h)
832{ 832{
833 XEvent xev; 833 XEvent xev;
834 834
@@ -850,11 +850,11 @@ ecore_x_e_comp_sync_draw_size_done_send(Ecore_X_Window root,
850 XSendEvent(_ecore_x_disp, root, False, 850 XSendEvent(_ecore_x_disp, root, False,
851 SubstructureRedirectMask | SubstructureNotifyMask, 851 SubstructureRedirectMask | SubstructureNotifyMask,
852 &xev); 852 &xev);
853} /* ecore_x_e_comp_sync_draw_done_send */ 853}
854 854
855EAPI void 855EAPI void
856ecore_x_e_comp_sync_supported_set(Ecore_X_Window root, 856ecore_x_e_comp_sync_supported_set(Ecore_X_Window root,
857 Eina_Bool enabled) 857 Eina_Bool enabled)
858{ 858{
859 Ecore_X_Window win; 859 Ecore_X_Window win;
860 860
@@ -887,7 +887,7 @@ ecore_x_e_comp_sync_supported_set(Ecore_X_Window root,
887 ecore_x_window_free(win); 887 ecore_x_window_free(win);
888 } 888 }
889 } 889 }
890} /* ecore_x_e_comp_sync_supported_set */ 890}
891 891
892EAPI Eina_Bool 892EAPI Eina_Bool
893ecore_x_e_comp_sync_supported_get(Ecore_X_Window root) 893ecore_x_e_comp_sync_supported_get(Ecore_X_Window root)
@@ -916,7 +916,7 @@ ecore_x_e_comp_sync_supported_get(Ecore_X_Window root)
916 } 916 }
917 917
918 return EINA_FALSE; 918 return EINA_FALSE;
919} /* ecore_x_e_comp_sync_supported_get */ 919}
920 920
921EAPI void 921EAPI void
922ecore_x_e_comp_sync_begin_send(Ecore_X_Window win) 922ecore_x_e_comp_sync_begin_send(Ecore_X_Window win)
@@ -938,7 +938,7 @@ ecore_x_e_comp_sync_begin_send(Ecore_X_Window win)
938 XSendEvent(_ecore_x_disp, win, False, 938 XSendEvent(_ecore_x_disp, win, False,
939 NoEventMask, //SubstructureRedirectMask | SubstructureNotifyMask, 939 NoEventMask, //SubstructureRedirectMask | SubstructureNotifyMask,
940 &xev); 940 &xev);
941} /* ecore_x_e_comp_sync_begin_send */ 941}
942 942
943EAPI void 943EAPI void
944ecore_x_e_comp_sync_end_send(Ecore_X_Window win) 944ecore_x_e_comp_sync_end_send(Ecore_X_Window win)
@@ -960,7 +960,7 @@ ecore_x_e_comp_sync_end_send(Ecore_X_Window win)
960 XSendEvent(_ecore_x_disp, win, False, 960 XSendEvent(_ecore_x_disp, win, False,
961 NoEventMask, //SubstructureRedirectMask | SubstructureNotifyMask, 961 NoEventMask, //SubstructureRedirectMask | SubstructureNotifyMask,
962 &xev); 962 &xev);
963} /* ecore_x_e_comp_sync_end_send */ 963}
964 964
965EAPI void 965EAPI void
966ecore_x_e_comp_sync_cancel_send(Ecore_X_Window win) 966ecore_x_e_comp_sync_cancel_send(Ecore_X_Window win)
@@ -982,7 +982,7 @@ ecore_x_e_comp_sync_cancel_send(Ecore_X_Window win)
982 XSendEvent(_ecore_x_disp, win, False, 982 XSendEvent(_ecore_x_disp, win, False,
983 NoEventMask, //SubstructureRedirectMask | SubstructureNotifyMask, 983 NoEventMask, //SubstructureRedirectMask | SubstructureNotifyMask,
984 &xev); 984 &xev);
985} /* ecore_x_e_comp_sync_cancel_send */ 985}
986 986
987EAPI void 987EAPI void
988ecore_x_e_comp_flush_send(Ecore_X_Window win) 988ecore_x_e_comp_flush_send(Ecore_X_Window win)
@@ -1004,7 +1004,7 @@ ecore_x_e_comp_flush_send(Ecore_X_Window win)
1004 XSendEvent(_ecore_x_disp, win, False, 1004 XSendEvent(_ecore_x_disp, win, False,
1005 NoEventMask, //SubstructureRedirectMask | SubstructureNotifyMask, 1005 NoEventMask, //SubstructureRedirectMask | SubstructureNotifyMask,
1006 &xev); 1006 &xev);
1007} /* ecore_x_e_comp_flush_send */ 1007}
1008 1008
1009EAPI void 1009EAPI void
1010ecore_x_e_comp_dump_send(Ecore_X_Window win) 1010ecore_x_e_comp_dump_send(Ecore_X_Window win)
@@ -1026,7 +1026,7 @@ ecore_x_e_comp_dump_send(Ecore_X_Window win)
1026 XSendEvent(_ecore_x_disp, win, False, 1026 XSendEvent(_ecore_x_disp, win, False,
1027 NoEventMask, //SubstructureRedirectMask | SubstructureNotifyMask, 1027 NoEventMask, //SubstructureRedirectMask | SubstructureNotifyMask,
1028 &xev); 1028 &xev);
1029} /* ecore_x_e_comp_dump_send */ 1029}
1030 1030
1031EAPI void 1031EAPI void
1032ecore_x_e_comp_pixmap_set(Ecore_X_Window win, 1032ecore_x_e_comp_pixmap_set(Ecore_X_Window win,
@@ -1038,7 +1038,7 @@ ecore_x_e_comp_pixmap_set(Ecore_X_Window win,
1038 ECORE_X_ATOM_PIXMAP, &pixmap, 1); 1038 ECORE_X_ATOM_PIXMAP, &pixmap, 1);
1039 else 1039 else
1040 ecore_x_window_prop_property_del(win, pixmap); 1040 ecore_x_window_prop_property_del(win, pixmap);
1041} /* ecore_x_e_comp_pixmap_set */ 1041}
1042 1042
1043EAPI Ecore_X_Pixmap 1043EAPI Ecore_X_Pixmap
1044ecore_x_e_comp_pixmap_get(Ecore_X_Window win) 1044ecore_x_e_comp_pixmap_get(Ecore_X_Window win)
@@ -1056,5 +1056,5 @@ ecore_x_e_comp_pixmap_get(Ecore_X_Window win)
1056 return 0; 1056 return 0;
1057 1057
1058 return pixmap; 1058 return pixmap;
1059} /* ecore_x_e_comp_pixmap_get */ 1059}
1060 1060
diff --git a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_error.c b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_error.c
index 837ff53..11e9f20 100644
--- a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_error.c
+++ b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_error.c
@@ -9,7 +9,7 @@
9#include "ecore_x_private.h" 9#include "ecore_x_private.h"
10#include "Ecore_X.h" 10#include "Ecore_X.h"
11 11
12static int _ecore_x_error_handle(Display *d, 12static int _ecore_x_error_handle(Display *d,
13 XErrorEvent *ev); 13 XErrorEvent *ev);
14static int _ecore_x_io_error_handle(Display *d); 14static int _ecore_x_io_error_handle(Display *d);
15 15
@@ -19,6 +19,7 @@ static void (*_io_error_func)(void *data) = NULL;
19static void *_io_error_data = NULL; 19static void *_io_error_data = NULL;
20static int _error_request_code = 0; 20static int _error_request_code = 0;
21static int _error_code = 0; 21static int _error_code = 0;
22static Ecore_X_ID _error_resource_id = 0;
22 23
23/** 24/**
24 * Set the error handler. 25 * Set the error handler.
@@ -28,12 +29,12 @@ static int _error_code = 0;
28 * Set the X error handler function 29 * Set the X error handler function
29 */ 30 */
30EAPI void 31EAPI void
31ecore_x_error_handler_set(void (*func)(void *data), 32ecore_x_error_handler_set(void (*func)(void *data),
32 const void *data) 33 const void *data)
33{ 34{
34 _error_func = func; 35 _error_func = func;
35 _error_data = (void *)data; 36 _error_data = (void *)data;
36} /* ecore_x_error_handler_set */ 37}
37 38
38/** 39/**
39 * Set the I/O error handler. 40 * Set the I/O error handler.
@@ -43,12 +44,12 @@ ecore_x_error_handler_set(void (*func)(void *data),
43 * Set the X I/O error handler function 44 * Set the X I/O error handler function
44 */ 45 */
45EAPI void 46EAPI void
46ecore_x_io_error_handler_set(void (*func)(void *data), 47ecore_x_io_error_handler_set(void (*func)(void *data),
47 const void *data) 48 const void *data)
48{ 49{
49 _io_error_func = func; 50 _io_error_func = func;
50 _io_error_data = (void *)data; 51 _io_error_data = (void *)data;
51} /* ecore_x_io_error_handler_set */ 52}
52 53
53/** 54/**
54 * Get the request code that caused the error. 55 * Get the request code that caused the error.
@@ -60,7 +61,7 @@ EAPI int
60ecore_x_error_request_get(void) 61ecore_x_error_request_get(void)
61{ 62{
62 return _error_request_code; 63 return _error_request_code;
63} /* ecore_x_error_request_get */ 64}
64 65
65/** 66/**
66 * Get the error code from the error. 67 * Get the error code from the error.
@@ -72,28 +73,41 @@ EAPI int
72ecore_x_error_code_get(void) 73ecore_x_error_code_get(void)
73{ 74{
74 return _error_code; 75 return _error_code;
75} /* ecore_x_error_code_get */ 76}
77
78/**
79 * Get the resource id that caused the error.
80 * @return The resource id causing the X error
81 *
82 * Return the X resource id that caused the last X error
83 */
84EAPI Ecore_X_ID
85ecore_x_error_resource_id_get(void)
86{
87 return _error_resource_id;
88}
76 89
77void 90void
78_ecore_x_error_handler_init(void) 91_ecore_x_error_handler_init(void)
79{ 92{
80 XSetErrorHandler((XErrorHandler)_ecore_x_error_handle); 93 XSetErrorHandler((XErrorHandler)_ecore_x_error_handle);
81 XSetIOErrorHandler((XIOErrorHandler)_ecore_x_io_error_handle); 94 XSetIOErrorHandler((XIOErrorHandler)_ecore_x_io_error_handle);
82} /* _ecore_x_error_handler_init */ 95}
83 96
84static int 97static int
85_ecore_x_error_handle(Display *d, 98_ecore_x_error_handle(Display *d,
86 XErrorEvent *ev) 99 XErrorEvent *ev)
87{ 100{
88 if (d == _ecore_x_disp) 101 if (d == _ecore_x_disp)
89 { 102 {
90 _error_request_code = ev->request_code; 103 _error_request_code = ev->request_code;
91 _error_code = ev->error_code; 104 _error_code = ev->error_code;
105 _error_resource_id = ev->resourceid;
92 if (_error_func) 106 if (_error_func)
93 _error_func(_error_data); 107 _error_func(_error_data);
94 } 108 }
95 return 0; 109 return 0;
96} /* _ecore_x_error_handle */ 110}
97 111
98static int 112static int
99_ecore_x_io_error_handle(Display *d) 113_ecore_x_io_error_handle(Display *d)
@@ -107,5 +121,5 @@ _ecore_x_io_error_handle(Display *d)
107 } 121 }
108 122
109 return 0; 123 return 0;
110} /* _ecore_x_io_error_handle */ 124}
111 125
diff --git a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_events.c b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_events.c
index 136cd63..0b06a79 100644
--- a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_events.c
+++ b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_events.c
@@ -100,10 +100,10 @@ _ecore_x_event_free_mouse_move(void *data __UNUSED__,
100 } 100 }
101 101
102 free(e); 102 free(e);
103} /* _ecore_x_event_free_mouse_move */ 103}
104 104
105EAPI void 105EAPI void
106ecore_x_event_mask_set(Ecore_X_Window w, 106ecore_x_event_mask_set(Ecore_X_Window w,
107 Ecore_X_Event_Mask mask) 107 Ecore_X_Event_Mask mask)
108{ 108{
109 XWindowAttributes attr; 109 XWindowAttributes attr;
@@ -117,10 +117,10 @@ ecore_x_event_mask_set(Ecore_X_Window w,
117 XGetWindowAttributes(_ecore_x_disp, w, &attr); 117 XGetWindowAttributes(_ecore_x_disp, w, &attr);
118 s_attr.event_mask = mask | attr.your_event_mask; 118 s_attr.event_mask = mask | attr.your_event_mask;
119 XChangeWindowAttributes(_ecore_x_disp, w, CWEventMask, &s_attr); 119 XChangeWindowAttributes(_ecore_x_disp, w, CWEventMask, &s_attr);
120} /* ecore_x_event_mask_set */ 120}
121 121
122EAPI void 122EAPI void
123ecore_x_event_mask_unset(Ecore_X_Window w, 123ecore_x_event_mask_unset(Ecore_X_Window w,
124 Ecore_X_Event_Mask mask) 124 Ecore_X_Event_Mask mask)
125{ 125{
126 XWindowAttributes attr; 126 XWindowAttributes attr;
@@ -134,7 +134,7 @@ ecore_x_event_mask_unset(Ecore_X_Window w,
134 XGetWindowAttributes(_ecore_x_disp, w, &attr); 134 XGetWindowAttributes(_ecore_x_disp, w, &attr);
135 s_attr.event_mask = attr.your_event_mask & ~mask; 135 s_attr.event_mask = attr.your_event_mask & ~mask;
136 XChangeWindowAttributes(_ecore_x_disp, w, CWEventMask, &s_attr); 136 XChangeWindowAttributes(_ecore_x_disp, w, CWEventMask, &s_attr);
137} /* ecore_x_event_mask_unset */ 137}
138 138
139static void 139static void
140_ecore_x_event_free_xdnd_enter(void *data __UNUSED__, 140_ecore_x_event_free_xdnd_enter(void *data __UNUSED__,
@@ -148,7 +148,7 @@ _ecore_x_event_free_xdnd_enter(void *data __UNUSED__,
148 XFree(e->types[i]); 148 XFree(e->types[i]);
149 free(e->types); 149 free(e->types);
150 free(e); 150 free(e);
151} /* _ecore_x_event_free_xdnd_enter */ 151}
152 152
153static void 153static void
154_ecore_x_event_free_selection_notify(void *data __UNUSED__, 154_ecore_x_event_free_selection_notify(void *data __UNUSED__,
@@ -164,7 +164,7 @@ _ecore_x_event_free_selection_notify(void *data __UNUSED__,
164 164
165 free(e->target); 165 free(e->target);
166 free(e); 166 free(e);
167} /* _ecore_x_event_free_selection_notify */ 167}
168 168
169static unsigned int 169static unsigned int
170_ecore_x_event_modifiers(unsigned int state) 170_ecore_x_event_modifiers(unsigned int state)
@@ -196,28 +196,28 @@ _ecore_x_event_modifiers(unsigned int state)
196 modifiers |= ECORE_EVENT_LOCK_SHIFT; 196 modifiers |= ECORE_EVENT_LOCK_SHIFT;
197 197
198 return modifiers; 198 return modifiers;
199} /* _ecore_x_event_modifiers */ 199}
200 200
201void 201void
202_ecore_mouse_move(unsigned int timestamp, 202_ecore_mouse_move(unsigned int timestamp,
203 unsigned int xmodifiers, 203 unsigned int xmodifiers,
204 int x, 204 int x,
205 int y, 205 int y,
206 int x_root, 206 int x_root,
207 int y_root, 207 int y_root,
208 unsigned int event_window, 208 unsigned int event_window,
209 unsigned int window, 209 unsigned int window,
210 unsigned int root_win, 210 unsigned int root_win,
211 int same_screen, 211 int same_screen,
212 int dev, 212 int dev,
213 double radx, 213 double radx,
214 double rady, 214 double rady,
215 double pressure, 215 double pressure,
216 double angle, 216 double angle,
217 double mx, 217 double mx,
218 double my, 218 double my,
219 double mrx, 219 double mrx,
220 double mry) 220 double mry)
221{ 221{
222 Ecore_Event_Mouse_Move *e; 222 Ecore_Event_Mouse_Move *e;
223 Ecore_Event *event; 223 Ecore_Event *event;
@@ -260,10 +260,10 @@ _ecore_mouse_move(unsigned int timestamp,
260 _ecore_x_event_last_root_y = y_root; 260 _ecore_x_event_last_root_y = y_root;
261 261
262 _ecore_x_last_event_mouse_move_event = event; 262 _ecore_x_last_event_mouse_move_event = event;
263} /* _ecore_mouse_move */ 263}
264 264
265static void 265static void
266_ecore_key_press(int event, 266_ecore_key_press(int event,
267 XKeyEvent *xevent) 267 XKeyEvent *xevent)
268{ 268{
269 Ecore_Event_Key *e; 269 Ecore_Event_Key *e;
@@ -343,30 +343,30 @@ _ecore_key_press(int event,
343on_error: 343on_error:
344 if (tmp) 344 if (tmp)
345 free(tmp); 345 free(tmp);
346} /* _ecore_key_press */ 346}
347 347
348Ecore_Event_Mouse_Button * 348Ecore_Event_Mouse_Button *
349_ecore_mouse_button(int event, 349_ecore_mouse_button(int event,
350 unsigned int timestamp, 350 unsigned int timestamp,
351 unsigned int xmodifiers, 351 unsigned int xmodifiers,
352 unsigned int buttons, 352 unsigned int buttons,
353 int x, 353 int x,
354 int y, 354 int y,
355 int x_root, 355 int x_root,
356 int y_root, 356 int y_root,
357 unsigned int event_window, 357 unsigned int event_window,
358 unsigned int window, 358 unsigned int window,
359 unsigned int root_win, 359 unsigned int root_win,
360 int same_screen, 360 int same_screen,
361 int dev, 361 int dev,
362 double radx, 362 double radx,
363 double rady, 363 double rady,
364 double pressure, 364 double pressure,
365 double angle, 365 double angle,
366 double mx, 366 double mx,
367 double my, 367 double my,
368 double mrx, 368 double mrx,
369 double mry) 369 double mry)
370{ 370{
371 Ecore_Event_Mouse_Button *e; 371 Ecore_Event_Mouse_Button *e;
372 372
@@ -407,37 +407,37 @@ _ecore_mouse_button(int event,
407 { 407 {
408 if (event == ECORE_EVENT_MOUSE_BUTTON_DOWN) 408 if (event == ECORE_EVENT_MOUSE_BUTTON_DOWN)
409 { 409 {
410 //Check Double Clicked 410 //Check Double Clicked
411 if (((int)(timestamp - down_info->last_time) <= 411 if (((int)(timestamp - down_info->last_time) <=
412 (int)(1000 * _ecore_x_double_click_time)) && 412 (int)(1000 * _ecore_x_double_click_time)) &&
413 (window == down_info->last_win) && 413 (window == down_info->last_win) &&
414 (event_window == down_info->last_event_win)) 414 (event_window == down_info->last_event_win))
415 { 415 {
416 e->double_click = 1; 416 e->double_click = 1;
417 down_info->did_double = EINA_TRUE; 417 down_info->did_double = EINA_TRUE;
418 } 418 }
419 else 419 else
420 { 420 {
421 down_info->did_double = EINA_FALSE; 421 down_info->did_double = EINA_FALSE;
422 down_info->did_triple = EINA_FALSE; 422 down_info->did_triple = EINA_FALSE;
423 } 423 }
424 424
425 //Check Triple Clicked 425 //Check Triple Clicked
426 if (((int)(timestamp - down_info->last_last_time) <= 426 if (((int)(timestamp - down_info->last_last_time) <=
427 (int)(2 * 1000 * _ecore_x_double_click_time)) && 427 (int)(2 * 1000 * _ecore_x_double_click_time)) &&
428 (window == down_info->last_win) && 428 (window == down_info->last_win) &&
429 (window == down_info->last_last_win) && 429 (window == down_info->last_last_win) &&
430 (event_window == down_info->last_event_win) && 430 (event_window == down_info->last_event_win) &&
431 (event_window == down_info->last_last_event_win) 431 (event_window == down_info->last_last_event_win)
432 ) 432 )
433 { 433 {
434 e->triple_click = 1; 434 e->triple_click = 1;
435 down_info->did_triple = EINA_TRUE; 435 down_info->did_triple = EINA_TRUE;
436 } 436 }
437 else 437 else
438 { 438 {
439 down_info->did_triple = EINA_FALSE; 439 down_info->did_triple = EINA_FALSE;
440 } 440 }
441 } 441 }
442 else 442 else
443 { 443 {
@@ -491,7 +491,7 @@ _ecore_mouse_button(int event,
491 } 491 }
492 492
493 return e; 493 return e;
494} /* _ecore_mouse_button */ 494}
495 495
496void 496void
497_ecore_x_event_handle_any_event(XEvent *xevent) 497_ecore_x_event_handle_any_event(XEvent *xevent)
@@ -500,19 +500,19 @@ _ecore_x_event_handle_any_event(XEvent *xevent)
500 if (!ev) return; 500 if (!ev) return;
501 memcpy(ev, xevent, sizeof(XEvent)); 501 memcpy(ev, xevent, sizeof(XEvent));
502 ecore_event_add(ECORE_X_EVENT_ANY, ev, NULL, NULL); 502 ecore_event_add(ECORE_X_EVENT_ANY, ev, NULL, NULL);
503} /* _ecore_x_event_handle_any_event */ 503}
504 504
505void 505void
506_ecore_x_event_handle_key_press(XEvent *xevent) 506_ecore_x_event_handle_key_press(XEvent *xevent)
507{ 507{
508 _ecore_key_press(ECORE_EVENT_KEY_DOWN, (XKeyEvent *)xevent); 508 _ecore_key_press(ECORE_EVENT_KEY_DOWN, (XKeyEvent *)xevent);
509} /* _ecore_x_event_handle_key_press */ 509}
510 510
511void 511void
512_ecore_x_event_handle_key_release(XEvent *xevent) 512_ecore_x_event_handle_key_release(XEvent *xevent)
513{ 513{
514 _ecore_key_press(ECORE_EVENT_KEY_UP, (XKeyEvent *)xevent); 514 _ecore_key_press(ECORE_EVENT_KEY_UP, (XKeyEvent *)xevent);
515} /* _ecore_x_event_handle_key_release */ 515}
516 516
517void 517void
518_ecore_x_event_handle_button_press(XEvent *xevent) 518_ecore_x_event_handle_button_press(XEvent *xevent)
@@ -541,7 +541,7 @@ _ecore_x_event_handle_button_press(XEvent *xevent)
541 case 7: e->direction = 1; e->z = 1; break; 541 case 7: e->direction = 1; e->z = 1; break;
542 542
543 default: e->direction = 0; e->z = 0; break; 543 default: e->direction = 0; e->z = 0; break;
544 } /* switch */ 544 }
545 545
546 e->x = xevent->xbutton.x; 546 e->x = xevent->xbutton.x;
547 e->y = xevent->xbutton.y; 547 e->y = xevent->xbutton.y;
@@ -663,7 +663,7 @@ _ecore_x_event_handle_button_press(XEvent *xevent)
663 } 663 }
664 } 664 }
665 } 665 }
666} /* _ecore_x_event_handle_button_press */ 666}
667 667
668void 668void
669_ecore_x_event_handle_button_release(XEvent *xevent) 669_ecore_x_event_handle_button_release(XEvent *xevent)
@@ -702,7 +702,7 @@ _ecore_x_event_handle_button_release(XEvent *xevent)
702 xevent->xbutton.x, xevent->xbutton.y, 702 xevent->xbutton.x, xevent->xbutton.y,
703 xevent->xbutton.x_root, xevent->xbutton.y_root); 703 xevent->xbutton.x_root, xevent->xbutton.y_root);
704 } 704 }
705} /* _ecore_x_event_handle_button_release */ 705}
706 706
707void 707void
708_ecore_x_event_handle_motion_notify(XEvent *xevent) 708_ecore_x_event_handle_motion_notify(XEvent *xevent)
@@ -715,27 +715,27 @@ _ecore_x_event_handle_motion_notify(XEvent *xevent)
715 _ecore_x_last_event_mouse_move_event = NULL; 715 _ecore_x_last_event_mouse_move_event = NULL;
716 } 716 }
717 */ 717 */
718 _ecore_mouse_move(xevent->xmotion.time, xevent->xmotion.state, 718 _ecore_mouse_move(xevent->xmotion.time, xevent->xmotion.state,
719 xevent->xmotion.x, xevent->xmotion.y, 719 xevent->xmotion.x, xevent->xmotion.y,
720 xevent->xmotion.x_root, xevent->xmotion.y_root, 720 xevent->xmotion.x_root, xevent->xmotion.y_root,
721 xevent->xmotion.window, 721 xevent->xmotion.window,
722 (xevent->xmotion.subwindow ? xevent->xmotion.subwindow : 722 (xevent->xmotion.subwindow ? xevent->xmotion.subwindow :
723 xevent->xmotion.window), 723 xevent->xmotion.window),
724 xevent->xmotion.root, 724 xevent->xmotion.root,
725 xevent->xmotion.same_screen, 725 xevent->xmotion.same_screen,
726 0, 1, 1, 726 0, 1, 1,
727 1.0, // pressure 727 1.0, // pressure
728 0.0, // angle 728 0.0, // angle
729 xevent->xmotion.x, xevent->xmotion.y, 729 xevent->xmotion.x, xevent->xmotion.y,
730 xevent->xmotion.x_root, xevent->xmotion.y_root); 730 xevent->xmotion.x_root, xevent->xmotion.y_root);
731 731
732 _ecore_x_last_event_mouse_move = 1; 732 _ecore_x_last_event_mouse_move = 1;
733 733
734 /* Xdnd handling */ 734 /* Xdnd handling */
735 _ecore_x_dnd_drag(xevent->xmotion.root, 735 _ecore_x_dnd_drag(xevent->xmotion.root,
736 xevent->xmotion.x_root, 736 xevent->xmotion.x_root,
737 xevent->xmotion.y_root); 737 xevent->xmotion.y_root);
738} /* _ecore_x_event_handle_motion_notify */ 738}
739 739
740void 740void
741_ecore_x_event_handle_enter_notify(XEvent *xevent) 741_ecore_x_event_handle_enter_notify(XEvent *xevent)
@@ -799,7 +799,7 @@ _ecore_x_event_handle_enter_notify(XEvent *xevent)
799 _ecore_x_event_last_time = e->time; 799 _ecore_x_event_last_time = e->time;
800 ecore_event_add(ECORE_X_EVENT_MOUSE_IN, e, NULL, NULL); 800 ecore_event_add(ECORE_X_EVENT_MOUSE_IN, e, NULL, NULL);
801 } 801 }
802} /* _ecore_x_event_handle_enter_notify */ 802}
803 803
804void 804void
805_ecore_x_event_handle_leave_notify(XEvent *xevent) 805_ecore_x_event_handle_leave_notify(XEvent *xevent)
@@ -866,7 +866,7 @@ _ecore_x_event_handle_leave_notify(XEvent *xevent)
866 _ecore_x_event_last_root_y = e->root.y; 866 _ecore_x_event_last_root_y = e->root.y;
867 ecore_event_add(ECORE_X_EVENT_MOUSE_OUT, e, NULL, NULL); 867 ecore_event_add(ECORE_X_EVENT_MOUSE_OUT, e, NULL, NULL);
868 } 868 }
869} /* _ecore_x_event_handle_leave_notify */ 869}
870 870
871void 871void
872_ecore_x_event_handle_focus_in(XEvent *xevent) 872_ecore_x_event_handle_focus_in(XEvent *xevent)
@@ -910,7 +910,7 @@ _ecore_x_event_handle_focus_in(XEvent *xevent)
910 e->time = _ecore_x_event_last_time; 910 e->time = _ecore_x_event_last_time;
911 _ecore_x_event_last_time = e->time; 911 _ecore_x_event_last_time = e->time;
912 ecore_event_add(ECORE_X_EVENT_WINDOW_FOCUS_IN, e, NULL, NULL); 912 ecore_event_add(ECORE_X_EVENT_WINDOW_FOCUS_IN, e, NULL, NULL);
913} /* _ecore_x_event_handle_focus_in */ 913}
914 914
915void 915void
916_ecore_x_event_handle_focus_out(XEvent *xevent) 916_ecore_x_event_handle_focus_out(XEvent *xevent)
@@ -954,14 +954,14 @@ _ecore_x_event_handle_focus_out(XEvent *xevent)
954 e->time = _ecore_x_event_last_time; 954 e->time = _ecore_x_event_last_time;
955 _ecore_x_event_last_time = e->time; 955 _ecore_x_event_last_time = e->time;
956 ecore_event_add(ECORE_X_EVENT_WINDOW_FOCUS_OUT, e, NULL, NULL); 956 ecore_event_add(ECORE_X_EVENT_WINDOW_FOCUS_OUT, e, NULL, NULL);
957} /* _ecore_x_event_handle_focus_out */ 957}
958 958
959void 959void
960_ecore_x_event_handle_keymap_notify(XEvent *xevent __UNUSED__) 960_ecore_x_event_handle_keymap_notify(XEvent *xevent __UNUSED__)
961{ 961{
962 _ecore_x_last_event_mouse_move = 0; 962 _ecore_x_last_event_mouse_move = 0;
963 /* FIXME: handle this event type */ 963 /* FIXME: handle this event type */
964} /* _ecore_x_event_handle_keymap_notify */ 964}
965 965
966void 966void
967_ecore_x_event_handle_expose(XEvent *xevent) 967_ecore_x_event_handle_expose(XEvent *xevent)
@@ -981,7 +981,7 @@ _ecore_x_event_handle_expose(XEvent *xevent)
981 e->h = xevent->xexpose.height; 981 e->h = xevent->xexpose.height;
982 e->count = xevent->xexpose.count; 982 e->count = xevent->xexpose.count;
983 ecore_event_add(ECORE_X_EVENT_WINDOW_DAMAGE, e, NULL, NULL); 983 ecore_event_add(ECORE_X_EVENT_WINDOW_DAMAGE, e, NULL, NULL);
984} /* _ecore_x_event_handle_expose */ 984}
985 985
986void 986void
987_ecore_x_event_handle_graphics_expose(XEvent *xevent) 987_ecore_x_event_handle_graphics_expose(XEvent *xevent)
@@ -1001,7 +1001,7 @@ _ecore_x_event_handle_graphics_expose(XEvent *xevent)
1001 e->h = xevent->xgraphicsexpose.height; 1001 e->h = xevent->xgraphicsexpose.height;
1002 e->count = xevent->xgraphicsexpose.count; 1002 e->count = xevent->xgraphicsexpose.count;
1003 ecore_event_add(ECORE_X_EVENT_WINDOW_DAMAGE, e, NULL, NULL); 1003 ecore_event_add(ECORE_X_EVENT_WINDOW_DAMAGE, e, NULL, NULL);
1004} /* _ecore_x_event_handle_graphics_expose */ 1004}
1005 1005
1006void 1006void
1007_ecore_x_event_handle_visibility_notify(XEvent *xevent) 1007_ecore_x_event_handle_visibility_notify(XEvent *xevent)
@@ -1024,7 +1024,7 @@ _ecore_x_event_handle_visibility_notify(XEvent *xevent)
1024 1024
1025 ecore_event_add(ECORE_X_EVENT_WINDOW_VISIBILITY_CHANGE, e, NULL, NULL); 1025 ecore_event_add(ECORE_X_EVENT_WINDOW_VISIBILITY_CHANGE, e, NULL, NULL);
1026 } 1026 }
1027} /* _ecore_x_event_handle_visibility_notify */ 1027}
1028 1028
1029void 1029void
1030_ecore_x_event_handle_create_notify(XEvent *xevent) 1030_ecore_x_event_handle_create_notify(XEvent *xevent)
@@ -1050,7 +1050,7 @@ _ecore_x_event_handle_create_notify(XEvent *xevent)
1050 e->border = xevent->xcreatewindow.border_width; 1050 e->border = xevent->xcreatewindow.border_width;
1051 e->time = _ecore_x_event_last_time; 1051 e->time = _ecore_x_event_last_time;
1052 ecore_event_add(ECORE_X_EVENT_WINDOW_CREATE, e, NULL, NULL); 1052 ecore_event_add(ECORE_X_EVENT_WINDOW_CREATE, e, NULL, NULL);
1053} /* _ecore_x_event_handle_create_notify */ 1053}
1054 1054
1055void 1055void
1056_ecore_x_event_handle_destroy_notify(XEvent *xevent) 1056_ecore_x_event_handle_destroy_notify(XEvent *xevent)
@@ -1069,7 +1069,7 @@ _ecore_x_event_handle_destroy_notify(XEvent *xevent)
1069 _ecore_x_event_last_win = 0; 1069 _ecore_x_event_last_win = 0;
1070 1070
1071 ecore_event_add(ECORE_X_EVENT_WINDOW_DESTROY, e, NULL, NULL); 1071 ecore_event_add(ECORE_X_EVENT_WINDOW_DESTROY, e, NULL, NULL);
1072} /* _ecore_x_event_handle_destroy_notify */ 1072}
1073 1073
1074void 1074void
1075_ecore_x_event_handle_unmap_notify(XEvent *xevent) 1075_ecore_x_event_handle_unmap_notify(XEvent *xevent)
@@ -1085,7 +1085,7 @@ _ecore_x_event_handle_unmap_notify(XEvent *xevent)
1085 e->event_win = xevent->xunmap.event; 1085 e->event_win = xevent->xunmap.event;
1086 e->time = _ecore_x_event_last_time; 1086 e->time = _ecore_x_event_last_time;
1087 ecore_event_add(ECORE_X_EVENT_WINDOW_HIDE, e, NULL, NULL); 1087 ecore_event_add(ECORE_X_EVENT_WINDOW_HIDE, e, NULL, NULL);
1088} /* _ecore_x_event_handle_unmap_notify */ 1088}
1089 1089
1090void 1090void
1091_ecore_x_event_handle_map_notify(XEvent *xevent) 1091_ecore_x_event_handle_map_notify(XEvent *xevent)
@@ -1101,7 +1101,7 @@ _ecore_x_event_handle_map_notify(XEvent *xevent)
1101 e->event_win = xevent->xmap.event; 1101 e->event_win = xevent->xmap.event;
1102 e->time = _ecore_x_event_last_time; 1102 e->time = _ecore_x_event_last_time;
1103 ecore_event_add(ECORE_X_EVENT_WINDOW_SHOW, e, NULL, NULL); 1103 ecore_event_add(ECORE_X_EVENT_WINDOW_SHOW, e, NULL, NULL);
1104} /* _ecore_x_event_handle_map_notify */ 1104}
1105 1105
1106void 1106void
1107_ecore_x_event_handle_map_request(XEvent *xevent) 1107_ecore_x_event_handle_map_request(XEvent *xevent)
@@ -1117,7 +1117,7 @@ _ecore_x_event_handle_map_request(XEvent *xevent)
1117 e->time = _ecore_x_event_last_time; 1117 e->time = _ecore_x_event_last_time;
1118 e->parent = xevent->xmaprequest.parent; 1118 e->parent = xevent->xmaprequest.parent;
1119 ecore_event_add(ECORE_X_EVENT_WINDOW_SHOW_REQUEST, e, NULL, NULL); 1119 ecore_event_add(ECORE_X_EVENT_WINDOW_SHOW_REQUEST, e, NULL, NULL);
1120} /* _ecore_x_event_handle_map_request */ 1120}
1121 1121
1122void 1122void
1123_ecore_x_event_handle_reparent_notify(XEvent *xevent) 1123_ecore_x_event_handle_reparent_notify(XEvent *xevent)
@@ -1134,7 +1134,7 @@ _ecore_x_event_handle_reparent_notify(XEvent *xevent)
1134 e->parent = xevent->xreparent.parent; 1134 e->parent = xevent->xreparent.parent;
1135 e->time = _ecore_x_event_last_time; 1135 e->time = _ecore_x_event_last_time;
1136 ecore_event_add(ECORE_X_EVENT_WINDOW_REPARENT, e, NULL, NULL); 1136 ecore_event_add(ECORE_X_EVENT_WINDOW_REPARENT, e, NULL, NULL);
1137} /* _ecore_x_event_handle_reparent_notify */ 1137}
1138 1138
1139void 1139void
1140_ecore_x_event_handle_configure_notify(XEvent *xevent) 1140_ecore_x_event_handle_configure_notify(XEvent *xevent)
@@ -1158,7 +1158,7 @@ _ecore_x_event_handle_configure_notify(XEvent *xevent)
1158 e->from_wm = xevent->xconfigure.send_event; 1158 e->from_wm = xevent->xconfigure.send_event;
1159 e->time = _ecore_x_event_last_time; 1159 e->time = _ecore_x_event_last_time;
1160 ecore_event_add(ECORE_X_EVENT_WINDOW_CONFIGURE, e, NULL, NULL); 1160 ecore_event_add(ECORE_X_EVENT_WINDOW_CONFIGURE, e, NULL, NULL);
1161} /* _ecore_x_event_handle_configure_notify */ 1161}
1162 1162
1163void 1163void
1164_ecore_x_event_handle_configure_request(XEvent *xevent) 1164_ecore_x_event_handle_configure_request(XEvent *xevent)
@@ -1193,14 +1193,14 @@ _ecore_x_event_handle_configure_request(XEvent *xevent)
1193 e->detail = ECORE_X_WINDOW_STACK_OPPOSITE; 1193 e->detail = ECORE_X_WINDOW_STACK_OPPOSITE;
1194 1194
1195 ecore_event_add(ECORE_X_EVENT_WINDOW_CONFIGURE_REQUEST, e, NULL, NULL); 1195 ecore_event_add(ECORE_X_EVENT_WINDOW_CONFIGURE_REQUEST, e, NULL, NULL);
1196} /* _ecore_x_event_handle_configure_request */ 1196}
1197 1197
1198void 1198void
1199_ecore_x_event_handle_gravity_notify(XEvent *xevent __UNUSED__) 1199_ecore_x_event_handle_gravity_notify(XEvent *xevent __UNUSED__)
1200{ 1200{
1201 _ecore_x_last_event_mouse_move = 0; 1201 _ecore_x_last_event_mouse_move = 0;
1202 /* FIXME: handle this event type */ 1202 /* FIXME: handle this event type */
1203} /* _ecore_x_event_handle_gravity_notify */ 1203}
1204 1204
1205void 1205void
1206_ecore_x_event_handle_resize_request(XEvent *xevent) 1206_ecore_x_event_handle_resize_request(XEvent *xevent)
@@ -1217,7 +1217,7 @@ _ecore_x_event_handle_resize_request(XEvent *xevent)
1217 e->h = xevent->xresizerequest.height; 1217 e->h = xevent->xresizerequest.height;
1218 e->time = _ecore_x_event_last_time; 1218 e->time = _ecore_x_event_last_time;
1219 ecore_event_add(ECORE_X_EVENT_WINDOW_RESIZE_REQUEST, e, NULL, NULL); 1219 ecore_event_add(ECORE_X_EVENT_WINDOW_RESIZE_REQUEST, e, NULL, NULL);
1220} /* _ecore_x_event_handle_resize_request */ 1220}
1221 1221
1222void 1222void
1223_ecore_x_event_handle_circulate_notify(XEvent *xevent) 1223_ecore_x_event_handle_circulate_notify(XEvent *xevent)
@@ -1238,7 +1238,7 @@ _ecore_x_event_handle_circulate_notify(XEvent *xevent)
1238 1238
1239 e->time = _ecore_x_event_last_time; 1239 e->time = _ecore_x_event_last_time;
1240 ecore_event_add(ECORE_X_EVENT_WINDOW_STACK, e, NULL, NULL); 1240 ecore_event_add(ECORE_X_EVENT_WINDOW_STACK, e, NULL, NULL);
1241} /* _ecore_x_event_handle_circulate_notify */ 1241}
1242 1242
1243void 1243void
1244_ecore_x_event_handle_circulate_request(XEvent *xevent) 1244_ecore_x_event_handle_circulate_request(XEvent *xevent)
@@ -1259,7 +1259,7 @@ _ecore_x_event_handle_circulate_request(XEvent *xevent)
1259 1259
1260 e->time = _ecore_x_event_last_time; 1260 e->time = _ecore_x_event_last_time;
1261 ecore_event_add(ECORE_X_EVENT_WINDOW_STACK_REQUEST, e, NULL, NULL); 1261 ecore_event_add(ECORE_X_EVENT_WINDOW_STACK_REQUEST, e, NULL, NULL);
1262} /* _ecore_x_event_handle_circulate_request */ 1262}
1263 1263
1264void 1264void
1265_ecore_x_event_handle_property_notify(XEvent *xevent) 1265_ecore_x_event_handle_property_notify(XEvent *xevent)
@@ -1278,17 +1278,17 @@ _ecore_x_event_handle_property_notify(XEvent *xevent)
1278 _ecore_x_event_last_time = e->time; 1278 _ecore_x_event_last_time = e->time;
1279 ecore_event_add(ECORE_X_EVENT_WINDOW_PROPERTY, e, NULL, NULL); 1279 ecore_event_add(ECORE_X_EVENT_WINDOW_PROPERTY, e, NULL, NULL);
1280 } 1280 }
1281} /* _ecore_x_event_handle_property_notify */ 1281}
1282 1282
1283void 1283void
1284_ecore_x_event_handle_selection_clear(XEvent *xevent) 1284_ecore_x_event_handle_selection_clear(XEvent *xevent)
1285{ 1285{
1286// Ecore_X_Selection_Intern *d; 1286// Ecore_X_Selection_Intern *d;
1287 Ecore_X_Event_Selection_Clear *e; 1287 Ecore_X_Event_Selection_Clear *e;
1288 Ecore_X_Atom sel; 1288 Ecore_X_Atom sel;
1289 1289
1290 LOGFN(__FILE__, __LINE__, __FUNCTION__); 1290 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1291 _ecore_x_last_event_mouse_move = 0; 1291 _ecore_x_last_event_mouse_move = 0;
1292/* errr..... why? paranoia. 1292/* errr..... why? paranoia.
1293 d = _ecore_x_selection_get(xevent->xselectionclear.selection); 1293 d = _ecore_x_selection_get(xevent->xselectionclear.selection);
1294 if (d && (xevent->xselectionclear.time > d->time)) 1294 if (d && (xevent->xselectionclear.time > d->time))
@@ -1298,21 +1298,21 @@ _ecore_x_event_handle_selection_clear(XEvent *xevent)
1298 } 1298 }
1299 */ 1299 */
1300/* Generate event for app cleanup */ 1300/* Generate event for app cleanup */
1301 e = malloc(sizeof(Ecore_X_Event_Selection_Clear)); 1301 e = malloc(sizeof(Ecore_X_Event_Selection_Clear));
1302 e->win = xevent->xselectionclear.window; 1302 e->win = xevent->xselectionclear.window;
1303 e->time = xevent->xselectionclear.time; 1303 e->time = xevent->xselectionclear.time;
1304 e->atom = sel = xevent->xselectionclear.selection; 1304 e->atom = sel = xevent->xselectionclear.selection;
1305 if (sel == ECORE_X_ATOM_SELECTION_PRIMARY) 1305 if (sel == ECORE_X_ATOM_SELECTION_PRIMARY)
1306 e->selection = ECORE_X_SELECTION_PRIMARY; 1306 e->selection = ECORE_X_SELECTION_PRIMARY;
1307 else if (sel == ECORE_X_ATOM_SELECTION_SECONDARY) 1307 else if (sel == ECORE_X_ATOM_SELECTION_SECONDARY)
1308 e->selection = ECORE_X_SELECTION_SECONDARY; 1308 e->selection = ECORE_X_SELECTION_SECONDARY;
1309 else if (sel == ECORE_X_ATOM_SELECTION_CLIPBOARD) 1309 else if (sel == ECORE_X_ATOM_SELECTION_CLIPBOARD)
1310 e->selection = ECORE_X_SELECTION_CLIPBOARD; 1310 e->selection = ECORE_X_SELECTION_CLIPBOARD;
1311 else 1311 else
1312 e->selection = ECORE_X_SELECTION_OTHER; 1312 e->selection = ECORE_X_SELECTION_OTHER;
1313 1313
1314 ecore_event_add(ECORE_X_EVENT_SELECTION_CLEAR, e, NULL, NULL); 1314 ecore_event_add(ECORE_X_EVENT_SELECTION_CLEAR, e, NULL, NULL);
1315} /* _ecore_x_event_handle_selection_clear */ 1315}
1316 1316
1317void 1317void
1318_ecore_x_event_handle_selection_request(XEvent *xevent) 1318_ecore_x_event_handle_selection_request(XEvent *xevent)
@@ -1360,17 +1360,17 @@ _ecore_x_event_handle_selection_request(XEvent *xevent)
1360 property = None; 1360 property = None;
1361 else if (data) 1361 else if (data)
1362 { 1362 {
1363 /* FIXME: This does not properly handle large data transfers */ 1363 /* FIXME: This does not properly handle large data transfers */
1364 ecore_x_window_prop_property_set( 1364 ecore_x_window_prop_property_set(
1365 xevent->xselectionrequest.requestor, 1365 xevent->xselectionrequest.requestor,
1366 xevent->xselectionrequest. 1366 xevent->xselectionrequest.
1367 property, 1367 property,
1368 type, 1368 type,
1369 typesize, 1369 typesize,
1370 data, 1370 data,
1371 len); 1371 len);
1372 property = xevent->xselectionrequest.property; 1372 property = xevent->xselectionrequest.property;
1373 free(data); 1373 free(data);
1374 } 1374 }
1375 1375
1376 ecore_x_selection_notify_send(xevent->xselectionrequest.requestor, 1376 ecore_x_selection_notify_send(xevent->xselectionrequest.requestor,
@@ -1380,7 +1380,7 @@ _ecore_x_event_handle_selection_request(XEvent *xevent)
1380 xevent->xselectionrequest.time); 1380 xevent->xselectionrequest.time);
1381 } 1381 }
1382 } 1382 }
1383} /* _ecore_x_event_handle_selection_request */ 1383}
1384 1384
1385void 1385void
1386_ecore_x_event_handle_selection_notify(XEvent *xevent) 1386_ecore_x_event_handle_selection_notify(XEvent *xevent)
@@ -1436,7 +1436,7 @@ _ecore_x_event_handle_selection_notify(XEvent *xevent)
1436 1436
1437 ecore_event_add(ECORE_X_EVENT_SELECTION_NOTIFY, e, 1437 ecore_event_add(ECORE_X_EVENT_SELECTION_NOTIFY, e,
1438 _ecore_x_event_free_selection_notify, NULL); 1438 _ecore_x_event_free_selection_notify, NULL);
1439} /* _ecore_x_event_handle_selection_notify */ 1439}
1440 1440
1441void 1441void
1442_ecore_x_event_handle_colormap_notify(XEvent *xevent) 1442_ecore_x_event_handle_colormap_notify(XEvent *xevent)
@@ -1457,7 +1457,7 @@ _ecore_x_event_handle_colormap_notify(XEvent *xevent)
1457 e->installed = EINA_FALSE; 1457 e->installed = EINA_FALSE;
1458 1458
1459 ecore_event_add(ECORE_X_EVENT_WINDOW_COLORMAP, e, NULL, NULL); 1459 ecore_event_add(ECORE_X_EVENT_WINDOW_COLORMAP, e, NULL, NULL);
1460} /* _ecore_x_event_handle_colormap_notify */ 1460}
1461 1461
1462void 1462void
1463_ecore_x_event_handle_client_message(XEvent *xevent) 1463_ecore_x_event_handle_client_message(XEvent *xevent)
@@ -1528,32 +1528,32 @@ _ecore_x_event_handle_client_message(XEvent *xevent)
1528 if (xevent->xclient.data.l[1] & 0x1UL) 1528 if (xevent->xclient.data.l[1] & 0x1UL)
1529 { 1529 {
1530 /* source supports more than 3 types, fetch property */ 1530 /* source supports more than 3 types, fetch property */
1531 unsigned char *data; 1531 unsigned char *data;
1532 Ecore_X_Atom *types; 1532 Ecore_X_Atom *types;
1533 int i, num_ret; 1533 int i, num_ret;
1534 1534
1535 LOGFN(__FILE__, __LINE__, __FUNCTION__); 1535 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1536 if (!(ecore_x_window_prop_property_get(target->source, 1536 if (!(ecore_x_window_prop_property_get(target->source,
1537 ECORE_X_ATOM_XDND_TYPE_LIST, 1537 ECORE_X_ATOM_XDND_TYPE_LIST,
1538 XA_ATOM, 1538 XA_ATOM,
1539 32, &data, &num_ret))) 1539 32, &data, &num_ret)))
1540 { 1540 {
1541 WRN( 1541 WRN(
1542 "DND: Could not fetch data type list from source window, aborting."); 1542 "DND: Could not fetch data type list from source window, aborting.");
1543 free(e); 1543 free(e);
1544 return; 1544 return;
1545 } 1545 }
1546 1546
1547 types = (Ecore_X_Atom *)data; 1547 types = (Ecore_X_Atom *)data;
1548 e->types = calloc(num_ret, sizeof(char *)); 1548 e->types = calloc(num_ret, sizeof(char *));
1549 if (e->types) 1549 if (e->types)
1550 { 1550 {
1551 LOGFN(__FILE__, __LINE__, __FUNCTION__); 1551 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1552 for (i = 0; i < num_ret; i++) 1552 for (i = 0; i < num_ret; i++)
1553 e->types[i] = XGetAtomName(_ecore_x_disp, types[i]); 1553 e->types[i] = XGetAtomName(_ecore_x_disp, types[i]);
1554 } 1554 }
1555 1555
1556 e->num_types = num_ret; 1556 e->num_types = num_ret;
1557 } 1557 }
1558 else 1558 else
1559 { 1559 {
@@ -1774,7 +1774,7 @@ _ecore_x_event_handle_client_message(XEvent *xevent)
1774 if (e->state[0] == ECORE_X_WINDOW_STATE_UNKNOWN) 1774 if (e->state[0] == ECORE_X_WINDOW_STATE_UNKNOWN)
1775 { 1775 {
1776// char *name; 1776// char *name;
1777 LOGFN(__FILE__, __LINE__, __FUNCTION__); 1777 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1778 1778
1779// name = XGetAtomName(_ecore_x_disp, xevent->xclient.data.l[1]); 1779// name = XGetAtomName(_ecore_x_disp, xevent->xclient.data.l[1]);
1780// if (name) ERR("Unknown state: %s", name); 1780// if (name) ERR("Unknown state: %s", name);
@@ -1784,7 +1784,7 @@ _ecore_x_event_handle_client_message(XEvent *xevent)
1784 if (e->state[1] == ECORE_X_WINDOW_STATE_UNKNOWN) 1784 if (e->state[1] == ECORE_X_WINDOW_STATE_UNKNOWN)
1785 { 1785 {
1786// char *name; 1786// char *name;
1787 LOGFN(__FILE__, __LINE__, __FUNCTION__); 1787 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1788 1788
1789// name = XGetAtomName(_ecore_x_disp, xevent->xclient.data.l[2]); 1789// name = XGetAtomName(_ecore_x_disp, xevent->xclient.data.l[2]);
1790// if (name) ERR("Unknown state: %s", name); 1790// if (name) ERR("Unknown state: %s", name);
@@ -1888,10 +1888,10 @@ _ecore_x_event_handle_client_message(XEvent *xevent)
1888 && (xevent->xclient.window == _ecore_x_private_win)) 1888 && (xevent->xclient.window == _ecore_x_private_win))
1889 { 1889 {
1890 /* a grab sync marker */ 1890 /* a grab sync marker */
1891 if (xevent->xclient.data.l[1] == 0x10000001) 1891 if (xevent->xclient.data.l[1] == 0x10000001)
1892 _ecore_x_window_grab_remove(xevent->xclient.data.l[2]); 1892 _ecore_x_window_grab_remove(xevent->xclient.data.l[2]);
1893 else if (xevent->xclient.data.l[1] == 0x10000002) 1893 else if (xevent->xclient.data.l[1] == 0x10000002)
1894 _ecore_x_key_grab_remove(xevent->xclient.data.l[2]); 1894 _ecore_x_key_grab_remove(xevent->xclient.data.l[2]);
1895 } 1895 }
1896 else 1896 else
1897 { 1897 {
@@ -1910,7 +1910,7 @@ _ecore_x_event_handle_client_message(XEvent *xevent)
1910 1910
1911 ecore_event_add(ECORE_X_EVENT_CLIENT_MESSAGE, e, NULL, NULL); 1911 ecore_event_add(ECORE_X_EVENT_CLIENT_MESSAGE, e, NULL, NULL);
1912 } 1912 }
1913} /* _ecore_x_event_handle_client_message */ 1913}
1914 1914
1915void 1915void
1916_ecore_x_event_handle_mapping_notify(XEvent *xevent) 1916_ecore_x_event_handle_mapping_notify(XEvent *xevent)
@@ -1940,7 +1940,7 @@ _ecore_x_event_handle_mapping_notify(XEvent *xevent)
1940 e->keycode = xevent->xmapping.first_keycode; 1940 e->keycode = xevent->xmapping.first_keycode;
1941 e->num = xevent->xmapping.count; 1941 e->num = xevent->xmapping.count;
1942 ecore_event_add(ECORE_X_EVENT_MAPPING_CHANGE, e, NULL, NULL); 1942 ecore_event_add(ECORE_X_EVENT_MAPPING_CHANGE, e, NULL, NULL);
1943} /* _ecore_x_event_handle_mapping_notify */ 1943}
1944 1944
1945void 1945void
1946_ecore_x_event_handle_shape_change(XEvent *xevent) 1946_ecore_x_event_handle_shape_change(XEvent *xevent)
@@ -1979,7 +1979,7 @@ _ecore_x_event_handle_shape_change(XEvent *xevent)
1979 e->h = shape_event->height; 1979 e->h = shape_event->height;
1980 e->shaped = shape_event->shaped; 1980 e->shaped = shape_event->shaped;
1981 ecore_event_add(ECORE_X_EVENT_WINDOW_SHAPE, e, NULL, NULL); 1981 ecore_event_add(ECORE_X_EVENT_WINDOW_SHAPE, e, NULL, NULL);
1982} /* _ecore_x_event_handle_shape_change */ 1982}
1983 1983
1984void 1984void
1985_ecore_x_event_handle_screensaver_notify(XEvent *xevent) 1985_ecore_x_event_handle_screensaver_notify(XEvent *xevent)
@@ -2005,7 +2005,7 @@ _ecore_x_event_handle_screensaver_notify(XEvent *xevent)
2005#else /* ifdef ECORE_XSS */ 2005#else /* ifdef ECORE_XSS */
2006 xevent = NULL; 2006 xevent = NULL;
2007#endif /* ifdef ECORE_XSS */ 2007#endif /* ifdef ECORE_XSS */
2008} /* _ecore_x_event_handle_screensaver_notify */ 2008}
2009 2009
2010void 2010void
2011_ecore_x_event_handle_sync_counter(XEvent *xevent) 2011_ecore_x_event_handle_sync_counter(XEvent *xevent)
@@ -2021,7 +2021,7 @@ _ecore_x_event_handle_sync_counter(XEvent *xevent)
2021 2021
2022 e->time = sync_counter_event->time; 2022 e->time = sync_counter_event->time;
2023 ecore_event_add(ECORE_X_EVENT_SYNC_COUNTER, e, NULL, NULL); 2023 ecore_event_add(ECORE_X_EVENT_SYNC_COUNTER, e, NULL, NULL);
2024} /* _ecore_x_event_handle_sync_counter */ 2024}
2025 2025
2026void 2026void
2027_ecore_x_event_handle_sync_alarm(XEvent *xevent) 2027_ecore_x_event_handle_sync_alarm(XEvent *xevent)
@@ -2039,7 +2039,7 @@ _ecore_x_event_handle_sync_alarm(XEvent *xevent)
2039 e->time = sync_alarm_event->time; 2039 e->time = sync_alarm_event->time;
2040 e->alarm = sync_alarm_event->alarm; 2040 e->alarm = sync_alarm_event->alarm;
2041 ecore_event_add(ECORE_X_EVENT_SYNC_ALARM, e, NULL, NULL); 2041 ecore_event_add(ECORE_X_EVENT_SYNC_ALARM, e, NULL, NULL);
2042} /* _ecore_x_event_handle_sync_alarm */ 2042}
2043 2043
2044#ifdef ECORE_XRANDR 2044#ifdef ECORE_XRANDR
2045void 2045void
@@ -2068,7 +2068,7 @@ _ecore_x_event_handle_randr_change(XEvent *xevent)
2068 e->orientation = randr_event->rotation; 2068 e->orientation = randr_event->rotation;
2069 e->subpixel_order = randr_event->subpixel_order; 2069 e->subpixel_order = randr_event->subpixel_order;
2070 ecore_event_add(ECORE_X_EVENT_SCREEN_CHANGE, e, NULL, NULL); 2070 ecore_event_add(ECORE_X_EVENT_SCREEN_CHANGE, e, NULL, NULL);
2071} /* _ecore_x_event_handle_randr_change */ 2071}
2072 2072
2073static void 2073static void
2074_ecore_x_event_handle_randr_notify_crtc_change(const XRRNotifyEvent *xevent) 2074_ecore_x_event_handle_randr_notify_crtc_change(const XRRNotifyEvent *xevent)
@@ -2091,7 +2091,7 @@ _ecore_x_event_handle_randr_notify_crtc_change(const XRRNotifyEvent *xevent)
2091 e->geo.w = randr_event->width; 2091 e->geo.w = randr_event->width;
2092 e->geo.h = randr_event->height; 2092 e->geo.h = randr_event->height;
2093 ecore_event_add(ECORE_X_EVENT_RANDR_CRTC_CHANGE, e, NULL, NULL); 2093 ecore_event_add(ECORE_X_EVENT_RANDR_CRTC_CHANGE, e, NULL, NULL);
2094} /* _ecore_x_event_handle_randr_notify_crtc_change */ 2094}
2095 2095
2096static void 2096static void
2097_ecore_x_event_handle_randr_notify_output_change(const XRRNotifyEvent *xevent) 2097_ecore_x_event_handle_randr_notify_output_change(const XRRNotifyEvent *xevent)
@@ -2113,7 +2113,7 @@ _ecore_x_event_handle_randr_notify_output_change(const XRRNotifyEvent *xevent)
2113 e->connection = randr_event->connection; 2113 e->connection = randr_event->connection;
2114 e->subpixel_order = randr_event->subpixel_order; 2114 e->subpixel_order = randr_event->subpixel_order;
2115 ecore_event_add(ECORE_X_EVENT_RANDR_OUTPUT_CHANGE, e, NULL, NULL); 2115 ecore_event_add(ECORE_X_EVENT_RANDR_OUTPUT_CHANGE, e, NULL, NULL);
2116} /* _ecore_x_event_handle_randr_notify_output_change */ 2116}
2117 2117
2118static void 2118static void
2119_ecore_x_event_handle_randr_notify_output_property(const XRRNotifyEvent *xevent) 2119_ecore_x_event_handle_randr_notify_output_property(const XRRNotifyEvent *xevent)
@@ -2136,7 +2136,7 @@ _ecore_x_event_handle_randr_notify_output_property(const XRRNotifyEvent *xevent)
2136 else 2136 else
2137 e->state = ECORE_X_RANDR_PROPERTY_CHANGE_DEL; 2137 e->state = ECORE_X_RANDR_PROPERTY_CHANGE_DEL;
2138 ecore_event_add(ECORE_X_EVENT_RANDR_OUTPUT_PROPERTY_NOTIFY, e, NULL, NULL); 2138 ecore_event_add(ECORE_X_EVENT_RANDR_OUTPUT_PROPERTY_NOTIFY, e, NULL, NULL);
2139} /* _ecore_x_event_handle_randr_notify_output_property */ 2139}
2140 2140
2141void 2141void
2142_ecore_x_event_handle_randr_notify(XEvent *xevent) 2142_ecore_x_event_handle_randr_notify(XEvent *xevent)
@@ -2164,8 +2164,8 @@ _ecore_x_event_handle_randr_notify(XEvent *xevent)
2164 ERR("Unknown XRandR RRNotify subtype: %d.", 2164 ERR("Unknown XRandR RRNotify subtype: %d.",
2165 randr_event->subtype); 2165 randr_event->subtype);
2166 break; 2166 break;
2167 } /* switch */ 2167 }
2168} /* _ecore_x_event_handle_randr_notify */ 2168}
2169 2169
2170#endif /* ifdef ECORE_XRANDR */ 2170#endif /* ifdef ECORE_XRANDR */
2171 2171
@@ -2201,7 +2201,7 @@ _ecore_x_event_handle_fixes_selection_notify(XEvent *event)
2201 e->reason = notify_event->subtype; 2201 e->reason = notify_event->subtype;
2202 2202
2203 ecore_event_add(ECORE_X_EVENT_FIXES_SELECTION_NOTIFY, e, NULL, NULL); 2203 ecore_event_add(ECORE_X_EVENT_FIXES_SELECTION_NOTIFY, e, NULL, NULL);
2204} /* _ecore_x_event_handle_fixes_selection_notify */ 2204}
2205 2205
2206#endif /* ifdef ECORE_XFIXES */ 2206#endif /* ifdef ECORE_XFIXES */
2207 2207
@@ -2234,7 +2234,7 @@ _ecore_x_event_handle_damage_notify(XEvent *event)
2234 e->geometry.height = damage_event->geometry.height; 2234 e->geometry.height = damage_event->geometry.height;
2235 2235
2236 ecore_event_add(ECORE_X_EVENT_DAMAGE_NOTIFY, e, NULL, NULL); 2236 ecore_event_add(ECORE_X_EVENT_DAMAGE_NOTIFY, e, NULL, NULL);
2237} /* _ecore_x_event_handle_damage_notify */ 2237}
2238 2238
2239#endif /* ifdef ECORE_XDAMAGE */ 2239#endif /* ifdef ECORE_XDAMAGE */
2240 2240
@@ -2256,7 +2256,7 @@ _ecore_x_event_free_generic_event(void *data,
2256 return; 2256 return;
2257 data = NULL; ev = NULL; 2257 data = NULL; ev = NULL;
2258#endif /* ifdef ECORE_XI2 */ 2258#endif /* ifdef ECORE_XI2 */
2259} /* _ecore_x_event_free_generic_event */ 2259}
2260 2260
2261void 2261void
2262_ecore_x_event_handle_generic_event(XEvent *event) 2262_ecore_x_event_handle_generic_event(XEvent *event)
@@ -2300,7 +2300,7 @@ _ecore_x_event_handle_generic_event(XEvent *event)
2300 return; 2300 return;
2301 event = NULL; 2301 event = NULL;
2302#endif /* ifdef ECORE_XI2 */ 2302#endif /* ifdef ECORE_XI2 */
2303} /* _ecore_x_event_handle_generic_event */ 2303}
2304 2304
2305#ifdef ECORE_XGESTURE 2305#ifdef ECORE_XGESTURE
2306void 2306void
@@ -2315,7 +2315,7 @@ _ecore_x_event_handle_gesture_notify_flick(XEvent *xevent)
2315 xfe = (XGestureNotifyFlickEvent *)xevent; 2315 xfe = (XGestureNotifyFlickEvent *)xevent;
2316 e = calloc(1, sizeof(Ecore_X_Event_Gesture_Notify_Flick)); 2316 e = calloc(1, sizeof(Ecore_X_Event_Gesture_Notify_Flick));
2317 if (!e) 2317 if (!e)
2318 return; 2318 return;
2319 2319
2320 e->win = xfe->window; 2320 e->win = xfe->window;
2321 e->time = xfe->time; 2321 e->time = xfe->time;
@@ -2341,7 +2341,7 @@ _ecore_x_event_handle_gesture_notify_pan(XEvent *xevent)
2341 xpe = (XGestureNotifyPanEvent *)xevent; 2341 xpe = (XGestureNotifyPanEvent *)xevent;
2342 e = calloc(1, sizeof(Ecore_X_Event_Gesture_Notify_Pan)); 2342 e = calloc(1, sizeof(Ecore_X_Event_Gesture_Notify_Pan));
2343 if (!e) 2343 if (!e)
2344 return; 2344 return;
2345 2345
2346 e->win = xpe->window; 2346 e->win = xpe->window;
2347 e->time = xpe->time; 2347 e->time = xpe->time;
@@ -2368,7 +2368,7 @@ _ecore_x_event_handle_gesture_notify_pinchrotation(XEvent *xevent)
2368 xpre = (XGestureNotifyPinchRotationEvent *)xevent; 2368 xpre = (XGestureNotifyPinchRotationEvent *)xevent;
2369 e = calloc(1, sizeof(Ecore_X_Event_Gesture_Notify_PinchRotation)); 2369 e = calloc(1, sizeof(Ecore_X_Event_Gesture_Notify_PinchRotation));
2370 if (!e) 2370 if (!e)
2371 return; 2371 return;
2372 2372
2373 e->win = xpre->window; 2373 e->win = xpre->window;
2374 e->time = xpre->time; 2374 e->time = xpre->time;
@@ -2395,7 +2395,7 @@ _ecore_x_event_handle_gesture_notify_tap(XEvent *xevent)
2395 xte = (XGestureNotifyTapEvent *)xevent; 2395 xte = (XGestureNotifyTapEvent *)xevent;
2396 e = calloc(1, sizeof(Ecore_X_Event_Gesture_Notify_Tap)); 2396 e = calloc(1, sizeof(Ecore_X_Event_Gesture_Notify_Tap));
2397 if (!e) 2397 if (!e)
2398 return; 2398 return;
2399 2399
2400 e->win = xte->window; 2400 e->win = xte->window;
2401 e->time = xte->time; 2401 e->time = xte->time;
@@ -2421,7 +2421,7 @@ _ecore_x_event_handle_gesture_notify_tapnhold(XEvent *xevent)
2421 xthe = (XGestureNotifyTapNHoldEvent *)xevent; 2421 xthe = (XGestureNotifyTapNHoldEvent *)xevent;
2422 e = calloc(1, sizeof(Ecore_X_Event_Gesture_Notify_TapNHold)); 2422 e = calloc(1, sizeof(Ecore_X_Event_Gesture_Notify_TapNHold));
2423 if (!e) 2423 if (!e)
2424 return; 2424 return;
2425 2425
2426 e->win = xthe->window; 2426 e->win = xthe->window;
2427 e->time = xthe->time; 2427 e->time = xthe->time;
@@ -2436,7 +2436,7 @@ _ecore_x_event_handle_gesture_notify_tapnhold(XEvent *xevent)
2436} 2436}
2437 2437
2438void 2438void
2439 _ecore_x_event_handle_gesture_notify_hold(XEvent *xevent) 2439_ecore_x_event_handle_gesture_notify_hold(XEvent *xevent)
2440{ 2440{
2441 XGestureNotifyHoldEvent *xhe; 2441 XGestureNotifyHoldEvent *xhe;
2442 Ecore_X_Event_Gesture_Notify_Hold *e; 2442 Ecore_X_Event_Gesture_Notify_Hold *e;
@@ -2447,7 +2447,7 @@ void
2447 xhe = (XGestureNotifyHoldEvent *)xevent; 2447 xhe = (XGestureNotifyHoldEvent *)xevent;
2448 e = calloc(1, sizeof(Ecore_X_Event_Gesture_Notify_Hold)); 2448 e = calloc(1, sizeof(Ecore_X_Event_Gesture_Notify_Hold));
2449 if (!e) 2449 if (!e)
2450 return; 2450 return;
2451 2451
2452 e->win = xhe->window; 2452 e->win = xhe->window;
2453 e->time = xhe->time; 2453 e->time = xhe->time;
@@ -2461,7 +2461,7 @@ void
2461} 2461}
2462 2462
2463void 2463void
2464 _ecore_x_event_handle_gesture_notify_group(XEvent *xevent) 2464_ecore_x_event_handle_gesture_notify_group(XEvent *xevent)
2465{ 2465{
2466 XGestureNotifyGroupEvent *xge; 2466 XGestureNotifyGroupEvent *xge;
2467 Ecore_X_Event_Gesture_Notify_Group *e; 2467 Ecore_X_Event_Gesture_Notify_Group *e;
@@ -2472,7 +2472,7 @@ void
2472 xge = (XGestureNotifyGroupEvent *)xevent; 2472 xge = (XGestureNotifyGroupEvent *)xevent;
2473 e = calloc(1, sizeof(Ecore_X_Event_Gesture_Notify_Group)); 2473 e = calloc(1, sizeof(Ecore_X_Event_Gesture_Notify_Group));
2474 if (!e) 2474 if (!e)
2475 return; 2475 return;
2476 2476
2477 e->win = xge->window; 2477 e->win = xge->window;
2478 e->time = xge->time; 2478 e->time = xge->time;
@@ -2482,5 +2482,6 @@ void
2482 2482
2483 ecore_event_add(ECORE_X_EVENT_GESTURE_NOTIFY_GROUP, e, NULL, NULL); 2483 ecore_event_add(ECORE_X_EVENT_GESTURE_NOTIFY_GROUP, e, NULL, NULL);
2484} 2484}
2485
2485#endif /* ifdef ECORE_XGESTURE */ 2486#endif /* ifdef ECORE_XGESTURE */
2486 2487
diff --git a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_fixes.c b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_fixes.c
index e81af13..da0a6c3 100644
--- a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_fixes.c
+++ b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_fixes.c
@@ -32,13 +32,13 @@ _ecore_x_fixes_init(void)
32#else /* ifdef ECORE_XFIXES */ 32#else /* ifdef ECORE_XFIXES */
33 _fixes_available = 0; 33 _fixes_available = 0;
34#endif /* ifdef ECORE_XFIXES */ 34#endif /* ifdef ECORE_XFIXES */
35} /* _ecore_x_fixes_init */ 35}
36 36
37#ifdef ECORE_XFIXES 37#ifdef ECORE_XFIXES
38/* I don't know what to call this function. */ 38/* I don't know what to call this function. */
39static XRectangle * 39static XRectangle *
40_ecore_x_rectangle_ecore_to_x(Ecore_X_Rectangle *rects, 40_ecore_x_rectangle_ecore_to_x(Ecore_X_Rectangle *rects,
41 int num) 41 int num)
42{ 42{
43 XRectangle *xrect; 43 XRectangle *xrect;
44 int i; 44 int i;
@@ -58,11 +58,11 @@ _ecore_x_rectangle_ecore_to_x(Ecore_X_Rectangle *rects,
58 xrect[i].height = rects[i].height; 58 xrect[i].height = rects[i].height;
59 } 59 }
60 return xrect; 60 return xrect;
61} /* _ecore_x_rectangle_ecore_to_x */ 61}
62 62
63static Ecore_X_Rectangle * 63static Ecore_X_Rectangle *
64_ecore_x_rectangle_x_to_ecore(XRectangle *xrect, 64_ecore_x_rectangle_x_to_ecore(XRectangle *xrect,
65 int num) 65 int num)
66{ 66{
67 Ecore_X_Rectangle *rects; 67 Ecore_X_Rectangle *rects;
68 int i; 68 int i;
@@ -82,7 +82,7 @@ _ecore_x_rectangle_x_to_ecore(XRectangle *xrect,
82 rects[i].height = xrect[i].height; 82 rects[i].height = xrect[i].height;
83 } 83 }
84 return rects; 84 return rects;
85} /* _ecore_x_rectangle_x_to_ecore */ 85}
86 86
87#endif /* ifdef ECORE_XFIXES */ 87#endif /* ifdef ECORE_XFIXES */
88 88
@@ -106,7 +106,7 @@ ecore_x_fixes_selection_notification_request(Ecore_X_Atom selection)
106 106
107EAPI Ecore_X_Region 107EAPI Ecore_X_Region
108ecore_x_region_new(Ecore_X_Rectangle *rects, 108ecore_x_region_new(Ecore_X_Rectangle *rects,
109 int num) 109 int num)
110{ 110{
111#ifdef ECORE_XFIXES 111#ifdef ECORE_XFIXES
112 Ecore_X_Region region; 112 Ecore_X_Region region;
@@ -120,7 +120,7 @@ ecore_x_region_new(Ecore_X_Rectangle *rects,
120#else /* ifdef ECORE_XFIXES */ 120#else /* ifdef ECORE_XFIXES */
121 return 0; 121 return 0;
122#endif /* ifdef ECORE_XFIXES */ 122#endif /* ifdef ECORE_XFIXES */
123} /* ecore_x_region_new */ 123}
124 124
125EAPI Ecore_X_Region 125EAPI Ecore_X_Region
126ecore_x_region_new_from_bitmap(Ecore_X_Pixmap bitmap) 126ecore_x_region_new_from_bitmap(Ecore_X_Pixmap bitmap)
@@ -134,10 +134,10 @@ ecore_x_region_new_from_bitmap(Ecore_X_Pixmap bitmap)
134#else /* ifdef ECORE_XFIXES */ 134#else /* ifdef ECORE_XFIXES */
135 return 0; 135 return 0;
136#endif /* ifdef ECORE_XFIXES */ 136#endif /* ifdef ECORE_XFIXES */
137} /* ecore_x_region_new_from_bitmap */ 137}
138 138
139EAPI Ecore_X_Region 139EAPI Ecore_X_Region
140ecore_x_region_new_from_window(Ecore_X_Window win, 140ecore_x_region_new_from_window(Ecore_X_Window win,
141 Ecore_X_Region_Type type) 141 Ecore_X_Region_Type type)
142{ 142{
143#ifdef ECORE_XFIXES 143#ifdef ECORE_XFIXES
@@ -149,7 +149,7 @@ ecore_x_region_new_from_window(Ecore_X_Window win,
149#else /* ifdef ECORE_XFIXES */ 149#else /* ifdef ECORE_XFIXES */
150 return 0; 150 return 0;
151#endif /* ifdef ECORE_XFIXES */ 151#endif /* ifdef ECORE_XFIXES */
152} /* ecore_x_region_new_from_window */ 152}
153 153
154EAPI Ecore_X_Region 154EAPI Ecore_X_Region
155ecore_x_region_new_from_gc(Ecore_X_GC gc) 155ecore_x_region_new_from_gc(Ecore_X_GC gc)
@@ -163,7 +163,7 @@ ecore_x_region_new_from_gc(Ecore_X_GC gc)
163#else /* ifdef ECORE_XFIXES */ 163#else /* ifdef ECORE_XFIXES */
164 return 0; 164 return 0;
165#endif /* ifdef ECORE_XFIXES */ 165#endif /* ifdef ECORE_XFIXES */
166} /* ecore_x_region_new_from_gc */ 166}
167 167
168EAPI Ecore_X_Region 168EAPI Ecore_X_Region
169ecore_x_region_new_from_picture(Ecore_X_Picture picture) 169ecore_x_region_new_from_picture(Ecore_X_Picture picture)
@@ -177,7 +177,7 @@ ecore_x_region_new_from_picture(Ecore_X_Picture picture)
177#else /* ifdef ECORE_XFIXES */ 177#else /* ifdef ECORE_XFIXES */
178 return 0; 178 return 0;
179#endif /* ifdef ECORE_XFIXES */ 179#endif /* ifdef ECORE_XFIXES */
180} /* ecore_x_region_new_from_picture */ 180}
181 181
182EAPI void 182EAPI void
183ecore_x_region_free(Ecore_X_Region region) 183ecore_x_region_free(Ecore_X_Region region)
@@ -186,19 +186,19 @@ ecore_x_region_free(Ecore_X_Region region)
186 LOGFN(__FILE__, __LINE__, __FUNCTION__); 186 LOGFN(__FILE__, __LINE__, __FUNCTION__);
187 XFixesDestroyRegion(_ecore_x_disp, region); 187 XFixesDestroyRegion(_ecore_x_disp, region);
188#endif /* ifdef ECORE_XFIXES */ 188#endif /* ifdef ECORE_XFIXES */
189} /* ecore_x_region_free */ 189}
190 190
191EAPI void 191EAPI void
192ecore_x_region_set(Ecore_X_Region region, 192ecore_x_region_set(Ecore_X_Region region,
193 Ecore_X_Rectangle *rects, 193 Ecore_X_Rectangle *rects,
194 int num) 194 int num)
195{ 195{
196#ifdef ECORE_XFIXES 196#ifdef ECORE_XFIXES
197 XRectangle *xrect = _ecore_x_rectangle_ecore_to_x(rects, num); 197 XRectangle *xrect = _ecore_x_rectangle_ecore_to_x(rects, num);
198 LOGFN(__FILE__, __LINE__, __FUNCTION__); 198 LOGFN(__FILE__, __LINE__, __FUNCTION__);
199 XFixesSetRegion(_ecore_x_disp, region, xrect, num); 199 XFixesSetRegion(_ecore_x_disp, region, xrect, num);
200#endif /* ifdef ECORE_XFIXES */ 200#endif /* ifdef ECORE_XFIXES */
201} /* ecore_x_region_set */ 201}
202 202
203EAPI void 203EAPI void
204ecore_x_region_copy(Ecore_X_Region dest, 204ecore_x_region_copy(Ecore_X_Region dest,
@@ -208,7 +208,7 @@ ecore_x_region_copy(Ecore_X_Region dest,
208 LOGFN(__FILE__, __LINE__, __FUNCTION__); 208 LOGFN(__FILE__, __LINE__, __FUNCTION__);
209 XFixesCopyRegion(_ecore_x_disp, dest, source); 209 XFixesCopyRegion(_ecore_x_disp, dest, source);
210#endif /* ifdef ECORE_XFIXES */ 210#endif /* ifdef ECORE_XFIXES */
211} /* ecore_x_region_copy */ 211}
212 212
213EAPI void 213EAPI void
214ecore_x_region_combine(Ecore_X_Region dest, 214ecore_x_region_combine(Ecore_X_Region dest,
@@ -219,7 +219,7 @@ ecore_x_region_combine(Ecore_X_Region dest,
219 LOGFN(__FILE__, __LINE__, __FUNCTION__); 219 LOGFN(__FILE__, __LINE__, __FUNCTION__);
220 XFixesUnionRegion(_ecore_x_disp, dest, source1, source2); 220 XFixesUnionRegion(_ecore_x_disp, dest, source1, source2);
221#endif /* ifdef ECORE_XFIXES */ 221#endif /* ifdef ECORE_XFIXES */
222} /* ecore_x_region_combine */ 222}
223 223
224EAPI void 224EAPI void
225ecore_x_region_intersect(Ecore_X_Region dest, 225ecore_x_region_intersect(Ecore_X_Region dest,
@@ -230,7 +230,7 @@ ecore_x_region_intersect(Ecore_X_Region dest,
230 LOGFN(__FILE__, __LINE__, __FUNCTION__); 230 LOGFN(__FILE__, __LINE__, __FUNCTION__);
231 XFixesIntersectRegion(_ecore_x_disp, dest, source1, source2); 231 XFixesIntersectRegion(_ecore_x_disp, dest, source1, source2);
232#endif /* ifdef ECORE_XFIXES */ 232#endif /* ifdef ECORE_XFIXES */
233} /* ecore_x_region_intersect */ 233}
234 234
235EAPI void 235EAPI void
236ecore_x_region_subtract(Ecore_X_Region dest, 236ecore_x_region_subtract(Ecore_X_Region dest,
@@ -241,35 +241,36 @@ ecore_x_region_subtract(Ecore_X_Region dest,
241 LOGFN(__FILE__, __LINE__, __FUNCTION__); 241 LOGFN(__FILE__, __LINE__, __FUNCTION__);
242 XFixesSubtractRegion(_ecore_x_disp, dest, source1, source2); 242 XFixesSubtractRegion(_ecore_x_disp, dest, source1, source2);
243#endif /* ifdef ECORE_XFIXES */ 243#endif /* ifdef ECORE_XFIXES */
244} /* ecore_x_region_subtract */ 244}
245 245
246EAPI void 246EAPI void
247ecore_x_region_invert(Ecore_X_Region dest, 247ecore_x_region_invert(Ecore_X_Region dest,
248 Ecore_X_Rectangle *bounds, 248 Ecore_X_Rectangle *bounds,
249 Ecore_X_Region source) 249 Ecore_X_Region source)
250{ 250{
251#ifdef ECORE_XFIXES 251#ifdef ECORE_XFIXES
252 XRectangle *xbound; 252 XRectangle *xbound;
253 int num = 0; 253 int num = 0;
254 254
255 LOGFN(__FILE__, __LINE__, __FUNCTION__); 255 LOGFN(__FILE__, __LINE__, __FUNCTION__);
256 while (bounds + num) num++; 256 while (bounds + num)
257 num++;
257 xbound = _ecore_x_rectangle_ecore_to_x(bounds, num); 258 xbound = _ecore_x_rectangle_ecore_to_x(bounds, num);
258 259
259 XFixesInvertRegion(_ecore_x_disp, dest, xbound, source); 260 XFixesInvertRegion(_ecore_x_disp, dest, xbound, source);
260#endif /* ifdef ECORE_XFIXES */ 261#endif /* ifdef ECORE_XFIXES */
261} /* ecore_x_region_invert */ 262}
262 263
263EAPI void 264EAPI void
264ecore_x_region_translate(Ecore_X_Region region, 265ecore_x_region_translate(Ecore_X_Region region,
265 int dx, 266 int dx,
266 int dy) 267 int dy)
267{ 268{
268#ifdef ECORE_XFIXES 269#ifdef ECORE_XFIXES
269 LOGFN(__FILE__, __LINE__, __FUNCTION__); 270 LOGFN(__FILE__, __LINE__, __FUNCTION__);
270 XFixesTranslateRegion(_ecore_x_disp, region, dx, dy); 271 XFixesTranslateRegion(_ecore_x_disp, region, dx, dy);
271#endif /* ifdef ECORE_XFIXES */ 272#endif /* ifdef ECORE_XFIXES */
272} /* ecore_x_region_translate */ 273}
273 274
274EAPI void 275EAPI void
275ecore_x_region_extents(Ecore_X_Region dest, 276ecore_x_region_extents(Ecore_X_Region dest,
@@ -279,11 +280,11 @@ ecore_x_region_extents(Ecore_X_Region dest,
279 LOGFN(__FILE__, __LINE__, __FUNCTION__); 280 LOGFN(__FILE__, __LINE__, __FUNCTION__);
280 XFixesRegionExtents(_ecore_x_disp, dest, source); 281 XFixesRegionExtents(_ecore_x_disp, dest, source);
281#endif /* ifdef ECORE_XFIXES */ 282#endif /* ifdef ECORE_XFIXES */
282} /* ecore_x_region_extents */ 283}
283 284
284EAPI Ecore_X_Rectangle * 285EAPI Ecore_X_Rectangle *
285ecore_x_region_fetch(Ecore_X_Region region, 286ecore_x_region_fetch(Ecore_X_Region region,
286 int *num, 287 int *num,
287 Ecore_X_Rectangle *bounds){ 288 Ecore_X_Rectangle *bounds){
288#ifdef ECORE_XFIXES 289#ifdef ECORE_XFIXES
289 Ecore_X_Rectangle *rects; 290 Ecore_X_Rectangle *rects;
@@ -300,40 +301,40 @@ ecore_x_region_fetch(Ecore_X_Region region,
300#else /* ifdef ECORE_XFIXES */ 301#else /* ifdef ECORE_XFIXES */
301 return NULL; 302 return NULL;
302#endif /* ifdef ECORE_XFIXES */ 303#endif /* ifdef ECORE_XFIXES */
303} /* ecore_x_region_fetch */ 304}
304 305
305EAPI void 306EAPI void
306ecore_x_region_expand(Ecore_X_Region dest, 307ecore_x_region_expand(Ecore_X_Region dest,
307 Ecore_X_Region source, 308 Ecore_X_Region source,
308 unsigned int left, 309 unsigned int left,
309 unsigned int right, 310 unsigned int right,
310 unsigned int top, 311 unsigned int top,
311 unsigned int bottom) 312 unsigned int bottom)
312{ 313{
313#ifdef ECORE_XFIXES 314#ifdef ECORE_XFIXES
314 LOGFN(__FILE__, __LINE__, __FUNCTION__); 315 LOGFN(__FILE__, __LINE__, __FUNCTION__);
315 XFixesExpandRegion(_ecore_x_disp, dest, source, left, right, top, bottom); 316 XFixesExpandRegion(_ecore_x_disp, dest, source, left, right, top, bottom);
316#endif /* ifdef ECORE_XFIXES */ 317#endif /* ifdef ECORE_XFIXES */
317} /* ecore_x_region_expand */ 318}
318 319
319EAPI void 320EAPI void
320ecore_x_region_gc_clip_set(Ecore_X_Region region, 321ecore_x_region_gc_clip_set(Ecore_X_Region region,
321 Ecore_X_GC gc, 322 Ecore_X_GC gc,
322 int x_origin, 323 int x_origin,
323 int y_origin) 324 int y_origin)
324{ 325{
325#ifdef ECORE_XFIXES 326#ifdef ECORE_XFIXES
326 LOGFN(__FILE__, __LINE__, __FUNCTION__); 327 LOGFN(__FILE__, __LINE__, __FUNCTION__);
327 XFixesSetGCClipRegion(_ecore_x_disp, gc, x_origin, y_origin, region); 328 XFixesSetGCClipRegion(_ecore_x_disp, gc, x_origin, y_origin, region);
328#endif /* ifdef ECORE_XFIXES */ 329#endif /* ifdef ECORE_XFIXES */
329} /* ecore_x_region_gc_clip_set */ 330}
330 331
331EAPI void 332EAPI void
332ecore_x_region_window_shape_set(Ecore_X_Region region, 333ecore_x_region_window_shape_set(Ecore_X_Region region,
333 Ecore_X_Window win, 334 Ecore_X_Window win,
334 Ecore_X_Shape_Type type, 335 Ecore_X_Shape_Type type,
335 int x_offset, 336 int x_offset,
336 int y_offset) 337 int y_offset)
337{ 338{
338#ifdef ECORE_XFIXES 339#ifdef ECORE_XFIXES
339 LOGFN(__FILE__, __LINE__, __FUNCTION__); 340 LOGFN(__FILE__, __LINE__, __FUNCTION__);
@@ -344,13 +345,13 @@ ecore_x_region_window_shape_set(Ecore_X_Region region,
344 y_offset, 345 y_offset,
345 region); 346 region);
346#endif /* ifdef ECORE_XFIXES */ 347#endif /* ifdef ECORE_XFIXES */
347} /* ecore_x_region_window_shape_set */ 348}
348 349
349EAPI void 350EAPI void
350ecore_x_region_picture_clip_set(Ecore_X_Region region, 351ecore_x_region_picture_clip_set(Ecore_X_Region region,
351 Ecore_X_Picture picture, 352 Ecore_X_Picture picture,
352 int x_origin, 353 int x_origin,
353 int y_origin) 354 int y_origin)
354{ 355{
355#ifdef ECORE_XFIXES 356#ifdef ECORE_XFIXES
356 LOGFN(__FILE__, __LINE__, __FUNCTION__); 357 LOGFN(__FILE__, __LINE__, __FUNCTION__);
@@ -360,5 +361,5 @@ ecore_x_region_picture_clip_set(Ecore_X_Region region,
360 y_origin, 361 y_origin,
361 region); 362 region);
362#endif /* ifdef ECORE_XFIXES */ 363#endif /* ifdef ECORE_XFIXES */
363} /* ecore_x_region_picture_clip_set */ 364}
364 365
diff --git a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_gc.c b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_gc.c
index 10b807b..5396366 100644
--- a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_gc.c
+++ b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_gc.c
@@ -19,9 +19,9 @@
19 * @return The new default graphics context. 19 * @return The new default graphics context.
20 */ 20 */
21EAPI Ecore_X_GC 21EAPI Ecore_X_GC
22ecore_x_gc_new(Ecore_X_Drawable draw, 22ecore_x_gc_new(Ecore_X_Drawable draw,
23 Ecore_X_GC_Value_Mask value_mask, 23 Ecore_X_GC_Value_Mask value_mask,
24 const unsigned int *value_list) 24 const unsigned int *value_list)
25{ 25{
26 XGCValues gcv; 26 XGCValues gcv;
27 int mask; 27 int mask;
@@ -152,11 +152,11 @@ ecore_x_gc_new(Ecore_X_Drawable draw,
152 gcv.arc_mode = value_list[idx]; 152 gcv.arc_mode = value_list[idx];
153 idx++; 153 idx++;
154 break; 154 break;
155 } /* switch */ 155 }
156 } 156 }
157 157
158 return XCreateGC(_ecore_x_disp, draw, value_mask, &gcv); 158 return XCreateGC(_ecore_x_disp, draw, value_mask, &gcv);
159} /* ecore_x_gc_new */ 159}
160 160
161/** 161/**
162 * Deletes and frees the given graphics context. 162 * Deletes and frees the given graphics context.
@@ -167,5 +167,5 @@ ecore_x_gc_free(Ecore_X_GC gc)
167{ 167{
168 LOGFN(__FILE__, __LINE__, __FUNCTION__); 168 LOGFN(__FILE__, __LINE__, __FUNCTION__);
169 XFreeGC(_ecore_x_disp, gc); 169 XFreeGC(_ecore_x_disp, gc);
170} /* ecore_x_gc_free */ 170}
171 171
diff --git a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_gesture.c b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_gesture.c
index e1dc75c..e89421b 100644
--- a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_gesture.c
+++ b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_gesture.c
@@ -26,7 +26,7 @@ _ecore_x_gesture_init(void)
26 _gesture_available = EINA_TRUE; 26 _gesture_available = EINA_TRUE;
27 } 27 }
28 else 28 else
29 _gesture_available = EINA_FALSE; 29 _gesture_available = EINA_FALSE;
30#else /* ifdef ECORE_XGESTURE */ 30#else /* ifdef ECORE_XGESTURE */
31 _gesture_available = EINA_FALSE; 31 _gesture_available = EINA_FALSE;
32#endif /* ifdef ECORE_XGESTURE */ 32#endif /* ifdef ECORE_XGESTURE */
@@ -48,11 +48,11 @@ ecore_x_gesture_events_select(Ecore_X_Window win,
48{ 48{
49#ifdef ECORE_XGESTURE 49#ifdef ECORE_XGESTURE
50 if (!_gesture_available) 50 if (!_gesture_available)
51 return EINA_FALSE; 51 return EINA_FALSE;
52 52
53 LOGFN(__FILE__, __LINE__, __FUNCTION__); 53 LOGFN(__FILE__, __LINE__, __FUNCTION__);
54 XGestureSelectEvents(_ecore_x_disp, win, mask); 54 XGestureSelectEvents(_ecore_x_disp, win, mask);
55 55
56 return EINA_TRUE; 56 return EINA_TRUE;
57#else /* ifdef ECORE_XGESTURE */ 57#else /* ifdef ECORE_XGESTURE */
58 return EINA_FALSE; 58 return EINA_FALSE;
@@ -68,7 +68,7 @@ ecore_x_gesture_events_selected_get(Ecore_X_Window win)
68 Ecore_X_Gesture_Event_Mask mask; 68 Ecore_X_Gesture_Event_Mask mask;
69 69
70 if (!_gesture_available) 70 if (!_gesture_available)
71 return ECORE_X_GESTURE_EVENT_MASK_NONE; 71 return ECORE_X_GESTURE_EVENT_MASK_NONE;
72 72
73 LOGFN(__FILE__, __LINE__, __FUNCTION__); 73 LOGFN(__FILE__, __LINE__, __FUNCTION__);
74 if (GestureSuccess != XGestureGetSelectedEvents(_ecore_x_disp, win, &mask)) 74 if (GestureSuccess != XGestureGetSelectedEvents(_ecore_x_disp, win, &mask))
@@ -76,7 +76,7 @@ ecore_x_gesture_events_selected_get(Ecore_X_Window win)
76 mask = ECORE_X_GESTURE_EVENT_MASK_NONE; 76 mask = ECORE_X_GESTURE_EVENT_MASK_NONE;
77 return mask; 77 return mask;
78 } 78 }
79 79
80 return mask; 80 return mask;
81#else /* ifdef ECORE_XGESTURE */ 81#else /* ifdef ECORE_XGESTURE */
82 return ECORE_X_GESTURE_EVENT_MASK_NONE; 82 return ECORE_X_GESTURE_EVENT_MASK_NONE;
@@ -91,14 +91,14 @@ ecore_x_gesture_event_grab(Ecore_X_Window win,
91{ 91{
92#ifdef ECORE_XGESTURE 92#ifdef ECORE_XGESTURE
93 if (!_gesture_available) 93 if (!_gesture_available)
94 return EINA_FALSE; 94 return EINA_FALSE;
95 95
96 LOGFN(__FILE__, __LINE__, __FUNCTION__); 96 LOGFN(__FILE__, __LINE__, __FUNCTION__);
97 if (GestureGrabSuccess != XGestureGrabEvent(_ecore_x_disp, win, type, num_fingers, CurrentTime)) 97 if (GestureGrabSuccess != XGestureGrabEvent(_ecore_x_disp, win, type, num_fingers, CurrentTime))
98 { 98 {
99 return EINA_FALSE; 99 return EINA_FALSE;
100 } 100 }
101 101
102 return EINA_TRUE; 102 return EINA_TRUE;
103#else /* ifdef ECORE_XGESTURE */ 103#else /* ifdef ECORE_XGESTURE */
104 return EINA_FALSE; 104 return EINA_FALSE;
@@ -117,14 +117,14 @@ ecore_x_gesture_event_ungrab(Ecore_X_Window win,
117 Ecore_X_Gesture_Event_Mask mask; 117 Ecore_X_Gesture_Event_Mask mask;
118 118
119 if (!_gesture_available) 119 if (!_gesture_available)
120 return EINA_FALSE; 120 return EINA_FALSE;
121 121
122 LOGFN(__FILE__, __LINE__, __FUNCTION__); 122 LOGFN(__FILE__, __LINE__, __FUNCTION__);
123 if (GestureUngrabSuccess != XGestureUngrabEvent(_ecore_x_disp, win, type, num_fingers, CurrentTime)) 123 if (GestureUngrabSuccess != XGestureUngrabEvent(_ecore_x_disp, win, type, num_fingers, CurrentTime))
124 { 124 {
125 return EINA_FALSE; 125 return EINA_FALSE;
126 } 126 }
127 127
128 return EINA_TRUE; 128 return EINA_TRUE;
129#else /* ifdef ECORE_XGESTURE */ 129#else /* ifdef ECORE_XGESTURE */
130 return EINA_FALSE; 130 return EINA_FALSE;
diff --git a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_icccm.c b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_icccm.c
index 3899651..8d6ea1f 100644
--- a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_icccm.c
+++ b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_icccm.c
@@ -21,10 +21,10 @@ EAPI void
21ecore_x_icccm_init(void) 21ecore_x_icccm_init(void)
22{ 22{
23 LOGFN(__FILE__, __LINE__, __FUNCTION__); 23 LOGFN(__FILE__, __LINE__, __FUNCTION__);
24} /* ecore_x_icccm_init */ 24}
25 25
26EAPI void 26EAPI void
27ecore_x_icccm_state_set(Ecore_X_Window win, 27ecore_x_icccm_state_set(Ecore_X_Window win,
28 Ecore_X_Window_State_Hint state) 28 Ecore_X_Window_State_Hint state)
29{ 29{
30 unsigned long c[2]; 30 unsigned long c[2];
@@ -41,7 +41,7 @@ ecore_x_icccm_state_set(Ecore_X_Window win,
41 XChangeProperty(_ecore_x_disp, win, ECORE_X_ATOM_WM_STATE, 41 XChangeProperty(_ecore_x_disp, win, ECORE_X_ATOM_WM_STATE,
42 ECORE_X_ATOM_WM_STATE, 32, PropModeReplace, 42 ECORE_X_ATOM_WM_STATE, 32, PropModeReplace,
43 (unsigned char *)c, 2); 43 (unsigned char *)c, 2);
44} /* ecore_x_icccm_state_set */ 44}
45 45
46EAPI Ecore_X_Window_State_Hint 46EAPI Ecore_X_Window_State_Hint
47ecore_x_icccm_state_get(Ecore_X_Window win) 47ecore_x_icccm_state_get(Ecore_X_Window win)
@@ -72,47 +72,47 @@ ecore_x_icccm_state_get(Ecore_X_Window win)
72 XFree(prop_ret); 72 XFree(prop_ret);
73 73
74 return hint; 74 return hint;
75} /* ecore_x_icccm_state_get */ 75}
76 76
77EAPI void 77EAPI void
78ecore_x_icccm_delete_window_send(Ecore_X_Window win, 78ecore_x_icccm_delete_window_send(Ecore_X_Window win,
79 Ecore_X_Time t) 79 Ecore_X_Time t)
80{ 80{
81 LOGFN(__FILE__, __LINE__, __FUNCTION__); 81 LOGFN(__FILE__, __LINE__, __FUNCTION__);
82 ecore_x_client_message32_send(win, ECORE_X_ATOM_WM_PROTOCOLS, 82 ecore_x_client_message32_send(win, ECORE_X_ATOM_WM_PROTOCOLS,
83 ECORE_X_EVENT_MASK_NONE, 83 ECORE_X_EVENT_MASK_NONE,
84 ECORE_X_ATOM_WM_DELETE_WINDOW, 84 ECORE_X_ATOM_WM_DELETE_WINDOW,
85 t, 0, 0, 0); 85 t, 0, 0, 0);
86} /* ecore_x_icccm_delete_window_send */ 86}
87 87
88EAPI void 88EAPI void
89ecore_x_icccm_take_focus_send(Ecore_X_Window win, 89ecore_x_icccm_take_focus_send(Ecore_X_Window win,
90 Ecore_X_Time t) 90 Ecore_X_Time t)
91{ 91{
92 LOGFN(__FILE__, __LINE__, __FUNCTION__); 92 LOGFN(__FILE__, __LINE__, __FUNCTION__);
93 ecore_x_client_message32_send(win, ECORE_X_ATOM_WM_PROTOCOLS, 93 ecore_x_client_message32_send(win, ECORE_X_ATOM_WM_PROTOCOLS,
94 ECORE_X_EVENT_MASK_NONE, 94 ECORE_X_EVENT_MASK_NONE,
95 ECORE_X_ATOM_WM_TAKE_FOCUS, 95 ECORE_X_ATOM_WM_TAKE_FOCUS,
96 t, 0, 0, 0); 96 t, 0, 0, 0);
97} /* ecore_x_icccm_take_focus_send */ 97}
98 98
99EAPI void 99EAPI void
100ecore_x_icccm_save_yourself_send(Ecore_X_Window win, 100ecore_x_icccm_save_yourself_send(Ecore_X_Window win,
101 Ecore_X_Time t) 101 Ecore_X_Time t)
102{ 102{
103 LOGFN(__FILE__, __LINE__, __FUNCTION__); 103 LOGFN(__FILE__, __LINE__, __FUNCTION__);
104 ecore_x_client_message32_send(win, ECORE_X_ATOM_WM_PROTOCOLS, 104 ecore_x_client_message32_send(win, ECORE_X_ATOM_WM_PROTOCOLS,
105 ECORE_X_EVENT_MASK_NONE, 105 ECORE_X_EVENT_MASK_NONE,
106 ECORE_X_ATOM_WM_SAVE_YOURSELF, 106 ECORE_X_ATOM_WM_SAVE_YOURSELF,
107 t, 0, 0, 0); 107 t, 0, 0, 0);
108} /* ecore_x_icccm_save_yourself_send */ 108}
109 109
110EAPI void 110EAPI void
111ecore_x_icccm_move_resize_send(Ecore_X_Window win, 111ecore_x_icccm_move_resize_send(Ecore_X_Window win,
112 int x, 112 int x,
113 int y, 113 int y,
114 int w, 114 int w,
115 int h) 115 int h)
116{ 116{
117 XEvent ev; 117 XEvent ev;
118 118
@@ -129,17 +129,17 @@ ecore_x_icccm_move_resize_send(Ecore_X_Window win,
129 ev.xconfigure.above = None; 129 ev.xconfigure.above = None;
130 ev.xconfigure.override_redirect = False; 130 ev.xconfigure.override_redirect = False;
131 XSendEvent(_ecore_x_disp, win, False, StructureNotifyMask, &ev); 131 XSendEvent(_ecore_x_disp, win, False, StructureNotifyMask, &ev);
132} /* ecore_x_icccm_move_resize_send */ 132}
133 133
134EAPI void 134EAPI void
135ecore_x_icccm_hints_set(Ecore_X_Window win, 135ecore_x_icccm_hints_set(Ecore_X_Window win,
136 Eina_Bool accepts_focus, 136 Eina_Bool accepts_focus,
137 Ecore_X_Window_State_Hint initial_state, 137 Ecore_X_Window_State_Hint initial_state,
138 Ecore_X_Pixmap icon_pixmap, 138 Ecore_X_Pixmap icon_pixmap,
139 Ecore_X_Pixmap icon_mask, 139 Ecore_X_Pixmap icon_mask,
140 Ecore_X_Window icon_window, 140 Ecore_X_Window icon_window,
141 Ecore_X_Window window_group, 141 Ecore_X_Window window_group,
142 Eina_Bool is_urgent) 142 Eina_Bool is_urgent)
143{ 143{
144 XWMHints *hints; 144 XWMHints *hints;
145 145
@@ -186,17 +186,17 @@ ecore_x_icccm_hints_set(Ecore_X_Window win,
186 186
187 XSetWMHints(_ecore_x_disp, win, hints); 187 XSetWMHints(_ecore_x_disp, win, hints);
188 XFree(hints); 188 XFree(hints);
189} /* ecore_x_icccm_hints_set */ 189}
190 190
191EAPI Eina_Bool 191EAPI Eina_Bool
192ecore_x_icccm_hints_get(Ecore_X_Window win, 192ecore_x_icccm_hints_get(Ecore_X_Window win,
193 Eina_Bool *accepts_focus, 193 Eina_Bool *accepts_focus,
194 Ecore_X_Window_State_Hint *initial_state, 194 Ecore_X_Window_State_Hint *initial_state,
195 Ecore_X_Pixmap *icon_pixmap, 195 Ecore_X_Pixmap *icon_pixmap,
196 Ecore_X_Pixmap *icon_mask, 196 Ecore_X_Pixmap *icon_mask,
197 Ecore_X_Window *icon_window, 197 Ecore_X_Window *icon_window,
198 Ecore_X_Window *window_group, 198 Ecore_X_Window *window_group,
199 Eina_Bool *is_urgent) 199 Eina_Bool *is_urgent)
200{ 200{
201 XWMHints *hints; 201 XWMHints *hints;
202 202
@@ -263,22 +263,22 @@ ecore_x_icccm_hints_get(Ecore_X_Window win,
263 } 263 }
264 264
265 return EINA_FALSE; 265 return EINA_FALSE;
266} /* ecore_x_icccm_hints_get */ 266}
267 267
268EAPI void 268EAPI void
269ecore_x_icccm_size_pos_hints_set(Ecore_X_Window win, 269ecore_x_icccm_size_pos_hints_set(Ecore_X_Window win,
270 Eina_Bool request_pos, 270 Eina_Bool request_pos,
271 Ecore_X_Gravity gravity, 271 Ecore_X_Gravity gravity,
272 int min_w, 272 int min_w,
273 int min_h, 273 int min_h,
274 int max_w, 274 int max_w,
275 int max_h, 275 int max_h,
276 int base_w, 276 int base_w,
277 int base_h, 277 int base_h,
278 int step_x, 278 int step_x,
279 int step_y, 279 int step_y,
280 double min_aspect, 280 double min_aspect,
281 double max_aspect) 281 double max_aspect)
282{ 282{
283 XSizeHints hint; 283 XSizeHints hint;
284 long mask; 284 long mask;
@@ -335,22 +335,22 @@ ecore_x_icccm_size_pos_hints_set(Ecore_X_Window win,
335 } 335 }
336 336
337 XSetWMNormalHints(_ecore_x_disp, win, &hint); 337 XSetWMNormalHints(_ecore_x_disp, win, &hint);
338} /* ecore_x_icccm_size_pos_hints_set */ 338}
339 339
340EAPI Eina_Bool 340EAPI Eina_Bool
341ecore_x_icccm_size_pos_hints_get(Ecore_X_Window win, 341ecore_x_icccm_size_pos_hints_get(Ecore_X_Window win,
342 Eina_Bool *request_pos, 342 Eina_Bool *request_pos,
343 Ecore_X_Gravity *gravity, 343 Ecore_X_Gravity *gravity,
344 int *min_w, 344 int *min_w,
345 int *min_h, 345 int *min_h,
346 int *max_w, 346 int *max_w,
347 int *max_h, 347 int *max_h,
348 int *base_w, 348 int *base_w,
349 int *base_h, 349 int *base_h,
350 int *step_x, 350 int *step_x,
351 int *step_y, 351 int *step_y,
352 double *min_aspect, 352 double *min_aspect,
353 double *max_aspect) 353 double *max_aspect)
354{ 354{
355 XSizeHints hint; 355 XSizeHints hint;
356 long mask; 356 long mask;
@@ -460,11 +460,11 @@ ecore_x_icccm_size_pos_hints_get(Ecore_X_Window win,
460 *max_aspect = maxa; 460 *max_aspect = maxa;
461 461
462 return EINA_TRUE; 462 return EINA_TRUE;
463} /* ecore_x_icccm_size_pos_hints_get */ 463}
464 464
465EAPI void 465EAPI void
466ecore_x_icccm_title_set(Ecore_X_Window win, 466ecore_x_icccm_title_set(Ecore_X_Window win,
467 const char *t) 467 const char *t)
468{ 468{
469 char *list[1]; 469 char *list[1];
470 XTextProperty xprop; 470 XTextProperty xprop;
@@ -500,7 +500,7 @@ ecore_x_icccm_title_set(Ecore_X_Window win,
500 } 500 }
501 501
502 free(list[0]); 502 free(list[0]);
503} /* ecore_x_icccm_title_set */ 503}
504 504
505EAPI char * 505EAPI char *
506ecore_x_icccm_title_get(Ecore_X_Window win) 506ecore_x_icccm_title_get(Ecore_X_Window win)
@@ -522,23 +522,23 @@ ecore_x_icccm_title_get(Ecore_X_Window win)
522 t = strdup((char *)xprop.value); 522 t = strdup((char *)xprop.value);
523 else 523 else
524 { 524 {
525 /* convert to utf8 */ 525 /* convert to utf8 */
526#ifdef X_HAVE_UTF8_STRING 526#ifdef X_HAVE_UTF8_STRING
527 ret = Xutf8TextPropertyToTextList(_ecore_x_disp, &xprop, 527 ret = Xutf8TextPropertyToTextList(_ecore_x_disp, &xprop,
528 &list, &num); 528 &list, &num);
529#else /* ifdef X_HAVE_UTF8_STRING */ 529#else /* ifdef X_HAVE_UTF8_STRING */
530 ret = XmbTextPropertyToTextList(_ecore_x_disp, &xprop, 530 ret = XmbTextPropertyToTextList(_ecore_x_disp, &xprop,
531 &list, &num); 531 &list, &num);
532#endif /* ifdef X_HAVE_UTF8_STRING */ 532#endif /* ifdef X_HAVE_UTF8_STRING */
533 533
534 if ((ret == XLocaleNotSupported) || 534 if ((ret == XLocaleNotSupported) ||
535 (ret == XNoMemory) || (ret == XConverterNotFound)) 535 (ret == XNoMemory) || (ret == XConverterNotFound))
536 t = strdup((char *)xprop.value); 536 t = strdup((char *)xprop.value);
537 else if ((ret >= Success) && (num > 0)) 537 else if ((ret >= Success) && (num > 0))
538 t = strdup(list[0]); 538 t = strdup(list[0]);
539 539
540 if (list) 540 if (list)
541 XFreeStringList(list); 541 XFreeStringList(list);
542 } 542 }
543 543
544 if (xprop.value) 544 if (xprop.value)
@@ -549,7 +549,7 @@ ecore_x_icccm_title_get(Ecore_X_Window win)
549 } 549 }
550 550
551 return NULL; 551 return NULL;
552} /* ecore_x_icccm_title_get */ 552}
553 553
554/** 554/**
555 * Set protocol atoms explicitly 555 * Set protocol atoms explicitly
@@ -559,15 +559,15 @@ ecore_x_icccm_title_get(Ecore_X_Window win)
559 */ 559 */
560EAPI void 560EAPI void
561ecore_x_icccm_protocol_atoms_set(Ecore_X_Window win, 561ecore_x_icccm_protocol_atoms_set(Ecore_X_Window win,
562 Ecore_X_Atom *protos, 562 Ecore_X_Atom *protos,
563 int num) 563 int num)
564{ 564{
565 LOGFN(__FILE__, __LINE__, __FUNCTION__); 565 LOGFN(__FILE__, __LINE__, __FUNCTION__);
566 if (num > 0) 566 if (num > 0)
567 XSetWMProtocols(_ecore_x_disp, win, (Atom *)(protos), num); 567 XSetWMProtocols(_ecore_x_disp, win, (Atom *)(protos), num);
568 else 568 else
569 XDeleteProperty(_ecore_x_disp, win, ECORE_X_ATOM_WM_PROTOCOLS); 569 XDeleteProperty(_ecore_x_disp, win, ECORE_X_ATOM_WM_PROTOCOLS);
570} /* ecore_x_icccm_protocol_atoms_set */ 570}
571 571
572/** 572/**
573 * Set or unset a wm protocol property. 573 * Set or unset a wm protocol property.
@@ -576,9 +576,9 @@ ecore_x_icccm_protocol_atoms_set(Ecore_X_Window win,
576 * @param on On/Off 576 * @param on On/Off
577 */ 577 */
578EAPI void 578EAPI void
579ecore_x_icccm_protocol_set(Ecore_X_Window win, 579ecore_x_icccm_protocol_set(Ecore_X_Window win,
580 Ecore_X_WM_Protocol protocol, 580 Ecore_X_WM_Protocol protocol,
581 Eina_Bool on) 581 Eina_Bool on)
582{ 582{
583 Atom *protos = NULL; 583 Atom *protos = NULL;
584 Atom proto; 584 Atom proto;
@@ -653,7 +653,7 @@ ecore_x_icccm_protocol_set(Ecore_X_Window win,
653leave: 653leave:
654 if (protos) 654 if (protos)
655 XFree(protos); 655 XFree(protos);
656} /* ecore_x_icccm_protocol_set */ 656}
657 657
658/** 658/**
659 * Determines whether a protocol is set for a window. 659 * Determines whether a protocol is set for a window.
@@ -662,7 +662,7 @@ leave:
662 * @return 1 if the protocol is set, else 0. 662 * @return 1 if the protocol is set, else 0.
663 */ 663 */
664EAPI Eina_Bool 664EAPI Eina_Bool
665ecore_x_icccm_protocol_isset(Ecore_X_Window win, 665ecore_x_icccm_protocol_isset(Ecore_X_Window win,
666 Ecore_X_WM_Protocol protocol) 666 Ecore_X_WM_Protocol protocol)
667{ 667{
668 Atom proto, *protos = NULL; 668 Atom proto, *protos = NULL;
@@ -690,7 +690,7 @@ ecore_x_icccm_protocol_isset(Ecore_X_Window win,
690 XFree(protos); 690 XFree(protos);
691 691
692 return ret; 692 return ret;
693} /* ecore_x_icccm_protocol_isset */ 693}
694 694
695/** 695/**
696 * Set a window name & class. 696 * Set a window name & class.
@@ -702,8 +702,8 @@ ecore_x_icccm_protocol_isset(Ecore_X_Window win,
702 */ 702 */
703EAPI void 703EAPI void
704ecore_x_icccm_name_class_set(Ecore_X_Window win, 704ecore_x_icccm_name_class_set(Ecore_X_Window win,
705 const char *n, 705 const char *n,
706 const char *c) 706 const char *c)
707{ 707{
708 XClassHint *xch; 708 XClassHint *xch;
709 709
@@ -716,7 +716,7 @@ ecore_x_icccm_name_class_set(Ecore_X_Window win,
716 xch->res_class = (char *)c; 716 xch->res_class = (char *)c;
717 XSetClassHint(_ecore_x_disp, win, xch); 717 XSetClassHint(_ecore_x_disp, win, xch);
718 XFree(xch); 718 XFree(xch);
719} /* ecore_x_icccm_name_class_set */ 719}
720 720
721/** 721/**
722 * Get a window name & class. 722 * Get a window name & class.
@@ -728,8 +728,8 @@ ecore_x_icccm_name_class_set(Ecore_X_Window win,
728 */ 728 */
729EAPI void 729EAPI void
730ecore_x_icccm_name_class_get(Ecore_X_Window win, 730ecore_x_icccm_name_class_get(Ecore_X_Window win,
731 char **n, 731 char **n,
732 char **c) 732 char **c)
733{ 733{
734 XClassHint xch; 734 XClassHint xch;
735 735
@@ -755,7 +755,7 @@ ecore_x_icccm_name_class_get(Ecore_X_Window win,
755 XFree(xch.res_name); 755 XFree(xch.res_name);
756 XFree(xch.res_class); 756 XFree(xch.res_class);
757 } 757 }
758} /* ecore_x_icccm_name_class_get */ 758}
759 759
760/** 760/**
761 * Get a window client machine string. 761 * Get a window client machine string.
@@ -772,7 +772,7 @@ ecore_x_icccm_client_machine_get(Ecore_X_Window win)
772 LOGFN(__FILE__, __LINE__, __FUNCTION__); 772 LOGFN(__FILE__, __LINE__, __FUNCTION__);
773 name = ecore_x_window_prop_string_get(win, ECORE_X_ATOM_WM_CLIENT_MACHINE); 773 name = ecore_x_window_prop_string_get(win, ECORE_X_ATOM_WM_CLIENT_MACHINE);
774 return name; 774 return name;
775} /* ecore_x_icccm_client_machine_get */ 775}
776 776
777/** 777/**
778 * Sets the WM_COMMAND property for @a win. 778 * Sets the WM_COMMAND property for @a win.
@@ -783,12 +783,12 @@ ecore_x_icccm_client_machine_get(Ecore_X_Window win)
783 */ 783 */
784EAPI void 784EAPI void
785ecore_x_icccm_command_set(Ecore_X_Window win, 785ecore_x_icccm_command_set(Ecore_X_Window win,
786 int argc, 786 int argc,
787 char **argv) 787 char **argv)
788{ 788{
789 LOGFN(__FILE__, __LINE__, __FUNCTION__); 789 LOGFN(__FILE__, __LINE__, __FUNCTION__);
790 XSetCommand(_ecore_x_disp, win, argv, argc); 790 XSetCommand(_ecore_x_disp, win, argv, argc);
791} /* ecore_x_icccm_command_set */ 791}
792 792
793/** 793/**
794 * Get the WM_COMMAND property for @a win. 794 * Get the WM_COMMAND property for @a win.
@@ -801,8 +801,8 @@ ecore_x_icccm_command_set(Ecore_X_Window win,
801 */ 801 */
802EAPI void 802EAPI void
803ecore_x_icccm_command_get(Ecore_X_Window win, 803ecore_x_icccm_command_get(Ecore_X_Window win,
804 int *argc, 804 int *argc,
805 char ***argv) 805 char ***argv)
806{ 806{
807 int i, c; 807 int i, c;
808 char **v; 808 char **v;
@@ -850,7 +850,7 @@ ecore_x_icccm_command_get(Ecore_X_Window win,
850 } 850 }
851 851
852 XFreeStringList(v); 852 XFreeStringList(v);
853} /* ecore_x_icccm_command_get */ 853}
854 854
855/** 855/**
856 * Set a window icon name. 856 * Set a window icon name.
@@ -861,7 +861,7 @@ ecore_x_icccm_command_get(Ecore_X_Window win,
861 */ 861 */
862EAPI void 862EAPI void
863ecore_x_icccm_icon_name_set(Ecore_X_Window win, 863ecore_x_icccm_icon_name_set(Ecore_X_Window win,
864 const char *t) 864 const char *t)
865{ 865{
866 char *list[1]; 866 char *list[1];
867 XTextProperty xprop; 867 XTextProperty xprop;
@@ -892,7 +892,7 @@ ecore_x_icccm_icon_name_set(Ecore_X_Window win,
892 } 892 }
893 893
894 free(list[0]); 894 free(list[0]);
895} /* ecore_x_icccm_icon_name_set */ 895}
896 896
897/** 897/**
898 * Get a window icon name. 898 * Get a window icon name.
@@ -921,26 +921,26 @@ ecore_x_icccm_icon_name_get(Ecore_X_Window win)
921 t = strdup((char *)xprop.value); 921 t = strdup((char *)xprop.value);
922 else 922 else
923 { 923 {
924 /* convert to utf8 */ 924 /* convert to utf8 */
925#ifdef X_HAVE_UTF8_STRING 925#ifdef X_HAVE_UTF8_STRING
926 ret = Xutf8TextPropertyToTextList(_ecore_x_disp, &xprop, 926 ret = Xutf8TextPropertyToTextList(_ecore_x_disp, &xprop,
927 &list, &num); 927 &list, &num);
928#else /* ifdef X_HAVE_UTF8_STRING */ 928#else /* ifdef X_HAVE_UTF8_STRING */
929 ret = XmbTextPropertyToTextList(_ecore_x_disp, &xprop, 929 ret = XmbTextPropertyToTextList(_ecore_x_disp, &xprop,
930 &list, &num); 930 &list, &num);
931#endif /* ifdef X_HAVE_UTF8_STRING */ 931#endif /* ifdef X_HAVE_UTF8_STRING */
932 932
933 if ((ret == XLocaleNotSupported) || 933 if ((ret == XLocaleNotSupported) ||
934 (ret == XNoMemory) || (ret == XConverterNotFound)) 934 (ret == XNoMemory) || (ret == XConverterNotFound))
935 t = strdup((char *)xprop.value); 935 t = strdup((char *)xprop.value);
936 else if (ret >= Success) 936 else if (ret >= Success)
937 { 937 {
938 if ((num >= 1) && (list)) 938 if ((num >= 1) && (list))
939 t = strdup(list[0]); 939 t = strdup(list[0]);
940 940
941 if (list) 941 if (list)
942 XFreeStringList(list); 942 XFreeStringList(list);
943 } 943 }
944 } 944 }
945 945
946 if (xprop.value) 946 if (xprop.value)
@@ -951,7 +951,7 @@ ecore_x_icccm_icon_name_get(Ecore_X_Window win)
951 } 951 }
952 952
953 return NULL; 953 return NULL;
954} /* ecore_x_icccm_icon_name_get */ 954}
955 955
956/** 956/**
957 * Add a subwindow to the list of windows that need a different colormap installed. 957 * Add a subwindow to the list of windows that need a different colormap installed.
@@ -1014,7 +1014,7 @@ ecore_x_icccm_colormap_window_set(Ecore_X_Window win,
1014 ECORE_X_ATOM_WM_COLORMAP_WINDOWS, 1014 ECORE_X_ATOM_WM_COLORMAP_WINDOWS,
1015 XA_WINDOW, 32, data, num); 1015 XA_WINDOW, 32, data, num);
1016 free(newset); 1016 free(newset);
1017} /* ecore_x_icccm_colormap_window_set */ 1017}
1018 1018
1019/** 1019/**
1020 * Remove a window from the list of colormap windows. 1020 * Remove a window from the list of colormap windows.
@@ -1079,7 +1079,7 @@ ecore_x_icccm_colormap_window_unset(Ecore_X_Window win,
1079 1079
1080 if (old_data) 1080 if (old_data)
1081 XFree(old_data); 1081 XFree(old_data);
1082} /* ecore_x_icccm_colormap_window_unset */ 1082}
1083 1083
1084/** 1084/**
1085 * Specify that a window is transient for another top-level window and should be handled accordingly. 1085 * Specify that a window is transient for another top-level window and should be handled accordingly.
@@ -1092,18 +1092,18 @@ ecore_x_icccm_transient_for_set(Ecore_X_Window win,
1092{ 1092{
1093 LOGFN(__FILE__, __LINE__, __FUNCTION__); 1093 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1094 XSetTransientForHint(_ecore_x_disp, win, forwin); 1094 XSetTransientForHint(_ecore_x_disp, win, forwin);
1095} /* ecore_x_icccm_transient_for_set */ 1095}
1096 1096
1097/** 1097/**
1098 * Remove the transient_for setting from a window. 1098 * Remove the transient_for setting from a window.
1099 * @param The window 1099 * @param win The window
1100 */ 1100 */
1101EAPI void 1101EAPI void
1102ecore_x_icccm_transient_for_unset(Ecore_X_Window win) 1102ecore_x_icccm_transient_for_unset(Ecore_X_Window win)
1103{ 1103{
1104 LOGFN(__FILE__, __LINE__, __FUNCTION__); 1104 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1105 XDeleteProperty(_ecore_x_disp, win, ECORE_X_ATOM_WM_TRANSIENT_FOR); 1105 XDeleteProperty(_ecore_x_disp, win, ECORE_X_ATOM_WM_TRANSIENT_FOR);
1106} /* ecore_x_icccm_transient_for_unset */ 1106}
1107 1107
1108/** 1108/**
1109 * Get the window this window is transient for, if any. 1109 * Get the window this window is transient for, if any.
@@ -1120,7 +1120,7 @@ ecore_x_icccm_transient_for_get(Ecore_X_Window win)
1120 return (Ecore_X_Window)forwin; 1120 return (Ecore_X_Window)forwin;
1121 else 1121 else
1122 return 0; 1122 return 0;
1123} /* ecore_x_icccm_transient_for_get */ 1123}
1124 1124
1125/** 1125/**
1126 * Set the window role hint. 1126 * Set the window role hint.
@@ -1129,12 +1129,12 @@ ecore_x_icccm_transient_for_get(Ecore_X_Window win)
1129 */ 1129 */
1130EAPI void 1130EAPI void
1131ecore_x_icccm_window_role_set(Ecore_X_Window win, 1131ecore_x_icccm_window_role_set(Ecore_X_Window win,
1132 const char *role) 1132 const char *role)
1133{ 1133{
1134 LOGFN(__FILE__, __LINE__, __FUNCTION__); 1134 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1135 ecore_x_window_prop_string_set(win, ECORE_X_ATOM_WM_WINDOW_ROLE, 1135 ecore_x_window_prop_string_set(win, ECORE_X_ATOM_WM_WINDOW_ROLE,
1136 (char *)role); 1136 (char *)role);
1137} /* ecore_x_icccm_window_role_set */ 1137}
1138 1138
1139/** 1139/**
1140 * Get the window role. 1140 * Get the window role.
@@ -1146,7 +1146,7 @@ ecore_x_icccm_window_role_get(Ecore_X_Window win)
1146{ 1146{
1147 LOGFN(__FILE__, __LINE__, __FUNCTION__); 1147 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1148 return ecore_x_window_prop_string_get(win, ECORE_X_ATOM_WM_WINDOW_ROLE); 1148 return ecore_x_window_prop_string_get(win, ECORE_X_ATOM_WM_WINDOW_ROLE);
1149} /* ecore_x_icccm_window_role_get */ 1149}
1150 1150
1151/** 1151/**
1152 * Set the window's client leader. 1152 * Set the window's client leader.
@@ -1163,7 +1163,7 @@ ecore_x_icccm_client_leader_set(Ecore_X_Window win,
1163 LOGFN(__FILE__, __LINE__, __FUNCTION__); 1163 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1164 ecore_x_window_prop_window_set(win, ECORE_X_ATOM_WM_CLIENT_LEADER, 1164 ecore_x_window_prop_window_set(win, ECORE_X_ATOM_WM_CLIENT_LEADER,
1165 &l, 1); 1165 &l, 1);
1166} /* ecore_x_icccm_client_leader_set */ 1166}
1167 1167
1168/** 1168/**
1169 * Get the window's client leader. 1169 * Get the window's client leader.
@@ -1180,7 +1180,7 @@ ecore_x_icccm_client_leader_get(Ecore_X_Window win)
1180 return l; 1180 return l;
1181 1181
1182 return 0; 1182 return 0;
1183} /* ecore_x_icccm_client_leader_get */ 1183}
1184 1184
1185EAPI void 1185EAPI void
1186ecore_x_icccm_iconic_request_send(Ecore_X_Window win, 1186ecore_x_icccm_iconic_request_send(Ecore_X_Window win,
@@ -1206,7 +1206,7 @@ ecore_x_icccm_iconic_request_send(Ecore_X_Window win,
1206 1206
1207 XSendEvent(_ecore_x_disp, root, False, 1207 XSendEvent(_ecore_x_disp, root, False,
1208 SubstructureNotifyMask | SubstructureRedirectMask, &xev); 1208 SubstructureNotifyMask | SubstructureRedirectMask, &xev);
1209} /* ecore_x_icccm_iconic_request_send */ 1209}
1210 1210
1211/* FIXME: there are older E hints, gnome hints and mwm hints and new netwm */ 1211/* FIXME: there are older E hints, gnome hints and mwm hints and new netwm */
1212/* hints. each should go in their own file/section so we know which */ 1212/* hints. each should go in their own file/section so we know which */
diff --git a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_image.c b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_image.c
index 2de5319..b8e720c 100644
--- a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_image.c
+++ b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_image.c
@@ -1,26 +1,28 @@
1#ifdef HAVE_CONFIG_H 1#ifdef HAVE_CONFIG_H
2# include <config.h> 2# include <config.h>
3#endif /* ifdef HAVE_CONFIG_H */ 3#endif
4
5#include <stdlib.h>
6#include <string.h>
7#include <sys/ipc.h>
8#include <sys/shm.h>
4 9
5#include "ecore_x_private.h" 10#include "ecore_x_private.h"
6#include "Ecore_X.h" 11#include "Ecore_X.h"
7 12
8#include <X11/extensions/XShm.h> 13#include <X11/extensions/XShm.h>
9#include <X11/Xutil.h> 14#include <X11/Xutil.h>
10#include <sys/ipc.h>
11#include <sys/shm.h>
12#include <string.h>
13 15
14static int _ecore_x_image_shm_can = -1; 16static int _ecore_x_image_shm_can = -1;
15static int _ecore_x_image_err = 0; 17static int _ecore_x_image_err = 0;
16 18
17static int 19static int
18_ecore_x_image_error_handler(Display *d __UNUSED__, 20_ecore_x_image_error_handler(Display *d __UNUSED__,
19 XErrorEvent *ev __UNUSED__) 21 XErrorEvent *ev __UNUSED__)
20{ 22{
21 _ecore_x_image_err = 1; 23 _ecore_x_image_err = 1;
22 return 0; 24 return 0;
23} /* _ecore_x_image_error_handler */ 25}
24 26
25static void 27static void
26_ecore_x_image_shm_check(void) 28_ecore_x_image_shm_check(void)
@@ -90,7 +92,7 @@ _ecore_x_image_shm_check(void)
90 shmctl(shminfo.shmid, IPC_RMID, 0); 92 shmctl(shminfo.shmid, IPC_RMID, 0);
91 93
92 _ecore_x_image_shm_can = 1; 94 _ecore_x_image_shm_can = 1;
93} /* _ecore_x_image_shm_check */ 95}
94 96
95struct _Ecore_X_Image 97struct _Ecore_X_Image
96{ 98{
@@ -105,10 +107,10 @@ struct _Ecore_X_Image
105}; 107};
106 108
107EAPI Ecore_X_Image * 109EAPI Ecore_X_Image *
108ecore_x_image_new(int w, 110ecore_x_image_new(int w,
109 int h, 111 int h,
110 Ecore_X_Visual vis, 112 Ecore_X_Visual vis,
111 int depth) 113 int depth)
112{ 114{
113 Ecore_X_Image *im; 115 Ecore_X_Image *im;
114 116
@@ -124,7 +126,7 @@ ecore_x_image_new(int w,
124 _ecore_x_image_shm_check(); 126 _ecore_x_image_shm_check();
125 im->shm = _ecore_x_image_shm_can; 127 im->shm = _ecore_x_image_shm_can;
126 return im; 128 return im;
127} /* ecore_x_image_new */ 129}
128 130
129EAPI void 131EAPI void
130ecore_x_image_free(Ecore_X_Image *im) 132ecore_x_image_free(Ecore_X_Image *im)
@@ -148,7 +150,7 @@ ecore_x_image_free(Ecore_X_Image *im)
148 } 150 }
149 151
150 free(im); 152 free(im);
151} /* ecore_x_image_free */ 153}
152 154
153static void 155static void
154_ecore_x_image_shm_create(Ecore_X_Image *im) 156_ecore_x_image_shm_create(Ecore_X_Image *im)
@@ -192,17 +194,17 @@ _ecore_x_image_shm_create(Ecore_X_Image *im)
192 im->bpp = 2; 194 im->bpp = 2;
193 else 195 else
194 im->bpp = 4; 196 im->bpp = 4;
195} /* _ecore_x_image_shm_create */ 197}
196 198
197EAPI Eina_Bool 199EAPI Eina_Bool
198ecore_x_image_get(Ecore_X_Image *im, 200ecore_x_image_get(Ecore_X_Image *im,
199 Ecore_X_Drawable draw, 201 Ecore_X_Drawable draw,
200 int x, 202 int x,
201 int y, 203 int y,
202 int sx, 204 int sx,
203 int sy, 205 int sy,
204 int w, 206 int w,
205 int h) 207 int h)
206{ 208{
207 Eina_Bool ret = EINA_TRUE; 209 Eina_Bool ret = EINA_TRUE;
208 XErrorHandler ph; 210 XErrorHandler ph;
@@ -278,18 +280,18 @@ ecore_x_image_get(Ecore_X_Image *im,
278 } 280 }
279 281
280 return ret; 282 return ret;
281} /* ecore_x_image_get */ 283}
282 284
283EAPI void 285EAPI void
284ecore_x_image_put(Ecore_X_Image *im, 286ecore_x_image_put(Ecore_X_Image *im,
285 Ecore_X_Drawable draw, 287 Ecore_X_Drawable draw,
286 Ecore_X_GC gc, 288 Ecore_X_GC gc,
287 int x, 289 int x,
288 int y, 290 int y,
289 int sx, 291 int sx,
290 int sy, 292 int sy,
291 int w, 293 int w,
292 int h) 294 int h)
293{ 295{
294 Ecore_X_GC tgc = 0; 296 Ecore_X_GC tgc = 0;
295 297
@@ -306,13 +308,13 @@ ecore_x_image_put(Ecore_X_Image *im,
306 if (im->xim) 308 if (im->xim)
307 XShmPutImage(_ecore_x_disp, draw, gc, im->xim, sx, sy, x, y, w, h, False); 309 XShmPutImage(_ecore_x_disp, draw, gc, im->xim, sx, sy, x, y, w, h, False);
308 if (tgc) ecore_x_gc_free(tgc); 310 if (tgc) ecore_x_gc_free(tgc);
309} /* ecore_x_image_put */ 311}
310 312
311EAPI void * 313EAPI void *
312ecore_x_image_data_get(Ecore_X_Image *im, 314ecore_x_image_data_get(Ecore_X_Image *im,
313 int *bpl, 315 int *bpl,
314 int *rows, 316 int *rows,
315 int *bpp) 317 int *bpp)
316{ 318{
317 LOGFN(__FILE__, __LINE__, __FUNCTION__); 319 LOGFN(__FILE__, __LINE__, __FUNCTION__);
318 if (!im->xim) _ecore_x_image_shm_create(im); 320 if (!im->xim) _ecore_x_image_shm_create(im);
@@ -321,7 +323,7 @@ ecore_x_image_data_get(Ecore_X_Image *im,
321 if (rows) *rows = im->rows; 323 if (rows) *rows = im->rows;
322 if (bpp) *bpp = im->bpp; 324 if (bpp) *bpp = im->bpp;
323 return im->data; 325 return im->data;
324} /* ecore_x_image_data_get */ 326}
325 327
326EAPI Eina_Bool 328EAPI Eina_Bool
327ecore_x_image_is_argb32_get(Ecore_X_Image *im) 329ecore_x_image_is_argb32_get(Ecore_X_Image *im)
@@ -345,19 +347,19 @@ ecore_x_image_is_argb32_get(Ecore_X_Image *im)
345} 347}
346 348
347EAPI Eina_Bool 349EAPI Eina_Bool
348ecore_x_image_to_argb_convert(void *src, 350ecore_x_image_to_argb_convert(void *src,
349 int sbpp, 351 int sbpp,
350 int sbpl, 352 int sbpl,
351 Ecore_X_Colormap c, 353 Ecore_X_Colormap c,
352 Ecore_X_Visual v, 354 Ecore_X_Visual v,
353 int x, 355 int x,
354 int y, 356 int y,
355 int w, 357 int w,
356 int h, 358 int h,
357 unsigned int *dst, 359 unsigned int *dst,
358 int dbpl, 360 int dbpl,
359 int dx, 361 int dx,
360 int dy) 362 int dy)
361{ 363{
362 Visual *vis = v; 364 Visual *vis = v;
363 XColor *cols = NULL; 365 XColor *cols = NULL;
@@ -411,9 +413,9 @@ ecore_x_image_to_argb_convert(void *src,
411 else if ((vis->class == TrueColor) || 413 else if ((vis->class == TrueColor) ||
412 (vis->class == DirectColor)) 414 (vis->class == DirectColor))
413 { 415 {
414 if ((vis->red_mask == 0x00ff0000) && 416 if ((vis->red_mask == 0x00ff0000) &&
415 (vis->green_mask == 0x0000ff00) && 417 (vis->green_mask == 0x0000ff00) &&
416 (vis->blue_mask == 0x000000ff)) 418 (vis->blue_mask == 0x000000ff))
417 mode = argbx888; 419 mode = argbx888;
418 else if ((vis->red_mask == 0x000000ff) && 420 else if ((vis->red_mask == 0x000000ff) &&
419 (vis->green_mask == 0x0000ff00) && 421 (vis->green_mask == 0x0000ff00) &&
diff --git a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_mwm.c b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_mwm.c
index 7459a8b..7812cc2 100644
--- a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_mwm.c
+++ b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_mwm.c
@@ -32,8 +32,8 @@ typedef struct _mwmhints
32MWMHints; 32MWMHints;
33 33
34EAPI Eina_Bool 34EAPI Eina_Bool
35ecore_x_mwm_hints_get(Ecore_X_Window win, 35ecore_x_mwm_hints_get(Ecore_X_Window win,
36 Ecore_X_MWM_Hint_Func *fhint, 36 Ecore_X_MWM_Hint_Func *fhint,
37 Ecore_X_MWM_Hint_Decor *dhint, 37 Ecore_X_MWM_Hint_Decor *dhint,
38 Ecore_X_MWM_Hint_Input *ihint) 38 Ecore_X_MWM_Hint_Input *ihint)
39{ 39{
@@ -86,11 +86,11 @@ ecore_x_mwm_hints_get(Ecore_X_Window win,
86 } 86 }
87 87
88 return ret; 88 return ret;
89} /* ecore_x_mwm_hints_get */ 89}
90 90
91EAPI void 91EAPI void
92ecore_x_mwm_borderless_set(Ecore_X_Window win, 92ecore_x_mwm_borderless_set(Ecore_X_Window win,
93 Eina_Bool borderless) 93 Eina_Bool borderless)
94{ 94{
95 unsigned int data[5] = {0, 0, 0, 0, 0}; 95 unsigned int data[5] = {0, 0, 0, 0, 0};
96 96
@@ -102,5 +102,5 @@ ecore_x_mwm_borderless_set(Ecore_X_Window win,
102 ECORE_X_ATOM_MOTIF_WM_HINTS, 102 ECORE_X_ATOM_MOTIF_WM_HINTS,
103 ECORE_X_ATOM_MOTIF_WM_HINTS, 103 ECORE_X_ATOM_MOTIF_WM_HINTS,
104 32, (void *)data, 5); 104 32, (void *)data, 5);
105} /* ecore_x_mwm_borderless_set */ 105}
106 106
diff --git a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_netwm.c b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_netwm.c
index 1a6fc9a..9fc428a 100644
--- a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_netwm.c
+++ b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_netwm.c
@@ -4,8 +4,9 @@
4 4
5#ifdef HAVE_CONFIG_H 5#ifdef HAVE_CONFIG_H
6# include <config.h> 6# include <config.h>
7#endif /* ifdef HAVE_CONFIG_H */ 7#endif
8 8
9#include <stdlib.h>
9#include <stdio.h> 10#include <stdio.h>
10#include <string.h> 11#include <string.h>
11 12
@@ -39,17 +40,17 @@ struct _Ecore_X_Startup_Info
39 int silent; 40 int silent;
40}; 41};
41 42
42static void _ecore_x_window_prop_string_utf8_set(Ecore_X_Window win, 43static void _ecore_x_window_prop_string_utf8_set(Ecore_X_Window win,
43 Ecore_X_Atom atom, 44 Ecore_X_Atom atom,
44 const char *str); 45 const char *str);
45static char *_ecore_x_window_prop_string_utf8_get(Ecore_X_Window win, 46static char *_ecore_x_window_prop_string_utf8_get(Ecore_X_Window win,
46 Ecore_X_Atom atom); 47 Ecore_X_Atom atom);
47#if 0 /* Unused */ 48#if 0 /* Unused */
48static int _ecore_x_netwm_startup_info_process(Ecore_X_Startup_Info *info); 49static int _ecore_x_netwm_startup_info_process(Ecore_X_Startup_Info *info);
49static int _ecore_x_netwm_startup_info_parse(Ecore_X_Startup_Info *info, 50static int _ecore_x_netwm_startup_info_parse(Ecore_X_Startup_Info *info,
50 char *data); 51 char *data);
51#endif /* if 0 */ 52#endif /* if 0 */
52static void _ecore_x_netwm_startup_info_free(void *data); 53static void _ecore_x_netwm_startup_info_free(void *data);
53 54
54/* 55/*
55 * Convenience macros 56 * Convenience macros
@@ -76,7 +77,7 @@ ecore_x_netwm_init(void)
76 LOGFN(__FILE__, __LINE__, __FUNCTION__); 77 LOGFN(__FILE__, __LINE__, __FUNCTION__);
77 startup_info = eina_hash_string_superfast_new( 78 startup_info = eina_hash_string_superfast_new(
78 _ecore_x_netwm_startup_info_free); 79 _ecore_x_netwm_startup_info_free);
79} /* ecore_x_netwm_init */ 80}
80 81
81EAPI void 82EAPI void
82ecore_x_netwm_shutdown(void) 83ecore_x_netwm_shutdown(void)
@@ -86,7 +87,7 @@ ecore_x_netwm_shutdown(void)
86 eina_hash_free(startup_info); 87 eina_hash_free(startup_info);
87 88
88 startup_info = NULL; 89 startup_info = NULL;
89} /* ecore_x_netwm_shutdown */ 90}
90 91
91/* 92/*
92 * WM identification 93 * WM identification
@@ -94,7 +95,7 @@ ecore_x_netwm_shutdown(void)
94EAPI void 95EAPI void
95ecore_x_netwm_wm_identify(Ecore_X_Window root, 96ecore_x_netwm_wm_identify(Ecore_X_Window root,
96 Ecore_X_Window check, 97 Ecore_X_Window check,
97 const char *wm_name) 98 const char *wm_name)
98{ 99{
99 LOGFN(__FILE__, __LINE__, __FUNCTION__); 100 LOGFN(__FILE__, __LINE__, __FUNCTION__);
100 ecore_x_window_prop_window_set(root, 101 ecore_x_window_prop_window_set(root,
@@ -112,27 +113,27 @@ ecore_x_netwm_wm_identify(Ecore_X_Window root,
112 _ecore_x_window_prop_string_utf8_set(root, 113 _ecore_x_window_prop_string_utf8_set(root,
113 ECORE_X_ATOM_NET_WM_NAME, 114 ECORE_X_ATOM_NET_WM_NAME,
114 wm_name); 115 wm_name);
115} /* ecore_x_netwm_wm_identify */ 116}
116 117
117/* 118/*
118 * Set supported atoms 119 * Set supported atoms
119 */ 120 */
120EAPI void 121EAPI void
121ecore_x_netwm_supported_set(Ecore_X_Window root, 122ecore_x_netwm_supported_set(Ecore_X_Window root,
122 Ecore_X_Atom *supported, 123 Ecore_X_Atom *supported,
123 int num) 124 int num)
124{ 125{
125 LOGFN(__FILE__, __LINE__, __FUNCTION__); 126 LOGFN(__FILE__, __LINE__, __FUNCTION__);
126 ecore_x_window_prop_atom_set(root, 127 ecore_x_window_prop_atom_set(root,
127 ECORE_X_ATOM_NET_SUPPORTED, 128 ECORE_X_ATOM_NET_SUPPORTED,
128 supported, 129 supported,
129 num); 130 num);
130} /* ecore_x_netwm_supported_set */ 131}
131 132
132EAPI Eina_Bool 133EAPI Eina_Bool
133ecore_x_netwm_supported_get(Ecore_X_Window root, 134ecore_x_netwm_supported_get(Ecore_X_Window root,
134 Ecore_X_Atom **supported, 135 Ecore_X_Atom **supported,
135 int *num) 136 int *num)
136{ 137{
137 int num_ret; 138 int num_ret;
138 139
@@ -152,36 +153,36 @@ ecore_x_netwm_supported_get(Ecore_X_Window root,
152 *num = num_ret; 153 *num = num_ret;
153 154
154 return EINA_TRUE; 155 return EINA_TRUE;
155} /* ecore_x_netwm_supported_get */ 156}
156 157
157/* 158/*
158 * Desktop configuration and status 159 * Desktop configuration and status
159 */ 160 */
160EAPI void 161EAPI void
161ecore_x_netwm_desk_count_set(Ecore_X_Window root, 162ecore_x_netwm_desk_count_set(Ecore_X_Window root,
162 unsigned int n_desks) 163 unsigned int n_desks)
163{ 164{
164 LOGFN(__FILE__, __LINE__, __FUNCTION__); 165 LOGFN(__FILE__, __LINE__, __FUNCTION__);
165 ecore_x_window_prop_card32_set(root, ECORE_X_ATOM_NET_NUMBER_OF_DESKTOPS, 166 ecore_x_window_prop_card32_set(root, ECORE_X_ATOM_NET_NUMBER_OF_DESKTOPS,
166 &n_desks, 1); 167 &n_desks, 1);
167} /* ecore_x_netwm_desk_count_set */ 168}
168 169
169EAPI void 170EAPI void
170ecore_x_netwm_desk_roots_set(Ecore_X_Window root, 171ecore_x_netwm_desk_roots_set(Ecore_X_Window root,
171 Ecore_X_Window *vroots, 172 Ecore_X_Window *vroots,
172 unsigned int n_desks) 173 unsigned int n_desks)
173{ 174{
174 LOGFN(__FILE__, __LINE__, __FUNCTION__); 175 LOGFN(__FILE__, __LINE__, __FUNCTION__);
175 ecore_x_window_prop_window_set(root, 176 ecore_x_window_prop_window_set(root,
176 ECORE_X_ATOM_NET_VIRTUAL_ROOTS, 177 ECORE_X_ATOM_NET_VIRTUAL_ROOTS,
177 vroots, 178 vroots,
178 n_desks); 179 n_desks);
179} /* ecore_x_netwm_desk_roots_set */ 180}
180 181
181EAPI void 182EAPI void
182ecore_x_netwm_desk_names_set(Ecore_X_Window root, 183ecore_x_netwm_desk_names_set(Ecore_X_Window root,
183 const char **names, 184 const char **names,
184 unsigned int n_desks) 185 unsigned int n_desks)
185{ 186{
186 char ss[32], *buf, *t; 187 char ss[32], *buf, *t;
187 const char *s; 188 const char *s;
@@ -198,8 +199,8 @@ ecore_x_netwm_desk_names_set(Ecore_X_Window root,
198 if (!s) 199 if (!s)
199 { 200 {
200 /* Default to "Desk-<number>" */ 201 /* Default to "Desk-<number>" */
201 sprintf(ss, "Desk-%d", i); 202 sprintf(ss, "Desk-%d", i);
202 s = ss; 203 s = ss;
203 } 204 }
204 205
205 l = strlen(s) + 1; 206 l = strlen(s) + 1;
@@ -215,12 +216,12 @@ ecore_x_netwm_desk_names_set(Ecore_X_Window root,
215 _ATOM_SET_UTF8_STRING_LIST(root, ECORE_X_ATOM_NET_DESKTOP_NAMES, buf, len); 216 _ATOM_SET_UTF8_STRING_LIST(root, ECORE_X_ATOM_NET_DESKTOP_NAMES, buf, len);
216 217
217 free(buf); 218 free(buf);
218} /* ecore_x_netwm_desk_names_set */ 219}
219 220
220EAPI void 221EAPI void
221ecore_x_netwm_desk_size_set(Ecore_X_Window root, 222ecore_x_netwm_desk_size_set(Ecore_X_Window root,
222 unsigned int width, 223 unsigned int width,
223 unsigned int height) 224 unsigned int height)
224{ 225{
225 unsigned int size[2]; 226 unsigned int size[2];
226 227
@@ -229,24 +230,24 @@ ecore_x_netwm_desk_size_set(Ecore_X_Window root,
229 size[1] = height; 230 size[1] = height;
230 ecore_x_window_prop_card32_set(root, ECORE_X_ATOM_NET_DESKTOP_GEOMETRY, size, 231 ecore_x_window_prop_card32_set(root, ECORE_X_ATOM_NET_DESKTOP_GEOMETRY, size,
231 2); 232 2);
232} /* ecore_x_netwm_desk_size_set */ 233}
233 234
234EAPI void 235EAPI void
235ecore_x_netwm_desk_viewports_set(Ecore_X_Window root, 236ecore_x_netwm_desk_viewports_set(Ecore_X_Window root,
236 unsigned int *origins, 237 unsigned int *origins,
237 unsigned int n_desks) 238 unsigned int n_desks)
238{ 239{
239 LOGFN(__FILE__, __LINE__, __FUNCTION__); 240 LOGFN(__FILE__, __LINE__, __FUNCTION__);
240 ecore_x_window_prop_card32_set(root, ECORE_X_ATOM_NET_DESKTOP_VIEWPORT, 241 ecore_x_window_prop_card32_set(root, ECORE_X_ATOM_NET_DESKTOP_VIEWPORT,
241 origins, 2 * n_desks); 242 origins, 2 * n_desks);
242} /* ecore_x_netwm_desk_viewports_set */ 243}
243 244
244EAPI void 245EAPI void
245ecore_x_netwm_desk_layout_set(Ecore_X_Window root, 246ecore_x_netwm_desk_layout_set(Ecore_X_Window root,
246 int orientation, 247 int orientation,
247 int columns, 248 int columns,
248 int rows, 249 int rows,
249 int starting_corner) 250 int starting_corner)
250{ 251{
251 unsigned int layout[4]; 252 unsigned int layout[4];
252 253
@@ -257,26 +258,26 @@ ecore_x_netwm_desk_layout_set(Ecore_X_Window root,
257 layout[3] = starting_corner; 258 layout[3] = starting_corner;
258 ecore_x_window_prop_card32_set(root, ECORE_X_ATOM_NET_DESKTOP_LAYOUT, 259 ecore_x_window_prop_card32_set(root, ECORE_X_ATOM_NET_DESKTOP_LAYOUT,
259 layout, 4); 260 layout, 4);
260} /* ecore_x_netwm_desk_layout_set */ 261}
261 262
262EAPI void 263EAPI void
263ecore_x_netwm_desk_workareas_set(Ecore_X_Window root, 264ecore_x_netwm_desk_workareas_set(Ecore_X_Window root,
264 unsigned int *areas, 265 unsigned int *areas,
265 unsigned int n_desks) 266 unsigned int n_desks)
266{ 267{
267 LOGFN(__FILE__, __LINE__, __FUNCTION__); 268 LOGFN(__FILE__, __LINE__, __FUNCTION__);
268 ecore_x_window_prop_card32_set(root, ECORE_X_ATOM_NET_WORKAREA, areas, 269 ecore_x_window_prop_card32_set(root, ECORE_X_ATOM_NET_WORKAREA, areas,
269 4 * n_desks); 270 4 * n_desks);
270} /* ecore_x_netwm_desk_workareas_set */ 271}
271 272
272EAPI unsigned int * 273EAPI unsigned int *
273ecore_x_netwm_desk_workareas_get(Ecore_X_Window root, unsigned int *n_desks) 274ecore_x_netwm_desk_workareas_get(Ecore_X_Window root, unsigned int *n_desks)
274{ 275{
275 int ret; 276 int ret;
276 unsigned int *areas = NULL; 277 unsigned int *areas = NULL;
277 278
278 if (!root) root = DefaultRootWindow(_ecore_x_disp); 279 if (!root) root = DefaultRootWindow(_ecore_x_disp);
279 280
280 ret = ecore_x_window_prop_card32_list_get(root, ECORE_X_ATOM_NET_WORKAREA, 281 ret = ecore_x_window_prop_card32_list_get(root, ECORE_X_ATOM_NET_WORKAREA,
281 &areas); 282 &areas);
282 if (!areas) 283 if (!areas)
@@ -290,16 +291,16 @@ ecore_x_netwm_desk_workareas_get(Ecore_X_Window root, unsigned int *n_desks)
290 291
291EAPI void 292EAPI void
292ecore_x_netwm_desk_current_set(Ecore_X_Window root, 293ecore_x_netwm_desk_current_set(Ecore_X_Window root,
293 unsigned int desk) 294 unsigned int desk)
294{ 295{
295 LOGFN(__FILE__, __LINE__, __FUNCTION__); 296 LOGFN(__FILE__, __LINE__, __FUNCTION__);
296 ecore_x_window_prop_card32_set(root, ECORE_X_ATOM_NET_CURRENT_DESKTOP, &desk, 297 ecore_x_window_prop_card32_set(root, ECORE_X_ATOM_NET_CURRENT_DESKTOP, &desk,
297 1); 298 1);
298} /* ecore_x_netwm_desk_current_set */ 299}
299 300
300EAPI void 301EAPI void
301ecore_x_netwm_showing_desktop_set(Ecore_X_Window root, 302ecore_x_netwm_showing_desktop_set(Ecore_X_Window root,
302 Eina_Bool on) 303 Eina_Bool on)
303{ 304{
304 unsigned int val; 305 unsigned int val;
305 306
@@ -307,7 +308,7 @@ ecore_x_netwm_showing_desktop_set(Ecore_X_Window root,
307 val = (on) ? 1 : 0; 308 val = (on) ? 1 : 0;
308 ecore_x_window_prop_card32_set(root, ECORE_X_ATOM_NET_SHOWING_DESKTOP, &val, 309 ecore_x_window_prop_card32_set(root, ECORE_X_ATOM_NET_SHOWING_DESKTOP, &val,
309 1); 310 1);
310} /* ecore_x_netwm_showing_desktop_set */ 311}
311 312
312/* 313/*
313 * Client status 314 * Client status
@@ -315,25 +316,25 @@ ecore_x_netwm_showing_desktop_set(Ecore_X_Window root,
315 316
316/* Mapping order */ 317/* Mapping order */
317EAPI void 318EAPI void
318ecore_x_netwm_client_list_set(Ecore_X_Window root, 319ecore_x_netwm_client_list_set(Ecore_X_Window root,
319 Ecore_X_Window *p_clients, 320 Ecore_X_Window *p_clients,
320 unsigned int n_clients) 321 unsigned int n_clients)
321{ 322{
322 LOGFN(__FILE__, __LINE__, __FUNCTION__); 323 LOGFN(__FILE__, __LINE__, __FUNCTION__);
323 ecore_x_window_prop_window_set(root, ECORE_X_ATOM_NET_CLIENT_LIST, 324 ecore_x_window_prop_window_set(root, ECORE_X_ATOM_NET_CLIENT_LIST,
324 p_clients, n_clients); 325 p_clients, n_clients);
325} /* ecore_x_netwm_client_list_set */ 326}
326 327
327/* Stacking order */ 328/* Stacking order */
328EAPI void 329EAPI void
329ecore_x_netwm_client_list_stacking_set(Ecore_X_Window root, 330ecore_x_netwm_client_list_stacking_set(Ecore_X_Window root,
330 Ecore_X_Window *p_clients, 331 Ecore_X_Window *p_clients,
331 unsigned int n_clients) 332 unsigned int n_clients)
332{ 333{
333 LOGFN(__FILE__, __LINE__, __FUNCTION__); 334 LOGFN(__FILE__, __LINE__, __FUNCTION__);
334 ecore_x_window_prop_window_set(root, ECORE_X_ATOM_NET_CLIENT_LIST_STACKING, 335 ecore_x_window_prop_window_set(root, ECORE_X_ATOM_NET_CLIENT_LIST_STACKING,
335 p_clients, n_clients); 336 p_clients, n_clients);
336} /* ecore_x_netwm_client_list_stacking_set */ 337}
337 338
338EAPI void 339EAPI void
339ecore_x_netwm_client_active_set(Ecore_X_Window root, 340ecore_x_netwm_client_active_set(Ecore_X_Window root,
@@ -342,12 +343,12 @@ ecore_x_netwm_client_active_set(Ecore_X_Window root,
342 LOGFN(__FILE__, __LINE__, __FUNCTION__); 343 LOGFN(__FILE__, __LINE__, __FUNCTION__);
343 ecore_x_window_prop_window_set(root, ECORE_X_ATOM_NET_ACTIVE_WINDOW, 344 ecore_x_window_prop_window_set(root, ECORE_X_ATOM_NET_ACTIVE_WINDOW,
344 &win, 1); 345 &win, 1);
345} /* ecore_x_netwm_client_active_set */ 346}
346 347
347EAPI void 348EAPI void
348ecore_x_netwm_client_active_request(Ecore_X_Window root, 349ecore_x_netwm_client_active_request(Ecore_X_Window root,
349 Ecore_X_Window win, 350 Ecore_X_Window win,
350 int type, 351 int type,
351 Ecore_X_Window current_win) 352 Ecore_X_Window current_win)
352{ 353{
353 XEvent xev; 354 XEvent xev;
@@ -369,19 +370,19 @@ ecore_x_netwm_client_active_request(Ecore_X_Window root,
369 370
370 XSendEvent(_ecore_x_disp, root, False, 371 XSendEvent(_ecore_x_disp, root, False,
371 SubstructureRedirectMask | SubstructureNotifyMask, &xev); 372 SubstructureRedirectMask | SubstructureNotifyMask, &xev);
372} /* ecore_x_netwm_client_active_request */ 373}
373 374
374EAPI void 375EAPI void
375ecore_x_netwm_name_set(Ecore_X_Window win, 376ecore_x_netwm_name_set(Ecore_X_Window win,
376 const char *name) 377 const char *name)
377{ 378{
378 LOGFN(__FILE__, __LINE__, __FUNCTION__); 379 LOGFN(__FILE__, __LINE__, __FUNCTION__);
379 _ecore_x_window_prop_string_utf8_set(win, ECORE_X_ATOM_NET_WM_NAME, name); 380 _ecore_x_window_prop_string_utf8_set(win, ECORE_X_ATOM_NET_WM_NAME, name);
380} /* ecore_x_netwm_name_set */ 381}
381 382
382EAPI int 383EAPI int
383ecore_x_netwm_name_get(Ecore_X_Window win, 384ecore_x_netwm_name_get(Ecore_X_Window win,
384 char **name) 385 char **name)
385{ 386{
386 LOGFN(__FILE__, __LINE__, __FUNCTION__); 387 LOGFN(__FILE__, __LINE__, __FUNCTION__);
387 if (name) 388 if (name)
@@ -389,19 +390,19 @@ ecore_x_netwm_name_get(Ecore_X_Window win,
389 ECORE_X_ATOM_NET_WM_NAME); 390 ECORE_X_ATOM_NET_WM_NAME);
390 391
391 return 1; 392 return 1;
392} /* ecore_x_netwm_name_get */ 393}
393 394
394EAPI void 395EAPI void
395ecore_x_netwm_startup_id_set(Ecore_X_Window win, 396ecore_x_netwm_startup_id_set(Ecore_X_Window win,
396 const char *id) 397 const char *id)
397{ 398{
398 LOGFN(__FILE__, __LINE__, __FUNCTION__); 399 LOGFN(__FILE__, __LINE__, __FUNCTION__);
399 _ecore_x_window_prop_string_utf8_set(win, ECORE_X_ATOM_NET_STARTUP_ID, id); 400 _ecore_x_window_prop_string_utf8_set(win, ECORE_X_ATOM_NET_STARTUP_ID, id);
400} /* ecore_x_netwm_startup_id_set */ 401}
401 402
402EAPI int 403EAPI int
403ecore_x_netwm_startup_id_get(Ecore_X_Window win, 404ecore_x_netwm_startup_id_get(Ecore_X_Window win,
404 char **id) 405 char **id)
405{ 406{
406 LOGFN(__FILE__, __LINE__, __FUNCTION__); 407 LOGFN(__FILE__, __LINE__, __FUNCTION__);
407 if (id) 408 if (id)
@@ -409,20 +410,20 @@ ecore_x_netwm_startup_id_get(Ecore_X_Window win,
409 ECORE_X_ATOM_NET_STARTUP_ID); 410 ECORE_X_ATOM_NET_STARTUP_ID);
410 411
411 return 1; 412 return 1;
412} /* ecore_x_netwm_startup_id_get */ 413}
413 414
414EAPI void 415EAPI void
415ecore_x_netwm_visible_name_set(Ecore_X_Window win, 416ecore_x_netwm_visible_name_set(Ecore_X_Window win,
416 const char *name) 417 const char *name)
417{ 418{
418 LOGFN(__FILE__, __LINE__, __FUNCTION__); 419 LOGFN(__FILE__, __LINE__, __FUNCTION__);
419 _ecore_x_window_prop_string_utf8_set(win, ECORE_X_ATOM_NET_WM_VISIBLE_NAME, 420 _ecore_x_window_prop_string_utf8_set(win, ECORE_X_ATOM_NET_WM_VISIBLE_NAME,
420 name); 421 name);
421} /* ecore_x_netwm_visible_name_set */ 422}
422 423
423EAPI int 424EAPI int
424ecore_x_netwm_visible_name_get(Ecore_X_Window win, 425ecore_x_netwm_visible_name_get(Ecore_X_Window win,
425 char **name) 426 char **name)
426{ 427{
427 LOGFN(__FILE__, __LINE__, __FUNCTION__); 428 LOGFN(__FILE__, __LINE__, __FUNCTION__);
428 if (name) 429 if (name)
@@ -431,20 +432,20 @@ ecore_x_netwm_visible_name_get(Ecore_X_Window win,
431 ECORE_X_ATOM_NET_WM_VISIBLE_NAME); 432 ECORE_X_ATOM_NET_WM_VISIBLE_NAME);
432 433
433 return 1; 434 return 1;
434} /* ecore_x_netwm_visible_name_get */ 435}
435 436
436EAPI void 437EAPI void
437ecore_x_netwm_icon_name_set(Ecore_X_Window win, 438ecore_x_netwm_icon_name_set(Ecore_X_Window win,
438 const char *name) 439 const char *name)
439{ 440{
440 LOGFN(__FILE__, __LINE__, __FUNCTION__); 441 LOGFN(__FILE__, __LINE__, __FUNCTION__);
441 _ecore_x_window_prop_string_utf8_set(win, ECORE_X_ATOM_NET_WM_ICON_NAME, 442 _ecore_x_window_prop_string_utf8_set(win, ECORE_X_ATOM_NET_WM_ICON_NAME,
442 name); 443 name);
443} /* ecore_x_netwm_icon_name_set */ 444}
444 445
445EAPI int 446EAPI int
446ecore_x_netwm_icon_name_get(Ecore_X_Window win, 447ecore_x_netwm_icon_name_get(Ecore_X_Window win,
447 char **name) 448 char **name)
448{ 449{
449 LOGFN(__FILE__, __LINE__, __FUNCTION__); 450 LOGFN(__FILE__, __LINE__, __FUNCTION__);
450 if (name) 451 if (name)
@@ -453,21 +454,21 @@ ecore_x_netwm_icon_name_get(Ecore_X_Window win,
453 ECORE_X_ATOM_NET_WM_ICON_NAME); 454 ECORE_X_ATOM_NET_WM_ICON_NAME);
454 455
455 return 1; 456 return 1;
456} /* ecore_x_netwm_icon_name_get */ 457}
457 458
458EAPI void 459EAPI void
459ecore_x_netwm_visible_icon_name_set(Ecore_X_Window win, 460ecore_x_netwm_visible_icon_name_set(Ecore_X_Window win,
460 const char *name) 461 const char *name)
461{ 462{
462 LOGFN(__FILE__, __LINE__, __FUNCTION__); 463 LOGFN(__FILE__, __LINE__, __FUNCTION__);
463 _ecore_x_window_prop_string_utf8_set(win, 464 _ecore_x_window_prop_string_utf8_set(win,
464 ECORE_X_ATOM_NET_WM_VISIBLE_ICON_NAME, 465 ECORE_X_ATOM_NET_WM_VISIBLE_ICON_NAME,
465 name); 466 name);
466} /* ecore_x_netwm_visible_icon_name_set */ 467}
467 468
468EAPI int 469EAPI int
469ecore_x_netwm_visible_icon_name_get(Ecore_X_Window win, 470ecore_x_netwm_visible_icon_name_get(Ecore_X_Window win,
470 char **name) 471 char **name)
471{ 472{
472 LOGFN(__FILE__, __LINE__, __FUNCTION__); 473 LOGFN(__FILE__, __LINE__, __FUNCTION__);
473 if (name) 474 if (name)
@@ -476,19 +477,19 @@ ecore_x_netwm_visible_icon_name_get(Ecore_X_Window win,
476 ECORE_X_ATOM_NET_WM_VISIBLE_ICON_NAME); 477 ECORE_X_ATOM_NET_WM_VISIBLE_ICON_NAME);
477 478
478 return 1; 479 return 1;
479} /* ecore_x_netwm_visible_icon_name_get */ 480}
480 481
481EAPI void 482EAPI void
482ecore_x_netwm_desktop_set(Ecore_X_Window win, 483ecore_x_netwm_desktop_set(Ecore_X_Window win,
483 unsigned int desk) 484 unsigned int desk)
484{ 485{
485 LOGFN(__FILE__, __LINE__, __FUNCTION__); 486 LOGFN(__FILE__, __LINE__, __FUNCTION__);
486 ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_NET_WM_DESKTOP, &desk, 1); 487 ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_NET_WM_DESKTOP, &desk, 1);
487} /* ecore_x_netwm_desktop_set */ 488}
488 489
489EAPI Eina_Bool 490EAPI Eina_Bool
490ecore_x_netwm_desktop_get(Ecore_X_Window win, 491ecore_x_netwm_desktop_get(Ecore_X_Window win,
491 unsigned int *desk) 492 unsigned int *desk)
492{ 493{
493 int ret; 494 int ret;
494 unsigned int tmp; 495 unsigned int tmp;
@@ -501,17 +502,17 @@ ecore_x_netwm_desktop_get(Ecore_X_Window win,
501 *desk = tmp; 502 *desk = tmp;
502 503
503 return ret == 1 ? EINA_TRUE : EINA_FALSE; 504 return ret == 1 ? EINA_TRUE : EINA_FALSE;
504} /* ecore_x_netwm_desktop_get */ 505}
505 506
506/* 507/*
507 * _NET_WM_STRUT is deprecated 508 * _NET_WM_STRUT is deprecated
508 */ 509 */
509EAPI void 510EAPI void
510ecore_x_netwm_strut_set(Ecore_X_Window win, 511ecore_x_netwm_strut_set(Ecore_X_Window win,
511 int left, 512 int left,
512 int right, 513 int right,
513 int top, 514 int top,
514 int bottom) 515 int bottom)
515{ 516{
516 unsigned int strut[4]; 517 unsigned int strut[4];
517 518
@@ -521,17 +522,17 @@ ecore_x_netwm_strut_set(Ecore_X_Window win,
521 strut[2] = top; 522 strut[2] = top;
522 strut[3] = bottom; 523 strut[3] = bottom;
523 ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_NET_WM_STRUT, strut, 4); 524 ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_NET_WM_STRUT, strut, 4);
524} /* ecore_x_netwm_strut_set */ 525}
525 526
526/* 527/*
527 * _NET_WM_STRUT is deprecated 528 * _NET_WM_STRUT is deprecated
528 */ 529 */
529EAPI Eina_Bool 530EAPI Eina_Bool
530ecore_x_netwm_strut_get(Ecore_X_Window win, 531ecore_x_netwm_strut_get(Ecore_X_Window win,
531 int *left, 532 int *left,
532 int *right, 533 int *right,
533 int *top, 534 int *top,
534 int *bottom) 535 int *bottom)
535{ 536{
536 int ret = 0; 537 int ret = 0;
537 unsigned int strut[4]; 538 unsigned int strut[4];
@@ -557,22 +558,22 @@ ecore_x_netwm_strut_get(Ecore_X_Window win,
557 *bottom = strut[3]; 558 *bottom = strut[3];
558 559
559 return EINA_TRUE; 560 return EINA_TRUE;
560} /* ecore_x_netwm_strut_get */ 561}
561 562
562EAPI void 563EAPI void
563ecore_x_netwm_strut_partial_set(Ecore_X_Window win, 564ecore_x_netwm_strut_partial_set(Ecore_X_Window win,
564 int left, 565 int left,
565 int right, 566 int right,
566 int top, 567 int top,
567 int bottom, 568 int bottom,
568 int left_start_y, 569 int left_start_y,
569 int left_end_y, 570 int left_end_y,
570 int right_start_y, 571 int right_start_y,
571 int right_end_y, 572 int right_end_y,
572 int top_start_x, 573 int top_start_x,
573 int top_end_x, 574 int top_end_x,
574 int bottom_start_x, 575 int bottom_start_x,
575 int bottom_end_x) 576 int bottom_end_x)
576{ 577{
577 unsigned int strut[12]; 578 unsigned int strut[12];
578 579
@@ -593,22 +594,22 @@ ecore_x_netwm_strut_partial_set(Ecore_X_Window win,
593 ECORE_X_ATOM_NET_WM_STRUT_PARTIAL, 594 ECORE_X_ATOM_NET_WM_STRUT_PARTIAL,
594 strut, 595 strut,
595 12); 596 12);
596} /* ecore_x_netwm_strut_partial_set */ 597}
597 598
598EAPI Eina_Bool 599EAPI Eina_Bool
599ecore_x_netwm_strut_partial_get(Ecore_X_Window win, 600ecore_x_netwm_strut_partial_get(Ecore_X_Window win,
600 int *left, 601 int *left,
601 int *right, 602 int *right,
602 int *top, 603 int *top,
603 int *bottom, 604 int *bottom,
604 int *left_start_y, 605 int *left_start_y,
605 int *left_end_y, 606 int *left_end_y,
606 int *right_start_y, 607 int *right_start_y,
607 int *right_end_y, 608 int *right_end_y,
608 int *top_start_x, 609 int *top_start_x,
609 int *top_end_x, 610 int *top_end_x,
610 int *bottom_start_x, 611 int *bottom_start_x,
611 int *bottom_end_x) 612 int *bottom_end_x)
612{ 613{
613 int ret = 0; 614 int ret = 0;
614 unsigned int strut[12]; 615 unsigned int strut[12];
@@ -658,12 +659,12 @@ ecore_x_netwm_strut_partial_get(Ecore_X_Window win,
658 *bottom_end_x = strut[11]; 659 *bottom_end_x = strut[11];
659 660
660 return EINA_TRUE; 661 return EINA_TRUE;
661} /* ecore_x_netwm_strut_partial_get */ 662}
662 663
663EAPI Eina_Bool 664EAPI Eina_Bool
664ecore_x_netwm_icons_get(Ecore_X_Window win, 665ecore_x_netwm_icons_get(Ecore_X_Window win,
665 Ecore_X_Icon **icon, 666 Ecore_X_Icon **icon,
666 int *num) 667 int *num)
667{ 668{
668 unsigned int *data, *p; 669 unsigned int *data, *p;
669 unsigned int *src; 670 unsigned int *src;
@@ -767,14 +768,14 @@ ecore_x_netwm_icons_get(Ecore_X_Window win,
767 free(data); 768 free(data);
768 769
769 return EINA_TRUE; 770 return EINA_TRUE;
770} /* ecore_x_netwm_icons_get */ 771}
771 772
772EAPI void 773EAPI void
773ecore_x_netwm_icon_geometry_set(Ecore_X_Window win, 774ecore_x_netwm_icon_geometry_set(Ecore_X_Window win,
774 int x, 775 int x,
775 int y, 776 int y,
776 int width, 777 int width,
777 int height) 778 int height)
778{ 779{
779 unsigned int geometry[4]; 780 unsigned int geometry[4];
780 781
@@ -787,14 +788,14 @@ ecore_x_netwm_icon_geometry_set(Ecore_X_Window win,
787 ECORE_X_ATOM_NET_WM_ICON_GEOMETRY, 788 ECORE_X_ATOM_NET_WM_ICON_GEOMETRY,
788 geometry, 789 geometry,
789 4); 790 4);
790} /* ecore_x_netwm_icon_geometry_set */ 791}
791 792
792EAPI Eina_Bool 793EAPI Eina_Bool
793ecore_x_netwm_icon_geometry_get(Ecore_X_Window win, 794ecore_x_netwm_icon_geometry_get(Ecore_X_Window win,
794 int *x, 795 int *x,
795 int *y, 796 int *y,
796 int *width, 797 int *width,
797 int *height) 798 int *height)
798{ 799{
799 int ret; 800 int ret;
800 unsigned int geometry[4]; 801 unsigned int geometry[4];
@@ -820,11 +821,11 @@ ecore_x_netwm_icon_geometry_get(Ecore_X_Window win,
820 *height = geometry[3]; 821 *height = geometry[3];
821 822
822 return EINA_TRUE; 823 return EINA_TRUE;
823} /* ecore_x_netwm_icon_geometry_get */ 824}
824 825
825EAPI void 826EAPI void
826ecore_x_netwm_pid_set(Ecore_X_Window win, 827ecore_x_netwm_pid_set(Ecore_X_Window win,
827 int pid) 828 int pid)
828{ 829{
829 unsigned int tmp; 830 unsigned int tmp;
830 831
@@ -832,11 +833,11 @@ ecore_x_netwm_pid_set(Ecore_X_Window win,
832 tmp = pid; 833 tmp = pid;
833 ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_NET_WM_PID, 834 ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_NET_WM_PID,
834 &tmp, 1); 835 &tmp, 1);
835} /* ecore_x_netwm_pid_set */ 836}
836 837
837EAPI Eina_Bool 838EAPI Eina_Bool
838ecore_x_netwm_pid_get(Ecore_X_Window win, 839ecore_x_netwm_pid_get(Ecore_X_Window win,
839 int *pid) 840 int *pid)
840{ 841{
841 int ret; 842 int ret;
842 unsigned int tmp; 843 unsigned int tmp;
@@ -848,7 +849,7 @@ ecore_x_netwm_pid_get(Ecore_X_Window win,
848 *pid = tmp; 849 *pid = tmp;
849 850
850 return ret == 1 ? EINA_TRUE : EINA_FALSE; 851 return ret == 1 ? EINA_TRUE : EINA_FALSE;
851} /* ecore_x_netwm_pid_get */ 852}
852 853
853EAPI void 854EAPI void
854ecore_x_netwm_handled_icons_set(Ecore_X_Window win) 855ecore_x_netwm_handled_icons_set(Ecore_X_Window win)
@@ -856,7 +857,7 @@ ecore_x_netwm_handled_icons_set(Ecore_X_Window win)
856 LOGFN(__FILE__, __LINE__, __FUNCTION__); 857 LOGFN(__FILE__, __LINE__, __FUNCTION__);
857 ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_NET_WM_HANDLED_ICONS, 858 ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_NET_WM_HANDLED_ICONS,
858 NULL, 0); 859 NULL, 0);
859} /* ecore_x_netwm_handled_icons_set */ 860}
860 861
861EAPI Eina_Bool 862EAPI Eina_Bool
862ecore_x_netwm_handled_icons_get(Ecore_X_Window win) 863ecore_x_netwm_handled_icons_get(Ecore_X_Window win)
@@ -866,20 +867,20 @@ ecore_x_netwm_handled_icons_get(Ecore_X_Window win)
866 ret = ecore_x_window_prop_card32_get(win, ECORE_X_ATOM_NET_WM_HANDLED_ICONS, 867 ret = ecore_x_window_prop_card32_get(win, ECORE_X_ATOM_NET_WM_HANDLED_ICONS,
867 NULL, 0); 868 NULL, 0);
868 return ret == 0 ? EINA_TRUE : EINA_FALSE; 869 return ret == 0 ? EINA_TRUE : EINA_FALSE;
869} /* ecore_x_netwm_handled_icons_get */ 870}
870 871
871EAPI void 872EAPI void
872ecore_x_netwm_user_time_set(Ecore_X_Window win, 873ecore_x_netwm_user_time_set(Ecore_X_Window win,
873 unsigned int tim) 874 unsigned int tim)
874{ 875{
875 LOGFN(__FILE__, __LINE__, __FUNCTION__); 876 LOGFN(__FILE__, __LINE__, __FUNCTION__);
876 ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_NET_WM_USER_TIME, 877 ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_NET_WM_USER_TIME,
877 &tim, 1); 878 &tim, 1);
878} /* ecore_x_netwm_user_time_set */ 879}
879 880
880EAPI Eina_Bool 881EAPI Eina_Bool
881ecore_x_netwm_user_time_get(Ecore_X_Window win, 882ecore_x_netwm_user_time_get(Ecore_X_Window win,
882 unsigned int *tim) 883 unsigned int *tim)
883{ 884{
884 int ret; 885 int ret;
885 unsigned int tmp; 886 unsigned int tmp;
@@ -891,7 +892,7 @@ ecore_x_netwm_user_time_get(Ecore_X_Window win,
891 *tim = tmp; 892 *tim = tmp;
892 893
893 return ret == 1 ? EINA_TRUE : EINA_FALSE; 894 return ret == 1 ? EINA_TRUE : EINA_FALSE;
894} /* ecore_x_netwm_user_time_get */ 895}
895 896
896Ecore_X_Window_State 897Ecore_X_Window_State
897_ecore_x_netwm_state_get(Ecore_X_Atom a) 898_ecore_x_netwm_state_get(Ecore_X_Atom a)
@@ -922,12 +923,12 @@ _ecore_x_netwm_state_get(Ecore_X_Atom a)
922 return ECORE_X_WINDOW_STATE_DEMANDS_ATTENTION; 923 return ECORE_X_WINDOW_STATE_DEMANDS_ATTENTION;
923 else 924 else
924 return ECORE_X_WINDOW_STATE_UNKNOWN; 925 return ECORE_X_WINDOW_STATE_UNKNOWN;
925} /* _ecore_x_netwm_state_get */ 926}
926 927
927static Ecore_X_Atom 928static Ecore_X_Atom
928_ecore_x_netwm_state_atom_get(Ecore_X_Window_State s) 929_ecore_x_netwm_state_atom_get(Ecore_X_Window_State s)
929{ 930{
930 switch(s) 931 switch (s)
931 { 932 {
932 case ECORE_X_WINDOW_STATE_MODAL: 933 case ECORE_X_WINDOW_STATE_MODAL:
933 return ECORE_X_ATOM_NET_WM_STATE_MODAL; 934 return ECORE_X_ATOM_NET_WM_STATE_MODAL;
@@ -967,13 +968,13 @@ _ecore_x_netwm_state_atom_get(Ecore_X_Window_State s)
967 968
968 default: 969 default:
969 return 0; 970 return 0;
970 } /* switch */ 971 }
971} /* _ecore_x_netwm_state_atom_get */ 972}
972 973
973EAPI void 974EAPI void
974ecore_x_netwm_window_state_set(Ecore_X_Window win, 975ecore_x_netwm_window_state_set(Ecore_X_Window win,
975 Ecore_X_Window_State *state, 976 Ecore_X_Window_State *state,
976 unsigned int num) 977 unsigned int num)
977{ 978{
978 Ecore_X_Atom *set; 979 Ecore_X_Atom *set;
979 unsigned int i; 980 unsigned int i;
@@ -995,12 +996,12 @@ ecore_x_netwm_window_state_set(Ecore_X_Window win,
995 ecore_x_window_prop_atom_set(win, ECORE_X_ATOM_NET_WM_STATE, set, num); 996 ecore_x_window_prop_atom_set(win, ECORE_X_ATOM_NET_WM_STATE, set, num);
996 997
997 free(set); 998 free(set);
998} /* ecore_x_netwm_window_state_set */ 999}
999 1000
1000EAPI Eina_Bool 1001EAPI Eina_Bool
1001ecore_x_netwm_window_state_get(Ecore_X_Window win, 1002ecore_x_netwm_window_state_get(Ecore_X_Window win,
1002 Ecore_X_Window_State **state, 1003 Ecore_X_Window_State **state,
1003 unsigned int *num) 1004 unsigned int *num)
1004{ 1005{
1005 int num_ret, i; 1006 int num_ret, i;
1006 Ecore_X_Atom *atoms; 1007 Ecore_X_Atom *atoms;
@@ -1030,7 +1031,7 @@ ecore_x_netwm_window_state_get(Ecore_X_Window win,
1030 1031
1031 free(atoms); 1032 free(atoms);
1032 return EINA_TRUE; 1033 return EINA_TRUE;
1033} /* ecore_x_netwm_window_state_get */ 1034}
1034 1035
1035static Ecore_X_Window_Type 1036static Ecore_X_Window_Type
1036_ecore_x_netwm_window_type_type_get(Ecore_X_Atom atom) 1037_ecore_x_netwm_window_type_type_get(Ecore_X_Atom atom)
@@ -1065,7 +1066,7 @@ _ecore_x_netwm_window_type_type_get(Ecore_X_Atom atom)
1065 return ECORE_X_WINDOW_TYPE_DND; 1066 return ECORE_X_WINDOW_TYPE_DND;
1066 else 1067 else
1067 return ECORE_X_WINDOW_TYPE_UNKNOWN; 1068 return ECORE_X_WINDOW_TYPE_UNKNOWN;
1068} /* _ecore_x_netwm_window_type_type_get */ 1069}
1069 1070
1070static Ecore_X_Atom 1071static Ecore_X_Atom
1071_ecore_x_netwm_window_type_atom_get(Ecore_X_Window_Type type) 1072_ecore_x_netwm_window_type_atom_get(Ecore_X_Window_Type type)
@@ -1116,15 +1117,15 @@ _ecore_x_netwm_window_type_atom_get(Ecore_X_Window_Type type)
1116 1117
1117 default: 1118 default:
1118 return 0; 1119 return 0;
1119 } /* switch */ 1120 }
1120} /* _ecore_x_netwm_window_type_atom_get */ 1121}
1121 1122
1122/* 1123/*
1123 * FIXME: We should set WM_TRANSIENT_FOR if type is ECORE_X_WINDOW_TYPE_TOOLBAR 1124 * FIXME: We should set WM_TRANSIENT_FOR if type is ECORE_X_WINDOW_TYPE_TOOLBAR
1124 * , ECORE_X_WINDOW_TYPE_MENU or ECORE_X_WINDOW_TYPE_DIALOG 1125 * , ECORE_X_WINDOW_TYPE_MENU or ECORE_X_WINDOW_TYPE_DIALOG
1125 */ 1126 */
1126EAPI void 1127EAPI void
1127ecore_x_netwm_window_type_set(Ecore_X_Window win, 1128ecore_x_netwm_window_type_set(Ecore_X_Window win,
1128 Ecore_X_Window_Type type) 1129 Ecore_X_Window_Type type)
1129{ 1130{
1130 Ecore_X_Atom atom; 1131 Ecore_X_Atom atom;
@@ -1133,11 +1134,11 @@ ecore_x_netwm_window_type_set(Ecore_X_Window win,
1133 atom = _ecore_x_netwm_window_type_atom_get(type); 1134 atom = _ecore_x_netwm_window_type_atom_get(type);
1134 ecore_x_window_prop_atom_set(win, ECORE_X_ATOM_NET_WM_WINDOW_TYPE, 1135 ecore_x_window_prop_atom_set(win, ECORE_X_ATOM_NET_WM_WINDOW_TYPE,
1135 &atom, 1); 1136 &atom, 1);
1136} /* ecore_x_netwm_window_type_set */ 1137}
1137 1138
1138/* FIXME: Maybe return 0 on some conditions? */ 1139/* FIXME: Maybe return 0 on some conditions? */
1139EAPI Eina_Bool 1140EAPI Eina_Bool
1140ecore_x_netwm_window_type_get(Ecore_X_Window win, 1141ecore_x_netwm_window_type_get(Ecore_X_Window win,
1141 Ecore_X_Window_Type *type) 1142 Ecore_X_Window_Type *type)
1142{ 1143{
1143 int num; 1144 int num;
@@ -1158,10 +1159,10 @@ ecore_x_netwm_window_type_get(Ecore_X_Window win,
1158 return EINA_TRUE; 1159 return EINA_TRUE;
1159 1160
1160 return EINA_FALSE; 1161 return EINA_FALSE;
1161} /* ecore_x_netwm_window_type_get */ 1162}
1162 1163
1163EAPI int 1164EAPI int
1164ecore_x_netwm_window_types_get(Ecore_X_Window win, 1165ecore_x_netwm_window_types_get(Ecore_X_Window win,
1165 Ecore_X_Window_Type **types) 1166 Ecore_X_Window_Type **types)
1166{ 1167{
1167 int num, i; 1168 int num, i;
@@ -1196,7 +1197,7 @@ ecore_x_netwm_window_types_get(Ecore_X_Window win,
1196 free(atoms2); 1197 free(atoms2);
1197 1198
1198 return num; 1199 return num;
1199} /* ecore_x_netwm_window_types_get */ 1200}
1200 1201
1201static Ecore_X_Atom 1202static Ecore_X_Atom
1202_ecore_x_netwm_action_atom_get(Ecore_X_Action action) 1203_ecore_x_netwm_action_atom_get(Ecore_X_Action action)
@@ -1241,8 +1242,8 @@ _ecore_x_netwm_action_atom_get(Ecore_X_Action action)
1241 1242
1242 default: 1243 default:
1243 return 0; 1244 return 0;
1244 } /* switch */ 1245 }
1245} /* _ecore_x_netwm_action_atom_get */ 1246}
1246 1247
1247/* FIXME: Get complete list */ 1248/* FIXME: Get complete list */
1248EAPI Eina_Bool 1249EAPI Eina_Bool
@@ -1272,13 +1273,13 @@ ecore_x_netwm_allowed_action_isset(Ecore_X_Window win,
1272 1273
1273 free(atoms); 1274 free(atoms);
1274 return ret; 1275 return ret;
1275} /* ecore_x_netwm_allowed_action_isset */ 1276}
1276 1277
1277/* FIXME: Set complete list */ 1278/* FIXME: Set complete list */
1278EAPI void 1279EAPI void
1279ecore_x_netwm_allowed_action_set(Ecore_X_Window win, 1280ecore_x_netwm_allowed_action_set(Ecore_X_Window win,
1280 Ecore_X_Action *action, 1281 Ecore_X_Action *action,
1281 unsigned int num) 1282 unsigned int num)
1282{ 1283{
1283 Ecore_X_Atom *set; 1284 Ecore_X_Atom *set;
1284 unsigned int i; 1285 unsigned int i;
@@ -1304,12 +1305,12 @@ ecore_x_netwm_allowed_action_set(Ecore_X_Window win,
1304 num); 1305 num);
1305 1306
1306 free(set); 1307 free(set);
1307} /* ecore_x_netwm_allowed_action_set */ 1308}
1308 1309
1309EAPI Eina_Bool 1310EAPI Eina_Bool
1310ecore_x_netwm_allowed_action_get(Ecore_X_Window win, 1311ecore_x_netwm_allowed_action_get(Ecore_X_Window win,
1311 Ecore_X_Action **action, 1312 Ecore_X_Action **action,
1312 unsigned int *num) 1313 unsigned int *num)
1313{ 1314{
1314 int num_ret, i; 1315 int num_ret, i;
1315 Ecore_X_Atom *atoms; 1316 Ecore_X_Atom *atoms;
@@ -1341,20 +1342,20 @@ ecore_x_netwm_allowed_action_get(Ecore_X_Window win,
1341 1342
1342 free(atoms); 1343 free(atoms);
1343 return EINA_TRUE; 1344 return EINA_TRUE;
1344} /* ecore_x_netwm_allowed_action_get */ 1345}
1345 1346
1346EAPI void 1347EAPI void
1347ecore_x_netwm_opacity_set(Ecore_X_Window win, 1348ecore_x_netwm_opacity_set(Ecore_X_Window win,
1348 unsigned int opacity) 1349 unsigned int opacity)
1349{ 1350{
1350 LOGFN(__FILE__, __LINE__, __FUNCTION__); 1351 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1351 ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_NET_WM_WINDOW_OPACITY, 1352 ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_NET_WM_WINDOW_OPACITY,
1352 &opacity, 1); 1353 &opacity, 1);
1353} /* ecore_x_netwm_opacity_set */ 1354}
1354 1355
1355EAPI Eina_Bool 1356EAPI Eina_Bool
1356ecore_x_netwm_opacity_get(Ecore_X_Window win, 1357ecore_x_netwm_opacity_get(Ecore_X_Window win,
1357 unsigned int *opacity) 1358 unsigned int *opacity)
1358{ 1359{
1359 int ret; 1360 int ret;
1360 unsigned int tmp; 1361 unsigned int tmp;
@@ -1366,14 +1367,14 @@ ecore_x_netwm_opacity_get(Ecore_X_Window win,
1366 *opacity = tmp; 1367 *opacity = tmp;
1367 1368
1368 return ret == 1 ? EINA_TRUE : EINA_FALSE; 1369 return ret == 1 ? EINA_TRUE : EINA_FALSE;
1369} /* ecore_x_netwm_opacity_get */ 1370}
1370 1371
1371EAPI void 1372EAPI void
1372ecore_x_netwm_frame_size_set(Ecore_X_Window win, 1373ecore_x_netwm_frame_size_set(Ecore_X_Window win,
1373 int fl, 1374 int fl,
1374 int fr, 1375 int fr,
1375 int ft, 1376 int ft,
1376 int fb) 1377 int fb)
1377{ 1378{
1378 unsigned int frames[4]; 1379 unsigned int frames[4];
1379 1380
@@ -1386,14 +1387,14 @@ ecore_x_netwm_frame_size_set(Ecore_X_Window win,
1386 ECORE_X_ATOM_NET_FRAME_EXTENTS, 1387 ECORE_X_ATOM_NET_FRAME_EXTENTS,
1387 frames, 1388 frames,
1388 4); 1389 4);
1389} /* ecore_x_netwm_frame_size_set */ 1390}
1390 1391
1391EAPI Eina_Bool 1392EAPI Eina_Bool
1392ecore_x_netwm_frame_size_get(Ecore_X_Window win, 1393ecore_x_netwm_frame_size_get(Ecore_X_Window win,
1393 int *fl, 1394 int *fl,
1394 int *fr, 1395 int *fr,
1395 int *ft, 1396 int *ft,
1396 int *fb) 1397 int *fb)
1397{ 1398{
1398 int ret = 0; 1399 int ret = 0;
1399 unsigned int frames[4]; 1400 unsigned int frames[4];
@@ -1419,10 +1420,10 @@ ecore_x_netwm_frame_size_get(Ecore_X_Window win,
1419 *fb = frames[3]; 1420 *fb = frames[3];
1420 1421
1421 return EINA_TRUE; 1422 return EINA_TRUE;
1422} /* ecore_x_netwm_frame_size_get */ 1423}
1423 1424
1424EAPI Eina_Bool 1425EAPI Eina_Bool
1425ecore_x_netwm_sync_counter_get(Ecore_X_Window win, 1426ecore_x_netwm_sync_counter_get(Ecore_X_Window win,
1426 Ecore_X_Sync_Counter *counter) 1427 Ecore_X_Sync_Counter *counter)
1427{ 1428{
1428 int ret; 1429 int ret;
@@ -1439,7 +1440,7 @@ ecore_x_netwm_sync_counter_get(Ecore_X_Window win,
1439 *counter = tmp; 1440 *counter = tmp;
1440 1441
1441 return ret == 1 ? EINA_TRUE : EINA_FALSE; 1442 return ret == 1 ? EINA_TRUE : EINA_FALSE;
1442} /* ecore_x_netwm_sync_counter_get */ 1443}
1443 1444
1444EAPI void 1445EAPI void
1445ecore_x_netwm_ping_send(Ecore_X_Window win) 1446ecore_x_netwm_ping_send(Ecore_X_Window win)
@@ -1462,11 +1463,11 @@ ecore_x_netwm_ping_send(Ecore_X_Window win)
1462 xev.xclient.data.l[4] = 0; 1463 xev.xclient.data.l[4] = 0;
1463 1464
1464 XSendEvent(_ecore_x_disp, win, False, NoEventMask, &xev); 1465 XSendEvent(_ecore_x_disp, win, False, NoEventMask, &xev);
1465} /* ecore_x_netwm_ping_send */ 1466}
1466 1467
1467EAPI void 1468EAPI void
1468ecore_x_netwm_sync_request_send(Ecore_X_Window win, 1469ecore_x_netwm_sync_request_send(Ecore_X_Window win,
1469 unsigned int serial) 1470 unsigned int serial)
1470{ 1471{
1471 XSyncValue value; 1472 XSyncValue value;
1472 XEvent xev; 1473 XEvent xev;
@@ -1489,14 +1490,14 @@ ecore_x_netwm_sync_request_send(Ecore_X_Window win,
1489 xev.xclient.data.l[4] = 0; 1490 xev.xclient.data.l[4] = 0;
1490 1491
1491 XSendEvent(_ecore_x_disp, win, False, NoEventMask, &xev); 1492 XSendEvent(_ecore_x_disp, win, False, NoEventMask, &xev);
1492} /* ecore_x_netwm_sync_request_send */ 1493}
1493 1494
1494EAPI void 1495EAPI void
1495ecore_x_netwm_state_request_send(Ecore_X_Window win, 1496ecore_x_netwm_state_request_send(Ecore_X_Window win,
1496 Ecore_X_Window root, 1497 Ecore_X_Window root,
1497 Ecore_X_Window_State s1, 1498 Ecore_X_Window_State s1,
1498 Ecore_X_Window_State s2, 1499 Ecore_X_Window_State s2,
1499 Eina_Bool set) 1500 Eina_Bool set)
1500{ 1501{
1501 XEvent xev; 1502 XEvent xev;
1502 1503
@@ -1524,12 +1525,12 @@ ecore_x_netwm_state_request_send(Ecore_X_Window win,
1524 1525
1525 XSendEvent(_ecore_x_disp, root, False, 1526 XSendEvent(_ecore_x_disp, root, False,
1526 SubstructureNotifyMask | SubstructureRedirectMask, &xev); 1527 SubstructureNotifyMask | SubstructureRedirectMask, &xev);
1527} /* ecore_x_netwm_state_request_send */ 1528}
1528 1529
1529EAPI void 1530EAPI void
1530ecore_x_netwm_desktop_request_send(Ecore_X_Window win, 1531ecore_x_netwm_desktop_request_send(Ecore_X_Window win,
1531 Ecore_X_Window root, 1532 Ecore_X_Window root,
1532 unsigned int desktop) 1533 unsigned int desktop)
1533{ 1534{
1534 XEvent xev; 1535 XEvent xev;
1535 1536
@@ -1551,11 +1552,11 @@ ecore_x_netwm_desktop_request_send(Ecore_X_Window win,
1551 1552
1552 XSendEvent(_ecore_x_disp, root, False, 1553 XSendEvent(_ecore_x_disp, root, False,
1553 SubstructureNotifyMask | SubstructureRedirectMask, &xev); 1554 SubstructureNotifyMask | SubstructureRedirectMask, &xev);
1554} /* ecore_x_netwm_desktop_request_send */ 1555}
1555 1556
1556int 1557int
1557_ecore_x_netwm_startup_info_begin(Ecore_X_Window win __UNUSED__, 1558_ecore_x_netwm_startup_info_begin(Ecore_X_Window win __UNUSED__,
1558 char *data __UNUSED__) 1559 char *data __UNUSED__)
1559{ 1560{
1560#if 0 1561#if 0
1561 Ecore_X_Startup_Info *info; 1562 Ecore_X_Startup_Info *info;
@@ -1600,11 +1601,11 @@ _ecore_x_netwm_startup_info_begin(Ecore_X_Window win __UNUSED__,
1600 1601
1601#endif /* if 0 */ 1602#endif /* if 0 */
1602 return 1; 1603 return 1;
1603} /* _ecore_x_netwm_startup_info_begin */ 1604}
1604 1605
1605int 1606int
1606_ecore_x_netwm_startup_info(Ecore_X_Window win __UNUSED__, 1607_ecore_x_netwm_startup_info(Ecore_X_Window win __UNUSED__,
1607 char *data __UNUSED__) 1608 char *data __UNUSED__)
1608{ 1609{
1609#if 0 1610#if 0
1610 Ecore_X_Startup_Info *info; 1611 Ecore_X_Startup_Info *info;
@@ -1639,26 +1640,26 @@ _ecore_x_netwm_startup_info(Ecore_X_Window win __UNUSED__,
1639 1640
1640#endif /* if 0 */ 1641#endif /* if 0 */
1641 return 1; 1642 return 1;
1642} /* _ecore_x_netwm_startup_info */ 1643}
1643 1644
1644/* 1645/*
1645 * Set UTF-8 string property 1646 * Set UTF-8 string property
1646 */ 1647 */
1647static void 1648static void
1648_ecore_x_window_prop_string_utf8_set(Ecore_X_Window win, 1649_ecore_x_window_prop_string_utf8_set(Ecore_X_Window win,
1649 Ecore_X_Atom atom, 1650 Ecore_X_Atom atom,
1650 const char *str) 1651 const char *str)
1651{ 1652{
1652 XChangeProperty(_ecore_x_disp, win, atom, ECORE_X_ATOM_UTF8_STRING, 8, 1653 XChangeProperty(_ecore_x_disp, win, atom, ECORE_X_ATOM_UTF8_STRING, 8,
1653 PropModeReplace, (unsigned char *)str, strlen(str)); 1654 PropModeReplace, (unsigned char *)str, strlen(str));
1654} /* _ecore_x_window_prop_string_utf8_set */ 1655}
1655 1656
1656/* 1657/*
1657 * Get UTF-8 string property 1658 * Get UTF-8 string property
1658 */ 1659 */
1659static char * 1660static char *
1660_ecore_x_window_prop_string_utf8_get(Ecore_X_Window win, 1661_ecore_x_window_prop_string_utf8_get(Ecore_X_Window win,
1661 Ecore_X_Atom atom) 1662 Ecore_X_Atom atom)
1662{ 1663{
1663 char *str; 1664 char *str;
1664 unsigned char *prop_ret; 1665 unsigned char *prop_ret;
@@ -1685,7 +1686,7 @@ _ecore_x_window_prop_string_utf8_get(Ecore_X_Window win,
1685 XFree(prop_ret); 1686 XFree(prop_ret);
1686 1687
1687 return str; 1688 return str;
1688} /* _ecore_x_window_prop_string_utf8_get */ 1689}
1689 1690
1690#if 0 /* Unused */ 1691#if 0 /* Unused */
1691/* 1692/*
@@ -1758,19 +1759,19 @@ _ecore_x_netwm_startup_info_process(Ecore_X_Startup_Info *info)
1758 else 1759 else
1759 { 1760 {
1760 /* Discard buffer */ 1761 /* Discard buffer */
1761 info->length = 0; 1762 info->length = 0;
1762 info->buffer[0] = 0; 1763 info->buffer[0] = 0;
1763 } 1764 }
1764 1765
1765 return 1; 1766 return 1;
1766} /* _ecore_x_netwm_startup_info_process */ 1767}
1767 1768
1768/* 1769/*
1769 * Parse startup info 1770 * Parse startup info
1770 */ 1771 */
1771static int 1772static int
1772_ecore_x_netwm_startup_info_parse(Ecore_X_Startup_Info *info, 1773_ecore_x_netwm_startup_info_parse(Ecore_X_Startup_Info *info,
1773 char *data) 1774 char *data)
1774{ 1775{
1775 while (*data) 1776 while (*data)
1776 { 1777 {
@@ -1780,7 +1781,8 @@ _ecore_x_netwm_startup_info_parse(Ecore_X_Startup_Info *info,
1780 char value[1024]; 1781 char value[1024];
1781 1782
1782 /* Skip space */ 1783 /* Skip space */
1783 while (*data == ' ') data++; 1784 while (*data == ' ')
1785 data++;
1784 /* Get key */ 1786 /* Get key */
1785 key = data; 1787 key = data;
1786 data = strchr(key, '='); 1788 data = strchr(key, '=');
@@ -1920,7 +1922,7 @@ _ecore_x_netwm_startup_info_parse(Ecore_X_Startup_Info *info,
1920 return 0; 1922 return 0;
1921 1923
1922 return 1; 1924 return 1;
1923} /* _ecore_x_netwm_startup_info_parse */ 1925}
1924 1926
1925#endif /* if 0 */ 1927#endif /* if 0 */
1926 1928
@@ -1958,7 +1960,7 @@ _ecore_x_netwm_startup_info_free(void *data)
1958 free(info->wmclass); 1960 free(info->wmclass);
1959 1961
1960 free(info); 1962 free(info);
1961} /* _ecore_x_netwm_startup_info_free */ 1963}
1962 1964
1963/* 1965/*
1964 * Is screen composited? 1966 * Is screen composited?
@@ -1981,10 +1983,10 @@ ecore_x_screen_is_composited(int screen)
1981 win = XGetSelectionOwner(_ecore_x_disp, atom); 1983 win = XGetSelectionOwner(_ecore_x_disp, atom);
1982 1984
1983 return (win != None) ? EINA_TRUE : EINA_FALSE; 1985 return (win != None) ? EINA_TRUE : EINA_FALSE;
1984} /* ecore_x_screen_is_composited */ 1986}
1985 1987
1986EAPI void 1988EAPI void
1987ecore_x_screen_is_composited_set(int screen, 1989ecore_x_screen_is_composited_set(int screen,
1988 Ecore_X_Window win) 1990 Ecore_X_Window win)
1989{ 1991{
1990 static Ecore_X_Atom atom = None; 1992 static Ecore_X_Atom atom = None;
@@ -1999,5 +2001,5 @@ ecore_x_screen_is_composited_set(int screen,
1999 return; 2001 return;
2000 2002
2001 XSetSelectionOwner(_ecore_x_disp, atom, win, _ecore_x_event_last_time); 2003 XSetSelectionOwner(_ecore_x_disp, atom, win, _ecore_x_event_last_time);
2002} /* ecore_x_screen_is_composited_set */ 2004}
2003 2005
diff --git a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_pixmap.c b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_pixmap.c
index b81d06c..7b13615 100644
--- a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_pixmap.c
+++ b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_pixmap.c
@@ -26,9 +26,9 @@
26 */ 26 */
27EAPI Ecore_X_Pixmap 27EAPI Ecore_X_Pixmap
28ecore_x_pixmap_new(Ecore_X_Window win, 28ecore_x_pixmap_new(Ecore_X_Window win,
29 int w, 29 int w,
30 int h, 30 int h,
31 int dep) 31 int dep)
32{ 32{
33 LOGFN(__FILE__, __LINE__, __FUNCTION__); 33 LOGFN(__FILE__, __LINE__, __FUNCTION__);
34 if (win == 0) 34 if (win == 0)
@@ -38,7 +38,7 @@ ecore_x_pixmap_new(Ecore_X_Window win,
38 dep = DefaultDepth(_ecore_x_disp, DefaultScreen(_ecore_x_disp)); 38 dep = DefaultDepth(_ecore_x_disp, DefaultScreen(_ecore_x_disp));
39 39
40 return XCreatePixmap(_ecore_x_disp, win, w, h, dep); 40 return XCreatePixmap(_ecore_x_disp, win, w, h, dep);
41} /* ecore_x_pixmap_new */ 41}
42 42
43/** 43/**
44 * Deletes the reference to the given pixmap. 44 * Deletes the reference to the given pixmap.
@@ -54,7 +54,7 @@ ecore_x_pixmap_free(Ecore_X_Pixmap pmap)
54{ 54{
55 LOGFN(__FILE__, __LINE__, __FUNCTION__); 55 LOGFN(__FILE__, __LINE__, __FUNCTION__);
56 XFreePixmap(_ecore_x_disp, pmap); 56 XFreePixmap(_ecore_x_disp, pmap);
57} /* ecore_x_pixmap_free */ 57}
58 58
59/** 59/**
60 * Pastes a rectangular area of the given pixmap onto the given drawable. 60 * Pastes a rectangular area of the given pixmap onto the given drawable.
@@ -71,19 +71,19 @@ ecore_x_pixmap_free(Ecore_X_Pixmap pmap)
71 * @ingroup Ecore_X_Pixmap_Group 71 * @ingroup Ecore_X_Pixmap_Group
72 */ 72 */
73EAPI void 73EAPI void
74ecore_x_pixmap_paste(Ecore_X_Pixmap pmap, 74ecore_x_pixmap_paste(Ecore_X_Pixmap pmap,
75 Ecore_X_Drawable dest, 75 Ecore_X_Drawable dest,
76 Ecore_X_GC gc, 76 Ecore_X_GC gc,
77 int sx, 77 int sx,
78 int sy, 78 int sy,
79 int w, 79 int w,
80 int h, 80 int h,
81 int dx, 81 int dx,
82 int dy) 82 int dy)
83{ 83{
84 LOGFN(__FILE__, __LINE__, __FUNCTION__); 84 LOGFN(__FILE__, __LINE__, __FUNCTION__);
85 XCopyArea(_ecore_x_disp, pmap, dest, gc, sx, sy, w, h, dx, dy); 85 XCopyArea(_ecore_x_disp, pmap, dest, gc, sx, sy, w, h, dx, dy);
86} /* ecore_x_pixmap_paste */ 86}
87 87
88/** 88/**
89 * Retrieves the size of the given pixmap. 89 * Retrieves the size of the given pixmap.
@@ -96,15 +96,15 @@ ecore_x_pixmap_paste(Ecore_X_Pixmap pmap,
96 */ 96 */
97EAPI void 97EAPI void
98ecore_x_pixmap_geometry_get(Ecore_X_Pixmap pmap, 98ecore_x_pixmap_geometry_get(Ecore_X_Pixmap pmap,
99 int *x, 99 int *x,
100 int *y, 100 int *y,
101 int *w, 101 int *w,
102 int *h) 102 int *h)
103{ 103{
104 LOGFN(__FILE__, __LINE__, __FUNCTION__); 104 LOGFN(__FILE__, __LINE__, __FUNCTION__);
105 if (pmap) 105 if (pmap)
106 ecore_x_drawable_geometry_get(pmap, x, y, w, h); 106 ecore_x_drawable_geometry_get(pmap, x, y, w, h);
107} /* ecore_x_pixmap_geometry_get */ 107}
108 108
109/** 109/**
110 * Retrieves the depth of the given pixmap. 110 * Retrieves the depth of the given pixmap.
@@ -117,5 +117,5 @@ ecore_x_pixmap_depth_get(Ecore_X_Pixmap pmap)
117{ 117{
118 LOGFN(__FILE__, __LINE__, __FUNCTION__); 118 LOGFN(__FILE__, __LINE__, __FUNCTION__);
119 return ecore_x_drawable_depth_get(pmap); 119 return ecore_x_drawable_depth_get(pmap);
120} /* ecore_x_pixmap_depth_get */ 120}
121 121
diff --git a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_randr_11.c b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_randr_11.c
index a6bafb6..816f8d5 100644
--- a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_randr_11.c
+++ b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_randr_11.c
@@ -8,6 +8,10 @@
8 8
9#include "ecore_x_private.h" 9#include "ecore_x_private.h"
10#include "ecore_x_randr.h" 10#include "ecore_x_randr.h"
11#include <stdio.h>
12#include <stdlib.h>
13#include <unistd.h>
14#include <string.h>
11 15
12#define Ecore_X_Randr_None 0 16#define Ecore_X_Randr_None 0
13#ifdef ECORE_XRANDR 17#ifdef ECORE_XRANDR
@@ -18,7 +22,8 @@
18 root) ((screen = \ 22 root) ((screen = \
19 XRRRootToScreen(_ecore_x_disp, \ 23 XRRRootToScreen(_ecore_x_disp, \
20 root)) != -1) 24 root)) != -1)
21#define RANDR_CHECK_1_1_RET(ret) if(_randr_version < RANDR_1_1) return ret 25#define RANDR_CHECK_1_1_RET(ret) if (_randr_version < RANDR_1_1) \
26 return ret
22 27
23extern XRRScreenResources *(*_ecore_x_randr_get_screen_resources)(Display * 28extern XRRScreenResources *(*_ecore_x_randr_get_screen_resources)(Display *
24 dpy, 29 dpy,
@@ -44,7 +49,7 @@ ecore_x_randr_screen_primary_output_orientations_get(Ecore_X_Window root)
44#else /* ifdef ECORE_XRANDR */ 49#else /* ifdef ECORE_XRANDR */
45 return Ecore_X_Randr_None; 50 return Ecore_X_Randr_None;
46#endif /* ifdef ECORE_XRANDR */ 51#endif /* ifdef ECORE_XRANDR */
47} /* ecore_x_randr_screen_primary_output_orientations_get */ 52}
48 53
49/* 54/*
50 * @param root window which's primary output will be queried 55 * @param root window which's primary output will be queried
@@ -61,7 +66,7 @@ ecore_x_randr_screen_primary_output_orientation_get(Ecore_X_Window root)
61#else /* ifdef ECORE_XRANDR */ 66#else /* ifdef ECORE_XRANDR */
62 return Ecore_X_Randr_None; 67 return Ecore_X_Randr_None;
63#endif /* ifdef ECORE_XRANDR */ 68#endif /* ifdef ECORE_XRANDR */
64} /* ecore_x_randr_screen_primary_output_orientation_get */ 69}
65 70
66/* 71/*
67 * @brief sets a given screen's primary output's orientation 72 * @brief sets a given screen's primary output's orientation
@@ -95,7 +100,7 @@ ecore_x_randr_screen_primary_output_orientation_set(
95#else /* ifdef ECORE_XRANDR */ 100#else /* ifdef ECORE_XRANDR */
96 return EINA_FALSE; 101 return EINA_FALSE;
97#endif /* ifdef ECORE_XRANDR */ 102#endif /* ifdef ECORE_XRANDR */
98} /* ecore_x_randr_screen_primary_output_orientation_set */ 103}
99 104
100/* 105/*
101 * @brief gets a screen's primary output's possible sizes 106 * @brief gets a screen's primary output's possible sizes
@@ -105,7 +110,7 @@ ecore_x_randr_screen_primary_output_orientation_set(
105 */ 110 */
106EAPI Ecore_X_Randr_Screen_Size_MM * 111EAPI Ecore_X_Randr_Screen_Size_MM *
107ecore_x_randr_screen_primary_output_sizes_get(Ecore_X_Window root, 112ecore_x_randr_screen_primary_output_sizes_get(Ecore_X_Window root,
108 int *num) 113 int *num)
109{ 114{
110#ifdef ECORE_XRANDR 115#ifdef ECORE_XRANDR
111 Ecore_X_Randr_Screen_Size_MM *ret = NULL; 116 Ecore_X_Randr_Screen_Size_MM *ret = NULL;
@@ -135,7 +140,7 @@ ecore_x_randr_screen_primary_output_sizes_get(Ecore_X_Window root,
135#else /* ifdef ECORE_XRANDR */ 140#else /* ifdef ECORE_XRANDR */
136 return NULL; 141 return NULL;
137#endif /* ifdef ECORE_XRANDR */ 142#endif /* ifdef ECORE_XRANDR */
138} /* ecore_x_randr_screen_primary_output_sizes_get */ 143}
139 144
140/* 145/*
141 * @brief get the current set size of a given screen's primary output 146 * @brief get the current set size of a given screen's primary output
@@ -148,11 +153,11 @@ ecore_x_randr_screen_primary_output_sizes_get(Ecore_X_Window root,
148 */ 153 */
149EAPI void 154EAPI void
150ecore_x_randr_screen_primary_output_current_size_get(Ecore_X_Window root, 155ecore_x_randr_screen_primary_output_current_size_get(Ecore_X_Window root,
151 int *w, 156 int *w,
152 int *h, 157 int *h,
153 int *w_mm, 158 int *w_mm,
154 int *h_mm, 159 int *h_mm,
155 int *size_index) 160 int *size_index)
156{ 161{
157#ifdef ECORE_XRANDR 162#ifdef ECORE_XRANDR
158 XRRScreenSize *sizes; 163 XRRScreenSize *sizes;
@@ -192,7 +197,7 @@ ecore_x_randr_screen_primary_output_current_size_get(Ecore_X_Window root,
192 197
193 XRRFreeScreenConfigInfo(sc); 198 XRRFreeScreenConfigInfo(sc);
194#endif /* ifdef ECORE_XRANDR */ 199#endif /* ifdef ECORE_XRANDR */
195} /* ecore_x_randr_screen_primary_output_current_size_get */ 200}
196 201
197/* 202/*
198 * @brief sets a given screen's primary output size, but disables all other outputs at the same time 203 * @brief sets a given screen's primary output size, but disables all other outputs at the same time
@@ -202,18 +207,16 @@ ecore_x_randr_screen_primary_output_current_size_get(Ecore_X_Window root,
202 */ 207 */
203EAPI Eina_Bool 208EAPI Eina_Bool
204ecore_x_randr_screen_primary_output_size_set(Ecore_X_Window root, 209ecore_x_randr_screen_primary_output_size_set(Ecore_X_Window root,
205 int size_index) 210 int size_index)
206{ 211{
207#ifdef ECORE_XRANDR 212#ifdef ECORE_XRANDR
208 XRRScreenConfiguration *sc = NULL; 213 XRRScreenConfiguration *sc = NULL;
209 XRRScreenSize *sizes;
210 Eina_Bool ret = EINA_FALSE; 214 Eina_Bool ret = EINA_FALSE;
211 int nsizes = 0; 215 int nsizes = 0;
212 216
213 if (size_index >= 0 && _ecore_x_randr_root_validate(root)) 217 if (size_index >= 0 && _ecore_x_randr_root_validate(root))
214 { 218 {
215 sizes = 219 XRRSizes(_ecore_x_disp, XRRRootToScreen(_ecore_x_disp,
216 XRRSizes(_ecore_x_disp, XRRRootToScreen(_ecore_x_disp,
217 root), &nsizes); 220 root), &nsizes);
218 221
219 if (size_index < nsizes) 222 if (size_index < nsizes)
@@ -235,7 +238,7 @@ ecore_x_randr_screen_primary_output_size_set(Ecore_X_Window root,
235#else /* ifdef ECORE_XRANDR */ 238#else /* ifdef ECORE_XRANDR */
236 return EINA_FALSE; 239 return EINA_FALSE;
237#endif /* ifdef ECORE_XRANDR */ 240#endif /* ifdef ECORE_XRANDR */
238} /* ecore_x_randr_screen_primary_output_size_set */ 241}
239 242
240/* 243/*
241 * @param root window which's primary output will be queried 244 * @param root window which's primary output will be queried
@@ -261,7 +264,7 @@ ecore_x_randr_screen_primary_output_current_refresh_rate_get(
261#else /* ifdef ECORE_XRANDR */ 264#else /* ifdef ECORE_XRANDR */
262 return 0.0; 265 return 0.0;
263#endif /* ifdef ECORE_XRANDR */ 266#endif /* ifdef ECORE_XRANDR */
264} /* ecore_x_randr_screen_primary_output_current_refresh_rate_get */ 267}
265 268
266/* 269/*
267 * @param root window which's primary output will be queried 270 * @param root window which's primary output will be queried
@@ -270,8 +273,8 @@ ecore_x_randr_screen_primary_output_current_refresh_rate_get(
270 */ 273 */
271EAPI Ecore_X_Randr_Refresh_Rate * 274EAPI Ecore_X_Randr_Refresh_Rate *
272ecore_x_randr_screen_primary_output_refresh_rates_get(Ecore_X_Window root, 275ecore_x_randr_screen_primary_output_refresh_rates_get(Ecore_X_Window root,
273 int size_index, 276 int size_index,
274 int *num) 277 int *num)
275{ 278{
276#ifdef ECORE_XRANDR 279#ifdef ECORE_XRANDR
277 Ecore_X_Randr_Refresh_Rate *ret = NULL, *rates = NULL; 280 Ecore_X_Randr_Refresh_Rate *ret = NULL, *rates = NULL;
@@ -293,7 +296,7 @@ ecore_x_randr_screen_primary_output_refresh_rates_get(Ecore_X_Window root,
293#else /* ifdef ECORE_XRANDR */ 296#else /* ifdef ECORE_XRANDR */
294 return NULL; 297 return NULL;
295#endif /* ifdef ECORE_XRANDR */ 298#endif /* ifdef ECORE_XRANDR */
296} /* ecore_x_randr_screen_primary_output_refresh_rates_get */ 299}
297 300
298//>= 1.1 301//>= 1.1
299/* 302/*
@@ -306,7 +309,7 @@ ecore_x_randr_screen_primary_output_refresh_rates_get(Ecore_X_Window root,
306EAPI Eina_Bool 309EAPI Eina_Bool
307ecore_x_randr_screen_primary_output_refresh_rate_set( 310ecore_x_randr_screen_primary_output_refresh_rate_set(
308 Ecore_X_Window root, 311 Ecore_X_Window root,
309 int size_index, 312 int size_index,
310 Ecore_X_Randr_Refresh_Rate 313 Ecore_X_Randr_Refresh_Rate
311 rate) 314 rate)
312{ 315{
@@ -328,5 +331,5 @@ ecore_x_randr_screen_primary_output_refresh_rate_set(
328#else /* ifdef ECORE_XRANDR */ 331#else /* ifdef ECORE_XRANDR */
329 return EINA_FALSE; 332 return EINA_FALSE;
330#endif /* ifdef ECORE_XRANDR */ 333#endif /* ifdef ECORE_XRANDR */
331} /* ecore_x_randr_screen_primary_output_refresh_rate_set */ 334}
332 335
diff --git a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_randr_12.c b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_randr_12.c
index fb607d1..38218a5 100644
--- a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_randr_12.c
+++ b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_randr_12.c
@@ -8,6 +8,10 @@
8 8
9#include "ecore_x_private.h" 9#include "ecore_x_private.h"
10#include "ecore_x_randr.h" 10#include "ecore_x_randr.h"
11#include <stdio.h>
12#include <stdlib.h>
13#include <unistd.h>
14#include <string.h>
11 15
12#define Ecore_X_Randr_None (Ecore_X_Randr_Crtc)0 16#define Ecore_X_Randr_None (Ecore_X_Randr_Crtc)0
13#define Ecore_X_Randr_Unset (Ecore_X_Randr_Crtc) - 1 17#define Ecore_X_Randr_Unset (Ecore_X_Randr_Crtc) - 1
@@ -19,7 +23,8 @@
19#define RANDR_VALIDATE_ROOT(screen, root) \ 23#define RANDR_VALIDATE_ROOT(screen, root) \
20 ((screen = XRRRootToScreen(_ecore_x_disp, root)) != -1) 24 ((screen = XRRRootToScreen(_ecore_x_disp, root)) != -1)
21 25
22#define RANDR_CHECK_1_2_RET(ret) if(_randr_version < RANDR_1_2) return ret 26#define RANDR_CHECK_1_2_RET(ret) if (_randr_version < RANDR_1_2) \
27 return ret
23 28
24#define RANDR_PROPERTY_EDID "EDID" 29#define RANDR_PROPERTY_EDID "EDID"
25#define RANDR_PROPERTY_BACKLIGHT "Backlight" 30#define RANDR_PROPERTY_BACKLIGHT "Backlight"
@@ -45,7 +50,7 @@ extern int _randr_version;
45 */ 50 */
46EAPI void 51EAPI void
47ecore_x_randr_events_select(Ecore_X_Window win, 52ecore_x_randr_events_select(Ecore_X_Window win,
48 Eina_Bool on) 53 Eina_Bool on)
49{ 54{
50#ifdef ECORE_XRANDR 55#ifdef ECORE_XRANDR
51 int mask; 56 int mask;
@@ -73,7 +78,7 @@ ecore_x_randr_events_select(Ecore_X_Window win,
73 * @return in case it is found EINA_TRUE will be returned. Else EINA_FALSE is returned. 78 * @return in case it is found EINA_TRUE will be returned. Else EINA_FALSE is returned.
74 */ 79 */
75static inline Eina_Bool 80static inline Eina_Bool
76_ecore_x_randr_crtc_validate(Ecore_X_Window root, 81_ecore_x_randr_crtc_validate(Ecore_X_Window root,
77 Ecore_X_Randr_Crtc crtc) 82 Ecore_X_Randr_Crtc crtc)
78{ 83{
79#ifdef ECORE_XRANDR 84#ifdef ECORE_XRANDR
@@ -108,7 +113,7 @@ _ecore_x_randr_crtc_validate(Ecore_X_Window root,
108} 113}
109 114
110Eina_Bool 115Eina_Bool
111_ecore_x_randr_output_validate(Ecore_X_Window root, 116_ecore_x_randr_output_validate(Ecore_X_Window root,
112 Ecore_X_Randr_Output output) 117 Ecore_X_Randr_Output output)
113{ 118{
114#ifdef ECORE_XRANDR 119#ifdef ECORE_XRANDR
@@ -139,7 +144,7 @@ _ecore_x_randr_output_validate(Ecore_X_Window root,
139} 144}
140 145
141static inline Eina_Bool 146static inline Eina_Bool
142_ecore_x_randr_mode_validate(Ecore_X_Window root, 147_ecore_x_randr_mode_validate(Ecore_X_Window root,
143 Ecore_X_Randr_Mode mode) 148 Ecore_X_Randr_Mode mode)
144{ 149{
145#ifdef ECORE_XRANDR 150#ifdef ECORE_XRANDR
@@ -175,10 +180,10 @@ _ecore_x_randr_mode_validate(Ecore_X_Window root,
175 */ 180 */
176EAPI void 181EAPI void
177ecore_x_randr_screen_current_size_get(Ecore_X_Window root, 182ecore_x_randr_screen_current_size_get(Ecore_X_Window root,
178 int *w, 183 int *w,
179 int *h, 184 int *h,
180 int *w_mm, 185 int *w_mm,
181 int *h_mm) 186 int *h_mm)
182{ 187{
183#ifdef ECORE_XRANDR 188#ifdef ECORE_XRANDR
184 RANDR_CHECK_1_2_RET(); 189 RANDR_CHECK_1_2_RET();
@@ -211,10 +216,10 @@ ecore_x_randr_screen_current_size_get(Ecore_X_Window root,
211 */ 216 */
212EAPI void 217EAPI void
213ecore_x_randr_screen_size_range_get(Ecore_X_Window root, 218ecore_x_randr_screen_size_range_get(Ecore_X_Window root,
214 int *wmin, 219 int *wmin,
215 int *hmin, 220 int *hmin,
216 int *wmax, 221 int *wmax,
217 int *hmax) 222 int *hmax)
218{ 223{
219#ifdef ECORE_XRANDR 224#ifdef ECORE_XRANDR
220 RANDR_CHECK_1_2_RET(); 225 RANDR_CHECK_1_2_RET();
@@ -249,10 +254,10 @@ ecore_x_randr_screen_size_range_get(Ecore_X_Window root,
249 */ 254 */
250EAPI Eina_Bool 255EAPI Eina_Bool
251ecore_x_randr_screen_current_size_set(Ecore_X_Window root, 256ecore_x_randr_screen_current_size_set(Ecore_X_Window root,
252 int w, 257 int w,
253 int h, 258 int h,
254 int w_mm, 259 int w_mm,
255 int h_mm) 260 int h_mm)
256{ 261{
257#ifdef ECORE_XRANDR 262#ifdef ECORE_XRANDR
258 RANDR_CHECK_1_2_RET(EINA_FALSE); 263 RANDR_CHECK_1_2_RET(EINA_FALSE);
@@ -281,14 +286,14 @@ ecore_x_randr_screen_current_size_set(Ecore_X_Window root,
281 if (h <= 0) 286 if (h <= 0)
282 h = DisplayHeight(_ecore_x_disp, scr); 287 h = DisplayHeight(_ecore_x_disp, scr);
283 288
284 if(w_mm <= 0) 289 if (w_mm <= 0)
285 w_mm = 290 w_mm =
286 (int)(((double)(DisplayWidthMM(_ecore_x_disp, 291 (int)(((double)(DisplayWidthMM(_ecore_x_disp,
287 scr) / 292 scr) /
288 (double)DisplayWidth(_ecore_x_disp, 293 (double)DisplayWidth(_ecore_x_disp,
289 scr))) * (double)w); 294 scr))) * (double)w);
290 295
291 if(h_mm <= 0) 296 if (h_mm <= 0)
292 h_mm = 297 h_mm =
293 (int)(((double)(DisplayHeightMM(_ecore_x_disp, 298 (int)(((double)(DisplayHeightMM(_ecore_x_disp,
294 scr) / 299 scr) /
@@ -310,7 +315,7 @@ ecore_x_randr_screen_current_size_set(Ecore_X_Window root,
310 */ 315 */
311EAPI Ecore_X_Randr_Mode_Info ** 316EAPI Ecore_X_Randr_Mode_Info **
312ecore_x_randr_modes_info_get(Ecore_X_Window root, 317ecore_x_randr_modes_info_get(Ecore_X_Window root,
313 int *num) 318 int *num)
314{ 319{
315#ifdef ECORE_XRANDR 320#ifdef ECORE_XRANDR
316 RANDR_CHECK_1_2_RET(NULL); 321 RANDR_CHECK_1_2_RET(NULL);
@@ -353,7 +358,7 @@ ecore_x_randr_modes_info_get(Ecore_X_Window root,
353 } 358 }
354 else 359 else
355 { 360 {
356 while(i > 0) 361 while (i > 0)
357 free(ret[--i]); 362 free(ret[--i]);
358 free(ret); 363 free(ret);
359 ret = NULL; 364 ret = NULL;
@@ -381,7 +386,7 @@ ecore_x_randr_modes_info_get(Ecore_X_Window root,
381 * @return mode's detailed information 386 * @return mode's detailed information
382 */ 387 */
383EAPI Ecore_X_Randr_Mode_Info * 388EAPI Ecore_X_Randr_Mode_Info *
384ecore_x_randr_mode_info_get(Ecore_X_Window root, 389ecore_x_randr_mode_info_get(Ecore_X_Window root,
385 Ecore_X_Randr_Mode mode) 390 Ecore_X_Randr_Mode mode)
386{ 391{
387#ifdef ECORE_XRANDR 392#ifdef ECORE_XRANDR
@@ -461,7 +466,7 @@ ecore_x_randr_mode_info_free(Ecore_X_Randr_Mode_Info *mode_info)
461 */ 466 */
462EAPI Ecore_X_Randr_Crtc * 467EAPI Ecore_X_Randr_Crtc *
463ecore_x_randr_crtcs_get(Ecore_X_Window root, 468ecore_x_randr_crtcs_get(Ecore_X_Window root,
464 int *num) 469 int *num)
465{ 470{
466#ifdef ECORE_XRANDR 471#ifdef ECORE_XRANDR
467 RANDR_CHECK_1_2_RET(NULL); 472 RANDR_CHECK_1_2_RET(NULL);
@@ -488,7 +493,7 @@ ecore_x_randr_crtcs_get(Ecore_X_Window root,
488 493
489EAPI Ecore_X_Randr_Output * 494EAPI Ecore_X_Randr_Output *
490ecore_x_randr_outputs_get(Ecore_X_Window root, 495ecore_x_randr_outputs_get(Ecore_X_Window root,
491 int *num) 496 int *num)
492{ 497{
493#ifdef ECORE_XRANDR 498#ifdef ECORE_XRANDR
494 RANDR_CHECK_1_2_RET(NULL); 499 RANDR_CHECK_1_2_RET(NULL);
@@ -523,9 +528,9 @@ ecore_x_randr_outputs_get(Ecore_X_Window root,
523 * @param num number of outputs referenced by given CRTC 528 * @param num number of outputs referenced by given CRTC
524 */ 529 */
525EAPI Ecore_X_Randr_Output * 530EAPI Ecore_X_Randr_Output *
526ecore_x_randr_crtc_outputs_get(Ecore_X_Window root, 531ecore_x_randr_crtc_outputs_get(Ecore_X_Window root,
527 Ecore_X_Randr_Crtc crtc, 532 Ecore_X_Randr_Crtc crtc,
528 int *num) 533 int *num)
529{ 534{
530#ifdef ECORE_XRANDR 535#ifdef ECORE_XRANDR
531 RANDR_CHECK_1_2_RET(NULL); 536 RANDR_CHECK_1_2_RET(NULL);
@@ -567,9 +572,9 @@ ecore_x_randr_crtc_outputs_get(Ecore_X_Window root,
567 * @param num number of possible outputs referenced by given CRTC 572 * @param num number of possible outputs referenced by given CRTC
568 */ 573 */
569EAPI Ecore_X_Randr_Output * 574EAPI Ecore_X_Randr_Output *
570ecore_x_randr_crtc_possible_outputs_get(Ecore_X_Window root, 575ecore_x_randr_crtc_possible_outputs_get(Ecore_X_Window root,
571 Ecore_X_Randr_Crtc crtc, 576 Ecore_X_Randr_Crtc crtc,
572 int *num) 577 int *num)
573{ 578{
574#ifdef ECORE_XRANDR 579#ifdef ECORE_XRANDR
575 RANDR_CHECK_1_2_RET(NULL); 580 RANDR_CHECK_1_2_RET(NULL);
@@ -581,7 +586,7 @@ ecore_x_randr_crtc_possible_outputs_get(Ecore_X_Window root,
581 crtc) && 586 crtc) &&
582 (res = _ecore_x_randr_get_screen_resources (_ecore_x_disp, root))) 587 (res = _ecore_x_randr_get_screen_resources (_ecore_x_disp, root)))
583 { 588 {
584 if((crtc_info = XRRGetCrtcInfo(_ecore_x_disp, res, crtc))) 589 if ((crtc_info = XRRGetCrtcInfo(_ecore_x_disp, res, crtc)))
585 { 590 {
586 if ((ret = 591 if ((ret =
587 malloc(sizeof(Ecore_X_Randr_Output) * crtc_info->npossible))) 592 malloc(sizeof(Ecore_X_Randr_Output) * crtc_info->npossible)))
@@ -605,12 +610,12 @@ ecore_x_randr_crtc_possible_outputs_get(Ecore_X_Window root,
605} 610}
606 611
607EAPI void 612EAPI void
608ecore_x_randr_crtc_geometry_get(Ecore_X_Window root, 613ecore_x_randr_crtc_geometry_get(Ecore_X_Window root,
609 Ecore_X_Randr_Crtc crtc, 614 Ecore_X_Randr_Crtc crtc,
610 int *x, 615 int *x,
611 int *y, 616 int *y,
612 int *w, 617 int *w,
613 int *h) 618 int *h)
614{ 619{
615#ifdef ECORE_XRANDR 620#ifdef ECORE_XRANDR
616 RANDR_CHECK_1_2_RET(); 621 RANDR_CHECK_1_2_RET();
@@ -652,10 +657,10 @@ ecore_x_randr_crtc_geometry_get(Ecore_X_Window root,
652 * @return EINA_TRUE if position could be successfully be altered. 657 * @return EINA_TRUE if position could be successfully be altered.
653 */ 658 */
654EAPI Eina_Bool 659EAPI Eina_Bool
655ecore_x_randr_crtc_pos_set(Ecore_X_Window root, 660ecore_x_randr_crtc_pos_set(Ecore_X_Window root,
656 Ecore_X_Randr_Crtc crtc, 661 Ecore_X_Randr_Crtc crtc,
657 int x, 662 int x,
658 int y) 663 int y)
659{ 664{
660#ifdef ECORE_XRANDR 665#ifdef ECORE_XRANDR
661 RANDR_CHECK_1_2_RET(EINA_FALSE); 666 RANDR_CHECK_1_2_RET(EINA_FALSE);
@@ -706,7 +711,7 @@ ecore_x_randr_crtc_pos_set(Ecore_X_Window root,
706 * Ecore_X_Randr_Unset 711 * Ecore_X_Randr_Unset
707 */ 712 */
708EAPI Ecore_X_Randr_Mode 713EAPI Ecore_X_Randr_Mode
709ecore_x_randr_crtc_mode_get(Ecore_X_Window root, 714ecore_x_randr_crtc_mode_get(Ecore_X_Window root,
710 Ecore_X_Randr_Crtc crtc) 715 Ecore_X_Randr_Crtc crtc)
711{ 716{
712#ifdef ECORE_XRANDR 717#ifdef ECORE_XRANDR
@@ -746,11 +751,11 @@ ecore_x_randr_crtc_mode_get(Ecore_X_Window root,
746 * @return EINA_TRUE if mode setting was successful. Else EINA_FALSE 751 * @return EINA_TRUE if mode setting was successful. Else EINA_FALSE
747 */ 752 */
748EAPI Eina_Bool 753EAPI Eina_Bool
749ecore_x_randr_crtc_mode_set(Ecore_X_Window root, 754ecore_x_randr_crtc_mode_set(Ecore_X_Window root,
750 Ecore_X_Randr_Crtc crtc, 755 Ecore_X_Randr_Crtc crtc,
751 Ecore_X_Randr_Output *outputs, 756 Ecore_X_Randr_Output *outputs,
752 int noutputs, 757 int noutputs,
753 Ecore_X_Randr_Mode mode) 758 Ecore_X_Randr_Mode mode)
754{ 759{
755#ifdef ECORE_XRANDR 760#ifdef ECORE_XRANDR
756 RANDR_CHECK_1_2_RET(EINA_FALSE); 761 RANDR_CHECK_1_2_RET(EINA_FALSE);
@@ -772,10 +777,10 @@ ecore_x_randr_crtc_mode_set(Ecore_X_Window root,
772} 777}
773 778
774EAPI void 779EAPI void
775ecore_x_randr_crtc_size_get(Ecore_X_Window root, 780ecore_x_randr_crtc_size_get(Ecore_X_Window root,
776 Ecore_X_Randr_Crtc crtc, 781 Ecore_X_Randr_Crtc crtc,
777 int *w, 782 int *w,
778 int *h) 783 int *h)
779{ 784{
780#ifdef ECORE_XRANDR 785#ifdef ECORE_XRANDR
781 RANDR_CHECK_1_2_RET(); 786 RANDR_CHECK_1_2_RET();
@@ -784,7 +789,7 @@ ecore_x_randr_crtc_size_get(Ecore_X_Window root,
784} 789}
785 790
786EAPI Ecore_X_Randr_Refresh_Rate 791EAPI Ecore_X_Randr_Refresh_Rate
787ecore_x_randr_crtc_refresh_rate_get(Ecore_X_Window root, 792ecore_x_randr_crtc_refresh_rate_get(Ecore_X_Window root,
788 Ecore_X_Randr_Crtc crtc, 793 Ecore_X_Randr_Crtc crtc,
789 Ecore_X_Randr_Mode mode) 794 Ecore_X_Randr_Mode mode)
790{ 795{
@@ -824,7 +829,7 @@ ecore_x_randr_crtc_refresh_rate_get(Ecore_X_Window root,
824} 829}
825 830
826EAPI Ecore_X_Randr_Orientation 831EAPI Ecore_X_Randr_Orientation
827ecore_x_randr_crtc_orientations_get(Ecore_X_Window root, 832ecore_x_randr_crtc_orientations_get(Ecore_X_Window root,
828 Ecore_X_Randr_Crtc crtc) 833 Ecore_X_Randr_Crtc crtc)
829{ 834{
830#ifdef ECORE_XRANDR 835#ifdef ECORE_XRANDR
@@ -855,7 +860,7 @@ ecore_x_randr_crtc_orientations_get(Ecore_X_Window root,
855} 860}
856 861
857EAPI Ecore_X_Randr_Orientation 862EAPI Ecore_X_Randr_Orientation
858ecore_x_randr_crtc_orientation_get(Ecore_X_Window root, 863ecore_x_randr_crtc_orientation_get(Ecore_X_Window root,
859 Ecore_X_Randr_Crtc crtc) 864 Ecore_X_Randr_Crtc crtc)
860{ 865{
861#ifdef ECORE_XRANDR 866#ifdef ECORE_XRANDR
@@ -886,8 +891,8 @@ ecore_x_randr_crtc_orientation_get(Ecore_X_Window root,
886} 891}
887 892
888EAPI Eina_Bool 893EAPI Eina_Bool
889ecore_x_randr_crtc_orientation_set(Ecore_X_Window root, 894ecore_x_randr_crtc_orientation_set(Ecore_X_Window root,
890 Ecore_X_Randr_Crtc crtc, 895 Ecore_X_Randr_Crtc crtc,
891 Ecore_X_Randr_Orientation orientation) 896 Ecore_X_Randr_Orientation orientation)
892{ 897{
893#ifdef ECORE_XRANDR 898#ifdef ECORE_XRANDR
@@ -913,10 +918,10 @@ ecore_x_randr_crtc_orientation_set(Ecore_X_Window root,
913} 918}
914 919
915EAPI void 920EAPI void
916ecore_x_randr_crtc_pos_get(Ecore_X_Window root, 921ecore_x_randr_crtc_pos_get(Ecore_X_Window root,
917 Ecore_X_Randr_Crtc crtc, 922 Ecore_X_Randr_Crtc crtc,
918 int *x, 923 int *x,
919 int *y) 924 int *y)
920{ 925{
921#ifdef ECORE_XRANDR 926#ifdef ECORE_XRANDR
922 RANDR_CHECK_1_2_RET(); 927 RANDR_CHECK_1_2_RET();
@@ -926,7 +931,7 @@ ecore_x_randr_crtc_pos_get(Ecore_X_Window root,
926} 931}
927 932
928EAPI Eina_Bool 933EAPI Eina_Bool
929ecore_x_randr_crtc_clone_set(Ecore_X_Window root, 934ecore_x_randr_crtc_clone_set(Ecore_X_Window root,
930 Ecore_X_Randr_Crtc original, 935 Ecore_X_Randr_Crtc original,
931 Ecore_X_Randr_Crtc clon) 936 Ecore_X_Randr_Crtc clon)
932{ 937{
@@ -993,13 +998,13 @@ ecore_x_randr_crtc_clone_set(Ecore_X_Window root,
993 * EINA_FALSE 998 * EINA_FALSE
994 */ 999 */
995EAPI Eina_Bool 1000EAPI Eina_Bool
996ecore_x_randr_crtc_settings_set(Ecore_X_Window root, 1001ecore_x_randr_crtc_settings_set(Ecore_X_Window root,
997 Ecore_X_Randr_Crtc crtc, 1002 Ecore_X_Randr_Crtc crtc,
998 Ecore_X_Randr_Output *outputs, 1003 Ecore_X_Randr_Output *outputs,
999 int noutputs, 1004 int noutputs,
1000 int x, 1005 int x,
1001 int y, 1006 int y,
1002 Ecore_X_Randr_Mode mode, 1007 Ecore_X_Randr_Mode mode,
1003 Ecore_X_Randr_Orientation orientation) 1008 Ecore_X_Randr_Orientation orientation)
1004{ 1009{
1005#ifdef ECORE_XRANDR 1010#ifdef ECORE_XRANDR
@@ -1059,17 +1064,17 @@ ecore_x_randr_crtc_settings_set(Ecore_X_Window root,
1059 * @brief sets a CRTC relative to another one. 1064 * @brief sets a CRTC relative to another one.
1060 * @param crtc_r1 the CRTC to be positioned. 1065 * @param crtc_r1 the CRTC to be positioned.
1061 * @param crtc_r2 the CRTC the position should be relative to 1066 * @param crtc_r2 the CRTC the position should be relative to
1062 * @param position the relation between the crtcs 1067 * @param policy the relation between the crtcs
1063 * @param alignment in case CRTCs size differ, aligns CRTC1 accordingly at CRTC2's 1068 * @param alignment in case CRTCs size differ, aligns CRTC1 accordingly at CRTC2's
1064 * borders 1069 * borders
1065 * @return EINA_TRUE if crtc could be successfully positioned. EINA_FALSE if 1070 * @return EINA_TRUE if crtc could be successfully positioned. EINA_FALSE if
1066 * repositioning failed or if position of new crtc would be out of given screen's min/max bounds. 1071 * repositioning failed or if position of new crtc would be out of given screen's min/max bounds.
1067 */ 1072 */
1068EAPI Eina_Bool 1073EAPI Eina_Bool
1069ecore_x_randr_crtc_pos_relative_set(Ecore_X_Window root, 1074ecore_x_randr_crtc_pos_relative_set(Ecore_X_Window root,
1070 Ecore_X_Randr_Crtc crtc_r1, 1075 Ecore_X_Randr_Crtc crtc_r1,
1071 Ecore_X_Randr_Crtc crtc_r2, 1076 Ecore_X_Randr_Crtc crtc_r2,
1072 Ecore_X_Randr_Output_Policy policy, 1077 Ecore_X_Randr_Output_Policy policy,
1073 Ecore_X_Randr_Relative_Alignment alignment) 1078 Ecore_X_Randr_Relative_Alignment alignment)
1074{ 1079{
1075#ifdef ECORE_XRANDR 1080#ifdef ECORE_XRANDR
@@ -1360,10 +1365,10 @@ ecore_x_randr_crtc_pos_relative_set(Ecore_X_Window root,
1360} 1365}
1361 1366
1362EAPI Ecore_X_Randr_Mode * 1367EAPI Ecore_X_Randr_Mode *
1363ecore_x_randr_output_modes_get(Ecore_X_Window root, 1368ecore_x_randr_output_modes_get(Ecore_X_Window root,
1364 Ecore_X_Randr_Output output, 1369 Ecore_X_Randr_Output output,
1365 int *num, 1370 int *num,
1366 int *npreferred) 1371 int *npreferred)
1367{ 1372{
1368#ifdef ECORE_XRANDR 1373#ifdef ECORE_XRANDR
1369 RANDR_CHECK_1_2_RET(NULL); 1374 RANDR_CHECK_1_2_RET(NULL);
@@ -1401,9 +1406,9 @@ ecore_x_randr_output_modes_get(Ecore_X_Window root,
1401} 1406}
1402 1407
1403EAPI Ecore_X_Randr_Crtc * 1408EAPI Ecore_X_Randr_Crtc *
1404ecore_x_randr_output_possible_crtcs_get(Ecore_X_Window root, 1409ecore_x_randr_output_possible_crtcs_get(Ecore_X_Window root,
1405 Ecore_X_Randr_Output output, 1410 Ecore_X_Randr_Output output,
1406 int *num) 1411 int *num)
1407{ 1412{
1408#ifdef ECORE_XRANDR 1413#ifdef ECORE_XRANDR
1409 RANDR_CHECK_1_2_RET(NULL); 1414 RANDR_CHECK_1_2_RET(NULL);
@@ -1441,9 +1446,9 @@ ecore_x_randr_output_possible_crtcs_get(Ecore_X_Window root,
1441 * @param num number of possible clones 1446 * @param num number of possible clones
1442 */ 1447 */
1443EAPI Ecore_X_Randr_Output * 1448EAPI Ecore_X_Randr_Output *
1444ecore_x_randr_output_clones_get(Ecore_X_Window root, 1449ecore_x_randr_output_clones_get(Ecore_X_Window root,
1445 Ecore_X_Randr_Output output, 1450 Ecore_X_Randr_Output output,
1446 int *num) 1451 int *num)
1447{ 1452{
1448#ifdef ECORE_XRANDR 1453#ifdef ECORE_XRANDR
1449 RANDR_CHECK_1_2_RET(NULL); 1454 RANDR_CHECK_1_2_RET(NULL);
@@ -1474,7 +1479,7 @@ ecore_x_randr_output_clones_get(Ecore_X_Window root,
1474} 1479}
1475 1480
1476EAPI Ecore_X_Randr_Crtc 1481EAPI Ecore_X_Randr_Crtc
1477ecore_x_randr_output_crtc_get(Ecore_X_Window root, 1482ecore_x_randr_output_crtc_get(Ecore_X_Window root,
1478 Ecore_X_Randr_Output output) 1483 Ecore_X_Randr_Output output)
1479{ 1484{
1480#ifdef ECORE_XRANDR 1485#ifdef ECORE_XRANDR
@@ -1509,9 +1514,9 @@ ecore_x_randr_output_crtc_get(Ecore_X_Window root,
1509 * @return name of the output as reported by X 1514 * @return name of the output as reported by X
1510 */ 1515 */
1511EAPI char * 1516EAPI char *
1512ecore_x_randr_output_name_get(Ecore_X_Window root, 1517ecore_x_randr_output_name_get(Ecore_X_Window root,
1513 Ecore_X_Randr_Output output, 1518 Ecore_X_Randr_Output output,
1514 int *len) 1519 int *len)
1515{ 1520{
1516#ifdef ECORE_XRANDR 1521#ifdef ECORE_XRANDR
1517 RANDR_CHECK_1_2_RET(NULL); 1522 RANDR_CHECK_1_2_RET(NULL);
@@ -1532,10 +1537,10 @@ ecore_x_randr_output_name_get(Ecore_X_Window root,
1532 * *len = output_info->nameLen; 1537 * *len = output_info->nameLen;
1533 * 1538 *
1534 */ 1539 */
1535 if ((ret = strdup(output_info->name)) && len) 1540 if ((ret = strdup(output_info->name)) && len)
1536 *len = strlen(ret); 1541 *len = strlen(ret);
1537 1542
1538 XRRFreeOutputInfo(output_info); 1543 XRRFreeOutputInfo(output_info);
1539 } 1544 }
1540 1545
1541 if (res) 1546 if (res)
@@ -1554,10 +1559,10 @@ ecore_x_randr_output_name_get(Ecore_X_Window root,
1554 * @param h height of given mode in px 1559 * @param h height of given mode in px
1555 */ 1560 */
1556EAPI void 1561EAPI void
1557ecore_x_randr_mode_size_get(Ecore_X_Window root, 1562ecore_x_randr_mode_size_get(Ecore_X_Window root,
1558 Ecore_X_Randr_Mode mode, 1563 Ecore_X_Randr_Mode mode,
1559 int *w, 1564 int *w,
1560 int *h) 1565 int *h)
1561{ 1566{
1562#ifdef ECORE_XRANDR 1567#ifdef ECORE_XRANDR
1563 RANDR_CHECK_1_2_RET(); 1568 RANDR_CHECK_1_2_RET();
@@ -1598,9 +1603,9 @@ ecore_x_randr_mode_size_get(Ecore_X_Window root,
1598 * @param length length of the byte-array. If NULL, request will fail. 1603 * @param length length of the byte-array. If NULL, request will fail.
1599 */ 1604 */
1600EAPI unsigned char * 1605EAPI unsigned char *
1601ecore_x_randr_output_edid_get(Ecore_X_Window root, 1606ecore_x_randr_output_edid_get(Ecore_X_Window root,
1602 Ecore_X_Randr_Output output, 1607 Ecore_X_Randr_Output output,
1603 unsigned long *length) 1608 unsigned long *length)
1604{ 1609{
1605#ifdef ECORE_XRANDR 1610#ifdef ECORE_XRANDR
1606 RANDR_CHECK_1_2_RET(NULL); 1611 RANDR_CHECK_1_2_RET(NULL);
@@ -1613,18 +1618,18 @@ ecore_x_randr_output_edid_get(Ecore_X_Window root,
1613 if (!length || !_ecore_x_randr_output_validate(root, output)) 1618 if (!length || !_ecore_x_randr_output_validate(root, output))
1614 return NULL; 1619 return NULL;
1615 1620
1616 if(XRRGetOutputProperty (_ecore_x_disp, output, name, 1621 if (XRRGetOutputProperty (_ecore_x_disp, output, name,
1617 0, 100, False, False, 1622 0, 100, False, False,
1618 AnyPropertyType, 1623 AnyPropertyType,
1619 &actual_type, &actual_format, 1624 &actual_type, &actual_format,
1620 &nitems, &bytes_after, &prop_data) == Success) 1625 &nitems, &bytes_after, &prop_data) == Success)
1621 { 1626 {
1622 if (actual_type == XA_INTEGER && actual_format == 8) 1627 if (actual_type == XA_INTEGER && actual_format == 8)
1623 { 1628 {
1624 if ((ret = malloc(nitems * sizeof(unsigned char)))) 1629 if ((ret = malloc(nitems * sizeof(unsigned char))))
1625 { 1630 {
1626 if(length && 1631 if (length &&
1627 (memcpy(ret, prop_data, (nitems * sizeof(unsigned char))))) 1632 (memcpy(ret, prop_data, (nitems * sizeof(unsigned char)))))
1628 *length = nitems; 1633 *length = nitems;
1629 1634
1630 return ret; 1635 return ret;
@@ -1639,7 +1644,7 @@ ecore_x_randr_output_edid_get(Ecore_X_Window root,
1639} 1644}
1640 1645
1641EAPI Ecore_X_Randr_Connection_Status 1646EAPI Ecore_X_Randr_Connection_Status
1642ecore_x_randr_output_connection_status_get(Ecore_X_Window root, 1647ecore_x_randr_output_connection_status_get(Ecore_X_Window root,
1643 Ecore_X_Randr_Output output) 1648 Ecore_X_Randr_Output output)
1644{ 1649{
1645#ifdef ECORE_XRANDR 1650#ifdef ECORE_XRANDR
@@ -1669,10 +1674,10 @@ ecore_x_randr_output_connection_status_get(Ecore_X_Window root,
1669} 1674}
1670 1675
1671EAPI void 1676EAPI void
1672ecore_x_randr_output_size_mm_get(Ecore_X_Window root, 1677ecore_x_randr_output_size_mm_get(Ecore_X_Window root,
1673 Ecore_X_Randr_Output output, 1678 Ecore_X_Randr_Output output,
1674 int *w_mm, 1679 int *w_mm,
1675 int *h_mm) 1680 int *h_mm)
1676{ 1681{
1677#ifdef ECORE_XRANDR 1682#ifdef ECORE_XRANDR
1678 RANDR_CHECK_1_2_RET(); 1683 RANDR_CHECK_1_2_RET();
@@ -1701,11 +1706,11 @@ ecore_x_randr_output_size_mm_get(Ecore_X_Window root,
1701} 1706}
1702 1707
1703EAPI Eina_Bool 1708EAPI Eina_Bool
1704ecore_x_randr_move_all_crtcs_but(Ecore_X_Window root, 1709ecore_x_randr_move_all_crtcs_but(Ecore_X_Window root,
1705 const Ecore_X_Randr_Crtc *not_moved, 1710 const Ecore_X_Randr_Crtc *not_moved,
1706 int nnot_moved, 1711 int nnot_moved,
1707 int dx, 1712 int dx,
1708 int dy) 1713 int dy)
1709{ 1714{
1710#ifdef ECORE_XRANDR 1715#ifdef ECORE_XRANDR
1711 Ecore_X_Randr_Crtc *crtcs_to_be_moved = NULL; 1716 Ecore_X_Randr_Crtc *crtcs_to_be_moved = NULL;
@@ -1754,11 +1759,11 @@ ecore_x_randr_move_all_crtcs_but(Ecore_X_Window root,
1754 * @return EINA_TRUE if all crtcs could be moved successfully. 1759 * @return EINA_TRUE if all crtcs could be moved successfully.
1755 */ 1760 */
1756EAPI Eina_Bool 1761EAPI Eina_Bool
1757ecore_x_randr_move_crtcs(Ecore_X_Window root, 1762ecore_x_randr_move_crtcs(Ecore_X_Window root,
1758 const Ecore_X_Randr_Crtc *crtcs, 1763 const Ecore_X_Randr_Crtc *crtcs,
1759 int ncrtc, 1764 int ncrtc,
1760 int dx, 1765 int dx,
1761 int dy) 1766 int dy)
1762{ 1767{
1763#ifdef ECORE_XRANDR 1768#ifdef ECORE_XRANDR
1764 RANDR_CHECK_1_2_RET(EINA_FALSE); 1769 RANDR_CHECK_1_2_RET(EINA_FALSE);
@@ -1821,18 +1826,18 @@ ecore_x_randr_move_crtcs(Ecore_X_Window root,
1821 { 1826 {
1822 //something went wrong, let's try to move the already moved crtcs 1827 //something went wrong, let's try to move the already moved crtcs
1823 //back. 1828 //back.
1824 while ((i--) >= 0) 1829 while ((i--) >= 0)
1825 { 1830 {
1826 if (crtc_info[i]) 1831 if (crtc_info[i])
1827 ecore_x_randr_crtc_settings_set(root, 1832 ecore_x_randr_crtc_settings_set(root,
1828 crtcs[i], 1833 crtcs[i],
1829 NULL, 1834 NULL,
1830 Ecore_X_Randr_Unset, 1835 Ecore_X_Randr_Unset,
1831 (crtc_info[i]->x - dx), 1836 (crtc_info[i]->x - dx),
1832 (crtc_info[i]->y - dy), 1837 (crtc_info[i]->y - dy),
1833 crtc_info[i]->mode, 1838 crtc_info[i]->mode,
1834 crtc_info[i]->rotation); 1839 crtc_info[i]->rotation);
1835 } 1840 }
1836 } 1841 }
1837 1842
1838 for (i = 0; i < ncrtc; i++) 1843 for (i = 0; i < ncrtc; i++)
@@ -1923,7 +1928,7 @@ ecore_x_randr_screen_reset(Ecore_X_Window root)
1923 1928
1924EAPI void 1929EAPI void
1925ecore_x_randr_screen_backlight_level_set(Ecore_X_Window root, 1930ecore_x_randr_screen_backlight_level_set(Ecore_X_Window root,
1926 double level) 1931 double level)
1927{ 1932{
1928#ifdef ECORE_XRANDR 1933#ifdef ECORE_XRANDR
1929 RANDR_CHECK_1_2_RET(); 1934 RANDR_CHECK_1_2_RET();
@@ -1965,6 +1970,26 @@ ecore_x_randr_screen_backlight_level_set(Ecore_X_Window root,
1965} 1970}
1966 1971
1967/* 1972/*
1973 * @brief check if a backlight is available
1974 * @return whether a blacklight is available
1975 */
1976
1977EAPI Eina_Bool
1978ecore_x_randr_output_backlight_available(void)
1979{
1980#ifdef ECORE_XRANDR
1981 RANDR_CHECK_1_2_RET(-1);
1982 Atom _backlight;
1983
1984 _backlight = XInternAtom(_ecore_x_disp, RANDR_PROPERTY_BACKLIGHT, True);
1985
1986 return (_backlight == None) ? EINA_FALSE : EINA_TRUE;
1987
1988#endif
1989 return EINA_FALSE;
1990}
1991
1992/*
1968 * @brief get the backlight level of the given output 1993 * @brief get the backlight level of the given output
1969 * @param root window which's screen should be queried 1994 * @param root window which's screen should be queried
1970 * @param output from which the backlight level should be retrieved 1995 * @param output from which the backlight level should be retrieved
@@ -1972,7 +1997,7 @@ ecore_x_randr_screen_backlight_level_set(Ecore_X_Window root,
1972 */ 1997 */
1973 1998
1974EAPI double 1999EAPI double
1975ecore_x_randr_output_backlight_level_get(Ecore_X_Window root, 2000ecore_x_randr_output_backlight_level_get(Ecore_X_Window root,
1976 Ecore_X_Randr_Output output) 2001 Ecore_X_Randr_Output output)
1977{ 2002{
1978#ifdef ECORE_XRANDR 2003#ifdef ECORE_XRANDR
@@ -2025,9 +2050,9 @@ ecore_x_randr_output_backlight_level_get(Ecore_X_Window root,
2025 if ((info->range) && (info->num_values == 2)) 2050 if ((info->range) && (info->num_values == 2))
2026 { 2051 {
2027 /* finally convert the current value in the interval [0..1] */ 2052 /* finally convert the current value in the interval [0..1] */
2028 min = info->values[0]; 2053 min = info->values[0];
2029 max = info->values[1]; 2054 max = info->values[1];
2030 dvalue = ((double)(value - min)) / ((double)(max - min)); 2055 dvalue = ((double)(value - min)) / ((double)(max - min));
2031 } 2056 }
2032 free(info); 2057 free(info);
2033 return dvalue; 2058 return dvalue;
@@ -2045,9 +2070,9 @@ ecore_x_randr_output_backlight_level_get(Ecore_X_Window root,
2045 */ 2070 */
2046 2071
2047EAPI Eina_Bool 2072EAPI Eina_Bool
2048ecore_x_randr_output_backlight_level_set(Ecore_X_Window root, 2073ecore_x_randr_output_backlight_level_set(Ecore_X_Window root,
2049 Ecore_X_Randr_Output output, 2074 Ecore_X_Randr_Output output,
2050 double level) 2075 double level)
2051{ 2076{
2052#ifdef ECORE_XRANDR 2077#ifdef ECORE_XRANDR
2053 RANDR_CHECK_1_2_RET(EINA_FALSE); 2078 RANDR_CHECK_1_2_RET(EINA_FALSE);
@@ -2107,7 +2132,7 @@ ecore_x_randr_output_backlight_level_set(Ecore_X_Window root,
2107 2132
2108EAPI Ecore_X_Randr_Output * 2133EAPI Ecore_X_Randr_Output *
2109ecore_x_randr_window_outputs_get(Ecore_X_Window window, 2134ecore_x_randr_window_outputs_get(Ecore_X_Window window,
2110 int *num) 2135 int *num)
2111{ 2136{
2112#ifdef ECORE_XRANDR 2137#ifdef ECORE_XRANDR
2113 Ecore_X_Window root; 2138 Ecore_X_Window root;
@@ -2136,39 +2161,39 @@ ecore_x_randr_window_outputs_get(Ecore_X_Window window,
2136 for (i = 0; i < ncrtcs; i++) 2161 for (i = 0; i < ncrtcs; i++)
2137 { 2162 {
2138 /* if crtc is not enabled, don't bother about it any further */ 2163 /* if crtc is not enabled, don't bother about it any further */
2139 mode = ecore_x_randr_crtc_mode_get(root, crtcs[i]); 2164 mode = ecore_x_randr_crtc_mode_get(root, crtcs[i]);
2140 if (mode == Ecore_X_Randr_None) continue; 2165 if (mode == Ecore_X_Randr_None) continue;
2141 2166
2142 ecore_x_randr_crtc_geometry_get(root, crtcs[i], 2167 ecore_x_randr_crtc_geometry_get(root, crtcs[i],
2143 &c_geo.x, &c_geo.y, 2168 &c_geo.x, &c_geo.y,
2144 &c_geo.w, &c_geo.h); 2169 &c_geo.w, &c_geo.h);
2145 if (eina_rectangles_intersect(&w_geo, &c_geo)) 2170 if (eina_rectangles_intersect(&w_geo, &c_geo))
2146 { 2171 {
2147 outputs = ecore_x_randr_crtc_outputs_get(root, crtcs[i], 2172 outputs = ecore_x_randr_crtc_outputs_get(root, crtcs[i],
2148 &noutputs); 2173 &noutputs);
2149 /* The case below should be impossible, but for safety reasons 2174 /* The case below should be impossible, but for safety reasons
2150 * remains */ 2175 * remains */
2151 if (!outputs) 2176 if (!outputs)
2152 { 2177 {
2153 if (num) *num = 0; 2178 if (num) *num = 0;
2154 free(ret); 2179 free(ret);
2155 free(crtcs); 2180 free(crtcs);
2156 return NULL; 2181 return NULL;
2157 } 2182 }
2158 tret = realloc(ret, ((nret + noutputs) * sizeof(Ecore_X_Randr_Output))); 2183 tret = realloc(ret, ((nret + noutputs) * sizeof(Ecore_X_Randr_Output)));
2159 if (!tret) 2184 if (!tret)
2160 { 2185 {
2161 if (num) *num = 0; 2186 if (num) *num = 0;
2162 free(outputs); 2187 free(outputs);
2163 free(ret); 2188 free(ret);
2164 free(crtcs); 2189 free(crtcs);
2165 return NULL; 2190 return NULL;
2166 } 2191 }
2167 ret = tret; 2192 ret = tret;
2168 memcpy(&ret[nret], outputs, (noutputs * sizeof(Ecore_X_Randr_Output))); 2193 memcpy(&ret[nret], outputs, (noutputs * sizeof(Ecore_X_Randr_Output)));
2169 nret += noutputs; 2194 nret += noutputs;
2170 free(outputs); 2195 free(outputs);
2171 } 2196 }
2172 } 2197 }
2173 free(crtcs); 2198 free(crtcs);
2174 2199
@@ -2192,7 +2217,7 @@ _ecore_x_randr_current_output_get_fail:
2192 2217
2193EINA_DEPRECATED EAPI Ecore_X_Randr_Output * 2218EINA_DEPRECATED EAPI Ecore_X_Randr_Output *
2194ecore_x_randr_current_output_get(Ecore_X_Window window, 2219ecore_x_randr_current_output_get(Ecore_X_Window window,
2195 int *num) 2220 int *num)
2196{ 2221{
2197 return ecore_x_randr_window_outputs_get(window, num); 2222 return ecore_x_randr_window_outputs_get(window, num);
2198} 2223}
diff --git a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_randr_12_edid.c b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_randr_12_edid.c
index d434f2f..5bda332 100644
--- a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_randr_12_edid.c
+++ b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_randr_12_edid.c
@@ -23,6 +23,10 @@
23/* Heavily modified by: Leif Middelschulte <leif.middelschulte@gmail.com> */ 23/* Heavily modified by: Leif Middelschulte <leif.middelschulte@gmail.com> */
24 24
25#include "Ecore_X.h" 25#include "Ecore_X.h"
26#include <stdio.h>
27#include <stdlib.h>
28#include <unistd.h>
29#include <string.h>
26 30
27/* TODO: 31/* TODO:
28 * - see other TODO's within this file. 32 * - see other TODO's within this file.
@@ -100,7 +104,7 @@ typedef enum _Ecore_X_Randr_Edid_Aspect_Ratio_Preferred {
100 104
101EAPI Eina_Bool 105EAPI Eina_Bool
102ecore_x_randr_edid_has_valid_header(unsigned char *edid, 106ecore_x_randr_edid_has_valid_header(unsigned char *edid,
103 unsigned long edid_length) 107 unsigned long edid_length)
104{ 108{
105 const unsigned char header[] = 109 const unsigned char header[] =
106 { 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00 }; 110 { 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00 };
@@ -112,7 +116,7 @@ ecore_x_randr_edid_has_valid_header(unsigned char *edid,
112 116
113EAPI int 117EAPI int
114ecore_x_randr_edid_version_get(unsigned char *edid, 118ecore_x_randr_edid_version_get(unsigned char *edid,
115 unsigned long edid_length) 119 unsigned long edid_length)
116{ 120{
117 if ((edid_length > _ECORE_X_RANDR_EDID_OFFSET_VERSION_MINOR) && 121 if ((edid_length > _ECORE_X_RANDR_EDID_OFFSET_VERSION_MINOR) &&
118 (ecore_x_randr_edid_has_valid_header(edid, edid_length))) 122 (ecore_x_randr_edid_has_valid_header(edid, edid_length)))
@@ -123,7 +127,7 @@ ecore_x_randr_edid_version_get(unsigned char *edid,
123 127
124EAPI int 128EAPI int
125ecore_x_randr_edid_manufacturer_model_get(unsigned char *edid, 129ecore_x_randr_edid_manufacturer_model_get(unsigned char *edid,
126 unsigned long edid_length) 130 unsigned long edid_length)
127{ 131{
128 if ((edid_length > 0x0b) && 132 if ((edid_length > 0x0b) &&
129 (ecore_x_randr_edid_has_valid_header(edid, edid_length))) 133 (ecore_x_randr_edid_has_valid_header(edid, edid_length)))
@@ -133,7 +137,7 @@ ecore_x_randr_edid_manufacturer_model_get(unsigned char *edid,
133 137
134EAPI int 138EAPI int
135ecore_x_randr_edid_manufacturer_serial_number_get(unsigned char *edid, 139ecore_x_randr_edid_manufacturer_serial_number_get(unsigned char *edid,
136 unsigned long edid_length) 140 unsigned long edid_length)
137{ 141{
138 if ((edid_length > 0x0f) && 142 if ((edid_length > 0x0f) &&
139 (ecore_x_randr_edid_has_valid_header(edid, edid_length))) 143 (ecore_x_randr_edid_has_valid_header(edid, edid_length)))
@@ -144,7 +148,7 @@ ecore_x_randr_edid_manufacturer_serial_number_get(unsigned char *edid,
144 148
145EAPI char * 149EAPI char *
146ecore_x_randr_edid_manufacturer_name_get(unsigned char *edid, 150ecore_x_randr_edid_manufacturer_name_get(unsigned char *edid,
147 unsigned long edid_length) 151 unsigned long edid_length)
148{ 152{
149 if ((edid_length > (_ECORE_X_RANDR_EDID_OFFSET_MANUFACTURER + 1)) && 153 if ((edid_length > (_ECORE_X_RANDR_EDID_OFFSET_MANUFACTURER + 1)) &&
150 (ecore_x_randr_edid_has_valid_header(edid, edid_length))) 154 (ecore_x_randr_edid_has_valid_header(edid, edid_length)))
@@ -166,7 +170,7 @@ ecore_x_randr_edid_manufacturer_name_get(unsigned char *edid,
166 170
167EAPI char * 171EAPI char *
168ecore_x_randr_edid_display_name_get(unsigned char *edid, 172ecore_x_randr_edid_display_name_get(unsigned char *edid,
169 unsigned long edid_length) 173 unsigned long edid_length)
170{ 174{
171 unsigned char *block = NULL; 175 unsigned char *block = NULL;
172 int version = ecore_x_randr_edid_version_get(edid, edid_length); 176 int version = ecore_x_randr_edid_version_get(edid, edid_length);
@@ -196,7 +200,7 @@ ecore_x_randr_edid_display_name_get(unsigned char *edid,
196 200
197EAPI Ecore_X_Randr_Edid_Aspect_Ratio 201EAPI Ecore_X_Randr_Edid_Aspect_Ratio
198ecore_x_randr_edid_display_aspect_ratio_preferred_get(unsigned char *edid, 202ecore_x_randr_edid_display_aspect_ratio_preferred_get(unsigned char *edid,
199 unsigned long edid_length) 203 unsigned long edid_length)
200{ 204{
201 unsigned char *block = NULL; 205 unsigned char *block = NULL;
202 int version = ecore_x_randr_edid_version_get(edid, edid_length); 206 int version = ecore_x_randr_edid_version_get(edid, edid_length);
@@ -238,7 +242,7 @@ ecore_x_randr_edid_display_aspect_ratio_preferred_get(unsigned char *edid,
238 242
239EAPI Ecore_X_Randr_Edid_Aspect_Ratio 243EAPI Ecore_X_Randr_Edid_Aspect_Ratio
240ecore_x_randr_edid_display_aspect_ratios_get(unsigned char *edid, 244ecore_x_randr_edid_display_aspect_ratios_get(unsigned char *edid,
241 unsigned long edid_length) 245 unsigned long edid_length)
242{ 246{
243 Ecore_X_Randr_Edid_Aspect_Ratio ret = ECORE_X_RANDR_EDID_UNKNOWN_VALUE; 247 Ecore_X_Randr_Edid_Aspect_Ratio ret = ECORE_X_RANDR_EDID_UNKNOWN_VALUE;
244 unsigned char *block = NULL; 248 unsigned char *block = NULL;
@@ -267,7 +271,7 @@ ecore_x_randr_edid_display_aspect_ratios_get(unsigned char *edid,
267 271
268EAPI char * 272EAPI char *
269ecore_x_randr_edid_display_ascii_get(unsigned char *edid, 273ecore_x_randr_edid_display_ascii_get(unsigned char *edid,
270 unsigned long edid_length) 274 unsigned long edid_length)
271{ 275{
272 unsigned char *block = NULL; 276 unsigned char *block = NULL;
273 int version = ecore_x_randr_edid_version_get(edid, edid_length); 277 int version = ecore_x_randr_edid_version_get(edid, edid_length);
@@ -300,7 +304,7 @@ ecore_x_randr_edid_display_ascii_get(unsigned char *edid,
300 304
301EAPI char * 305EAPI char *
302ecore_x_randr_edid_display_serial_get(unsigned char *edid, 306ecore_x_randr_edid_display_serial_get(unsigned char *edid,
303 unsigned long edid_length) 307 unsigned long edid_length)
304{ 308{
305 unsigned char *block = NULL; 309 unsigned char *block = NULL;
306 int version = ecore_x_randr_edid_version_get(edid, edid_length); 310 int version = ecore_x_randr_edid_version_get(edid, edid_length);
@@ -333,7 +337,7 @@ ecore_x_randr_edid_display_serial_get(unsigned char *edid,
333 337
334EAPI Eina_Bool 338EAPI Eina_Bool
335ecore_x_randr_edid_info_has_valid_checksum(unsigned char *edid, 339ecore_x_randr_edid_info_has_valid_checksum(unsigned char *edid,
336 unsigned long edid_length) 340 unsigned long edid_length)
337{ 341{
338 unsigned char *cea_block_iter = NULL; 342 unsigned char *cea_block_iter = NULL;
339 char sum = 0; 343 char sum = 0;
@@ -344,13 +348,15 @@ ecore_x_randr_edid_info_has_valid_checksum(unsigned char *edid,
344 if (edid_length < 128) return EINA_FALSE; 348 if (edid_length < 128) return EINA_FALSE;
345 349
346 /* Check the EDID block itself */ 350 /* Check the EDID block itself */
347 for (i = 0; i < 128; i++) sum += edid[i]; 351 for (i = 0; i < 128; i++)
352 sum += edid[i];
348 if (sum) return EINA_FALSE; 353 if (sum) return EINA_FALSE;
349 354
350 /* Check the cea extension blocks */ 355 /* Check the cea extension blocks */
351 _ECORE_X_RANDR_EDID_FOR_EACH_CEA_BLOCK(edid, edid_length, cea_block_iter) 356 _ECORE_X_RANDR_EDID_FOR_EACH_CEA_BLOCK(edid, edid_length, cea_block_iter)
352 { 357 {
353 for (i = 0, sum = 0; i < 128; i++) sum += cea_block_iter[i]; 358 for (i = 0, sum = 0; i < 128; i++)
359 sum += cea_block_iter[i];
354 } 360 }
355 if (sum) return EINA_FALSE; 361 if (sum) return EINA_FALSE;
356 return EINA_TRUE; 362 return EINA_TRUE;
@@ -358,7 +364,7 @@ ecore_x_randr_edid_info_has_valid_checksum(unsigned char *edid,
358 364
359EAPI Eina_Bool 365EAPI Eina_Bool
360ecore_x_randr_edid_dpms_available_get(unsigned char *edid, 366ecore_x_randr_edid_dpms_available_get(unsigned char *edid,
361 unsigned long edid_length) 367 unsigned long edid_length)
362{ 368{
363 int version = ecore_x_randr_edid_version_get(edid, edid_length); 369 int version = ecore_x_randr_edid_version_get(edid, edid_length);
364 370
@@ -369,7 +375,7 @@ ecore_x_randr_edid_dpms_available_get(unsigned char *edid,
369 375
370EAPI Eina_Bool 376EAPI Eina_Bool
371ecore_x_randr_edid_dpms_standby_available_get(unsigned char *edid, 377ecore_x_randr_edid_dpms_standby_available_get(unsigned char *edid,
372 unsigned long edid_length) 378 unsigned long edid_length)
373{ 379{
374 int version = ecore_x_randr_edid_version_get(edid, edid_length); 380 int version = ecore_x_randr_edid_version_get(edid, edid_length);
375 381
@@ -382,7 +388,7 @@ ecore_x_randr_edid_dpms_standby_available_get(unsigned char *edid,
382 388
383EAPI Eina_Bool 389EAPI Eina_Bool
384ecore_x_randr_edid_dpms_suspend_available_get(unsigned char *edid, 390ecore_x_randr_edid_dpms_suspend_available_get(unsigned char *edid,
385 unsigned long edid_length) 391 unsigned long edid_length)
386{ 392{
387 int version = ecore_x_randr_edid_version_get(edid, edid_length); 393 int version = ecore_x_randr_edid_version_get(edid, edid_length);
388 394
@@ -395,7 +401,7 @@ ecore_x_randr_edid_dpms_suspend_available_get(unsigned char *edid,
395 401
396EAPI Eina_Bool 402EAPI Eina_Bool
397ecore_x_randr_edid_dpms_off_available_get(unsigned char *edid, 403ecore_x_randr_edid_dpms_off_available_get(unsigned char *edid,
398 unsigned long edid_length) 404 unsigned long edid_length)
399{ 405{
400 int version = ecore_x_randr_edid_version_get(edid, edid_length); 406 int version = ecore_x_randr_edid_version_get(edid, edid_length);
401 407
@@ -408,7 +414,7 @@ ecore_x_randr_edid_dpms_off_available_get(unsigned char *edid,
408 414
409EAPI Eina_Bool 415EAPI Eina_Bool
410ecore_x_randr_edid_display_type_digital_get(unsigned char *edid, 416ecore_x_randr_edid_display_type_digital_get(unsigned char *edid,
411 unsigned long edid_length) 417 unsigned long edid_length)
412{ 418{
413 int version = ecore_x_randr_edid_version_get(edid, edid_length); 419 int version = ecore_x_randr_edid_version_get(edid, edid_length);
414 420
@@ -419,7 +425,7 @@ ecore_x_randr_edid_display_type_digital_get(unsigned char *edid,
419 425
420EAPI Ecore_X_Randr_Edid_Display_Colorscheme 426EAPI Ecore_X_Randr_Edid_Display_Colorscheme
421ecore_x_randr_edid_display_colorscheme_get(unsigned char *edid, 427ecore_x_randr_edid_display_colorscheme_get(unsigned char *edid,
422 unsigned long edid_length) 428 unsigned long edid_length)
423{ 429{
424 Ecore_X_Randr_Edid_Display_Colorscheme colorscheme = ECORE_X_RANDR_EDID_UNKNOWN_VALUE; 430 Ecore_X_Randr_Edid_Display_Colorscheme colorscheme = ECORE_X_RANDR_EDID_UNKNOWN_VALUE;
425 int version = ecore_x_randr_edid_version_get(edid, edid_length); 431 int version = ecore_x_randr_edid_version_get(edid, edid_length);
@@ -442,7 +448,7 @@ ecore_x_randr_edid_display_colorscheme_get(unsigned char *edid,
442 448
443EAPI Ecore_X_Randr_Edid_Display_Interface_Type 449EAPI Ecore_X_Randr_Edid_Display_Interface_Type
444ecore_x_randr_edid_display_interface_type_get(unsigned char *edid, 450ecore_x_randr_edid_display_interface_type_get(unsigned char *edid,
445 unsigned long edid_length) 451 unsigned long edid_length)
446{ 452{
447 Ecore_X_Randr_Edid_Display_Interface_Type type = ECORE_X_RANDR_EDID_UNKNOWN_VALUE; 453 Ecore_X_Randr_Edid_Display_Interface_Type type = ECORE_X_RANDR_EDID_UNKNOWN_VALUE;
448 int version = ecore_x_randr_edid_version_get(edid, edid_length); 454 int version = ecore_x_randr_edid_version_get(edid, edid_length);
diff --git a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_randr_13.c b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_randr_13.c
index ab242f7..5d1c8e9 100644
--- a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_randr_13.c
+++ b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_randr_13.c
@@ -8,6 +8,10 @@
8 8
9#include "ecore_x_private.h" 9#include "ecore_x_private.h"
10#include "ecore_x_randr.h" 10#include "ecore_x_randr.h"
11#include <stdio.h>
12#include <stdlib.h>
13#include <unistd.h>
14#include <string.h>
11 15
12#define Ecore_X_Randr_None 0 16#define Ecore_X_Randr_None 0
13#define Ecore_X_Randr_Unset -1 17#define Ecore_X_Randr_Unset -1
@@ -15,7 +19,8 @@
15#ifdef ECORE_XRANDR 19#ifdef ECORE_XRANDR
16 20
17#define RANDR_1_3 ((1 << 16) | 3) 21#define RANDR_1_3 ((1 << 16) | 3)
18#define RANDR_CHECK_1_3_RET(ret) if(_randr_version < RANDR_1_3) return ret 22#define RANDR_CHECK_1_3_RET(ret) if (_randr_version < RANDR_1_3) \
23 return ret
19 24
20extern XRRScreenResources *(*_ecore_x_randr_get_screen_resources)(Display * 25extern XRRScreenResources *(*_ecore_x_randr_get_screen_resources)(Display *
21 dpy, 26 dpy,
@@ -47,7 +52,7 @@ ecore_x_randr_primary_output_get(Ecore_X_Window root)
47 * @param output that should be set as given root window's screen primary output 52 * @param output that should be set as given root window's screen primary output
48 */ 53 */
49EAPI void 54EAPI void
50ecore_x_randr_primary_output_set(Ecore_X_Window root, 55ecore_x_randr_primary_output_set(Ecore_X_Window root,
51 Ecore_X_Randr_Output output) 56 Ecore_X_Randr_Output output)
52{ 57{
53#ifdef ECORE_XRANDR 58#ifdef ECORE_XRANDR
diff --git a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_region.c b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_region.c
index 7cc66e3..81d7eea 100644
--- a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_region.c
+++ b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_region.c
@@ -32,7 +32,7 @@ ecore_x_xregion_new()
32{ 32{
33 LOGFN(__FILE__, __LINE__, __FUNCTION__); 33 LOGFN(__FILE__, __LINE__, __FUNCTION__);
34 return (Ecore_X_XRegion *)XCreateRegion(); 34 return (Ecore_X_XRegion *)XCreateRegion();
35} /* ecore_x_xregion_new */ 35}
36 36
37EAPI void 37EAPI void
38ecore_x_xregion_free(Ecore_X_XRegion *region) 38ecore_x_xregion_free(Ecore_X_XRegion *region)
@@ -42,20 +42,20 @@ ecore_x_xregion_free(Ecore_X_XRegion *region)
42 return; 42 return;
43 43
44 XDestroyRegion((Region)region); 44 XDestroyRegion((Region)region);
45} /* ecore_x_xregion_free */ 45}
46 46
47EAPI Eina_Bool 47EAPI Eina_Bool
48ecore_x_xregion_set(Ecore_X_XRegion *region, 48ecore_x_xregion_set(Ecore_X_XRegion *region,
49 Ecore_X_GC gc) 49 Ecore_X_GC gc)
50{ 50{
51 LOGFN(__FILE__, __LINE__, __FUNCTION__); 51 LOGFN(__FILE__, __LINE__, __FUNCTION__);
52 return XSetRegion(_ecore_x_disp, gc, (Region)region) ? EINA_TRUE : EINA_FALSE; 52 return XSetRegion(_ecore_x_disp, gc, (Region)region) ? EINA_TRUE : EINA_FALSE;
53} /* ecore_x_xregion_set */ 53}
54 54
55EAPI void 55EAPI void
56ecore_x_xregion_translate(Ecore_X_XRegion *region, 56ecore_x_xregion_translate(Ecore_X_XRegion *region,
57 int x, 57 int x,
58 int y) 58 int y)
59{ 59{
60 LOGFN(__FILE__, __LINE__, __FUNCTION__); 60 LOGFN(__FILE__, __LINE__, __FUNCTION__);
61 if (!region) 61 if (!region)
@@ -63,7 +63,7 @@ ecore_x_xregion_translate(Ecore_X_XRegion *region,
63 63
64 /* return value not used */ 64 /* return value not used */
65 XOffsetRegion((Region)region, x, y); 65 XOffsetRegion((Region)region, x, y);
66} /* ecore_x_xregion_translate */ 66}
67 67
68EAPI Eina_Bool 68EAPI Eina_Bool
69ecore_x_xregion_intersect(Ecore_X_XRegion *dst, 69ecore_x_xregion_intersect(Ecore_X_XRegion *dst,
@@ -72,7 +72,7 @@ ecore_x_xregion_intersect(Ecore_X_XRegion *dst,
72{ 72{
73 LOGFN(__FILE__, __LINE__, __FUNCTION__); 73 LOGFN(__FILE__, __LINE__, __FUNCTION__);
74 return XIntersectRegion((Region)r1, (Region)r2, (Region)dst) ? EINA_TRUE : EINA_FALSE; 74 return XIntersectRegion((Region)r1, (Region)r2, (Region)dst) ? EINA_TRUE : EINA_FALSE;
75} /* ecore_x_xregion_intersect */ 75}
76 76
77EAPI Eina_Bool 77EAPI Eina_Bool
78ecore_x_xregion_union(Ecore_X_XRegion *dst, 78ecore_x_xregion_union(Ecore_X_XRegion *dst,
@@ -81,11 +81,11 @@ ecore_x_xregion_union(Ecore_X_XRegion *dst,
81{ 81{
82 LOGFN(__FILE__, __LINE__, __FUNCTION__); 82 LOGFN(__FILE__, __LINE__, __FUNCTION__);
83 return XUnionRegion((Region)r1, (Region)r2, (Region)dst) ? EINA_TRUE : EINA_FALSE; 83 return XUnionRegion((Region)r1, (Region)r2, (Region)dst) ? EINA_TRUE : EINA_FALSE;
84} /* ecore_x_xregion_union */ 84}
85 85
86EAPI Eina_Bool 86EAPI Eina_Bool
87ecore_x_xregion_union_rect(Ecore_X_XRegion *dst, 87ecore_x_xregion_union_rect(Ecore_X_XRegion *dst,
88 Ecore_X_XRegion *src, 88 Ecore_X_XRegion *src,
89 Ecore_X_Rectangle *rect) 89 Ecore_X_Rectangle *rect)
90{ 90{
91 XRectangle xr; 91 XRectangle xr;
@@ -97,7 +97,7 @@ ecore_x_xregion_union_rect(Ecore_X_XRegion *dst,
97 xr.height = rect->height; 97 xr.height = rect->height;
98 98
99 return XUnionRectWithRegion(&xr, (Region)src, (Region)dst) ? EINA_TRUE : EINA_FALSE; 99 return XUnionRectWithRegion(&xr, (Region)src, (Region)dst) ? EINA_TRUE : EINA_FALSE;
100} /* ecore_x_xregion_union_rect */ 100}
101 101
102EAPI Eina_Bool 102EAPI Eina_Bool
103ecore_x_xregion_subtract(Ecore_X_XRegion *dst, 103ecore_x_xregion_subtract(Ecore_X_XRegion *dst,
@@ -106,7 +106,7 @@ ecore_x_xregion_subtract(Ecore_X_XRegion *dst,
106{ 106{
107 LOGFN(__FILE__, __LINE__, __FUNCTION__); 107 LOGFN(__FILE__, __LINE__, __FUNCTION__);
108 return XSubtractRegion((Region)rm, (Region)rs, (Region)dst) ? EINA_TRUE : EINA_FALSE; 108 return XSubtractRegion((Region)rm, (Region)rs, (Region)dst) ? EINA_TRUE : EINA_FALSE;
109} /* ecore_x_xregion_subtract */ 109}
110 110
111EAPI Eina_Bool 111EAPI Eina_Bool
112ecore_x_xregion_is_empty(Ecore_X_XRegion *region) 112ecore_x_xregion_is_empty(Ecore_X_XRegion *region)
@@ -116,7 +116,7 @@ ecore_x_xregion_is_empty(Ecore_X_XRegion *region)
116 116
117 LOGFN(__FILE__, __LINE__, __FUNCTION__); 117 LOGFN(__FILE__, __LINE__, __FUNCTION__);
118 return XEmptyRegion((Region)region) ? EINA_TRUE : EINA_FALSE; 118 return XEmptyRegion((Region)region) ? EINA_TRUE : EINA_FALSE;
119} /* ecore_x_xregion_is_empty */ 119}
120 120
121EAPI Eina_Bool 121EAPI Eina_Bool
122ecore_x_xregion_is_equal(Ecore_X_XRegion *r1, 122ecore_x_xregion_is_equal(Ecore_X_XRegion *r1,
@@ -127,22 +127,22 @@ ecore_x_xregion_is_equal(Ecore_X_XRegion *r1,
127 127
128 LOGFN(__FILE__, __LINE__, __FUNCTION__); 128 LOGFN(__FILE__, __LINE__, __FUNCTION__);
129 return XEqualRegion((Region)r1, (Region)r1) ? EINA_TRUE : EINA_FALSE; 129 return XEqualRegion((Region)r1, (Region)r1) ? EINA_TRUE : EINA_FALSE;
130} /* ecore_x_xregion_is_equal */ 130}
131 131
132EAPI Eina_Bool 132EAPI Eina_Bool
133ecore_x_xregion_point_contain(Ecore_X_XRegion *region, 133ecore_x_xregion_point_contain(Ecore_X_XRegion *region,
134 int x, 134 int x,
135 int y) 135 int y)
136{ 136{
137 if (!region) 137 if (!region)
138 return EINA_FALSE; 138 return EINA_FALSE;
139 139
140 LOGFN(__FILE__, __LINE__, __FUNCTION__); 140 LOGFN(__FILE__, __LINE__, __FUNCTION__);
141 return XPointInRegion((Region)region, x, y) ? EINA_TRUE : EINA_FALSE; 141 return XPointInRegion((Region)region, x, y) ? EINA_TRUE : EINA_FALSE;
142} /* ecore_x_xregion_point_contain */ 142}
143 143
144EAPI Eina_Bool 144EAPI Eina_Bool
145ecore_x_xregion_rect_contain(Ecore_X_XRegion *region, 145ecore_x_xregion_rect_contain(Ecore_X_XRegion *region,
146 Ecore_X_Rectangle *rect) 146 Ecore_X_Rectangle *rect)
147{ 147{
148 if (!region || !rect) 148 if (!region || !rect)
@@ -154,5 +154,5 @@ ecore_x_xregion_rect_contain(Ecore_X_XRegion *region,
154 rect->y, 154 rect->y,
155 rect->width, 155 rect->width,
156 rect->height) ? EINA_TRUE : EINA_FALSE; 156 rect->height) ? EINA_TRUE : EINA_FALSE;
157} /* ecore_x_xregion_rect_contain */ 157}
158 158
diff --git a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_screensaver.c b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_screensaver.c
index a3bca67..40dd738 100644
--- a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_screensaver.c
+++ b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_screensaver.c
@@ -36,7 +36,7 @@ ecore_x_screensaver_event_available_get(void)
36 _screensaver_available = 0; 36 _screensaver_available = 0;
37#endif /* ifdef ECORE_XSS */ 37#endif /* ifdef ECORE_XSS */
38 return _screensaver_available; 38 return _screensaver_available;
39} /* ecore_x_screensaver_event_available_get */ 39}
40 40
41EAPI int 41EAPI int
42ecore_x_screensaver_idle_time_get(void) 42ecore_x_screensaver_idle_time_get(void)
@@ -57,7 +57,7 @@ ecore_x_screensaver_idle_time_get(void)
57#else 57#else
58 return 0; 58 return 0;
59#endif /* ifdef ECORE_XSS */ 59#endif /* ifdef ECORE_XSS */
60} /* ecore_x_screensaver_idle_time_get */ 60}
61 61
62EAPI void 62EAPI void
63ecore_x_screensaver_set(int timeout, 63ecore_x_screensaver_set(int timeout,
@@ -71,7 +71,7 @@ ecore_x_screensaver_set(int timeout,
71 interval, 71 interval,
72 prefer_blanking, 72 prefer_blanking,
73 allow_exposures); 73 allow_exposures);
74} /* ecore_x_screensaver_set */ 74}
75 75
76EAPI void 76EAPI void
77ecore_x_screensaver_timeout_set(int timeout) 77ecore_x_screensaver_timeout_set(int timeout)
@@ -81,7 +81,7 @@ ecore_x_screensaver_timeout_set(int timeout)
81 LOGFN(__FILE__, __LINE__, __FUNCTION__); 81 LOGFN(__FILE__, __LINE__, __FUNCTION__);
82 XGetScreenSaver(_ecore_x_disp, &pto, &pint, &pblank, &pexpo); 82 XGetScreenSaver(_ecore_x_disp, &pto, &pint, &pblank, &pexpo);
83 XSetScreenSaver(_ecore_x_disp, timeout, pint, pblank, pexpo); 83 XSetScreenSaver(_ecore_x_disp, timeout, pint, pblank, pexpo);
84} /* ecore_x_screensaver_timeout_set */ 84}
85 85
86EAPI int 86EAPI int
87ecore_x_screensaver_timeout_get(void) 87ecore_x_screensaver_timeout_get(void)
@@ -91,7 +91,7 @@ ecore_x_screensaver_timeout_get(void)
91 LOGFN(__FILE__, __LINE__, __FUNCTION__); 91 LOGFN(__FILE__, __LINE__, __FUNCTION__);
92 XGetScreenSaver(_ecore_x_disp, &pto, &pint, &pblank, &pexpo); 92 XGetScreenSaver(_ecore_x_disp, &pto, &pint, &pblank, &pexpo);
93 return pto; 93 return pto;
94} /* ecore_x_screensaver_timeout_get */ 94}
95 95
96EAPI void 96EAPI void
97ecore_x_screensaver_blank_set(int blank) 97ecore_x_screensaver_blank_set(int blank)
@@ -101,7 +101,7 @@ ecore_x_screensaver_blank_set(int blank)
101 LOGFN(__FILE__, __LINE__, __FUNCTION__); 101 LOGFN(__FILE__, __LINE__, __FUNCTION__);
102 XGetScreenSaver(_ecore_x_disp, &pto, &pint, &pblank, &pexpo); 102 XGetScreenSaver(_ecore_x_disp, &pto, &pint, &pblank, &pexpo);
103 XSetScreenSaver(_ecore_x_disp, pto, pint, blank, pexpo); 103 XSetScreenSaver(_ecore_x_disp, pto, pint, blank, pexpo);
104} /* ecore_x_screensaver_blank_set */ 104}
105 105
106EAPI int 106EAPI int
107ecore_x_screensaver_blank_get(void) 107ecore_x_screensaver_blank_get(void)
@@ -111,7 +111,7 @@ ecore_x_screensaver_blank_get(void)
111 LOGFN(__FILE__, __LINE__, __FUNCTION__); 111 LOGFN(__FILE__, __LINE__, __FUNCTION__);
112 XGetScreenSaver(_ecore_x_disp, &pto, &pint, &pblank, &pexpo); 112 XGetScreenSaver(_ecore_x_disp, &pto, &pint, &pblank, &pexpo);
113 return pblank; 113 return pblank;
114} /* ecore_x_screensaver_blank_get */ 114}
115 115
116EAPI void 116EAPI void
117ecore_x_screensaver_expose_set(int expose) 117ecore_x_screensaver_expose_set(int expose)
@@ -121,7 +121,7 @@ ecore_x_screensaver_expose_set(int expose)
121 LOGFN(__FILE__, __LINE__, __FUNCTION__); 121 LOGFN(__FILE__, __LINE__, __FUNCTION__);
122 XGetScreenSaver(_ecore_x_disp, &pto, &pint, &pblank, &pexpo); 122 XGetScreenSaver(_ecore_x_disp, &pto, &pint, &pblank, &pexpo);
123 XSetScreenSaver(_ecore_x_disp, pto, pint, pblank, expose); 123 XSetScreenSaver(_ecore_x_disp, pto, pint, pblank, expose);
124} /* ecore_x_screensaver_expose_set */ 124}
125 125
126EAPI int 126EAPI int
127ecore_x_screensaver_expose_get(void) 127ecore_x_screensaver_expose_get(void)
@@ -131,7 +131,7 @@ ecore_x_screensaver_expose_get(void)
131 LOGFN(__FILE__, __LINE__, __FUNCTION__); 131 LOGFN(__FILE__, __LINE__, __FUNCTION__);
132 XGetScreenSaver(_ecore_x_disp, &pto, &pint, &pblank, &pexpo); 132 XGetScreenSaver(_ecore_x_disp, &pto, &pint, &pblank, &pexpo);
133 return pexpo; 133 return pexpo;
134} /* ecore_x_screensaver_expose_get */ 134}
135 135
136EAPI void 136EAPI void
137ecore_x_screensaver_interval_set(int interval) 137ecore_x_screensaver_interval_set(int interval)
@@ -141,7 +141,7 @@ ecore_x_screensaver_interval_set(int interval)
141 LOGFN(__FILE__, __LINE__, __FUNCTION__); 141 LOGFN(__FILE__, __LINE__, __FUNCTION__);
142 XGetScreenSaver(_ecore_x_disp, &pto, &pint, &pblank, &pexpo); 142 XGetScreenSaver(_ecore_x_disp, &pto, &pint, &pblank, &pexpo);
143 XSetScreenSaver(_ecore_x_disp, pto, interval, pblank, pexpo); 143 XSetScreenSaver(_ecore_x_disp, pto, interval, pblank, pexpo);
144} /* ecore_x_screensaver_interval_set */ 144}
145 145
146EAPI int 146EAPI int
147ecore_x_screensaver_interval_get(void) 147ecore_x_screensaver_interval_get(void)
@@ -151,7 +151,7 @@ ecore_x_screensaver_interval_get(void)
151 LOGFN(__FILE__, __LINE__, __FUNCTION__); 151 LOGFN(__FILE__, __LINE__, __FUNCTION__);
152 XGetScreenSaver(_ecore_x_disp, &pto, &pint, &pblank, &pexpo); 152 XGetScreenSaver(_ecore_x_disp, &pto, &pint, &pblank, &pexpo);
153 return pint; 153 return pint;
154} /* ecore_x_screensaver_interval_get */ 154}
155 155
156EAPI void 156EAPI void
157ecore_x_screensaver_event_listen_set(Eina_Bool on) 157ecore_x_screensaver_event_listen_set(Eina_Bool on)
@@ -169,5 +169,5 @@ ecore_x_screensaver_event_listen_set(Eina_Bool on)
169 return; 169 return;
170 on = EINA_FALSE; 170 on = EINA_FALSE;
171#endif /* ifdef ECORE_XSS */ 171#endif /* ifdef ECORE_XSS */
172} /* ecore_x_screensaver_event_listen_set */ 172}
173 173
diff --git a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_selection.c b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_selection.c
index b1aa611..fa177c3 100644
--- a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_selection.c
+++ b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_selection.c
@@ -15,29 +15,29 @@ static Ecore_X_Selection_Intern selections[4];
15static Ecore_X_Selection_Converter *converters = NULL; 15static Ecore_X_Selection_Converter *converters = NULL;
16static Ecore_X_Selection_Parser *parsers = NULL; 16static Ecore_X_Selection_Parser *parsers = NULL;
17 17
18static Eina_Bool _ecore_x_selection_converter_text(char *target, 18static Eina_Bool _ecore_x_selection_converter_text(char *target,
19 void *data, 19 void *data,
20 int size, 20 int size,
21 void **data_ret, 21 void **data_ret,
22 int *size_ret, 22 int *size_ret,
23 Ecore_X_Atom *tprop, 23 Ecore_X_Atom *tprop,
24 int *); 24 int *);
25static int _ecore_x_selection_data_default_free(void *data); 25static int _ecore_x_selection_data_default_free(void *data);
26static void *_ecore_x_selection_parser_files(const char *target, 26static void *_ecore_x_selection_parser_files(const char *target,
27 void *data, 27 void *data,
28 int size, 28 int size,
29 int format); 29 int format);
30static int _ecore_x_selection_data_files_free(void *data); 30static int _ecore_x_selection_data_files_free(void *data);
31static void *_ecore_x_selection_parser_text(const char *target, 31static void *_ecore_x_selection_parser_text(const char *target,
32 void *data, 32 void *data,
33 int size, 33 int size,
34 int format); 34 int format);
35static int _ecore_x_selection_data_text_free(void *data); 35static int _ecore_x_selection_data_text_free(void *data);
36static void *_ecore_x_selection_parser_targets(const char *target, 36static void *_ecore_x_selection_parser_targets(const char *target,
37 void *data, 37 void *data,
38 int size, 38 int size,
39 int format); 39 int format);
40static int _ecore_x_selection_data_targets_free(void *data); 40static int _ecore_x_selection_data_targets_free(void *data);
41 41
42#define ECORE_X_SELECTION_DATA(x) ((Ecore_X_Selection_Data *)(x)) 42#define ECORE_X_SELECTION_DATA(x) ((Ecore_X_Selection_Data *)(x))
43 43
@@ -45,32 +45,32 @@ void
45_ecore_x_selection_data_init(void) 45_ecore_x_selection_data_init(void)
46{ 46{
47 /* Initialize global data */ 47 /* Initialize global data */
48 memset(selections, 0, sizeof(selections)); 48 memset(selections, 0, sizeof(selections));
49 49
50 /* Initialize converters */ 50 /* Initialize converters */
51 ecore_x_selection_converter_atom_add(ECORE_X_ATOM_TEXT, 51 ecore_x_selection_converter_atom_add(ECORE_X_ATOM_TEXT,
52 _ecore_x_selection_converter_text); 52 _ecore_x_selection_converter_text);
53#ifdef X_HAVE_UTF8_STRING 53#ifdef X_HAVE_UTF8_STRING
54 ecore_x_selection_converter_atom_add(ECORE_X_ATOM_UTF8_STRING, 54 ecore_x_selection_converter_atom_add(ECORE_X_ATOM_UTF8_STRING,
55 _ecore_x_selection_converter_text); 55 _ecore_x_selection_converter_text);
56#endif /* ifdef X_HAVE_UTF8_STRING */ 56#endif /* ifdef X_HAVE_UTF8_STRING */
57 ecore_x_selection_converter_atom_add(ECORE_X_ATOM_COMPOUND_TEXT, 57 ecore_x_selection_converter_atom_add(ECORE_X_ATOM_COMPOUND_TEXT,
58 _ecore_x_selection_converter_text); 58 _ecore_x_selection_converter_text);
59 ecore_x_selection_converter_atom_add(ECORE_X_ATOM_STRING, 59 ecore_x_selection_converter_atom_add(ECORE_X_ATOM_STRING,
60 _ecore_x_selection_converter_text); 60 _ecore_x_selection_converter_text);
61 61
62 /* Initialize parsers */ 62 /* Initialize parsers */
63 ecore_x_selection_parser_add("text/plain", 63 ecore_x_selection_parser_add("text/plain",
64 _ecore_x_selection_parser_text); 64 _ecore_x_selection_parser_text);
65 ecore_x_selection_parser_add(ECORE_X_SELECTION_TARGET_UTF8_STRING, 65 ecore_x_selection_parser_add(ECORE_X_SELECTION_TARGET_UTF8_STRING,
66 _ecore_x_selection_parser_text); 66 _ecore_x_selection_parser_text);
67 ecore_x_selection_parser_add("text/uri-list", 67 ecore_x_selection_parser_add("text/uri-list",
68 _ecore_x_selection_parser_files); 68 _ecore_x_selection_parser_files);
69 ecore_x_selection_parser_add("_NETSCAPE_URL", 69 ecore_x_selection_parser_add("_NETSCAPE_URL",
70 _ecore_x_selection_parser_files); 70 _ecore_x_selection_parser_files);
71 ecore_x_selection_parser_add(ECORE_X_SELECTION_TARGET_TARGETS, 71 ecore_x_selection_parser_add(ECORE_X_SELECTION_TARGET_TARGETS,
72 _ecore_x_selection_parser_targets); 72 _ecore_x_selection_parser_targets);
73} /* _ecore_x_selection_data_init */ 73}
74 74
75void 75void
76_ecore_x_selection_shutdown(void) 76_ecore_x_selection_shutdown(void)
@@ -102,7 +102,7 @@ _ecore_x_selection_shutdown(void)
102 free(tmp); 102 free(tmp);
103 } 103 }
104 parsers = NULL; 104 parsers = NULL;
105} /* _ecore_x_selection_shutdown */ 105}
106 106
107Ecore_X_Selection_Intern * 107Ecore_X_Selection_Intern *
108_ecore_x_selection_get(Ecore_X_Atom selection) 108_ecore_x_selection_get(Ecore_X_Atom selection)
@@ -117,12 +117,12 @@ _ecore_x_selection_get(Ecore_X_Atom selection)
117 return &selections[3]; 117 return &selections[3];
118 else 118 else
119 return NULL; 119 return NULL;
120} /* _ecore_x_selection_get */ 120}
121 121
122Eina_Bool 122Eina_Bool
123_ecore_x_selection_set(Window w, 123_ecore_x_selection_set(Window w,
124 const void *data, 124 const void *data,
125 int size, 125 int size,
126 Ecore_X_Atom selection) 126 Ecore_X_Atom selection)
127{ 127{
128 int in; 128 int in;
@@ -162,7 +162,7 @@ _ecore_x_selection_set(Window w,
162 } 162 }
163 163
164 return EINA_TRUE; 164 return EINA_TRUE;
165} /* _ecore_x_selection_set */ 165}
166 166
167/** 167/**
168 * Claim ownership of the PRIMARY selection and set its data. 168 * Claim ownership of the PRIMARY selection and set its data.
@@ -174,12 +174,12 @@ _ecore_x_selection_set(Window w,
174 */ 174 */
175EAPI Eina_Bool 175EAPI Eina_Bool
176ecore_x_selection_primary_set(Ecore_X_Window w, 176ecore_x_selection_primary_set(Ecore_X_Window w,
177 const void *data, 177 const void *data,
178 int size) 178 int size)
179{ 179{
180 LOGFN(__FILE__, __LINE__, __FUNCTION__); 180 LOGFN(__FILE__, __LINE__, __FUNCTION__);
181 return _ecore_x_selection_set(w, data, size, ECORE_X_ATOM_SELECTION_PRIMARY); 181 return _ecore_x_selection_set(w, data, size, ECORE_X_ATOM_SELECTION_PRIMARY);
182} /* ecore_x_selection_primary_set */ 182}
183 183
184/** 184/**
185 * Release ownership of the primary selection 185 * Release ownership of the primary selection
@@ -192,7 +192,7 @@ ecore_x_selection_primary_clear(void)
192{ 192{
193 LOGFN(__FILE__, __LINE__, __FUNCTION__); 193 LOGFN(__FILE__, __LINE__, __FUNCTION__);
194 return _ecore_x_selection_set(None, NULL, 0, ECORE_X_ATOM_SELECTION_PRIMARY); 194 return _ecore_x_selection_set(None, NULL, 0, ECORE_X_ATOM_SELECTION_PRIMARY);
195} /* ecore_x_selection_primary_clear */ 195}
196 196
197/** 197/**
198 * Claim ownership of the SECONDARY selection and set its data. 198 * Claim ownership of the SECONDARY selection and set its data.
@@ -204,15 +204,15 @@ ecore_x_selection_primary_clear(void)
204 */ 204 */
205EAPI Eina_Bool 205EAPI Eina_Bool
206ecore_x_selection_secondary_set(Ecore_X_Window w, 206ecore_x_selection_secondary_set(Ecore_X_Window w,
207 const void *data, 207 const void *data,
208 int size) 208 int size)
209{ 209{
210 LOGFN(__FILE__, __LINE__, __FUNCTION__); 210 LOGFN(__FILE__, __LINE__, __FUNCTION__);
211 return _ecore_x_selection_set(w, 211 return _ecore_x_selection_set(w,
212 data, 212 data,
213 size, 213 size,
214 ECORE_X_ATOM_SELECTION_SECONDARY); 214 ECORE_X_ATOM_SELECTION_SECONDARY);
215} /* ecore_x_selection_secondary_set */ 215}
216 216
217/** 217/**
218 * Release ownership of the secondary selection 218 * Release ownership of the secondary selection
@@ -228,7 +228,7 @@ ecore_x_selection_secondary_clear(void)
228 NULL, 228 NULL,
229 0, 229 0,
230 ECORE_X_ATOM_SELECTION_SECONDARY); 230 ECORE_X_ATOM_SELECTION_SECONDARY);
231} /* ecore_x_selection_secondary_clear */ 231}
232 232
233/** 233/**
234 * Claim ownership of the XDND selection and set its data. 234 * Claim ownership of the XDND selection and set its data.
@@ -240,12 +240,12 @@ ecore_x_selection_secondary_clear(void)
240 */ 240 */
241EAPI Eina_Bool 241EAPI Eina_Bool
242ecore_x_selection_xdnd_set(Ecore_X_Window w, 242ecore_x_selection_xdnd_set(Ecore_X_Window w,
243 const void *data, 243 const void *data,
244 int size) 244 int size)
245{ 245{
246 LOGFN(__FILE__, __LINE__, __FUNCTION__); 246 LOGFN(__FILE__, __LINE__, __FUNCTION__);
247 return _ecore_x_selection_set(w, data, size, ECORE_X_ATOM_SELECTION_XDND); 247 return _ecore_x_selection_set(w, data, size, ECORE_X_ATOM_SELECTION_XDND);
248} /* ecore_x_selection_xdnd_set */ 248}
249 249
250/** 250/**
251 * Release ownership of the XDND selection 251 * Release ownership of the XDND selection
@@ -258,7 +258,7 @@ ecore_x_selection_xdnd_clear(void)
258{ 258{
259 LOGFN(__FILE__, __LINE__, __FUNCTION__); 259 LOGFN(__FILE__, __LINE__, __FUNCTION__);
260 return _ecore_x_selection_set(None, NULL, 0, ECORE_X_ATOM_SELECTION_XDND); 260 return _ecore_x_selection_set(None, NULL, 0, ECORE_X_ATOM_SELECTION_XDND);
261} /* ecore_x_selection_xdnd_clear */ 261}
262 262
263/** 263/**
264 * Claim ownership of the CLIPBOARD selection and set its data. 264 * Claim ownership of the CLIPBOARD selection and set its data.
@@ -273,15 +273,15 @@ ecore_x_selection_xdnd_clear(void)
273 */ 273 */
274EAPI Eina_Bool 274EAPI Eina_Bool
275ecore_x_selection_clipboard_set(Ecore_X_Window w, 275ecore_x_selection_clipboard_set(Ecore_X_Window w,
276 const void *data, 276 const void *data,
277 int size) 277 int size)
278{ 278{
279 LOGFN(__FILE__, __LINE__, __FUNCTION__); 279 LOGFN(__FILE__, __LINE__, __FUNCTION__);
280 return _ecore_x_selection_set(w, 280 return _ecore_x_selection_set(w,
281 data, 281 data,
282 size, 282 size,
283 ECORE_X_ATOM_SELECTION_CLIPBOARD); 283 ECORE_X_ATOM_SELECTION_CLIPBOARD);
284} /* ecore_x_selection_clipboard_set */ 284}
285 285
286/** 286/**
287 * Release ownership of the clipboard selection 287 * Release ownership of the clipboard selection
@@ -297,7 +297,7 @@ ecore_x_selection_clipboard_clear(void)
297 NULL, 297 NULL,
298 0, 298 0,
299 ECORE_X_ATOM_SELECTION_CLIPBOARD); 299 ECORE_X_ATOM_SELECTION_CLIPBOARD);
300} /* ecore_x_selection_clipboard_clear */ 300}
301 301
302Ecore_X_Atom 302Ecore_X_Atom
303_ecore_x_selection_target_atom_get(const char *target) 303_ecore_x_selection_target_atom_get(const char *target)
@@ -318,29 +318,29 @@ _ecore_x_selection_target_atom_get(const char *target)
318 x_target = ecore_x_atom_get(target); 318 x_target = ecore_x_atom_get(target);
319 319
320 return x_target; 320 return x_target;
321} /* _ecore_x_selection_target_atom_get */ 321}
322 322
323char * 323char *
324_ecore_x_selection_target_get(Ecore_X_Atom target) 324_ecore_x_selection_target_get(Ecore_X_Atom target)
325{ 325{
326 /* FIXME: Should not return mem allocated with strdup or X mixed, 326 /* FIXME: Should not return mem allocated with strdup or X mixed,
327 * one should use free to free, the other XFree */ 327 * one should use free to free, the other XFree */
328 if (target == ECORE_X_ATOM_FILE_NAME) 328 if (target == ECORE_X_ATOM_FILE_NAME)
329 return strdup(ECORE_X_SELECTION_TARGET_FILENAME); 329 return strdup(ECORE_X_SELECTION_TARGET_FILENAME);
330 else if (target == ECORE_X_ATOM_STRING) 330 else if (target == ECORE_X_ATOM_STRING)
331 return strdup(ECORE_X_SELECTION_TARGET_STRING); 331 return strdup(ECORE_X_SELECTION_TARGET_STRING);
332 else if (target == ECORE_X_ATOM_UTF8_STRING) 332 else if (target == ECORE_X_ATOM_UTF8_STRING)
333 return strdup(ECORE_X_SELECTION_TARGET_UTF8_STRING); 333 return strdup(ECORE_X_SELECTION_TARGET_UTF8_STRING);
334 else if (target == ECORE_X_ATOM_TEXT) 334 else if (target == ECORE_X_ATOM_TEXT)
335 return strdup(ECORE_X_SELECTION_TARGET_TEXT); 335 return strdup(ECORE_X_SELECTION_TARGET_TEXT);
336 else 336 else
337 return XGetAtomName(_ecore_x_disp, target); 337 return XGetAtomName(_ecore_x_disp, target);
338} /* _ecore_x_selection_target_get */ 338}
339 339
340static void 340static void
341_ecore_x_selection_request(Ecore_X_Window w, 341_ecore_x_selection_request(Ecore_X_Window w,
342 Ecore_X_Atom selection, 342 Ecore_X_Atom selection,
343 const char *target_str) 343 const char *target_str)
344{ 344{
345 Ecore_X_Atom target, prop; 345 Ecore_X_Atom target, prop;
346 346
@@ -357,27 +357,27 @@ _ecore_x_selection_request(Ecore_X_Window w,
357 357
358 XConvertSelection(_ecore_x_disp, selection, target, prop, 358 XConvertSelection(_ecore_x_disp, selection, target, prop,
359 w, CurrentTime); 359 w, CurrentTime);
360} /* _ecore_x_selection_request */ 360}
361 361
362EAPI void 362EAPI void
363ecore_x_selection_primary_request(Ecore_X_Window w, 363ecore_x_selection_primary_request(Ecore_X_Window w,
364 const char *target) 364 const char *target)
365{ 365{
366 LOGFN(__FILE__, __LINE__, __FUNCTION__); 366 LOGFN(__FILE__, __LINE__, __FUNCTION__);
367 _ecore_x_selection_request(w, ECORE_X_ATOM_SELECTION_PRIMARY, target); 367 _ecore_x_selection_request(w, ECORE_X_ATOM_SELECTION_PRIMARY, target);
368} /* ecore_x_selection_primary_request */ 368}
369 369
370EAPI void 370EAPI void
371ecore_x_selection_secondary_request(Ecore_X_Window w, 371ecore_x_selection_secondary_request(Ecore_X_Window w,
372 const char *target) 372 const char *target)
373{ 373{
374 LOGFN(__FILE__, __LINE__, __FUNCTION__); 374 LOGFN(__FILE__, __LINE__, __FUNCTION__);
375 _ecore_x_selection_request(w, ECORE_X_ATOM_SELECTION_SECONDARY, target); 375 _ecore_x_selection_request(w, ECORE_X_ATOM_SELECTION_SECONDARY, target);
376} /* ecore_x_selection_secondary_request */ 376}
377 377
378EAPI void 378EAPI void
379ecore_x_selection_xdnd_request(Ecore_X_Window w, 379ecore_x_selection_xdnd_request(Ecore_X_Window w,
380 const char *target) 380 const char *target)
381{ 381{
382 Ecore_X_Atom atom; 382 Ecore_X_Atom atom;
383 Ecore_X_DND_Target *_target; 383 Ecore_X_DND_Target *_target;
@@ -388,25 +388,25 @@ ecore_x_selection_xdnd_request(Ecore_X_Window w,
388 XConvertSelection(_ecore_x_disp, ECORE_X_ATOM_SELECTION_XDND, atom, 388 XConvertSelection(_ecore_x_disp, ECORE_X_ATOM_SELECTION_XDND, atom,
389 ECORE_X_ATOM_SELECTION_PROP_XDND, w, 389 ECORE_X_ATOM_SELECTION_PROP_XDND, w,
390 _target->time); 390 _target->time);
391} /* ecore_x_selection_xdnd_request */ 391}
392 392
393EAPI void 393EAPI void
394ecore_x_selection_clipboard_request(Ecore_X_Window w, 394ecore_x_selection_clipboard_request(Ecore_X_Window w,
395 const char *target) 395 const char *target)
396{ 396{
397 LOGFN(__FILE__, __LINE__, __FUNCTION__); 397 LOGFN(__FILE__, __LINE__, __FUNCTION__);
398 _ecore_x_selection_request(w, ECORE_X_ATOM_SELECTION_CLIPBOARD, target); 398 _ecore_x_selection_request(w, ECORE_X_ATOM_SELECTION_CLIPBOARD, target);
399} /* ecore_x_selection_clipboard_request */ 399}
400 400
401EAPI void 401EAPI void
402ecore_x_selection_converter_atom_add(Ecore_X_Atom target, 402ecore_x_selection_converter_atom_add(Ecore_X_Atom target,
403 Eina_Bool (*func)(char *target, 403 Eina_Bool (*func)(char *target,
404 void *data, 404 void *data,
405 int size, 405 int size,
406 void **data_ret, 406 void **data_ret,
407 int *size_ret, 407 int *size_ret,
408 Ecore_X_Atom *ttype, 408 Ecore_X_Atom *ttype,
409 int *tsize)) 409 int *tsize))
410{ 410{
411 Ecore_X_Selection_Converter *cnv; 411 Ecore_X_Selection_Converter *cnv;
412 412
@@ -441,17 +441,17 @@ ecore_x_selection_converter_atom_add(Ecore_X_Atom
441 441
442 cnv->target = target; 442 cnv->target = target;
443 cnv->convert = func; 443 cnv->convert = func;
444} /* ecore_x_selection_converter_atom_add */ 444}
445 445
446EAPI void 446EAPI void
447ecore_x_selection_converter_add(char *target, 447ecore_x_selection_converter_add(char *target,
448 Eina_Bool (*func)(char *target, 448 Eina_Bool (*func)(char *target,
449 void *data, 449 void *data,
450 int size, 450 int size,
451 void **data_ret, 451 void **data_ret,
452 int *size_ret, 452 int *size_ret,
453 Ecore_X_Atom *, 453 Ecore_X_Atom *,
454 int *)) 454 int *))
455{ 455{
456 Ecore_X_Atom x_target; 456 Ecore_X_Atom x_target;
457 457
@@ -462,7 +462,7 @@ ecore_x_selection_converter_add(char *target,
462 x_target = _ecore_x_selection_target_atom_get(target); 462 x_target = _ecore_x_selection_target_atom_get(target);
463 463
464 ecore_x_selection_converter_atom_add(x_target, func); 464 ecore_x_selection_converter_atom_add(x_target, func);
465} /* ecore_x_selection_converter_add */ 465}
466 466
467EAPI void 467EAPI void
468ecore_x_selection_converter_atom_del(Ecore_X_Atom target) 468ecore_x_selection_converter_atom_del(Ecore_X_Atom target)
@@ -492,7 +492,7 @@ ecore_x_selection_converter_atom_del(Ecore_X_Atom target)
492 prev_cnv = cnv; 492 prev_cnv = cnv;
493 cnv = cnv->next; 493 cnv = cnv->next;
494 } 494 }
495} /* ecore_x_selection_converter_atom_del */ 495}
496 496
497EAPI void 497EAPI void
498ecore_x_selection_converter_del(char *target) 498ecore_x_selection_converter_del(char *target)
@@ -505,14 +505,14 @@ ecore_x_selection_converter_del(char *target)
505 LOGFN(__FILE__, __LINE__, __FUNCTION__); 505 LOGFN(__FILE__, __LINE__, __FUNCTION__);
506 x_target = _ecore_x_selection_target_atom_get(target); 506 x_target = _ecore_x_selection_target_atom_get(target);
507 ecore_x_selection_converter_atom_del(x_target); 507 ecore_x_selection_converter_atom_del(x_target);
508} /* ecore_x_selection_converter_del */ 508}
509 509
510EAPI Eina_Bool 510EAPI Eina_Bool
511ecore_x_selection_notify_send(Ecore_X_Window requestor, 511ecore_x_selection_notify_send(Ecore_X_Window requestor,
512 Ecore_X_Atom selection, 512 Ecore_X_Atom selection,
513 Ecore_X_Atom target, 513 Ecore_X_Atom target,
514 Ecore_X_Atom property, 514 Ecore_X_Atom property,
515 Ecore_X_Time tim) 515 Ecore_X_Time tim)
516{ 516{
517 XEvent xev; 517 XEvent xev;
518 XSelectionEvent xnotify; 518 XSelectionEvent xnotify;
@@ -530,16 +530,16 @@ ecore_x_selection_notify_send(Ecore_X_Window requestor,
530 530
531 xev.xselection = xnotify; 531 xev.xselection = xnotify;
532 return (XSendEvent(_ecore_x_disp, requestor, False, 0, &xev) > 0) ? EINA_TRUE : EINA_FALSE; 532 return (XSendEvent(_ecore_x_disp, requestor, False, 0, &xev) > 0) ? EINA_TRUE : EINA_FALSE;
533} /* ecore_x_selection_notify_send */ 533}
534 534
535/* Locate and run conversion callback for specified selection target */ 535/* Locate and run conversion callback for specified selection target */
536EAPI Eina_Bool 536EAPI Eina_Bool
537ecore_x_selection_convert(Ecore_X_Atom selection, 537ecore_x_selection_convert(Ecore_X_Atom selection,
538 Ecore_X_Atom target, 538 Ecore_X_Atom target,
539 void **data_ret, 539 void **data_ret,
540 int *size, 540 int *size,
541 Ecore_X_Atom *targtype, 541 Ecore_X_Atom *targtype,
542 int *typesize) 542 int *typesize)
543{ 543{
544 Ecore_X_Selection_Intern *sel; 544 Ecore_X_Selection_Intern *sel;
545 Ecore_X_Selection_Converter *cnv; 545 Ecore_X_Selection_Converter *cnv;
@@ -572,24 +572,24 @@ ecore_x_selection_convert(Ecore_X_Atom selection,
572 return EINA_FALSE; 572 return EINA_FALSE;
573 573
574 /* Default, just return the data 574 /* Default, just return the data
575 *data_ret = malloc(sel->length); 575 * data_ret = malloc(sel->length);
576 memcpy(*data_ret, sel->data, sel->length); 576 memcpy(*data_ret, sel->data, sel->length);
577 free(tgt_str); 577 free(tgt_str);
578 return 1; 578 return 1;
579 */ 579 */
580} /* ecore_x_selection_convert */ 580}
581 581
582/* TODO: We need to work out a mechanism for automatic conversion to any requested 582/* TODO: We need to work out a mechanism for automatic conversion to any requested
583 * locale using Ecore_Txt functions */ 583 * locale using Ecore_Txt functions */
584/* Converter for standard non-utf8 text targets */ 584/* Converter for standard non-utf8 text targets */
585static Eina_Bool 585static Eina_Bool
586_ecore_x_selection_converter_text(char *target, 586_ecore_x_selection_converter_text(char *target,
587 void *data, 587 void *data,
588 int size, 588 int size,
589 void **data_ret, 589 void **data_ret,
590 int *size_ret, 590 int *size_ret,
591 Ecore_X_Atom *targprop __UNUSED__, 591 Ecore_X_Atom *targprop __UNUSED__,
592 int *s __UNUSED__) 592 int *s __UNUSED__)
593{ 593{
594 XTextProperty text_prop; 594 XTextProperty text_prop;
595 char *mystr; 595 char *mystr;
@@ -651,7 +651,7 @@ _ecore_x_selection_converter_text(char *target,
651 { 651 {
652 return EINA_TRUE; 652 return EINA_TRUE;
653 } 653 }
654} /* _ecore_x_selection_converter_text */ 654}
655 655
656EAPI void 656EAPI void
657ecore_x_selection_parser_add(const char *target, 657ecore_x_selection_parser_add(const char *target,
@@ -692,7 +692,7 @@ ecore_x_selection_parser_add(const char *target,
692 692
693 prs->target = strdup(target); 693 prs->target = strdup(target);
694 prs->parse = func; 694 prs->parse = func;
695} /* ecore_x_selection_parser_add */ 695}
696 696
697EAPI void 697EAPI void
698ecore_x_selection_parser_del(const char *target) 698ecore_x_selection_parser_del(const char *target)
@@ -726,19 +726,19 @@ ecore_x_selection_parser_del(const char *target)
726 prev_prs = prs; 726 prev_prs = prs;
727 prs = prs->next; 727 prs = prs->next;
728 } 728 }
729} /* ecore_x_selection_parser_del */ 729}
730 730
731/** 731/**
732 * Change the owner and last-change time for the specified selection. 732 * Change the owner and last-change time for the specified selection.
733 * @param win The owner of the specified atom. 733 * @param win The owner of the specified atom.
734 * @param atom The selection atom 734 * @param atom The selection atom
735 * @param time Specifies the time 735 * @param tim Specifies the time
736 * @since 1.1.0 736 * @since 1.1.0
737 */ 737 */
738EAPI void 738EAPI void
739ecore_x_selection_owner_set(Ecore_X_Window win, 739ecore_x_selection_owner_set(Ecore_X_Window win,
740 Ecore_X_Atom atom, 740 Ecore_X_Atom atom,
741 Ecore_X_Time tim) 741 Ecore_X_Time tim)
742{ 742{
743 XSetSelectionOwner(_ecore_x_disp, atom, win, tim); 743 XSetSelectionOwner(_ecore_x_disp, atom, win, tim);
744} 744}
@@ -760,9 +760,9 @@ ecore_x_selection_owner_get(Ecore_X_Atom atom)
760/* Locate and run conversion callback for specified selection target */ 760/* Locate and run conversion callback for specified selection target */
761void * 761void *
762_ecore_x_selection_parse(const char *target, 762_ecore_x_selection_parse(const char *target,
763 void *data, 763 void *data,
764 int size, 764 int size,
765 int format) 765 int format)
766{ 766{
767 Ecore_X_Selection_Parser *prs; 767 Ecore_X_Selection_Parser *prs;
768 Ecore_X_Selection_Data *sel; 768 Ecore_X_Selection_Data *sel;
@@ -784,7 +784,7 @@ _ecore_x_selection_parse(const char *target,
784 sel->format = format; 784 sel->format = format;
785 sel->data = data; 785 sel->data = data;
786 return sel; 786 return sel;
787} /* _ecore_x_selection_parse */ 787}
788 788
789static int 789static int
790_ecore_x_selection_data_default_free(void *data) 790_ecore_x_selection_data_default_free(void *data)
@@ -795,13 +795,13 @@ _ecore_x_selection_data_default_free(void *data)
795 free(sel->data); 795 free(sel->data);
796 free(sel); 796 free(sel);
797 return 1; 797 return 1;
798} /* _ecore_x_selection_data_default_free */ 798}
799 799
800static void * 800static void *
801_ecore_x_selection_parser_files(const char *target, 801_ecore_x_selection_parser_files(const char *target,
802 void *_data, 802 void *_data,
803 int size, 803 int size,
804 int format __UNUSED__) 804 int format __UNUSED__)
805{ 805{
806 Ecore_X_Selection_Data_Files *sel; 806 Ecore_X_Selection_Data_Files *sel;
807 char *t, *data = _data; 807 char *t, *data = _data;
@@ -820,15 +820,15 @@ _ecore_x_selection_parser_files(const char *target,
820 if (data[size - 1]) 820 if (data[size - 1])
821 { 821 {
822 /* Isn't nul terminated */ 822 /* Isn't nul terminated */
823 size++; 823 size++;
824 t = realloc(data, size); 824 t = realloc(data, size);
825 if (!t) 825 if (!t)
826 { 826 {
827 free(sel); 827 free(sel);
828 return NULL; 828 return NULL;
829 } 829 }
830 data = t; 830 data = t;
831 data[size - 1] = 0; 831 data[size - 1] = 0;
832 } 832 }
833 833
834 tmp = malloc(size); 834 tmp = malloc(size);
@@ -850,7 +850,8 @@ _ecore_x_selection_parser_files(const char *target,
850 tmp[i++] = data[is++]; 850 tmp[i++] = data[is++];
851 else 851 else
852 { 852 {
853 while ((data[is] == '\r') || (data[is] == '\n')) is++; 853 while ((data[is] == '\r') || (data[is] == '\n'))
854 is++;
854 tmp[i] = 0; 855 tmp[i] = 0;
855 sel->num_files++; 856 sel->num_files++;
856 t2 = realloc(sel->files, sel->num_files * sizeof(char *)); 857 t2 = realloc(sel->files, sel->num_files * sizeof(char *));
@@ -883,7 +884,7 @@ _ecore_x_selection_parser_files(const char *target,
883 ECORE_X_SELECTION_DATA(sel)->length = sel->num_files; 884 ECORE_X_SELECTION_DATA(sel)->length = sel->num_files;
884 885
885 return ECORE_X_SELECTION_DATA(sel); 886 return ECORE_X_SELECTION_DATA(sel);
886} /* _ecore_x_selection_parser_files */ 887}
887 888
888static int 889static int
889_ecore_x_selection_data_files_free(void *data) 890_ecore_x_selection_data_files_free(void *data)
@@ -901,13 +902,13 @@ _ecore_x_selection_data_files_free(void *data)
901 902
902 free(sel); 903 free(sel);
903 return 0; 904 return 0;
904} /* _ecore_x_selection_data_files_free */ 905}
905 906
906static void * 907static void *
907_ecore_x_selection_parser_text(const char *target __UNUSED__, 908_ecore_x_selection_parser_text(const char *target __UNUSED__,
908 void *_data, 909 void *_data,
909 int size, 910 int size,
910 int format __UNUSED__) 911 int format __UNUSED__)
911{ 912{
912 Ecore_X_Selection_Data_Text *sel; 913 Ecore_X_Selection_Data_Text *sel;
913 unsigned char *data = _data; 914 unsigned char *data = _data;
@@ -918,15 +919,15 @@ _ecore_x_selection_parser_text(const char *target __UNUSED__,
918 if (data[size - 1]) 919 if (data[size - 1])
919 { 920 {
920 /* Isn't nul terminated */ 921 /* Isn't nul terminated */
921 size++; 922 size++;
922 t = realloc(data, size); 923 t = realloc(data, size);
923 if (!t) 924 if (!t)
924 { 925 {
925 free(sel); 926 free(sel);
926 return NULL; 927 return NULL;
927 } 928 }
928 data = t; 929 data = t;
929 data[size - 1] = 0; 930 data[size - 1] = 0;
930 } 931 }
931 932
932 sel->text = (char *)data; 933 sel->text = (char *)data;
@@ -935,7 +936,7 @@ _ecore_x_selection_parser_text(const char *target __UNUSED__,
935 ECORE_X_SELECTION_DATA(sel)->data = data; 936 ECORE_X_SELECTION_DATA(sel)->data = data;
936 ECORE_X_SELECTION_DATA(sel)->free = _ecore_x_selection_data_text_free; 937 ECORE_X_SELECTION_DATA(sel)->free = _ecore_x_selection_data_text_free;
937 return sel; 938 return sel;
938} /* _ecore_x_selection_parser_text */ 939}
939 940
940static int 941static int
941_ecore_x_selection_data_text_free(void *data) 942_ecore_x_selection_data_text_free(void *data)
@@ -946,13 +947,13 @@ _ecore_x_selection_data_text_free(void *data)
946 free(sel->text); 947 free(sel->text);
947 free(sel); 948 free(sel);
948 return 1; 949 return 1;
949} /* _ecore_x_selection_data_text_free */ 950}
950 951
951static void * 952static void *
952_ecore_x_selection_parser_targets(const char *target __UNUSED__, 953_ecore_x_selection_parser_targets(const char *target __UNUSED__,
953 void *data, 954 void *data,
954 int size, 955 int size,
955 int format __UNUSED__) 956 int format __UNUSED__)
956{ 957{
957 Ecore_X_Selection_Data_Targets *sel; 958 Ecore_X_Selection_Data_Targets *sel;
958 unsigned long *targets; 959 unsigned long *targets;
@@ -977,7 +978,7 @@ _ecore_x_selection_parser_targets(const char *target __UNUSED__,
977 ECORE_X_SELECTION_DATA(sel)->length = size; 978 ECORE_X_SELECTION_DATA(sel)->length = size;
978 ECORE_X_SELECTION_DATA(sel)->data = data; 979 ECORE_X_SELECTION_DATA(sel)->data = data;
979 return sel; 980 return sel;
980} /* _ecore_x_selection_parser_targets */ 981}
981 982
982static int 983static int
983_ecore_x_selection_data_targets_free(void *data) 984_ecore_x_selection_data_targets_free(void *data)
@@ -997,5 +998,5 @@ _ecore_x_selection_data_targets_free(void *data)
997 free(ECORE_X_SELECTION_DATA(sel)->data); 998 free(ECORE_X_SELECTION_DATA(sel)->data);
998 free(sel); 999 free(sel);
999 return 1; 1000 return 1;
1000} /* _ecore_x_selection_data_targets_free */ 1001}
1001 1002
diff --git a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_sync.c b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_sync.c
index e49fede..0c7f546 100644
--- a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_sync.c
+++ b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_sync.c
@@ -42,18 +42,18 @@ ecore_x_sync_alarm_new(Ecore_X_Sync_Counter counter)
42 42
43 ecore_x_sync(); 43 ecore_x_sync();
44 return alarm; 44 return alarm;
45} /* ecore_x_sync_alarm_new */ 45}
46 46
47EAPI Eina_Bool 47EAPI Eina_Bool
48ecore_x_sync_alarm_free(Ecore_X_Sync_Alarm alarm) 48ecore_x_sync_alarm_free(Ecore_X_Sync_Alarm alarm)
49{ 49{
50 LOGFN(__FILE__, __LINE__, __FUNCTION__); 50 LOGFN(__FILE__, __LINE__, __FUNCTION__);
51 return XSyncDestroyAlarm(_ecore_x_disp, alarm); 51 return XSyncDestroyAlarm(_ecore_x_disp, alarm);
52} /* ecore_x_sync_alarm_free */ 52}
53 53
54EAPI Eina_Bool 54EAPI Eina_Bool
55ecore_x_sync_counter_query(Ecore_X_Sync_Counter counter, 55ecore_x_sync_counter_query(Ecore_X_Sync_Counter counter,
56 unsigned int *val) 56 unsigned int *val)
57{ 57{
58 XSyncValue value; 58 XSyncValue value;
59 59
@@ -65,7 +65,7 @@ ecore_x_sync_counter_query(Ecore_X_Sync_Counter counter,
65 } 65 }
66 66
67 return EINA_FALSE; 67 return EINA_FALSE;
68} /* ecore_x_sync_counter_query */ 68}
69 69
70EAPI Ecore_X_Sync_Counter 70EAPI Ecore_X_Sync_Counter
71ecore_x_sync_counter_new(int val) 71ecore_x_sync_counter_new(int val)
@@ -77,29 +77,29 @@ ecore_x_sync_counter_new(int val)
77 XSyncIntToValue(&v, val); 77 XSyncIntToValue(&v, val);
78 counter = XSyncCreateCounter(_ecore_x_disp, v); 78 counter = XSyncCreateCounter(_ecore_x_disp, v);
79 return counter; 79 return counter;
80} /* ecore_x_sync_counter_new */ 80}
81 81
82EAPI void 82EAPI void
83ecore_x_sync_counter_free(Ecore_X_Sync_Counter counter) 83ecore_x_sync_counter_free(Ecore_X_Sync_Counter counter)
84{ 84{
85 LOGFN(__FILE__, __LINE__, __FUNCTION__); 85 LOGFN(__FILE__, __LINE__, __FUNCTION__);
86 XSyncDestroyCounter(_ecore_x_disp, counter); 86 XSyncDestroyCounter(_ecore_x_disp, counter);
87} /* ecore_x_sync_counter_free */ 87}
88 88
89EAPI void 89EAPI void
90ecore_x_sync_counter_inc(Ecore_X_Sync_Counter counter, 90ecore_x_sync_counter_inc(Ecore_X_Sync_Counter counter,
91 int by) 91 int by)
92{ 92{
93 XSyncValue v; 93 XSyncValue v;
94 94
95 LOGFN(__FILE__, __LINE__, __FUNCTION__); 95 LOGFN(__FILE__, __LINE__, __FUNCTION__);
96 XSyncIntToValue(&v, by); 96 XSyncIntToValue(&v, by);
97 XSyncChangeCounter(_ecore_x_disp, counter, v); 97 XSyncChangeCounter(_ecore_x_disp, counter, v);
98} /* ecore_x_sync_counter_inc */ 98}
99 99
100EAPI void 100EAPI void
101ecore_x_sync_counter_val_wait(Ecore_X_Sync_Counter counter, 101ecore_x_sync_counter_val_wait(Ecore_X_Sync_Counter counter,
102 int val) 102 int val)
103{ 103{
104 XSyncWaitCondition cond; 104 XSyncWaitCondition cond;
105 XSyncValue v, v2; 105 XSyncValue v, v2;
@@ -115,11 +115,11 @@ ecore_x_sync_counter_val_wait(Ecore_X_Sync_Counter counter,
115 cond.event_threshold = v2; 115 cond.event_threshold = v2;
116 XSyncAwait(_ecore_x_disp, &cond, 1); 116 XSyncAwait(_ecore_x_disp, &cond, 1);
117// XSync(_ecore_x_disp, False); // dont need this 117// XSync(_ecore_x_disp, False); // dont need this
118} /* ecore_x_sync_counter_val_wait */ 118}
119 119
120EAPI void 120EAPI void
121ecore_x_sync_counter_set(Ecore_X_Sync_Counter counter, 121ecore_x_sync_counter_set(Ecore_X_Sync_Counter counter,
122 int val) 122 int val)
123{ 123{
124 XSyncValue v; 124 XSyncValue v;
125 125
@@ -130,8 +130,8 @@ ecore_x_sync_counter_set(Ecore_X_Sync_Counter counter,
130 130
131EAPI void 131EAPI void
132ecore_x_sync_counter_2_set(Ecore_X_Sync_Counter counter, 132ecore_x_sync_counter_2_set(Ecore_X_Sync_Counter counter,
133 int val_hi, 133 int val_hi,
134 unsigned int val_lo) 134 unsigned int val_lo)
135{ 135{
136 XSyncValue v; 136 XSyncValue v;
137 137
@@ -142,8 +142,8 @@ ecore_x_sync_counter_2_set(Ecore_X_Sync_Counter counter,
142 142
143EAPI Eina_Bool 143EAPI Eina_Bool
144ecore_x_sync_counter_2_query(Ecore_X_Sync_Counter counter, 144ecore_x_sync_counter_2_query(Ecore_X_Sync_Counter counter,
145 int *val_hi, 145 int *val_hi,
146 unsigned int *val_lo) 146 unsigned int *val_lo)
147{ 147{
148 XSyncValue value; 148 XSyncValue value;
149 149
diff --git a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_test.c b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_test.c
index c4576f9..c8c04e4 100644
--- a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_test.c
+++ b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_test.c
@@ -42,7 +42,7 @@ ecore_x_test_fake_key_down(const char *key __UNUSED__)
42#else /* ifdef ECORE_XTEST */ 42#else /* ifdef ECORE_XTEST */
43 return EINA_FALSE; 43 return EINA_FALSE;
44#endif /* ifdef ECORE_XTEST */ 44#endif /* ifdef ECORE_XTEST */
45} /* ecore_x_test_fake_key_down */ 45}
46 46
47EAPI Eina_Bool 47EAPI Eina_Bool
48#ifdef ECORE_XTEST 48#ifdef ECORE_XTEST
@@ -74,7 +74,7 @@ ecore_x_test_fake_key_up(const char *key __UNUSED__)
74#else /* ifdef ECORE_XTEST */ 74#else /* ifdef ECORE_XTEST */
75 return EINA_FALSE; 75 return EINA_FALSE;
76#endif /* ifdef ECORE_XTEST */ 76#endif /* ifdef ECORE_XTEST */
77} /* ecore_x_test_fake_key_up */ 77}
78 78
79EAPI Eina_Bool 79EAPI Eina_Bool
80#ifdef ECORE_XTEST 80#ifdef ECORE_XTEST
@@ -145,11 +145,11 @@ ecore_x_test_fake_key_press(const char *key __UNUSED__)
145#else /* ifdef ECORE_XTEST */ 145#else /* ifdef ECORE_XTEST */
146 return EINA_FALSE; 146 return EINA_FALSE;
147#endif /* ifdef ECORE_XTEST */ 147#endif /* ifdef ECORE_XTEST */
148} /* ecore_x_test_fake_key_press */ 148}
149 149
150EAPI const char * 150EAPI const char *
151ecore_x_keysym_string_get(int keysym) 151ecore_x_keysym_string_get(int keysym)
152{ 152{
153 return XKeysymToString(keysym); 153 return XKeysymToString(keysym);
154} /* ecore_x_keysym_string_get */ 154}
155 155
diff --git a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_vsync.c b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_vsync.c
index f054298..4296bb2 100644
--- a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_vsync.c
+++ b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_vsync.c
@@ -61,40 +61,40 @@ typedef union _drmVBlank
61typedef struct _drmEventContext 61typedef struct _drmEventContext
62{ 62{
63 int version; 63 int version;
64 void (*vblank_handler)(int fd, 64 void (*vblank_handler)(int fd,
65 unsigned int sequence, 65 unsigned int sequence,
66 unsigned int tv_sec, 66 unsigned int tv_sec,
67 unsigned int tv_usec, 67 unsigned int tv_usec,
68 void *user_data); 68 void *user_data);
69 void (*page_flip_handler)(int fd, 69 void (*page_flip_handler)(int fd,
70 unsigned int sequence, 70 unsigned int sequence,
71 unsigned int tv_sec, 71 unsigned int tv_sec,
72 unsigned int tv_usec, 72 unsigned int tv_usec,
73 void *user_data); 73 void *user_data);
74} drmEventContext; 74} drmEventContext;
75 75
76static int (*sym_drmClose)(int fd) = NULL; 76static int (*sym_drmClose)(int fd) = NULL;
77static int (*sym_drmGetMagic)(int fd, 77static int (*sym_drmGetMagic)(int fd,
78 drm_magic_t *magic) = NULL; 78 drm_magic_t *magic) = NULL;
79static int (*sym_drmWaitVBlank)(int fd, 79static int (*sym_drmWaitVBlank)(int fd,
80 drmVBlank *vbl) = NULL; 80 drmVBlank *vbl) = NULL;
81static int (*sym_drmHandleEvent)(int fd, 81static int (*sym_drmHandleEvent)(int fd,
82 drmEventContext *evctx) = NULL; 82 drmEventContext *evctx) = NULL;
83 83
84//// dri 84//// dri
85 85
86static Bool (*sym_DRI2QueryExtension)(Display *display, 86static Bool (*sym_DRI2QueryExtension)(Display *display,
87 int *eventBase, 87 int *eventBase,
88 int *errorBase) = NULL; 88 int *errorBase) = NULL;
89static Bool (*sym_DRI2QueryVersion)(Display *display, 89static Bool (*sym_DRI2QueryVersion)(Display *display,
90 int *major, 90 int *major,
91 int *minor) = NULL; 91 int *minor) = NULL;
92static Bool (*sym_DRI2Connect)(Display *display, 92static Bool (*sym_DRI2Connect)(Display *display,
93 XID window, 93 XID window,
94 char **driverName, 94 char **driverName,
95 char **deviceName) = NULL; 95 char **deviceName) = NULL;
96static Bool (*sym_DRI2Authenticate)(Display *display, 96static Bool (*sym_DRI2Authenticate)(Display *display,
97 XID window, 97 XID window,
98 drm_magic_t magic) = NULL; 98 drm_magic_t magic) = NULL;
99 99
100//// dri/drm data needed 100//// dri/drm data needed
@@ -142,18 +142,18 @@ _dri_drm_tick_end(void *data __UNUSED__)
142} 142}
143 143
144static void 144static void
145_dri_drm_vblank_handler(int fd __UNUSED__, 145_dri_drm_vblank_handler(int fd __UNUSED__,
146 unsigned int frame __UNUSED__, 146 unsigned int frame __UNUSED__,
147 unsigned int sec __UNUSED__, 147 unsigned int sec __UNUSED__,
148 unsigned int usec __UNUSED__, 148 unsigned int usec __UNUSED__,
149 void *data __UNUSED__) 149 void *data __UNUSED__)
150{ 150{
151 ecore_animator_custom_tick(); 151 ecore_animator_custom_tick();
152 if (drm_event_is_busy) _dri_drm_tick_schedule(); 152 if (drm_event_is_busy) _dri_drm_tick_schedule();
153} 153}
154 154
155static Eina_Bool 155static Eina_Bool
156_dri_drm_cb(void *data __UNUSED__, 156_dri_drm_cb(void *data __UNUSED__,
157 Ecore_Fd_Handler *fd_handler __UNUSED__) 157 Ecore_Fd_Handler *fd_handler __UNUSED__)
158{ 158{
159 sym_drmHandleEvent(drm_fd, &drm_evctx); 159 sym_drmHandleEvent(drm_fd, &drm_evctx);
diff --git a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_window.c b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_window.c
index 76670d3..1adb36b 100644
--- a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_window.c
+++ b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_window.c
@@ -33,10 +33,10 @@ static Ecore_X_Window *ignore_list = NULL;
33 */ 33 */
34EAPI Ecore_X_Window 34EAPI Ecore_X_Window
35ecore_x_window_new(Ecore_X_Window parent, 35ecore_x_window_new(Ecore_X_Window parent,
36 int x, 36 int x,
37 int y, 37 int y,
38 int w, 38 int w,
39 int h) 39 int h)
40{ 40{
41 Window win; 41 Window win;
42 XSetWindowAttributes attr; 42 XSetWindowAttributes attr;
@@ -87,7 +87,7 @@ ecore_x_window_new(Ecore_X_Window parent,
87 ecore_x_window_defaults_set(win); 87 ecore_x_window_defaults_set(win);
88 88
89 return win; 89 return win;
90} /* ecore_x_window_new */ 90}
91 91
92/** 92/**
93 * Creates a window with the override redirect attribute set to @c True. 93 * Creates a window with the override redirect attribute set to @c True.
@@ -102,10 +102,10 @@ ecore_x_window_new(Ecore_X_Window parent,
102 */ 102 */
103EAPI Ecore_X_Window 103EAPI Ecore_X_Window
104ecore_x_window_override_new(Ecore_X_Window parent, 104ecore_x_window_override_new(Ecore_X_Window parent,
105 int x, 105 int x,
106 int y, 106 int y,
107 int w, 107 int w,
108 int h) 108 int h)
109{ 109{
110 Window win; 110 Window win;
111 XSetWindowAttributes attr; 111 XSetWindowAttributes attr;
@@ -152,7 +152,7 @@ ecore_x_window_override_new(Ecore_X_Window parent,
152 CWWinGravity, 152 CWWinGravity,
153 &attr); 153 &attr);
154 return win; 154 return win;
155} /* ecore_x_window_override_new */ 155}
156 156
157/** 157/**
158 * Creates a new input window. 158 * Creates a new input window.
@@ -167,10 +167,10 @@ ecore_x_window_override_new(Ecore_X_Window parent,
167 */ 167 */
168EAPI Ecore_X_Window 168EAPI Ecore_X_Window
169ecore_x_window_input_new(Ecore_X_Window parent, 169ecore_x_window_input_new(Ecore_X_Window parent,
170 int x, 170 int x,
171 int y, 171 int y,
172 int w, 172 int w,
173 int h) 173 int h)
174{ 174{
175 Window win; 175 Window win;
176 XSetWindowAttributes attr; 176 XSetWindowAttributes attr;
@@ -209,7 +209,7 @@ ecore_x_window_input_new(Ecore_X_Window parent,
209 } 209 }
210 210
211 return win; 211 return win;
212} /* ecore_x_window_input_new */ 212}
213 213
214/** 214/**
215 * @defgroup Ecore_X_Window_Properties_Group X Window Property Functions 215 * @defgroup Ecore_X_Window_Properties_Group X Window Property Functions
@@ -263,18 +263,18 @@ ecore_x_window_defaults_set(Ecore_X_Window win)
263 263
264 ecore_app_args_get(&argc, &argv); 264 ecore_app_args_get(&argc, &argv);
265 ecore_x_icccm_command_set(win, argc, argv); 265 ecore_x_icccm_command_set(win, argc, argv);
266} /* ecore_x_window_defaults_set */ 266}
267 267
268EAPI void 268EAPI void
269ecore_x_window_configure(Ecore_X_Window win, 269ecore_x_window_configure(Ecore_X_Window win,
270 Ecore_X_Window_Configure_Mask mask, 270 Ecore_X_Window_Configure_Mask mask,
271 int x, 271 int x,
272 int y, 272 int y,
273 int w, 273 int w,
274 int h, 274 int h,
275 int border_width, 275 int border_width,
276 Ecore_X_Window sibling, 276 Ecore_X_Window sibling,
277 int stack_mode) 277 int stack_mode)
278{ 278{
279 XWindowChanges xwc; 279 XWindowChanges xwc;
280 280
@@ -292,7 +292,7 @@ ecore_x_window_configure(Ecore_X_Window win,
292 xwc.stack_mode = stack_mode; 292 xwc.stack_mode = stack_mode;
293 293
294 XConfigureWindow(_ecore_x_disp, win, mask, &xwc); 294 XConfigureWindow(_ecore_x_disp, win, mask, &xwc);
295} /* ecore_x_window_configure */ 295}
296 296
297/** 297/**
298 * @defgroup Ecore_X_Window_Destroy_Group X Window Destroy Functions 298 * @defgroup Ecore_X_Window_Destroy_Group X Window Destroy Functions
@@ -311,10 +311,10 @@ ecore_x_window_free(Ecore_X_Window win)
311 /* sorry sir, deleting the root window doesn't sound like 311 /* sorry sir, deleting the root window doesn't sound like
312 * a smart idea. 312 * a smart idea.
313 */ 313 */
314 LOGFN(__FILE__, __LINE__, __FUNCTION__); 314 LOGFN(__FILE__, __LINE__, __FUNCTION__);
315 if (win) 315 if (win)
316 XDestroyWindow(_ecore_x_disp, win); 316 XDestroyWindow(_ecore_x_disp, win);
317} /* ecore_x_window_free */ 317}
318 318
319/** 319/**
320 * Set if a window should be ignored. 320 * Set if a window should be ignored.
@@ -323,7 +323,7 @@ ecore_x_window_free(Ecore_X_Window win)
323 */ 323 */
324EAPI void 324EAPI void
325ecore_x_window_ignore_set(Ecore_X_Window win, 325ecore_x_window_ignore_set(Ecore_X_Window win,
326 int ignore) 326 int ignore)
327{ 327{
328 int i, j, cnt; 328 int i, j, cnt;
329 Ecore_X_Window *t; 329 Ecore_X_Window *t;
@@ -373,7 +373,7 @@ ecore_x_window_ignore_set(Ecore_X_Window win,
373 t = realloc(ignore_list, ignore_num * sizeof(Ecore_X_Window)); 373 t = realloc(ignore_list, ignore_num * sizeof(Ecore_X_Window));
374 if (t) ignore_list = t; 374 if (t) ignore_list = t;
375 } 375 }
376} /* ecore_x_window_ignore_set */ 376}
377 377
378/** 378/**
379 * Get the ignore list 379 * Get the ignore list
@@ -387,7 +387,7 @@ ecore_x_window_ignore_list(int *num)
387 *num = ignore_num; 387 *num = ignore_num;
388 388
389 return ignore_list; 389 return ignore_list;
390} /* ecore_x_window_ignore_list */ 390}
391 391
392/** 392/**
393 * Sends a delete request to the given window. 393 * Sends a delete request to the given window.
@@ -415,7 +415,7 @@ ecore_x_window_delete_request_send(Ecore_X_Window win)
415 xev.xclient.data.l[1] = CurrentTime; 415 xev.xclient.data.l[1] = CurrentTime;
416 416
417 XSendEvent(_ecore_x_disp, win, False, NoEventMask, &xev); 417 XSendEvent(_ecore_x_disp, win, False, NoEventMask, &xev);
418} /* ecore_x_window_delete_request_send */ 418}
419 419
420/** 420/**
421 * @defgroup Ecore_X_Window_Visibility_Group X Window Visibility Functions 421 * @defgroup Ecore_X_Window_Visibility_Group X Window Visibility Functions
@@ -436,7 +436,7 @@ ecore_x_window_show(Ecore_X_Window win)
436{ 436{
437 LOGFN(__FILE__, __LINE__, __FUNCTION__); 437 LOGFN(__FILE__, __LINE__, __FUNCTION__);
438 XMapWindow(_ecore_x_disp, win); 438 XMapWindow(_ecore_x_disp, win);
439} /* ecore_x_window_show */ 439}
440 440
441/** 441/**
442 * Hides a window. 442 * Hides a window.
@@ -480,7 +480,7 @@ ecore_x_window_hide(Ecore_X_Window win)
480 XSendEvent(_ecore_x_disp, xev.xunmap.event, False, 480 XSendEvent(_ecore_x_disp, xev.xunmap.event, False,
481 SubstructureRedirectMask | SubstructureNotifyMask, &xev); 481 SubstructureRedirectMask | SubstructureNotifyMask, &xev);
482 XUnmapWindow(_ecore_x_disp, win); 482 XUnmapWindow(_ecore_x_disp, win);
483} /* ecore_x_window_hide */ 483}
484 484
485/** 485/**
486 * @defgroup Ecore_X_Window_Geometry_Group X Window Geometry Functions 486 * @defgroup Ecore_X_Window_Geometry_Group X Window Geometry Functions
@@ -501,12 +501,12 @@ ecore_x_window_hide(Ecore_X_Window win)
501 */ 501 */
502EAPI void 502EAPI void
503ecore_x_window_move(Ecore_X_Window win, 503ecore_x_window_move(Ecore_X_Window win,
504 int x, 504 int x,
505 int y) 505 int y)
506{ 506{
507 LOGFN(__FILE__, __LINE__, __FUNCTION__); 507 LOGFN(__FILE__, __LINE__, __FUNCTION__);
508 XMoveWindow(_ecore_x_disp, win, x, y); 508 XMoveWindow(_ecore_x_disp, win, x, y);
509} /* ecore_x_window_move */ 509}
510 510
511/** 511/**
512 * Resizes a window. 512 * Resizes a window.
@@ -517,8 +517,8 @@ ecore_x_window_move(Ecore_X_Window win,
517 */ 517 */
518EAPI void 518EAPI void
519ecore_x_window_resize(Ecore_X_Window win, 519ecore_x_window_resize(Ecore_X_Window win,
520 int w, 520 int w,
521 int h) 521 int h)
522{ 522{
523 LOGFN(__FILE__, __LINE__, __FUNCTION__); 523 LOGFN(__FILE__, __LINE__, __FUNCTION__);
524 if (w < 1) 524 if (w < 1)
@@ -528,7 +528,7 @@ ecore_x_window_resize(Ecore_X_Window win,
528 h = 1; 528 h = 1;
529 529
530 XResizeWindow(_ecore_x_disp, win, w, h); 530 XResizeWindow(_ecore_x_disp, win, w, h);
531} /* ecore_x_window_resize */ 531}
532 532
533/** 533/**
534 * Moves and resizes a window. 534 * Moves and resizes a window.
@@ -541,10 +541,10 @@ ecore_x_window_resize(Ecore_X_Window win,
541 */ 541 */
542EAPI void 542EAPI void
543ecore_x_window_move_resize(Ecore_X_Window win, 543ecore_x_window_move_resize(Ecore_X_Window win,
544 int x, 544 int x,
545 int y, 545 int y,
546 int w, 546 int w,
547 int h) 547 int h)
548{ 548{
549 LOGFN(__FILE__, __LINE__, __FUNCTION__); 549 LOGFN(__FILE__, __LINE__, __FUNCTION__);
550 if (w < 1) 550 if (w < 1)
@@ -554,7 +554,7 @@ ecore_x_window_move_resize(Ecore_X_Window win,
554 h = 1; 554 h = 1;
555 555
556 XMoveResizeWindow(_ecore_x_disp, win, x, y, w, h); 556 XMoveResizeWindow(_ecore_x_disp, win, x, y, w, h);
557} /* ecore_x_window_move_resize */ 557}
558 558
559/** 559/**
560 * @defgroup Ecore_X_Window_Focus_Functions X Window Focus Functions 560 * @defgroup Ecore_X_Window_Focus_Functions X Window Focus Functions
@@ -576,7 +576,7 @@ ecore_x_window_focus(Ecore_X_Window win)
576 576
577// XSetInputFocus(_ecore_x_disp, win, RevertToPointerRoot, CurrentTime); 577// XSetInputFocus(_ecore_x_disp, win, RevertToPointerRoot, CurrentTime);
578 XSetInputFocus(_ecore_x_disp, win, RevertToParent, CurrentTime); 578 XSetInputFocus(_ecore_x_disp, win, RevertToParent, CurrentTime);
579} /* ecore_x_window_focus */ 579}
580 580
581/** 581/**
582 * Sets the focus to the given window at a specific time. 582 * Sets the focus to the given window at a specific time.
@@ -586,7 +586,7 @@ ecore_x_window_focus(Ecore_X_Window win)
586 */ 586 */
587EAPI void 587EAPI void
588ecore_x_window_focus_at_time(Ecore_X_Window win, 588ecore_x_window_focus_at_time(Ecore_X_Window win,
589 Ecore_X_Time t) 589 Ecore_X_Time t)
590{ 590{
591 LOGFN(__FILE__, __LINE__, __FUNCTION__); 591 LOGFN(__FILE__, __LINE__, __FUNCTION__);
592 if (win == 0) 592 if (win == 0)
@@ -594,7 +594,7 @@ ecore_x_window_focus_at_time(Ecore_X_Window win,
594 594
595// XSetInputFocus(_ecore_x_disp, win, PointerRoot, t); 595// XSetInputFocus(_ecore_x_disp, win, PointerRoot, t);
596 XSetInputFocus(_ecore_x_disp, win, RevertToParent, t); 596 XSetInputFocus(_ecore_x_disp, win, RevertToParent, t);
597} /* ecore_x_window_focus_at_time */ 597}
598 598
599/** 599/**
600 * gets the focus to the window @p win. 600 * gets the focus to the window @p win.
@@ -611,7 +611,7 @@ ecore_x_window_focus_get(void)
611 win = 0; 611 win = 0;
612 XGetInputFocus(_ecore_x_disp, &win, &revert_mode); 612 XGetInputFocus(_ecore_x_disp, &win, &revert_mode);
613 return win; 613 return win;
614} /* ecore_x_window_focus_get */ 614}
615 615
616/** 616/**
617 * @defgroup Ecore_X_Window_Z_Order_Group X Window Z Order Functions 617 * @defgroup Ecore_X_Window_Z_Order_Group X Window Z Order Functions
@@ -629,7 +629,7 @@ ecore_x_window_raise(Ecore_X_Window win)
629{ 629{
630 LOGFN(__FILE__, __LINE__, __FUNCTION__); 630 LOGFN(__FILE__, __LINE__, __FUNCTION__);
631 XRaiseWindow(_ecore_x_disp, win); 631 XRaiseWindow(_ecore_x_disp, win);
632} /* ecore_x_window_raise */ 632}
633 633
634/** 634/**
635 * Lowers the given window. 635 * Lowers the given window.
@@ -641,7 +641,7 @@ ecore_x_window_lower(Ecore_X_Window win)
641{ 641{
642 LOGFN(__FILE__, __LINE__, __FUNCTION__); 642 LOGFN(__FILE__, __LINE__, __FUNCTION__);
643 XLowerWindow(_ecore_x_disp, win); 643 XLowerWindow(_ecore_x_disp, win);
644} /* ecore_x_window_lower */ 644}
645 645
646/** 646/**
647 * @defgroup Ecore_X_Window_Parent_Group X Window Parent Functions 647 * @defgroup Ecore_X_Window_Parent_Group X Window Parent Functions
@@ -660,15 +660,15 @@ ecore_x_window_lower(Ecore_X_Window win)
660EAPI void 660EAPI void
661ecore_x_window_reparent(Ecore_X_Window win, 661ecore_x_window_reparent(Ecore_X_Window win,
662 Ecore_X_Window new_parent, 662 Ecore_X_Window new_parent,
663 int x, 663 int x,
664 int y) 664 int y)
665{ 665{
666 LOGFN(__FILE__, __LINE__, __FUNCTION__); 666 LOGFN(__FILE__, __LINE__, __FUNCTION__);
667 if (new_parent == 0) 667 if (new_parent == 0)
668 new_parent = DefaultRootWindow(_ecore_x_disp); 668 new_parent = DefaultRootWindow(_ecore_x_disp);
669 669
670 XReparentWindow(_ecore_x_disp, win, new_parent, x, y); 670 XReparentWindow(_ecore_x_disp, win, new_parent, x, y);
671} /* ecore_x_window_reparent */ 671}
672 672
673/** 673/**
674 * Retrieves the size of the given window. 674 * Retrieves the size of the given window.
@@ -679,8 +679,8 @@ ecore_x_window_reparent(Ecore_X_Window win,
679 */ 679 */
680EAPI void 680EAPI void
681ecore_x_window_size_get(Ecore_X_Window win, 681ecore_x_window_size_get(Ecore_X_Window win,
682 int *w, 682 int *w,
683 int *h) 683 int *h)
684{ 684{
685 int dummy_x, dummy_y; 685 int dummy_x, dummy_y;
686 686
@@ -689,7 +689,7 @@ ecore_x_window_size_get(Ecore_X_Window win,
689 win = DefaultRootWindow(_ecore_x_disp); 689 win = DefaultRootWindow(_ecore_x_disp);
690 690
691 ecore_x_drawable_geometry_get(win, &dummy_x, &dummy_y, w, h); 691 ecore_x_drawable_geometry_get(win, &dummy_x, &dummy_y, w, h);
692} /* ecore_x_window_size_get */ 692}
693 693
694/** 694/**
695 * Retrieves the geometry of the given window. 695 * Retrieves the geometry of the given window.
@@ -709,17 +709,17 @@ ecore_x_window_size_get(Ecore_X_Window win,
709 */ 709 */
710EAPI void 710EAPI void
711ecore_x_window_geometry_get(Ecore_X_Window win, 711ecore_x_window_geometry_get(Ecore_X_Window win,
712 int *x, 712 int *x,
713 int *y, 713 int *y,
714 int *w, 714 int *w,
715 int *h) 715 int *h)
716{ 716{
717 LOGFN(__FILE__, __LINE__, __FUNCTION__); 717 LOGFN(__FILE__, __LINE__, __FUNCTION__);
718 if (!win) 718 if (!win)
719 win = DefaultRootWindow(_ecore_x_disp); 719 win = DefaultRootWindow(_ecore_x_disp);
720 720
721 ecore_x_drawable_geometry_get(win, x, y, w, h); 721 ecore_x_drawable_geometry_get(win, x, y, w, h);
722} /* ecore_x_window_geometry_get */ 722}
723 723
724/** 724/**
725 * Retrieves the width of the border of the given window. 725 * Retrieves the width of the border of the given window.
@@ -736,7 +736,7 @@ ecore_x_window_border_width_get(Ecore_X_Window win)
736 return 0; 736 return 0;
737 737
738 return ecore_x_drawable_border_width_get(win); 738 return ecore_x_drawable_border_width_get(win);
739} /* ecore_x_window_border_width_get */ 739}
740 740
741/** 741/**
742 * Sets the width of the border of the given window. 742 * Sets the width of the border of the given window.
@@ -746,7 +746,7 @@ ecore_x_window_border_width_get(Ecore_X_Window win)
746 */ 746 */
747EAPI void 747EAPI void
748ecore_x_window_border_width_set(Ecore_X_Window win, 748ecore_x_window_border_width_set(Ecore_X_Window win,
749 int width) 749 int width)
750{ 750{
751 LOGFN(__FILE__, __LINE__, __FUNCTION__); 751 LOGFN(__FILE__, __LINE__, __FUNCTION__);
752 /* doesn't make sense to call this on a root window */ 752 /* doesn't make sense to call this on a root window */
@@ -754,7 +754,7 @@ ecore_x_window_border_width_set(Ecore_X_Window win,
754 return; 754 return;
755 755
756 XSetWindowBorderWidth (_ecore_x_disp, win, width); 756 XSetWindowBorderWidth (_ecore_x_disp, win, width);
757} /* ecore_x_window_border_width_set */ 757}
758 758
759/** 759/**
760 * Retrieves the depth of the given window. 760 * Retrieves the depth of the given window.
@@ -766,7 +766,7 @@ ecore_x_window_depth_get(Ecore_X_Window win)
766{ 766{
767 LOGFN(__FILE__, __LINE__, __FUNCTION__); 767 LOGFN(__FILE__, __LINE__, __FUNCTION__);
768 return ecore_x_drawable_depth_get(win); 768 return ecore_x_drawable_depth_get(win);
769} /* ecore_x_window_depth_get */ 769}
770 770
771/** 771/**
772 * To be documented. 772 * To be documented.
@@ -775,7 +775,7 @@ ecore_x_window_depth_get(Ecore_X_Window win)
775 */ 775 */
776EAPI void 776EAPI void
777ecore_x_window_cursor_show(Ecore_X_Window win, 777ecore_x_window_cursor_show(Ecore_X_Window win,
778 Eina_Bool show) 778 Eina_Bool show)
779{ 779{
780 LOGFN(__FILE__, __LINE__, __FUNCTION__); 780 LOGFN(__FILE__, __LINE__, __FUNCTION__);
781 if (win == 0) 781 if (win == 0)
@@ -803,7 +803,7 @@ ecore_x_window_cursor_show(Ecore_X_Window win,
803 } 803 }
804 else 804 else
805 XDefineCursor(_ecore_x_disp, win, 0); 805 XDefineCursor(_ecore_x_disp, win, 0);
806} /* ecore_x_window_cursor_show */ 806}
807 807
808EAPI void 808EAPI void
809ecore_x_window_cursor_set(Ecore_X_Window win, 809ecore_x_window_cursor_set(Ecore_X_Window win,
@@ -814,7 +814,7 @@ ecore_x_window_cursor_set(Ecore_X_Window win,
814 XUndefineCursor(_ecore_x_disp, win); 814 XUndefineCursor(_ecore_x_disp, win);
815 else 815 else
816 XDefineCursor(_ecore_x_disp, win, c); 816 XDefineCursor(_ecore_x_disp, win, c);
817} /* ecore_x_window_cursor_set */ 817}
818 818
819/** 819/**
820 * Finds out whether the given window is currently visible. 820 * Finds out whether the given window is currently visible.
@@ -830,7 +830,7 @@ ecore_x_window_visible_get(Ecore_X_Window win)
830 LOGFN(__FILE__, __LINE__, __FUNCTION__); 830 LOGFN(__FILE__, __LINE__, __FUNCTION__);
831 return XGetWindowAttributes(_ecore_x_disp, win, &attr) && 831 return XGetWindowAttributes(_ecore_x_disp, win, &attr) &&
832 (attr.map_state == IsViewable); 832 (attr.map_state == IsViewable);
833} /* ecore_x_window_visible_get */ 833}
834 834
835typedef struct _Shadow Shadow; 835typedef struct _Shadow Shadow;
836struct _Shadow 836struct _Shadow
@@ -914,7 +914,7 @@ _ecore_x_window_tree_walk(Window win)
914 XFree(list); 914 XFree(list);
915 915
916 return s; 916 return s;
917} /* _ecore_x_window_tree_walk */ 917}
918 918
919static void 919static void
920_ecore_x_window_tree_shadow_free1(Shadow *s) 920_ecore_x_window_tree_shadow_free1(Shadow *s)
@@ -935,7 +935,7 @@ _ecore_x_window_tree_shadow_free1(Shadow *s)
935 } 935 }
936 936
937 free(s); 937 free(s);
938} /* _ecore_x_window_tree_shadow_free1 */ 938}
939 939
940static void 940static void
941_ecore_x_window_tree_shadow_free(void) 941_ecore_x_window_tree_shadow_free(void)
@@ -955,7 +955,7 @@ _ecore_x_window_tree_shadow_free(void)
955 free(shadow_base); 955 free(shadow_base);
956 shadow_base = NULL; 956 shadow_base = NULL;
957 shadow_num = 0; 957 shadow_num = 0;
958} /* _ecore_x_window_tree_shadow_free */ 958}
959 959
960static void 960static void
961_ecore_x_window_tree_shadow_populate(void) 961_ecore_x_window_tree_shadow_populate(void)
@@ -976,7 +976,7 @@ _ecore_x_window_tree_shadow_populate(void)
976 976
977 free(roots); 977 free(roots);
978 } 978 }
979} /* _ecore_x_window_tree_shadow_populate */ 979}
980 980
981/* 981/*
982 static int shadow_count = 0; 982 static int shadow_count = 0;
@@ -1000,7 +1000,7 @@ _ecore_x_window_tree_shadow_populate(void)
1000 1000
1001static Shadow * 1001static Shadow *
1002_ecore_x_window_shadow_tree_find_shadow(Shadow *s, 1002_ecore_x_window_shadow_tree_find_shadow(Shadow *s,
1003 Window win) 1003 Window win)
1004{ 1004{
1005 Shadow *ss; 1005 Shadow *ss;
1006 int i; 1006 int i;
@@ -1020,7 +1020,7 @@ _ecore_x_window_shadow_tree_find_shadow(Shadow *s,
1020 } 1020 }
1021 1021
1022 return NULL; 1022 return NULL;
1023} /* _ecore_x_window_shadow_tree_find_shadow */ 1023}
1024 1024
1025static Shadow * 1025static Shadow *
1026_ecore_x_window_shadow_tree_find(Window base) 1026_ecore_x_window_shadow_tree_find(Window base)
@@ -1037,16 +1037,16 @@ _ecore_x_window_shadow_tree_find(Window base)
1037 return s; 1037 return s;
1038 } 1038 }
1039 return NULL; 1039 return NULL;
1040} /* _ecore_x_window_shadow_tree_find */ 1040}
1041 1041
1042static int 1042static int
1043_inside_rects(Shadow *s, 1043_inside_rects(Shadow *s,
1044 int x, 1044 int x,
1045 int y, 1045 int y,
1046 int bx, 1046 int bx,
1047 int by, 1047 int by,
1048 Ecore_X_Rectangle *rects, 1048 Ecore_X_Rectangle *rects,
1049 int num) 1049 int num)
1050{ 1050{
1051 int i, inside; 1051 int i, inside;
1052 1052
@@ -1068,13 +1068,13 @@ _inside_rects(Shadow *s,
1068} 1068}
1069 1069
1070static Window 1070static Window
1071_ecore_x_window_shadow_tree_at_xy_get_shadow(Shadow *s, 1071_ecore_x_window_shadow_tree_at_xy_get_shadow(Shadow *s,
1072 int bx, 1072 int bx,
1073 int by, 1073 int by,
1074 int x, 1074 int x,
1075 int y, 1075 int y,
1076 Ecore_X_Window *skip, 1076 Ecore_X_Window *skip,
1077 int skip_num) 1077 int skip_num)
1078{ 1078{
1079 Window child; 1079 Window child;
1080 int i, j; 1080 int i, j;
@@ -1131,16 +1131,16 @@ onward:
1131 } 1131 }
1132 1132
1133 return s->win; 1133 return s->win;
1134} /* _ecore_x_window_shadow_tree_at_xy_get_shadow */ 1134}
1135 1135
1136static Window 1136static Window
1137_ecore_x_window_shadow_tree_at_xy_get(Window base, 1137_ecore_x_window_shadow_tree_at_xy_get(Window base,
1138 int bx, 1138 int bx,
1139 int by, 1139 int by,
1140 int x, 1140 int x,
1141 int y, 1141 int y,
1142 Ecore_X_Window *skip, 1142 Ecore_X_Window *skip,
1143 int skip_num) 1143 int skip_num)
1144{ 1144{
1145 Shadow *s; 1145 Shadow *s;
1146 1146
@@ -1162,7 +1162,7 @@ _ecore_x_window_shadow_tree_at_xy_get(Window base,
1162 y, 1162 y,
1163 skip, 1163 skip,
1164 skip_num); 1164 skip_num);
1165} /* _ecore_x_window_shadow_tree_at_xy_get */ 1165}
1166 1166
1167/** 1167/**
1168 * Retrieves the top, visible window at the given location, 1168 * Retrieves the top, visible window at the given location,
@@ -1177,11 +1177,11 @@ _ecore_x_window_shadow_tree_at_xy_get(Window base,
1177 * @ingroup Ecore_X_Window_Geometry_Group 1177 * @ingroup Ecore_X_Window_Geometry_Group
1178 */ 1178 */
1179EAPI Ecore_X_Window 1179EAPI Ecore_X_Window
1180ecore_x_window_shadow_tree_at_xy_with_skip_get(Ecore_X_Window base, 1180ecore_x_window_shadow_tree_at_xy_with_skip_get(Ecore_X_Window base,
1181 int x, 1181 int x,
1182 int y, 1182 int y,
1183 Ecore_X_Window *skip, 1183 Ecore_X_Window *skip,
1184 int skip_num) 1184 int skip_num)
1185{ 1185{
1186 LOGFN(__FILE__, __LINE__, __FUNCTION__); 1186 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1187 return _ecore_x_window_shadow_tree_at_xy_get(base, 1187 return _ecore_x_window_shadow_tree_at_xy_get(base,
@@ -1191,7 +1191,7 @@ ecore_x_window_shadow_tree_at_xy_with_skip_get(Ecore_X_Window base,
1191 y, 1191 y,
1192 skip, 1192 skip,
1193 skip_num); 1193 skip_num);
1194} /* ecore_x_window_shadow_tree_at_xy_with_skip_get */ 1194}
1195 1195
1196/** 1196/**
1197 * Retrieves the parent window a given window has. This uses the shadow window 1197 * Retrieves the parent window a given window has. This uses the shadow window
@@ -1231,7 +1231,7 @@ ecore_x_window_shadow_parent_get(Ecore_X_Window root __UNUSED__,
1231 } 1231 }
1232 } 1232 }
1233 return 0; 1233 return 0;
1234} /* ecore_x_window_shadow_parent_get */ 1234}
1235 1235
1236/** 1236/**
1237 * Flushes the window shadow tree so nothing is stored. 1237 * Flushes the window shadow tree so nothing is stored.
@@ -1242,7 +1242,7 @@ ecore_x_window_shadow_tree_flush(void)
1242{ 1242{
1243 LOGFN(__FILE__, __LINE__, __FUNCTION__); 1243 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1244 _ecore_x_window_tree_shadow_free(); 1244 _ecore_x_window_tree_shadow_free();
1245} /* ecore_x_window_shadow_tree_flush */ 1245}
1246 1246
1247/** 1247/**
1248 * Retrieves the root window a given window is on. 1248 * Retrieves the root window a given window is on.
@@ -1260,16 +1260,16 @@ ecore_x_window_root_get(Ecore_X_Window win)
1260 return 0; 1260 return 0;
1261 1261
1262 return att.root; 1262 return att.root;
1263} /* ecore_x_window_root_get */ 1263}
1264 1264
1265static Window 1265static Window
1266_ecore_x_window_at_xy_get(Window base, 1266_ecore_x_window_at_xy_get(Window base,
1267 int bx, 1267 int bx,
1268 int by, 1268 int by,
1269 int x, 1269 int x,
1270 int y, 1270 int y,
1271 Ecore_X_Window *skip, 1271 Ecore_X_Window *skip,
1272 int skip_num) 1272 int skip_num)
1273{ 1273{
1274 Window *list = NULL; 1274 Window *list = NULL;
1275 Window parent_win = 0, child = 0, root_win = 0; 1275 Window parent_win = 0, child = 0, root_win = 0;
@@ -1324,7 +1324,7 @@ onward:
1324 } 1324 }
1325 1325
1326 return base; 1326 return base;
1327} /* _ecore_x_window_at_xy_get */ 1327}
1328 1328
1329/** 1329/**
1330 * Retrieves the top, visible window at the given location. 1330 * Retrieves the top, visible window at the given location.
@@ -1349,7 +1349,7 @@ ecore_x_window_at_xy_get(int x,
1349 ecore_x_ungrab(); 1349 ecore_x_ungrab();
1350 1350
1351 return win ? win : root; 1351 return win ? win : root;
1352} /* ecore_x_window_at_xy_get */ 1352}
1353 1353
1354/** 1354/**
1355 * Retrieves the top, visible window at the given location, 1355 * Retrieves the top, visible window at the given location,
@@ -1360,10 +1360,10 @@ ecore_x_window_at_xy_get(int x,
1360 * @ingroup Ecore_X_Window_Geometry_Group 1360 * @ingroup Ecore_X_Window_Geometry_Group
1361 */ 1361 */
1362EAPI Ecore_X_Window 1362EAPI Ecore_X_Window
1363ecore_x_window_at_xy_with_skip_get(int x, 1363ecore_x_window_at_xy_with_skip_get(int x,
1364 int y, 1364 int y,
1365 Ecore_X_Window *skip, 1365 Ecore_X_Window *skip,
1366 int skip_num) 1366 int skip_num)
1367{ 1367{
1368 Ecore_X_Window win, root; 1368 Ecore_X_Window win, root;
1369 1369
@@ -1377,12 +1377,12 @@ ecore_x_window_at_xy_with_skip_get(int x,
1377 ecore_x_ungrab(); 1377 ecore_x_ungrab();
1378 1378
1379 return win ? win : root; 1379 return win ? win : root;
1380} /* ecore_x_window_at_xy_with_skip_get */ 1380}
1381 1381
1382EAPI Ecore_X_Window 1382EAPI Ecore_X_Window
1383ecore_x_window_at_xy_begin_get(Ecore_X_Window begin, 1383ecore_x_window_at_xy_begin_get(Ecore_X_Window begin,
1384 int x, 1384 int x,
1385 int y) 1385 int y)
1386{ 1386{
1387 Ecore_X_Window win; 1387 Ecore_X_Window win;
1388 1388
@@ -1392,7 +1392,7 @@ ecore_x_window_at_xy_begin_get(Ecore_X_Window begin,
1392 ecore_x_ungrab(); 1392 ecore_x_ungrab();
1393 1393
1394 return win ? win : begin; 1394 return win ? win : begin;
1395} /* ecore_x_window_at_xy_begin_get */ 1395}
1396 1396
1397/** 1397/**
1398 * Retrieves the parent window of the given window. 1398 * Retrieves the parent window of the given window.
@@ -1414,7 +1414,7 @@ ecore_x_window_parent_get(Ecore_X_Window win)
1414 XFree(children); 1414 XFree(children);
1415 1415
1416 return parent; 1416 return parent;
1417} /* ecore_x_window_parent_get */ 1417}
1418 1418
1419/** 1419/**
1420 * Sets the background color of the given window. 1420 * Sets the background color of the given window.
@@ -1443,10 +1443,10 @@ ecore_x_window_background_color_set(Ecore_X_Window win,
1443 1443
1444 attr.background_pixel = col.pixel; 1444 attr.background_pixel = col.pixel;
1445 XChangeWindowAttributes(_ecore_x_disp, win, CWBackPixel, &attr); 1445 XChangeWindowAttributes(_ecore_x_disp, win, CWBackPixel, &attr);
1446} /* ecore_x_window_background_color_set */ 1446}
1447 1447
1448EAPI void 1448EAPI void
1449ecore_x_window_gravity_set(Ecore_X_Window win, 1449ecore_x_window_gravity_set(Ecore_X_Window win,
1450 Ecore_X_Gravity grav) 1450 Ecore_X_Gravity grav)
1451{ 1451{
1452 XSetWindowAttributes att; 1452 XSetWindowAttributes att;
@@ -1454,10 +1454,10 @@ ecore_x_window_gravity_set(Ecore_X_Window win,
1454 LOGFN(__FILE__, __LINE__, __FUNCTION__); 1454 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1455 att.win_gravity = grav; 1455 att.win_gravity = grav;
1456 XChangeWindowAttributes(_ecore_x_disp, win, CWWinGravity, &att); 1456 XChangeWindowAttributes(_ecore_x_disp, win, CWWinGravity, &att);
1457} /* ecore_x_window_gravity_set */ 1457}
1458 1458
1459EAPI void 1459EAPI void
1460ecore_x_window_pixel_gravity_set(Ecore_X_Window win, 1460ecore_x_window_pixel_gravity_set(Ecore_X_Window win,
1461 Ecore_X_Gravity grav) 1461 Ecore_X_Gravity grav)
1462{ 1462{
1463 XSetWindowAttributes att; 1463 XSetWindowAttributes att;
@@ -1465,7 +1465,7 @@ ecore_x_window_pixel_gravity_set(Ecore_X_Window win,
1465 LOGFN(__FILE__, __LINE__, __FUNCTION__); 1465 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1466 att.bit_gravity = grav; 1466 att.bit_gravity = grav;
1467 XChangeWindowAttributes(_ecore_x_disp, win, CWBitGravity, &att); 1467 XChangeWindowAttributes(_ecore_x_disp, win, CWBitGravity, &att);
1468} /* ecore_x_window_pixel_gravity_set */ 1468}
1469 1469
1470EAPI void 1470EAPI void
1471ecore_x_window_pixmap_set(Ecore_X_Window win, 1471ecore_x_window_pixmap_set(Ecore_X_Window win,
@@ -1473,50 +1473,50 @@ ecore_x_window_pixmap_set(Ecore_X_Window win,
1473{ 1473{
1474 LOGFN(__FILE__, __LINE__, __FUNCTION__); 1474 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1475 XSetWindowBackgroundPixmap(_ecore_x_disp, win, pmap); 1475 XSetWindowBackgroundPixmap(_ecore_x_disp, win, pmap);
1476} /* ecore_x_window_pixmap_set */ 1476}
1477 1477
1478EAPI void 1478EAPI void
1479ecore_x_window_area_clear(Ecore_X_Window win, 1479ecore_x_window_area_clear(Ecore_X_Window win,
1480 int x, 1480 int x,
1481 int y, 1481 int y,
1482 int w, 1482 int w,
1483 int h) 1483 int h)
1484{ 1484{
1485 LOGFN(__FILE__, __LINE__, __FUNCTION__); 1485 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1486 XClearArea(_ecore_x_disp, win, x, y, w, h, False); 1486 XClearArea(_ecore_x_disp, win, x, y, w, h, False);
1487} /* ecore_x_window_area_clear */ 1487}
1488 1488
1489EAPI void 1489EAPI void
1490ecore_x_window_area_expose(Ecore_X_Window win, 1490ecore_x_window_area_expose(Ecore_X_Window win,
1491 int x, 1491 int x,
1492 int y, 1492 int y,
1493 int w, 1493 int w,
1494 int h) 1494 int h)
1495{ 1495{
1496 LOGFN(__FILE__, __LINE__, __FUNCTION__); 1496 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1497 XClearArea(_ecore_x_disp, win, x, y, w, h, True); 1497 XClearArea(_ecore_x_disp, win, x, y, w, h, True);
1498} /* ecore_x_window_area_expose */ 1498}
1499 1499
1500EAPI void 1500EAPI void
1501ecore_x_window_override_set(Ecore_X_Window win, 1501ecore_x_window_override_set(Ecore_X_Window win,
1502 Eina_Bool override) 1502 Eina_Bool override)
1503{ 1503{
1504 XSetWindowAttributes att; 1504 XSetWindowAttributes att;
1505 1505
1506 LOGFN(__FILE__, __LINE__, __FUNCTION__); 1506 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1507 att.override_redirect = override; 1507 att.override_redirect = override;
1508 XChangeWindowAttributes(_ecore_x_disp, win, CWOverrideRedirect, &att); 1508 XChangeWindowAttributes(_ecore_x_disp, win, CWOverrideRedirect, &att);
1509} /* ecore_x_window_override_set */ 1509}
1510 1510
1511#ifdef ECORE_XRENDER 1511#ifdef ECORE_XRENDER
1512static Ecore_X_Window 1512static Ecore_X_Window
1513_ecore_x_window_argb_internal_new(Ecore_X_Window parent, 1513_ecore_x_window_argb_internal_new(Ecore_X_Window parent,
1514 int x, 1514 int x,
1515 int y, 1515 int y,
1516 int w, 1516 int w,
1517 int h, 1517 int h,
1518 Eina_Bool override, 1518 Eina_Bool override,
1519 Eina_Bool saveunder) 1519 Eina_Bool saveunder)
1520{ 1520{
1521 Window win; 1521 Window win;
1522 XSetWindowAttributes attr; 1522 XSetWindowAttributes attr;
@@ -1535,15 +1535,15 @@ _ecore_x_window_argb_internal_new(Ecore_X_Window parent,
1535 else 1535 else
1536 { 1536 {
1537 /* ewww - round trip */ 1537 /* ewww - round trip */
1538 XGetWindowAttributes(_ecore_x_disp, parent, &att); 1538 XGetWindowAttributes(_ecore_x_disp, parent, &att);
1539 for (i = 0; i < ScreenCount(_ecore_x_disp); i++) 1539 for (i = 0; i < ScreenCount(_ecore_x_disp); i++)
1540 { 1540 {
1541 if (att.screen == ScreenOfDisplay(_ecore_x_disp, i)) 1541 if (att.screen == ScreenOfDisplay(_ecore_x_disp, i))
1542 { 1542 {
1543 scr = i; 1543 scr = i;
1544 break; 1544 break;
1545 } 1545 }
1546 } 1546 }
1547 } 1547 }
1548 1548
1549 vi_in.screen = scr; 1549 vi_in.screen = scr;
@@ -1615,7 +1615,7 @@ _ecore_x_window_argb_internal_new(Ecore_X_Window parent,
1615 ecore_x_window_defaults_set(win); 1615 ecore_x_window_defaults_set(win);
1616 1616
1617 return win; 1617 return win;
1618} /* _ecore_x_window_argb_internal_new */ 1618}
1619 1619
1620#endif /* ifdef ECORE_XRENDER */ 1620#endif /* ifdef ECORE_XRENDER */
1621 1621
@@ -1641,7 +1641,7 @@ ecore_x_window_argb_get(Ecore_X_Window win)
1641#else /* ifdef ECORE_XRENDER */ 1641#else /* ifdef ECORE_XRENDER */
1642 return 0; 1642 return 0;
1643#endif /* ifdef ECORE_XRENDER */ 1643#endif /* ifdef ECORE_XRENDER */
1644} /* ecore_x_window_argb_get */ 1644}
1645 1645
1646/** 1646/**
1647 * Creates a new window. 1647 * Creates a new window.
@@ -1656,10 +1656,10 @@ ecore_x_window_argb_get(Ecore_X_Window win)
1656 */ 1656 */
1657EAPI Ecore_X_Window 1657EAPI Ecore_X_Window
1658ecore_x_window_manager_argb_new(Ecore_X_Window parent, 1658ecore_x_window_manager_argb_new(Ecore_X_Window parent,
1659 int x, 1659 int x,
1660 int y, 1660 int y,
1661 int w, 1661 int w,
1662 int h) 1662 int h)
1663{ 1663{
1664#ifdef ECORE_XRENDER 1664#ifdef ECORE_XRENDER
1665 LOGFN(__FILE__, __LINE__, __FUNCTION__); 1665 LOGFN(__FILE__, __LINE__, __FUNCTION__);
@@ -1667,7 +1667,7 @@ ecore_x_window_manager_argb_new(Ecore_X_Window parent,
1667#else /* ifdef ECORE_XRENDER */ 1667#else /* ifdef ECORE_XRENDER */
1668 return 0; 1668 return 0;
1669#endif /* ifdef ECORE_XRENDER */ 1669#endif /* ifdef ECORE_XRENDER */
1670} /* ecore_x_window_manager_argb_new */ 1670}
1671 1671
1672/** 1672/**
1673 * Creates a new window. 1673 * Creates a new window.
@@ -1682,10 +1682,10 @@ ecore_x_window_manager_argb_new(Ecore_X_Window parent,
1682 */ 1682 */
1683EAPI Ecore_X_Window 1683EAPI Ecore_X_Window
1684ecore_x_window_argb_new(Ecore_X_Window parent, 1684ecore_x_window_argb_new(Ecore_X_Window parent,
1685 int x, 1685 int x,
1686 int y, 1686 int y,
1687 int w, 1687 int w,
1688 int h) 1688 int h)
1689{ 1689{
1690#ifdef ECORE_XRENDER 1690#ifdef ECORE_XRENDER
1691 LOGFN(__FILE__, __LINE__, __FUNCTION__); 1691 LOGFN(__FILE__, __LINE__, __FUNCTION__);
@@ -1693,7 +1693,7 @@ ecore_x_window_argb_new(Ecore_X_Window parent,
1693#else /* ifdef ECORE_XRENDER */ 1693#else /* ifdef ECORE_XRENDER */
1694 return 0; 1694 return 0;
1695#endif /* ifdef ECORE_XRENDER */ 1695#endif /* ifdef ECORE_XRENDER */
1696} /* ecore_x_window_argb_new */ 1696}
1697 1697
1698/** 1698/**
1699 * Creates a window with the override redirect attribute set to @c True. 1699 * Creates a window with the override redirect attribute set to @c True.
@@ -1708,10 +1708,10 @@ ecore_x_window_argb_new(Ecore_X_Window parent,
1708 */ 1708 */
1709EAPI Ecore_X_Window 1709EAPI Ecore_X_Window
1710ecore_x_window_override_argb_new(Ecore_X_Window parent, 1710ecore_x_window_override_argb_new(Ecore_X_Window parent,
1711 int x, 1711 int x,
1712 int y, 1712 int y,
1713 int w, 1713 int w,
1714 int h) 1714 int h)
1715{ 1715{
1716#ifdef ECORE_XRENDER 1716#ifdef ECORE_XRENDER
1717 LOGFN(__FILE__, __LINE__, __FUNCTION__); 1717 LOGFN(__FILE__, __LINE__, __FUNCTION__);
@@ -1719,5 +1719,5 @@ ecore_x_window_override_argb_new(Ecore_X_Window parent,
1719#else /* ifdef ECORE_XRENDER */ 1719#else /* ifdef ECORE_XRENDER */
1720 return 0; 1720 return 0;
1721#endif /* ifdef ECORE_XRENDER */ 1721#endif /* ifdef ECORE_XRENDER */
1722} /* ecore_x_window_override_argb_new */ 1722}
1723 1723
diff --git a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_window_prop.c b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_window_prop.c
index 8d5c757..b581a0e 100644
--- a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_window_prop.c
+++ b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_window_prop.c
@@ -21,9 +21,9 @@
21 */ 21 */
22EAPI void 22EAPI void
23ecore_x_window_prop_card32_set(Ecore_X_Window win, 23ecore_x_window_prop_card32_set(Ecore_X_Window win,
24 Ecore_X_Atom atom, 24 Ecore_X_Atom atom,
25 unsigned int *val, 25 unsigned int *val,
26 unsigned int num) 26 unsigned int num)
27{ 27{
28#if SIZEOF_INT == SIZEOF_LONG 28#if SIZEOF_INT == SIZEOF_LONG
29 _ATOM_SET_CARD32(win, atom, val, num); 29 _ATOM_SET_CARD32(win, atom, val, num);
@@ -41,7 +41,7 @@ ecore_x_window_prop_card32_set(Ecore_X_Window win,
41 _ATOM_SET_CARD32(win, atom, v2, num); 41 _ATOM_SET_CARD32(win, atom, v2, num);
42 free(v2); 42 free(v2);
43#endif /* if SIZEOF_INT == SIZEOF_LONG */ 43#endif /* if SIZEOF_INT == SIZEOF_LONG */
44} /* ecore_x_window_prop_card32_set */ 44}
45 45
46/* 46/*
47 * Get CARD32 (array) property 47 * Get CARD32 (array) property
@@ -53,9 +53,9 @@ ecore_x_window_prop_card32_set(Ecore_X_Window win,
53 */ 53 */
54EAPI int 54EAPI int
55ecore_x_window_prop_card32_get(Ecore_X_Window win, 55ecore_x_window_prop_card32_get(Ecore_X_Window win,
56 Ecore_X_Atom atom, 56 Ecore_X_Atom atom,
57 unsigned int *val, 57 unsigned int *val,
58 unsigned int len) 58 unsigned int len)
59{ 59{
60 unsigned char *prop_ret; 60 unsigned char *prop_ret;
61 Atom type_ret; 61 Atom type_ret;
@@ -89,7 +89,7 @@ ecore_x_window_prop_card32_get(Ecore_X_Window win,
89 XFree(prop_ret); 89 XFree(prop_ret);
90 90
91 return num; 91 return num;
92} /* ecore_x_window_prop_card32_get */ 92}
93 93
94/* 94/*
95 * Get CARD32 (array) property of any length 95 * Get CARD32 (array) property of any length
@@ -100,7 +100,7 @@ ecore_x_window_prop_card32_get(Ecore_X_Window win,
100 */ 100 */
101EAPI int 101EAPI int
102ecore_x_window_prop_card32_list_get(Ecore_X_Window win, 102ecore_x_window_prop_card32_list_get(Ecore_X_Window win,
103 Ecore_X_Atom atom, 103 Ecore_X_Atom atom,
104 unsigned int **plst) 104 unsigned int **plst)
105{ 105{
106 unsigned char *prop_ret; 106 unsigned char *prop_ret;
@@ -125,7 +125,7 @@ ecore_x_window_prop_card32_list_get(Ecore_X_Window win,
125 else 125 else
126 { 126 {
127 val = malloc(num_ret * sizeof(unsigned int)); 127 val = malloc(num_ret * sizeof(unsigned int));
128 if (!val) 128 if (!val)
129 { 129 {
130 if (prop_ret) XFree(prop_ret); 130 if (prop_ret) XFree(prop_ret);
131 return -1; 131 return -1;
@@ -140,17 +140,17 @@ ecore_x_window_prop_card32_list_get(Ecore_X_Window win,
140 XFree(prop_ret); 140 XFree(prop_ret);
141 141
142 return num; 142 return num;
143} /* ecore_x_window_prop_card32_list_get */ 143}
144 144
145/* 145/*
146 * Set X ID (array) property 146 * Set X ID (array) property
147 */ 147 */
148EAPI void 148EAPI void
149ecore_x_window_prop_xid_set(Ecore_X_Window win, 149ecore_x_window_prop_xid_set(Ecore_X_Window win,
150 Ecore_X_Atom atom, 150 Ecore_X_Atom atom,
151 Ecore_X_Atom type, 151 Ecore_X_Atom type,
152 Ecore_X_ID *lst, 152 Ecore_X_ID *lst,
153 unsigned int num) 153 unsigned int num)
154{ 154{
155#if SIZEOF_INT == SIZEOF_LONG 155#if SIZEOF_INT == SIZEOF_LONG
156 XChangeProperty(_ecore_x_disp, win, atom, type, 32, PropModeReplace, 156 XChangeProperty(_ecore_x_disp, win, atom, type, 32, PropModeReplace,
@@ -170,7 +170,7 @@ ecore_x_window_prop_xid_set(Ecore_X_Window win,
170 (unsigned char *)pl, num); 170 (unsigned char *)pl, num);
171 free(pl); 171 free(pl);
172#endif /* if SIZEOF_INT == SIZEOF_LONG */ 172#endif /* if SIZEOF_INT == SIZEOF_LONG */
173} /* ecore_x_window_prop_xid_set */ 173}
174 174
175/* 175/*
176 * Get X ID (array) property 176 * Get X ID (array) property
@@ -182,10 +182,10 @@ ecore_x_window_prop_xid_set(Ecore_X_Window win,
182 */ 182 */
183EAPI int 183EAPI int
184ecore_x_window_prop_xid_get(Ecore_X_Window win, 184ecore_x_window_prop_xid_get(Ecore_X_Window win,
185 Ecore_X_Atom atom, 185 Ecore_X_Atom atom,
186 Ecore_X_Atom type, 186 Ecore_X_Atom type,
187 Ecore_X_ID *lst, 187 Ecore_X_ID *lst,
188 unsigned int len) 188 unsigned int len)
189{ 189{
190 unsigned char *prop_ret; 190 unsigned char *prop_ret;
191 Atom type_ret; 191 Atom type_ret;
@@ -219,7 +219,7 @@ ecore_x_window_prop_xid_get(Ecore_X_Window win,
219 XFree(prop_ret); 219 XFree(prop_ret);
220 220
221 return num; 221 return num;
222} /* ecore_x_window_prop_xid_get */ 222}
223 223
224/* 224/*
225 * Get X ID (array) property 225 * Get X ID (array) property
@@ -231,9 +231,9 @@ ecore_x_window_prop_xid_get(Ecore_X_Window win,
231 */ 231 */
232EAPI int 232EAPI int
233ecore_x_window_prop_xid_list_get(Ecore_X_Window win, 233ecore_x_window_prop_xid_list_get(Ecore_X_Window win,
234 Ecore_X_Atom atom, 234 Ecore_X_Atom atom,
235 Ecore_X_Atom type, 235 Ecore_X_Atom type,
236 Ecore_X_ID **val) 236 Ecore_X_ID **val)
237{ 237{
238 unsigned char *prop_ret; 238 unsigned char *prop_ret;
239 Atom type_ret; 239 Atom type_ret;
@@ -268,17 +268,17 @@ ecore_x_window_prop_xid_list_get(Ecore_X_Window win,
268 XFree(prop_ret); 268 XFree(prop_ret);
269 269
270 return num; 270 return num;
271} /* ecore_x_window_prop_xid_list_get */ 271}
272 272
273/* 273/*
274 * Remove/add/toggle X ID list item. 274 * Remove/add/toggle X ID list item.
275 */ 275 */
276EAPI void 276EAPI void
277ecore_x_window_prop_xid_list_change(Ecore_X_Window win, 277ecore_x_window_prop_xid_list_change(Ecore_X_Window win,
278 Ecore_X_Atom atom, 278 Ecore_X_Atom atom,
279 Ecore_X_Atom type, 279 Ecore_X_Atom type,
280 Ecore_X_ID item, 280 Ecore_X_ID item,
281 int op) 281 int op)
282{ 282{
283 Ecore_X_ID *lst; 283 Ecore_X_ID *lst;
284 int i, num; 284 int i, num;
@@ -300,22 +300,22 @@ ecore_x_window_prop_xid_list_change(Ecore_X_Window win,
300 if (i < num) 300 if (i < num)
301 { 301 {
302 /* Was in list */ 302 /* Was in list */
303 if (op == ECORE_X_PROP_LIST_ADD) 303 if (op == ECORE_X_PROP_LIST_ADD)
304 goto done; /* Remove it */ 304 goto done; /* Remove it */
305 305
306 num--; 306 num--;
307 for (; i < num; i++) 307 for (; i < num; i++)
308 lst[i] = lst[i + 1]; 308 lst[i] = lst[i + 1];
309 } 309 }
310 else 310 else
311 { 311 {
312 /* Was not in list */ 312 /* Was not in list */
313 if (op == ECORE_X_PROP_LIST_REMOVE) 313 if (op == ECORE_X_PROP_LIST_REMOVE)
314 goto done; /* Add it */ 314 goto done; /* Add it */
315 315
316 num++; 316 num++;
317 lst = realloc(lst, num * sizeof(Ecore_X_ID)); 317 lst = realloc(lst, num * sizeof(Ecore_X_ID));
318 lst[i] = item; 318 lst[i] = item;
319 } 319 }
320 320
321 ecore_x_window_prop_xid_set(win, atom, type, lst, num); 321 ecore_x_window_prop_xid_set(win, atom, type, lst, num);
@@ -323,20 +323,20 @@ ecore_x_window_prop_xid_list_change(Ecore_X_Window win,
323done: 323done:
324 if (lst) 324 if (lst)
325 free(lst); 325 free(lst);
326} /* ecore_x_window_prop_xid_list_change */ 326}
327 327
328/* 328/*
329 * Set Atom (array) property 329 * Set Atom (array) property
330 */ 330 */
331EAPI void 331EAPI void
332ecore_x_window_prop_atom_set(Ecore_X_Window win, 332ecore_x_window_prop_atom_set(Ecore_X_Window win,
333 Ecore_X_Atom atom, 333 Ecore_X_Atom atom,
334 Ecore_X_Atom *lst, 334 Ecore_X_Atom *lst,
335 unsigned int num) 335 unsigned int num)
336{ 336{
337 LOGFN(__FILE__, __LINE__, __FUNCTION__); 337 LOGFN(__FILE__, __LINE__, __FUNCTION__);
338 ecore_x_window_prop_xid_set(win, atom, XA_ATOM, lst, num); 338 ecore_x_window_prop_xid_set(win, atom, XA_ATOM, lst, num);
339} /* ecore_x_window_prop_atom_set */ 339}
340 340
341/* 341/*
342 * Get Atom (array) property 342 * Get Atom (array) property
@@ -348,13 +348,13 @@ ecore_x_window_prop_atom_set(Ecore_X_Window win,
348 */ 348 */
349EAPI int 349EAPI int
350ecore_x_window_prop_atom_get(Ecore_X_Window win, 350ecore_x_window_prop_atom_get(Ecore_X_Window win,
351 Ecore_X_Atom atom, 351 Ecore_X_Atom atom,
352 Ecore_X_Atom *lst, 352 Ecore_X_Atom *lst,
353 unsigned int len) 353 unsigned int len)
354{ 354{
355 LOGFN(__FILE__, __LINE__, __FUNCTION__); 355 LOGFN(__FILE__, __LINE__, __FUNCTION__);
356 return ecore_x_window_prop_xid_get(win, atom, XA_ATOM, lst, len); 356 return ecore_x_window_prop_xid_get(win, atom, XA_ATOM, lst, len);
357} /* ecore_x_window_prop_atom_get */ 357}
358 358
359/* 359/*
360 * Get Atom (array) property 360 * Get Atom (array) property
@@ -366,38 +366,38 @@ ecore_x_window_prop_atom_get(Ecore_X_Window win,
366 */ 366 */
367EAPI int 367EAPI int
368ecore_x_window_prop_atom_list_get(Ecore_X_Window win, 368ecore_x_window_prop_atom_list_get(Ecore_X_Window win,
369 Ecore_X_Atom atom, 369 Ecore_X_Atom atom,
370 Ecore_X_Atom **plst) 370 Ecore_X_Atom **plst)
371{ 371{
372 LOGFN(__FILE__, __LINE__, __FUNCTION__); 372 LOGFN(__FILE__, __LINE__, __FUNCTION__);
373 return ecore_x_window_prop_xid_list_get(win, atom, XA_ATOM, plst); 373 return ecore_x_window_prop_xid_list_get(win, atom, XA_ATOM, plst);
374} /* ecore_x_window_prop_atom_list_get */ 374}
375 375
376/* 376/*
377 * Remove/add/toggle atom list item. 377 * Remove/add/toggle atom list item.
378 */ 378 */
379EAPI void 379EAPI void
380ecore_x_window_prop_atom_list_change(Ecore_X_Window win, 380ecore_x_window_prop_atom_list_change(Ecore_X_Window win,
381 Ecore_X_Atom atom, 381 Ecore_X_Atom atom,
382 Ecore_X_Atom item, 382 Ecore_X_Atom item,
383 int op) 383 int op)
384{ 384{
385 LOGFN(__FILE__, __LINE__, __FUNCTION__); 385 LOGFN(__FILE__, __LINE__, __FUNCTION__);
386 ecore_x_window_prop_xid_list_change(win, atom, XA_ATOM, item, op); 386 ecore_x_window_prop_xid_list_change(win, atom, XA_ATOM, item, op);
387} /* ecore_x_window_prop_atom_list_change */ 387}
388 388
389/* 389/*
390 * Set Window (array) property 390 * Set Window (array) property
391 */ 391 */
392EAPI void 392EAPI void
393ecore_x_window_prop_window_set(Ecore_X_Window win, 393ecore_x_window_prop_window_set(Ecore_X_Window win,
394 Ecore_X_Atom atom, 394 Ecore_X_Atom atom,
395 Ecore_X_Window *lst, 395 Ecore_X_Window *lst,
396 unsigned int num) 396 unsigned int num)
397{ 397{
398 LOGFN(__FILE__, __LINE__, __FUNCTION__); 398 LOGFN(__FILE__, __LINE__, __FUNCTION__);
399 ecore_x_window_prop_xid_set(win, atom, XA_WINDOW, lst, num); 399 ecore_x_window_prop_xid_set(win, atom, XA_WINDOW, lst, num);
400} /* ecore_x_window_prop_window_set */ 400}
401 401
402/* 402/*
403 * Get Window (array) property 403 * Get Window (array) property
@@ -408,14 +408,14 @@ ecore_x_window_prop_window_set(Ecore_X_Window win,
408 * Note: Return value 0 means that the property exists but has no elements. 408 * Note: Return value 0 means that the property exists but has no elements.
409 */ 409 */
410EAPI int 410EAPI int
411ecore_x_window_prop_window_get(Ecore_X_Window win, 411ecore_x_window_prop_window_get(Ecore_X_Window win,
412 Ecore_X_Atom atom, 412 Ecore_X_Atom atom,
413 Ecore_X_Window *lst, 413 Ecore_X_Window *lst,
414 unsigned int len) 414 unsigned int len)
415{ 415{
416 LOGFN(__FILE__, __LINE__, __FUNCTION__); 416 LOGFN(__FILE__, __LINE__, __FUNCTION__);
417 return ecore_x_window_prop_xid_get(win, atom, XA_WINDOW, lst, len); 417 return ecore_x_window_prop_xid_get(win, atom, XA_WINDOW, lst, len);
418} /* ecore_x_window_prop_window_get */ 418}
419 419
420/* 420/*
421 * Get Window (array) property 421 * Get Window (array) property
@@ -426,13 +426,13 @@ ecore_x_window_prop_window_get(Ecore_X_Window win,
426 * Note: Return value 0 means that the property exists but has no elements. 426 * Note: Return value 0 means that the property exists but has no elements.
427 */ 427 */
428EAPI int 428EAPI int
429ecore_x_window_prop_window_list_get(Ecore_X_Window win, 429ecore_x_window_prop_window_list_get(Ecore_X_Window win,
430 Ecore_X_Atom atom, 430 Ecore_X_Atom atom,
431 Ecore_X_Window **plst) 431 Ecore_X_Window **plst)
432{ 432{
433 LOGFN(__FILE__, __LINE__, __FUNCTION__); 433 LOGFN(__FILE__, __LINE__, __FUNCTION__);
434 return ecore_x_window_prop_xid_list_get(win, atom, XA_WINDOW, plst); 434 return ecore_x_window_prop_xid_list_get(win, atom, XA_WINDOW, plst);
435} /* ecore_x_window_prop_window_list_get */ 435}
436 436
437/** 437/**
438 * To be documented. 438 * To be documented.
@@ -443,7 +443,7 @@ EAPI Ecore_X_Atom
443ecore_x_window_prop_any_type(void) 443ecore_x_window_prop_any_type(void)
444{ 444{
445 return AnyPropertyType; 445 return AnyPropertyType;
446} /* ecore_x_window_prop_any_type */ 446}
447 447
448/** 448/**
449 * To be documented. 449 * To be documented.
@@ -452,11 +452,11 @@ ecore_x_window_prop_any_type(void)
452 */ 452 */
453EAPI void 453EAPI void
454ecore_x_window_prop_property_set(Ecore_X_Window win, 454ecore_x_window_prop_property_set(Ecore_X_Window win,
455 Ecore_X_Atom property, 455 Ecore_X_Atom property,
456 Ecore_X_Atom type, 456 Ecore_X_Atom type,
457 int size, 457 int size,
458 void *data, 458 void *data,
459 int number) 459 int number)
460{ 460{
461 LOGFN(__FILE__, __LINE__, __FUNCTION__); 461 LOGFN(__FILE__, __LINE__, __FUNCTION__);
462 if (win == 0) 462 if (win == 0)
@@ -479,13 +479,14 @@ ecore_x_window_prop_property_set(Ecore_X_Window win,
479 dat = malloc(sizeof(unsigned long) * number); 479 dat = malloc(sizeof(unsigned long) * number);
480 if (dat) 480 if (dat)
481 { 481 {
482 for (ptr = (int *)data, i = 0; i < number; i++) dat[i] = ptr[i]; 482 for (ptr = (int *)data, i = 0; i < number; i++)
483 dat[i] = ptr[i];
483 XChangeProperty(_ecore_x_disp, win, property, type, size, 484 XChangeProperty(_ecore_x_disp, win, property, type, size,
484 PropModeReplace, (unsigned char *)dat, number); 485 PropModeReplace, (unsigned char *)dat, number);
485 free(dat); 486 free(dat);
486 } 487 }
487 } 488 }
488} /* ecore_x_window_prop_property_set */ 489}
489 490
490/** 491/**
491 * To be documented. 492 * To be documented.
@@ -493,12 +494,12 @@ ecore_x_window_prop_property_set(Ecore_X_Window win,
493 * FIXME: To be fixed. 494 * FIXME: To be fixed.
494 */ 495 */
495EAPI int 496EAPI int
496ecore_x_window_prop_property_get(Ecore_X_Window win, 497ecore_x_window_prop_property_get(Ecore_X_Window win,
497 Ecore_X_Atom property, 498 Ecore_X_Atom property,
498 Ecore_X_Atom type, 499 Ecore_X_Atom type,
499 int size __UNUSED__, 500 int size __UNUSED__,
500 unsigned char **data, 501 unsigned char **data,
501 int *num) 502 int *num)
502{ 503{
503 Atom type_ret = 0; 504 Atom type_ret = 0;
504 int ret, size_ret = 0; 505 int ret, size_ret = 0;
@@ -552,7 +553,7 @@ ecore_x_window_prop_property_get(Ecore_X_Window win,
552 for (i = 0; i < num_ret; i++) 553 for (i = 0; i < num_ret; i++)
553 ((unsigned int *)*data)[i] = ((unsigned long *)prop_ret)[i]; 554 ((unsigned int *)*data)[i] = ((unsigned long *)prop_ret)[i];
554 break; 555 break;
555 } /* switch */ 556 }
556 557
557 XFree(prop_ret); 558 XFree(prop_ret);
558 559
@@ -560,19 +561,19 @@ ecore_x_window_prop_property_get(Ecore_X_Window win,
560 *num = num_ret; 561 *num = num_ret;
561 562
562 return size_ret; 563 return size_ret;
563} /* ecore_x_window_prop_property_get */ 564}
564 565
565EAPI void 566EAPI void
566ecore_x_window_prop_property_del(Ecore_X_Window win, 567ecore_x_window_prop_property_del(Ecore_X_Window win,
567 Ecore_X_Atom property) 568 Ecore_X_Atom property)
568{ 569{
569 LOGFN(__FILE__, __LINE__, __FUNCTION__); 570 LOGFN(__FILE__, __LINE__, __FUNCTION__);
570 XDeleteProperty(_ecore_x_disp, win, property); 571 XDeleteProperty(_ecore_x_disp, win, property);
571} /* ecore_x_window_prop_property_del */ 572}
572 573
573EAPI Ecore_X_Atom * 574EAPI Ecore_X_Atom *
574ecore_x_window_prop_list(Ecore_X_Window win, 575ecore_x_window_prop_list(Ecore_X_Window win,
575 int *num_ret) 576 int *num_ret)
576{ 577{
577 Ecore_X_Atom *atoms; 578 Ecore_X_Atom *atoms;
578 Atom *atom_ret; 579 Atom *atom_ret;
@@ -589,14 +590,15 @@ ecore_x_window_prop_list(Ecore_X_Window win,
589 atoms = malloc(num * sizeof(Ecore_X_Atom)); 590 atoms = malloc(num * sizeof(Ecore_X_Atom));
590 if (atoms) 591 if (atoms)
591 { 592 {
592 for (i = 0; i < num; i++) atoms[i] = atom_ret[i]; 593 for (i = 0; i < num; i++)
594 atoms[i] = atom_ret[i];
593 if (num_ret) 595 if (num_ret)
594 *num_ret = num; 596 *num_ret = num;
595 } 597 }
596 598
597 XFree(atom_ret); 599 XFree(atom_ret);
598 return atoms; 600 return atoms;
599} /* ecore_x_window_prop_list */ 601}
600 602
601/** 603/**
602 * Set a window string property. 604 * Set a window string property.
@@ -608,8 +610,8 @@ ecore_x_window_prop_list(Ecore_X_Window win,
608 */ 610 */
609EAPI void 611EAPI void
610ecore_x_window_prop_string_set(Ecore_X_Window win, 612ecore_x_window_prop_string_set(Ecore_X_Window win,
611 Ecore_X_Atom type, 613 Ecore_X_Atom type,
612 const char *str) 614 const char *str)
613{ 615{
614 XTextProperty xtp; 616 XTextProperty xtp;
615 617
@@ -622,7 +624,7 @@ ecore_x_window_prop_string_set(Ecore_X_Window win,
622 xtp.encoding = ECORE_X_ATOM_UTF8_STRING; 624 xtp.encoding = ECORE_X_ATOM_UTF8_STRING;
623 xtp.nitems = strlen(str); 625 xtp.nitems = strlen(str);
624 XSetTextProperty(_ecore_x_disp, win, &xtp, type); 626 XSetTextProperty(_ecore_x_disp, win, &xtp, type);
625} /* ecore_x_window_prop_string_set */ 627}
626 628
627/** 629/**
628 * Get a window string property. 630 * Get a window string property.
@@ -633,7 +635,7 @@ ecore_x_window_prop_string_set(Ecore_X_Window win,
633 */ 635 */
634EAPI char * 636EAPI char *
635ecore_x_window_prop_string_get(Ecore_X_Window win, 637ecore_x_window_prop_string_get(Ecore_X_Window win,
636 Ecore_X_Atom type) 638 Ecore_X_Atom type)
637{ 639{
638 XTextProperty xtp; 640 XTextProperty xtp;
639 char *str = NULL; 641 char *str = NULL;
@@ -673,10 +675,10 @@ ecore_x_window_prop_string_get(Ecore_X_Window win,
673 } 675 }
674 676
675 return str; 677 return str;
676} /* ecore_x_window_prop_string_get */ 678}
677 679
678EAPI Eina_Bool 680EAPI Eina_Bool
679ecore_x_window_prop_protocol_isset(Ecore_X_Window win, 681ecore_x_window_prop_protocol_isset(Ecore_X_Window win,
680 Ecore_X_WM_Protocol protocol) 682 Ecore_X_WM_Protocol protocol)
681{ 683{
682 Atom proto, *protos = NULL; 684 Atom proto, *protos = NULL;
@@ -703,7 +705,7 @@ ecore_x_window_prop_protocol_isset(Ecore_X_Window win,
703 XFree(protos); 705 XFree(protos);
704 706
705 return ret; 707 return ret;
706} /* ecore_x_window_prop_protocol_isset */ 708}
707 709
708/** 710/**
709 * To be documented. 711 * To be documented.
@@ -712,7 +714,7 @@ ecore_x_window_prop_protocol_isset(Ecore_X_Window win,
712 */ 714 */
713EAPI Ecore_X_WM_Protocol * 715EAPI Ecore_X_WM_Protocol *
714ecore_x_window_prop_protocol_list_get(Ecore_X_Window win, 716ecore_x_window_prop_protocol_list_get(Ecore_X_Window win,
715 int *num_ret) 717 int *num_ret)
716{ 718{
717 Atom *protos = NULL; 719 Atom *protos = NULL;
718 int i, protos_count = 0; 720 int i, protos_count = 0;
@@ -746,5 +748,5 @@ ecore_x_window_prop_protocol_list_get(Ecore_X_Window win,
746 XFree(protos); 748 XFree(protos);
747 *num_ret = protos_count; 749 *num_ret = protos_count;
748 return prot_ret; 750 return prot_ret;
749} /* ecore_x_window_prop_protocol_list_get */ 751}
750 752
diff --git a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_window_shape.c b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_window_shape.c
index 2e8f8ce..71718cf 100644
--- a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_window_shape.c
+++ b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_window_shape.c
@@ -28,7 +28,7 @@ ecore_x_window_shape_mask_set(Ecore_X_Window win,
28{ 28{
29 LOGFN(__FILE__, __LINE__, __FUNCTION__); 29 LOGFN(__FILE__, __LINE__, __FUNCTION__);
30 XShapeCombineMask(_ecore_x_disp, win, ShapeBounding, 0, 0, mask, ShapeSet); 30 XShapeCombineMask(_ecore_x_disp, win, ShapeBounding, 0, 0, mask, ShapeSet);
31} /* ecore_x_window_shape_mask_set */ 31}
32 32
33/** 33/**
34 * Sets the input shape of the given window to that given by the pixmap @p mask. 34 * Sets the input shape of the given window to that given by the pixmap @p mask.
@@ -48,7 +48,7 @@ ecore_x_window_shape_input_mask_set(Ecore_X_Window win,
48 return; 48 return;
49 win = mask = 0; 49 win = mask = 0;
50#endif /* ifdef ShapeInput */ 50#endif /* ifdef ShapeInput */
51} /* ecore_x_window_shape_input_mask_set */ 51}
52 52
53EAPI void 53EAPI void
54ecore_x_window_shape_window_set(Ecore_X_Window win, 54ecore_x_window_shape_window_set(Ecore_X_Window win,
@@ -63,7 +63,7 @@ ecore_x_window_shape_window_set(Ecore_X_Window win,
63 shape_win, 63 shape_win,
64 ShapeBounding, 64 ShapeBounding,
65 ShapeSet); 65 ShapeSet);
66} /* ecore_x_window_shape_window_set */ 66}
67 67
68EAPI void 68EAPI void
69ecore_x_window_shape_input_window_set(Ecore_X_Window win, 69ecore_x_window_shape_input_window_set(Ecore_X_Window win,
@@ -83,13 +83,13 @@ ecore_x_window_shape_input_window_set(Ecore_X_Window win,
83 return; 83 return;
84 win = shape_win = 0; 84 win = shape_win = 0;
85#endif 85#endif
86} /* ecore_x_window_shape_input_window_set */ 86}
87 87
88EAPI void 88EAPI void
89ecore_x_window_shape_window_set_xy(Ecore_X_Window win, 89ecore_x_window_shape_window_set_xy(Ecore_X_Window win,
90 Ecore_X_Window shape_win, 90 Ecore_X_Window shape_win,
91 int x, 91 int x,
92 int y) 92 int y)
93{ 93{
94 LOGFN(__FILE__, __LINE__, __FUNCTION__); 94 LOGFN(__FILE__, __LINE__, __FUNCTION__);
95 XShapeCombineShape(_ecore_x_disp, 95 XShapeCombineShape(_ecore_x_disp,
@@ -100,13 +100,13 @@ ecore_x_window_shape_window_set_xy(Ecore_X_Window win,
100 shape_win, 100 shape_win,
101 ShapeBounding, 101 ShapeBounding,
102 ShapeSet); 102 ShapeSet);
103} /* ecore_x_window_shape_window_set_xy */ 103}
104 104
105EAPI void 105EAPI void
106ecore_x_window_shape_input_window_set_xy(Ecore_X_Window win, 106ecore_x_window_shape_input_window_set_xy(Ecore_X_Window win,
107 Ecore_X_Window shape_win, 107 Ecore_X_Window shape_win,
108 int x, 108 int x,
109 int y) 109 int y)
110{ 110{
111#ifdef ShapeInput 111#ifdef ShapeInput
112 LOGFN(__FILE__, __LINE__, __FUNCTION__); 112 LOGFN(__FILE__, __LINE__, __FUNCTION__);
@@ -122,14 +122,14 @@ ecore_x_window_shape_input_window_set_xy(Ecore_X_Window win,
122 return; 122 return;
123 win = shape_win = x = y = 0; 123 win = shape_win = x = y = 0;
124#endif 124#endif
125} /* ecore_x_window_shape_input_window_set_xy */ 125}
126 126
127EAPI void 127EAPI void
128ecore_x_window_shape_rectangle_set(Ecore_X_Window win, 128ecore_x_window_shape_rectangle_set(Ecore_X_Window win,
129 int x, 129 int x,
130 int y, 130 int y,
131 int w, 131 int w,
132 int h) 132 int h)
133{ 133{
134 XRectangle rect; 134 XRectangle rect;
135 135
@@ -147,14 +147,14 @@ ecore_x_window_shape_rectangle_set(Ecore_X_Window win,
147 1, 147 1,
148 ShapeSet, 148 ShapeSet,
149 Unsorted); 149 Unsorted);
150} /* ecore_x_window_shape_rectangle_set */ 150}
151 151
152EAPI void 152EAPI void
153ecore_x_window_shape_input_rectangle_set(Ecore_X_Window win, 153ecore_x_window_shape_input_rectangle_set(Ecore_X_Window win,
154 int x, 154 int x,
155 int y, 155 int y,
156 int w, 156 int w,
157 int h) 157 int h)
158{ 158{
159#ifdef ShapeInput 159#ifdef ShapeInput
160 XRectangle rect; 160 XRectangle rect;
@@ -177,12 +177,12 @@ ecore_x_window_shape_input_rectangle_set(Ecore_X_Window win,
177 return; 177 return;
178 win = x = y = w = h = 0; 178 win = x = y = w = h = 0;
179#endif 179#endif
180} /* ecore_x_window_shape_input_rectangle_set */ 180}
181 181
182EAPI void 182EAPI void
183ecore_x_window_shape_rectangles_set(Ecore_X_Window win, 183ecore_x_window_shape_rectangles_set(Ecore_X_Window win,
184 Ecore_X_Rectangle *rects, 184 Ecore_X_Rectangle *rects,
185 int num) 185 int num)
186{ 186{
187#ifdef ShapeInput 187#ifdef ShapeInput
188 XRectangle *rect = NULL; 188 XRectangle *rect = NULL;
@@ -216,12 +216,12 @@ ecore_x_window_shape_rectangles_set(Ecore_X_Window win,
216 return; 216 return;
217 win = rects = num = 0; 217 win = rects = num = 0;
218#endif 218#endif
219} /* ecore_x_window_shape_rectangles_set */ 219}
220 220
221EAPI void 221EAPI void
222ecore_x_window_shape_input_rectangles_set(Ecore_X_Window win, 222ecore_x_window_shape_input_rectangles_set(Ecore_X_Window win,
223 Ecore_X_Rectangle *rects, 223 Ecore_X_Rectangle *rects,
224 int num) 224 int num)
225{ 225{
226#ifdef ShapeInput 226#ifdef ShapeInput
227 XRectangle *rect = NULL; 227 XRectangle *rect = NULL;
@@ -255,14 +255,14 @@ ecore_x_window_shape_input_rectangles_set(Ecore_X_Window win,
255 return; 255 return;
256 win = rects = num = 0; 256 win = rects = num = 0;
257#endif 257#endif
258} /* ecore_x_window_shape_input_rectangles_set */ 258}
259 259
260EAPI void 260EAPI void
261ecore_x_window_shape_rectangle_subtract(Ecore_X_Window win, 261ecore_x_window_shape_rectangle_subtract(Ecore_X_Window win,
262 int x, 262 int x,
263 int y, 263 int y,
264 int w, 264 int w,
265 int h) 265 int h)
266{ 266{
267 XRectangle rect; 267 XRectangle rect;
268 268
@@ -280,14 +280,14 @@ ecore_x_window_shape_rectangle_subtract(Ecore_X_Window win,
280 1, 280 1,
281 ShapeSubtract, 281 ShapeSubtract,
282 Unsorted); 282 Unsorted);
283} /* ecore_x_window_shape_rectangle_subtract */ 283}
284 284
285EAPI void 285EAPI void
286ecore_x_window_shape_input_rectangle_subtract(Ecore_X_Window win, 286ecore_x_window_shape_input_rectangle_subtract(Ecore_X_Window win,
287 int x, 287 int x,
288 int y, 288 int y,
289 int w, 289 int w,
290 int h) 290 int h)
291{ 291{
292#ifdef ShapeInput 292#ifdef ShapeInput
293 XRectangle rect; 293 XRectangle rect;
@@ -310,7 +310,7 @@ ecore_x_window_shape_input_rectangle_subtract(Ecore_X_Window win,
310 return; 310 return;
311 win = x = y = w = h = 0; 311 win = x = y = w = h = 0;
312#endif 312#endif
313} /* ecore_x_window_shape_input_rectangle_subtract */ 313}
314 314
315EAPI void 315EAPI void
316ecore_x_window_shape_window_add(Ecore_X_Window win, 316ecore_x_window_shape_window_add(Ecore_X_Window win,
@@ -325,13 +325,13 @@ ecore_x_window_shape_window_add(Ecore_X_Window win,
325 shape_win, 325 shape_win,
326 ShapeBounding, 326 ShapeBounding,
327 ShapeUnion); 327 ShapeUnion);
328} /* ecore_x_window_shape_window_add */ 328}
329 329
330EAPI void 330EAPI void
331ecore_x_window_shape_window_add_xy(Ecore_X_Window win, 331ecore_x_window_shape_window_add_xy(Ecore_X_Window win,
332 Ecore_X_Window shape_win, 332 Ecore_X_Window shape_win,
333 int x, 333 int x,
334 int y) 334 int y)
335{ 335{
336 LOGFN(__FILE__, __LINE__, __FUNCTION__); 336 LOGFN(__FILE__, __LINE__, __FUNCTION__);
337 XShapeCombineShape(_ecore_x_disp, 337 XShapeCombineShape(_ecore_x_disp,
@@ -342,13 +342,13 @@ ecore_x_window_shape_window_add_xy(Ecore_X_Window win,
342 shape_win, 342 shape_win,
343 ShapeBounding, 343 ShapeBounding,
344 ShapeUnion); 344 ShapeUnion);
345} /* ecore_x_window_shape_window_add_xy */ 345}
346 346
347EAPI void 347EAPI void
348ecore_x_window_shape_input_window_add_xy(Ecore_X_Window win, 348ecore_x_window_shape_input_window_add_xy(Ecore_X_Window win,
349 Ecore_X_Window shape_win, 349 Ecore_X_Window shape_win,
350 int x, 350 int x,
351 int y) 351 int y)
352{ 352{
353#ifdef ShapeInput 353#ifdef ShapeInput
354 LOGFN(__FILE__, __LINE__, __FUNCTION__); 354 LOGFN(__FILE__, __LINE__, __FUNCTION__);
@@ -364,14 +364,14 @@ ecore_x_window_shape_input_window_add_xy(Ecore_X_Window win,
364 return; 364 return;
365 win = shape_win = x = y = 0; 365 win = shape_win = x = y = 0;
366#endif 366#endif
367} /* ecore_x_window_shape_input_window_add_xy */ 367}
368 368
369EAPI void 369EAPI void
370ecore_x_window_shape_rectangle_add(Ecore_X_Window win, 370ecore_x_window_shape_rectangle_add(Ecore_X_Window win,
371 int x, 371 int x,
372 int y, 372 int y,
373 int w, 373 int w,
374 int h) 374 int h)
375{ 375{
376 XRectangle rect; 376 XRectangle rect;
377 377
@@ -389,14 +389,14 @@ ecore_x_window_shape_rectangle_add(Ecore_X_Window win,
389 1, 389 1,
390 ShapeUnion, 390 ShapeUnion,
391 Unsorted); 391 Unsorted);
392} /* ecore_x_window_shape_rectangle_add */ 392}
393 393
394EAPI void 394EAPI void
395ecore_x_window_shape_input_rectangle_add(Ecore_X_Window win, 395ecore_x_window_shape_input_rectangle_add(Ecore_X_Window win,
396 int x, 396 int x,
397 int y, 397 int y,
398 int w, 398 int w,
399 int h) 399 int h)
400{ 400{
401#ifdef ShapeInput 401#ifdef ShapeInput
402 XRectangle rect; 402 XRectangle rect;
@@ -419,14 +419,14 @@ ecore_x_window_shape_input_rectangle_add(Ecore_X_Window win,
419 return; 419 return;
420 win = x = y = w = h = 0; 420 win = x = y = w = h = 0;
421#endif 421#endif
422} /* ecore_x_window_shape_input_rectangle_add */ 422}
423 423
424EAPI void 424EAPI void
425ecore_x_window_shape_rectangle_clip(Ecore_X_Window win, 425ecore_x_window_shape_rectangle_clip(Ecore_X_Window win,
426 int x, 426 int x,
427 int y, 427 int y,
428 int w, 428 int w,
429 int h) 429 int h)
430{ 430{
431 XRectangle rect; 431 XRectangle rect;
432 432
@@ -444,14 +444,14 @@ ecore_x_window_shape_rectangle_clip(Ecore_X_Window win,
444 1, 444 1,
445 ShapeIntersect, 445 ShapeIntersect,
446 Unsorted); 446 Unsorted);
447} /* ecore_x_window_shape_rectangle_clip */ 447}
448 448
449EAPI void 449EAPI void
450ecore_x_window_shape_input_rectangle_clip(Ecore_X_Window win, 450ecore_x_window_shape_input_rectangle_clip(Ecore_X_Window win,
451 int x, 451 int x,
452 int y, 452 int y,
453 int w, 453 int w,
454 int h) 454 int h)
455{ 455{
456#ifdef ShapeInput 456#ifdef ShapeInput
457 XRectangle rect; 457 XRectangle rect;
@@ -474,12 +474,12 @@ ecore_x_window_shape_input_rectangle_clip(Ecore_X_Window win,
474 return; 474 return;
475 win = x = y = w = h = 0; 475 win = x = y = w = h = 0;
476#endif 476#endif
477} /* ecore_x_window_shape_input_rectangle_clip */ 477}
478 478
479EAPI void 479EAPI void
480ecore_x_window_shape_rectangles_add(Ecore_X_Window win, 480ecore_x_window_shape_rectangles_add(Ecore_X_Window win,
481 Ecore_X_Rectangle *rects, 481 Ecore_X_Rectangle *rects,
482 int num) 482 int num)
483{ 483{
484 XRectangle *rect = NULL; 484 XRectangle *rect = NULL;
485 int i; 485 int i;
@@ -508,12 +508,12 @@ ecore_x_window_shape_rectangles_add(Ecore_X_Window win,
508 ShapeUnion, 508 ShapeUnion,
509 Unsorted); 509 Unsorted);
510 if (rect) free(rect); 510 if (rect) free(rect);
511} /* ecore_x_window_shape_rectangles_add */ 511}
512 512
513EAPI void 513EAPI void
514ecore_x_window_shape_input_rectangles_add(Ecore_X_Window win, 514ecore_x_window_shape_input_rectangles_add(Ecore_X_Window win,
515 Ecore_X_Rectangle *rects, 515 Ecore_X_Rectangle *rects,
516 int num) 516 int num)
517{ 517{
518#ifdef ShapeInput 518#ifdef ShapeInput
519 XRectangle *rect = NULL; 519 XRectangle *rect = NULL;
@@ -547,11 +547,11 @@ ecore_x_window_shape_input_rectangles_add(Ecore_X_Window win,
547 return; 547 return;
548 win = rects = num = 0; 548 win = rects = num = 0;
549#endif 549#endif
550} /* ecore_x_window_shape_input_rectangles_add */ 550}
551 551
552EAPI Ecore_X_Rectangle * 552EAPI Ecore_X_Rectangle *
553ecore_x_window_shape_rectangles_get(Ecore_X_Window win, 553ecore_x_window_shape_rectangles_get(Ecore_X_Window win,
554 int *num_ret) 554 int *num_ret)
555{ 555{
556 XRectangle *rect; 556 XRectangle *rect;
557 Ecore_X_Rectangle *rects = NULL; 557 Ecore_X_Rectangle *rects = NULL;
@@ -585,11 +585,11 @@ ecore_x_window_shape_rectangles_get(Ecore_X_Window win,
585 } 585 }
586 if (num_ret) *num_ret = num; 586 if (num_ret) *num_ret = num;
587 return rects; 587 return rects;
588} /* ecore_x_window_shape_rectangles_get */ 588}
589 589
590EAPI Ecore_X_Rectangle * 590EAPI Ecore_X_Rectangle *
591ecore_x_window_shape_input_rectangles_get(Ecore_X_Window win, 591ecore_x_window_shape_input_rectangles_get(Ecore_X_Window win,
592 int *num_ret) 592 int *num_ret)
593{ 593{
594 Ecore_X_Rectangle *rects = NULL; 594 Ecore_X_Rectangle *rects = NULL;
595#ifdef ShapeInput 595#ifdef ShapeInput
@@ -643,16 +643,16 @@ ecore_x_window_shape_input_rectangles_get(Ecore_X_Window win,
643 if (num_ret) *num_ret = 1; 643 if (num_ret) *num_ret = 1;
644 return rects; 644 return rects;
645#endif 645#endif
646} /* ecore_x_window_shape_input_rectangles_get */ 646}
647 647
648EAPI void 648EAPI void
649ecore_x_window_shape_events_select(Ecore_X_Window win, 649ecore_x_window_shape_events_select(Ecore_X_Window win,
650 Eina_Bool on) 650 Eina_Bool on)
651{ 651{
652 LOGFN(__FILE__, __LINE__, __FUNCTION__); 652 LOGFN(__FILE__, __LINE__, __FUNCTION__);
653 if (on) 653 if (on)
654 XShapeSelectInput(_ecore_x_disp, win, ShapeNotifyMask); 654 XShapeSelectInput(_ecore_x_disp, win, ShapeNotifyMask);
655 else 655 else
656 XShapeSelectInput(_ecore_x_disp, win, 0); 656 XShapeSelectInput(_ecore_x_disp, win, 0);
657} /* ecore_x_window_shape_events_select */ 657}
658 658
diff --git a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_xi2.c b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_xi2.c
index 38a81dd..fbfbd43 100644
--- a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_xi2.c
+++ b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_xi2.c
@@ -46,7 +46,7 @@ _ecore_x_input_init(void)
46 _ecore_x_xi2_devs = XIQueryDevice(_ecore_x_disp, XIAllDevices, 46 _ecore_x_xi2_devs = XIQueryDevice(_ecore_x_disp, XIAllDevices,
47 &_ecore_x_xi2_num); 47 &_ecore_x_xi2_num);
48#endif /* ifdef ECORE_XI2 */ 48#endif /* ifdef ECORE_XI2 */
49} /* _ecore_x_input_init */ 49}
50 50
51void 51void
52_ecore_x_input_shutdown(void) 52_ecore_x_input_shutdown(void)
@@ -61,7 +61,7 @@ _ecore_x_input_shutdown(void)
61 _ecore_x_xi2_num = 0; 61 _ecore_x_xi2_num = 0;
62 _ecore_x_xi2_opcode = -1; 62 _ecore_x_xi2_opcode = -1;
63#endif /* ifdef ECORE_XI2 */ 63#endif /* ifdef ECORE_XI2 */
64} /* _ecore_x_input_shutdown */ 64}
65 65
66void 66void
67_ecore_x_input_handler(XEvent *xevent) 67_ecore_x_input_handler(XEvent *xevent)
@@ -205,9 +205,9 @@ _ecore_x_input_handler(XEvent *xevent)
205#endif 205#endif
206 default: 206 default:
207 break; 207 break;
208 } /* switch */ 208 }
209#endif /* ifdef ECORE_XI2 */ 209#endif /* ifdef ECORE_XI2 */
210} /* _ecore_x_input_handler */ 210}
211 211
212EAPI Eina_Bool 212EAPI Eina_Bool
213ecore_x_input_multi_select(Ecore_X_Window win) 213ecore_x_input_multi_select(Ecore_X_Window win)
@@ -279,5 +279,5 @@ ecore_x_input_multi_select(Ecore_X_Window win)
279#else /* ifdef ECORE_XI2 */ 279#else /* ifdef ECORE_XI2 */
280 return EINA_FALSE; 280 return EINA_FALSE;
281#endif /* ifdef ECORE_XI2 */ 281#endif /* ifdef ECORE_XI2 */
282} /* ecore_x_input_multi_select */ 282}
283 283
diff --git a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_xinerama.c b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_xinerama.c
index 1d956b7..f49a4d3 100644
--- a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_xinerama.c
+++ b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_xinerama.c
@@ -36,10 +36,10 @@ ecore_x_xinerama_screen_count_get(void)
36 36
37#endif /* ifdef ECORE_XINERAMA */ 37#endif /* ifdef ECORE_XINERAMA */
38 return 0; 38 return 0;
39} /* ecore_x_xinerama_screen_count_get */ 39}
40 40
41EAPI Eina_Bool 41EAPI Eina_Bool
42ecore_x_xinerama_screen_geometry_get(int screen, 42ecore_x_xinerama_screen_geometry_get(int screen,
43 int *x, 43 int *x,
44 int *y, 44 int *y,
45 int *w, 45 int *w,
@@ -87,5 +87,5 @@ ecore_x_xinerama_screen_geometry_get(int screen,
87 87
88 return EINA_FALSE; 88 return EINA_FALSE;
89 screen = 0; 89 screen = 0;
90} /* ecore_x_xinerama_screen_geometry_get */ 90}
91 91
diff --git a/libraries/ecore/src/modules/Makefile.in b/libraries/ecore/src/modules/Makefile.in
index 62cbce2..4bb9420 100644
--- a/libraries/ecore/src/modules/Makefile.in
+++ b/libraries/ecore/src/modules/Makefile.in
@@ -227,10 +227,10 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
227PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 227PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
228PIXMAN_LIBS = @PIXMAN_LIBS@ 228PIXMAN_LIBS = @PIXMAN_LIBS@
229PKG_CONFIG = @PKG_CONFIG@ 229PKG_CONFIG = @PKG_CONFIG@
230PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
231PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
232POSUB = @POSUB@ 230POSUB = @POSUB@
233RANLIB = @RANLIB@ 231RANLIB = @RANLIB@
232SCIM_CFLAGS = @SCIM_CFLAGS@
233SCIM_LIBS = @SCIM_LIBS@
234SDL_CFLAGS = @SDL_CFLAGS@ 234SDL_CFLAGS = @SDL_CFLAGS@
235SDL_CONFIG = @SDL_CONFIG@ 235SDL_CONFIG = @SDL_CONFIG@
236SDL_LIBS = @SDL_LIBS@ 236SDL_LIBS = @SDL_LIBS@
@@ -249,6 +249,10 @@ TSLIB_LIBS = @TSLIB_LIBS@
249USE_NLS = @USE_NLS@ 249USE_NLS = @USE_NLS@
250VERSION = @VERSION@ 250VERSION = @VERSION@
251VMAJ = @VMAJ@ 251VMAJ = @VMAJ@
252WAYLAND_CFLAGS = @WAYLAND_CFLAGS@
253WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
254WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
255WAYLAND_LIBS = @WAYLAND_LIBS@
252WIN32_CFLAGS = @WIN32_CFLAGS@ 256WIN32_CFLAGS = @WIN32_CFLAGS@
253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 257WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
254WIN32_LIBS = @WIN32_LIBS@ 258WIN32_LIBS = @WIN32_LIBS@
@@ -362,6 +366,8 @@ ecore_imf_cflags = @ecore_imf_cflags@
362ecore_imf_evas_cflags = @ecore_imf_evas_cflags@ 366ecore_imf_evas_cflags = @ecore_imf_evas_cflags@
363ecore_imf_evas_libs = @ecore_imf_evas_libs@ 367ecore_imf_evas_libs = @ecore_imf_evas_libs@
364ecore_imf_libs = @ecore_imf_libs@ 368ecore_imf_libs = @ecore_imf_libs@
369ecore_imf_scim_cflags = @ecore_imf_scim_cflags@
370ecore_imf_scim_libs = @ecore_imf_scim_libs@
365ecore_imf_xim_cflags = @ecore_imf_xim_cflags@ 371ecore_imf_xim_cflags = @ecore_imf_xim_cflags@
366ecore_imf_xim_libs = @ecore_imf_xim_libs@ 372ecore_imf_xim_libs = @ecore_imf_xim_libs@
367ecore_input_cflags = @ecore_input_cflags@ 373ecore_input_cflags = @ecore_input_cflags@
@@ -374,6 +380,8 @@ ecore_psl1ght_cflags = @ecore_psl1ght_cflags@
374ecore_psl1ght_libs = @ecore_psl1ght_libs@ 380ecore_psl1ght_libs = @ecore_psl1ght_libs@
375ecore_sdl_cflags = @ecore_sdl_cflags@ 381ecore_sdl_cflags = @ecore_sdl_cflags@
376ecore_sdl_libs = @ecore_sdl_libs@ 382ecore_sdl_libs = @ecore_sdl_libs@
383ecore_wayland_cflags = @ecore_wayland_cflags@
384ecore_wayland_libs = @ecore_wayland_libs@
377ecore_win32_cflags = @ecore_win32_cflags@ 385ecore_win32_cflags = @ecore_win32_cflags@
378ecore_win32_libs = @ecore_win32_libs@ 386ecore_win32_libs = @ecore_win32_libs@
379ecore_wince_cflags = @ecore_wince_cflags@ 387ecore_wince_cflags = @ecore_wince_cflags@
@@ -418,12 +426,14 @@ requirements_ecore_fb = @requirements_ecore_fb@
418requirements_ecore_file = @requirements_ecore_file@ 426requirements_ecore_file = @requirements_ecore_file@
419requirements_ecore_imf = @requirements_ecore_imf@ 427requirements_ecore_imf = @requirements_ecore_imf@
420requirements_ecore_imf_evas = @requirements_ecore_imf_evas@ 428requirements_ecore_imf_evas = @requirements_ecore_imf_evas@
429requirements_ecore_imf_scim = @requirements_ecore_imf_scim@
421requirements_ecore_imf_xim = @requirements_ecore_imf_xim@ 430requirements_ecore_imf_xim = @requirements_ecore_imf_xim@
422requirements_ecore_input = @requirements_ecore_input@ 431requirements_ecore_input = @requirements_ecore_input@
423requirements_ecore_input_evas = @requirements_ecore_input_evas@ 432requirements_ecore_input_evas = @requirements_ecore_input_evas@
424requirements_ecore_ipc = @requirements_ecore_ipc@ 433requirements_ecore_ipc = @requirements_ecore_ipc@
425requirements_ecore_psl1ght = @requirements_ecore_psl1ght@ 434requirements_ecore_psl1ght = @requirements_ecore_psl1ght@
426requirements_ecore_sdl = @requirements_ecore_sdl@ 435requirements_ecore_sdl = @requirements_ecore_sdl@
436requirements_ecore_wayland = @requirements_ecore_wayland@
427requirements_ecore_win32 = @requirements_ecore_win32@ 437requirements_ecore_win32 = @requirements_ecore_win32@
428requirements_ecore_wince = @requirements_ecore_wince@ 438requirements_ecore_wince = @requirements_ecore_wince@
429requirements_ecore_x = @requirements_ecore_x@ 439requirements_ecore_x = @requirements_ecore_x@
diff --git a/libraries/ecore/src/modules/immodules/Makefile.am b/libraries/ecore/src/modules/immodules/Makefile.am
index 6978672..2f121ae 100644
--- a/libraries/ecore/src/modules/immodules/Makefile.am
+++ b/libraries/ecore/src/modules/immodules/Makefile.am
@@ -5,3 +5,7 @@ SUBDIRS =
5if BUILD_ECORE_IMF_XIM 5if BUILD_ECORE_IMF_XIM
6SUBDIRS += xim 6SUBDIRS += xim
7endif 7endif
8
9if BUILD_ECORE_IMF_SCIM
10SUBDIRS += scim
11endif
diff --git a/libraries/ecore/src/modules/immodules/Makefile.in b/libraries/ecore/src/modules/immodules/Makefile.in
index 2ebe9fe..e65881c 100644
--- a/libraries/ecore/src/modules/immodules/Makefile.in
+++ b/libraries/ecore/src/modules/immodules/Makefile.in
@@ -34,6 +34,7 @@ POST_UNINSTALL = :
34build_triplet = @build@ 34build_triplet = @build@
35host_triplet = @host@ 35host_triplet = @host@
36@BUILD_ECORE_IMF_XIM_TRUE@am__append_1 = xim 36@BUILD_ECORE_IMF_XIM_TRUE@am__append_1 = xim
37@BUILD_ECORE_IMF_SCIM_TRUE@am__append_2 = scim
37subdir = src/modules/immodules 38subdir = src/modules/immodules
38DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in 39DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
39ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 40ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -83,7 +84,7 @@ AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
83 distdir 84 distdir
84ETAGS = etags 85ETAGS = etags
85CTAGS = ctags 86CTAGS = ctags
86DIST_SUBDIRS = xim 87DIST_SUBDIRS = xim scim
87DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) 88DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
88am__relativize = \ 89am__relativize = \
89 dir0=`pwd`; \ 90 dir0=`pwd`; \
@@ -228,10 +229,10 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
228PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 229PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
229PIXMAN_LIBS = @PIXMAN_LIBS@ 230PIXMAN_LIBS = @PIXMAN_LIBS@
230PKG_CONFIG = @PKG_CONFIG@ 231PKG_CONFIG = @PKG_CONFIG@
231PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
232PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
233POSUB = @POSUB@ 232POSUB = @POSUB@
234RANLIB = @RANLIB@ 233RANLIB = @RANLIB@
234SCIM_CFLAGS = @SCIM_CFLAGS@
235SCIM_LIBS = @SCIM_LIBS@
235SDL_CFLAGS = @SDL_CFLAGS@ 236SDL_CFLAGS = @SDL_CFLAGS@
236SDL_CONFIG = @SDL_CONFIG@ 237SDL_CONFIG = @SDL_CONFIG@
237SDL_LIBS = @SDL_LIBS@ 238SDL_LIBS = @SDL_LIBS@
@@ -250,6 +251,10 @@ TSLIB_LIBS = @TSLIB_LIBS@
250USE_NLS = @USE_NLS@ 251USE_NLS = @USE_NLS@
251VERSION = @VERSION@ 252VERSION = @VERSION@
252VMAJ = @VMAJ@ 253VMAJ = @VMAJ@
254WAYLAND_CFLAGS = @WAYLAND_CFLAGS@
255WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
256WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
257WAYLAND_LIBS = @WAYLAND_LIBS@
253WIN32_CFLAGS = @WIN32_CFLAGS@ 258WIN32_CFLAGS = @WIN32_CFLAGS@
254WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 259WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
255WIN32_LIBS = @WIN32_LIBS@ 260WIN32_LIBS = @WIN32_LIBS@
@@ -363,6 +368,8 @@ ecore_imf_cflags = @ecore_imf_cflags@
363ecore_imf_evas_cflags = @ecore_imf_evas_cflags@ 368ecore_imf_evas_cflags = @ecore_imf_evas_cflags@
364ecore_imf_evas_libs = @ecore_imf_evas_libs@ 369ecore_imf_evas_libs = @ecore_imf_evas_libs@
365ecore_imf_libs = @ecore_imf_libs@ 370ecore_imf_libs = @ecore_imf_libs@
371ecore_imf_scim_cflags = @ecore_imf_scim_cflags@
372ecore_imf_scim_libs = @ecore_imf_scim_libs@
366ecore_imf_xim_cflags = @ecore_imf_xim_cflags@ 373ecore_imf_xim_cflags = @ecore_imf_xim_cflags@
367ecore_imf_xim_libs = @ecore_imf_xim_libs@ 374ecore_imf_xim_libs = @ecore_imf_xim_libs@
368ecore_input_cflags = @ecore_input_cflags@ 375ecore_input_cflags = @ecore_input_cflags@
@@ -375,6 +382,8 @@ ecore_psl1ght_cflags = @ecore_psl1ght_cflags@
375ecore_psl1ght_libs = @ecore_psl1ght_libs@ 382ecore_psl1ght_libs = @ecore_psl1ght_libs@
376ecore_sdl_cflags = @ecore_sdl_cflags@ 383ecore_sdl_cflags = @ecore_sdl_cflags@
377ecore_sdl_libs = @ecore_sdl_libs@ 384ecore_sdl_libs = @ecore_sdl_libs@
385ecore_wayland_cflags = @ecore_wayland_cflags@
386ecore_wayland_libs = @ecore_wayland_libs@
378ecore_win32_cflags = @ecore_win32_cflags@ 387ecore_win32_cflags = @ecore_win32_cflags@
379ecore_win32_libs = @ecore_win32_libs@ 388ecore_win32_libs = @ecore_win32_libs@
380ecore_wince_cflags = @ecore_wince_cflags@ 389ecore_wince_cflags = @ecore_wince_cflags@
@@ -419,12 +428,14 @@ requirements_ecore_fb = @requirements_ecore_fb@
419requirements_ecore_file = @requirements_ecore_file@ 428requirements_ecore_file = @requirements_ecore_file@
420requirements_ecore_imf = @requirements_ecore_imf@ 429requirements_ecore_imf = @requirements_ecore_imf@
421requirements_ecore_imf_evas = @requirements_ecore_imf_evas@ 430requirements_ecore_imf_evas = @requirements_ecore_imf_evas@
431requirements_ecore_imf_scim = @requirements_ecore_imf_scim@
422requirements_ecore_imf_xim = @requirements_ecore_imf_xim@ 432requirements_ecore_imf_xim = @requirements_ecore_imf_xim@
423requirements_ecore_input = @requirements_ecore_input@ 433requirements_ecore_input = @requirements_ecore_input@
424requirements_ecore_input_evas = @requirements_ecore_input_evas@ 434requirements_ecore_input_evas = @requirements_ecore_input_evas@
425requirements_ecore_ipc = @requirements_ecore_ipc@ 435requirements_ecore_ipc = @requirements_ecore_ipc@
426requirements_ecore_psl1ght = @requirements_ecore_psl1ght@ 436requirements_ecore_psl1ght = @requirements_ecore_psl1ght@
427requirements_ecore_sdl = @requirements_ecore_sdl@ 437requirements_ecore_sdl = @requirements_ecore_sdl@
438requirements_ecore_wayland = @requirements_ecore_wayland@
428requirements_ecore_win32 = @requirements_ecore_win32@ 439requirements_ecore_win32 = @requirements_ecore_win32@
429requirements_ecore_wince = @requirements_ecore_wince@ 440requirements_ecore_wince = @requirements_ecore_wince@
430requirements_ecore_x = @requirements_ecore_x@ 441requirements_ecore_x = @requirements_ecore_x@
@@ -442,7 +453,7 @@ x_cflags = @x_cflags@
442x_includes = @x_includes@ 453x_includes = @x_includes@
443x_libs = @x_libs@ 454x_libs = @x_libs@
444MAINTAINERCLEANFILES = Makefile.in 455MAINTAINERCLEANFILES = Makefile.in
445SUBDIRS = $(am__append_1) 456SUBDIRS = $(am__append_1) $(am__append_2)
446all: all-recursive 457all: all-recursive
447 458
448.SUFFIXES: 459.SUFFIXES:
diff --git a/libraries/ecore/src/modules/immodules/scim/Makefile.am b/libraries/ecore/src/modules/immodules/scim/Makefile.am
new file mode 100644
index 0000000..40579ca
--- /dev/null
+++ b/libraries/ecore/src/modules/immodules/scim/Makefile.am
@@ -0,0 +1,36 @@
1MAINTAINERCLEANFILES = Makefile.in
2
3AM_CPPFLAGS = \
4-I$(top_srcdir) \
5-I$(top_srcdir)/src/lib/ecore \
6-I$(top_srcdir)/src/lib/ecore_input \
7-I$(top_srcdir)/src/lib/ecore_x \
8-I$(top_srcdir)/src/lib/ecore_imf \
9-I$(top_srcdir)/src/lib/ecore_evas \
10-I$(top_builddir)/src/lib/ecore \
11-I$(top_builddir)/src/lib/ecore_input \
12-I$(top_builddir)/src/lib/ecore_x \
13-I$(top_builddir)/src/lib/ecore_imf \
14-I$(top_builddir)/src/lib/ecore_evas \
15-DPACKAGE_LIB_DIR=\"$(libdir)\" \
16-DPACKAGE_DATA_DIR=\"$(datadir)/$(PACKAGE)\" \
17@SCIM_CFLAGS@ \
18@EVAS_CFLAGS@ \
19@EINA_CFLAGS@
20
21pkgdir = $(libdir)/ecore/immodules
22
23pkg_LTLIBRARIES = scim.la
24scim_la_SOURCES = \
25scim_imcontext.cpp \
26scim_module.cpp \
27scim_imcontext.h
28
29scim_la_LIBADD = \
30 $(top_builddir)/src/lib/ecore_imf/libecore_imf.la \
31 $(top_builddir)/src/lib/ecore_x/libecore_x.la \
32 @SCIM_LIBS@ \
33 @EVAS_LIBS@ \
34 @EINA_LIBS@
35scim_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module -avoid-version
36scim_la_LIBTOOLFLAGS = --tag=disable-static
diff --git a/libraries/ecore/src/modules/immodules/scim/Makefile.in b/libraries/ecore/src/modules/immodules/scim/Makefile.in
new file mode 100644
index 0000000..9fc3283
--- /dev/null
+++ b/libraries/ecore/src/modules/immodules/scim/Makefile.in
@@ -0,0 +1,849 @@
1# Makefile.in generated by automake 1.11.1 from Makefile.am.
2# @configure_input@
3
4# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
5# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
6# Inc.
7# This Makefile.in is free software; the Free Software Foundation
8# gives unlimited permission to copy and/or distribute it,
9# with or without modifications, as long as this notice is preserved.
10
11# This program is distributed in the hope that it will be useful,
12# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
13# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
14# PARTICULAR PURPOSE.
15
16@SET_MAKE@
17
18VPATH = @srcdir@
19pkgdatadir = $(datadir)/@PACKAGE@
20pkgincludedir = $(includedir)/@PACKAGE@
21pkglibdir = $(libdir)/@PACKAGE@
22pkglibexecdir = $(libexecdir)/@PACKAGE@
23am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
24install_sh_DATA = $(install_sh) -c -m 644
25install_sh_PROGRAM = $(install_sh) -c
26install_sh_SCRIPT = $(install_sh) -c
27INSTALL_HEADER = $(INSTALL_DATA)
28transform = $(program_transform_name)
29NORMAL_INSTALL = :
30PRE_INSTALL = :
31POST_INSTALL = :
32NORMAL_UNINSTALL = :
33PRE_UNINSTALL = :
34POST_UNINSTALL = :
35build_triplet = @build@
36host_triplet = @host@
37subdir = src/modules/immodules/scim
38DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
39ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
40am__aclocal_m4_deps = $(top_srcdir)/m4/ac_attribute.m4 \
41 $(top_srcdir)/m4/ac_path_generic.m4 \
42 $(top_srcdir)/m4/check_x_extension.m4 \
43 $(top_srcdir)/m4/ecore_check_module.m4 \
44 $(top_srcdir)/m4/ecore_check_options.m4 \
45 $(top_srcdir)/m4/efl_compiler_flag.m4 \
46 $(top_srcdir)/m4/efl_doxygen.m4 \
47 $(top_srcdir)/m4/efl_examples.m4 \
48 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \
49 $(top_srcdir)/m4/efl_threads.m4 $(top_srcdir)/m4/gettext.m4 \
50 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
51 $(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/lib-ld.m4 \
52 $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.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)/m4/nls.m4 \
56 $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
57 $(top_srcdir)/configure.ac
58am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
59 $(ACLOCAL_M4)
60mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
61CONFIG_HEADER = $(top_builddir)/config.h
62CONFIG_CLEAN_FILES =
63CONFIG_CLEAN_VPATH_FILES =
64am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
65am__vpath_adj = case $$p in \
66 $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
67 *) f=$$p;; \
68 esac;
69am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
70am__install_max = 40
71am__nobase_strip_setup = \
72 srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
73am__nobase_strip = \
74 for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
75am__nobase_list = $(am__nobase_strip_setup); \
76 for p in $$list; do echo "$$p $$p"; done | \
77 sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
78 $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
79 if (++n[$$2] == $(am__install_max)) \
80 { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
81 END { for (dir in files) print dir, files[dir] }'
82am__base_list = \
83 sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
84 sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
85am__installdirs = "$(DESTDIR)$(pkgdir)"
86LTLIBRARIES = $(pkg_LTLIBRARIES)
87scim_la_DEPENDENCIES = \
88 $(top_builddir)/src/lib/ecore_imf/libecore_imf.la \
89 $(top_builddir)/src/lib/ecore_x/libecore_x.la
90am_scim_la_OBJECTS = scim_la-scim_imcontext.lo scim_la-scim_module.lo
91scim_la_OBJECTS = $(am_scim_la_OBJECTS)
92AM_V_lt = $(am__v_lt_$(V))
93am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
94am__v_lt_0 = --silent
95scim_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(scim_la_LIBTOOLFLAGS) \
96 $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
97 $(CXXFLAGS) $(scim_la_LDFLAGS) $(LDFLAGS) -o $@
98DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
99depcomp = $(SHELL) $(top_srcdir)/depcomp
100am__depfiles_maybe = depfiles
101am__mv = mv -f
102CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
103 $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
104LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
105 $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \
106 $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
107 $(AM_CXXFLAGS) $(CXXFLAGS)
108AM_V_CXX = $(am__v_CXX_$(V))
109am__v_CXX_ = $(am__v_CXX_$(AM_DEFAULT_VERBOSITY))
110am__v_CXX_0 = @echo " CXX " $@;
111AM_V_at = $(am__v_at_$(V))
112am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
113am__v_at_0 = @
114CXXLD = $(CXX)
115CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
116 $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
117 $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
118AM_V_CXXLD = $(am__v_CXXLD_$(V))
119am__v_CXXLD_ = $(am__v_CXXLD_$(AM_DEFAULT_VERBOSITY))
120am__v_CXXLD_0 = @echo " CXXLD " $@;
121COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
122 $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
123LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
124 $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
125 $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
126 $(AM_CFLAGS) $(CFLAGS)
127AM_V_CC = $(am__v_CC_$(V))
128am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
129am__v_CC_0 = @echo " CC " $@;
130CCLD = $(CC)
131LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
132 $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
133 $(AM_LDFLAGS) $(LDFLAGS) -o $@
134AM_V_CCLD = $(am__v_CCLD_$(V))
135am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
136am__v_CCLD_0 = @echo " CCLD " $@;
137AM_V_GEN = $(am__v_GEN_$(V))
138am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
139am__v_GEN_0 = @echo " GEN " $@;
140SOURCES = $(scim_la_SOURCES)
141DIST_SOURCES = $(scim_la_SOURCES)
142ETAGS = etags
143CTAGS = ctags
144DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
145ACLOCAL = @ACLOCAL@
146ALLOCA = @ALLOCA@
147AMTAR = @AMTAR@
148AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
149AR = @AR@
150AS = @AS@
151AUTOCONF = @AUTOCONF@
152AUTOHEADER = @AUTOHEADER@
153AUTOMAKE = @AUTOMAKE@
154AWK = @AWK@
155CARES_CFLAGS = @CARES_CFLAGS@
156CARES_LIBS = @CARES_LIBS@
157CC = @CC@
158CCDEPMODE = @CCDEPMODE@
159CFLAGS = @CFLAGS@
160CHECK_CFLAGS = @CHECK_CFLAGS@
161CHECK_LIBS = @CHECK_LIBS@
162CPP = @CPP@
163CPPFLAGS = @CPPFLAGS@
164CURL_CFLAGS = @CURL_CFLAGS@
165CURL_LIBS = @CURL_LIBS@
166CXX = @CXX@
167CXXCPP = @CXXCPP@
168CXXDEPMODE = @CXXDEPMODE@
169CXXFLAGS = @CXXFLAGS@
170CYGPATH_W = @CYGPATH_W@
171DEFS = @DEFS@
172DEPDIR = @DEPDIR@
173DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@
174DIRECTFB_LIBS = @DIRECTFB_LIBS@
175DLLTOOL = @DLLTOOL@
176DSYMUTIL = @DSYMUTIL@
177DUMPBIN = @DUMPBIN@
178ECHO_C = @ECHO_C@
179ECHO_N = @ECHO_N@
180ECHO_T = @ECHO_T@
181ECORE_XCB_CFLAGS = @ECORE_XCB_CFLAGS@
182ECORE_XCB_LIBS = @ECORE_XCB_LIBS@
183EFL_ECORE_BUILD = @EFL_ECORE_BUILD@
184EFL_ECORE_CON_BUILD = @EFL_ECORE_CON_BUILD@
185EFL_ECORE_EVAS_BUILD = @EFL_ECORE_EVAS_BUILD@
186EFL_ECORE_FILE_BUILD = @EFL_ECORE_FILE_BUILD@
187EFL_ECORE_IMF_BUILD = @EFL_ECORE_IMF_BUILD@
188EFL_ECORE_IMF_EVAS_BUILD = @EFL_ECORE_IMF_EVAS_BUILD@
189EFL_ECORE_INPUT_BUILD = @EFL_ECORE_INPUT_BUILD@
190EFL_ECORE_INPUT_EVAS_BUILD = @EFL_ECORE_INPUT_EVAS_BUILD@
191EFL_ECORE_IPC_BUILD = @EFL_ECORE_IPC_BUILD@
192EFL_ECORE_PSL1GHT_BUILD = @EFL_ECORE_PSL1GHT_BUILD@
193EFL_ECORE_SDL_BUILD = @EFL_ECORE_SDL_BUILD@
194EFL_ECORE_WIN32_BUILD = @EFL_ECORE_WIN32_BUILD@
195EFL_ECORE_WINCE_BUILD = @EFL_ECORE_WINCE_BUILD@
196EFL_PTHREAD_CFLAGS = @EFL_PTHREAD_CFLAGS@
197EFL_PTHREAD_LIBS = @EFL_PTHREAD_LIBS@
198EGREP = @EGREP@
199EINA_CFLAGS = @EINA_CFLAGS@
200EINA_LIBS = @EINA_LIBS@
201ESCAPE_CFLAGS = @ESCAPE_CFLAGS@
202ESCAPE_LIBS = @ESCAPE_LIBS@
203EVAS_CFLAGS = @EVAS_CFLAGS@
204EVAS_LIBS = @EVAS_LIBS@
205EVIL_CFLAGS = @EVIL_CFLAGS@
206EVIL_LIBS = @EVIL_LIBS@
207EXEEXT = @EXEEXT@
208FGREP = @FGREP@
209GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
210GLIB_CFLAGS = @GLIB_CFLAGS@
211GLIB_LIBS = @GLIB_LIBS@
212GMSGFMT = @GMSGFMT@
213GMSGFMT_015 = @GMSGFMT_015@
214GREP = @GREP@
215INSTALL = @INSTALL@
216INSTALL_DATA = @INSTALL_DATA@
217INSTALL_PROGRAM = @INSTALL_PROGRAM@
218INSTALL_SCRIPT = @INSTALL_SCRIPT@
219INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
220INTLLIBS = @INTLLIBS@
221INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
222KEYSYMDEFS = @KEYSYMDEFS@
223LD = @LD@
224LDFLAGS = @LDFLAGS@
225LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@
226LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@
227LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@
228LIBICONV = @LIBICONV@
229LIBINTL = @LIBINTL@
230LIBOBJS = @LIBOBJS@
231LIBS = @LIBS@
232LIBTOOL = @LIBTOOL@
233LIPO = @LIPO@
234LN_S = @LN_S@
235LTLIBICONV = @LTLIBICONV@
236LTLIBINTL = @LTLIBINTL@
237LTLIBOBJS = @LTLIBOBJS@
238MAKEINFO = @MAKEINFO@
239MKDIR_P = @MKDIR_P@
240MSGFMT = @MSGFMT@
241MSGFMT_015 = @MSGFMT_015@
242MSGMERGE = @MSGMERGE@
243NM = @NM@
244NMEDIT = @NMEDIT@
245OBJC = @OBJC@
246OBJCDEPMODE = @OBJCDEPMODE@
247OBJCFLAGS = @OBJCFLAGS@
248OBJDUMP = @OBJDUMP@
249OBJEXT = @OBJEXT@
250OTOOL = @OTOOL@
251OTOOL64 = @OTOOL64@
252PACKAGE = @PACKAGE@
253PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
254PACKAGE_NAME = @PACKAGE_NAME@
255PACKAGE_STRING = @PACKAGE_STRING@
256PACKAGE_TARNAME = @PACKAGE_TARNAME@
257PACKAGE_URL = @PACKAGE_URL@
258PACKAGE_VERSION = @PACKAGE_VERSION@
259PATH_SEPARATOR = @PATH_SEPARATOR@
260PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
261PIXMAN_LIBS = @PIXMAN_LIBS@
262PKG_CONFIG = @PKG_CONFIG@
263POSUB = @POSUB@
264RANLIB = @RANLIB@
265SCIM_CFLAGS = @SCIM_CFLAGS@
266SCIM_LIBS = @SCIM_LIBS@
267SDL_CFLAGS = @SDL_CFLAGS@
268SDL_CONFIG = @SDL_CONFIG@
269SDL_LIBS = @SDL_LIBS@
270SED = @SED@
271SET_MAKE = @SET_MAKE@
272SHELL = @SHELL@
273SSL_CFLAGS = @SSL_CFLAGS@
274SSL_LIBS = @SSL_LIBS@
275STRIP = @STRIP@
276TLS2_CFLAGS = @TLS2_CFLAGS@
277TLS2_LIBS = @TLS2_LIBS@
278TLS_CFLAGS = @TLS_CFLAGS@
279TLS_LIBS = @TLS_LIBS@
280TSLIB_CFLAGS = @TSLIB_CFLAGS@
281TSLIB_LIBS = @TSLIB_LIBS@
282USE_NLS = @USE_NLS@
283VERSION = @VERSION@
284VMAJ = @VMAJ@
285WAYLAND_CFLAGS = @WAYLAND_CFLAGS@
286WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
287WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
288WAYLAND_LIBS = @WAYLAND_LIBS@
289WIN32_CFLAGS = @WIN32_CFLAGS@
290WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
291WIN32_LIBS = @WIN32_LIBS@
292XCB_COMPOSITE_CFLAGS = @XCB_COMPOSITE_CFLAGS@
293XCB_COMPOSITE_LIBS = @XCB_COMPOSITE_LIBS@
294XCB_CURSOR_CFLAGS = @XCB_CURSOR_CFLAGS@
295XCB_CURSOR_LIBS = @XCB_CURSOR_LIBS@
296XCB_DAMAGE_CFLAGS = @XCB_DAMAGE_CFLAGS@
297XCB_DAMAGE_LIBS = @XCB_DAMAGE_LIBS@
298XCB_DPMS_CFLAGS = @XCB_DPMS_CFLAGS@
299XCB_DPMS_LIBS = @XCB_DPMS_LIBS@
300XCB_RANDR_CFLAGS = @XCB_RANDR_CFLAGS@
301XCB_RANDR_LIBS = @XCB_RANDR_LIBS@
302XCB_RENDER_CFLAGS = @XCB_RENDER_CFLAGS@
303XCB_RENDER_LIBS = @XCB_RENDER_LIBS@
304XCB_SCREENSAVER_CFLAGS = @XCB_SCREENSAVER_CFLAGS@
305XCB_SCREENSAVER_LIBS = @XCB_SCREENSAVER_LIBS@
306XCB_SHAPE_CFLAGS = @XCB_SHAPE_CFLAGS@
307XCB_SHAPE_LIBS = @XCB_SHAPE_LIBS@
308XCB_SYNC_CFLAGS = @XCB_SYNC_CFLAGS@
309XCB_SYNC_LIBS = @XCB_SYNC_LIBS@
310XCB_X11_CFLAGS = @XCB_X11_CFLAGS@
311XCB_X11_LIBS = @XCB_X11_LIBS@
312XCB_XFIXES_CFLAGS = @XCB_XFIXES_CFLAGS@
313XCB_XFIXES_LIBS = @XCB_XFIXES_LIBS@
314XCB_XGESTURE_CFLAGS = @XCB_XGESTURE_CFLAGS@
315XCB_XGESTURE_LIBS = @XCB_XGESTURE_LIBS@
316XCB_XINERAMA_CFLAGS = @XCB_XINERAMA_CFLAGS@
317XCB_XINERAMA_LIBS = @XCB_XINERAMA_LIBS@
318XCB_XINPUT_CFLAGS = @XCB_XINPUT_CFLAGS@
319XCB_XINPUT_LIBS = @XCB_XINPUT_LIBS@
320XCB_XPRINT_CFLAGS = @XCB_XPRINT_CFLAGS@
321XCB_XPRINT_LIBS = @XCB_XPRINT_LIBS@
322XCB_XTEST_CFLAGS = @XCB_XTEST_CFLAGS@
323XCB_XTEST_LIBS = @XCB_XTEST_LIBS@
324XCOMPOSITE_CFLAGS = @XCOMPOSITE_CFLAGS@
325XCOMPOSITE_LIBS = @XCOMPOSITE_LIBS@
326XDAMAGE_CFLAGS = @XDAMAGE_CFLAGS@
327XDAMAGE_LIBS = @XDAMAGE_LIBS@
328XDPMS_CFLAGS = @XDPMS_CFLAGS@
329XDPMS_LIBS = @XDPMS_LIBS@
330XFIXES_CFLAGS = @XFIXES_CFLAGS@
331XFIXES_LIBS = @XFIXES_LIBS@
332XGESTURE_CFLAGS = @XGESTURE_CFLAGS@
333XGESTURE_LIBS = @XGESTURE_LIBS@
334XGETTEXT = @XGETTEXT@
335XGETTEXT_015 = @XGETTEXT_015@
336XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
337XI2_CFLAGS = @XI2_CFLAGS@
338XI2_LIBS = @XI2_LIBS@
339XINERAMA_CFLAGS = @XINERAMA_CFLAGS@
340XINERAMA_LIBS = @XINERAMA_LIBS@
341XKB_CFLAGS = @XKB_CFLAGS@
342XKB_LIBS = @XKB_LIBS@
343XMKMF = @XMKMF@
344XPRINT_CFLAGS = @XPRINT_CFLAGS@
345XPRINT_LIBS = @XPRINT_LIBS@
346XRANDR_CFLAGS = @XRANDR_CFLAGS@
347XRANDR_LIBS = @XRANDR_LIBS@
348XRENDER_CFLAGS = @XRENDER_CFLAGS@
349XRENDER_LIBS = @XRENDER_LIBS@
350XSS_CFLAGS = @XSS_CFLAGS@
351XSS_LIBS = @XSS_LIBS@
352XTEST_CFLAGS = @XTEST_CFLAGS@
353XTEST_LIBS = @XTEST_LIBS@
354X_CFLAGS = @X_CFLAGS@
355X_EXTRA_LIBS = @X_EXTRA_LIBS@
356X_LIBS = @X_LIBS@
357X_PRE_LIBS = @X_PRE_LIBS@
358Xcursor_cflags = @Xcursor_cflags@
359Xcursor_libs = @Xcursor_libs@
360abs_builddir = @abs_builddir@
361abs_srcdir = @abs_srcdir@
362abs_top_builddir = @abs_top_builddir@
363abs_top_srcdir = @abs_top_srcdir@
364ac_ct_CC = @ac_ct_CC@
365ac_ct_CXX = @ac_ct_CXX@
366ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
367ac_ct_OBJC = @ac_ct_OBJC@
368am__include = @am__include@
369am__leading_dot = @am__leading_dot@
370am__quote = @am__quote@
371am__tar = @am__tar@
372am__untar = @am__untar@
373bindir = @bindir@
374build = @build@
375build_alias = @build_alias@
376build_cpu = @build_cpu@
377build_os = @build_os@
378build_vendor = @build_vendor@
379builddir = @builddir@
380cocoa_ldflags = @cocoa_ldflags@
381datadir = @datadir@
382datarootdir = @datarootdir@
383dlopen_libs = @dlopen_libs@
384docdir = @docdir@
385dvidir = @dvidir@
386ecore_cocoa_cflags = @ecore_cocoa_cflags@
387ecore_cocoa_libs = @ecore_cocoa_libs@
388ecore_con_cflags = @ecore_con_cflags@
389ecore_con_libs = @ecore_con_libs@
390ecore_directfb_cflags = @ecore_directfb_cflags@
391ecore_directfb_libs = @ecore_directfb_libs@
392ecore_evas_cflags = @ecore_evas_cflags@
393ecore_evas_libs = @ecore_evas_libs@
394ecore_fb_cflags = @ecore_fb_cflags@
395ecore_fb_libs = @ecore_fb_libs@
396ecore_file_cflags = @ecore_file_cflags@
397ecore_file_libs = @ecore_file_libs@
398ecore_imf_cflags = @ecore_imf_cflags@
399ecore_imf_evas_cflags = @ecore_imf_evas_cflags@
400ecore_imf_evas_libs = @ecore_imf_evas_libs@
401ecore_imf_libs = @ecore_imf_libs@
402ecore_imf_scim_cflags = @ecore_imf_scim_cflags@
403ecore_imf_scim_libs = @ecore_imf_scim_libs@
404ecore_imf_xim_cflags = @ecore_imf_xim_cflags@
405ecore_imf_xim_libs = @ecore_imf_xim_libs@
406ecore_input_cflags = @ecore_input_cflags@
407ecore_input_evas_cflags = @ecore_input_evas_cflags@
408ecore_input_evas_libs = @ecore_input_evas_libs@
409ecore_input_libs = @ecore_input_libs@
410ecore_ipc_cflags = @ecore_ipc_cflags@
411ecore_ipc_libs = @ecore_ipc_libs@
412ecore_psl1ght_cflags = @ecore_psl1ght_cflags@
413ecore_psl1ght_libs = @ecore_psl1ght_libs@
414ecore_sdl_cflags = @ecore_sdl_cflags@
415ecore_sdl_libs = @ecore_sdl_libs@
416ecore_wayland_cflags = @ecore_wayland_cflags@
417ecore_wayland_libs = @ecore_wayland_libs@
418ecore_win32_cflags = @ecore_win32_cflags@
419ecore_win32_libs = @ecore_win32_libs@
420ecore_wince_cflags = @ecore_wince_cflags@
421ecore_wince_libs = @ecore_wince_libs@
422ecore_x_cflags = @ecore_x_cflags@
423ecore_x_libs = @ecore_x_libs@
424ecore_x_libs_private = @ecore_x_libs_private@
425efl_doxygen = @efl_doxygen@
426efl_have_doxygen = @efl_have_doxygen@
427exec_prefix = @exec_prefix@
428have_ecore_x_xcb_define = @have_ecore_x_xcb_define@
429host = @host@
430host_alias = @host_alias@
431host_cpu = @host_cpu@
432host_os = @host_os@
433host_vendor = @host_vendor@
434htmldir = @htmldir@
435includedir = @includedir@
436infodir = @infodir@
437install_sh = @install_sh@
438libdir = @libdir@
439libexecdir = @libexecdir@
440localedir = @localedir@
441localstatedir = @localstatedir@
442lt_ECHO = @lt_ECHO@
443lt_enable_auto_import = @lt_enable_auto_import@
444mandir = @mandir@
445mkdir_p = @mkdir_p@
446oldincludedir = @oldincludedir@
447pdfdir = @pdfdir@
448pkgconfig_requires_private = @pkgconfig_requires_private@
449prefix = @prefix@
450program_transform_name = @program_transform_name@
451psdir = @psdir@
452release_info = @release_info@
453requirements_ecore = @requirements_ecore@
454requirements_ecore_cocoa = @requirements_ecore_cocoa@
455requirements_ecore_con = @requirements_ecore_con@
456requirements_ecore_directfb = @requirements_ecore_directfb@
457requirements_ecore_evas = @requirements_ecore_evas@
458requirements_ecore_fb = @requirements_ecore_fb@
459requirements_ecore_file = @requirements_ecore_file@
460requirements_ecore_imf = @requirements_ecore_imf@
461requirements_ecore_imf_evas = @requirements_ecore_imf_evas@
462requirements_ecore_imf_scim = @requirements_ecore_imf_scim@
463requirements_ecore_imf_xim = @requirements_ecore_imf_xim@
464requirements_ecore_input = @requirements_ecore_input@
465requirements_ecore_input_evas = @requirements_ecore_input_evas@
466requirements_ecore_ipc = @requirements_ecore_ipc@
467requirements_ecore_psl1ght = @requirements_ecore_psl1ght@
468requirements_ecore_sdl = @requirements_ecore_sdl@
469requirements_ecore_wayland = @requirements_ecore_wayland@
470requirements_ecore_win32 = @requirements_ecore_win32@
471requirements_ecore_wince = @requirements_ecore_wince@
472requirements_ecore_x = @requirements_ecore_x@
473rt_libs = @rt_libs@
474sbindir = @sbindir@
475sharedstatedir = @sharedstatedir@
476srcdir = @srcdir@
477sysconfdir = @sysconfdir@
478target_alias = @target_alias@
479top_build_prefix = @top_build_prefix@
480top_builddir = @top_builddir@
481top_srcdir = @top_srcdir@
482version_info = @version_info@
483x_cflags = @x_cflags@
484x_includes = @x_includes@
485x_libs = @x_libs@
486MAINTAINERCLEANFILES = Makefile.in
487AM_CPPFLAGS = \
488-I$(top_srcdir) \
489-I$(top_srcdir)/src/lib/ecore \
490-I$(top_srcdir)/src/lib/ecore_input \
491-I$(top_srcdir)/src/lib/ecore_x \
492-I$(top_srcdir)/src/lib/ecore_imf \
493-I$(top_srcdir)/src/lib/ecore_evas \
494-I$(top_builddir)/src/lib/ecore \
495-I$(top_builddir)/src/lib/ecore_input \
496-I$(top_builddir)/src/lib/ecore_x \
497-I$(top_builddir)/src/lib/ecore_imf \
498-I$(top_builddir)/src/lib/ecore_evas \
499-DPACKAGE_LIB_DIR=\"$(libdir)\" \
500-DPACKAGE_DATA_DIR=\"$(datadir)/$(PACKAGE)\" \
501@SCIM_CFLAGS@ \
502@EVAS_CFLAGS@ \
503@EINA_CFLAGS@
504
505pkgdir = $(libdir)/ecore/immodules
506pkg_LTLIBRARIES = scim.la
507scim_la_SOURCES = \
508scim_imcontext.cpp \
509scim_module.cpp \
510scim_imcontext.h
511
512scim_la_LIBADD = \
513 $(top_builddir)/src/lib/ecore_imf/libecore_imf.la \
514 $(top_builddir)/src/lib/ecore_x/libecore_x.la \
515 @SCIM_LIBS@ \
516 @EVAS_LIBS@ \
517 @EINA_LIBS@
518
519scim_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module -avoid-version
520scim_la_LIBTOOLFLAGS = --tag=disable-static
521all: all-am
522
523.SUFFIXES:
524.SUFFIXES: .cpp .lo .o .obj
525$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
526 @for dep in $?; do \
527 case '$(am__configure_deps)' in \
528 *$$dep*) \
529 ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
530 && { if test -f $@; then exit 0; else break; fi; }; \
531 exit 1;; \
532 esac; \
533 done; \
534 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/modules/immodules/scim/Makefile'; \
535 $(am__cd) $(top_srcdir) && \
536 $(AUTOMAKE) --gnu src/modules/immodules/scim/Makefile
537.PRECIOUS: Makefile
538Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
539 @case '$?' in \
540 *config.status*) \
541 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
542 *) \
543 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
544 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
545 esac;
546
547$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
548 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
549
550$(top_srcdir)/configure: $(am__configure_deps)
551 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
552$(ACLOCAL_M4): $(am__aclocal_m4_deps)
553 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
554$(am__aclocal_m4_deps):
555install-pkgLTLIBRARIES: $(pkg_LTLIBRARIES)
556 @$(NORMAL_INSTALL)
557 test -z "$(pkgdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgdir)"
558 @list='$(pkg_LTLIBRARIES)'; test -n "$(pkgdir)" || list=; \
559 list2=; for p in $$list; do \
560 if test -f $$p; then \
561 list2="$$list2 $$p"; \
562 else :; fi; \
563 done; \
564 test -z "$$list2" || { \
565 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkgdir)'"; \
566 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkgdir)"; \
567 }
568
569uninstall-pkgLTLIBRARIES:
570 @$(NORMAL_UNINSTALL)
571 @list='$(pkg_LTLIBRARIES)'; test -n "$(pkgdir)" || list=; \
572 for p in $$list; do \
573 $(am__strip_dir) \
574 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkgdir)/$$f'"; \
575 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkgdir)/$$f"; \
576 done
577
578clean-pkgLTLIBRARIES:
579 -test -z "$(pkg_LTLIBRARIES)" || rm -f $(pkg_LTLIBRARIES)
580 @list='$(pkg_LTLIBRARIES)'; for p in $$list; do \
581 dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
582 test "$$dir" != "$$p" || dir=.; \
583 echo "rm -f \"$${dir}/so_locations\""; \
584 rm -f "$${dir}/so_locations"; \
585 done
586scim.la: $(scim_la_OBJECTS) $(scim_la_DEPENDENCIES)
587 $(AM_V_CXXLD)$(scim_la_LINK) -rpath $(pkgdir) $(scim_la_OBJECTS) $(scim_la_LIBADD) $(LIBS)
588
589mostlyclean-compile:
590 -rm -f *.$(OBJEXT)
591
592distclean-compile:
593 -rm -f *.tab.c
594
595@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scim_la-scim_imcontext.Plo@am__quote@
596@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scim_la-scim_module.Plo@am__quote@
597
598.cpp.o:
599@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
600@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
601@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
602@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
603@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
604@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
605
606.cpp.obj:
607@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
608@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
609@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
610@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
611@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
612@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
613
614.cpp.lo:
615@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
616@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
617@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
618@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
619@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
620@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
621
622scim_la-scim_imcontext.lo: scim_imcontext.cpp
623@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(scim_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT scim_la-scim_imcontext.lo -MD -MP -MF $(DEPDIR)/scim_la-scim_imcontext.Tpo -c -o scim_la-scim_imcontext.lo `test -f 'scim_imcontext.cpp' || echo '$(srcdir)/'`scim_imcontext.cpp
624@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/scim_la-scim_imcontext.Tpo $(DEPDIR)/scim_la-scim_imcontext.Plo
625@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
626@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='scim_imcontext.cpp' object='scim_la-scim_imcontext.lo' libtool=yes @AMDEPBACKSLASH@
627@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
628@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(scim_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o scim_la-scim_imcontext.lo `test -f 'scim_imcontext.cpp' || echo '$(srcdir)/'`scim_imcontext.cpp
629
630scim_la-scim_module.lo: scim_module.cpp
631@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(scim_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT scim_la-scim_module.lo -MD -MP -MF $(DEPDIR)/scim_la-scim_module.Tpo -c -o scim_la-scim_module.lo `test -f 'scim_module.cpp' || echo '$(srcdir)/'`scim_module.cpp
632@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/scim_la-scim_module.Tpo $(DEPDIR)/scim_la-scim_module.Plo
633@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
634@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='scim_module.cpp' object='scim_la-scim_module.lo' libtool=yes @AMDEPBACKSLASH@
635@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
636@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(scim_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o scim_la-scim_module.lo `test -f 'scim_module.cpp' || echo '$(srcdir)/'`scim_module.cpp
637
638mostlyclean-libtool:
639 -rm -f *.lo
640
641clean-libtool:
642 -rm -rf .libs _libs
643
644ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
645 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
646 unique=`for i in $$list; do \
647 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
648 done | \
649 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
650 END { if (nonempty) { for (i in files) print i; }; }'`; \
651 mkid -fID $$unique
652tags: TAGS
653
654TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
655 $(TAGS_FILES) $(LISP)
656 set x; \
657 here=`pwd`; \
658 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
659 unique=`for i in $$list; do \
660 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
661 done | \
662 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
663 END { if (nonempty) { for (i in files) print i; }; }'`; \
664 shift; \
665 if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
666 test -n "$$unique" || unique=$$empty_fix; \
667 if test $$# -gt 0; then \
668 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
669 "$$@" $$unique; \
670 else \
671 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
672 $$unique; \
673 fi; \
674 fi
675ctags: CTAGS
676CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
677 $(TAGS_FILES) $(LISP)
678 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
679 unique=`for i in $$list; do \
680 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
681 done | \
682 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
683 END { if (nonempty) { for (i in files) print i; }; }'`; \
684 test -z "$(CTAGS_ARGS)$$unique" \
685 || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
686 $$unique
687
688GTAGS:
689 here=`$(am__cd) $(top_builddir) && pwd` \
690 && $(am__cd) $(top_srcdir) \
691 && gtags -i $(GTAGS_ARGS) "$$here"
692
693distclean-tags:
694 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
695
696distdir: $(DISTFILES)
697 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
698 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
699 list='$(DISTFILES)'; \
700 dist_files=`for file in $$list; do echo $$file; done | \
701 sed -e "s|^$$srcdirstrip/||;t" \
702 -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
703 case $$dist_files in \
704 */*) $(MKDIR_P) `echo "$$dist_files" | \
705 sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
706 sort -u` ;; \
707 esac; \
708 for file in $$dist_files; do \
709 if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
710 if test -d $$d/$$file; then \
711 dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
712 if test -d "$(distdir)/$$file"; then \
713 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
714 fi; \
715 if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
716 cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
717 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
718 fi; \
719 cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
720 else \
721 test -f "$(distdir)/$$file" \
722 || cp -p $$d/$$file "$(distdir)/$$file" \
723 || exit 1; \
724 fi; \
725 done
726check-am: all-am
727check: check-am
728all-am: Makefile $(LTLIBRARIES)
729installdirs:
730 for dir in "$(DESTDIR)$(pkgdir)"; do \
731 test -z "$$dir" || $(MKDIR_P) "$$dir"; \
732 done
733install: install-am
734install-exec: install-exec-am
735install-data: install-data-am
736uninstall: uninstall-am
737
738install-am: all-am
739 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
740
741installcheck: installcheck-am
742install-strip:
743 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
744 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
745 `test -z '$(STRIP)' || \
746 echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
747mostlyclean-generic:
748
749clean-generic:
750
751distclean-generic:
752 -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
753 -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
754
755maintainer-clean-generic:
756 @echo "This command is intended for maintainers to use"
757 @echo "it deletes files that may require special tools to rebuild."
758 -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
759clean: clean-am
760
761clean-am: clean-generic clean-libtool clean-pkgLTLIBRARIES \
762 mostlyclean-am
763
764distclean: distclean-am
765 -rm -rf ./$(DEPDIR)
766 -rm -f Makefile
767distclean-am: clean-am distclean-compile distclean-generic \
768 distclean-tags
769
770dvi: dvi-am
771
772dvi-am:
773
774html: html-am
775
776html-am:
777
778info: info-am
779
780info-am:
781
782install-data-am: install-pkgLTLIBRARIES
783
784install-dvi: install-dvi-am
785
786install-dvi-am:
787
788install-exec-am:
789
790install-html: install-html-am
791
792install-html-am:
793
794install-info: install-info-am
795
796install-info-am:
797
798install-man:
799
800install-pdf: install-pdf-am
801
802install-pdf-am:
803
804install-ps: install-ps-am
805
806install-ps-am:
807
808installcheck-am:
809
810maintainer-clean: maintainer-clean-am
811 -rm -rf ./$(DEPDIR)
812 -rm -f Makefile
813maintainer-clean-am: distclean-am maintainer-clean-generic
814
815mostlyclean: mostlyclean-am
816
817mostlyclean-am: mostlyclean-compile mostlyclean-generic \
818 mostlyclean-libtool
819
820pdf: pdf-am
821
822pdf-am:
823
824ps: ps-am
825
826ps-am:
827
828uninstall-am: uninstall-pkgLTLIBRARIES
829
830.MAKE: install-am install-strip
831
832.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
833 clean-libtool clean-pkgLTLIBRARIES ctags distclean \
834 distclean-compile distclean-generic distclean-libtool \
835 distclean-tags distdir dvi dvi-am html html-am info info-am \
836 install install-am install-data install-data-am install-dvi \
837 install-dvi-am install-exec install-exec-am install-html \
838 install-html-am install-info install-info-am install-man \
839 install-pdf install-pdf-am install-pkgLTLIBRARIES install-ps \
840 install-ps-am install-strip installcheck installcheck-am \
841 installdirs maintainer-clean maintainer-clean-generic \
842 mostlyclean mostlyclean-compile mostlyclean-generic \
843 mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
844 uninstall-am uninstall-pkgLTLIBRARIES
845
846
847# Tell versions [3.59,3.63) of GNU make to not export all variables.
848# Otherwise a system limit (for SysV at least) may be exceeded.
849.NOEXPORT:
diff --git a/libraries/ecore/src/modules/immodules/scim/scim_imcontext.cpp b/libraries/ecore/src/modules/immodules/scim/scim_imcontext.cpp
new file mode 100644
index 0000000..6cb72c2
--- /dev/null
+++ b/libraries/ecore/src/modules/immodules/scim/scim_imcontext.cpp
@@ -0,0 +1,2839 @@
1#ifdef HAVE_CONFIG_H
2#include <config.h>
3#endif
4
5#define Uses_SCIM_DEBUG
6#define Uses_SCIM_BACKEND
7#define Uses_SCIM_IMENGINE_MODULE
8#define Uses_SCIM_HOTKEY
9#define Uses_SCIM_PANEL_CLIENT
10
11#include <sys/types.h>
12#include <sys/wait.h>
13#include <sys/time.h>
14#include <sys/times.h>
15#include <unistd.h>
16#include <pthread.h>
17#include <Ecore_Evas.h>
18#include <Ecore_X.h>
19#include <Ecore.h>
20#include <Evas.h>
21
22#include <X11/Xlib.h>
23#include <X11/keysym.h>
24#include <X11/Xutil.h>
25
26#include <scim.h>
27#include "scim_imcontext.h"
28
29using namespace scim;
30
31struct _EcoreIMFContextISFImpl
32{
33 EcoreIMFContextISF *parent;
34 IMEngineInstancePointer si;
35 Ecore_X_Window client_window;
36 Evas *client_canvas;
37 Ecore_IMF_Input_Mode input_mode;
38 WideString preedit_string;
39 AttributeList preedit_attrlist;
40 Ecore_IMF_Autocapital_Type autocapital_type;
41 int preedit_caret;
42 int cursor_x;
43 int cursor_y;
44 int cursor_pos;
45 bool use_preedit;
46 bool is_on;
47 bool shared_si;
48 bool preedit_started;
49 bool preedit_updating;
50 bool need_commit_preedit;
51 bool uppercase;
52 bool prediction_allow;
53
54 EcoreIMFContextISFImpl *next;
55};
56
57/* Input Context handling functions. */
58static EcoreIMFContextISFImpl *new_ic_impl (EcoreIMFContextISF *parent);
59static void delete_ic_impl (EcoreIMFContextISFImpl *impl);
60static void delete_all_ic_impl (void);
61
62static EcoreIMFContextISF *find_ic (int id);
63
64
65/* private functions */
66static void panel_slot_reload_config (int context);
67static void panel_slot_exit (int context);
68static void panel_slot_update_lookup_table_page_size(int context,
69 int page_size);
70static void panel_slot_lookup_table_page_up (int context);
71static void panel_slot_lookup_table_page_down (int context);
72static void panel_slot_trigger_property (int context,
73 const String &property);
74static void panel_slot_process_helper_event (int context,
75 const String &target_uuid,
76 const String &helper_uuid,
77 const Transaction &trans);
78static void panel_slot_move_preedit_caret (int context,
79 int caret_pos);
80static void panel_slot_select_candidate (int context,
81 int cand_index);
82static void panel_slot_process_key_event (int context,
83 const KeyEvent &key);
84static void panel_slot_commit_string (int context,
85 const WideString &wstr);
86static void panel_slot_forward_key_event (int context,
87 const KeyEvent &key);
88static void panel_slot_request_help (int context);
89static void panel_slot_request_factory_menu (int context);
90static void panel_slot_change_factory (int context,
91 const String &uuid);
92
93static void panel_req_focus_in (EcoreIMFContextISF *ic);
94static void panel_req_update_factory_info (EcoreIMFContextISF *ic);
95static void panel_req_update_spot_location (EcoreIMFContextISF *ic);
96static void panel_req_show_help (EcoreIMFContextISF *ic);
97static void panel_req_show_factory_menu (EcoreIMFContextISF *ic);
98
99/* Panel iochannel handler*/
100static bool panel_initialize (void);
101static void panel_finalize (void);
102static Eina_Bool panel_iochannel_handler (void *data,
103 Ecore_Fd_Handler *fd_handler);
104
105/* utility functions */
106static bool filter_hotkeys (EcoreIMFContextISF *ic,
107 const KeyEvent &key);
108static void turn_on_ic (EcoreIMFContextISF *ic);
109static void turn_off_ic (EcoreIMFContextISF *ic);
110static void set_ic_capabilities (EcoreIMFContextISF *ic);
111
112static void initialize (void);
113static void finalize (void);
114
115static void open_next_factory (EcoreIMFContextISF *ic);
116static void open_previous_factory (EcoreIMFContextISF *ic);
117static void open_specific_factory (EcoreIMFContextISF *ic,
118 const String &uuid);
119static void initialize_modifier_bits (Display *display);
120static unsigned int scim_x11_keymask_scim_to_x11 (Display *display, uint16 scimkeymask);
121static XKeyEvent createKeyEvent (Display *display, Window &win,
122 Window &winRoot, bool press,
123 int keycode, int modifiers);
124static void _x_send_key_event (const KeyEvent &key);
125
126static void attach_instance (const IMEngineInstancePointer &si);
127
128/* slot functions */
129static void slot_show_preedit_string (IMEngineInstanceBase *si);
130static void slot_show_aux_string (IMEngineInstanceBase *si);
131static void slot_show_lookup_table (IMEngineInstanceBase *si);
132
133static void slot_hide_preedit_string (IMEngineInstanceBase *si);
134static void slot_hide_aux_string (IMEngineInstanceBase *si);
135static void slot_hide_lookup_table (IMEngineInstanceBase *si);
136
137static void slot_update_preedit_caret (IMEngineInstanceBase *si,
138 int caret);
139static void slot_update_preedit_string (IMEngineInstanceBase *si,
140 const WideString &str,
141 const AttributeList &attrs);
142static void slot_update_aux_string (IMEngineInstanceBase *si,
143 const WideString &str,
144 const AttributeList &attrs);
145static void slot_commit_string (IMEngineInstanceBase *si,
146 const WideString &str);
147static void slot_forward_key_event (IMEngineInstanceBase *si,
148 const KeyEvent &key);
149static void slot_update_lookup_table (IMEngineInstanceBase *si,
150 const LookupTable &table);
151
152static void slot_register_properties (IMEngineInstanceBase *si,
153 const PropertyList &properties);
154static void slot_update_property (IMEngineInstanceBase *si,
155 const Property &property);
156static void slot_beep (IMEngineInstanceBase *si);
157static void slot_start_helper (IMEngineInstanceBase *si,
158 const String &helper_uuid);
159static void slot_stop_helper (IMEngineInstanceBase *si,
160 const String &helper_uuid);
161static void slot_send_helper_event (IMEngineInstanceBase *si,
162 const String &helper_uuid,
163 const Transaction &trans);
164static bool slot_get_surrounding_text (IMEngineInstanceBase *si,
165 WideString &text,
166 int &cursor,
167 int maxlen_before,
168 int maxlen_after);
169static bool slot_delete_surrounding_text (IMEngineInstanceBase *si,
170 int offset,
171 int len);
172
173static void reload_config_callback (const ConfigPointer &config);
174
175static void fallback_commit_string_cb (IMEngineInstanceBase *si,
176 const WideString &str);
177
178static void caps_mode_check (Ecore_IMF_Context *ctx, Eina_Bool force);
179
180/* Local variables declaration */
181static String _language;
182static EcoreIMFContextISFImpl *_used_ic_impl_list = 0;
183static EcoreIMFContextISFImpl *_free_ic_impl_list = 0;
184static EcoreIMFContextISF *_ic_list = 0;
185
186static KeyboardLayout _keyboard_layout = SCIM_KEYBOARD_Default;
187static int _valid_key_mask = SCIM_KEY_AllMasks;
188
189static FrontEndHotkeyMatcher _frontend_hotkey_matcher;
190static IMEngineHotkeyMatcher _imengine_hotkey_matcher;
191
192static IMEngineInstancePointer _default_instance;
193
194static ConfigModule *_config_module = 0;
195static ConfigPointer _config;
196static BackEndPointer _backend;
197
198static EcoreIMFContextISF *_focused_ic = 0;
199
200static bool _scim_initialized = false;
201
202static int _instance_count = 0;
203static int _context_count = 0;
204
205static IMEngineFactoryPointer _fallback_factory;
206static IMEngineInstancePointer _fallback_instance;
207static PanelClient _panel_client;
208
209static Ecore_Fd_Handler *_panel_iochannel_read_handler = 0;
210static Ecore_Fd_Handler *_panel_iochannel_err_handler = 0;
211
212static Ecore_X_Window _client_window = 0;
213
214static bool _on_the_spot = true;
215static bool _shared_input_method = false;
216
217static Eina_Bool autocap_allow = EINA_FALSE;
218
219static Display *__current_display = 0;
220static int __current_alt_mask = Mod1Mask;
221static int __current_meta_mask = 0;
222static int __current_super_mask = 0;
223static int __current_hyper_mask = 0;
224static int __current_numlock_mask = Mod2Mask;
225
226// A hack to shutdown the immodule cleanly even if im_module_exit () is not called when exiting.
227class FinalizeHandler
228{
229public:
230 FinalizeHandler ()
231 {
232 SCIM_DEBUG_FRONTEND(1) << "FinalizeHandler::FinalizeHandler ()\n";
233 }
234 ~FinalizeHandler ()
235 {
236 SCIM_DEBUG_FRONTEND(1) << "FinalizeHandler::~FinalizeHandler ()\n";
237 isf_imf_context_shutdown ();
238 }
239};
240
241static FinalizeHandler _finalize_handler;
242
243static unsigned int
244utf8_offset_to_index(const char *str, int offset)
245{
246 int index = 0;
247 int i;
248 for (i = 0; i < offset; i++)
249 {
250 eina_unicode_utf8_get_next(str, &index);
251 }
252
253 return index;
254}
255
256static unsigned int
257get_time (void)
258{
259 unsigned int tint;
260 struct timeval tv;
261 struct timezone tz; /* is not used since ages */
262 gettimeofday (&tv, &tz);
263 tint = tv.tv_sec * 1000;
264 tint = tint / 1000 * 1000;
265 tint = tint + tv.tv_usec / 1000;
266 return tint;
267}
268
269/* Function Implementations */
270static EcoreIMFContextISFImpl *
271new_ic_impl (EcoreIMFContextISF *parent)
272{
273 EcoreIMFContextISFImpl *impl = NULL;
274
275 if (_free_ic_impl_list != NULL)
276 {
277 impl = _free_ic_impl_list;
278 _free_ic_impl_list = _free_ic_impl_list->next;
279 }
280 else
281 {
282 impl = new EcoreIMFContextISFImpl;
283 if (impl == NULL)
284 return NULL;
285 }
286
287 impl->uppercase = false;
288 impl->autocapital_type = ECORE_IMF_AUTOCAPITAL_TYPE_NONE;
289 impl->next = _used_ic_impl_list;
290 _used_ic_impl_list = impl;
291
292 impl->parent = parent;
293
294 return impl;
295}
296
297static void
298delete_ic_impl (EcoreIMFContextISFImpl *impl)
299{
300 EcoreIMFContextISFImpl *rec = _used_ic_impl_list, *last = 0;
301
302 for (; rec != 0; last = rec, rec = rec->next)
303 {
304 if (rec == impl)
305 {
306 if (last != 0)
307 last->next = rec->next;
308 else
309 _used_ic_impl_list = rec->next;
310
311 rec->next = _free_ic_impl_list;
312 _free_ic_impl_list = rec;
313
314 rec->parent = 0;
315 rec->si.reset ();
316 rec->client_window = 0;
317 rec->preedit_string = WideString ();
318 rec->preedit_attrlist.clear ();
319
320 return;
321 }
322 }
323}
324
325static void
326delete_all_ic_impl (void)
327{
328 EcoreIMFContextISFImpl *it = _used_ic_impl_list;
329
330 while (it != 0)
331 {
332 _used_ic_impl_list = it->next;
333 delete it;
334 it = _used_ic_impl_list;
335 }
336
337 it = _free_ic_impl_list;
338 while (it != 0)
339 {
340 _free_ic_impl_list = it->next;
341 delete it;
342 it = _free_ic_impl_list;
343 }
344}
345
346static EcoreIMFContextISF *
347find_ic (int id)
348{
349 EcoreIMFContextISFImpl *rec = _used_ic_impl_list;
350
351 while (rec != 0)
352 {
353 if (rec->parent && rec->parent->id == id)
354 return rec->parent;
355 rec = rec->next;
356 }
357
358 return 0;
359}
360
361static Eina_Bool
362analyze_surrounding_text(Ecore_IMF_Context *ctx)
363{
364 char *plain_str = NULL;
365 char *markup_str = NULL;
366 const char *puncs[3] = {". ", "! ", "? "};
367 Eina_Bool ret = EINA_FALSE;
368 int cursor_pos = 0;
369 int i = 0;
370 Eina_Unicode *tail = NULL;
371 Eina_Unicode *ustr = NULL;
372 Eina_Unicode *uni_puncs[3];
373 EcoreIMFContextISF *context_scim;
374
375 if (!ctx) return EINA_FALSE;
376 context_scim = (EcoreIMFContextISF *)ecore_imf_context_data_get (ctx);
377 if (!context_scim || !context_scim->impl) return EINA_FALSE;
378
379 switch (context_scim->impl->autocapital_type)
380 {
381 case ECORE_IMF_AUTOCAPITAL_TYPE_NONE:
382 return EINA_FALSE;
383 case ECORE_IMF_AUTOCAPITAL_TYPE_ALLCHARACTER:
384 return EINA_TRUE;
385 default:
386 break;
387 }
388
389 for (i=0; i<3; i++)
390 uni_puncs[i] = eina_unicode_utf8_to_unicode(puncs[i], NULL);
391
392 ecore_imf_context_surrounding_get(ctx, &markup_str, &cursor_pos);
393 if (!markup_str) goto done;
394
395 if (cursor_pos == 0)
396 {
397 ret = EINA_TRUE;
398 goto done;
399 }
400
401 // Convert into plain string
402 plain_str = evas_textblock_text_markup_to_utf8(NULL, markup_str);
403 if (!plain_str) goto done;
404
405 // Convert string from utf8 to unicode
406 ustr = eina_unicode_utf8_to_unicode(plain_str, NULL);
407 if (!ustr) goto done;
408
409 if (cursor_pos >= 1)
410 {
411 if (context_scim->impl->autocapital_type == ECORE_IMF_AUTOCAPITAL_TYPE_WORD)
412 {
413 if (ustr[cursor_pos-1] == ' ')
414 {
415 ret = EINA_TRUE;
416 goto done;
417 }
418 }
419
420 // Check paragraph separator <PS> and carrage return <br>
421 if ((ustr[cursor_pos-1] == 0x2029) || (ustr[cursor_pos-1] == '\n'))
422 {
423 ret = EINA_TRUE;
424 goto done;
425 }
426 }
427
428 // check punctuation
429 if (cursor_pos >= 2)
430 {
431 tail = eina_unicode_strndup(ustr+cursor_pos-2, 2);
432
433 if (tail)
434 {
435 for (i=0; i<3; i++)
436 {
437 if (!eina_unicode_strcmp(tail, uni_puncs[i]))
438 {
439 ret = EINA_TRUE;
440 break;
441 }
442 }
443 free(tail);
444 tail = NULL;
445 }
446 }
447
448done:
449 if (ustr) free(ustr);
450 if (markup_str) free(markup_str);
451 if (plain_str) free(plain_str);
452
453 for (i=0; i<3; i++)
454 if (uni_puncs[i]) free(uni_puncs[i]);
455
456 return ret;
457}
458
459static void
460caps_mode_check(Ecore_IMF_Context *ctx, Eina_Bool force)
461{
462 Eina_Bool uppercase;
463 EcoreIMFContextISF *context_scim;
464
465 if (!ctx) return;
466 context_scim = (EcoreIMFContextISF *)ecore_imf_context_data_get (ctx);
467
468 if (autocap_allow == EINA_FALSE)
469 return;
470
471 // Check autocapital type
472 if (!context_scim || !context_scim->impl)
473 return;
474
475 if (analyze_surrounding_text(ctx))
476 uppercase = EINA_TRUE;
477 else
478 uppercase = EINA_FALSE;
479
480 if (force)
481 context_scim->impl->uppercase = uppercase;
482 else
483 if (context_scim->impl->uppercase != uppercase)
484 context_scim->impl->uppercase = uppercase;
485}
486
487static void
488feed_key_event (Evas *evas, const char *str, Eina_Bool fake)
489{
490 char key_string[128] = {0};
491 unsigned int timestamp = 0;
492
493 if (!fake)
494 timestamp = get_time ();
495
496 if (strncmp (str, "KeyRelease+", 11) == 0)
497 {
498 strncpy(key_string, str + 11, strlen(str)-11);
499 evas_event_feed_key_up (evas, key_string, key_string, NULL, NULL, timestamp, NULL);
500 SCIM_DEBUG_FRONTEND(1) << " evas_event_feed_key_up ()...\n";
501 }
502 else
503 {
504 strncpy(key_string, str, strlen(str));
505 evas_event_feed_key_down (evas, key_string, key_string, NULL, NULL, timestamp, NULL);
506 SCIM_DEBUG_FRONTEND(1) << " evas_event_feed_key_down ()...\n";
507 }
508}
509
510/* Public functions */
511/**
512 * isf_imf_context_new
513 *
514 * This function will be called by Ecore IMF.
515 * Create a instance of type EcoreIMFContextISF.
516 *
517 * Return value: A pointer to the newly created EcoreIMFContextISF instance
518 */
519EAPI EcoreIMFContextISF *
520isf_imf_context_new (void)
521{
522 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
523 char *env;
524
525 Ecore_X_Display *display = ecore_x_display_get ();
526 if (!display)
527 {
528 std::cerr << "ecore_x_display_get () failed !!!";
529 return NULL;
530 }
531
532 EcoreIMFContextISF *context_scim = new EcoreIMFContextISF;
533 if (context_scim == NULL)
534 {
535 std::cerr << "memory allocation failed in " << __FUNCTION__ << "\n";
536 return NULL;
537 }
538
539 context_scim->id = _context_count++;
540
541 if (!_scim_initialized)
542 {
543 initialize ();
544 _scim_initialized = true;
545 }
546
547 env = getenv("ECORE_IMF_AUTOCAPITAL_ALLOW");
548 if (env)
549 autocap_allow = !!atoi(env);
550
551 return context_scim;
552}
553
554/**
555 * isf_imf_shutdown
556 *
557 * It will be called when the scim im module is unloaded by ecore. It will do some
558 * cleanup job.
559 */
560EAPI void
561isf_imf_context_shutdown (void)
562{
563 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
564
565 if (_scim_initialized)
566 {
567 _scim_initialized = false;
568 finalize ();
569 }
570}
571
572EAPI void
573isf_imf_context_add (Ecore_IMF_Context *ctx)
574{
575 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
576
577 EcoreIMFContextISF *context_scim = (EcoreIMFContextISF*)ecore_imf_context_data_get (ctx);
578
579 if (!context_scim) return;
580
581 context_scim->impl = NULL;
582
583 if (_backend.null ())
584 return;
585
586 IMEngineInstancePointer si;
587
588 // Use the default instance if "shared input method" mode is enabled.
589 if (_shared_input_method && !_default_instance.null ())
590 {
591 si = _default_instance;
592 SCIM_DEBUG_FRONTEND(2) << "use default instance: " << si->get_id () << " " << si->get_factory_uuid () << "\n";
593 }
594
595 // Not in "shared input method" mode, or no default instance, create an instance.
596 if (si.null ())
597 {
598 IMEngineFactoryPointer factory = _backend->get_default_factory (_language, "UTF-8");
599 if (factory.null ()) return;
600 si = factory->create_instance ("UTF-8", _instance_count++);
601 if (si.null ()) return;
602 attach_instance (si);
603 SCIM_DEBUG_FRONTEND(2) << "create new instance: " << si->get_id () << " " << si->get_factory_uuid () << "\n";
604 }
605
606 // If "shared input method" mode is enabled, and there is no default instance,
607 // then store this instance as default one.
608 if (_shared_input_method && _default_instance.null ())
609 {
610 SCIM_DEBUG_FRONTEND(2) << "update default instance.\n";
611 _default_instance = si;
612 }
613
614 context_scim->ctx = ctx;
615 context_scim->impl = new_ic_impl (context_scim);
616 if (context_scim->impl == NULL)
617 {
618 std::cerr << "memory allocation failed in " << __FUNCTION__ << "\n";
619 return;
620 }
621
622 context_scim->impl->si = si;
623 context_scim->impl->client_window = 0;
624 context_scim->impl->client_canvas = NULL;
625 context_scim->impl->preedit_caret = 0;
626 context_scim->impl->cursor_x = 0;
627 context_scim->impl->cursor_y = 0;
628 context_scim->impl->cursor_pos = -1;
629 context_scim->impl->is_on = false;
630 context_scim->impl->shared_si = _shared_input_method;
631 context_scim->impl->use_preedit = _on_the_spot;
632 context_scim->impl->preedit_started = false;
633 context_scim->impl->preedit_updating = false;
634 context_scim->impl->need_commit_preedit = false;
635
636 if (!_ic_list)
637 context_scim->next = NULL;
638 else
639 context_scim->next = _ic_list;
640 _ic_list = context_scim;
641
642 if (_shared_input_method)
643 context_scim->impl->is_on = _config->read (String (SCIM_CONFIG_FRONTEND_IM_OPENED_BY_DEFAULT), context_scim->impl->is_on);
644
645 _panel_client.prepare (context_scim->id);
646 _panel_client.register_input_context (context_scim->id, si->get_factory_uuid ());
647 set_ic_capabilities (context_scim);
648 _panel_client.send ();
649
650 SCIM_DEBUG_FRONTEND(2) << "input context created: id = " << context_scim->id << "\n";
651}
652
653EAPI void
654isf_imf_context_del (Ecore_IMF_Context *ctx)
655{
656 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
657
658 if (!_ic_list) return;
659
660 EcoreIMFContextISF *context_scim = (EcoreIMFContextISF*)ecore_imf_context_data_get (ctx);
661
662 if (context_scim)
663 {
664 if (context_scim->id != _ic_list->id)
665 {
666 EcoreIMFContextISF * pre = _ic_list;
667 EcoreIMFContextISF * cur = _ic_list->next;
668 while (cur != NULL)
669 {
670 if (cur->id == context_scim->id)
671 {
672 pre->next = cur->next;
673 break;
674 }
675 pre = cur;
676 cur = cur->next;
677 }
678 }
679 else
680 _ic_list = _ic_list->next;
681 }
682
683 if (context_scim && context_scim->impl)
684 {
685 _panel_client.prepare (context_scim->id);
686
687 if (context_scim == _focused_ic)
688 context_scim->impl->si->focus_out ();
689
690 // Delete the instance.
691 EcoreIMFContextISF *old_focused = _focused_ic;
692 _focused_ic = context_scim;
693 context_scim->impl->si.reset ();
694 _focused_ic = old_focused;
695
696 if (context_scim == _focused_ic)
697 {
698 _panel_client.turn_off (context_scim->id);
699 _panel_client.focus_out (context_scim->id);
700 }
701
702 _panel_client.remove_input_context (context_scim->id);
703 _panel_client.send ();
704
705 if (context_scim->impl->client_window)
706 isf_imf_context_client_window_set (ctx, NULL);
707
708 if (context_scim->impl)
709 {
710 delete_ic_impl (context_scim->impl);
711 context_scim->impl = 0;
712 }
713 }
714
715 if (context_scim == _focused_ic)
716 _focused_ic = 0;
717
718 if (context_scim)
719 {
720 delete context_scim;
721 context_scim = 0;
722 }
723}
724
725/**
726 * isf_imf_context_client_canvas_set
727 * @ctx: a #Ecore_IMF_Context
728 * @canvas: the client canvas
729 *
730 * This function will be called by Ecore IMF.
731 *
732 * Set the client canvas for the Input Method Context; this is the canvas
733 * in which the input appears.
734 *
735 * The canvas type can be determined by using the context canvas type.
736 * Actually only canvas with type "evas" (Evas *) is supported. This canvas
737 * may be used in order to correctly position status windows, and may also
738 * be used for purposes internal to the Input Method Context.
739 */
740EAPI void
741isf_imf_context_client_canvas_set (Ecore_IMF_Context *ctx, void *canvas)
742{
743 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
744
745 EcoreIMFContextISF *context_scim = (EcoreIMFContextISF *)ecore_imf_context_data_get (ctx);
746
747 if (context_scim && context_scim->impl && context_scim->impl->client_canvas != (Evas*) canvas)
748 context_scim->impl->client_canvas = (Evas*)canvas;
749}
750
751/**
752 * isf_imf_context_client_window_set
753 * @ctx: a #Ecore_IMF_Context
754 * @window: the client window
755 *
756 * This function will be called by Ecore IMF.
757 *
758 * Set the client window for the Input Method Context; this is the Ecore_X_Window
759 * when using X11, Ecore_Win32_Window when using Win32, etc.
760 *
761 * This window is used in order to correctly position status windows,
762 * and may also be used for purposes internal to the Input Method Context.
763 */
764EAPI void
765isf_imf_context_client_window_set (Ecore_IMF_Context *ctx, void *window)
766{
767 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
768
769 EcoreIMFContextISF *context_scim = (EcoreIMFContextISF *)ecore_imf_context_data_get (ctx);
770
771 if (context_scim && context_scim->impl && context_scim->impl->client_window != (Ecore_X_Window)((Ecore_Window)window))
772 {
773 context_scim->impl->client_window = (Ecore_X_Window)((Ecore_Window)window);
774
775 if ((context_scim->impl->client_window != 0) &&
776 (context_scim->impl->client_window != _client_window))
777 _client_window = context_scim->impl->client_window;
778 }
779}
780
781/**
782 * isf_imf_context_reset
783 * @ctx: a #Ecore_IMF_Context
784 *
785 * This function will be called by Ecore IMF.
786 *
787 * Notify the Input Method Context that a change such as a change in cursor
788 * position has been made. This will typically cause the Input Method Context
789 * to clear the preedit state.
790 */
791EAPI void
792isf_imf_context_reset (Ecore_IMF_Context *ctx)
793{
794 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
795
796 EcoreIMFContextISF *context_scim = (EcoreIMFContextISF *)ecore_imf_context_data_get (ctx);
797
798 if (context_scim && context_scim->impl && context_scim == _focused_ic)
799 {
800 WideString wstr = context_scim->impl->preedit_string;
801
802 _panel_client.prepare (context_scim->id);
803 context_scim->impl->si->reset ();
804 _panel_client.send ();
805
806 if (context_scim->impl->need_commit_preedit)
807 {
808 if (wstr.length ())
809 {
810 ecore_imf_context_commit_event_add (context_scim->ctx, utf8_wcstombs (wstr).c_str ());
811 ecore_imf_context_event_callback_call(context_scim->ctx, ECORE_IMF_CALLBACK_COMMIT, (void *)utf8_wcstombs(wstr).c_str());
812 }
813 _panel_client.prepare (context_scim->id);
814 _panel_client.send ();
815 }
816 }
817}
818
819/**
820 * isf_imf_context_focus_in
821 * @ctx: a #Ecore_IMF_Context
822 *
823 * This function will be called by Ecore IMF.
824 *
825 * Notify the Input Method Context that the widget to which its correspond has gained focus.
826 */
827EAPI void
828isf_imf_context_focus_in (Ecore_IMF_Context *ctx)
829{
830 EcoreIMFContextISF *context_scim = (EcoreIMFContextISF *)ecore_imf_context_data_get (ctx);
831
832 if (!context_scim)
833 return;
834
835 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__<< "(" << context_scim->id << ")...\n";
836
837 if (_focused_ic)
838 {
839 if (_focused_ic == context_scim)
840 {
841 SCIM_DEBUG_FRONTEND(1) << "It's already focused.\n";
842 //isf_imf_context_cursor_position_set (ctx, 0);
843 return;
844 }
845 SCIM_DEBUG_FRONTEND(1) << "Focus out previous IC first: " << _focused_ic->id << "\n";
846 if (_focused_ic->ctx)
847 isf_imf_context_focus_out (_focused_ic->ctx);
848 }
849
850 bool need_cap = false;
851 bool need_reset = false;
852 bool need_reg = false;
853
854 if (context_scim && context_scim->impl)
855 {
856 _focused_ic = context_scim;
857 _panel_client.prepare (context_scim->id);
858
859 // Handle the "Shared Input Method" mode.
860 if (_shared_input_method)
861 {
862 SCIM_DEBUG_FRONTEND(2) << "shared input method.\n";
863 IMEngineFactoryPointer factory = _backend->get_default_factory (_language, "UTF-8");
864 if (!factory.null ())
865 {
866 if (_default_instance.null () || _default_instance->get_factory_uuid () != factory->get_uuid ())
867 {
868 _default_instance = factory->create_instance ("UTF-8", _default_instance.null () ? _instance_count++ : _default_instance->get_id ());
869 attach_instance (_default_instance);
870 SCIM_DEBUG_FRONTEND(2) << "create new default instance: " << _default_instance->get_id () << " " << _default_instance->get_factory_uuid () << "\n";
871 }
872
873 context_scim->impl->shared_si = true;
874 context_scim->impl->si = _default_instance;
875
876 context_scim->impl->is_on = _config->read (String (SCIM_CONFIG_FRONTEND_IM_OPENED_BY_DEFAULT), context_scim->impl->is_on);
877 context_scim->impl->preedit_string.clear ();
878 context_scim->impl->preedit_attrlist.clear ();
879 context_scim->impl->preedit_caret = 0;
880 context_scim->impl->preedit_started = false;
881 need_cap = true;
882 need_reset = true;
883 need_reg = true;
884 }
885 }
886 else if (context_scim->impl->shared_si)
887 {
888 SCIM_DEBUG_FRONTEND(2) << "exit shared input method.\n";
889 IMEngineFactoryPointer factory = _backend->get_default_factory (_language, "UTF-8");
890 if (!factory.null ())
891 {
892 context_scim->impl->si = factory->create_instance ("UTF-8", _instance_count++);
893 context_scim->impl->preedit_string.clear ();
894 context_scim->impl->preedit_attrlist.clear ();
895 context_scim->impl->preedit_caret = 0;
896 context_scim->impl->preedit_started = false;
897 attach_instance (context_scim->impl->si);
898 need_cap = true;
899 need_reg = true;
900 context_scim->impl->shared_si = false;
901 SCIM_DEBUG_FRONTEND(2) << "create new instance: " << context_scim->impl->si->get_id () << " " << context_scim->impl->si->get_factory_uuid () << "\n";
902 }
903 }
904
905 context_scim->impl->si->set_frontend_data (static_cast <void*> (context_scim));
906
907 if (need_reg) _panel_client.register_input_context (context_scim->id, context_scim->impl->si->get_factory_uuid ());
908 if (need_cap) set_ic_capabilities (context_scim);
909 if (need_reset) context_scim->impl->si->reset ();
910
911 panel_req_focus_in (context_scim);
912 panel_req_update_spot_location (context_scim);
913 panel_req_update_factory_info (context_scim);
914
915 if (context_scim->impl->is_on)
916 {
917 _panel_client.turn_on (context_scim->id);
918 _panel_client.hide_preedit_string (context_scim->id);
919 _panel_client.hide_aux_string (context_scim->id);
920 _panel_client.hide_lookup_table (context_scim->id);
921 context_scim->impl->si->focus_in ();
922 }
923 else
924 {
925 _panel_client.turn_off (context_scim->id);
926 }
927
928 _panel_client.send ();
929 }
930}
931
932/**
933 * isf_imf_context_focus_out
934 * @ctx: a #Ecore_IMF_Context
935 *
936 * This function will be called by Ecore IMF.
937 *
938 * Notify the Input Method Context that the widget to which its correspond has lost focus.
939 */
940EAPI void
941isf_imf_context_focus_out (Ecore_IMF_Context *ctx)
942{
943 EcoreIMFContextISF *context_scim = (EcoreIMFContextISF *)ecore_imf_context_data_get (ctx);
944
945 if (!context_scim) return;
946
947 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "(" << context_scim->id << ")...\n";
948
949 if (context_scim && context_scim->impl && context_scim == _focused_ic)
950 {
951 WideString wstr = context_scim->impl->preedit_string;
952
953 if (context_scim->impl->need_commit_preedit)
954 {
955 if (wstr.length ())
956 {
957 ecore_imf_context_commit_event_add (context_scim->ctx, utf8_wcstombs (wstr).c_str ());
958 ecore_imf_context_event_callback_call(context_scim->ctx, ECORE_IMF_CALLBACK_COMMIT, (void *)utf8_wcstombs(wstr).c_str());
959 }
960 _panel_client.prepare (context_scim->id);
961 _panel_client.send ();
962 }
963
964 _panel_client.prepare (context_scim->id);
965 context_scim->impl->si->focus_out ();
966 context_scim->impl->si->reset ();
967 _panel_client.turn_off (context_scim->id);
968 _panel_client.focus_out (context_scim->id);
969 _panel_client.send ();
970 _focused_ic = 0;
971 }
972}
973
974/**
975 * isf_imf_context_cursor_location_set
976 * @ctx: a #Ecore_IMF_Context
977 * @x: x position of New cursor.
978 * @y: y position of New cursor.
979 * @w: the width of New cursor.
980 * @h: the height of New cursor.
981 *
982 * This function will be called by Ecore IMF.
983 *
984 * Notify the Input Method Context that a change in the cursor location has been made.
985 */
986EAPI void
987isf_imf_context_cursor_location_set (Ecore_IMF_Context *ctx, int cx, int cy, int cw, int ch)
988{
989 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
990
991 EcoreIMFContextISF *context_scim = (EcoreIMFContextISF *)ecore_imf_context_data_get (ctx);
992 Ecore_Evas *ee;
993 int canvas_x, canvas_y;
994
995 if (cw == 0 && ch == 0)
996 return;
997
998 if (context_scim && context_scim->impl && context_scim == _focused_ic)
999 {
1000 // Don't update spot location while updating preedit string.
1001 if (context_scim->impl->preedit_updating)
1002 return;
1003
1004 if (!context_scim->impl->client_canvas)
1005 return;
1006
1007 ee = ecore_evas_ecore_evas_get(context_scim->impl->client_canvas);
1008 if (!ee) return;
1009
1010 ecore_evas_geometry_get (ee, &canvas_x, &canvas_y, NULL, NULL);
1011
1012 if (context_scim->impl->cursor_x != canvas_x + cx || context_scim->impl->cursor_y != canvas_y + cy + ch)
1013 {
1014 context_scim->impl->cursor_x = canvas_x + cx;
1015 context_scim->impl->cursor_y = canvas_y + cy + ch;
1016 _panel_client.prepare (context_scim->id);
1017 panel_req_update_spot_location (context_scim);
1018 _panel_client.send ();
1019 SCIM_DEBUG_FRONTEND(2) << "new cursor location = " << context_scim->impl->cursor_x << "," << context_scim->impl->cursor_y << "\n";
1020 }
1021 }
1022}
1023
1024/**
1025 * isf_imf_context_use_preedit_set
1026 * @ctx: a #Ecore_IMF_Context
1027 * @use_preedit: Whether the IM context should use the preedit string.
1028 *
1029 * This function will be called by Ecore IMF.
1030 *
1031 * Set whether the IM context should use the preedit string to display feedback.
1032 * If is 0 (default is 1), then the IM context may use some other method to
1033 * display feedback, such as displaying it in a child of the root window.
1034 */
1035EAPI void
1036isf_imf_context_use_preedit_set (Ecore_IMF_Context* ctx, Eina_Bool use_preedit)
1037{
1038 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << " = " << (use_preedit ? "true" : "false") << "...\n";
1039
1040 EcoreIMFContextISF *context_scim = (EcoreIMFContextISF*)ecore_imf_context_data_get (ctx);
1041
1042 if (!_on_the_spot) return;
1043
1044 if (context_scim && context_scim->impl)
1045 {
1046 bool old = context_scim->impl->use_preedit;
1047 context_scim->impl->use_preedit = use_preedit;
1048 if (context_scim == _focused_ic)
1049 {
1050 _panel_client.prepare (context_scim->id);
1051
1052 if (old != use_preedit)
1053 set_ic_capabilities (context_scim);
1054
1055 if (context_scim->impl->preedit_string.length ())
1056 slot_show_preedit_string (context_scim->impl->si);
1057
1058 _panel_client.send ();
1059 }
1060 }
1061}
1062
1063EAPI void
1064isf_imf_context_preedit_string_with_attributes_get (Ecore_IMF_Context *ctx, char** str, Eina_List **attrs, int *cursor_pos)
1065{
1066 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
1067
1068 EcoreIMFContextISF *context_scim = (EcoreIMFContextISF*)ecore_imf_context_data_get (ctx);
1069
1070 if (context_scim && context_scim->impl && context_scim->impl->is_on)
1071 {
1072 String mbs = utf8_wcstombs (context_scim->impl->preedit_string);
1073
1074 if (str)
1075 {
1076 if (mbs.length ())
1077 *str = strdup (mbs.c_str ());
1078 else
1079 *str = strdup ("");
1080 }
1081
1082 if (cursor_pos)
1083 {
1084 *cursor_pos = context_scim->impl->preedit_caret;
1085 }
1086
1087 if (attrs)
1088 {
1089 if (mbs.length ())
1090 {
1091 int start_index, end_index;
1092 int wlen = context_scim->impl->preedit_string.length ();
1093
1094 Ecore_IMF_Preedit_Attr *attr = NULL;
1095 AttributeList::const_iterator i;
1096 bool *attrs_flag = new bool [mbs.length ()];
1097 memset (attrs_flag, 0, mbs.length () *sizeof (bool));
1098
1099 for (i = context_scim->impl->preedit_attrlist.begin ();
1100 i != context_scim->impl->preedit_attrlist.end (); ++i)
1101 {
1102 start_index = i->get_start ();
1103 end_index = i->get_end ();
1104
1105 if (end_index <= wlen && start_index < end_index && i->get_type () != SCIM_ATTR_DECORATE_NONE)
1106 {
1107 start_index = utf8_offset_to_index (mbs.c_str (), i->get_start ());
1108 end_index = utf8_offset_to_index (mbs.c_str (), i->get_end ());
1109
1110 if (i->get_type () == SCIM_ATTR_DECORATE)
1111 {
1112 attr = (Ecore_IMF_Preedit_Attr *)calloc(1, sizeof(Ecore_IMF_Preedit_Attr));
1113 if (attr == NULL)
1114 continue;
1115 attr->start_index = start_index;
1116 attr->end_index = end_index;
1117
1118 if (i->get_value () == SCIM_ATTR_DECORATE_UNDERLINE)
1119 {
1120 attr->preedit_type = ECORE_IMF_PREEDIT_TYPE_SUB1;
1121 *attrs = eina_list_append(*attrs, (void *)attr);
1122 }
1123 else if (i->get_value () == SCIM_ATTR_DECORATE_REVERSE)
1124 {
1125 attr->preedit_type = ECORE_IMF_PREEDIT_TYPE_SUB2;
1126 *attrs = eina_list_append(*attrs, (void *)attr);
1127 }
1128 else if (i->get_value () == SCIM_ATTR_DECORATE_HIGHLIGHT)
1129 {
1130 attr->preedit_type = ECORE_IMF_PREEDIT_TYPE_SUB3;
1131 *attrs = eina_list_append(*attrs, (void *)attr);
1132 }
1133 else
1134 {
1135 free (attr);
1136 }
1137
1138 switch(i->get_value())
1139 {
1140 case SCIM_ATTR_DECORATE_UNDERLINE:
1141 case SCIM_ATTR_DECORATE_REVERSE:
1142 case SCIM_ATTR_DECORATE_HIGHLIGHT:
1143 // Record which character has attribute.
1144 for (int pos = start_index; pos < end_index; ++pos)
1145 attrs_flag [pos] = 1;
1146 break;
1147 default:
1148 break;
1149 }
1150 }
1151 else if (i->get_type () == SCIM_ATTR_FOREGROUND)
1152 {
1153 SCIM_DEBUG_FRONTEND(4) << "SCIM_ATTR_FOREGROUND\n";
1154 }
1155 else if (i->get_type () == SCIM_ATTR_BACKGROUND)
1156 {
1157 SCIM_DEBUG_FRONTEND(4) << "SCIM_ATTR_BACKGROUND\n";
1158 }
1159 }
1160 }
1161
1162 // Add underline for all characters which don't have attribute.
1163 for (unsigned int pos = 0; pos < mbs.length (); ++pos)
1164 {
1165 if (!attrs_flag [pos])
1166 {
1167 int begin_pos = pos;
1168
1169 while (pos < mbs.length () && !attrs_flag [pos])
1170 ++pos;
1171
1172 // use REVERSE style as default
1173 attr = (Ecore_IMF_Preedit_Attr *)calloc(1, sizeof(Ecore_IMF_Preedit_Attr));
1174 if (attr == NULL)
1175 continue;
1176 attr->preedit_type = ECORE_IMF_PREEDIT_TYPE_SUB2;
1177 attr->start_index = begin_pos;
1178 attr->end_index = pos;
1179 *attrs = eina_list_append(*attrs, (void *)attr);
1180 }
1181 }
1182
1183 delete [] attrs_flag;
1184 }
1185 }
1186 }
1187 else
1188 {
1189 if (str)
1190 *str = strdup ("");
1191
1192 if (cursor_pos)
1193 *cursor_pos = 0;
1194
1195 if (attrs)
1196 *attrs = NULL;
1197 }
1198}
1199
1200/**
1201 * isf_imf_context_preedit_string_get
1202 * @ctx: a #Ecore_IMF_Context
1203 * @str: the preedit string
1204 * @cursor_pos: the cursor position
1205 *
1206 * This function will be called by Ecore IMF.
1207 *
1208 * To get the preedit string of the input method.
1209 */
1210EAPI void
1211isf_imf_context_preedit_string_get (Ecore_IMF_Context *ctx, char** str, int *cursor_pos)
1212{
1213 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
1214
1215 EcoreIMFContextISF *context_scim = (EcoreIMFContextISF*)ecore_imf_context_data_get (ctx);
1216
1217 if (context_scim && context_scim->impl && context_scim->impl->is_on)
1218 {
1219 String mbs = utf8_wcstombs (context_scim->impl->preedit_string);
1220
1221 if (str)
1222 {
1223 if (mbs.length ())
1224 *str = strdup (mbs.c_str ());
1225 else
1226 *str = strdup ("");
1227 }
1228
1229 if (cursor_pos)
1230 *cursor_pos = context_scim->impl->preedit_caret;
1231 }
1232 else
1233 {
1234 if (str)
1235 *str = strdup ("");
1236
1237 if (cursor_pos)
1238 *cursor_pos = 0;
1239 }
1240}
1241
1242/**
1243 * isf_imf_context_cursor_position_set
1244 * @ctx: a #Ecore_IMF_Context
1245 * @cursor_pos: New cursor position in characters.
1246 *
1247 * This function will be called by Ecore IMF.
1248 *
1249 * Notify the Input Method Context that a change in the cursor position has been made.
1250 */
1251EAPI void
1252isf_imf_context_cursor_position_set (Ecore_IMF_Context *ctx, int cursor_pos)
1253{
1254 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
1255
1256 EcoreIMFContextISF *context_scim = (EcoreIMFContextISF *)ecore_imf_context_data_get (ctx);
1257
1258 if (context_scim && context_scim->impl && context_scim == _focused_ic)
1259 {
1260 // Don't update spot location while updating preedit string.
1261 if (context_scim->impl->preedit_updating)
1262 return;
1263
1264 if (context_scim->impl->cursor_pos != cursor_pos)
1265 {
1266 context_scim->impl->cursor_pos = cursor_pos;
1267 caps_mode_check(ctx, EINA_FALSE);
1268 }
1269 }
1270}
1271
1272/**
1273 * isf_imf_context_input_mode_set
1274 * @ctx: a #Ecore_IMF_Context
1275 * @input_mode: the input mode
1276 *
1277 * This function will be called by Ecore IMF.
1278 *
1279 * To set the input mode of input method. The definition of Ecore_IMF_Input_Mode
1280 * is in Ecore_IMF.h.
1281 */
1282EAPI void
1283isf_imf_context_input_mode_set (Ecore_IMF_Context *ctx, Ecore_IMF_Input_Mode input_mode)
1284{
1285 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
1286
1287 EcoreIMFContextISF *context_scim = (EcoreIMFContextISF*)ecore_imf_context_data_get (ctx);
1288 if (context_scim && context_scim->impl)
1289 context_scim->impl->input_mode = input_mode;
1290}
1291
1292/**
1293 * isf_imf_context_prediction_allow_set
1294 * @ctx: a #Ecore_IMF_Context
1295 * @use_prediction: Whether the IM context should use the prediction.
1296 *
1297 * This function will be called by Ecore IMF.
1298 *
1299 * Set whether the IM context should use the prediction.
1300 */
1301EAPI void
1302isf_imf_context_prediction_allow_set (Ecore_IMF_Context* ctx, Eina_Bool prediction)
1303{
1304 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << " = " << (prediction ? "true" : "false") << "...\n";
1305
1306 EcoreIMFContextISF *context_scim = (EcoreIMFContextISF *)ecore_imf_context_data_get (ctx);
1307
1308 if (context_scim && context_scim->impl && context_scim->impl->prediction_allow != prediction)
1309 context_scim->impl->prediction_allow = prediction;
1310}
1311
1312EAPI void
1313isf_imf_context_autocapital_type_set (Ecore_IMF_Context* ctx, Ecore_IMF_Autocapital_Type autocapital_type)
1314{
1315 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << " = " << autocapital_type << "...\n";
1316
1317 EcoreIMFContextISF *context_scim = (EcoreIMFContextISF *)ecore_imf_context_data_get (ctx);
1318
1319 if (context_scim && context_scim->impl && context_scim->impl->autocapital_type != autocapital_type)
1320 context_scim->impl->autocapital_type = autocapital_type;
1321}
1322
1323/**
1324 * isf_imf_context_filter_event
1325 * @ctx: a #Ecore_IMF_Context
1326 * @type: The type of event defined by Ecore_IMF_Event_Type.
1327 * @event: The event itself.
1328 * Return value: %TRUE if the input method handled the key event.
1329 *
1330 * This function will be called by Ecore IMF.
1331 *
1332 * Allow an Ecore Input Context to internally handle an event. If this function
1333 * returns 1, then no further processing should be done for this event. Input
1334 * methods must be able to accept all types of events (simply returning 0 if
1335 * the event was not handled), but there is no obligation of any events to be
1336 * submitted to this function.
1337 */
1338
1339EAPI Eina_Bool
1340isf_imf_context_filter_event (Ecore_IMF_Context *ctx, Ecore_IMF_Event_Type type, Ecore_IMF_Event *event)
1341{
1342 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
1343
1344 EcoreIMFContextISF *ic = (EcoreIMFContextISF*)ecore_imf_context_data_get (ctx);
1345 Eina_Bool ret = EINA_FALSE;
1346
1347 if (ic == NULL || ic->impl == NULL)
1348 return ret;
1349
1350 KeyEvent key;
1351
1352 if (type == ECORE_IMF_EVENT_KEY_DOWN)
1353 {
1354 Ecore_IMF_Event_Key_Down *ev = (Ecore_IMF_Event_Key_Down *)event;
1355 scim_string_to_key (key, ev->key);
1356 if (ev->modifiers & ECORE_IMF_KEYBOARD_MODIFIER_SHIFT) key.mask |=SCIM_KEY_ShiftMask;
1357 if (ev->modifiers & ECORE_IMF_KEYBOARD_MODIFIER_CTRL) key.mask |=SCIM_KEY_ControlMask;
1358 if (ev->modifiers & ECORE_IMF_KEYBOARD_MODIFIER_ALT) key.mask |=SCIM_KEY_AltMask;
1359 if (ev->locks & ECORE_IMF_KEYBOARD_LOCK_CAPS) key.mask |=SCIM_KEY_CapsLockMask;
1360 if (ev->locks & ECORE_IMF_KEYBOARD_LOCK_NUM) key.mask |=SCIM_KEY_NumLockMask;
1361 }
1362 else if (type == ECORE_IMF_EVENT_KEY_UP)
1363 {
1364 Ecore_IMF_Event_Key_Up *ev = (Ecore_IMF_Event_Key_Up *)event;
1365 scim_string_to_key (key, ev->key);
1366 key.mask = SCIM_KEY_ReleaseMask;
1367 if (ev->modifiers & ECORE_IMF_KEYBOARD_MODIFIER_SHIFT) key.mask |=SCIM_KEY_ShiftMask;
1368 if (ev->modifiers & ECORE_IMF_KEYBOARD_MODIFIER_CTRL) key.mask |=SCIM_KEY_ControlMask;
1369 if (ev->modifiers & ECORE_IMF_KEYBOARD_MODIFIER_ALT) key.mask |=SCIM_KEY_AltMask;
1370 if (ev->locks & ECORE_IMF_KEYBOARD_LOCK_CAPS) key.mask |=SCIM_KEY_CapsLockMask;
1371 if (ev->locks & ECORE_IMF_KEYBOARD_LOCK_NUM) key.mask |=SCIM_KEY_NumLockMask;
1372 }
1373 else
1374 {
1375 return ret;
1376 }
1377
1378 key.mask &= _valid_key_mask;
1379
1380 _panel_client.prepare (ic->id);
1381
1382 ret = EINA_TRUE;
1383 if (!filter_hotkeys (ic, key))
1384 {
1385 if (!_focused_ic || !_focused_ic->impl->is_on ||
1386 !_focused_ic->impl->si->process_key_event (key))
1387 ret = EINA_FALSE;
1388 }
1389
1390 _panel_client.send ();
1391
1392 return ret;
1393}
1394
1395/* Panel Slot functions */
1396static void
1397panel_slot_reload_config (int context __UNUSED__)
1398{
1399 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
1400 _config->reload ();
1401}
1402
1403static void
1404panel_slot_exit (int /* context */)
1405{
1406 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
1407
1408 finalize ();
1409}
1410
1411static void
1412panel_slot_update_lookup_table_page_size (int context, int page_size)
1413{
1414 EcoreIMFContextISF *ic = find_ic (context);
1415 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << " context=" << context << " page_size=" << page_size << " ic=" << ic << "\n";
1416 if (ic && ic->impl)
1417 {
1418 _panel_client.prepare (ic->id);
1419 ic->impl->si->update_lookup_table_page_size (page_size);
1420 _panel_client.send ();
1421 }
1422}
1423
1424static void
1425panel_slot_lookup_table_page_up (int context)
1426{
1427 EcoreIMFContextISF *ic = find_ic (context);
1428 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << " context=" << context << " ic=" << ic << "\n";
1429 if (ic && ic->impl)
1430 {
1431 _panel_client.prepare (ic->id);
1432 ic->impl->si->lookup_table_page_up ();
1433 _panel_client.send ();
1434 }
1435}
1436
1437static void
1438panel_slot_lookup_table_page_down (int context)
1439{
1440 EcoreIMFContextISF *ic = find_ic (context);
1441 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << " context=" << context << " ic=" << ic << "\n";
1442 if (ic && ic->impl)
1443 {
1444 _panel_client.prepare (ic->id);
1445 ic->impl->si->lookup_table_page_down ();
1446 _panel_client.send ();
1447 }
1448}
1449
1450static void
1451panel_slot_trigger_property (int context, const String &property)
1452{
1453 EcoreIMFContextISF *ic = find_ic (context);
1454 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << " context=" << context << " property=" << property << " ic=" << ic << "\n";
1455 if (ic && ic->impl)
1456 {
1457 _panel_client.prepare (ic->id);
1458 ic->impl->si->trigger_property (property);
1459 _panel_client.send ();
1460 }
1461}
1462
1463static void
1464panel_slot_process_helper_event (int context, const String &target_uuid, const String &helper_uuid, const Transaction &trans)
1465{
1466 EcoreIMFContextISF *ic = find_ic (context);
1467 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << " context=" << context << " target=" << target_uuid
1468 << " helper=" << helper_uuid << " ic=" << ic << " ic->impl=" << (ic ? ic->impl : 0) << " ic-uuid="
1469 << ((ic && ic->impl) ? ic->impl->si->get_factory_uuid () : "" ) << "\n";
1470 if (ic && ic->impl && ic->impl->si->get_factory_uuid () == target_uuid)
1471 {
1472 _panel_client.prepare (ic->id);
1473 SCIM_DEBUG_FRONTEND(2) << "call process_helper_event\n";
1474 ic->impl->si->process_helper_event (helper_uuid, trans);
1475 _panel_client.send ();
1476 }
1477}
1478
1479static void
1480panel_slot_move_preedit_caret (int context, int caret_pos)
1481{
1482 EcoreIMFContextISF *ic = find_ic (context);
1483 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << " context=" << context << " caret=" << caret_pos << " ic=" << ic << "\n";
1484 if (ic && ic->impl)
1485 {
1486 _panel_client.prepare (ic->id);
1487 ic->impl->si->move_preedit_caret (caret_pos);
1488 _panel_client.send ();
1489 }
1490}
1491
1492static void
1493panel_slot_select_candidate (int context, int cand_index)
1494{
1495 EcoreIMFContextISF *ic = find_ic (context);
1496 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << " context=" << context << " candidate=" << cand_index << " ic=" << ic << "\n";
1497 if (ic && ic->impl)
1498 {
1499 _panel_client.prepare (ic->id);
1500 ic->impl->si->select_candidate (cand_index);
1501 _panel_client.send ();
1502 }
1503}
1504
1505static void
1506panel_slot_process_key_event (int context, const KeyEvent &key)
1507{
1508 EcoreIMFContextISF *ic = find_ic (context);
1509 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << " context=" << context << " key=" << key.get_key_string () << " ic=" << ic << "\n";
1510
1511 if (ic && ic->impl && ic->impl->client_canvas)
1512 feed_key_event(ic->impl->client_canvas, key.get_key_string().c_str(), EINA_FALSE);
1513}
1514
1515static void
1516panel_slot_commit_string (int context, const WideString &wstr)
1517{
1518 EcoreIMFContextISF *ic = find_ic (context);
1519 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << " context=" << context << " str=" << utf8_wcstombs (wstr) << " ic=" << ic << "\n";
1520
1521 if (ic && ic->impl)
1522 {
1523 if (_focused_ic != ic)
1524 return;
1525
1526 ecore_imf_context_commit_event_add (ic->ctx, utf8_wcstombs (wstr).c_str ());
1527 ecore_imf_context_event_callback_call(ic->ctx, ECORE_IMF_CALLBACK_COMMIT, (void *)utf8_wcstombs(wstr).c_str());
1528 }
1529}
1530
1531static void
1532panel_slot_forward_key_event (int context, const KeyEvent &key)
1533{
1534 EcoreIMFContextISF *ic = find_ic (context);
1535 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << " context=" << context << " key=" << key.get_key_string () << " ic=" << ic << "\n";
1536
1537 if (ic && ic->impl && ic->impl->client_canvas)
1538 feed_key_event (ic->impl->client_canvas, key.get_key_string ().c_str (), EINA_TRUE);
1539}
1540
1541static void
1542panel_slot_request_help (int context)
1543{
1544 EcoreIMFContextISF *ic = find_ic (context);
1545 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << " context=" << context << " ic=" << ic << "\n";
1546
1547 if (ic && ic->impl)
1548 {
1549 _panel_client.prepare (ic->id);
1550 panel_req_show_help (ic);
1551 _panel_client.send ();
1552 }
1553}
1554
1555static void
1556panel_slot_request_factory_menu (int context)
1557{
1558 EcoreIMFContextISF *ic = find_ic (context);
1559 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << " context=" << context << " ic=" << ic << "\n";
1560
1561 if (ic && ic->impl)
1562 {
1563 _panel_client.prepare (ic->id);
1564 panel_req_show_factory_menu (ic);
1565 _panel_client.send ();
1566 }
1567}
1568
1569static void
1570panel_slot_change_factory (int context, const String &uuid)
1571{
1572 EcoreIMFContextISF *ic = find_ic (context);
1573 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << " context=" << context << " factory=" << uuid << " ic=" << ic << "\n";
1574
1575 if (ic && ic->impl)
1576 {
1577 ic->impl->si->reset ();
1578 _panel_client.prepare (ic->id);
1579 open_specific_factory (ic, uuid);
1580 _panel_client.send ();
1581 }
1582}
1583
1584/* Panel Requestion functions. */
1585static void
1586panel_req_show_help (EcoreIMFContextISF *ic)
1587{
1588 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
1589
1590 String help;
1591
1592 help = String ("Smart Common Input Method platform ") +
1593 //String (SCIM_VERSION) +
1594 String ("\n(C) 2002-2005 James Su <suzhe@tsinghua.org.cn>\n\n");
1595
1596 if (ic && ic->impl)
1597 {
1598 IMEngineFactoryPointer sf = _backend->get_factory (ic->impl->si->get_factory_uuid ());
1599 if (sf)
1600 {
1601 help += utf8_wcstombs (sf->get_name ());
1602 help += String (":\n\n");
1603
1604 help += utf8_wcstombs (sf->get_help ());
1605 help += String ("\n\n");
1606
1607 help += utf8_wcstombs (sf->get_credits ());
1608 }
1609 _panel_client.show_help (ic->id, help);
1610 }
1611}
1612
1613static void
1614panel_req_show_factory_menu (EcoreIMFContextISF *ic)
1615{
1616 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
1617
1618 std::vector<IMEngineFactoryPointer> factories;
1619 std::vector <PanelFactoryInfo> menu;
1620
1621 _backend->get_factories_for_encoding (factories, "UTF-8");
1622
1623 for (size_t i = 0; i < factories.size (); ++ i)
1624 {
1625 menu.push_back (PanelFactoryInfo (
1626 factories [i]->get_uuid (),
1627 utf8_wcstombs (factories [i]->get_name ()),
1628 factories [i]->get_language (),
1629 factories [i]->get_icon_file ()));
1630 }
1631
1632 if (menu.size ())
1633 _panel_client.show_factory_menu (ic->id, menu);
1634}
1635
1636static void
1637panel_req_update_factory_info (EcoreIMFContextISF *ic)
1638{
1639 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
1640
1641 if (ic && ic->impl && ic == _focused_ic)
1642 {
1643 PanelFactoryInfo info;
1644 if (ic->impl->is_on)
1645 {
1646 IMEngineFactoryPointer sf = _backend->get_factory (ic->impl->si->get_factory_uuid ());
1647 if (sf)
1648 info = PanelFactoryInfo (sf->get_uuid (), utf8_wcstombs (sf->get_name ()), sf->get_language (), sf->get_icon_file ());
1649 }
1650 else
1651 {
1652 info = PanelFactoryInfo (String (""), String ("English/Keyboard"), String ("C"), "");
1653 }
1654 _panel_client.update_factory_info (ic->id, info);
1655 }
1656}
1657
1658static void
1659panel_req_focus_in (EcoreIMFContextISF *ic)
1660{
1661 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
1662
1663 _panel_client.focus_in (ic->id, ic->impl->si->get_factory_uuid ());
1664}
1665
1666static void
1667panel_req_update_spot_location (EcoreIMFContextISF *ic)
1668{
1669 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
1670
1671 _panel_client.update_spot_location (ic->id, ic->impl->cursor_x, ic->impl->cursor_y);
1672}
1673
1674static bool
1675filter_hotkeys (EcoreIMFContextISF *ic, const KeyEvent &key)
1676{
1677 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
1678
1679 bool ret = false;
1680
1681 _frontend_hotkey_matcher.push_key_event (key);
1682 _imengine_hotkey_matcher.push_key_event (key);
1683
1684 FrontEndHotkeyAction hotkey_action = _frontend_hotkey_matcher.get_match_result ();
1685
1686 if (hotkey_action == SCIM_FRONTEND_HOTKEY_TRIGGER)
1687 {
1688 if (!ic->impl->is_on)
1689 turn_on_ic (ic);
1690 else
1691 turn_off_ic (ic);
1692 ret = true;
1693 }
1694 else if (hotkey_action == SCIM_FRONTEND_HOTKEY_ON)
1695 {
1696 if (!ic->impl->is_on)
1697 turn_on_ic (ic);
1698 ret = true;
1699 }
1700 else if (hotkey_action == SCIM_FRONTEND_HOTKEY_OFF)
1701 {
1702 if (ic->impl->is_on)
1703 turn_off_ic (ic);
1704 ret = true;
1705 }
1706 else if (hotkey_action == SCIM_FRONTEND_HOTKEY_NEXT_FACTORY)
1707 {
1708 open_next_factory (ic);
1709 ret = true;
1710 }
1711 else if (hotkey_action == SCIM_FRONTEND_HOTKEY_PREVIOUS_FACTORY)
1712 {
1713 open_previous_factory (ic);
1714 ret = true;
1715 }
1716 else if (hotkey_action == SCIM_FRONTEND_HOTKEY_SHOW_FACTORY_MENU)
1717 {
1718 panel_req_show_factory_menu (ic);
1719 ret = true;
1720 }
1721 else if (_imengine_hotkey_matcher.is_matched ())
1722 {
1723 String sfid = _imengine_hotkey_matcher.get_match_result ();
1724 open_specific_factory (ic, sfid);
1725 ret = true;
1726 }
1727 return ret;
1728}
1729
1730static bool
1731panel_initialize (void)
1732{
1733 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
1734
1735 String display_name;
1736 {
1737 const char *p = getenv ("DISPLAY");
1738 if (p) display_name = String (p);
1739 }
1740
1741 if (_panel_client.open_connection (_config->get_name (), display_name) >= 0)
1742 {
1743 int fd = _panel_client.get_connection_number ();
1744
1745 _panel_iochannel_read_handler = ecore_main_fd_handler_add (fd, ECORE_FD_READ, panel_iochannel_handler, NULL, NULL, NULL);
1746
1747 SCIM_DEBUG_FRONTEND(2) << " Panel FD= " << fd << "\n";
1748
1749 return true;
1750 }
1751 std::cerr << "panel_initialize () failed!!!\n";
1752 return false;
1753}
1754
1755static void
1756panel_finalize (void)
1757{
1758 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
1759
1760 _panel_client.close_connection ();
1761
1762 if (_panel_iochannel_read_handler)
1763 {
1764 ecore_main_fd_handler_del (_panel_iochannel_read_handler);
1765 _panel_iochannel_read_handler = 0;
1766 }
1767
1768 if (_panel_iochannel_err_handler)
1769 {
1770 ecore_main_fd_handler_del (_panel_iochannel_err_handler);
1771 _panel_iochannel_err_handler = 0;
1772 }
1773}
1774
1775static Eina_Bool
1776panel_iochannel_handler (void *data __UNUSED__, Ecore_Fd_Handler *fd_handler)
1777{
1778 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
1779
1780 if (fd_handler == _panel_iochannel_read_handler)
1781 {
1782 if (!_panel_client.filter_event ())
1783 {
1784 panel_finalize ();
1785 panel_initialize ();
1786 return ECORE_CALLBACK_CANCEL;
1787 }
1788 }
1789 else if (fd_handler == _panel_iochannel_err_handler)
1790 {
1791 panel_finalize ();
1792 panel_initialize ();
1793 return ECORE_CALLBACK_CANCEL;
1794 }
1795 return ECORE_CALLBACK_RENEW;
1796}
1797
1798static void
1799turn_on_ic (EcoreIMFContextISF *ic)
1800{
1801 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
1802
1803 if (ic && ic->impl && !ic->impl->is_on)
1804 {
1805 ic->impl->is_on = true;
1806
1807 if (ic == _focused_ic)
1808 {
1809 panel_req_focus_in (ic);
1810 panel_req_update_spot_location (ic);
1811 panel_req_update_factory_info (ic);
1812 _panel_client.turn_on (ic->id);
1813 _panel_client.hide_preedit_string (ic->id);
1814 _panel_client.hide_aux_string (ic->id);
1815 _panel_client.hide_lookup_table (ic->id);
1816 ic->impl->si->focus_in ();
1817 }
1818
1819 //Record the IC on/off status
1820 if (_shared_input_method)
1821 _config->write (String (SCIM_CONFIG_FRONTEND_IM_OPENED_BY_DEFAULT), true);
1822
1823 if (ic->impl->use_preedit && ic->impl->preedit_string.length ())
1824 {
1825 ecore_imf_context_preedit_start_event_add (ic->ctx);
1826 ecore_imf_context_event_callback_call(ic->ctx, ECORE_IMF_CALLBACK_PREEDIT_START, NULL);
1827 ecore_imf_context_preedit_changed_event_add (ic->ctx);
1828 ecore_imf_context_event_callback_call(ic->ctx, ECORE_IMF_CALLBACK_PREEDIT_CHANGED, NULL);
1829 ic->impl->preedit_started = true;
1830 }
1831 }
1832}
1833
1834static void
1835turn_off_ic (EcoreIMFContextISF *ic)
1836{
1837 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
1838
1839 if (ic && ic->impl && ic->impl->is_on)
1840 {
1841 ic->impl->is_on = false;
1842
1843 if (ic == _focused_ic)
1844 {
1845 ic->impl->si->focus_out ();
1846
1847 panel_req_update_factory_info (ic);
1848 _panel_client.turn_off (ic->id);
1849 }
1850
1851 //Record the IC on/off status
1852 if (_shared_input_method)
1853 _config->write (String (SCIM_CONFIG_FRONTEND_IM_OPENED_BY_DEFAULT), false);
1854
1855 if (ic->impl->use_preedit && ic->impl->preedit_string.length ())
1856 {
1857 ecore_imf_context_preedit_changed_event_add (ic->ctx);
1858 ecore_imf_context_event_callback_call(ic->ctx, ECORE_IMF_CALLBACK_PREEDIT_CHANGED, NULL);
1859 ecore_imf_context_preedit_end_event_add (ic->ctx);
1860 ecore_imf_context_event_callback_call(ic->ctx, ECORE_IMF_CALLBACK_PREEDIT_END, NULL);
1861 ic->impl->preedit_started = false;
1862 }
1863 }
1864}
1865
1866static void
1867set_ic_capabilities (EcoreIMFContextISF *ic)
1868{
1869 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
1870
1871 if (ic && ic->impl)
1872 {
1873 unsigned int cap = SCIM_CLIENT_CAP_ALL_CAPABILITIES;
1874
1875 if (!_on_the_spot || !ic->impl->use_preedit)
1876 cap -= SCIM_CLIENT_CAP_ONTHESPOT_PREEDIT;
1877
1878 ic->impl->si->update_client_capabilities (cap);
1879 }
1880}
1881
1882static bool
1883check_socket_frontend (void)
1884{
1885 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
1886
1887 SocketAddress address;
1888 SocketClient client;
1889
1890 uint32 magic;
1891
1892 address.set_address (scim_get_default_socket_frontend_address ());
1893
1894 if (!client.connect (address))
1895 return false;
1896
1897 if (!scim_socket_open_connection (magic,
1898 String ("ConnectionTester"),
1899 String ("SocketFrontEnd"),
1900 client,
1901 1000))
1902 return false;
1903
1904 return true;
1905}
1906
1907void
1908initialize (void)
1909{
1910 std::vector<String> config_list;
1911 std::vector<String> engine_list;
1912 std::vector<String> load_engine_list;
1913
1914 std::vector<String>::iterator it;
1915
1916 bool manual = false;
1917
1918 bool socket = true;
1919
1920 String config_module_name = "simple";
1921
1922 printf("Initializing Ecore SCIM IMModule...\n");
1923
1924 SCIM_DEBUG_FRONTEND(1) << "Initializing Ecore SCIM IMModule...\n";
1925
1926 // Get system language.
1927 _language = scim_get_locale_language (scim_get_current_locale ());
1928
1929 if (socket)
1930 {
1931 // If no Socket FrontEnd is running, then launch one.
1932 // And set manual to false.
1933 bool check_result = check_socket_frontend ();
1934 if (!check_result)
1935 {
1936 std::cerr << "Launching a SCIM daemon with Socket FrontEnd...\n";
1937 //get modules list
1938 scim_get_imengine_module_list (engine_list);
1939
1940 for (it = engine_list.begin (); it != engine_list.end (); it++)
1941 {
1942 if (*it != "socket")
1943 load_engine_list.push_back (*it);
1944 }
1945
1946 const char *new_argv [] = { "--no-stay", 0 };
1947 scim_launch (true,
1948 config_module_name,
1949 (load_engine_list.size () ? scim_combine_string_list (load_engine_list, ',') : "none"),
1950 "socket",
1951 (char **)new_argv);
1952 manual = false;
1953 }
1954
1955 // If there is one Socket FrontEnd running and it's not manual mode,
1956 // then just use this Socket Frontend.
1957 if (!manual)
1958 {
1959 for (int i = 0; i < 200; ++i)
1960 {
1961 if (check_result)
1962 {
1963 config_module_name = "socket";
1964 load_engine_list.clear ();
1965 load_engine_list.push_back ("socket");
1966 break;
1967 }
1968 scim_usleep (50000);
1969 check_result = check_socket_frontend ();
1970 }
1971 }
1972 }
1973
1974 if (config_module_name != "dummy")
1975 {
1976 //load config module
1977 SCIM_DEBUG_FRONTEND(1) << "Loading Config module: " << config_module_name << "...\n";
1978 _config_module = new ConfigModule (config_module_name);
1979
1980 //create config instance
1981 if (_config_module != NULL && _config_module->valid ())
1982 _config = _config_module->create_config ();
1983 }
1984
1985 if (_config.null ())
1986 {
1987 SCIM_DEBUG_FRONTEND(1) << "Config module cannot be loaded, using dummy Config.\n";
1988
1989 if (_config_module) delete _config_module;
1990 _config_module = NULL;
1991
1992 _config = new DummyConfig ();
1993 config_module_name = "dummy";
1994 }
1995
1996 reload_config_callback (_config);
1997 _config->signal_connect_reload (slot (reload_config_callback));
1998
1999 // create backend
2000 _backend = new CommonBackEnd (_config, load_engine_list.size () ? load_engine_list : engine_list);
2001
2002 if (_backend.null ())
2003 std::cerr << "Cannot create BackEnd Object!\n";
2004 else
2005 _fallback_factory = _backend->get_factory (SCIM_COMPOSE_KEY_FACTORY_UUID);
2006
2007 if (_fallback_factory.null ())
2008 _fallback_factory = new DummyIMEngineFactory ();
2009
2010 _fallback_instance = _fallback_factory->create_instance (String ("UTF-8"), 0);
2011 _fallback_instance->signal_connect_commit_string (slot (fallback_commit_string_cb));
2012
2013 // Attach Panel Client signal.
2014 _panel_client.signal_connect_reload_config (slot (panel_slot_reload_config));
2015 _panel_client.signal_connect_exit (slot (panel_slot_exit));
2016 _panel_client.signal_connect_update_lookup_table_page_size (slot (panel_slot_update_lookup_table_page_size));
2017 _panel_client.signal_connect_lookup_table_page_up (slot (panel_slot_lookup_table_page_up));
2018 _panel_client.signal_connect_lookup_table_page_down (slot (panel_slot_lookup_table_page_down));
2019 _panel_client.signal_connect_trigger_property (slot (panel_slot_trigger_property));
2020 _panel_client.signal_connect_process_helper_event (slot (panel_slot_process_helper_event));
2021 _panel_client.signal_connect_move_preedit_caret (slot (panel_slot_move_preedit_caret));
2022 _panel_client.signal_connect_select_candidate (slot (panel_slot_select_candidate));
2023 _panel_client.signal_connect_process_key_event (slot (panel_slot_process_key_event));
2024 _panel_client.signal_connect_commit_string (slot (panel_slot_commit_string));
2025 _panel_client.signal_connect_forward_key_event (slot (panel_slot_forward_key_event));
2026 _panel_client.signal_connect_request_help (slot (panel_slot_request_help));
2027 _panel_client.signal_connect_request_factory_menu (slot (panel_slot_request_factory_menu));
2028 _panel_client.signal_connect_change_factory (slot (panel_slot_change_factory));
2029
2030 if (!panel_initialize ())
2031 std::cerr << "Ecore IM Module: Cannot connect to Panel!\n";
2032}
2033
2034static void
2035finalize (void)
2036{
2037 SCIM_DEBUG_FRONTEND(1) << "Finalizing Ecore ISF IMModule...\n";
2038
2039 // Reset this first so that the shared instance could be released correctly afterwards.
2040 _default_instance.reset ();
2041
2042 SCIM_DEBUG_FRONTEND(2) << "Finalize all IC partially.\n";
2043 while (_used_ic_impl_list)
2044 {
2045 // In case in "shared input method" mode,
2046 // all contexts share only one instance,
2047 // so we need point the reference pointer correctly before finalizing.
2048 _used_ic_impl_list->si->set_frontend_data (static_cast <void*> (_used_ic_impl_list->parent));
2049 isf_imf_context_del (_used_ic_impl_list->parent->ctx);
2050 }
2051
2052 delete_all_ic_impl ();
2053
2054 _fallback_instance.reset ();
2055 _fallback_factory.reset ();
2056
2057 SCIM_DEBUG_FRONTEND(2) << " Releasing BackEnd...\n";
2058 _backend.reset ();
2059
2060 SCIM_DEBUG_FRONTEND(2) << " Releasing Config...\n";
2061 _config.reset ();
2062
2063 if (_config_module)
2064 {
2065 SCIM_DEBUG_FRONTEND(2) << " Deleting _config_module...\n";
2066 delete _config_module;
2067 _config_module = 0;
2068 }
2069
2070 _focused_ic = NULL;
2071 _ic_list = NULL;
2072
2073 _scim_initialized = false;
2074
2075 panel_finalize ();
2076}
2077
2078static void
2079open_next_factory (EcoreIMFContextISF *ic)
2080{
2081 SCIM_DEBUG_FRONTEND(2) << __FUNCTION__ << " context=" << ic->id << "\n";
2082 IMEngineFactoryPointer sf = _backend->get_next_factory ("", "UTF-8", ic->impl->si->get_factory_uuid ());
2083
2084 if (!sf.null ())
2085 {
2086 turn_off_ic (ic);
2087 ic->impl->si = sf->create_instance ("UTF-8", ic->impl->si->get_id ());
2088 ic->impl->si->set_frontend_data (static_cast <void*> (ic));
2089 ic->impl->preedit_string = WideString ();
2090 ic->impl->preedit_caret = 0;
2091 attach_instance (ic->impl->si);
2092 _backend->set_default_factory (_language, sf->get_uuid ());
2093 _panel_client.register_input_context (ic->id, sf->get_uuid ());
2094 set_ic_capabilities (ic);
2095 turn_on_ic (ic);
2096
2097 if (_shared_input_method)
2098 {
2099 _default_instance = ic->impl->si;
2100 ic->impl->shared_si = true;
2101 }
2102 }
2103}
2104
2105static void
2106open_previous_factory (EcoreIMFContextISF *ic)
2107{
2108 if (ic == NULL)
2109 return;
2110
2111 SCIM_DEBUG_FRONTEND(2) << __FUNCTION__ << " context=" << ic->id << "\n";
2112 IMEngineFactoryPointer sf = _backend->get_previous_factory ("", "UTF-8", ic->impl->si->get_factory_uuid ());
2113
2114 if (!sf.null ())
2115 {
2116 turn_off_ic (ic);
2117 ic->impl->si = sf->create_instance ("UTF-8", ic->impl->si->get_id ());
2118 ic->impl->si->set_frontend_data (static_cast <void*> (ic));
2119 ic->impl->preedit_string = WideString ();
2120 ic->impl->preedit_caret = 0;
2121 attach_instance (ic->impl->si);
2122 _backend->set_default_factory (_language, sf->get_uuid ());
2123 _panel_client.register_input_context (ic->id, sf->get_uuid ());
2124 set_ic_capabilities (ic);
2125 turn_on_ic (ic);
2126
2127 if (_shared_input_method)
2128 {
2129 _default_instance = ic->impl->si;
2130 ic->impl->shared_si = true;
2131 }
2132 }
2133}
2134
2135static void
2136open_specific_factory (EcoreIMFContextISF *ic,
2137 const String &uuid)
2138{
2139 if (ic == NULL)
2140 return;
2141
2142 SCIM_DEBUG_FRONTEND(2) << __FUNCTION__ << " context=" << ic->id << "\n";
2143
2144 // The same input method is selected, just turn on the IC.
2145 if (ic->impl->si->get_factory_uuid () == uuid)
2146 {
2147 turn_on_ic (ic);
2148 return;
2149 }
2150
2151 IMEngineFactoryPointer sf = _backend->get_factory (uuid);
2152
2153 if (uuid.length () && !sf.null ())
2154 {
2155 turn_off_ic (ic);
2156 ic->impl->si = sf->create_instance ("UTF-8", ic->impl->si->get_id ());
2157 ic->impl->si->set_frontend_data (static_cast <void*> (ic));
2158 ic->impl->preedit_string = WideString ();
2159 ic->impl->preedit_caret = 0;
2160 attach_instance (ic->impl->si);
2161 _backend->set_default_factory (_language, sf->get_uuid ());
2162 _panel_client.register_input_context (ic->id, sf->get_uuid ());
2163 set_ic_capabilities (ic);
2164 turn_on_ic (ic);
2165
2166 if (_shared_input_method)
2167 {
2168 _default_instance = ic->impl->si;
2169 ic->impl->shared_si = true;
2170 }
2171 }
2172 else
2173 {
2174 // turn_off_ic comment out panel_req_update_factory_info ()
2175 turn_off_ic (ic);
2176 if (ic && ic->impl->is_on)
2177 {
2178 ic->impl->is_on = false;
2179
2180 if (ic == _focused_ic)
2181 {
2182 ic->impl->si->focus_out ();
2183
2184 panel_req_update_factory_info (ic);
2185 _panel_client.turn_off (ic->id);
2186 }
2187
2188 //Record the IC on/off status
2189 if (_shared_input_method)
2190 _config->write (String (SCIM_CONFIG_FRONTEND_IM_OPENED_BY_DEFAULT), false);
2191
2192 if (ic->impl->use_preedit && ic->impl->preedit_string.length ())
2193 {
2194 ecore_imf_context_preedit_changed_event_add (ic->ctx);
2195 ecore_imf_context_event_callback_call(ic->ctx, ECORE_IMF_CALLBACK_PREEDIT_CHANGED, NULL);
2196 ecore_imf_context_preedit_end_event_add (ic->ctx);
2197 ecore_imf_context_event_callback_call(ic->ctx, ECORE_IMF_CALLBACK_PREEDIT_END, NULL);
2198 ic->impl->preedit_started = false;
2199 }
2200 }
2201 }
2202}
2203
2204static void initialize_modifier_bits (Display *display)
2205{
2206 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
2207
2208 if (__current_display == display)
2209 return;
2210
2211 __current_display = display;
2212
2213 if (display == 0)
2214 {
2215 __current_alt_mask = Mod1Mask;
2216 __current_meta_mask = ShiftMask | Mod1Mask;
2217 __current_super_mask = 0;
2218 __current_hyper_mask = 0;
2219 __current_numlock_mask = Mod2Mask;
2220 return;
2221 }
2222
2223 XModifierKeymap *mods = NULL;
2224
2225 ::KeyCode ctrl_l = XKeysymToKeycode (display, XK_Control_L);
2226 ::KeyCode ctrl_r = XKeysymToKeycode (display, XK_Control_R);
2227 ::KeyCode meta_l = XKeysymToKeycode (display, XK_Meta_L);
2228 ::KeyCode meta_r = XKeysymToKeycode (display, XK_Meta_R);
2229 ::KeyCode alt_l = XKeysymToKeycode (display, XK_Alt_L);
2230 ::KeyCode alt_r = XKeysymToKeycode (display, XK_Alt_R);
2231 ::KeyCode super_l = XKeysymToKeycode (display, XK_Super_L);
2232 ::KeyCode super_r = XKeysymToKeycode (display, XK_Super_R);
2233 ::KeyCode hyper_l = XKeysymToKeycode (display, XK_Hyper_L);
2234 ::KeyCode hyper_r = XKeysymToKeycode (display, XK_Hyper_R);
2235 ::KeyCode numlock = XKeysymToKeycode (display, XK_Num_Lock);
2236
2237 int i, j;
2238
2239 mods = XGetModifierMapping (display);
2240 if (mods == NULL)
2241 return;
2242
2243 __current_alt_mask = 0;
2244 __current_meta_mask = 0;
2245 __current_super_mask = 0;
2246 __current_hyper_mask = 0;
2247 __current_numlock_mask = 0;
2248
2249 /* We skip the first three sets for Shift, Lock, and Control. The
2250 remaining sets are for Mod1, Mod2, Mod3, Mod4, and Mod5. */
2251 for (i = 3; i < 8; i++)
2252 {
2253 for (j = 0; j < mods->max_keypermod; j++)
2254 {
2255 ::KeyCode code = mods->modifiermap [i * mods->max_keypermod + j];
2256 if (! code) continue;
2257 if (code == alt_l || code == alt_r)
2258 __current_alt_mask |= (1 << i);
2259 else if (code == meta_l || code == meta_r)
2260 __current_meta_mask |= (1 << i);
2261 else if (code == super_l || code == super_r)
2262 __current_super_mask |= (1 << i);
2263 else if (code == hyper_l || code == hyper_r)
2264 __current_hyper_mask |= (1 << i);
2265 else if (code == numlock)
2266 __current_numlock_mask |= (1 << i);
2267 }
2268 }
2269
2270 /* Check whether there is a combine keys mapped to Meta */
2271 if (__current_meta_mask == 0)
2272 {
2273 char buf [32];
2274 XKeyEvent xkey;
2275 KeySym keysym_l, keysym_r;
2276
2277 xkey.type = KeyPress;
2278 xkey.display = display;
2279 xkey.serial = 0L;
2280 xkey.send_event = False;
2281 xkey.x = xkey.y = xkey.x_root = xkey.y_root = 0;
2282 xkey.time = 0;
2283 xkey.same_screen = False;
2284 xkey.subwindow = None;
2285 xkey.window = None;
2286 xkey.root = DefaultRootWindow (display);
2287 xkey.state = ShiftMask;
2288
2289 xkey.keycode = meta_l;
2290 XLookupString (&xkey, buf, 32, &keysym_l, 0);
2291 xkey.keycode = meta_r;
2292 XLookupString (&xkey, buf, 32, &keysym_r, 0);
2293
2294 if ((meta_l == alt_l && keysym_l == XK_Meta_L) || (meta_r == alt_r && keysym_r == XK_Meta_R))
2295 __current_meta_mask = ShiftMask + __current_alt_mask;
2296 else if ((meta_l == ctrl_l && keysym_l == XK_Meta_L) || (meta_r == ctrl_r && keysym_r == XK_Meta_R))
2297 __current_meta_mask = ShiftMask + ControlMask;
2298 }
2299
2300 XFreeModifiermap (mods);
2301}
2302
2303static unsigned int scim_x11_keymask_scim_to_x11 (Display *display, uint16 scimkeymask)
2304{
2305 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
2306
2307 unsigned int state = 0;
2308
2309 initialize_modifier_bits (display);
2310
2311 if (scimkeymask & SCIM_KEY_ShiftMask) state |= ShiftMask;
2312 if (scimkeymask & SCIM_KEY_CapsLockMask) state |= LockMask;
2313 if (scimkeymask & SCIM_KEY_ControlMask) state |= ControlMask;
2314 if (scimkeymask & SCIM_KEY_AltMask) state |= __current_alt_mask;
2315 if (scimkeymask & SCIM_KEY_MetaMask) state |= __current_meta_mask;
2316 if (scimkeymask & SCIM_KEY_SuperMask) state |= __current_super_mask;
2317 if (scimkeymask & SCIM_KEY_HyperMask) state |= __current_hyper_mask;
2318 if (scimkeymask & SCIM_KEY_NumLockMask) state |= __current_numlock_mask;
2319
2320 return state;
2321}
2322
2323static XKeyEvent createKeyEvent (Display *display, Window &win,
2324 Window &winRoot, bool press,
2325 int keycode, int modifiers)
2326{
2327 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
2328
2329 XKeyEvent event;
2330
2331 event.display = display;
2332 event.window = win;
2333 event.root = winRoot;
2334 event.subwindow = None;
2335 event.time = CurrentTime;
2336 event.x = 1;
2337 event.y = 1;
2338 event.x_root = 1;
2339 event.y_root = 1;
2340 event.same_screen = EINA_TRUE;
2341 event.state = modifiers;
2342 event.keycode = XKeysymToKeycode (display, keycode);
2343 if (press)
2344 event.type = KeyPress;
2345 else
2346 event.type = KeyRelease;
2347 event.send_event = EINA_FALSE;
2348 event.serial = 0;
2349
2350 return event;
2351}
2352
2353static void _x_send_key_event (const KeyEvent &key)
2354{
2355 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
2356
2357 // Obtain the X11 display.
2358 Display *display = XOpenDisplay (NULL);
2359 if (display == NULL)
2360 {
2361 std::cerr << "XOpenDisplay failed\n";
2362 return;
2363 }
2364
2365 // Get the root window for the current display.
2366 Window winRoot = 0;// = XRootWindow (display, 1);
2367
2368 // Find the window which has the current keyboard focus.
2369 Window winFocus = 0;
2370 int revert = RevertToParent;
2371
2372 XGetInputFocus (display, &winFocus, &revert);
2373
2374 // Send a fake key press event to the window.
2375 XSelectInput (display, winFocus, FocusChangeMask|KeyPressMask|KeyReleaseMask);
2376 XMapWindow (display, winFocus);
2377
2378 unsigned int modifier = scim_x11_keymask_scim_to_x11 (display, key.mask);
2379 XKeyEvent event;
2380 if (key.is_key_press ())
2381 {
2382 event = createKeyEvent (display, winFocus, winRoot, true, key.code, modifier);
2383 XSendEvent (event.display, event.window, True, KeyPressMask, (XEvent *)&event);
2384 }
2385 else
2386 {
2387 event = createKeyEvent (display, winFocus, winRoot, false, key.code, modifier);
2388 XSendEvent (event.display, event.window, True, KeyReleaseMask, (XEvent *)&event);
2389 }
2390
2391 XCloseDisplay (display);
2392}
2393
2394static void
2395attach_instance (const IMEngineInstancePointer &si)
2396{
2397 si->signal_connect_show_preedit_string (
2398 slot (slot_show_preedit_string));
2399 si->signal_connect_show_aux_string (
2400 slot (slot_show_aux_string));
2401 si->signal_connect_show_lookup_table (
2402 slot (slot_show_lookup_table));
2403
2404 si->signal_connect_hide_preedit_string (
2405 slot (slot_hide_preedit_string));
2406 si->signal_connect_hide_aux_string (
2407 slot (slot_hide_aux_string));
2408 si->signal_connect_hide_lookup_table (
2409 slot (slot_hide_lookup_table));
2410
2411 si->signal_connect_update_preedit_caret (
2412 slot (slot_update_preedit_caret));
2413 si->signal_connect_update_preedit_string (
2414 slot (slot_update_preedit_string));
2415 si->signal_connect_update_aux_string (
2416 slot (slot_update_aux_string));
2417 si->signal_connect_update_lookup_table (
2418 slot (slot_update_lookup_table));
2419
2420 si->signal_connect_commit_string (
2421 slot (slot_commit_string));
2422
2423 si->signal_connect_forward_key_event (
2424 slot (slot_forward_key_event));
2425
2426 si->signal_connect_register_properties (
2427 slot (slot_register_properties));
2428
2429 si->signal_connect_update_property (
2430 slot (slot_update_property));
2431
2432 si->signal_connect_beep (
2433 slot (slot_beep));
2434
2435 si->signal_connect_start_helper (
2436 slot (slot_start_helper));
2437
2438 si->signal_connect_stop_helper (
2439 slot (slot_stop_helper));
2440
2441 si->signal_connect_send_helper_event (
2442 slot (slot_send_helper_event));
2443
2444 si->signal_connect_get_surrounding_text (
2445 slot (slot_get_surrounding_text));
2446
2447 si->signal_connect_delete_surrounding_text (
2448 slot (slot_delete_surrounding_text));
2449}
2450
2451// Implementation of slot functions
2452static void
2453slot_show_preedit_string (IMEngineInstanceBase *si)
2454{
2455 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
2456
2457 EcoreIMFContextISF *ic = static_cast<EcoreIMFContextISF *> (si->get_frontend_data ());
2458
2459 if (ic && ic->impl && _focused_ic == ic)
2460 {
2461 if (ic->impl->use_preedit)
2462 {
2463 if (!ic->impl->preedit_started)
2464 {
2465 ecore_imf_context_preedit_start_event_add (_focused_ic->ctx);
2466 ecore_imf_context_event_callback_call(_focused_ic->ctx, ECORE_IMF_CALLBACK_PREEDIT_START, NULL);
2467 ic->impl->preedit_started = true;
2468 }
2469 }
2470 else
2471 _panel_client.show_preedit_string (ic->id);
2472 }
2473}
2474
2475static void
2476slot_show_aux_string (IMEngineInstanceBase *si)
2477{
2478 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
2479
2480 EcoreIMFContextISF *ic = static_cast<EcoreIMFContextISF *> (si->get_frontend_data ());
2481
2482 if (ic && ic->impl && _focused_ic == ic)
2483 _panel_client.show_aux_string (ic->id);
2484}
2485
2486static void
2487slot_show_lookup_table (IMEngineInstanceBase *si)
2488{
2489 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
2490
2491 EcoreIMFContextISF *ic = static_cast<EcoreIMFContextISF *> (si->get_frontend_data ());
2492
2493 if (ic && ic->impl && _focused_ic == ic)
2494 _panel_client.show_lookup_table (ic->id);
2495}
2496
2497static void
2498slot_hide_preedit_string (IMEngineInstanceBase *si)
2499{
2500 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
2501
2502 EcoreIMFContextISF *ic = static_cast<EcoreIMFContextISF *> (si->get_frontend_data ());
2503
2504 if (ic && ic->impl && _focused_ic == ic)
2505 {
2506 bool emit = false;
2507 if (ic->impl->preedit_string.length ())
2508 {
2509 ic->impl->preedit_string = WideString ();
2510 ic->impl->preedit_caret = 0;
2511 ic->impl->preedit_attrlist.clear ();
2512 emit = true;
2513 }
2514 if (ic->impl->use_preedit)
2515 {
2516 if (emit)
2517 {
2518 ecore_imf_context_preedit_changed_event_add (ic->ctx);
2519 ecore_imf_context_event_callback_call(ic->ctx, ECORE_IMF_CALLBACK_PREEDIT_CHANGED, NULL);
2520 }
2521 if (ic->impl->preedit_started)
2522 {
2523 ecore_imf_context_preedit_end_event_add (ic->ctx);
2524 ecore_imf_context_event_callback_call(ic->ctx, ECORE_IMF_CALLBACK_PREEDIT_END, NULL);
2525 ic->impl->preedit_started = false;
2526 }
2527 }
2528 else
2529 _panel_client.hide_preedit_string (ic->id);
2530 }
2531}
2532
2533static void
2534slot_hide_aux_string (IMEngineInstanceBase *si)
2535{
2536 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
2537
2538 EcoreIMFContextISF *ic = static_cast<EcoreIMFContextISF *> (si->get_frontend_data ());
2539
2540 if (ic && ic->impl && _focused_ic == ic)
2541 _panel_client.hide_aux_string (ic->id);
2542}
2543
2544static void
2545slot_hide_lookup_table (IMEngineInstanceBase *si)
2546{
2547 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
2548
2549 EcoreIMFContextISF *ic = static_cast<EcoreIMFContextISF *> (si->get_frontend_data ());
2550
2551 if (ic && ic->impl && _focused_ic == ic)
2552 _panel_client.hide_lookup_table (ic->id);
2553}
2554
2555static void
2556slot_update_preedit_caret (IMEngineInstanceBase *si, int caret)
2557{
2558 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
2559
2560 EcoreIMFContextISF *ic = static_cast<EcoreIMFContextISF *> (si->get_frontend_data ());
2561
2562 if (ic && ic->impl && _focused_ic == ic && ic->impl->preedit_caret != caret)
2563 {
2564 ic->impl->preedit_caret = caret;
2565 if (ic->impl->use_preedit)
2566 {
2567 if (!ic->impl->preedit_started)
2568 {
2569 ecore_imf_context_preedit_start_event_add (ic->ctx);
2570 ecore_imf_context_event_callback_call(ic->ctx, ECORE_IMF_CALLBACK_PREEDIT_START, NULL);
2571 ic->impl->preedit_started = true;
2572 }
2573 ecore_imf_context_preedit_changed_event_add (ic->ctx);
2574 ecore_imf_context_event_callback_call(ic->ctx, ECORE_IMF_CALLBACK_PREEDIT_CHANGED, NULL);
2575 }
2576 else
2577 _panel_client.update_preedit_caret (ic->id, caret);
2578 }
2579}
2580
2581static void
2582slot_update_preedit_string (IMEngineInstanceBase *si,
2583 const WideString & str,
2584 const AttributeList & attrs)
2585{
2586 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
2587
2588 EcoreIMFContextISF *ic = static_cast<EcoreIMFContextISF *> (si->get_frontend_data ());
2589
2590 if (ic && ic->impl && _focused_ic == ic && (ic->impl->preedit_string != str || str.length ()))
2591 {
2592 ic->impl->preedit_string = str;
2593 ic->impl->preedit_attrlist = attrs;
2594 if (ic->impl->use_preedit)
2595 {
2596 if (!ic->impl->preedit_started)
2597 {
2598 ecore_imf_context_preedit_start_event_add (_focused_ic->ctx);
2599 ecore_imf_context_event_callback_call(_focused_ic->ctx, ECORE_IMF_CALLBACK_PREEDIT_START, NULL);
2600 ic->impl->preedit_started = true;
2601 }
2602 ic->impl->preedit_caret = str.length ();
2603 ic->impl->preedit_updating = true;
2604 ecore_imf_context_preedit_changed_event_add (ic->ctx);
2605 ecore_imf_context_event_callback_call(ic->ctx, ECORE_IMF_CALLBACK_PREEDIT_CHANGED, NULL);
2606 ic->impl->preedit_updating = false;
2607 }
2608 else
2609 {
2610 _panel_client.update_preedit_string (ic->id, str, attrs);
2611 }
2612 }
2613}
2614
2615static void
2616slot_update_aux_string (IMEngineInstanceBase *si,
2617 const WideString & str,
2618 const AttributeList & attrs)
2619{
2620 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
2621
2622 EcoreIMFContextISF *ic = static_cast<EcoreIMFContextISF *> (si->get_frontend_data ());
2623
2624 if (ic && ic->impl && _focused_ic == ic)
2625 _panel_client.update_aux_string (ic->id, str, attrs);
2626}
2627
2628static void
2629slot_commit_string (IMEngineInstanceBase *si,
2630 const WideString & str)
2631{
2632 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
2633
2634 EcoreIMFContextISF *ic = static_cast<EcoreIMFContextISF *> (si->get_frontend_data ());
2635
2636 if (ic && ic->ctx)
2637 {
2638 ecore_imf_context_commit_event_add (ic->ctx, utf8_wcstombs (str).c_str ());
2639 ecore_imf_context_event_callback_call(ic->ctx, ECORE_IMF_CALLBACK_COMMIT, (void *)utf8_wcstombs(str).c_str());
2640 }
2641}
2642
2643static void
2644slot_forward_key_event (IMEngineInstanceBase *si,
2645 const KeyEvent & key)
2646{
2647 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
2648
2649 EcoreIMFContextISF *ic = static_cast<EcoreIMFContextISF *> (si->get_frontend_data ());
2650
2651 if (ic && _focused_ic == ic)
2652 {
2653 if (!_fallback_instance->process_key_event (key))
2654 _x_send_key_event(key);
2655 }
2656}
2657
2658static void
2659slot_update_lookup_table (IMEngineInstanceBase *si,
2660 const LookupTable & table)
2661{
2662 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
2663
2664 EcoreIMFContextISF *ic = static_cast<EcoreIMFContextISF *> (si->get_frontend_data ());
2665
2666 if (ic && ic->impl && _focused_ic == ic)
2667 _panel_client.update_lookup_table (ic->id, table);
2668}
2669
2670static void
2671slot_register_properties (IMEngineInstanceBase *si,
2672 const PropertyList & properties)
2673{
2674 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
2675
2676 EcoreIMFContextISF *ic = static_cast<EcoreIMFContextISF *> (si->get_frontend_data ());
2677
2678 if (ic && ic->impl && _focused_ic == ic)
2679 _panel_client.register_properties (ic->id, properties);
2680}
2681
2682static void
2683slot_update_property (IMEngineInstanceBase *si,
2684 const Property & property)
2685{
2686 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
2687
2688 EcoreIMFContextISF *ic = static_cast<EcoreIMFContextISF *> (si->get_frontend_data ());
2689
2690 if (ic && ic->impl && _focused_ic == ic)
2691 _panel_client.update_property (ic->id, property);
2692}
2693
2694static void
2695slot_beep (IMEngineInstanceBase *si __UNUSED__)
2696{
2697 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
2698}
2699
2700static void
2701slot_start_helper (IMEngineInstanceBase *si,
2702 const String &helper_uuid)
2703{
2704 EcoreIMFContextISF *ic = static_cast<EcoreIMFContextISF *> (si->get_frontend_data ());
2705
2706 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << " helper= " << helper_uuid << " context="
2707 << (ic ? ic->id : -1) << " ic=" << ic
2708 << " ic-uuid=" << ((ic ) ? ic->impl->si->get_factory_uuid () : "") << "...\n";
2709
2710 if (ic && ic->impl)
2711 _panel_client.start_helper (ic->id, helper_uuid);
2712}
2713
2714static void
2715slot_stop_helper (IMEngineInstanceBase *si,
2716 const String &helper_uuid)
2717{
2718 EcoreIMFContextISF *ic = static_cast<EcoreIMFContextISF *> (si->get_frontend_data ());
2719
2720 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << " helper= " << helper_uuid << " context=" << (ic ? ic->id : -1) << " ic=" << ic << "...\n";
2721
2722 if (ic && ic->impl)
2723 _panel_client.stop_helper (ic->id, helper_uuid);
2724}
2725
2726static void
2727slot_send_helper_event (IMEngineInstanceBase *si,
2728 const String &helper_uuid,
2729 const Transaction &trans)
2730{
2731 EcoreIMFContextISF *ic = static_cast<EcoreIMFContextISF *> (si->get_frontend_data ());
2732
2733 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << " helper= " << helper_uuid << " context="
2734 << (ic ? ic->id : -1) << " ic=" << ic
2735 << " ic-uuid=" << ((ic) ? ic->impl->si->get_factory_uuid () : "") << "...\n";
2736
2737 if (ic && ic->impl)
2738 _panel_client.send_helper_event (ic->id, helper_uuid, trans);
2739}
2740
2741static bool
2742slot_get_surrounding_text (IMEngineInstanceBase *si,
2743 WideString &text,
2744 int &cursor,
2745 int maxlen_before,
2746 int maxlen_after)
2747{
2748 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
2749
2750 EcoreIMFContextISF *ic = static_cast<EcoreIMFContextISF *> (si->get_frontend_data ());
2751
2752 if (ic && ic->impl && _focused_ic == ic)
2753 {
2754 char *surrounding = NULL;
2755 int cursor_index;
2756 if (ecore_imf_context_surrounding_get (_focused_ic->ctx, &surrounding, &cursor_index))
2757 {
2758 SCIM_DEBUG_FRONTEND(2) << "Surrounding text: " << surrounding <<"\n";
2759 SCIM_DEBUG_FRONTEND(2) << "Cursor Index : " << cursor_index <<"\n";
2760 WideString before (utf8_mbstowcs (String (surrounding, surrounding + cursor_index)));
2761 WideString after (utf8_mbstowcs (String (surrounding + cursor_index)));
2762 if (maxlen_before > 0 && ((unsigned int)maxlen_before) < before.length ())
2763 before = WideString (before.begin () + (before.length () - maxlen_before), before.end ());
2764 else if (maxlen_before == 0) before = WideString ();
2765 if (maxlen_after > 0 && ((unsigned int)maxlen_after) < after.length ())
2766 after = WideString (after.begin (), after.begin () + maxlen_after);
2767 else if (maxlen_after == 0) after = WideString ();
2768 text = before + after;
2769 cursor = before.length ();
2770 return true;
2771 }
2772 }
2773 return false;
2774}
2775
2776static bool
2777slot_delete_surrounding_text (IMEngineInstanceBase *si,
2778 int offset,
2779 int len)
2780{
2781 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
2782
2783 EcoreIMFContextISF *ic = static_cast<EcoreIMFContextISF *> (si->get_frontend_data ());
2784
2785 if (ic && ic->impl && _focused_ic == ic)
2786 {
2787 Ecore_IMF_Event_Delete_Surrounding ev;
2788 ev.ctx = _focused_ic->ctx;
2789 ev.n_chars = len;
2790 ev.offset = offset;
2791 ecore_imf_context_delete_surrounding_event_add (_focused_ic->ctx, offset, len);
2792 ecore_imf_context_event_callback_call(_focused_ic->ctx, ECORE_IMF_CALLBACK_DELETE_SURROUNDING, &ev);
2793 return true;
2794 }
2795 return false;
2796}
2797
2798static void
2799reload_config_callback (const ConfigPointer &config)
2800{
2801 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
2802
2803 _frontend_hotkey_matcher.load_hotkeys (config);
2804 _imengine_hotkey_matcher.load_hotkeys (config);
2805
2806 KeyEvent key;
2807
2808 scim_string_to_key (key,
2809 config->read (String (SCIM_CONFIG_HOTKEYS_FRONTEND_VALID_KEY_MASK),
2810 String ("Shift+Control+Alt+Lock")));
2811
2812 _valid_key_mask = (key.mask > 0)?(key.mask):0xFFFF;
2813 _valid_key_mask |= SCIM_KEY_ReleaseMask;
2814 // Special treatment for two backslash keys on jp106 keyboard.
2815 _valid_key_mask |= SCIM_KEY_QuirkKanaRoMask;
2816
2817 _on_the_spot = config->read (String (SCIM_CONFIG_FRONTEND_ON_THE_SPOT), _on_the_spot);
2818 _shared_input_method = config->read (String (SCIM_CONFIG_FRONTEND_SHARED_INPUT_METHOD), _shared_input_method);
2819
2820 // Get keyboard layout setting
2821 // Flush the global config first, in order to load the new configs from disk.
2822 scim_global_config_flush ();
2823
2824 _keyboard_layout = scim_get_default_keyboard_layout ();
2825}
2826
2827static void
2828fallback_commit_string_cb (IMEngineInstanceBase *si __UNUSED__,
2829 const WideString &str)
2830{
2831 SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
2832
2833 if (_focused_ic && _focused_ic->impl)
2834 {
2835 ecore_imf_context_commit_event_add (_focused_ic->ctx, utf8_wcstombs (str).c_str ());
2836 ecore_imf_context_event_callback_call(_focused_ic->ctx, ECORE_IMF_CALLBACK_COMMIT, (void *)utf8_wcstombs(str).c_str());
2837 }
2838}
2839
diff --git a/libraries/ecore/src/modules/immodules/scim/scim_imcontext.h b/libraries/ecore/src/modules/immodules/scim/scim_imcontext.h
new file mode 100644
index 0000000..84f1a2f
--- /dev/null
+++ b/libraries/ecore/src/modules/immodules/scim/scim_imcontext.h
@@ -0,0 +1,40 @@
1#ifndef __ISF_IMF_CONTEXT_H
2#define __ISF_IMF_CONTEXT_H
3
4#include <Ecore_IMF.h>
5
6typedef struct _EcoreIMFContextISF EcoreIMFContextISF;
7typedef struct _EcoreIMFContextISFImpl EcoreIMFContextISFImpl;
8
9struct _EcoreIMFContextISF {
10 Ecore_IMF_Context *ctx;
11
12 EcoreIMFContextISFImpl *impl;
13
14 int id; /* Input Context id*/
15 struct _EcoreIMFContextISF *next;
16};
17
18void isf_imf_context_add (Ecore_IMF_Context *ctx);
19void isf_imf_context_del (Ecore_IMF_Context *ctx);
20void isf_imf_context_client_window_set (Ecore_IMF_Context *ctx, void *window);
21void isf_imf_context_client_canvas_set (Ecore_IMF_Context *ctx, void *window);
22void isf_imf_context_focus_in (Ecore_IMF_Context *ctx);
23void isf_imf_context_focus_out (Ecore_IMF_Context *ctx);
24void isf_imf_context_reset (Ecore_IMF_Context *ctx);
25void isf_imf_context_cursor_position_set (Ecore_IMF_Context *ctx, int cursor_pos);
26void isf_imf_context_cursor_location_set (Ecore_IMF_Context *ctx, int x, int y, int w, int h);
27void isf_imf_context_input_mode_set (Ecore_IMF_Context *ctx, Ecore_IMF_Input_Mode input_mode);
28void isf_imf_context_preedit_string_get (Ecore_IMF_Context *ctx, char** str, int *cursor_pos);
29void isf_imf_context_preedit_string_with_attributes_get (Ecore_IMF_Context *ctx, char** str, Eina_List **attrs, int *cursor_pos);
30void isf_imf_context_use_preedit_set (Ecore_IMF_Context* ctx, Eina_Bool use_preedit);
31Eina_Bool isf_imf_context_filter_event (Ecore_IMF_Context *ctx, Ecore_IMF_Event_Type type, Ecore_IMF_Event *event);
32void isf_imf_context_prediction_allow_set (Ecore_IMF_Context* ctx, Eina_Bool prediction);
33void isf_imf_context_autocapital_type_set (Ecore_IMF_Context* ctx, Ecore_IMF_Autocapital_Type autocapital_type);
34void isf_imf_context_input_panel_layout_set (Ecore_IMF_Context* ctx, Ecore_IMF_Input_Panel_Layout layout);
35
36EcoreIMFContextISF* isf_imf_context_new (void);
37void isf_imf_context_shutdown (void);
38
39#endif /* __ISF_IMF_CONTEXT_H */
40
diff --git a/libraries/ecore/src/modules/immodules/scim/scim_module.cpp b/libraries/ecore/src/modules/immodules/scim/scim_module.cpp
new file mode 100644
index 0000000..eff6381
--- /dev/null
+++ b/libraries/ecore/src/modules/immodules/scim/scim_module.cpp
@@ -0,0 +1,93 @@
1#include <stdio.h>
2#include "scim_imcontext.h"
3
4#ifdef __cplusplus
5extern "C"
6{
7#endif /* __cplusplus */
8
9 static const Ecore_IMF_Context_Info isf_imf_info = {
10 "scim", /* ID */
11 "SCIM immodule for Ecore", /* Description */
12 "*", /* Default locales */
13 NULL, /* Canvas type */
14 0 /* Canvas required */
15 };
16
17 static Ecore_IMF_Context_Class isf_imf_class = {
18 isf_imf_context_add, /* add */
19 isf_imf_context_del, /* del */
20 isf_imf_context_client_window_set, /* client_window_set */
21 isf_imf_context_client_canvas_set, /* client_canvas_set */
22 NULL, /* isf_imf_context_input_panel_show, - show */
23 NULL, /* isf_imf_context_input_panel_hide, - hide */
24 isf_imf_context_preedit_string_get, /* get_preedit_string */
25 isf_imf_context_focus_in, /* focus_in */
26 isf_imf_context_focus_out, /* focus_out */
27 isf_imf_context_reset, /* reset */
28 isf_imf_context_cursor_position_set, /* cursor_position_set */
29 isf_imf_context_use_preedit_set, /* use_preedit_set */
30 isf_imf_context_input_mode_set, /* input_mode_set */
31 isf_imf_context_filter_event, /* filter_event */
32 isf_imf_context_preedit_string_with_attributes_get, /* preedit_string_with_attribute_get */
33 isf_imf_context_prediction_allow_set, /* prediction_allow_set */
34 isf_imf_context_autocapital_type_set, /* autocapital_type_set */
35 NULL, /* control panel show */
36 NULL, /* control panel hide */
37 NULL, /* input_panel_layout_set */
38 NULL, /* isf_imf_context_input_panel_layout_get, */
39 NULL, /* isf_imf_context_input_panel_language_set, */
40 NULL, /* isf_imf_context_input_panel_language_get, */
41 isf_imf_context_cursor_location_set /* cursor_location_set */
42 };
43
44 static Ecore_IMF_Context *imf_module_create (void);
45 static Ecore_IMF_Context *imf_module_exit (void);
46
47 static Eina_Bool imf_module_init (void)
48 {
49 ecore_imf_module_register (&isf_imf_info, imf_module_create, imf_module_exit);
50 return EINA_TRUE;
51 }
52
53 static void imf_module_shutdown (void)
54 {
55 isf_imf_context_shutdown ();
56 }
57
58 static Ecore_IMF_Context *imf_module_create (void)
59 {
60 Ecore_IMF_Context *ctx = NULL;
61 EcoreIMFContextISF *ctxd = NULL;
62
63 ctxd = isf_imf_context_new ();
64 if (!ctxd)
65 {
66 printf ("isf_imf_context_new () failed!!!\n");
67 return NULL;
68 }
69
70 ctx = ecore_imf_context_new (&isf_imf_class);
71 if (!ctx)
72 {
73 delete ctxd;
74 return NULL;
75 }
76
77 ecore_imf_context_data_set (ctx, ctxd);
78
79 return ctx;
80 }
81
82 static Ecore_IMF_Context *imf_module_exit (void)
83 {
84 return NULL;
85 }
86
87 EINA_MODULE_INIT(imf_module_init);
88 EINA_MODULE_SHUTDOWN(imf_module_shutdown);
89
90#ifdef __cplusplus
91}
92#endif /* __cplusplus */
93
diff --git a/libraries/ecore/src/modules/immodules/xim/Makefile.in b/libraries/ecore/src/modules/immodules/xim/Makefile.in
index ec58d4b..5b78946 100644
--- a/libraries/ecore/src/modules/immodules/xim/Makefile.in
+++ b/libraries/ecore/src/modules/immodules/xim/Makefile.in
@@ -244,10 +244,10 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
244PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 244PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
245PIXMAN_LIBS = @PIXMAN_LIBS@ 245PIXMAN_LIBS = @PIXMAN_LIBS@
246PKG_CONFIG = @PKG_CONFIG@ 246PKG_CONFIG = @PKG_CONFIG@
247PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
248PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
249POSUB = @POSUB@ 247POSUB = @POSUB@
250RANLIB = @RANLIB@ 248RANLIB = @RANLIB@
249SCIM_CFLAGS = @SCIM_CFLAGS@
250SCIM_LIBS = @SCIM_LIBS@
251SDL_CFLAGS = @SDL_CFLAGS@ 251SDL_CFLAGS = @SDL_CFLAGS@
252SDL_CONFIG = @SDL_CONFIG@ 252SDL_CONFIG = @SDL_CONFIG@
253SDL_LIBS = @SDL_LIBS@ 253SDL_LIBS = @SDL_LIBS@
@@ -266,6 +266,10 @@ TSLIB_LIBS = @TSLIB_LIBS@
266USE_NLS = @USE_NLS@ 266USE_NLS = @USE_NLS@
267VERSION = @VERSION@ 267VERSION = @VERSION@
268VMAJ = @VMAJ@ 268VMAJ = @VMAJ@
269WAYLAND_CFLAGS = @WAYLAND_CFLAGS@
270WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
271WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
272WAYLAND_LIBS = @WAYLAND_LIBS@
269WIN32_CFLAGS = @WIN32_CFLAGS@ 273WIN32_CFLAGS = @WIN32_CFLAGS@
270WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 274WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
271WIN32_LIBS = @WIN32_LIBS@ 275WIN32_LIBS = @WIN32_LIBS@
@@ -379,6 +383,8 @@ ecore_imf_cflags = @ecore_imf_cflags@
379ecore_imf_evas_cflags = @ecore_imf_evas_cflags@ 383ecore_imf_evas_cflags = @ecore_imf_evas_cflags@
380ecore_imf_evas_libs = @ecore_imf_evas_libs@ 384ecore_imf_evas_libs = @ecore_imf_evas_libs@
381ecore_imf_libs = @ecore_imf_libs@ 385ecore_imf_libs = @ecore_imf_libs@
386ecore_imf_scim_cflags = @ecore_imf_scim_cflags@
387ecore_imf_scim_libs = @ecore_imf_scim_libs@
382ecore_imf_xim_cflags = @ecore_imf_xim_cflags@ 388ecore_imf_xim_cflags = @ecore_imf_xim_cflags@
383ecore_imf_xim_libs = @ecore_imf_xim_libs@ 389ecore_imf_xim_libs = @ecore_imf_xim_libs@
384ecore_input_cflags = @ecore_input_cflags@ 390ecore_input_cflags = @ecore_input_cflags@
@@ -391,6 +397,8 @@ ecore_psl1ght_cflags = @ecore_psl1ght_cflags@
391ecore_psl1ght_libs = @ecore_psl1ght_libs@ 397ecore_psl1ght_libs = @ecore_psl1ght_libs@
392ecore_sdl_cflags = @ecore_sdl_cflags@ 398ecore_sdl_cflags = @ecore_sdl_cflags@
393ecore_sdl_libs = @ecore_sdl_libs@ 399ecore_sdl_libs = @ecore_sdl_libs@
400ecore_wayland_cflags = @ecore_wayland_cflags@
401ecore_wayland_libs = @ecore_wayland_libs@
394ecore_win32_cflags = @ecore_win32_cflags@ 402ecore_win32_cflags = @ecore_win32_cflags@
395ecore_win32_libs = @ecore_win32_libs@ 403ecore_win32_libs = @ecore_win32_libs@
396ecore_wince_cflags = @ecore_wince_cflags@ 404ecore_wince_cflags = @ecore_wince_cflags@
@@ -435,12 +443,14 @@ requirements_ecore_fb = @requirements_ecore_fb@
435requirements_ecore_file = @requirements_ecore_file@ 443requirements_ecore_file = @requirements_ecore_file@
436requirements_ecore_imf = @requirements_ecore_imf@ 444requirements_ecore_imf = @requirements_ecore_imf@
437requirements_ecore_imf_evas = @requirements_ecore_imf_evas@ 445requirements_ecore_imf_evas = @requirements_ecore_imf_evas@
446requirements_ecore_imf_scim = @requirements_ecore_imf_scim@
438requirements_ecore_imf_xim = @requirements_ecore_imf_xim@ 447requirements_ecore_imf_xim = @requirements_ecore_imf_xim@
439requirements_ecore_input = @requirements_ecore_input@ 448requirements_ecore_input = @requirements_ecore_input@
440requirements_ecore_input_evas = @requirements_ecore_input_evas@ 449requirements_ecore_input_evas = @requirements_ecore_input_evas@
441requirements_ecore_ipc = @requirements_ecore_ipc@ 450requirements_ecore_ipc = @requirements_ecore_ipc@
442requirements_ecore_psl1ght = @requirements_ecore_psl1ght@ 451requirements_ecore_psl1ght = @requirements_ecore_psl1ght@
443requirements_ecore_sdl = @requirements_ecore_sdl@ 452requirements_ecore_sdl = @requirements_ecore_sdl@
453requirements_ecore_wayland = @requirements_ecore_wayland@
444requirements_ecore_win32 = @requirements_ecore_win32@ 454requirements_ecore_win32 = @requirements_ecore_win32@
445requirements_ecore_wince = @requirements_ecore_wince@ 455requirements_ecore_wince = @requirements_ecore_wince@
446requirements_ecore_x = @requirements_ecore_x@ 456requirements_ecore_x = @requirements_ecore_x@
diff --git a/libraries/ecore/src/modules/immodules/xim/ecore_imf_xim.c b/libraries/ecore/src/modules/immodules/xim/ecore_imf_xim.c
index 7c40606..ea7ee7f 100644
--- a/libraries/ecore/src/modules/immodules/xim/ecore_imf_xim.c
+++ b/libraries/ecore/src/modules/immodules/xim/ecore_imf_xim.c
@@ -1,3 +1,7 @@
1#ifdef HAVE_CONFIG_H
2# include <config.h>
3#endif
4
1#include <Eina.h> 5#include <Eina.h>
2#include <Ecore.h> 6#include <Ecore.h>
3#include <Ecore_Input.h> 7#include <Ecore_Input.h>
@@ -12,9 +16,6 @@
12#include <string.h> 16#include <string.h>
13#include <langinfo.h> 17#include <langinfo.h>
14#include <assert.h> 18#include <assert.h>
15#ifdef HAVE_CONFIG_H
16# include <config.h>
17#endif
18 19
19#define CLAMP(x, low, high) (x > high) ? high : (x < low) ? low : x 20#define CLAMP(x, low, high) (x > high) ? high : (x < low) ? low : x
20#define _(x) x 21#define _(x) x
@@ -23,6 +24,8 @@
23static Eina_List *open_ims = NULL; 24static Eina_List *open_ims = NULL;
24#endif 25#endif
25 26
27#define FEEDBACK_MASK (XIMReverse | XIMUnderline | XIMHighlight)
28
26typedef struct _XIM_Im_Info XIM_Im_Info; 29typedef struct _XIM_Im_Info XIM_Im_Info;
27struct _XIM_Im_Info 30struct _XIM_Im_Info
28{ 31{
@@ -51,6 +54,7 @@ struct _Ecore_IMF_Context_Data
51 Eina_Bool finalizing; 54 Eina_Bool finalizing;
52 Eina_Bool has_focus; 55 Eina_Bool has_focus;
53 Eina_Bool in_toplevel; 56 Eina_Bool in_toplevel;
57 XIMFeedback *feedbacks;
54 58
55 XIMCallback preedit_start_cb; 59 XIMCallback preedit_start_cb;
56 XIMCallback preedit_done_cb; 60 XIMCallback preedit_done_cb;
@@ -63,40 +67,62 @@ Ecore_IMF_Context_Data *imf_context_data_new();
63void imf_context_data_destroy(Ecore_IMF_Context_Data *imf_context_data); 67void imf_context_data_destroy(Ecore_IMF_Context_Data *imf_context_data);
64 68
65#ifdef ENABLE_XIM 69#ifdef ENABLE_XIM
66static void reinitialize_ic(Ecore_IMF_Context *ctx); 70static void add_feedback_attr(Eina_List **attrs,
67static void reinitialize_all_ics(XIM_Im_Info *info); 71 const char *str,
68static void set_ic_client_window(Ecore_IMF_Context *ctx, 72 XIMFeedback feedback,
69 Ecore_X_Window window); 73 int start_pos,
70static int preedit_start_callback(XIC xic, 74 int end_pos);
71 XPointer client_data, 75
72 XPointer call_data); 76static void reinitialize_ic(Ecore_IMF_Context *ctx);
73static void preedit_done_callback(XIC xic, 77static void reinitialize_all_ics(XIM_Im_Info *info);
74 XPointer client_data, 78static void set_ic_client_window(Ecore_IMF_Context *ctx,
75 XPointer call_data); 79 Ecore_X_Window window);
76static int xim_text_to_utf8(Ecore_IMF_Context *ctx, 80static int preedit_start_callback(XIC xic,
77 XIMText *xim_text, 81 XPointer client_data,
78 char **text); 82 XPointer call_data);
79static void preedit_draw_callback(XIC xic, 83static void preedit_done_callback(XIC xic,
80 XPointer client_data, 84 XPointer client_data,
81 XIMPreeditDrawCallbackStruct *call_data); 85 XPointer call_data);
82static void preedit_caret_callback(XIC xic, 86static int xim_text_to_utf8(Ecore_IMF_Context *ctx,
83 XPointer client_data, 87 XIMText *xim_text,
84 XIMPreeditCaretCallbackStruct *call_data); 88 char **text);
89static void preedit_draw_callback(XIC xic,
90 XPointer client_data,
91 XIMPreeditDrawCallbackStruct *call_data);
92static void preedit_caret_callback(XIC xic,
93 XPointer client_data,
94 XIMPreeditCaretCallbackStruct *call_data);
85static XVaNestedList preedit_callback_set(Ecore_IMF_Context *ctx); 95static XVaNestedList preedit_callback_set(Ecore_IMF_Context *ctx);
86static XIC get_ic(Ecore_IMF_Context *ctx); 96static XIC get_ic(Ecore_IMF_Context *ctx);
87static XIM_Im_Info *get_im(Ecore_X_Window window, 97static XIM_Im_Info *get_im(Ecore_X_Window window,
88 char *locale); 98 char *locale);
89static void xim_info_try_im(XIM_Im_Info *info); 99static void xim_info_try_im(XIM_Im_Info *info);
90static void xim_info_display_closed(Ecore_X_Display *display, 100static void xim_info_display_closed(Ecore_X_Display *display,
91 int is_error, 101 int is_error,
92 XIM_Im_Info *info); 102 XIM_Im_Info *info);
93static void xim_instantiate_callback(Display *display, 103static void xim_instantiate_callback(Display *display,
94 XPointer client_data, 104 XPointer client_data,
95 XPointer call_data); 105 XPointer call_data);
96static void setup_im(XIM_Im_Info *info); 106static void setup_im(XIM_Im_Info *info);
97static void xim_destroy_callback(XIM xim, 107static void xim_destroy_callback(XIM xim,
98 XPointer client_data, 108 XPointer client_data,
99 XPointer call_data); 109 XPointer call_data);
110#endif
111
112#ifdef ENABLE_XIM
113static unsigned int
114utf8_offset_to_index(const char *str, int offset)
115{
116 int index = 0;
117 int i;
118 for (i = 0; i < offset; i++)
119 {
120 eina_unicode_utf8_get_next(str, &index);
121 }
122
123 return index;
124}
125
100#endif 126#endif
101 127
102static void 128static void
@@ -107,7 +133,7 @@ _ecore_imf_context_xim_add(Ecore_IMF_Context *ctx)
107 Ecore_IMF_Context_Data *imf_context_data = NULL; 133 Ecore_IMF_Context_Data *imf_context_data = NULL;
108 134
109 imf_context_data = imf_context_data_new(); 135 imf_context_data = imf_context_data_new();
110 if(!imf_context_data) return; 136 if (!imf_context_data) return;
111 137
112 imf_context_data->use_preedit = EINA_TRUE; 138 imf_context_data->use_preedit = EINA_TRUE;
113 imf_context_data->finalizing = EINA_FALSE; 139 imf_context_data->finalizing = EINA_FALSE;
@@ -115,6 +141,8 @@ _ecore_imf_context_xim_add(Ecore_IMF_Context *ctx)
115 imf_context_data->in_toplevel = EINA_FALSE; 141 imf_context_data->in_toplevel = EINA_FALSE;
116 142
117 ecore_imf_context_data_set(ctx, imf_context_data); 143 ecore_imf_context_data_set(ctx, imf_context_data);
144#else
145 (void)ctx;
118#endif 146#endif
119} 147}
120 148
@@ -127,48 +155,53 @@ _ecore_imf_context_xim_del(Ecore_IMF_Context *ctx)
127 imf_context_data = ecore_imf_context_data_get(ctx); 155 imf_context_data = ecore_imf_context_data_get(ctx);
128 156
129 imf_context_data->finalizing = EINA_TRUE; 157 imf_context_data->finalizing = EINA_TRUE;
130 if(imf_context_data->im_info && !imf_context_data->im_info->ics->next) 158 if (imf_context_data->im_info && !imf_context_data->im_info->ics->next)
131 { 159 {
132 if(imf_context_data->im_info->reconnecting == EINA_TRUE) 160 if (imf_context_data->im_info->reconnecting == EINA_TRUE)
133 { 161 {
134 Ecore_X_Display *dsp; 162 Ecore_X_Display *dsp;
135 dsp = ecore_x_display_get(); 163 dsp = ecore_x_display_get();
136 XUnregisterIMInstantiateCallback (dsp, 164 XUnregisterIMInstantiateCallback(dsp,
137 NULL, NULL, NULL, 165 NULL, NULL, NULL,
138 xim_instantiate_callback, 166 xim_instantiate_callback,
139 (XPointer)imf_context_data->im_info); 167 (XPointer)imf_context_data->im_info);
140 } 168 }
141 else if(imf_context_data->im_info->im) 169 else if (imf_context_data->im_info->im)
142 { 170 {
143 XIMCallback im_destroy_callback; 171 XIMCallback im_destroy_callback;
144 im_destroy_callback.client_data = NULL; 172 im_destroy_callback.client_data = NULL;
145 im_destroy_callback.callback = NULL; 173 im_destroy_callback.callback = NULL;
146 XSetIMValues (imf_context_data->im_info->im, 174 XSetIMValues(imf_context_data->im_info->im,
147 XNDestroyCallback, &im_destroy_callback, 175 XNDestroyCallback, &im_destroy_callback,
148 NULL); 176 NULL);
149 } 177 }
150 } 178 }
151 179
152 set_ic_client_window(ctx, 0); 180 set_ic_client_window(ctx, 0);
153 181
154 imf_context_data_destroy(imf_context_data); 182 imf_context_data_destroy(imf_context_data);
183#else
184 (void)ctx;
155#endif 185#endif
156} 186}
157 187
158static void 188static void
159_ecore_imf_context_xim_client_window_set(Ecore_IMF_Context *ctx, 189_ecore_imf_context_xim_client_window_set(Ecore_IMF_Context *ctx,
160 void *window) 190 void *window)
161{ 191{
162 EINA_LOG_DBG("in"); 192 EINA_LOG_DBG("in");
163#ifdef ENABLE_XIM 193#ifdef ENABLE_XIM
164 set_ic_client_window(ctx, (Ecore_X_Window)((Ecore_Window)window)); 194 set_ic_client_window(ctx, (Ecore_X_Window)((Ecore_Window)window));
195#else
196 (void)ctx;
197 (void)window;
165#endif 198#endif
166} 199}
167 200
168static void 201static void
169_ecore_imf_context_xim_preedit_string_get(Ecore_IMF_Context *ctx, 202_ecore_imf_context_xim_preedit_string_get(Ecore_IMF_Context *ctx,
170 char **str, 203 char **str,
171 int *cursor_pos) 204 int *cursor_pos)
172{ 205{
173 EINA_LOG_DBG("in"); 206 EINA_LOG_DBG("in");
174#ifdef ENABLE_XIM 207#ifdef ENABLE_XIM
@@ -180,25 +213,73 @@ _ecore_imf_context_xim_preedit_string_get(Ecore_IMF_Context *ctx,
180 { 213 {
181 utf8 = eina_unicode_unicode_to_utf8(imf_context_data->preedit_chars, 214 utf8 = eina_unicode_unicode_to_utf8(imf_context_data->preedit_chars,
182 &len); 215 &len);
183 if(str) 216 if (str)
184 *str = utf8; 217 *str = utf8;
185 else 218 else
186 free(utf8); 219 free(utf8);
187 } 220 }
188 else 221 else
189 { 222 {
190 if(str) 223 if (str)
191 *str = NULL; 224 *str = NULL;
192 if(cursor_pos) 225 if (cursor_pos)
193 *cursor_pos = 0; 226 *cursor_pos = 0;
194 } 227 }
195 228
196 if(cursor_pos) 229 if (cursor_pos)
197 *cursor_pos = imf_context_data->preedit_cursor; 230 *cursor_pos = imf_context_data->preedit_cursor;
198#else 231#else
199 if(str) 232 (void)ctx;
233 if (str)
234 *str = NULL;
235 if (cursor_pos)
236 *cursor_pos = 0;
237#endif
238}
239
240static void
241_ecore_imf_context_xim_preedit_string_with_attributes_get(Ecore_IMF_Context *ctx,
242 char **str,
243 Eina_List **attrs,
244 int *cursor_pos)
245{
246 EINA_LOG_DBG("in");
247
248#ifdef ENABLE_XIM
249 Ecore_IMF_Context_Data *imf_context_data = ecore_imf_context_data_get(ctx);
250
251 _ecore_imf_context_xim_preedit_string_get(ctx, str, cursor_pos);
252
253 if (!attrs) return;
254 if (!imf_context_data || !imf_context_data->feedbacks) return;
255
256 int i = 0;
257 XIMFeedback last_feedback = 0;
258 int start = -1;
259
260 for (i = 0; i < imf_context_data->preedit_length; i++)
261 {
262 XIMFeedback new_feedback = imf_context_data->feedbacks[i] & FEEDBACK_MASK;
263
264 if (new_feedback != last_feedback)
265 {
266 if (start >= 0)
267 add_feedback_attr(attrs, *str, last_feedback, start, i);
268
269 last_feedback = new_feedback;
270 start = i;
271 }
272 }
273
274 if (start >= 0)
275 add_feedback_attr(attrs, *str, last_feedback, start, i);
276#else
277 (void)ctx;
278 if (str)
200 *str = NULL; 279 *str = NULL;
201 if(cursor_pos) 280 if (attrs)
281 *attrs = NULL;
282 if (cursor_pos)
202 *cursor_pos = 0; 283 *cursor_pos = 0;
203#endif 284#endif
204} 285}
@@ -213,7 +294,7 @@ _ecore_imf_context_xim_focus_in(Ecore_IMF_Context *ctx)
213 imf_context_data = ecore_imf_context_data_get(ctx); 294 imf_context_data = ecore_imf_context_data_get(ctx);
214 ic = imf_context_data->ic; 295 ic = imf_context_data->ic;
215 imf_context_data->has_focus = EINA_TRUE; 296 imf_context_data->has_focus = EINA_TRUE;
216 if(ic) 297 if (ic)
217 { 298 {
218 char *str; 299 char *str;
219 300
@@ -226,6 +307,8 @@ _ecore_imf_context_xim_focus_in(Ecore_IMF_Context *ctx)
226 307
227 XSetICFocus(ic); 308 XSetICFocus(ic);
228 } 309 }
310#else
311 (void)ctx;
229#endif 312#endif
230} 313}
231 314
@@ -237,13 +320,15 @@ _ecore_imf_context_xim_focus_out(Ecore_IMF_Context *ctx)
237 XIC ic; 320 XIC ic;
238 Ecore_IMF_Context_Data *imf_context_data; 321 Ecore_IMF_Context_Data *imf_context_data;
239 imf_context_data = ecore_imf_context_data_get(ctx); 322 imf_context_data = ecore_imf_context_data_get(ctx);
240 if(imf_context_data->has_focus == EINA_TRUE) 323 if (imf_context_data->has_focus == EINA_TRUE)
241 { 324 {
242 imf_context_data->has_focus = EINA_FALSE; 325 imf_context_data->has_focus = EINA_FALSE;
243 ic = imf_context_data->ic; 326 ic = imf_context_data->ic;
244 if(ic) 327 if (ic)
245 XUnsetICFocus(ic); 328 XUnsetICFocus(ic);
246 } 329 }
330#else
331 (void)ctx;
247#endif 332#endif
248} 333}
249 334
@@ -263,18 +348,18 @@ _ecore_imf_context_xim_reset(Ecore_IMF_Context *ctx)
263 348
264 imf_context_data = ecore_imf_context_data_get(ctx); 349 imf_context_data = ecore_imf_context_data_get(ctx);
265 ic = imf_context_data->ic; 350 ic = imf_context_data->ic;
266 if(!ic) 351 if (!ic)
267 return; 352 return;
268 353
269 if(imf_context_data->preedit_length == 0) 354 if (imf_context_data->preedit_length == 0)
270 return; 355 return;
271 356
272 preedit_attr = XVaCreateNestedList(0, 357 preedit_attr = XVaCreateNestedList(0,
273 XNPreeditState, &preedit_state, 358 XNPreeditState, &preedit_state,
274 NULL); 359 NULL);
275 if(!XGetICValues(ic, 360 if (!XGetICValues(ic,
276 XNPreeditAttributes, preedit_attr, 361 XNPreeditAttributes, preedit_attr,
277 NULL)) 362 NULL))
278 have_preedit_state = EINA_TRUE; 363 have_preedit_state = EINA_TRUE;
279 364
280 XFree(preedit_attr); 365 XFree(preedit_attr);
@@ -284,38 +369,49 @@ _ecore_imf_context_xim_reset(Ecore_IMF_Context *ctx)
284 preedit_attr = XVaCreateNestedList(0, 369 preedit_attr = XVaCreateNestedList(0,
285 XNPreeditState, preedit_state, 370 XNPreeditState, preedit_state,
286 NULL); 371 NULL);
287 if(have_preedit_state) 372 if (have_preedit_state)
288 XSetICValues(ic, 373 XSetICValues(ic,
289 XNPreeditAttributes, preedit_attr, 374 XNPreeditAttributes, preedit_attr,
290 NULL); 375 NULL);
291 376
292 XFree(preedit_attr); 377 XFree(preedit_attr);
293 378
294 if(imf_context_data->preedit_length) 379 if (imf_context_data->feedbacks)
380 {
381 free(imf_context_data->feedbacks);
382 imf_context_data->feedbacks = NULL;
383 }
384
385 if (imf_context_data->preedit_length)
295 { 386 {
296 imf_context_data->preedit_length = 0; 387 imf_context_data->preedit_length = 0;
297 free(imf_context_data->preedit_chars); 388 free(imf_context_data->preedit_chars);
298 imf_context_data->preedit_chars = NULL; 389 imf_context_data->preedit_chars = NULL;
390
299 ecore_imf_context_preedit_changed_event_add(ctx); 391 ecore_imf_context_preedit_changed_event_add(ctx);
392 ecore_imf_context_event_callback_call(ctx, ECORE_IMF_CALLBACK_PREEDIT_CHANGED, NULL);
300 } 393 }
301 394
302 if(result) 395 if (result)
303 { 396 {
304 char *result_utf8 = strdup(result); 397 char *result_utf8 = strdup(result);
305 if(result_utf8) 398 if (result_utf8)
306 { 399 {
307 ecore_imf_context_commit_event_add(ctx, result_utf8); 400 ecore_imf_context_commit_event_add(ctx, result_utf8);
308 free(result_utf8); 401 ecore_imf_context_event_callback_call(ctx, ECORE_IMF_CALLBACK_COMMIT, result_utf8);
309 } 402 free(result_utf8);
403 }
310 } 404 }
311 405
312 XFree (result); 406 XFree(result);
407#else
408 (void)ctx;
313#endif 409#endif
314} 410}
315 411
316static void 412static void
317_ecore_imf_context_xim_use_preedit_set(Ecore_IMF_Context *ctx, 413_ecore_imf_context_xim_use_preedit_set(Ecore_IMF_Context *ctx,
318 Eina_Bool use_preedit) 414 Eina_Bool use_preedit)
319{ 415{
320 EINA_LOG_DBG("in"); 416 EINA_LOG_DBG("in");
321#ifdef ENABLE_XIM 417#ifdef ENABLE_XIM
@@ -324,17 +420,53 @@ _ecore_imf_context_xim_use_preedit_set(Ecore_IMF_Context *ctx,
324 420
325 use_preedit = use_preedit != EINA_FALSE; 421 use_preedit = use_preedit != EINA_FALSE;
326 422
327 if(imf_context_data->use_preedit != use_preedit) 423 if (imf_context_data->use_preedit != use_preedit)
328 { 424 {
329 imf_context_data->use_preedit = use_preedit; 425 imf_context_data->use_preedit = use_preedit;
330 reinitialize_ic(ctx); 426 reinitialize_ic(ctx);
331 } 427 }
428#else
429 (void)ctx;
430 (void)use_preedit;
332#endif 431#endif
333} 432}
334 433
434#ifdef ENABLE_XIM
435static void
436add_feedback_attr(Eina_List **attrs,
437 const char *str,
438 XIMFeedback feedback,
439 int start_pos,
440 int end_pos)
441{
442 Ecore_IMF_Preedit_Attr *attr = NULL;
443
444 unsigned int start_index = utf8_offset_to_index(str, start_pos);
445 unsigned int end_index = utf8_offset_to_index(str, end_pos);
446
447 if (feedback & FEEDBACK_MASK)
448 {
449 attr = (Ecore_IMF_Preedit_Attr *)calloc(1, sizeof(Ecore_IMF_Preedit_Attr));
450 attr->start_index = start_index;
451 attr->end_index = end_index;
452 *attrs = eina_list_append(*attrs, (void *)attr);
453 }
454
455 if (feedback & XIMUnderline)
456 attr->preedit_type = ECORE_IMF_PREEDIT_TYPE_SUB1;
457
458 if (feedback & XIMReverse)
459 attr->preedit_type = ECORE_IMF_PREEDIT_TYPE_SUB2;
460
461 if (feedback & XIMHighlight)
462 attr->preedit_type = ECORE_IMF_PREEDIT_TYPE_SUB3;
463}
464
465#endif
466
335static void 467static void
336_ecore_imf_context_xim_cursor_location_set (Ecore_IMF_Context *ctx, 468_ecore_imf_context_xim_cursor_location_set(Ecore_IMF_Context *ctx,
337 int x, int y, int w, int h) 469 int x, int y, int w, int h)
338{ 470{
339 EINA_LOG_DBG("%s in", __FUNCTION__); 471 EINA_LOG_DBG("%s in", __FUNCTION__);
340 472
@@ -342,7 +474,7 @@ _ecore_imf_context_xim_cursor_location_set (Ecore_IMF_Context *ctx,
342 Ecore_IMF_Context_Data *imf_context_data; 474 Ecore_IMF_Context_Data *imf_context_data;
343 XIC ic; 475 XIC ic;
344 XVaNestedList preedit_attr; 476 XVaNestedList preedit_attr;
345 XPoint spot; 477 XPoint spot;
346 478
347 imf_context_data = ecore_imf_context_data_get(ctx); 479 imf_context_data = ecore_imf_context_data_get(ctx);
348 ic = imf_context_data->ic; 480 ic = imf_context_data->ic;
@@ -351,15 +483,20 @@ _ecore_imf_context_xim_cursor_location_set (Ecore_IMF_Context *ctx,
351 483
352 spot.x = x; 484 spot.x = x;
353 spot.y = y + h; 485 spot.y = y + h;
354 486
355 preedit_attr = XVaCreateNestedList (0, 487 preedit_attr = XVaCreateNestedList(0,
356 XNSpotLocation, &spot, 488 XNSpotLocation, &spot,
357 NULL); 489 NULL);
358 XSetICValues (ic, 490 XSetICValues(ic,
359 XNPreeditAttributes, preedit_attr, 491 XNPreeditAttributes, preedit_attr,
360 NULL); 492 NULL);
361 493
362 XFree(preedit_attr); 494 XFree(preedit_attr);
495#else
496 (void)ctx;
497 (void)x;
498 (void)y;
499 (void)h;
363#endif 500#endif
364 (void)(w); // yes w is unused, but only a bi-product of the algorithm 501 (void)(w); // yes w is unused, but only a bi-product of the algorithm
365} 502}
@@ -371,19 +508,19 @@ _ecore_x_event_reverse_modifiers(unsigned int state)
371 unsigned int modifiers = 0; 508 unsigned int modifiers = 0;
372 509
373 /**< "Control" is pressed */ 510 /**< "Control" is pressed */
374 if(state & ECORE_IMF_KEYBOARD_MODIFIER_CTRL) 511 if (state & ECORE_IMF_KEYBOARD_MODIFIER_CTRL)
375 modifiers |= ControlMask; 512 modifiers |= ControlMask;
376 513
377 /**< "Alt" is pressed */ 514 /**< "Alt" is pressed */
378 if(state & ECORE_IMF_KEYBOARD_MODIFIER_ALT) 515 if (state & ECORE_IMF_KEYBOARD_MODIFIER_ALT)
379 modifiers |= Mod1Mask; 516 modifiers |= Mod1Mask;
380 517
381 /**< "Shift" is pressed */ 518 /**< "Shift" is pressed */
382 if(state & ECORE_IMF_KEYBOARD_MODIFIER_SHIFT) 519 if (state & ECORE_IMF_KEYBOARD_MODIFIER_SHIFT)
383 modifiers |= ShiftMask; 520 modifiers |= ShiftMask;
384 521
385 /**< "Win" (between "Ctrl" and "A */ 522 /**< "Win" (between "Ctrl" and "A */
386 if(state & ECORE_IMF_KEYBOARD_MODIFIER_WIN) 523 if (state & ECORE_IMF_KEYBOARD_MODIFIER_WIN)
387 modifiers |= Mod5Mask; 524 modifiers |= Mod5Mask;
388 525
389 return modifiers; 526 return modifiers;
@@ -395,14 +532,14 @@ _ecore_x_event_reverse_locks(unsigned int state)
395 unsigned int locks = 0; 532 unsigned int locks = 0;
396 533
397 /**< "Num" lock is active */ 534 /**< "Num" lock is active */
398 if(state & ECORE_IMF_KEYBOARD_LOCK_NUM) 535 if (state & ECORE_IMF_KEYBOARD_LOCK_NUM)
399 locks |= Mod3Mask; 536 locks |= Mod3Mask;
400 537
401 if(state & ECORE_IMF_KEYBOARD_LOCK_CAPS) 538 if (state & ECORE_IMF_KEYBOARD_LOCK_CAPS)
402 locks |= LockMask; 539 locks |= LockMask;
403 540
404#if 0 /* FIXME: add mask. */ 541#if 0 /* FIXME: add mask. */
405 if(state & ECORE_IMF_KEYBOARD_LOCK_SCROLL) 542 if (state & ECORE_IMF_KEYBOARD_LOCK_SCROLL)
406 ; 543 ;
407#endif 544#endif
408 545
@@ -411,12 +548,12 @@ _ecore_x_event_reverse_locks(unsigned int state)
411 548
412static KeyCode 549static KeyCode
413_keycode_get(Ecore_X_Display *dsp, 550_keycode_get(Ecore_X_Display *dsp,
414 const char *keyname) 551 const char *keyname)
415{ 552{
416 KeyCode keycode; 553 KeyCode keycode;
417 554
418 // EINA_LOG_DBG("keyname:%s keysym:%lu", keyname, XStringToKeysym(keyname)); 555 // EINA_LOG_DBG("keyname:%s keysym:%lu", keyname, XStringToKeysym(keyname));
419 if(strcmp(keyname, "Keycode-0") == 0) 556 if (strcmp(keyname, "Keycode-0") == 0)
420 { 557 {
421 keycode = 0; 558 keycode = 0;
422 } 559 }
@@ -430,9 +567,9 @@ _keycode_get(Ecore_X_Display *dsp,
430#endif 567#endif
431 568
432static Eina_Bool 569static Eina_Bool
433_ecore_imf_context_xim_filter_event(Ecore_IMF_Context *ctx, 570_ecore_imf_context_xim_filter_event(Ecore_IMF_Context *ctx,
434 Ecore_IMF_Event_Type type, 571 Ecore_IMF_Event_Type type,
435 Ecore_IMF_Event *event) 572 Ecore_IMF_Event *event)
436{ 573{
437 EINA_LOG_DBG("%s in", __FUNCTION__); 574 EINA_LOG_DBG("%s in", __FUNCTION__);
438#ifdef ENABLE_XIM 575#ifdef ENABLE_XIM
@@ -451,12 +588,12 @@ _ecore_imf_context_xim_filter_event(Ecore_IMF_Context *ctx,
451 588
452 imf_context_data = ecore_imf_context_data_get(ctx); 589 imf_context_data = ecore_imf_context_data_get(ctx);
453 ic = imf_context_data->ic; 590 ic = imf_context_data->ic;
454 if(!ic) 591 if (!ic)
455 { 592 {
456 ic = get_ic(ctx); 593 ic = get_ic(ctx);
457 } 594 }
458 595
459 if(type == ECORE_IMF_EVENT_KEY_DOWN) 596 if (type == ECORE_IMF_EVENT_KEY_DOWN)
460 { 597 {
461 XKeyPressedEvent xev; 598 XKeyPressedEvent xev;
462 Ecore_IMF_Event_Key_Down *ev = (Ecore_IMF_Event_Key_Down *)event; 599 Ecore_IMF_Event_Key_Down *ev = (Ecore_IMF_Event_Key_Down *)event;
@@ -481,7 +618,7 @@ _ecore_imf_context_xim_filter_event(Ecore_IMF_Context *ctx,
481 xev.keycode = _keycode_get(dsp, ev->keyname); 618 xev.keycode = _keycode_get(dsp, ev->keyname);
482 xev.same_screen = True; 619 xev.same_screen = True;
483 620
484 if(ic) 621 if (ic)
485 { 622 {
486 Status mbstatus; 623 Status mbstatus;
487#ifdef X_HAVE_UTF8_STRING 624#ifdef X_HAVE_UTF8_STRING
@@ -563,15 +700,16 @@ _ecore_imf_context_xim_filter_event(Ecore_IMF_Context *ctx,
563 } 700 }
564 } 701 }
565 702
566 if(compose) 703 if (compose)
567 { 704 {
568 Eina_Unicode *unicode; 705 Eina_Unicode *unicode;
569 int len; 706 int len;
570 unicode = eina_unicode_utf8_to_unicode(compose, &len); 707 unicode = eina_unicode_utf8_to_unicode(compose, &len);
571 if(!unicode) abort(); 708 if (!unicode) abort();
572 if(unicode[0] >= 0x20 && unicode[0] != 0x7f) 709 if (unicode[0] >= 0x20 && unicode[0] != 0x7f)
573 { 710 {
574 ecore_imf_context_commit_event_add(ctx, compose); 711 ecore_imf_context_commit_event_add(ctx, compose);
712 ecore_imf_context_event_callback_call(ctx, ECORE_IMF_CALLBACK_COMMIT, compose);
575 result = EINA_TRUE; 713 result = EINA_TRUE;
576 } 714 }
577 free(compose); 715 free(compose);
@@ -581,6 +719,9 @@ _ecore_imf_context_xim_filter_event(Ecore_IMF_Context *ctx,
581 719
582 return result; 720 return result;
583#else 721#else
722 (void)ctx;
723 (void)type;
724 (void)event;
584 return EINA_FALSE; 725 return EINA_FALSE;
585#endif 726#endif
586} 727}
@@ -608,7 +749,7 @@ static Ecore_IMF_Context_Class xim_class = {
608 .use_preedit_set = _ecore_imf_context_xim_use_preedit_set, 749 .use_preedit_set = _ecore_imf_context_xim_use_preedit_set,
609 .input_mode_set = NULL, 750 .input_mode_set = NULL,
610 .filter_event = _ecore_imf_context_xim_filter_event, 751 .filter_event = _ecore_imf_context_xim_filter_event,
611 .preedit_string_with_attributes_get = NULL, 752 .preedit_string_with_attributes_get = _ecore_imf_context_xim_preedit_string_with_attributes_get,
612 .prediction_allow_set = NULL, 753 .prediction_allow_set = NULL,
613 .autocapital_type_set = NULL, 754 .autocapital_type_set = NULL,
614 .control_panel_show = NULL, 755 .control_panel_show = NULL,
@@ -627,7 +768,7 @@ xim_imf_module_create(void)
627 Ecore_IMF_Context *ctx = NULL; 768 Ecore_IMF_Context *ctx = NULL;
628 769
629 ctx = ecore_imf_context_new(&xim_class); 770 ctx = ecore_imf_context_new(&xim_class);
630 if(!ctx) 771 if (!ctx)
631 goto error; 772 goto error;
632 773
633 return ctx; 774 return ctx;
@@ -686,15 +827,15 @@ imf_context_data_new()
686 char *locale; 827 char *locale;
687 828
688 locale = setlocale(LC_CTYPE, ""); 829 locale = setlocale(LC_CTYPE, "");
689 if(!locale) return NULL; 830 if (!locale) return NULL;
690 831
691 if(!XSupportsLocale()) return NULL; 832 if (!XSupportsLocale()) return NULL;
692 833
693 imf_context_data = calloc(1, sizeof(Ecore_IMF_Context_Data)); 834 imf_context_data = calloc(1, sizeof(Ecore_IMF_Context_Data));
694 if(!imf_context_data) return NULL; 835 if (!imf_context_data) return NULL;
695 836
696 imf_context_data->locale = strdup(locale); 837 imf_context_data->locale = strdup(locale);
697 if(!imf_context_data->locale) goto error; 838 if (!imf_context_data->locale) goto error;
698 839
699 return imf_context_data; 840 return imf_context_data;
700error: 841error:
@@ -705,19 +846,26 @@ error:
705void 846void
706imf_context_data_destroy(Ecore_IMF_Context_Data *imf_context_data) 847imf_context_data_destroy(Ecore_IMF_Context_Data *imf_context_data)
707{ 848{
708 if(!imf_context_data) 849 if (!imf_context_data)
709 return; 850 return;
710 851
711 if(imf_context_data->ic) 852 if (imf_context_data->ic)
712 XDestroyIC(imf_context_data->ic); 853 XDestroyIC(imf_context_data->ic);
713 854
714 free(imf_context_data->preedit_chars); 855 free(imf_context_data->preedit_chars);
856
857 if (imf_context_data->feedbacks)
858 {
859 free(imf_context_data->feedbacks);
860 imf_context_data->feedbacks = NULL;
861 }
862
715 free(imf_context_data->locale); 863 free(imf_context_data->locale);
716 free(imf_context_data); 864 free(imf_context_data);
717} 865}
718 866
719static int 867static int
720preedit_start_callback(XIC xic __UNUSED__, 868preedit_start_callback(XIC xic __UNUSED__,
721 XPointer client_data, 869 XPointer client_data,
722 XPointer call_data __UNUSED__) 870 XPointer call_data __UNUSED__)
723{ 871{
@@ -726,14 +874,16 @@ preedit_start_callback(XIC xic __UNUSED__,
726 Ecore_IMF_Context_Data *imf_context_data; 874 Ecore_IMF_Context_Data *imf_context_data;
727 imf_context_data = ecore_imf_context_data_get(ctx); 875 imf_context_data = ecore_imf_context_data_get(ctx);
728 876
729 if(imf_context_data->finalizing == EINA_FALSE) 877 if (imf_context_data->finalizing == EINA_FALSE)
730 ecore_imf_context_preedit_start_event_add(ctx); 878 {
731 879 ecore_imf_context_preedit_start_event_add(ctx);
880 ecore_imf_context_event_callback_call(ctx, ECORE_IMF_CALLBACK_PREEDIT_START, NULL);
881 }
732 return -1; 882 return -1;
733} 883}
734 884
735static void 885static void
736preedit_done_callback(XIC xic __UNUSED__, 886preedit_done_callback(XIC xic __UNUSED__,
737 XPointer client_data, 887 XPointer client_data,
738 XPointer call_data __UNUSED__) 888 XPointer call_data __UNUSED__)
739{ 889{
@@ -742,30 +892,34 @@ preedit_done_callback(XIC xic __UNUSED__,
742 Ecore_IMF_Context_Data *imf_context_data; 892 Ecore_IMF_Context_Data *imf_context_data;
743 imf_context_data = ecore_imf_context_data_get(ctx); 893 imf_context_data = ecore_imf_context_data_get(ctx);
744 894
745 if(imf_context_data->preedit_length) 895 if (imf_context_data->preedit_length)
746 { 896 {
747 imf_context_data->preedit_length = 0; 897 imf_context_data->preedit_length = 0;
748 free(imf_context_data->preedit_chars); 898 free(imf_context_data->preedit_chars);
749 imf_context_data->preedit_chars = NULL; 899 imf_context_data->preedit_chars = NULL;
750 ecore_imf_context_preedit_changed_event_add(ctx); 900 ecore_imf_context_preedit_changed_event_add(ctx);
901 ecore_imf_context_event_callback_call(ctx, ECORE_IMF_CALLBACK_PREEDIT_CHANGED, NULL);
751 } 902 }
752 903
753 if(imf_context_data->finalizing == EINA_FALSE) 904 if (imf_context_data->finalizing == EINA_FALSE)
754 ecore_imf_context_preedit_end_event_add(ctx); 905 {
906 ecore_imf_context_preedit_end_event_add(ctx);
907 ecore_imf_context_event_callback_call(ctx, ECORE_IMF_CALLBACK_PREEDIT_END, NULL);
908 }
755} 909}
756 910
757/* FIXME */ 911/* FIXME */
758static int 912static int
759xim_text_to_utf8(Ecore_IMF_Context *ctx __UNUSED__, 913xim_text_to_utf8(Ecore_IMF_Context *ctx __UNUSED__,
760 XIMText *xim_text, 914 XIMText *xim_text,
761 char **text) 915 char **text)
762{ 916{
763 int text_length = 0; 917 int text_length = 0;
764 char *result = NULL; 918 char *result = NULL;
765 919
766 if(xim_text && xim_text->string.multi_byte) 920 if (xim_text && xim_text->string.multi_byte)
767 { 921 {
768 if(xim_text->encoding_is_wchar) 922 if (xim_text->encoding_is_wchar)
769 { 923 {
770 EINA_LOG_WARN("Wide character return from Xlib not currently supported"); 924 EINA_LOG_WARN("Wide character return from Xlib not currently supported");
771 *text = NULL; 925 *text = NULL;
@@ -774,7 +928,7 @@ xim_text_to_utf8(Ecore_IMF_Context *ctx __UNUSED__,
774 928
775 /* XXX Convert to UTF-8 */ 929 /* XXX Convert to UTF-8 */
776 result = strdup(xim_text->string.multi_byte); 930 result = strdup(xim_text->string.multi_byte);
777 if(result) 931 if (result)
778 { 932 {
779 text_length = eina_unicode_utf8_get_len(result); 933 text_length = eina_unicode_utf8_get_len(result);
780 if (text_length != xim_text->length) 934 if (text_length != xim_text->length)
@@ -798,8 +952,8 @@ xim_text_to_utf8(Ecore_IMF_Context *ctx __UNUSED__,
798} 952}
799 953
800static void 954static void
801preedit_draw_callback(XIC xic __UNUSED__, 955preedit_draw_callback(XIC xic __UNUSED__,
802 XPointer client_data, 956 XPointer client_data,
803 XIMPreeditDrawCallbackStruct *call_data) 957 XIMPreeditDrawCallbackStruct *call_data)
804{ 958{
805 EINA_LOG_DBG("in"); 959 EINA_LOG_DBG("in");
@@ -811,59 +965,83 @@ preedit_draw_callback(XIC xic __UNUSED__,
811 Eina_Unicode *new_text = NULL; 965 Eina_Unicode *new_text = NULL;
812 Eina_UStrbuf *preedit_bufs = NULL; 966 Eina_UStrbuf *preedit_bufs = NULL;
813 int new_text_length; 967 int new_text_length;
968 int i = 0;
814 969
815 preedit_bufs = eina_ustrbuf_new(); 970 preedit_bufs = eina_ustrbuf_new();
816 if(imf_context_data->preedit_chars) { 971 if (imf_context_data->preedit_chars)
817 ret = eina_ustrbuf_append(preedit_bufs, imf_context_data->preedit_chars); 972 {
818 if(ret == EINA_FALSE) goto done; 973 ret = eina_ustrbuf_append(preedit_bufs, imf_context_data->preedit_chars);
819 } 974 if (ret == EINA_FALSE) goto done;
975 }
820 976
821 new_text_length = xim_text_to_utf8(ctx, t, &tmp); 977 new_text_length = xim_text_to_utf8(ctx, t, &tmp);
822 if(tmp) 978 if (tmp)
823 { 979 {
824 int tmp_len; 980 int tmp_len;
825 new_text = eina_unicode_utf8_to_unicode((const char *)tmp, &tmp_len); 981 new_text = eina_unicode_utf8_to_unicode((const char *)tmp, &tmp_len);
826 free(tmp); 982 free(tmp);
827 } 983 }
828 984
829 if(t == NULL) { 985 if (t == NULL)
830 /* delete string */ 986 {
831 ret = eina_ustrbuf_remove(preedit_bufs, 987 /* delete string */
832 call_data->chg_first, call_data->chg_length); 988 ret = eina_ustrbuf_remove(preedit_bufs,
833 } else if(call_data->chg_length == 0) { 989 call_data->chg_first, call_data->chg_length);
834 /* insert string */ 990 }
835 ret = eina_ustrbuf_insert(preedit_bufs, new_text, call_data->chg_first); 991 else if (call_data->chg_length == 0)
836 } else if(call_data->chg_length > 0) { 992 {
837 /* replace string */ 993 /* insert string */
838 ret = eina_ustrbuf_remove(preedit_bufs, 994 ret = eina_ustrbuf_insert(preedit_bufs, new_text, call_data->chg_first);
839 call_data->chg_first, call_data->chg_length); 995 }
840 if(ret == EINA_FALSE) goto done; 996 else if (call_data->chg_length > 0)
841 997 {
842 ret = eina_ustrbuf_insert_n(preedit_bufs, new_text, 998 /* replace string */
843 new_text_length, call_data->chg_first); 999 ret = eina_ustrbuf_remove(preedit_bufs,
844 if(ret == EINA_FALSE) goto done; 1000 call_data->chg_first, call_data->chg_length);
845 } else { 1001 if (ret == EINA_FALSE) goto done;
846 ret = EINA_FALSE; 1002
847 } 1003 ret = eina_ustrbuf_insert_n(preedit_bufs, new_text,
848 1004 new_text_length, call_data->chg_first);
849 done: 1005 if (ret == EINA_FALSE) goto done;
850 if(ret == EINA_TRUE) { 1006 }
851 free(imf_context_data->preedit_chars); 1007 else {
852 imf_context_data->preedit_chars = 1008 ret = EINA_FALSE;
1009 }
1010
1011done:
1012 if (ret == EINA_TRUE)
1013 {
1014 free(imf_context_data->preedit_chars);
1015 imf_context_data->preedit_chars =
853 eina_ustrbuf_string_steal(preedit_bufs); 1016 eina_ustrbuf_string_steal(preedit_bufs);
854 imf_context_data->preedit_length = 1017 imf_context_data->preedit_length =
855 eina_unicode_strlen(imf_context_data->preedit_chars); 1018 eina_unicode_strlen(imf_context_data->preedit_chars);
856 1019
857 ecore_imf_context_preedit_changed_event_add(ctx); 1020 if (imf_context_data->feedbacks)
858 } 1021 {
1022 free(imf_context_data->feedbacks);
1023 imf_context_data->feedbacks = NULL;
1024 }
1025
1026 if (imf_context_data->preedit_length > 0)
1027 {
1028 imf_context_data->feedbacks = calloc(imf_context_data->preedit_length, sizeof(XIMFeedback));
1029
1030 for (i = 0; i < imf_context_data->preedit_length; i++)
1031 imf_context_data->feedbacks[i] = t->feedback[i];
1032 }
1033
1034 ecore_imf_context_preedit_changed_event_add(ctx);
1035 ecore_imf_context_event_callback_call(ctx, ECORE_IMF_CALLBACK_PREEDIT_CHANGED, NULL);
1036 }
859 1037
860 free(new_text); 1038 free(new_text);
861 eina_ustrbuf_free(preedit_bufs); 1039 eina_ustrbuf_free(preedit_bufs);
862} 1040}
863 1041
864static void 1042static void
865preedit_caret_callback(XIC xic __UNUSED__, 1043preedit_caret_callback(XIC xic __UNUSED__,
866 XPointer client_data, 1044 XPointer client_data,
867 XIMPreeditCaretCallbackStruct *call_data) 1045 XIMPreeditCaretCallbackStruct *call_data)
868{ 1046{
869 EINA_LOG_DBG("in"); 1047 EINA_LOG_DBG("in");
@@ -871,12 +1049,15 @@ preedit_caret_callback(XIC xic __UNUSED__,
871 Ecore_IMF_Context_Data *imf_context_data; 1049 Ecore_IMF_Context_Data *imf_context_data;
872 imf_context_data = ecore_imf_context_data_get(ctx); 1050 imf_context_data = ecore_imf_context_data_get(ctx);
873 1051
874 if(call_data->direction == XIMAbsolutePosition) 1052 if (call_data->direction == XIMAbsolutePosition)
875 { 1053 {
876 // printf("call_data->position:%d\n", call_data->position); 1054 // printf("call_data->position:%d\n", call_data->position);
877 imf_context_data->preedit_cursor = call_data->position; 1055 imf_context_data->preedit_cursor = call_data->position;
878 if(imf_context_data->finalizing == EINA_FALSE) 1056 if (imf_context_data->finalizing == EINA_FALSE)
879 ecore_imf_context_preedit_changed_event_add(ctx); 1057 {
1058 ecore_imf_context_preedit_changed_event_add(ctx);
1059 ecore_imf_context_event_callback_call(ctx, ECORE_IMF_CALLBACK_PREEDIT_CHANGED, NULL);
1060 }
880 } 1061 }
881} 1062}
882 1063
@@ -917,7 +1098,7 @@ get_ic(Ecore_IMF_Context *ctx)
917 XIC ic; 1098 XIC ic;
918 imf_context_data = ecore_imf_context_data_get(ctx); 1099 imf_context_data = ecore_imf_context_data_get(ctx);
919 ic = imf_context_data->ic; 1100 ic = imf_context_data->ic;
920 if(!ic) 1101 if (!ic)
921 { 1102 {
922 XIM_Im_Info *im_info = imf_context_data->im_info; 1103 XIM_Im_Info *im_info = imf_context_data->im_info;
923 XVaNestedList preedit_attr = NULL; 1104 XVaNestedList preedit_attr = NULL;
@@ -930,7 +1111,7 @@ get_ic(Ecore_IMF_Context *ctx)
930 EINA_LOG_WARN("Doesn't open XIM."); 1111 EINA_LOG_WARN("Doesn't open XIM.");
931 return NULL; 1112 return NULL;
932 } 1113 }
933 1114
934 // supported styles 1115 // supported styles
935#if 0 1116#if 0
936 int i; 1117 int i;
@@ -940,23 +1121,23 @@ get_ic(Ecore_IMF_Context *ctx)
940 { 1121 {
941 printf("%i: ", i); 1122 printf("%i: ", i);
942 if (im_info->xim_styles->supported_styles[i] & XIMPreeditCallbacks) 1123 if (im_info->xim_styles->supported_styles[i] & XIMPreeditCallbacks)
943 printf("XIMPreeditCallbacks | "); 1124 printf("XIMPreeditCallbacks | ");
944 if (im_info->xim_styles->supported_styles[i] & XIMPreeditPosition) 1125 if (im_info->xim_styles->supported_styles[i] & XIMPreeditPosition)
945 printf("XIMPreeditPosition | "); 1126 printf("XIMPreeditPosition | ");
946 if (im_info->xim_styles->supported_styles[i] & XIMPreeditArea) 1127 if (im_info->xim_styles->supported_styles[i] & XIMPreeditArea)
947 printf("XIMPreeditArea | "); 1128 printf("XIMPreeditArea | ");
948 if (im_info->xim_styles->supported_styles[i] & XIMPreeditNothing) 1129 if (im_info->xim_styles->supported_styles[i] & XIMPreeditNothing)
949 printf("XIMPreeditNothing | "); 1130 printf("XIMPreeditNothing | ");
950 if (im_info->xim_styles->supported_styles[i] & XIMPreeditNone) 1131 if (im_info->xim_styles->supported_styles[i] & XIMPreeditNone)
951 printf("XIMPreeditNone | "); 1132 printf("XIMPreeditNone | ");
952 if (im_info->xim_styles->supported_styles[i] & XIMStatusArea) 1133 if (im_info->xim_styles->supported_styles[i] & XIMStatusArea)
953 printf("XIMStatusArea | "); 1134 printf("XIMStatusArea | ");
954 if (im_info->xim_styles->supported_styles[i] & XIMStatusCallbacks) 1135 if (im_info->xim_styles->supported_styles[i] & XIMStatusCallbacks)
955 printf("XIMStatusCallbacks | "); 1136 printf("XIMStatusCallbacks | ");
956 if (im_info->xim_styles->supported_styles[i] & XIMStatusNothing) 1137 if (im_info->xim_styles->supported_styles[i] & XIMStatusNothing)
957 printf("XIMStatusNothing | "); 1138 printf("XIMStatusNothing | ");
958 if (im_info->xim_styles->supported_styles[i] & XIMStatusNone) 1139 if (im_info->xim_styles->supported_styles[i] & XIMStatusNone)
959 printf("XIMStatusNone | "); 1140 printf("XIMStatusNone | ");
960 printf("\n"); 1141 printf("\n");
961 } 1142 }
962 } 1143 }
@@ -969,12 +1150,12 @@ get_ic(Ecore_IMF_Context *ctx)
969 { 1150 {
970 if (im_info->supports_cursor) 1151 if (im_info->supports_cursor)
971 { 1152 {
972 // kinput2 DOES do this... 1153 // kinput2 DOES do this...
973 XFontSet fs; 1154 XFontSet fs;
974 char **missing_charset_list; 1155 char **missing_charset_list;
975 int missing_charset_count; 1156 int missing_charset_count;
976 char *def_string; 1157 char *def_string;
977 1158
978 im_style |= XIMPreeditPosition; 1159 im_style |= XIMPreeditPosition;
979 im_style |= XIMStatusNothing; 1160 im_style |= XIMStatusNothing;
980 fs = XCreateFontSet(ecore_x_display_get(), 1161 fs = XCreateFontSet(ecore_x_display_get(),
@@ -995,7 +1176,7 @@ get_ic(Ecore_IMF_Context *ctx)
995 } 1176 }
996 name = XNPreeditAttributes; 1177 name = XNPreeditAttributes;
997 } 1178 }
998 else 1179 else
999 { 1180 {
1000 im_style |= XIMPreeditNothing; 1181 im_style |= XIMPreeditNothing;
1001 im_style |= XIMStatusNothing; 1182 im_style |= XIMStatusNothing;
@@ -1009,18 +1190,18 @@ get_ic(Ecore_IMF_Context *ctx)
1009 name, preedit_attr, NULL); 1190 name, preedit_attr, NULL);
1010 } 1191 }
1011 XFree(preedit_attr); 1192 XFree(preedit_attr);
1012 if(ic) 1193 if (ic)
1013 { 1194 {
1014 unsigned long mask = 0xaaaaaaaa; 1195 unsigned long mask = 0xaaaaaaaa;
1015 XGetICValues (ic, 1196 XGetICValues(ic,
1016 XNFilterEvents, &mask, 1197 XNFilterEvents, &mask,
1017 NULL); 1198 NULL);
1018 imf_context_data->mask = mask; 1199 imf_context_data->mask = mask;
1019 ecore_x_event_mask_set(imf_context_data->win, mask); 1200 ecore_x_event_mask_set(imf_context_data->win, mask);
1020 } 1201 }
1021 1202
1022 imf_context_data->ic = ic; 1203 imf_context_data->ic = ic;
1023 if(ic && imf_context_data->has_focus == EINA_TRUE) 1204 if (ic && imf_context_data->has_focus == EINA_TRUE)
1024 XSetICFocus(ic); 1205 XSetICFocus(ic);
1025 } 1206 }
1026 1207
@@ -1032,16 +1213,17 @@ reinitialize_ic(Ecore_IMF_Context *ctx)
1032{ 1213{
1033 Ecore_IMF_Context_Data *imf_context_data = ecore_imf_context_data_get(ctx); 1214 Ecore_IMF_Context_Data *imf_context_data = ecore_imf_context_data_get(ctx);
1034 XIC ic = imf_context_data->ic; 1215 XIC ic = imf_context_data->ic;
1035 if(ic) 1216 if (ic)
1036 { 1217 {
1037 XDestroyIC(ic); 1218 XDestroyIC(ic);
1038 imf_context_data->ic = NULL; 1219 imf_context_data->ic = NULL;
1039 if(imf_context_data->preedit_length) 1220 if (imf_context_data->preedit_length)
1040 { 1221 {
1041 imf_context_data->preedit_length = 0; 1222 imf_context_data->preedit_length = 0;
1042 free(imf_context_data->preedit_chars); 1223 free(imf_context_data->preedit_chars);
1043 imf_context_data->preedit_chars = NULL; 1224 imf_context_data->preedit_chars = NULL;
1044 ecore_imf_context_preedit_changed_event_add(ctx); 1225 ecore_imf_context_preedit_changed_event_add(ctx);
1226 ecore_imf_context_event_callback_call(ctx, ECORE_IMF_CALLBACK_PREEDIT_CHANGED, NULL);
1045 } 1227 }
1046 } 1228 }
1047} 1229}
@@ -1052,13 +1234,13 @@ reinitialize_all_ics(XIM_Im_Info *info)
1052 Eina_List *tmp_list; 1234 Eina_List *tmp_list;
1053 Ecore_IMF_Context *ctx; 1235 Ecore_IMF_Context *ctx;
1054 1236
1055 EINA_LIST_FOREACH(info->ics, tmp_list, ctx) 1237 EINA_LIST_FOREACH (info->ics, tmp_list, ctx)
1056 reinitialize_ic(ctx); 1238 reinitialize_ic(ctx);
1057} 1239}
1058 1240
1059static void 1241static void
1060set_ic_client_window(Ecore_IMF_Context *ctx, 1242set_ic_client_window(Ecore_IMF_Context *ctx,
1061 Ecore_X_Window window) 1243 Ecore_X_Window window)
1062{ 1244{
1063 EINA_LOG_DBG("in"); 1245 EINA_LOG_DBG("in");
1064 Ecore_IMF_Context_Data *imf_context_data = ecore_imf_context_data_get(ctx); 1246 Ecore_IMF_Context_Data *imf_context_data = ecore_imf_context_data_get(ctx);
@@ -1069,7 +1251,7 @@ set_ic_client_window(Ecore_IMF_Context *ctx,
1069 1251
1070 old_win = imf_context_data->win; 1252 old_win = imf_context_data->win;
1071 EINA_LOG_DBG("old_win:%d window:%d ", old_win, window); 1253 EINA_LOG_DBG("old_win:%d window:%d ", old_win, window);
1072 if(old_win != 0 && old_win != window) /* XXX how do check window... */ 1254 if (old_win != 0 && old_win != window) /* XXX how do check window... */
1073 { 1255 {
1074 XIM_Im_Info *info; 1256 XIM_Im_Info *info;
1075 info = imf_context_data->im_info; 1257 info = imf_context_data->im_info;
@@ -1079,7 +1261,7 @@ set_ic_client_window(Ecore_IMF_Context *ctx,
1079 1261
1080 imf_context_data->win = window; 1262 imf_context_data->win = window;
1081 1263
1082 if(window) /* XXX */ 1264 if (window) /* XXX */
1083 { 1265 {
1084 XIM_Im_Info *info = NULL; 1266 XIM_Im_Info *info = NULL;
1085 info = get_im(window, imf_context_data->locale); 1267 info = get_im(window, imf_context_data->locale);
@@ -1092,17 +1274,17 @@ set_ic_client_window(Ecore_IMF_Context *ctx,
1092 1274
1093static XIM_Im_Info * 1275static XIM_Im_Info *
1094get_im(Ecore_X_Window window, 1276get_im(Ecore_X_Window window,
1095 char *locale) 1277 char *locale)
1096{ 1278{
1097 EINA_LOG_DBG("in"); 1279 EINA_LOG_DBG("in");
1098 1280
1099 Eina_List *l; 1281 Eina_List *l;
1100 XIM_Im_Info *im_info = NULL; 1282 XIM_Im_Info *im_info = NULL;
1101 XIM_Im_Info *info = NULL; 1283 XIM_Im_Info *info = NULL;
1102 EINA_LIST_FOREACH(open_ims, l, im_info) { 1284 EINA_LIST_FOREACH (open_ims, l, im_info) {
1103 if(strcmp(im_info->locale, locale) == 0) 1285 if (strcmp(im_info->locale, locale) == 0)
1104 { 1286 {
1105 if(im_info->im) 1287 if (im_info->im)
1106 { 1288 {
1107 return im_info; 1289 return im_info;
1108 } 1290 }
@@ -1113,10 +1295,10 @@ get_im(Ecore_X_Window window,
1113 } 1295 }
1114 } 1296 }
1115 1297
1116 if(!info) 1298 if (!info)
1117 { 1299 {
1118 info = calloc(1, sizeof(XIM_Im_Info)); 1300 info = calloc(1, sizeof(XIM_Im_Info));
1119 if(!info) return NULL; 1301 if (!info) return NULL;
1120 open_ims = eina_list_prepend(open_ims, info); 1302 open_ims = eina_list_prepend(open_ims, info);
1121 info->win = window; 1303 info->win = window;
1122 info->locale = strdup(locale); 1304 info->locale = strdup(locale);
@@ -1137,13 +1319,13 @@ xim_info_try_im(XIM_Im_Info *info)
1137 if (info->reconnecting == EINA_TRUE) 1319 if (info->reconnecting == EINA_TRUE)
1138 return; 1320 return;
1139 1321
1140 if(XSupportsLocale()) 1322 if (XSupportsLocale())
1141 { 1323 {
1142 if (!XSetLocaleModifiers ("")) 1324 if (!XSetLocaleModifiers(""))
1143 EINA_LOG_WARN("Unable to set locale modifiers with XSetLocaleModifiers()"); 1325 EINA_LOG_WARN("Unable to set locale modifiers with XSetLocaleModifiers()");
1144 dsp = ecore_x_display_get(); 1326 dsp = ecore_x_display_get();
1145 info->im = XOpenIM(dsp, NULL, NULL, NULL); 1327 info->im = XOpenIM(dsp, NULL, NULL, NULL);
1146 if(!info->im) 1328 if (!info->im)
1147 { 1329 {
1148 XRegisterIMInstantiateCallback(dsp, 1330 XRegisterIMInstantiateCallback(dsp,
1149 NULL, NULL, NULL, 1331 NULL, NULL, NULL,
@@ -1158,8 +1340,8 @@ xim_info_try_im(XIM_Im_Info *info)
1158 1340
1159static void 1341static void
1160xim_info_display_closed(Ecore_X_Display *display __UNUSED__, 1342xim_info_display_closed(Ecore_X_Display *display __UNUSED__,
1161 int is_error __UNUSED__, 1343 int is_error __UNUSED__,
1162 XIM_Im_Info *info) 1344 XIM_Im_Info *info)
1163{ 1345{
1164 Eina_List *ics, *tmp_list; 1346 Eina_List *ics, *tmp_list;
1165 Ecore_IMF_Context *ctx; 1347 Ecore_IMF_Context *ctx;
@@ -1169,21 +1351,21 @@ xim_info_display_closed(Ecore_X_Display *display __UNUSED__,
1169 ics = info->ics; 1351 ics = info->ics;
1170 info->ics = NULL; 1352 info->ics = NULL;
1171 1353
1172 EINA_LIST_FOREACH(ics, tmp_list, ctx) 1354 EINA_LIST_FOREACH (ics, tmp_list, ctx)
1173 set_ic_client_window(ctx, 0); 1355 set_ic_client_window(ctx, 0);
1174 1356
1175 EINA_LIST_FREE(ics, ctx) { 1357 EINA_LIST_FREE (ics, ctx) {
1176 Ecore_IMF_Context_Data *imf_context_data; 1358 Ecore_IMF_Context_Data *imf_context_data;
1177 imf_context_data = ecore_imf_context_data_get(ctx); 1359 imf_context_data = ecore_imf_context_data_get(ctx);
1178 imf_context_data_destroy(imf_context_data); 1360 imf_context_data_destroy(imf_context_data);
1179 } 1361 }
1180 1362
1181 free (info->locale); 1363 free(info->locale);
1182 1364
1183 if (info->im) 1365 if (info->im)
1184 XCloseIM (info->im); 1366 XCloseIM(info->im);
1185 1367
1186 free (info); 1368 free(info);
1187} 1369}
1188 1370
1189static void 1371static void
@@ -1203,11 +1385,11 @@ xim_instantiate_callback(Display *display,
1203 } 1385 }
1204 1386
1205 info->im = im; 1387 info->im = im;
1206 setup_im (info); 1388 setup_im(info);
1207 1389
1208 XUnregisterIMInstantiateCallback (display, NULL, NULL, NULL, 1390 XUnregisterIMInstantiateCallback(display, NULL, NULL, NULL,
1209 xim_instantiate_callback, 1391 xim_instantiate_callback,
1210 (XPointer)info); 1392 (XPointer)info);
1211 info->reconnecting = EINA_FALSE; 1393 info->reconnecting = EINA_FALSE;
1212} 1394}
1213 1395
@@ -1217,7 +1399,7 @@ setup_im(XIM_Im_Info *info)
1217 XIMValuesList *ic_values = NULL; 1399 XIMValuesList *ic_values = NULL;
1218 XIMCallback im_destroy_callback; 1400 XIMCallback im_destroy_callback;
1219 1401
1220 if(!info->im) 1402 if (!info->im)
1221 return; 1403 return;
1222 1404
1223 im_destroy_callback.client_data = (XPointer)info; 1405 im_destroy_callback.client_data = (XPointer)info;
@@ -1239,25 +1421,25 @@ setup_im(XIM_Im_Info *info)
1239 { 1421 {
1240 if (!strcmp(ic_values->supported_values[i], 1422 if (!strcmp(ic_values->supported_values[i],
1241 XNStringConversionCallback)) 1423 XNStringConversionCallback))
1242 info->supports_string_conversion = EINA_TRUE; 1424 info->supports_string_conversion = EINA_TRUE;
1243 if (!strcmp(ic_values->supported_values[i], 1425 if (!strcmp(ic_values->supported_values[i],
1244 XNCursor)) 1426 XNCursor))
1245 info->supports_cursor = EINA_TRUE; 1427 info->supports_cursor = EINA_TRUE;
1246 } 1428 }
1247#if 0 1429#if 0
1248 printf("values........\n"); 1430 printf("values........\n");
1249 for (i = 0; i < ic_values->count_values; i++) 1431 for (i = 0; i < ic_values->count_values; i++)
1250 printf("%s\n", ic_values->supported_values[i]); 1432 printf("%s\n", ic_values->supported_values[i]);
1251 printf("styles........\n"); 1433 printf("styles........\n");
1252 for (i = 0; i < info->xim_styles->count_styles; i++) 1434 for (i = 0; i < info->xim_styles->count_styles; i++)
1253 printf("%lx\n", info->xim_styles->supported_styles[i]); 1435 printf("%lx\n", info->xim_styles->supported_styles[i]);
1254#endif 1436#endif
1255 XFree(ic_values); 1437 XFree(ic_values);
1256 } 1438 }
1257} 1439}
1258 1440
1259static void 1441static void
1260xim_destroy_callback(XIM xim __UNUSED__, 1442xim_destroy_callback(XIM xim __UNUSED__,
1261 XPointer client_data, 1443 XPointer client_data,
1262 XPointer call_data __UNUSED__) 1444 XPointer call_data __UNUSED__)
1263{ 1445{
diff --git a/libraries/ecore/src/tests/Makefile.in b/libraries/ecore/src/tests/Makefile.in
index a21773c..bd7726a 100644
--- a/libraries/ecore/src/tests/Makefile.in
+++ b/libraries/ecore/src/tests/Makefile.in
@@ -229,10 +229,10 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
229PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 229PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
230PIXMAN_LIBS = @PIXMAN_LIBS@ 230PIXMAN_LIBS = @PIXMAN_LIBS@
231PKG_CONFIG = @PKG_CONFIG@ 231PKG_CONFIG = @PKG_CONFIG@
232PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
233PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
234POSUB = @POSUB@ 232POSUB = @POSUB@
235RANLIB = @RANLIB@ 233RANLIB = @RANLIB@
234SCIM_CFLAGS = @SCIM_CFLAGS@
235SCIM_LIBS = @SCIM_LIBS@
236SDL_CFLAGS = @SDL_CFLAGS@ 236SDL_CFLAGS = @SDL_CFLAGS@
237SDL_CONFIG = @SDL_CONFIG@ 237SDL_CONFIG = @SDL_CONFIG@
238SDL_LIBS = @SDL_LIBS@ 238SDL_LIBS = @SDL_LIBS@
@@ -251,6 +251,10 @@ TSLIB_LIBS = @TSLIB_LIBS@
251USE_NLS = @USE_NLS@ 251USE_NLS = @USE_NLS@
252VERSION = @VERSION@ 252VERSION = @VERSION@
253VMAJ = @VMAJ@ 253VMAJ = @VMAJ@
254WAYLAND_CFLAGS = @WAYLAND_CFLAGS@
255WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
256WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
257WAYLAND_LIBS = @WAYLAND_LIBS@
254WIN32_CFLAGS = @WIN32_CFLAGS@ 258WIN32_CFLAGS = @WIN32_CFLAGS@
255WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 259WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
256WIN32_LIBS = @WIN32_LIBS@ 260WIN32_LIBS = @WIN32_LIBS@
@@ -364,6 +368,8 @@ ecore_imf_cflags = @ecore_imf_cflags@
364ecore_imf_evas_cflags = @ecore_imf_evas_cflags@ 368ecore_imf_evas_cflags = @ecore_imf_evas_cflags@
365ecore_imf_evas_libs = @ecore_imf_evas_libs@ 369ecore_imf_evas_libs = @ecore_imf_evas_libs@
366ecore_imf_libs = @ecore_imf_libs@ 370ecore_imf_libs = @ecore_imf_libs@
371ecore_imf_scim_cflags = @ecore_imf_scim_cflags@
372ecore_imf_scim_libs = @ecore_imf_scim_libs@
367ecore_imf_xim_cflags = @ecore_imf_xim_cflags@ 373ecore_imf_xim_cflags = @ecore_imf_xim_cflags@
368ecore_imf_xim_libs = @ecore_imf_xim_libs@ 374ecore_imf_xim_libs = @ecore_imf_xim_libs@
369ecore_input_cflags = @ecore_input_cflags@ 375ecore_input_cflags = @ecore_input_cflags@
@@ -376,6 +382,8 @@ ecore_psl1ght_cflags = @ecore_psl1ght_cflags@
376ecore_psl1ght_libs = @ecore_psl1ght_libs@ 382ecore_psl1ght_libs = @ecore_psl1ght_libs@
377ecore_sdl_cflags = @ecore_sdl_cflags@ 383ecore_sdl_cflags = @ecore_sdl_cflags@
378ecore_sdl_libs = @ecore_sdl_libs@ 384ecore_sdl_libs = @ecore_sdl_libs@
385ecore_wayland_cflags = @ecore_wayland_cflags@
386ecore_wayland_libs = @ecore_wayland_libs@
379ecore_win32_cflags = @ecore_win32_cflags@ 387ecore_win32_cflags = @ecore_win32_cflags@
380ecore_win32_libs = @ecore_win32_libs@ 388ecore_win32_libs = @ecore_win32_libs@
381ecore_wince_cflags = @ecore_wince_cflags@ 389ecore_wince_cflags = @ecore_wince_cflags@
@@ -420,12 +428,14 @@ requirements_ecore_fb = @requirements_ecore_fb@
420requirements_ecore_file = @requirements_ecore_file@ 428requirements_ecore_file = @requirements_ecore_file@
421requirements_ecore_imf = @requirements_ecore_imf@ 429requirements_ecore_imf = @requirements_ecore_imf@
422requirements_ecore_imf_evas = @requirements_ecore_imf_evas@ 430requirements_ecore_imf_evas = @requirements_ecore_imf_evas@
431requirements_ecore_imf_scim = @requirements_ecore_imf_scim@
423requirements_ecore_imf_xim = @requirements_ecore_imf_xim@ 432requirements_ecore_imf_xim = @requirements_ecore_imf_xim@
424requirements_ecore_input = @requirements_ecore_input@ 433requirements_ecore_input = @requirements_ecore_input@
425requirements_ecore_input_evas = @requirements_ecore_input_evas@ 434requirements_ecore_input_evas = @requirements_ecore_input_evas@
426requirements_ecore_ipc = @requirements_ecore_ipc@ 435requirements_ecore_ipc = @requirements_ecore_ipc@
427requirements_ecore_psl1ght = @requirements_ecore_psl1ght@ 436requirements_ecore_psl1ght = @requirements_ecore_psl1ght@
428requirements_ecore_sdl = @requirements_ecore_sdl@ 437requirements_ecore_sdl = @requirements_ecore_sdl@
438requirements_ecore_wayland = @requirements_ecore_wayland@
429requirements_ecore_win32 = @requirements_ecore_win32@ 439requirements_ecore_win32 = @requirements_ecore_win32@
430requirements_ecore_wince = @requirements_ecore_wince@ 440requirements_ecore_wince = @requirements_ecore_wince@
431requirements_ecore_x = @requirements_ecore_x@ 441requirements_ecore_x = @requirements_ecore_x@
diff --git a/libraries/ecore/src/util/Makefile.in b/libraries/ecore/src/util/Makefile.in
index 0e1e6e7..96cb48a 100644
--- a/libraries/ecore/src/util/Makefile.in
+++ b/libraries/ecore/src/util/Makefile.in
@@ -218,10 +218,10 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
218PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 218PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
219PIXMAN_LIBS = @PIXMAN_LIBS@ 219PIXMAN_LIBS = @PIXMAN_LIBS@
220PKG_CONFIG = @PKG_CONFIG@ 220PKG_CONFIG = @PKG_CONFIG@
221PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
222PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
223POSUB = @POSUB@ 221POSUB = @POSUB@
224RANLIB = @RANLIB@ 222RANLIB = @RANLIB@
223SCIM_CFLAGS = @SCIM_CFLAGS@
224SCIM_LIBS = @SCIM_LIBS@
225SDL_CFLAGS = @SDL_CFLAGS@ 225SDL_CFLAGS = @SDL_CFLAGS@
226SDL_CONFIG = @SDL_CONFIG@ 226SDL_CONFIG = @SDL_CONFIG@
227SDL_LIBS = @SDL_LIBS@ 227SDL_LIBS = @SDL_LIBS@
@@ -240,6 +240,10 @@ TSLIB_LIBS = @TSLIB_LIBS@
240USE_NLS = @USE_NLS@ 240USE_NLS = @USE_NLS@
241VERSION = @VERSION@ 241VERSION = @VERSION@
242VMAJ = @VMAJ@ 242VMAJ = @VMAJ@
243WAYLAND_CFLAGS = @WAYLAND_CFLAGS@
244WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
245WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
246WAYLAND_LIBS = @WAYLAND_LIBS@
243WIN32_CFLAGS = @WIN32_CFLAGS@ 247WIN32_CFLAGS = @WIN32_CFLAGS@
244WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 248WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
245WIN32_LIBS = @WIN32_LIBS@ 249WIN32_LIBS = @WIN32_LIBS@
@@ -353,6 +357,8 @@ ecore_imf_cflags = @ecore_imf_cflags@
353ecore_imf_evas_cflags = @ecore_imf_evas_cflags@ 357ecore_imf_evas_cflags = @ecore_imf_evas_cflags@
354ecore_imf_evas_libs = @ecore_imf_evas_libs@ 358ecore_imf_evas_libs = @ecore_imf_evas_libs@
355ecore_imf_libs = @ecore_imf_libs@ 359ecore_imf_libs = @ecore_imf_libs@
360ecore_imf_scim_cflags = @ecore_imf_scim_cflags@
361ecore_imf_scim_libs = @ecore_imf_scim_libs@
356ecore_imf_xim_cflags = @ecore_imf_xim_cflags@ 362ecore_imf_xim_cflags = @ecore_imf_xim_cflags@
357ecore_imf_xim_libs = @ecore_imf_xim_libs@ 363ecore_imf_xim_libs = @ecore_imf_xim_libs@
358ecore_input_cflags = @ecore_input_cflags@ 364ecore_input_cflags = @ecore_input_cflags@
@@ -365,6 +371,8 @@ ecore_psl1ght_cflags = @ecore_psl1ght_cflags@
365ecore_psl1ght_libs = @ecore_psl1ght_libs@ 371ecore_psl1ght_libs = @ecore_psl1ght_libs@
366ecore_sdl_cflags = @ecore_sdl_cflags@ 372ecore_sdl_cflags = @ecore_sdl_cflags@
367ecore_sdl_libs = @ecore_sdl_libs@ 373ecore_sdl_libs = @ecore_sdl_libs@
374ecore_wayland_cflags = @ecore_wayland_cflags@
375ecore_wayland_libs = @ecore_wayland_libs@
368ecore_win32_cflags = @ecore_win32_cflags@ 376ecore_win32_cflags = @ecore_win32_cflags@
369ecore_win32_libs = @ecore_win32_libs@ 377ecore_win32_libs = @ecore_win32_libs@
370ecore_wince_cflags = @ecore_wince_cflags@ 378ecore_wince_cflags = @ecore_wince_cflags@
@@ -409,12 +417,14 @@ requirements_ecore_fb = @requirements_ecore_fb@
409requirements_ecore_file = @requirements_ecore_file@ 417requirements_ecore_file = @requirements_ecore_file@
410requirements_ecore_imf = @requirements_ecore_imf@ 418requirements_ecore_imf = @requirements_ecore_imf@
411requirements_ecore_imf_evas = @requirements_ecore_imf_evas@ 419requirements_ecore_imf_evas = @requirements_ecore_imf_evas@
420requirements_ecore_imf_scim = @requirements_ecore_imf_scim@
412requirements_ecore_imf_xim = @requirements_ecore_imf_xim@ 421requirements_ecore_imf_xim = @requirements_ecore_imf_xim@
413requirements_ecore_input = @requirements_ecore_input@ 422requirements_ecore_input = @requirements_ecore_input@
414requirements_ecore_input_evas = @requirements_ecore_input_evas@ 423requirements_ecore_input_evas = @requirements_ecore_input_evas@
415requirements_ecore_ipc = @requirements_ecore_ipc@ 424requirements_ecore_ipc = @requirements_ecore_ipc@
416requirements_ecore_psl1ght = @requirements_ecore_psl1ght@ 425requirements_ecore_psl1ght = @requirements_ecore_psl1ght@
417requirements_ecore_sdl = @requirements_ecore_sdl@ 426requirements_ecore_sdl = @requirements_ecore_sdl@
427requirements_ecore_wayland = @requirements_ecore_wayland@
418requirements_ecore_win32 = @requirements_ecore_win32@ 428requirements_ecore_win32 = @requirements_ecore_win32@
419requirements_ecore_wince = @requirements_ecore_wince@ 429requirements_ecore_wince = @requirements_ecore_wince@
420requirements_ecore_x = @requirements_ecore_x@ 430requirements_ecore_x = @requirements_ecore_x@
diff --git a/libraries/edje/ChangeLog b/libraries/edje/ChangeLog
index 39757b9..ae65d85 100644
--- a/libraries/edje/ChangeLog
+++ b/libraries/edje/ChangeLog
@@ -219,3 +219,69 @@
219 * Fix message and signal propagation to be consistent in all situations 219 * Fix message and signal propagation to be consistent in all situations
220 as well as simpler. 220 as well as simpler.
221 221
2222011-12-02 Carsten Haitzler (The Rasterman)
223
224 1.1.0 release
225
2262011-12-12 Mike Blumenkrantz (discomfitor/zmike)
227
228 * Fix potential crash from buffer overflow on copying map data.
229
2302011-12-15 Tom Hacohen (TAsn)
231
232 * Entry: Added support for various new key bindings:
233 Ctrl+Arrows, Ctrl+Del and Ctrl+Backspace.
234 * Entry: Added cursor,changed,manual signal.
235 This signal indicates the cursor has been manually changed, i.e by
236 either mouse click or arrows.
237
2382011-12-15 Cedric Bail
239
240 * Fix detections of limits by edje_cc parser.
241
2422011-12-16 Cedric Bail
243
244 * Fix wrong call to free() in edje_load.
245 * Reduce parts walk to the strict minimum.
246
2472011-12-19 Cedric Bail
248
249 * Check existence of group at compile time also.
250
2512012-01-02 Carsten Haitzler (The Rasterman)
252
253 * Fix prototype for edje_object_part_text_cursor_content_get()
254 as it returned a strduped string and not an internal one, so
255 this just formalizes its existing behavior correctly.
256
2572012-01-03 Tom Hacohen (TAsn)
258
259 * Entry: Fixed undo/redo with IMF.
260
2612012-01-04 Carsten Haitzler (The Rasterman)
262
263 * Add HEX, TERMINAL and PASSWORD layouts to edje
264 * Add "recalc" smart callback for object size changes
265
2662012-01-05 Cedric Bail
267
268 * Reduce call to stat during edje_object_file_set.
269
2702012-01-06 Cedric Bail
271
272 * Unswallow object that are about to be swallowed if necessary.
273 * Add EDJE_ASPECT_PREFER_SOURCE.
274
2752012-01-07 David Seikel (onefang)
276
277 * Lua: Calling non exstent functions no longer crashes scripts.
278 This is so that future scripts will still work with old libraries,
279 and lets us add the "host can provide Lua API" feature soon.
280
2812012-01-09 David Seikel (onefang)
282
283 * Lua: Added edje.version().
284
2852012-01-14 Carsten Haitzler (The Rasterman)
286
287 * Added minmul propery for edje to multiply minimum size during min size calc
diff --git a/libraries/edje/Makefile.in b/libraries/edje/Makefile.in
index 2666156..b63286c 100644
--- a/libraries/edje/Makefile.in
+++ b/libraries/edje/Makefile.in
@@ -236,8 +236,6 @@ PACKAGE_URL = @PACKAGE_URL@
236PACKAGE_VERSION = @PACKAGE_VERSION@ 236PACKAGE_VERSION = @PACKAGE_VERSION@
237PATH_SEPARATOR = @PATH_SEPARATOR@ 237PATH_SEPARATOR = @PATH_SEPARATOR@
238PKG_CONFIG = @PKG_CONFIG@ 238PKG_CONFIG = @PKG_CONFIG@
239PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
240PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
241PYTHON = @PYTHON@ 239PYTHON = @PYTHON@
242PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ 240PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
243PYTHON_PLATFORM = @PYTHON_PLATFORM@ 241PYTHON_PLATFORM = @PYTHON_PLATFORM@
diff --git a/libraries/edje/NEWS b/libraries/edje/NEWS
index e34a719..bf529dc 100644
--- a/libraries/edje/NEWS
+++ b/libraries/edje/NEWS
@@ -1,5 +1,22 @@
1Edje 1.1.0 1Edje 1.1.0
2 2
3Changes since Edje 1.1.0:
4-------------------------
5
6Additions:
7
8 * "recalc" smart callback for object size changes
9 * EDJE_ASPECT_PREFER_SOURCE.
10 * edje.version() Lua function.
11 * minmul edc property
12
13Improvements:
14 * speedup load time of Edje file.
15 * check existence of group at compile time also.
16 * reduce number of call to stat during edje_object_file_set.
17 * unswallow object about to be swallowed if necessary.
18 * Lua scripts now more resilient against API changes.
19
3Changes since Edje 1.0.0: 20Changes since Edje 1.0.0:
4------------------------- 21-------------------------
5 22
diff --git a/libraries/edje/README b/libraries/edje/README
index d040a5c..3cf9a65 100644
--- a/libraries/edje/README
+++ b/libraries/edje/README
@@ -4,16 +4,16 @@ Edje 1.1.0
4 4
5 FOR ANY ISSUES PLEASE EMAIL: 5 FOR ANY ISSUES PLEASE EMAIL:
6 enlightenment-devel@lists.sourceforge.net 6 enlightenment-devel@lists.sourceforge.net
7 7
8****************************************************************************** 8******************************************************************************
9 9
10Requirements: 10Requirements:
11------------- 11-------------
12 12
13Must: 13Must:
14 libc 14 libc
15 libm 15 libm
16 eet (at least 1.5.0) 16 eet (at least 1.5.0)
17 ecore (at least 1.1.0) 17 ecore (at least 1.1.0)
18 ecore-evas (at least 1.1.0) 18 ecore-evas (at least 1.1.0)
19 ecore-file (at least 1.1.0) 19 ecore-file (at least 1.1.0)
diff --git a/libraries/edje/aclocal.m4 b/libraries/edje/aclocal.m4
index 23ca0ef..a809f4b 100644
--- a/libraries/edje/aclocal.m4
+++ b/libraries/edje/aclocal.m4
@@ -13,14 +13,13 @@
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.67],, 16m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.65],,
17[m4_warning([this file was generated for autoconf 2.67. 17[m4_warning([this file was generated for autoconf 2.65.
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)
24# 23#
25# Copyright © 2004 Scott James Remnant <scott@netsplit.com>. 24# Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
26# 25#
@@ -48,10 +47,7 @@ To do so, use the procedure documented by the package, typically `autoreconf'.])
48AC_DEFUN([PKG_PROG_PKG_CONFIG], 47AC_DEFUN([PKG_PROG_PKG_CONFIG],
49[m4_pattern_forbid([^_?PKG_[A-Z_]+$]) 48[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
50m4_pattern_allow([^PKG_CONFIG(_PATH)?$]) 49m4_pattern_allow([^PKG_CONFIG(_PATH)?$])
51AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) 50AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl
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
55if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then 51if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
56 AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) 52 AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
57fi 53fi
@@ -64,6 +60,7 @@ if test -n "$PKG_CONFIG"; then
64 AC_MSG_RESULT([no]) 60 AC_MSG_RESULT([no])
65 PKG_CONFIG="" 61 PKG_CONFIG=""
66 fi 62 fi
63
67fi[]dnl 64fi[]dnl
68])# PKG_PROG_PKG_CONFIG 65])# PKG_PROG_PKG_CONFIG
69 66
@@ -72,31 +69,34 @@ fi[]dnl
72# Check to see whether a particular set of modules exists. Similar 69# Check to see whether a particular set of modules exists. Similar
73# to PKG_CHECK_MODULES(), but does not set variables or print errors. 70# to PKG_CHECK_MODULES(), but does not set variables or print errors.
74# 71#
75# Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) 72#
76# only at the first occurence in configure.ac, so if the first place 73# Similar to PKG_CHECK_MODULES, make sure that the first instance of
77# it's called might be skipped (such as if it is within an "if", you 74# this or PKG_CHECK_MODULES is called, or make sure to call
78# have to call PKG_CHECK_EXISTS manually 75# PKG_CHECK_EXISTS manually
79# -------------------------------------------------------------- 76# --------------------------------------------------------------
80AC_DEFUN([PKG_CHECK_EXISTS], 77AC_DEFUN([PKG_CHECK_EXISTS],
81[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl 78[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
82if test -n "$PKG_CONFIG" && \ 79if test -n "$PKG_CONFIG" && \
83 AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then 80 AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
84 m4_default([$2], [:]) 81 m4_ifval([$2], [$2], [:])
85m4_ifvaln([$3], [else 82m4_ifvaln([$3], [else
86 $3])dnl 83 $3])dnl
87fi]) 84fi])
88 85
86
89# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) 87# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
90# --------------------------------------------- 88# ---------------------------------------------
91m4_define([_PKG_CONFIG], 89m4_define([_PKG_CONFIG],
92[if test -n "$$1"; then 90[if test -n "$PKG_CONFIG"; then
93 pkg_cv_[]$1="$$1" 91 if test -n "$$1"; then
94 elif test -n "$PKG_CONFIG"; then 92 pkg_cv_[]$1="$$1"
95 PKG_CHECK_EXISTS([$3], 93 else
96 [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`], 94 PKG_CHECK_EXISTS([$3],
97 [pkg_failed=yes]) 95 [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`],
98 else 96 [pkg_failed=yes])
99 pkg_failed=untried 97 fi
98else
99 pkg_failed=untried
100fi[]dnl 100fi[]dnl
101])# _PKG_CONFIG 101])# _PKG_CONFIG
102 102
@@ -138,17 +138,16 @@ 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])
142 _PKG_SHORT_ERRORS_SUPPORTED 141 _PKG_SHORT_ERRORS_SUPPORTED
143 if test $_pkg_short_errors_supported = yes; then 142 if test $_pkg_short_errors_supported = yes; then
144 $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1` 143 $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$2"`
145 else 144 else
146 $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1` 145 $1[]_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"`
147 fi 146 fi
148 # Put the nasty error message in config.log where it belongs 147 # Put the nasty error message in config.log where it belongs
149 echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD 148 echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
150 149
151 m4_default([$4], [AC_MSG_ERROR( 150 ifelse([$4], , [AC_MSG_ERROR(dnl
152[Package requirements ($2) were not met: 151[Package requirements ($2) were not met:
153 152
154$$1_PKG_ERRORS 153$$1_PKG_ERRORS
@@ -156,24 +155,25 @@ $$1_PKG_ERRORS
156Consider adjusting the PKG_CONFIG_PATH environment variable if you 155Consider adjusting the PKG_CONFIG_PATH environment variable if you
157installed software in a non-standard prefix. 156installed software in a non-standard prefix.
158 157
159_PKG_TEXT])[]dnl 158_PKG_TEXT
160 ]) 159])],
160 [AC_MSG_RESULT([no])
161 $4])
161elif test $pkg_failed = untried; then 162elif test $pkg_failed = untried; then
162 AC_MSG_RESULT([no]) 163 ifelse([$4], , [AC_MSG_FAILURE(dnl
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/>.])[]dnl 170To get pkg-config, see <http://pkg-config.freedesktop.org/>.])],
171 ]) 171 [$4])
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 $3 176 ifelse([$3], , :, [$3])
177fi[]dnl 177fi[]dnl
178])# PKG_CHECK_MODULES 178])# PKG_CHECK_MODULES
179 179
@@ -968,7 +968,7 @@ AC_DEFUN([AM_PATH_PYTHON],
968 dnl Find a Python interpreter. Python versions prior to 2.0 are not 968 dnl Find a Python interpreter. Python versions prior to 2.0 are not
969 dnl supported. (2.0 was released on October 16, 2000). 969 dnl supported. (2.0 was released on October 16, 2000).
970 m4_define_default([_AM_PYTHON_INTERPRETER_LIST], 970 m4_define_default([_AM_PYTHON_INTERPRETER_LIST],
971 [python python2 python3 python3.2 python3.1 python3.0 python2.7 python2.6 python2.5 python2.4 python2.3 python2.2 dnl 971 [python python2 python3 python3.0 python2.5 python2.4 python2.3 python2.2 dnl
972python2.1 python2.0]) 972python2.1 python2.0])
973 973
974 m4_if([$1],[],[ 974 m4_if([$1],[],[
diff --git a/libraries/edje/configure b/libraries/edje/configure
index 3b234ef..c763308 100755
--- a/libraries/edje/configure
+++ b/libraries/edje/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.67 for edje 1.1.0. 3# Generated by GNU Autoconf 2.65 for edje 1.1.99.67344.
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, 2010 Free Software 9# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
10# Foundation, Inc. 10# 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 STATUS ERROR [LINENO LOG_FD] 362# as_fn_error 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=$1; test $as_status -eq 0 && as_status=1 369 as_status=$?; test $as_status -eq 0 && as_status=1
370 if test "$4"; then 370 if test "$3"; then
371 as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 371 as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
372 $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 372 $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
373 fi 373 fi
374 $as_echo "$as_me: error: $2" >&2 374 $as_echo "$as_me: error: $1" >&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, old GNU/Linux) returns a bogus exit status, 685# hostname on some systems (SVR3.2, 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='edje' 702PACKAGE_NAME='edje'
703PACKAGE_TARNAME='edje' 703PACKAGE_TARNAME='edje'
704PACKAGE_VERSION='1.1.0' 704PACKAGE_VERSION='1.1.99.67344'
705PACKAGE_STRING='edje 1.1.0' 705PACKAGE_STRING='edje 1.1.99.67344'
706PACKAGE_BUGREPORT='enlightenment-devel@lists.sourceforge.net' 706PACKAGE_BUGREPORT='enlightenment-devel@lists.sourceforge.net'
707PACKAGE_URL='' 707PACKAGE_URL=''
708 708
@@ -751,8 +751,6 @@ requirement_edje
751BUILD_EXAMPLES_FALSE 751BUILD_EXAMPLES_FALSE
752BUILD_EXAMPLES_TRUE 752BUILD_EXAMPLES_TRUE
753edje_cc 753edje_cc
754INSTALL_EXAMPLES_FALSE
755INSTALL_EXAMPLES_TRUE
756EFL_ENABLE_COVERAGE_FALSE 754EFL_ENABLE_COVERAGE_FALSE
757EFL_ENABLE_COVERAGE_TRUE 755EFL_ENABLE_COVERAGE_TRUE
758EFL_COVERAGE_LIBS 756EFL_COVERAGE_LIBS
@@ -808,8 +806,6 @@ EFL_EDJE_BUILD
808EVIL_LIBS 806EVIL_LIBS
809EVIL_CFLAGS 807EVIL_CFLAGS
810pkgconfig_requires_private 808pkgconfig_requires_private
811PKG_CONFIG_LIBDIR
812PKG_CONFIG_PATH
813PKG_CONFIG 809PKG_CONFIG
814HAVE_PYTHON_FALSE 810HAVE_PYTHON_FALSE
815HAVE_PYTHON_TRUE 811HAVE_PYTHON_TRUE
@@ -990,13 +986,13 @@ enable_fixed_point
990with_vim 986with_vim
991enable_doc 987enable_doc
992with_doxygen 988with_doxygen
989enable_multisense
993enable_sndfile 990enable_sndfile
994enable_remix 991enable_remix
995enable_vorbisenc 992enable_vorbisenc
996enable_flac 993enable_flac
997enable_tests 994enable_tests
998enable_coverage 995enable_coverage
999enable_install_examples
1000enable_build_examples 996enable_build_examples
1001' 997'
1002 ac_precious_vars='build_alias 998 ac_precious_vars='build_alias
@@ -1009,8 +1005,6 @@ LIBS
1009CPPFLAGS 1005CPPFLAGS
1010CPP 1006CPP
1011PKG_CONFIG 1007PKG_CONFIG
1012PKG_CONFIG_PATH
1013PKG_CONFIG_LIBDIR
1014EVIL_CFLAGS 1008EVIL_CFLAGS
1015EVIL_LIBS 1009EVIL_LIBS
1016LUA_CFLAGS 1010LUA_CFLAGS
@@ -1105,9 +1099,8 @@ do
1105 fi 1099 fi
1106 1100
1107 case $ac_option in 1101 case $ac_option in
1108 *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; 1102 *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
1109 *=) ac_optarg= ;; 1103 *) ac_optarg=yes ;;
1110 *) ac_optarg=yes ;;
1111 esac 1104 esac
1112 1105
1113 # Accept the important Cygnus configure options, so we can diagnose typos. 1106 # Accept the important Cygnus configure options, so we can diagnose typos.
@@ -1152,7 +1145,7 @@ do
1152 ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` 1145 ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
1153 # Reject names that are not valid shell variable names. 1146 # Reject names that are not valid shell variable names.
1154 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && 1147 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
1155 as_fn_error $? "invalid feature name: $ac_useropt" 1148 as_fn_error "invalid feature name: $ac_useropt"
1156 ac_useropt_orig=$ac_useropt 1149 ac_useropt_orig=$ac_useropt
1157 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` 1150 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
1158 case $ac_user_opts in 1151 case $ac_user_opts in
@@ -1178,7 +1171,7 @@ do
1178 ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` 1171 ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
1179 # Reject names that are not valid shell variable names. 1172 # Reject names that are not valid shell variable names.
1180 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && 1173 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
1181 as_fn_error $? "invalid feature name: $ac_useropt" 1174 as_fn_error "invalid feature name: $ac_useropt"
1182 ac_useropt_orig=$ac_useropt 1175 ac_useropt_orig=$ac_useropt
1183 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` 1176 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
1184 case $ac_user_opts in 1177 case $ac_user_opts in
@@ -1382,7 +1375,7 @@ do
1382 ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` 1375 ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
1383 # Reject names that are not valid shell variable names. 1376 # Reject names that are not valid shell variable names.
1384 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && 1377 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
1385 as_fn_error $? "invalid package name: $ac_useropt" 1378 as_fn_error "invalid package name: $ac_useropt"
1386 ac_useropt_orig=$ac_useropt 1379 ac_useropt_orig=$ac_useropt
1387 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` 1380 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
1388 case $ac_user_opts in 1381 case $ac_user_opts in
@@ -1398,7 +1391,7 @@ do
1398 ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` 1391 ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
1399 # Reject names that are not valid shell variable names. 1392 # Reject names that are not valid shell variable names.
1400 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && 1393 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
1401 as_fn_error $? "invalid package name: $ac_useropt" 1394 as_fn_error "invalid package name: $ac_useropt"
1402 ac_useropt_orig=$ac_useropt 1395 ac_useropt_orig=$ac_useropt
1403 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` 1396 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
1404 case $ac_user_opts in 1397 case $ac_user_opts in
@@ -1428,8 +1421,8 @@ do
1428 | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) 1421 | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
1429 x_libraries=$ac_optarg ;; 1422 x_libraries=$ac_optarg ;;
1430 1423
1431 -*) as_fn_error $? "unrecognized option: \`$ac_option' 1424 -*) as_fn_error "unrecognized option: \`$ac_option'
1432Try \`$0 --help' for more information" 1425Try \`$0 --help' for more information."
1433 ;; 1426 ;;
1434 1427
1435 *=*) 1428 *=*)
@@ -1437,7 +1430,7 @@ Try \`$0 --help' for more information"
1437 # Reject names that are not valid shell variable names. 1430 # Reject names that are not valid shell variable names.
1438 case $ac_envvar in #( 1431 case $ac_envvar in #(
1439 '' | [0-9]* | *[!_$as_cr_alnum]* ) 1432 '' | [0-9]* | *[!_$as_cr_alnum]* )
1440 as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; 1433 as_fn_error "invalid variable name: \`$ac_envvar'" ;;
1441 esac 1434 esac
1442 eval $ac_envvar=\$ac_optarg 1435 eval $ac_envvar=\$ac_optarg
1443 export $ac_envvar ;; 1436 export $ac_envvar ;;
@@ -1455,13 +1448,13 @@ done
1455 1448
1456if test -n "$ac_prev"; then 1449if test -n "$ac_prev"; then
1457 ac_option=--`echo $ac_prev | sed 's/_/-/g'` 1450 ac_option=--`echo $ac_prev | sed 's/_/-/g'`
1458 as_fn_error $? "missing argument to $ac_option" 1451 as_fn_error "missing argument to $ac_option"
1459fi 1452fi
1460 1453
1461if test -n "$ac_unrecognized_opts"; then 1454if test -n "$ac_unrecognized_opts"; then
1462 case $enable_option_checking in 1455 case $enable_option_checking in
1463 no) ;; 1456 no) ;;
1464 fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; 1457 fatal) as_fn_error "unrecognized options: $ac_unrecognized_opts" ;;
1465 *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; 1458 *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
1466 esac 1459 esac
1467fi 1460fi
@@ -1484,7 +1477,7 @@ do
1484 [\\/$]* | ?:[\\/]* ) continue;; 1477 [\\/$]* | ?:[\\/]* ) continue;;
1485 NONE | '' ) case $ac_var in *prefix ) continue;; esac;; 1478 NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
1486 esac 1479 esac
1487 as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" 1480 as_fn_error "expected an absolute directory name for --$ac_var: $ac_val"
1488done 1481done
1489 1482
1490# There might be people who depend on the old broken behavior: `$host' 1483# There might be people who depend on the old broken behavior: `$host'
@@ -1498,8 +1491,8 @@ target=$target_alias
1498if test "x$host_alias" != x; then 1491if test "x$host_alias" != x; then
1499 if test "x$build_alias" = x; then 1492 if test "x$build_alias" = x; then
1500 cross_compiling=maybe 1493 cross_compiling=maybe
1501 $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host. 1494 $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
1502 If a cross compiler is detected then cross compile mode will be used" >&2 1495 If a cross compiler is detected then cross compile mode will be used." >&2
1503 elif test "x$build_alias" != "x$host_alias"; then 1496 elif test "x$build_alias" != "x$host_alias"; then
1504 cross_compiling=yes 1497 cross_compiling=yes
1505 fi 1498 fi
@@ -1514,9 +1507,9 @@ test "$silent" = yes && exec 6>/dev/null
1514ac_pwd=`pwd` && test -n "$ac_pwd" && 1507ac_pwd=`pwd` && test -n "$ac_pwd" &&
1515ac_ls_di=`ls -di .` && 1508ac_ls_di=`ls -di .` &&
1516ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || 1509ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
1517 as_fn_error $? "working directory cannot be determined" 1510 as_fn_error "working directory cannot be determined"
1518test "X$ac_ls_di" = "X$ac_pwd_ls_di" || 1511test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
1519 as_fn_error $? "pwd does not report name of working directory" 1512 as_fn_error "pwd does not report name of working directory"
1520 1513
1521 1514
1522# Find the source files, if location was not specified. 1515# Find the source files, if location was not specified.
@@ -1555,11 +1548,11 @@ else
1555fi 1548fi
1556if test ! -r "$srcdir/$ac_unique_file"; then 1549if test ! -r "$srcdir/$ac_unique_file"; then
1557 test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." 1550 test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
1558 as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" 1551 as_fn_error "cannot find sources ($ac_unique_file) in $srcdir"
1559fi 1552fi
1560ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" 1553ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
1561ac_abs_confdir=`( 1554ac_abs_confdir=`(
1562 cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" 1555 cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error "$ac_msg"
1563 pwd)` 1556 pwd)`
1564# When building in place, set srcdir=. 1557# When building in place, set srcdir=.
1565if test "$ac_abs_confdir" = "$ac_pwd"; then 1558if test "$ac_abs_confdir" = "$ac_pwd"; then
@@ -1585,7 +1578,7 @@ if test "$ac_init_help" = "long"; then
1585 # Omit some internal or obsolete options to make the list less imposing. 1578 # Omit some internal or obsolete options to make the list less imposing.
1586 # This message is too long to be a string in the A/UX 3.1 sh. 1579 # This message is too long to be a string in the A/UX 3.1 sh.
1587 cat <<_ACEOF 1580 cat <<_ACEOF
1588\`configure' configures edje 1.1.0 to adapt to many kinds of systems. 1581\`configure' configures edje 1.1.99.67344 to adapt to many kinds of systems.
1589 1582
1590Usage: $0 [OPTION]... [VAR=VALUE]... 1583Usage: $0 [OPTION]... [VAR=VALUE]...
1591 1584
@@ -1599,7 +1592,7 @@ Configuration:
1599 --help=short display options specific to this package 1592 --help=short display options specific to this package
1600 --help=recursive display the short help of all the included packages 1593 --help=recursive display the short help of all the included packages
1601 -V, --version display version information and exit 1594 -V, --version display version information and exit
1602 -q, --quiet, --silent do not print \`checking ...' messages 1595 -q, --quiet, --silent do not print \`checking...' messages
1603 --cache-file=FILE cache test results in FILE [disabled] 1596 --cache-file=FILE cache test results in FILE [disabled]
1604 -C, --config-cache alias for \`--cache-file=config.cache' 1597 -C, --config-cache alias for \`--cache-file=config.cache'
1605 -n, --no-create do not create output files 1598 -n, --no-create do not create output files
@@ -1655,7 +1648,7 @@ fi
1655 1648
1656if test -n "$ac_init_help"; then 1649if test -n "$ac_init_help"; then
1657 case $ac_init_help in 1650 case $ac_init_help in
1658 short | recursive ) echo "Configuration of edje 1.1.0:";; 1651 short | recursive ) echo "Configuration of edje 1.1.99.67344:";;
1659 esac 1652 esac
1660 cat <<\_ACEOF 1653 cat <<\_ACEOF
1661 1654
@@ -1690,6 +1683,8 @@ Optional Features:
1690 --enable-fixed-point reduce use of FPU by using Fixed Point provided by 1683 --enable-fixed-point reduce use of FPU by using Fixed Point provided by
1691 Eina and Eet, [[default=disabled]] 1684 Eina and Eet, [[default=disabled]]
1692 --disable-doc Disable documentation build [default=enabled] 1685 --disable-doc Disable documentation build [default=enabled]
1686 --enable-multisense multisense provides sound. tone and haptic effects
1687 support, [[default=disabled]]
1693 --disable-sndfile disable sndfile support. [default=detect] 1688 --disable-sndfile disable sndfile support. [default=detect]
1694 --disable-remix disable remix support. [default=detect] 1689 --disable-remix disable remix support. [default=detect]
1695 --disable-vorbis disable ogg-vorbis support. [default=detect] 1690 --disable-vorbis disable ogg-vorbis support. [default=detect]
@@ -1698,9 +1693,6 @@ Optional Features:
1698 --enable-tests enable tests [default=disabled] 1693 --enable-tests enable tests [default=disabled]
1699 --enable-coverage enable coverage profiling instrumentation 1694 --enable-coverage enable coverage profiling instrumentation
1700 [default=disabled] 1695 [default=disabled]
1701 --disable-install-examples
1702 disable installing examples (compiled or just
1703 source). [default==enabled]
1704 --enable-build-examples Enable building examples. This requires extra 1696 --enable-build-examples Enable building examples. This requires extra
1705 denpendencies. If you don't have them installed yet, 1697 denpendencies. If you don't have them installed yet,
1706 don't build with this option or it will fail. Build 1698 don't build with this option or it will fail. Build
@@ -1726,10 +1718,6 @@ Some influential environment variables:
1726 you have headers in a nonstandard directory <include dir> 1718 you have headers in a nonstandard directory <include dir>
1727 CPP C preprocessor 1719 CPP C preprocessor
1728 PKG_CONFIG path to pkg-config utility 1720 PKG_CONFIG path to pkg-config utility
1729 PKG_CONFIG_PATH
1730 directories to add to pkg-config's search path
1731 PKG_CONFIG_LIBDIR
1732 path overriding pkg-config's built-in search path
1733 EVIL_CFLAGS C compiler flags for EVIL, overriding pkg-config 1721 EVIL_CFLAGS C compiler flags for EVIL, overriding pkg-config
1734 EVIL_LIBS linker flags for EVIL, overriding pkg-config 1722 EVIL_LIBS linker flags for EVIL, overriding pkg-config
1735 LUA_CFLAGS C compiler flags for LUA, overriding pkg-config 1723 LUA_CFLAGS C compiler flags for LUA, overriding pkg-config
@@ -1850,10 +1838,10 @@ fi
1850test -n "$ac_init_help" && exit $ac_status 1838test -n "$ac_init_help" && exit $ac_status
1851if $ac_init_version; then 1839if $ac_init_version; then
1852 cat <<\_ACEOF 1840 cat <<\_ACEOF
1853edje configure 1.1.0 1841edje configure 1.1.99.67344
1854generated by GNU Autoconf 2.67 1842generated by GNU Autoconf 2.65
1855 1843
1856Copyright (C) 2010 Free Software Foundation, Inc. 1844Copyright (C) 2009 Free Software Foundation, Inc.
1857This configure script is free software; the Free Software Foundation 1845This configure script is free software; the Free Software Foundation
1858gives unlimited permission to copy, distribute and modify it. 1846gives unlimited permission to copy, distribute and modify it.
1859_ACEOF 1847_ACEOF
@@ -1957,7 +1945,7 @@ ac_fn_c_check_header_compile ()
1957 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 1945 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
1958 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 1946 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
1959$as_echo_n "checking for $2... " >&6; } 1947$as_echo_n "checking for $2... " >&6; }
1960if eval "test \"\${$3+set}\"" = set; then : 1948if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
1961 $as_echo_n "(cached) " >&6 1949 $as_echo_n "(cached) " >&6
1962else 1950else
1963 cat confdefs.h - <<_ACEOF >conftest.$ac_ext 1951 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -2000,7 +1988,7 @@ $as_echo "$ac_try_echo"; } >&5
2000 mv -f conftest.er1 conftest.err 1988 mv -f conftest.er1 conftest.err
2001 fi 1989 fi
2002 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 1990 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
2003 test $ac_status = 0; } > conftest.i && { 1991 test $ac_status = 0; } >/dev/null && {
2004 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || 1992 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
2005 test ! -s conftest.err 1993 test ! -s conftest.err
2006 }; then : 1994 }; then :
@@ -2066,7 +2054,7 @@ ac_fn_c_check_func ()
2066 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 2054 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
2067 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 2055 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
2068$as_echo_n "checking for $2... " >&6; } 2056$as_echo_n "checking for $2... " >&6; }
2069if eval "test \"\${$3+set}\"" = set; then : 2057if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
2070 $as_echo_n "(cached) " >&6 2058 $as_echo_n "(cached) " >&6
2071else 2059else
2072 cat confdefs.h - <<_ACEOF >conftest.$ac_ext 2060 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -2133,10 +2121,10 @@ $as_echo "$ac_res" >&6; }
2133ac_fn_c_check_header_mongrel () 2121ac_fn_c_check_header_mongrel ()
2134{ 2122{
2135 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 2123 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
2136 if eval "test \"\${$3+set}\"" = set; then : 2124 if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
2137 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 2125 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
2138$as_echo_n "checking for $2... " >&6; } 2126$as_echo_n "checking for $2... " >&6; }
2139if eval "test \"\${$3+set}\"" = set; then : 2127if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
2140 $as_echo_n "(cached) " >&6 2128 $as_echo_n "(cached) " >&6
2141fi 2129fi
2142eval ac_res=\$$3 2130eval ac_res=\$$3
@@ -2172,7 +2160,7 @@ if ac_fn_c_try_cpp "$LINENO"; then :
2172else 2160else
2173 ac_header_preproc=no 2161 ac_header_preproc=no
2174fi 2162fi
2175rm -f conftest.err conftest.i conftest.$ac_ext 2163rm -f conftest.err conftest.$ac_ext
2176{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 2164{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
2177$as_echo "$ac_header_preproc" >&6; } 2165$as_echo "$ac_header_preproc" >&6; }
2178 2166
@@ -2195,15 +2183,17 @@ $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
2195$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} 2183$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;}
2196 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 2184 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
2197$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} 2185$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
2198( $as_echo "## -------------------------------------------------------- ## 2186( cat <<\_ASBOX
2187## -------------------------------------------------------- ##
2199## Report this to enlightenment-devel@lists.sourceforge.net ## 2188## Report this to enlightenment-devel@lists.sourceforge.net ##
2200## -------------------------------------------------------- ##" 2189## -------------------------------------------------------- ##
2190_ASBOX
2201 ) | sed "s/^/$as_me: WARNING: /" >&2 2191 ) | sed "s/^/$as_me: WARNING: /" >&2
2202 ;; 2192 ;;
2203esac 2193esac
2204 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 2194 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
2205$as_echo_n "checking for $2... " >&6; } 2195$as_echo_n "checking for $2... " >&6; }
2206if eval "test \"\${$3+set}\"" = set; then : 2196if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
2207 $as_echo_n "(cached) " >&6 2197 $as_echo_n "(cached) " >&6
2208else 2198else
2209 eval "$3=\$ac_header_compiler" 2199 eval "$3=\$ac_header_compiler"
@@ -2219,8 +2209,8 @@ cat >config.log <<_ACEOF
2219This file contains any messages produced by compilers while 2209This file contains any messages produced by compilers while
2220running configure, to aid debugging if configure makes a mistake. 2210running configure, to aid debugging if configure makes a mistake.
2221 2211
2222It was created by edje $as_me 1.1.0, which was 2212It was created by edje $as_me 1.1.99.67344, which was
2223generated by GNU Autoconf 2.67. Invocation command line was 2213generated by GNU Autoconf 2.65. Invocation command line was
2224 2214
2225 $ $0 $@ 2215 $ $0 $@
2226 2216
@@ -2330,9 +2320,11 @@ trap 'exit_status=$?
2330 { 2320 {
2331 echo 2321 echo
2332 2322
2333 $as_echo "## ---------------- ## 2323 cat <<\_ASBOX
2324## ---------------- ##
2334## Cache variables. ## 2325## Cache variables. ##
2335## ---------------- ##" 2326## ---------------- ##
2327_ASBOX
2336 echo 2328 echo
2337 # The following way of writing the cache mishandles newlines in values, 2329 # The following way of writing the cache mishandles newlines in values,
2338( 2330(
@@ -2366,9 +2358,11 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
2366) 2358)
2367 echo 2359 echo
2368 2360
2369 $as_echo "## ----------------- ## 2361 cat <<\_ASBOX
2362## ----------------- ##
2370## Output variables. ## 2363## Output variables. ##
2371## ----------------- ##" 2364## ----------------- ##
2365_ASBOX
2372 echo 2366 echo
2373 for ac_var in $ac_subst_vars 2367 for ac_var in $ac_subst_vars
2374 do 2368 do
@@ -2381,9 +2375,11 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
2381 echo 2375 echo
2382 2376
2383 if test -n "$ac_subst_files"; then 2377 if test -n "$ac_subst_files"; then
2384 $as_echo "## ------------------- ## 2378 cat <<\_ASBOX
2379## ------------------- ##
2385## File substitutions. ## 2380## File substitutions. ##
2386## ------------------- ##" 2381## ------------------- ##
2382_ASBOX
2387 echo 2383 echo
2388 for ac_var in $ac_subst_files 2384 for ac_var in $ac_subst_files
2389 do 2385 do
@@ -2397,9 +2393,11 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
2397 fi 2393 fi
2398 2394
2399 if test -s confdefs.h; then 2395 if test -s confdefs.h; then
2400 $as_echo "## ----------- ## 2396 cat <<\_ASBOX
2397## ----------- ##
2401## confdefs.h. ## 2398## confdefs.h. ##
2402## ----------- ##" 2399## ----------- ##
2400_ASBOX
2403 echo 2401 echo
2404 cat confdefs.h 2402 cat confdefs.h
2405 echo 2403 echo
@@ -2454,12 +2452,7 @@ _ACEOF
2454ac_site_file1=NONE 2452ac_site_file1=NONE
2455ac_site_file2=NONE 2453ac_site_file2=NONE
2456if test -n "$CONFIG_SITE"; then 2454if test -n "$CONFIG_SITE"; then
2457 # We do not want a PATH search for config.site. 2455 ac_site_file1=$CONFIG_SITE
2458 case $CONFIG_SITE in #((
2459 -*) ac_site_file1=./$CONFIG_SITE;;
2460 */*) ac_site_file1=$CONFIG_SITE;;
2461 *) ac_site_file1=./$CONFIG_SITE;;
2462 esac
2463elif test "x$prefix" != xNONE; then 2456elif test "x$prefix" != xNONE; then
2464 ac_site_file1=$prefix/share/config.site 2457 ac_site_file1=$prefix/share/config.site
2465 ac_site_file2=$prefix/etc/config.site 2458 ac_site_file2=$prefix/etc/config.site
@@ -2474,11 +2467,7 @@ do
2474 { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 2467 { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
2475$as_echo "$as_me: loading site script $ac_site_file" >&6;} 2468$as_echo "$as_me: loading site script $ac_site_file" >&6;}
2476 sed 's/^/| /' "$ac_site_file" >&5 2469 sed 's/^/| /' "$ac_site_file" >&5
2477 . "$ac_site_file" \ 2470 . "$ac_site_file"
2478 || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
2479$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
2480as_fn_error $? "failed to load site script $ac_site_file
2481See \`config.log' for more details" "$LINENO" 5 ; }
2482 fi 2471 fi
2483done 2472done
2484 2473
@@ -2554,7 +2543,7 @@ if $ac_cache_corrupted; then
2554$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 2543$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
2555 { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 2544 { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
2556$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} 2545$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
2557 as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 2546 as_fn_error "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
2558fi 2547fi
2559## -------------------- ## 2548## -------------------- ##
2560## Main body of script. ## 2549## Main body of script. ##
@@ -2580,22 +2569,16 @@ am__api_version='1.11'
2580 2569
2581ac_aux_dir= 2570ac_aux_dir=
2582for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do 2571for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
2583 if test -f "$ac_dir/install-sh"; then 2572 for ac_t in install-sh install.sh shtool; do
2584 ac_aux_dir=$ac_dir 2573 if test -f "$ac_dir/$ac_t"; then
2585 ac_install_sh="$ac_aux_dir/install-sh -c" 2574 ac_aux_dir=$ac_dir
2586 break 2575 ac_install_sh="$ac_aux_dir/$ac_t -c"
2587 elif test -f "$ac_dir/install.sh"; then 2576 break 2
2588 ac_aux_dir=$ac_dir 2577 fi
2589 ac_install_sh="$ac_aux_dir/install.sh -c" 2578 done
2590 break
2591 elif test -f "$ac_dir/shtool"; then
2592 ac_aux_dir=$ac_dir
2593 ac_install_sh="$ac_aux_dir/shtool install -c"
2594 break
2595 fi
2596done 2579done
2597if test -z "$ac_aux_dir"; then 2580if test -z "$ac_aux_dir"; then
2598 as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 2581 as_fn_error "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
2599fi 2582fi
2600 2583
2601# These three variables are undocumented and unsupported, 2584# These three variables are undocumented and unsupported,
@@ -2711,11 +2694,11 @@ am_lf='
2711' 2694'
2712case `pwd` in 2695case `pwd` in
2713 *[\\\"\#\$\&\'\`$am_lf]*) 2696 *[\\\"\#\$\&\'\`$am_lf]*)
2714 as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5 ;; 2697 as_fn_error "unsafe absolute working directory name" "$LINENO" 5;;
2715esac 2698esac
2716case $srcdir in 2699case $srcdir in
2717 *[\\\"\#\$\&\'\`$am_lf\ \ ]*) 2700 *[\\\"\#\$\&\'\`$am_lf\ \ ]*)
2718 as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5 ;; 2701 as_fn_error "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;;
2719esac 2702esac
2720 2703
2721# Do `set' in a subshell so we don't clobber the current shell's 2704# Do `set' in a subshell so we don't clobber the current shell's
@@ -2737,7 +2720,7 @@ if (
2737 # if, for instance, CONFIG_SHELL is bash and it inherits a 2720 # if, for instance, CONFIG_SHELL is bash and it inherits a
2738 # broken ls alias from the environment. This has actually 2721 # broken ls alias from the environment. This has actually
2739 # happened. Such a system could not be considered "sane". 2722 # happened. Such a system could not be considered "sane".
2740 as_fn_error $? "ls -t appears to fail. Make sure there is not a broken 2723 as_fn_error "ls -t appears to fail. Make sure there is not a broken
2741alias in your environment" "$LINENO" 5 2724alias in your environment" "$LINENO" 5
2742 fi 2725 fi
2743 2726
@@ -2747,7 +2730,7 @@ then
2747 # Ok. 2730 # Ok.
2748 : 2731 :
2749else 2732else
2750 as_fn_error $? "newly created file is older than distributed files! 2733 as_fn_error "newly created file is older than distributed files!
2751Check your system clock" "$LINENO" 5 2734Check your system clock" "$LINENO" 5
2752fi 2735fi
2753{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 2736{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
@@ -2985,7 +2968,7 @@ done
2985$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } 2968$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
2986set x ${MAKE-make} 2969set x ${MAKE-make}
2987ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` 2970ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
2988if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\"" = set; then : 2971if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then :
2989 $as_echo_n "(cached) " >&6 2972 $as_echo_n "(cached) " >&6
2990else 2973else
2991 cat >conftest.make <<\_ACEOF 2974 cat >conftest.make <<\_ACEOF
@@ -2993,7 +2976,7 @@ SHELL = /bin/sh
2993all: 2976all:
2994 @echo '@@@%%%=$(MAKE)=@@@%%%' 2977 @echo '@@@%%%=$(MAKE)=@@@%%%'
2995_ACEOF 2978_ACEOF
2996# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. 2979# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
2997case `${MAKE-make} -f conftest.make 2>/dev/null` in 2980case `${MAKE-make} -f conftest.make 2>/dev/null` in
2998 *@@@%%%=?*=@@@%%%*) 2981 *@@@%%%=?*=@@@%%%*)
2999 eval ac_cv_prog_make_${ac_make}_set=yes;; 2982 eval ac_cv_prog_make_${ac_make}_set=yes;;
@@ -3027,7 +3010,7 @@ if test "`cd $srcdir && pwd`" != "`pwd`"; then
3027 am__isrc=' -I$(srcdir)' 3010 am__isrc=' -I$(srcdir)'
3028 # test to see if srcdir already configured 3011 # test to see if srcdir already configured
3029 if test -f $srcdir/config.status; then 3012 if test -f $srcdir/config.status; then
3030 as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 3013 as_fn_error "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
3031 fi 3014 fi
3032fi 3015fi
3033 3016
@@ -3043,7 +3026,7 @@ fi
3043 3026
3044# Define the identity of the package. 3027# Define the identity of the package.
3045 PACKAGE='edje' 3028 PACKAGE='edje'
3046 VERSION='1.1.0' 3029 VERSION='1.1.99.67344'
3047 3030
3048 3031
3049cat >>confdefs.h <<_ACEOF 3032cat >>confdefs.h <<_ACEOF
@@ -3098,7 +3081,7 @@ AM_BACKSLASH='\'
3098 3081
3099# Make sure we can run config.sub. 3082# Make sure we can run config.sub.
3100$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || 3083$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
3101 as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 3084 as_fn_error "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
3102 3085
3103{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 3086{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
3104$as_echo_n "checking build system type... " >&6; } 3087$as_echo_n "checking build system type... " >&6; }
@@ -3109,16 +3092,16 @@ else
3109test "x$ac_build_alias" = x && 3092test "x$ac_build_alias" = x &&
3110 ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` 3093 ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
3111test "x$ac_build_alias" = x && 3094test "x$ac_build_alias" = x &&
3112 as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 3095 as_fn_error "cannot guess build type; you must specify one" "$LINENO" 5
3113ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || 3096ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
3114 as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 3097 as_fn_error "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
3115 3098
3116fi 3099fi
3117{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 3100{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
3118$as_echo "$ac_cv_build" >&6; } 3101$as_echo "$ac_cv_build" >&6; }
3119case $ac_cv_build in 3102case $ac_cv_build in
3120*-*-*) ;; 3103*-*-*) ;;
3121*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5 ;; 3104*) as_fn_error "invalid value of canonical build" "$LINENO" 5;;
3122esac 3105esac
3123build=$ac_cv_build 3106build=$ac_cv_build
3124ac_save_IFS=$IFS; IFS='-' 3107ac_save_IFS=$IFS; IFS='-'
@@ -3143,7 +3126,7 @@ else
3143 ac_cv_host=$ac_cv_build 3126 ac_cv_host=$ac_cv_build
3144else 3127else
3145 ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || 3128 ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
3146 as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 3129 as_fn_error "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
3147fi 3130fi
3148 3131
3149fi 3132fi
@@ -3151,7 +3134,7 @@ fi
3151$as_echo "$ac_cv_host" >&6; } 3134$as_echo "$ac_cv_host" >&6; }
3152case $ac_cv_host in 3135case $ac_cv_host in
3153*-*-*) ;; 3136*-*-*) ;;
3154*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5 ;; 3137*) as_fn_error "invalid value of canonical host" "$LINENO" 5;;
3155esac 3138esac
3156host=$ac_cv_host 3139host=$ac_cv_host
3157ac_save_IFS=$IFS; IFS='-' 3140ac_save_IFS=$IFS; IFS='-'
@@ -3170,7 +3153,7 @@ case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
3170enable_win32_dll=yes 3153enable_win32_dll=yes
3171 3154
3172case $host in 3155case $host in
3173*-*-cygwin* | *-*-mingw* | *-*-pw32*) 3156*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*)
3174 if test -n "$ac_tool_prefix"; then 3157 if test -n "$ac_tool_prefix"; then
3175 # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. 3158 # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args.
3176set dummy ${ac_tool_prefix}as; ac_word=$2 3159set dummy ${ac_tool_prefix}as; ac_word=$2
@@ -3857,8 +3840,8 @@ fi
3857 3840
3858test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 3841test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
3859$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 3842$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
3860as_fn_error $? "no acceptable C compiler found in \$PATH 3843as_fn_error "no acceptable C compiler found in \$PATH
3861See \`config.log' for more details" "$LINENO" 5 ; } 3844See \`config.log' for more details." "$LINENO" 5; }
3862 3845
3863# Provide some information about the compiler. 3846# Provide some information about the compiler.
3864$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 3847$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
@@ -3972,8 +3955,9 @@ sed 's/^/| /' conftest.$ac_ext >&5
3972 3955
3973{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 3956{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
3974$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 3957$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
3975as_fn_error 77 "C compiler cannot create executables 3958{ as_fn_set_status 77
3976See \`config.log' for more details" "$LINENO" 5 ; } 3959as_fn_error "C compiler cannot create executables
3960See \`config.log' for more details." "$LINENO" 5; }; }
3977else 3961else
3978 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 3962 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
3979$as_echo "yes" >&6; } 3963$as_echo "yes" >&6; }
@@ -4015,8 +3999,8 @@ done
4015else 3999else
4016 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 4000 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
4017$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 4001$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
4018as_fn_error $? "cannot compute suffix of executables: cannot compile and link 4002as_fn_error "cannot compute suffix of executables: cannot compile and link
4019See \`config.log' for more details" "$LINENO" 5 ; } 4003See \`config.log' for more details." "$LINENO" 5; }
4020fi 4004fi
4021rm -f conftest conftest$ac_cv_exeext 4005rm -f conftest conftest$ac_cv_exeext
4022{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 4006{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
@@ -4073,9 +4057,9 @@ $as_echo "$ac_try_echo"; } >&5
4073 else 4057 else
4074 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 4058 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
4075$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 4059$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
4076as_fn_error $? "cannot run C compiled programs. 4060as_fn_error "cannot run C compiled programs.
4077If you meant to cross compile, use \`--host'. 4061If you meant to cross compile, use \`--host'.
4078See \`config.log' for more details" "$LINENO" 5 ; } 4062See \`config.log' for more details." "$LINENO" 5; }
4079 fi 4063 fi
4080 fi 4064 fi
4081fi 4065fi
@@ -4126,8 +4110,8 @@ sed 's/^/| /' conftest.$ac_ext >&5
4126 4110
4127{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 4111{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
4128$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 4112$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
4129as_fn_error $? "cannot compute suffix of object files: cannot compile 4113as_fn_error "cannot compute suffix of object files: cannot compile
4130See \`config.log' for more details" "$LINENO" 5 ; } 4114See \`config.log' for more details." "$LINENO" 5; }
4131fi 4115fi
4132rm -f conftest.$ac_cv_objext conftest.$ac_ext 4116rm -f conftest.$ac_cv_objext conftest.$ac_ext
4133fi 4117fi
@@ -4531,7 +4515,7 @@ esac
4531 done 4515 done
4532IFS=$as_save_IFS 4516IFS=$as_save_IFS
4533 if test -z "$ac_cv_path_SED"; then 4517 if test -z "$ac_cv_path_SED"; then
4534 as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 4518 as_fn_error "no acceptable sed could be found in \$PATH" "$LINENO" 5
4535 fi 4519 fi
4536else 4520else
4537 ac_cv_path_SED=$SED 4521 ac_cv_path_SED=$SED
@@ -4607,7 +4591,7 @@ esac
4607 done 4591 done
4608IFS=$as_save_IFS 4592IFS=$as_save_IFS
4609 if test -z "$ac_cv_path_GREP"; then 4593 if test -z "$ac_cv_path_GREP"; then
4610 as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 4594 as_fn_error "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
4611 fi 4595 fi
4612else 4596else
4613 ac_cv_path_GREP=$GREP 4597 ac_cv_path_GREP=$GREP
@@ -4673,7 +4657,7 @@ esac
4673 done 4657 done
4674IFS=$as_save_IFS 4658IFS=$as_save_IFS
4675 if test -z "$ac_cv_path_EGREP"; then 4659 if test -z "$ac_cv_path_EGREP"; then
4676 as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 4660 as_fn_error "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
4677 fi 4661 fi
4678else 4662else
4679 ac_cv_path_EGREP=$EGREP 4663 ac_cv_path_EGREP=$EGREP
@@ -4740,7 +4724,7 @@ esac
4740 done 4724 done
4741IFS=$as_save_IFS 4725IFS=$as_save_IFS
4742 if test -z "$ac_cv_path_FGREP"; then 4726 if test -z "$ac_cv_path_FGREP"; then
4743 as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 4727 as_fn_error "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
4744 fi 4728 fi
4745else 4729else
4746 ac_cv_path_FGREP=$FGREP 4730 ac_cv_path_FGREP=$FGREP
@@ -4856,7 +4840,7 @@ else
4856 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 4840 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
4857$as_echo "no" >&6; } 4841$as_echo "no" >&6; }
4858fi 4842fi
4859test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 4843test -z "$LD" && as_fn_error "no acceptable ld found in \$PATH" "$LINENO" 5
4860{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 4844{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
4861$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } 4845$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
4862if test "${lt_cv_prog_gnu_ld+set}" = set; then : 4846if test "${lt_cv_prog_gnu_ld+set}" = set; then :
@@ -5058,13 +5042,13 @@ if test "${lt_cv_nm_interface+set}" = set; then :
5058else 5042else
5059 lt_cv_nm_interface="BSD nm" 5043 lt_cv_nm_interface="BSD nm"
5060 echo "int some_variable = 0;" > conftest.$ac_ext 5044 echo "int some_variable = 0;" > conftest.$ac_ext
5061 (eval echo "\"\$as_me:5061: $ac_compile\"" >&5) 5045 (eval echo "\"\$as_me:5045: $ac_compile\"" >&5)
5062 (eval "$ac_compile" 2>conftest.err) 5046 (eval "$ac_compile" 2>conftest.err)
5063 cat conftest.err >&5 5047 cat conftest.err >&5
5064 (eval echo "\"\$as_me:5064: $NM \\\"conftest.$ac_objext\\\"\"" >&5) 5048 (eval echo "\"\$as_me:5048: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
5065 (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) 5049 (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
5066 cat conftest.err >&5 5050 cat conftest.err >&5
5067 (eval echo "\"\$as_me:5067: output\"" >&5) 5051 (eval echo "\"\$as_me:5051: output\"" >&5)
5068 cat conftest.out >&5 5052 cat conftest.out >&5
5069 if $GREP 'External.*some_variable' conftest.out > /dev/null; then 5053 if $GREP 'External.*some_variable' conftest.out > /dev/null; then
5070 lt_cv_nm_interface="MS dumpbin" 5054 lt_cv_nm_interface="MS dumpbin"
@@ -5110,7 +5094,7 @@ else
5110 lt_cv_sys_max_cmd_len=-1; 5094 lt_cv_sys_max_cmd_len=-1;
5111 ;; 5095 ;;
5112 5096
5113 cygwin* | mingw*) 5097 cygwin* | mingw* | cegcc*)
5114 # On Win9x/ME, this test blows up -- it succeeds, but takes 5098 # On Win9x/ME, this test blows up -- it succeeds, but takes
5115 # about 5 minutes as the teststring grows exponentially. 5099 # about 5 minutes as the teststring grows exponentially.
5116 # Worse, since 9x/ME are not pre-emptively multitasking, 5100 # Worse, since 9x/ME are not pre-emptively multitasking,
@@ -5311,6 +5295,104 @@ esac
5311 5295
5312 5296
5313 5297
5298if test -n "$ac_tool_prefix"; then
5299 # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
5300set dummy ${ac_tool_prefix}objdump; ac_word=$2
5301{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
5302$as_echo_n "checking for $ac_word... " >&6; }
5303if test "${ac_cv_prog_OBJDUMP+set}" = set; then :
5304 $as_echo_n "(cached) " >&6
5305else
5306 if test -n "$OBJDUMP"; then
5307 ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.
5308else
5309as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
5310for as_dir in $PATH
5311do
5312 IFS=$as_save_IFS
5313 test -z "$as_dir" && as_dir=.
5314 for ac_exec_ext in '' $ac_executable_extensions; do
5315 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
5316 ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
5317 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
5318 break 2
5319 fi
5320done
5321 done
5322IFS=$as_save_IFS
5323
5324fi
5325fi
5326OBJDUMP=$ac_cv_prog_OBJDUMP
5327if test -n "$OBJDUMP"; then
5328 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
5329$as_echo "$OBJDUMP" >&6; }
5330else
5331 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
5332$as_echo "no" >&6; }
5333fi
5334
5335
5336fi
5337if test -z "$ac_cv_prog_OBJDUMP"; then
5338 ac_ct_OBJDUMP=$OBJDUMP
5339 # Extract the first word of "objdump", so it can be a program name with args.
5340set dummy objdump; ac_word=$2
5341{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
5342$as_echo_n "checking for $ac_word... " >&6; }
5343if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then :
5344 $as_echo_n "(cached) " >&6
5345else
5346 if test -n "$ac_ct_OBJDUMP"; then
5347 ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test.
5348else
5349as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
5350for as_dir in $PATH
5351do
5352 IFS=$as_save_IFS
5353 test -z "$as_dir" && as_dir=.
5354 for ac_exec_ext in '' $ac_executable_extensions; do
5355 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
5356 ac_cv_prog_ac_ct_OBJDUMP="objdump"
5357 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
5358 break 2
5359 fi
5360done
5361 done
5362IFS=$as_save_IFS
5363
5364fi
5365fi
5366ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
5367if test -n "$ac_ct_OBJDUMP"; then
5368 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
5369$as_echo "$ac_ct_OBJDUMP" >&6; }
5370else
5371 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
5372$as_echo "no" >&6; }
5373fi
5374
5375 if test "x$ac_ct_OBJDUMP" = x; then
5376 OBJDUMP="false"
5377 else
5378 case $cross_compiling:$ac_tool_warned in
5379yes:)
5380{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
5381$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
5382ac_tool_warned=yes ;;
5383esac
5384 OBJDUMP=$ac_ct_OBJDUMP
5385 fi
5386else
5387 OBJDUMP="$ac_cv_prog_OBJDUMP"
5388fi
5389
5390test -z "$OBJDUMP" && OBJDUMP=objdump
5391
5392
5393
5394
5395
5314 5396
5315{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 5397{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5
5316$as_echo_n "checking how to recognize dependent libraries... " >&6; } 5398$as_echo_n "checking how to recognize dependent libraries... " >&6; }
@@ -5365,6 +5447,12 @@ mingw* | pw32*)
5365 fi 5447 fi
5366 ;; 5448 ;;
5367 5449
5450cegcc)
5451 # use the weaker test based on 'objdump'. See mingw*.
5452 lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
5453 lt_cv_file_magic_cmd='$OBJDUMP -f'
5454 ;;
5455
5368darwin* | rhapsody*) 5456darwin* | rhapsody*)
5369 lt_cv_deplibs_check_method=pass_all 5457 lt_cv_deplibs_check_method=pass_all
5370 ;; 5458 ;;
@@ -5423,7 +5511,7 @@ irix5* | irix6* | nonstopux*)
5423 ;; 5511 ;;
5424 5512
5425# This must be Linux ELF. 5513# This must be Linux ELF.
5426linux* | k*bsd*-gnu) 5514linux* | k*bsd*-gnu | kopensolaris*-gnu)
5427 lt_cv_deplibs_check_method=pass_all 5515 lt_cv_deplibs_check_method=pass_all
5428 ;; 5516 ;;
5429 5517
@@ -5903,7 +5991,7 @@ case $host_os in
5903aix*) 5991aix*)
5904 symcode='[BCDT]' 5992 symcode='[BCDT]'
5905 ;; 5993 ;;
5906cygwin* | mingw* | pw32*) 5994cygwin* | mingw* | pw32* | cegcc*)
5907 symcode='[ABCDGISTW]' 5995 symcode='[ABCDGISTW]'
5908 ;; 5996 ;;
5909hpux*) 5997hpux*)
@@ -6163,7 +6251,7 @@ ia64-*-hpux*)
6163 ;; 6251 ;;
6164*-*-irix6*) 6252*-*-irix6*)
6165 # Find out which ABI we are using. 6253 # Find out which ABI we are using.
6166 echo '#line 6166 "configure"' > conftest.$ac_ext 6254 echo '#line 6254 "configure"' > conftest.$ac_ext
6167 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 6255 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
6168 (eval $ac_compile) 2>&5 6256 (eval $ac_compile) 2>&5
6169 ac_status=$? 6257 ac_status=$?
@@ -6952,7 +7040,7 @@ else
6952 # Broken: fails on valid input. 7040 # Broken: fails on valid input.
6953continue 7041continue
6954fi 7042fi
6955rm -f conftest.err conftest.i conftest.$ac_ext 7043rm -f conftest.err conftest.$ac_ext
6956 7044
6957 # OK, works on sane cases. Now check whether nonexistent headers 7045 # OK, works on sane cases. Now check whether nonexistent headers
6958 # can be detected and how. 7046 # can be detected and how.
@@ -6968,11 +7056,11 @@ else
6968ac_preproc_ok=: 7056ac_preproc_ok=:
6969break 7057break
6970fi 7058fi
6971rm -f conftest.err conftest.i conftest.$ac_ext 7059rm -f conftest.err conftest.$ac_ext
6972 7060
6973done 7061done
6974# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. 7062# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
6975rm -f conftest.i conftest.err conftest.$ac_ext 7063rm -f conftest.err conftest.$ac_ext
6976if $ac_preproc_ok; then : 7064if $ac_preproc_ok; then :
6977 break 7065 break
6978fi 7066fi
@@ -7011,7 +7099,7 @@ else
7011 # Broken: fails on valid input. 7099 # Broken: fails on valid input.
7012continue 7100continue
7013fi 7101fi
7014rm -f conftest.err conftest.i conftest.$ac_ext 7102rm -f conftest.err conftest.$ac_ext
7015 7103
7016 # OK, works on sane cases. Now check whether nonexistent headers 7104 # OK, works on sane cases. Now check whether nonexistent headers
7017 # can be detected and how. 7105 # can be detected and how.
@@ -7027,18 +7115,18 @@ else
7027ac_preproc_ok=: 7115ac_preproc_ok=:
7028break 7116break
7029fi 7117fi
7030rm -f conftest.err conftest.i conftest.$ac_ext 7118rm -f conftest.err conftest.$ac_ext
7031 7119
7032done 7120done
7033# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. 7121# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
7034rm -f conftest.i conftest.err conftest.$ac_ext 7122rm -f conftest.err conftest.$ac_ext
7035if $ac_preproc_ok; then : 7123if $ac_preproc_ok; then :
7036 7124
7037else 7125else
7038 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 7126 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
7039$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 7127$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
7040as_fn_error $? "C preprocessor \"$CPP\" fails sanity check 7128as_fn_error "C preprocessor \"$CPP\" fails sanity check
7041See \`config.log' for more details" "$LINENO" 5 ; } 7129See \`config.log' for more details." "$LINENO" 5; }
7042fi 7130fi
7043 7131
7044ac_ext=c 7132ac_ext=c
@@ -7167,7 +7255,8 @@ do :
7167 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` 7255 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
7168ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default 7256ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
7169" 7257"
7170if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : 7258eval as_val=\$$as_ac_Header
7259 if test "x$as_val" = x""yes; then :
7171 cat >>confdefs.h <<_ACEOF 7260 cat >>confdefs.h <<_ACEOF
7172#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 7261#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
7173_ACEOF 7262_ACEOF
@@ -7690,11 +7779,11 @@ else
7690 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ 7779 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
7691 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ 7780 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
7692 -e 's:$: $lt_compiler_flag:'` 7781 -e 's:$: $lt_compiler_flag:'`
7693 (eval echo "\"\$as_me:7693: $lt_compile\"" >&5) 7782 (eval echo "\"\$as_me:7782: $lt_compile\"" >&5)
7694 (eval "$lt_compile" 2>conftest.err) 7783 (eval "$lt_compile" 2>conftest.err)
7695 ac_status=$? 7784 ac_status=$?
7696 cat conftest.err >&5 7785 cat conftest.err >&5
7697 echo "$as_me:7697: \$? = $ac_status" >&5 7786 echo "$as_me:7786: \$? = $ac_status" >&5
7698 if (exit $ac_status) && test -s "$ac_outfile"; then 7787 if (exit $ac_status) && test -s "$ac_outfile"; then
7699 # The compiler can only warn and ignore the option if not recognized 7788 # The compiler can only warn and ignore the option if not recognized
7700 # So say no if there are warnings other than the usual output. 7789 # So say no if there are warnings other than the usual output.
@@ -7762,7 +7851,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
7762 # PIC is the default for these OSes. 7851 # PIC is the default for these OSes.
7763 ;; 7852 ;;
7764 7853
7765 mingw* | cygwin* | pw32* | os2*) 7854 mingw* | cygwin* | pw32* | os2* | cegcc*)
7766 # This hack is so that the source file can tell whether it is being 7855 # This hack is so that the source file can tell whether it is being
7767 # built for inclusion in a dll (and should export symbols for example). 7856 # built for inclusion in a dll (and should export symbols for example).
7768 # Although the cygwin gcc ignores -fPIC, still need this for old-style 7857 # Although the cygwin gcc ignores -fPIC, still need this for old-style
@@ -7777,10 +7866,11 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
7777 ;; 7866 ;;
7778 7867
7779 hpux*) 7868 hpux*)
7780 # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but 7869 # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
7781 # not for PA HP-UX. 7870 # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
7871 # sets the default TLS model and affects inlining.
7782 case $host_cpu in 7872 case $host_cpu in
7783 hppa*64*|ia64*) 7873 hppa*64*)
7784 # +Z the default 7874 # +Z the default
7785 ;; 7875 ;;
7786 *) 7876 *)
@@ -7830,7 +7920,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
7830 fi 7920 fi
7831 ;; 7921 ;;
7832 7922
7833 mingw* | cygwin* | pw32* | os2*) 7923 mingw* | cygwin* | pw32* | os2* | cegcc*)
7834 # This hack is so that the source file can tell whether it is being 7924 # This hack is so that the source file can tell whether it is being
7835 # built for inclusion in a dll (and should export symbols for example). 7925 # built for inclusion in a dll (and should export symbols for example).
7836 lt_prog_compiler_pic='-DDLL_EXPORT' 7926 lt_prog_compiler_pic='-DDLL_EXPORT'
@@ -7858,13 +7948,27 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
7858 lt_prog_compiler_static='-non_shared' 7948 lt_prog_compiler_static='-non_shared'
7859 ;; 7949 ;;
7860 7950
7861 linux* | k*bsd*-gnu) 7951 linux* | k*bsd*-gnu | kopensolaris*-gnu)
7862 case $cc_basename in 7952 case $cc_basename in
7863 icc* | ecc* | ifort*) 7953 # old Intel for x86_64 which still supported -KPIC.
7954 ecc*)
7864 lt_prog_compiler_wl='-Wl,' 7955 lt_prog_compiler_wl='-Wl,'
7865 lt_prog_compiler_pic='-KPIC' 7956 lt_prog_compiler_pic='-KPIC'
7866 lt_prog_compiler_static='-static' 7957 lt_prog_compiler_static='-static'
7867 ;; 7958 ;;
7959 # icc used to be incompatible with GCC.
7960 # ICC 10 doesn't accept -KPIC any more.
7961 icc* | ifort*)
7962 lt_prog_compiler_wl='-Wl,'
7963 lt_prog_compiler_pic='-fPIC'
7964 lt_prog_compiler_static='-static'
7965 ;;
7966 # Lahey Fortran 8.1.
7967 lf95*)
7968 lt_prog_compiler_wl='-Wl,'
7969 lt_prog_compiler_pic='--shared'
7970 lt_prog_compiler_static='--static'
7971 ;;
7868 pgcc* | pgf77* | pgf90* | pgf95*) 7972 pgcc* | pgf77* | pgf90* | pgf95*)
7869 # Portland Group compilers (*not* the Pentium gcc compiler, 7973 # Portland Group compilers (*not* the Pentium gcc compiler,
7870 # which looks to be a dead project) 7974 # which looks to be a dead project)
@@ -8014,11 +8118,11 @@ else
8014 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ 8118 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
8015 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ 8119 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
8016 -e 's:$: $lt_compiler_flag:'` 8120 -e 's:$: $lt_compiler_flag:'`
8017 (eval echo "\"\$as_me:8017: $lt_compile\"" >&5) 8121 (eval echo "\"\$as_me:8121: $lt_compile\"" >&5)
8018 (eval "$lt_compile" 2>conftest.err) 8122 (eval "$lt_compile" 2>conftest.err)
8019 ac_status=$? 8123 ac_status=$?
8020 cat conftest.err >&5 8124 cat conftest.err >&5
8021 echo "$as_me:8021: \$? = $ac_status" >&5 8125 echo "$as_me:8125: \$? = $ac_status" >&5
8022 if (exit $ac_status) && test -s "$ac_outfile"; then 8126 if (exit $ac_status) && test -s "$ac_outfile"; then
8023 # The compiler can only warn and ignore the option if not recognized 8127 # The compiler can only warn and ignore the option if not recognized
8024 # So say no if there are warnings other than the usual output. 8128 # So say no if there are warnings other than the usual output.
@@ -8119,11 +8223,11 @@ else
8119 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ 8223 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
8120 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ 8224 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
8121 -e 's:$: $lt_compiler_flag:'` 8225 -e 's:$: $lt_compiler_flag:'`
8122 (eval echo "\"\$as_me:8122: $lt_compile\"" >&5) 8226 (eval echo "\"\$as_me:8226: $lt_compile\"" >&5)
8123 (eval "$lt_compile" 2>out/conftest.err) 8227 (eval "$lt_compile" 2>out/conftest.err)
8124 ac_status=$? 8228 ac_status=$?
8125 cat out/conftest.err >&5 8229 cat out/conftest.err >&5
8126 echo "$as_me:8126: \$? = $ac_status" >&5 8230 echo "$as_me:8230: \$? = $ac_status" >&5
8127 if (exit $ac_status) && test -s out/conftest2.$ac_objext 8231 if (exit $ac_status) && test -s out/conftest2.$ac_objext
8128 then 8232 then
8129 # The compiler can only warn and ignore the option if not recognized 8233 # The compiler can only warn and ignore the option if not recognized
@@ -8174,11 +8278,11 @@ else
8174 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ 8278 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
8175 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ 8279 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
8176 -e 's:$: $lt_compiler_flag:'` 8280 -e 's:$: $lt_compiler_flag:'`
8177 (eval echo "\"\$as_me:8177: $lt_compile\"" >&5) 8281 (eval echo "\"\$as_me:8281: $lt_compile\"" >&5)
8178 (eval "$lt_compile" 2>out/conftest.err) 8282 (eval "$lt_compile" 2>out/conftest.err)
8179 ac_status=$? 8283 ac_status=$?
8180 cat out/conftest.err >&5 8284 cat out/conftest.err >&5
8181 echo "$as_me:8181: \$? = $ac_status" >&5 8285 echo "$as_me:8285: \$? = $ac_status" >&5
8182 if (exit $ac_status) && test -s out/conftest2.$ac_objext 8286 if (exit $ac_status) && test -s out/conftest2.$ac_objext
8183 then 8287 then
8184 # The compiler can only warn and ignore the option if not recognized 8288 # The compiler can only warn and ignore the option if not recognized
@@ -8278,7 +8382,7 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie
8278 extract_expsyms_cmds= 8382 extract_expsyms_cmds=
8279 8383
8280 case $host_os in 8384 case $host_os in
8281 cygwin* | mingw* | pw32*) 8385 cygwin* | mingw* | pw32* | cegcc*)
8282 # FIXME: the MSVC++ port hasn't been tested in a loooong time 8386 # FIXME: the MSVC++ port hasn't been tested in a loooong time
8283 # When not using gcc, we currently assume that we are using 8387 # When not using gcc, we currently assume that we are using
8284 # Microsoft Visual C++. 8388 # Microsoft Visual C++.
@@ -8293,6 +8397,9 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie
8293 openbsd*) 8397 openbsd*)
8294 with_gnu_ld=no 8398 with_gnu_ld=no
8295 ;; 8399 ;;
8400 linux* | k*bsd*-gnu)
8401 link_all_deplibs=no
8402 ;;
8296 esac 8403 esac
8297 8404
8298 ld_shlibs=yes 8405 ld_shlibs=yes
@@ -8314,6 +8421,7 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie
8314 fi 8421 fi
8315 supports_anon_versioning=no 8422 supports_anon_versioning=no
8316 case `$LD -v 2>&1` in 8423 case `$LD -v 2>&1` in
8424 *GNU\ gold*) supports_anon_versioning=yes ;;
8317 *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 8425 *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
8318 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... 8426 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
8319 *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... 8427 *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
@@ -8365,7 +8473,7 @@ _LT_EOF
8365 fi 8473 fi
8366 ;; 8474 ;;
8367 8475
8368 cygwin* | mingw* | pw32*) 8476 cygwin* | mingw* | pw32* | cegcc*)
8369 # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, 8477 # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
8370 # as there is no search path for DLLs. 8478 # as there is no search path for DLLs.
8371 hardcode_libdir_flag_spec='-L$libdir' 8479 hardcode_libdir_flag_spec='-L$libdir'
@@ -8405,7 +8513,7 @@ _LT_EOF
8405 archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' 8513 archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
8406 ;; 8514 ;;
8407 8515
8408 gnu* | linux* | tpf* | k*bsd*-gnu) 8516 gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
8409 tmp_diet=no 8517 tmp_diet=no
8410 if test "$host_os" = linux-dietlibc; then 8518 if test "$host_os" = linux-dietlibc; then
8411 case $cc_basename in 8519 case $cc_basename in
@@ -8431,6 +8539,9 @@ _LT_EOF
8431 tmp_addflag=' -i_dynamic -nofor_main' ;; 8539 tmp_addflag=' -i_dynamic -nofor_main' ;;
8432 ifc* | ifort*) # Intel Fortran compiler 8540 ifc* | ifort*) # Intel Fortran compiler
8433 tmp_addflag=' -nofor_main' ;; 8541 tmp_addflag=' -nofor_main' ;;
8542 lf95*) # Lahey Fortran 8.1
8543 whole_archive_flag_spec=
8544 tmp_sharedflag='--shared' ;;
8434 xl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) 8545 xl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
8435 tmp_sharedflag='-qmkshrobj' 8546 tmp_sharedflag='-qmkshrobj'
8436 tmp_addflag= ;; 8547 tmp_addflag= ;;
@@ -8663,6 +8774,7 @@ _LT_EOF
8663 fi 8774 fi
8664 fi 8775 fi
8665 8776
8777 export_dynamic_flag_spec='${wl}-bexpall'
8666 # It seems that -bexpall does not export symbols beginning with 8778 # It seems that -bexpall does not export symbols beginning with
8667 # underscore (_), so it is better to generate a list of symbols to export. 8779 # underscore (_), so it is better to generate a list of symbols to export.
8668 always_export_symbols=yes 8780 always_export_symbols=yes
@@ -8775,7 +8887,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
8775 export_dynamic_flag_spec=-rdynamic 8887 export_dynamic_flag_spec=-rdynamic
8776 ;; 8888 ;;
8777 8889
8778 cygwin* | mingw* | pw32*) 8890 cygwin* | mingw* | pw32* | cegcc*)
8779 # When not using gcc, we currently assume that we are using 8891 # When not using gcc, we currently assume that we are using
8780 # Microsoft Visual C++. 8892 # Microsoft Visual C++.
8781 # hardcode_libdir_flag_spec is actually meaningless, as there is 8893 # hardcode_libdir_flag_spec is actually meaningless, as there is
@@ -8806,7 +8918,11 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
8806 whole_archive_flag_spec='' 8918 whole_archive_flag_spec=''
8807 link_all_deplibs=yes 8919 link_all_deplibs=yes
8808 allow_undefined_flag="$_lt_dar_allow_undefined" 8920 allow_undefined_flag="$_lt_dar_allow_undefined"
8809 if test "$GCC" = "yes"; then 8921 case $cc_basename in
8922 ifort*) _lt_dar_can_shared=yes ;;
8923 *) _lt_dar_can_shared=$GCC ;;
8924 esac
8925 if test "$_lt_dar_can_shared" = "yes"; then
8810 output_verbose_link_cmd=echo 8926 output_verbose_link_cmd=echo
8811 archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" 8927 archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
8812 module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" 8928 module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
@@ -8898,7 +9014,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
8898 archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' 9014 archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
8899 ;; 9015 ;;
8900 ia64*) 9016 ia64*)
8901 archive_cmds='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' 9017 archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
8902 ;; 9018 ;;
8903 *) 9019 *)
8904 archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' 9020 archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
@@ -9614,14 +9730,14 @@ bsdi[45]*)
9614 # libtool to hard-code these into programs 9730 # libtool to hard-code these into programs
9615 ;; 9731 ;;
9616 9732
9617cygwin* | mingw* | pw32*) 9733cygwin* | mingw* | pw32* | cegcc*)
9618 version_type=windows 9734 version_type=windows
9619 shrext_cmds=".dll" 9735 shrext_cmds=".dll"
9620 need_version=no 9736 need_version=no
9621 need_lib_prefix=no 9737 need_lib_prefix=no
9622 9738
9623 case $GCC,$host_os in 9739 case $GCC,$host_os in
9624 yes,cygwin* | yes,mingw* | yes,pw32*) 9740 yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
9625 library_names_spec='$libname.dll.a' 9741 library_names_spec='$libname.dll.a'
9626 # DLL is installed to $(libdir)/../bin by postinstall_cmds 9742 # DLL is installed to $(libdir)/../bin by postinstall_cmds
9627 postinstall_cmds='base_file=`basename \${file}`~ 9743 postinstall_cmds='base_file=`basename \${file}`~
@@ -9644,7 +9760,7 @@ cygwin* | mingw* | pw32*)
9644 soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' 9760 soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
9645 sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" 9761 sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
9646 ;; 9762 ;;
9647 mingw*) 9763 mingw* | cegcc*)
9648 # MinGW DLLs use traditional 'lib' prefix 9764 # MinGW DLLs use traditional 'lib' prefix
9649 soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' 9765 soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
9650 sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` 9766 sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
@@ -9859,7 +9975,7 @@ linux*oldld* | linux*aout* | linux*coff*)
9859 ;; 9975 ;;
9860 9976
9861# This must be Linux ELF. 9977# This must be Linux ELF.
9862linux* | k*bsd*-gnu) 9978linux* | k*bsd*-gnu | kopensolaris*-gnu)
9863 version_type=linux 9979 version_type=linux
9864 need_lib_prefix=no 9980 need_lib_prefix=no
9865 need_version=no 9981 need_version=no
@@ -10097,7 +10213,7 @@ tpf*)
10097 version_type=linux 10213 version_type=linux
10098 need_lib_prefix=no 10214 need_lib_prefix=no
10099 need_version=no 10215 need_version=no
10100 library_name_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' 10216 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
10101 shlibpath_var=LD_LIBRARY_PATH 10217 shlibpath_var=LD_LIBRARY_PATH
10102 shlibpath_overrides_runpath=no 10218 shlibpath_overrides_runpath=no
10103 hardcode_into_libs=yes 10219 hardcode_into_libs=yes
@@ -10274,7 +10390,7 @@ else
10274 lt_cv_dlopen_self=yes 10390 lt_cv_dlopen_self=yes
10275 ;; 10391 ;;
10276 10392
10277 mingw* | pw32*) 10393 mingw* | pw32* | cegcc*)
10278 lt_cv_dlopen="LoadLibrary" 10394 lt_cv_dlopen="LoadLibrary"
10279 lt_cv_dlopen_libs= 10395 lt_cv_dlopen_libs=
10280 ;; 10396 ;;
@@ -10546,7 +10662,7 @@ else
10546 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 10662 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
10547 lt_status=$lt_dlunknown 10663 lt_status=$lt_dlunknown
10548 cat > conftest.$ac_ext <<_LT_EOF 10664 cat > conftest.$ac_ext <<_LT_EOF
10549#line 10549 "configure" 10665#line 10665 "configure"
10550#include "confdefs.h" 10666#include "confdefs.h"
10551 10667
10552#if HAVE_DLFCN_H 10668#if HAVE_DLFCN_H
@@ -10587,10 +10703,6 @@ else
10587# endif 10703# endif
10588#endif 10704#endif
10589 10705
10590#ifdef __cplusplus
10591extern "C" void exit (int);
10592#endif
10593
10594void fnord() { int i=42;} 10706void fnord() { int i=42;}
10595int main () 10707int main ()
10596{ 10708{
@@ -10606,7 +10718,7 @@ int main ()
10606 else 10718 else
10607 puts (dlerror ()); 10719 puts (dlerror ());
10608 10720
10609 exit (status); 10721 return status;
10610} 10722}
10611_LT_EOF 10723_LT_EOF
10612 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 10724 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
@@ -10646,7 +10758,7 @@ else
10646 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 10758 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
10647 lt_status=$lt_dlunknown 10759 lt_status=$lt_dlunknown
10648 cat > conftest.$ac_ext <<_LT_EOF 10760 cat > conftest.$ac_ext <<_LT_EOF
10649#line 10649 "configure" 10761#line 10761 "configure"
10650#include "confdefs.h" 10762#include "confdefs.h"
10651 10763
10652#if HAVE_DLFCN_H 10764#if HAVE_DLFCN_H
@@ -10687,10 +10799,6 @@ else
10687# endif 10799# endif
10688#endif 10800#endif
10689 10801
10690#ifdef __cplusplus
10691extern "C" void exit (int);
10692#endif
10693
10694void fnord() { int i=42;} 10802void fnord() { int i=42;}
10695int main () 10803int main ()
10696{ 10804{
@@ -10706,7 +10814,7 @@ int main ()
10706 else 10814 else
10707 puts (dlerror ()); 10815 puts (dlerror ());
10708 10816
10709 exit (status); 10817 return status;
10710} 10818}
10711_LT_EOF 10819_LT_EOF
10712 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 10820 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
@@ -10894,15 +11002,15 @@ _ACEOF
10894 11002
10895 11003
10896cat >>confdefs.h <<_ACEOF 11004cat >>confdefs.h <<_ACEOF
10897#define VMIC 0 11005#define VMIC 99
10898_ACEOF 11006_ACEOF
10899 11007
10900 11008
10901cat >>confdefs.h <<_ACEOF 11009cat >>confdefs.h <<_ACEOF
10902#define VREV 0 11010#define VREV 67344
10903_ACEOF 11011_ACEOF
10904 11012
10905version_info="2:0:1" 11013version_info="2:99:1"
10906release_info="" 11014release_info=""
10907 11015
10908 11016
@@ -11640,8 +11748,8 @@ fi
11640 11748
11641test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 11749test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
11642$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 11750$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
11643as_fn_error $? "no acceptable C compiler found in \$PATH 11751as_fn_error "no acceptable C compiler found in \$PATH
11644See \`config.log' for more details" "$LINENO" 5 ; } 11752See \`config.log' for more details." "$LINENO" 5; }
11645 11753
11646# Provide some information about the compiler. 11754# Provide some information about the compiler.
11647$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 11755$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
@@ -12195,7 +12303,7 @@ sys.exit(sys.hexversion < minverhex)"
12195 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 12303 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
12196$as_echo "yes" >&6; } 12304$as_echo "yes" >&6; }
12197else 12305else
12198 as_fn_error $? "too old" "$LINENO" 5 12306 as_fn_error "too old" "$LINENO" 5
12199fi 12307fi
12200 am_display_PYTHON=$PYTHON 12308 am_display_PYTHON=$PYTHON
12201 else 12309 else
@@ -12207,7 +12315,7 @@ if test "${am_cv_pathless_PYTHON+set}" = set; then :
12207 $as_echo_n "(cached) " >&6 12315 $as_echo_n "(cached) " >&6
12208else 12316else
12209 12317
12210 for am_cv_pathless_PYTHON in python python2 python3 python3.2 python3.1 python3.0 python2.7 python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0 none; do 12318 for am_cv_pathless_PYTHON in python python2 python3 python3.0 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0 none; do
12211 test "$am_cv_pathless_PYTHON" = none && break 12319 test "$am_cv_pathless_PYTHON" = none && break
12212 prog="import sys 12320 prog="import sys
12213# split strings by '.' and convert to numeric. Append some zeros 12321# split strings by '.' and convert to numeric. Append some zeros
@@ -12409,10 +12517,6 @@ fi
12409 12517
12410 12518
12411 12519
12412
12413
12414
12415
12416if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then 12520if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
12417 if test -n "$ac_tool_prefix"; then 12521 if test -n "$ac_tool_prefix"; then
12418 # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. 12522 # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
@@ -12525,6 +12629,7 @@ $as_echo "yes" >&6; }
12525$as_echo "no" >&6; } 12629$as_echo "no" >&6; }
12526 PKG_CONFIG="" 12630 PKG_CONFIG=""
12527 fi 12631 fi
12632
12528fi 12633fi
12529 12634
12530# Check whether pkg-config supports Requires.private 12635# Check whether pkg-config supports Requires.private
@@ -12549,10 +12654,11 @@ pkg_failed=no
12549{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EVIL" >&5 12654{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EVIL" >&5
12550$as_echo_n "checking for EVIL... " >&6; } 12655$as_echo_n "checking for EVIL... " >&6; }
12551 12656
12552if test -n "$EVIL_CFLAGS"; then 12657if test -n "$PKG_CONFIG"; then
12553 pkg_cv_EVIL_CFLAGS="$EVIL_CFLAGS" 12658 if test -n "$EVIL_CFLAGS"; then
12554 elif test -n "$PKG_CONFIG"; then 12659 pkg_cv_EVIL_CFLAGS="$EVIL_CFLAGS"
12555 if test -n "$PKG_CONFIG" && \ 12660 else
12661 if test -n "$PKG_CONFIG" && \
12556 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evil >= 1.0.0\""; } >&5 12662 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evil >= 1.0.0\""; } >&5
12557 ($PKG_CONFIG --exists --print-errors "evil >= 1.0.0") 2>&5 12663 ($PKG_CONFIG --exists --print-errors "evil >= 1.0.0") 2>&5
12558 ac_status=$? 12664 ac_status=$?
@@ -12562,13 +12668,15 @@ if test -n "$EVIL_CFLAGS"; then
12562else 12668else
12563 pkg_failed=yes 12669 pkg_failed=yes
12564fi 12670fi
12565 else 12671 fi
12566 pkg_failed=untried 12672else
12673 pkg_failed=untried
12567fi 12674fi
12568if test -n "$EVIL_LIBS"; then 12675if test -n "$PKG_CONFIG"; then
12569 pkg_cv_EVIL_LIBS="$EVIL_LIBS" 12676 if test -n "$EVIL_LIBS"; then
12570 elif test -n "$PKG_CONFIG"; then 12677 pkg_cv_EVIL_LIBS="$EVIL_LIBS"
12571 if test -n "$PKG_CONFIG" && \ 12678 else
12679 if test -n "$PKG_CONFIG" && \
12572 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evil >= 1.0.0\""; } >&5 12680 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evil >= 1.0.0\""; } >&5
12573 ($PKG_CONFIG --exists --print-errors "evil >= 1.0.0") 2>&5 12681 ($PKG_CONFIG --exists --print-errors "evil >= 1.0.0") 2>&5
12574 ac_status=$? 12682 ac_status=$?
@@ -12578,15 +12686,14 @@ if test -n "$EVIL_LIBS"; then
12578else 12686else
12579 pkg_failed=yes 12687 pkg_failed=yes
12580fi 12688fi
12581 else 12689 fi
12582 pkg_failed=untried 12690else
12691 pkg_failed=untried
12583fi 12692fi
12584 12693
12585 12694
12586 12695
12587if test $pkg_failed = yes; then 12696if test $pkg_failed = yes; then
12588 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
12589$as_echo "no" >&6; }
12590 12697
12591if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 12698if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
12592 _pkg_short_errors_supported=yes 12699 _pkg_short_errors_supported=yes
@@ -12594,14 +12701,14 @@ else
12594 _pkg_short_errors_supported=no 12701 _pkg_short_errors_supported=no
12595fi 12702fi
12596 if test $_pkg_short_errors_supported = yes; then 12703 if test $_pkg_short_errors_supported = yes; then
12597 EVIL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "evil >= 1.0.0" 2>&1` 12704 EVIL_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "evil >= 1.0.0"`
12598 else 12705 else
12599 EVIL_PKG_ERRORS=`$PKG_CONFIG --print-errors "evil >= 1.0.0" 2>&1` 12706 EVIL_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "evil >= 1.0.0"`
12600 fi 12707 fi
12601 # Put the nasty error message in config.log where it belongs 12708 # Put the nasty error message in config.log where it belongs
12602 echo "$EVIL_PKG_ERRORS" >&5 12709 echo "$EVIL_PKG_ERRORS" >&5
12603 12710
12604 as_fn_error $? "Package requirements (evil >= 1.0.0) were not met: 12711 as_fn_error "Package requirements (evil >= 1.0.0) were not met:
12605 12712
12606$EVIL_PKG_ERRORS 12713$EVIL_PKG_ERRORS
12607 12714
@@ -12610,13 +12717,12 @@ installed software in a non-standard prefix.
12610 12717
12611Alternatively, you may set the environment variables EVIL_CFLAGS 12718Alternatively, you may set the environment variables EVIL_CFLAGS
12612and EVIL_LIBS to avoid the need to call pkg-config. 12719and EVIL_LIBS to avoid the need to call pkg-config.
12613See the pkg-config man page for more details." "$LINENO" 5 12720See the pkg-config man page for more details.
12721" "$LINENO" 5
12614elif test $pkg_failed = untried; then 12722elif test $pkg_failed = untried; then
12615 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
12616$as_echo "no" >&6; }
12617 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 12723 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
12618$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 12724$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
12619as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it 12725as_fn_error "The pkg-config script could not be found or is too old. Make sure it
12620is in your PATH or set the PKG_CONFIG environment variable to the full 12726is in your PATH or set the PKG_CONFIG environment variable to the full
12621path to pkg-config. 12727path to pkg-config.
12622 12728
@@ -12625,13 +12731,13 @@ and EVIL_LIBS to avoid the need to call pkg-config.
12625See the pkg-config man page for more details. 12731See the pkg-config man page for more details.
12626 12732
12627To get pkg-config, see <http://pkg-config.freedesktop.org/>. 12733To get pkg-config, see <http://pkg-config.freedesktop.org/>.
12628See \`config.log' for more details" "$LINENO" 5 ; } 12734See \`config.log' for more details." "$LINENO" 5; }
12629else 12735else
12630 EVIL_CFLAGS=$pkg_cv_EVIL_CFLAGS 12736 EVIL_CFLAGS=$pkg_cv_EVIL_CFLAGS
12631 EVIL_LIBS=$pkg_cv_EVIL_LIBS 12737 EVIL_LIBS=$pkg_cv_EVIL_LIBS
12632 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 12738 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
12633$as_echo "yes" >&6; } 12739$as_echo "yes" >&6; }
12634 12740 :
12635fi 12741fi
12636 12742
12637$as_echo "#define HAVE_EVIL 1" >>confdefs.h 12743$as_echo "#define HAVE_EVIL 1" >>confdefs.h
@@ -12653,10 +12759,11 @@ pkg_failed=no
12653{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LUA" >&5 12759{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LUA" >&5
12654$as_echo_n "checking for LUA... " >&6; } 12760$as_echo_n "checking for LUA... " >&6; }
12655 12761
12656if test -n "$LUA_CFLAGS"; then 12762if test -n "$PKG_CONFIG"; then
12657 pkg_cv_LUA_CFLAGS="$LUA_CFLAGS" 12763 if test -n "$LUA_CFLAGS"; then
12658 elif test -n "$PKG_CONFIG"; then 12764 pkg_cv_LUA_CFLAGS="$LUA_CFLAGS"
12659 if test -n "$PKG_CONFIG" && \ 12765 else
12766 if test -n "$PKG_CONFIG" && \
12660 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lua >= 5.1.0\""; } >&5 12767 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lua >= 5.1.0\""; } >&5
12661 ($PKG_CONFIG --exists --print-errors "lua >= 5.1.0") 2>&5 12768 ($PKG_CONFIG --exists --print-errors "lua >= 5.1.0") 2>&5
12662 ac_status=$? 12769 ac_status=$?
@@ -12666,13 +12773,15 @@ if test -n "$LUA_CFLAGS"; then
12666else 12773else
12667 pkg_failed=yes 12774 pkg_failed=yes
12668fi 12775fi
12669 else 12776 fi
12670 pkg_failed=untried 12777else
12778 pkg_failed=untried
12671fi 12779fi
12672if test -n "$LUA_LIBS"; then 12780if test -n "$PKG_CONFIG"; then
12673 pkg_cv_LUA_LIBS="$LUA_LIBS" 12781 if test -n "$LUA_LIBS"; then
12674 elif test -n "$PKG_CONFIG"; then 12782 pkg_cv_LUA_LIBS="$LUA_LIBS"
12675 if test -n "$PKG_CONFIG" && \ 12783 else
12784 if test -n "$PKG_CONFIG" && \
12676 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lua >= 5.1.0\""; } >&5 12785 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lua >= 5.1.0\""; } >&5
12677 ($PKG_CONFIG --exists --print-errors "lua >= 5.1.0") 2>&5 12786 ($PKG_CONFIG --exists --print-errors "lua >= 5.1.0") 2>&5
12678 ac_status=$? 12787 ac_status=$?
@@ -12682,15 +12791,14 @@ if test -n "$LUA_LIBS"; then
12682else 12791else
12683 pkg_failed=yes 12792 pkg_failed=yes
12684fi 12793fi
12685 else 12794 fi
12686 pkg_failed=untried 12795else
12796 pkg_failed=untried
12687fi 12797fi
12688 12798
12689 12799
12690 12800
12691if test $pkg_failed = yes; then 12801if test $pkg_failed = yes; then
12692 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
12693$as_echo "no" >&6; }
12694 12802
12695if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 12803if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
12696 _pkg_short_errors_supported=yes 12804 _pkg_short_errors_supported=yes
@@ -12698,22 +12806,25 @@ else
12698 _pkg_short_errors_supported=no 12806 _pkg_short_errors_supported=no
12699fi 12807fi
12700 if test $_pkg_short_errors_supported = yes; then 12808 if test $_pkg_short_errors_supported = yes; then
12701 LUA_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "lua >= 5.1.0" 2>&1` 12809 LUA_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "lua >= 5.1.0"`
12702 else 12810 else
12703 LUA_PKG_ERRORS=`$PKG_CONFIG --print-errors "lua >= 5.1.0" 2>&1` 12811 LUA_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "lua >= 5.1.0"`
12704 fi 12812 fi
12705 # Put the nasty error message in config.log where it belongs 12813 # Put the nasty error message in config.log where it belongs
12706 echo "$LUA_PKG_ERRORS" >&5 12814 echo "$LUA_PKG_ERRORS" >&5
12707 12815
12816 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
12817$as_echo "no" >&6; }
12708 12818
12709pkg_failed=no 12819pkg_failed=no
12710{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LUA" >&5 12820{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LUA" >&5
12711$as_echo_n "checking for LUA... " >&6; } 12821$as_echo_n "checking for LUA... " >&6; }
12712 12822
12713if test -n "$LUA_CFLAGS"; then 12823if test -n "$PKG_CONFIG"; then
12714 pkg_cv_LUA_CFLAGS="$LUA_CFLAGS" 12824 if test -n "$LUA_CFLAGS"; then
12715 elif test -n "$PKG_CONFIG"; then 12825 pkg_cv_LUA_CFLAGS="$LUA_CFLAGS"
12716 if test -n "$PKG_CONFIG" && \ 12826 else
12827 if test -n "$PKG_CONFIG" && \
12717 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lua5.1 >= 5.1.0\""; } >&5 12828 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lua5.1 >= 5.1.0\""; } >&5
12718 ($PKG_CONFIG --exists --print-errors "lua5.1 >= 5.1.0") 2>&5 12829 ($PKG_CONFIG --exists --print-errors "lua5.1 >= 5.1.0") 2>&5
12719 ac_status=$? 12830 ac_status=$?
@@ -12723,13 +12834,15 @@ if test -n "$LUA_CFLAGS"; then
12723else 12834else
12724 pkg_failed=yes 12835 pkg_failed=yes
12725fi 12836fi
12726 else 12837 fi
12727 pkg_failed=untried 12838else
12839 pkg_failed=untried
12728fi 12840fi
12729if test -n "$LUA_LIBS"; then 12841if test -n "$PKG_CONFIG"; then
12730 pkg_cv_LUA_LIBS="$LUA_LIBS" 12842 if test -n "$LUA_LIBS"; then
12731 elif test -n "$PKG_CONFIG"; then 12843 pkg_cv_LUA_LIBS="$LUA_LIBS"
12732 if test -n "$PKG_CONFIG" && \ 12844 else
12845 if test -n "$PKG_CONFIG" && \
12733 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lua5.1 >= 5.1.0\""; } >&5 12846 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lua5.1 >= 5.1.0\""; } >&5
12734 ($PKG_CONFIG --exists --print-errors "lua5.1 >= 5.1.0") 2>&5 12847 ($PKG_CONFIG --exists --print-errors "lua5.1 >= 5.1.0") 2>&5
12735 ac_status=$? 12848 ac_status=$?
@@ -12739,15 +12852,14 @@ if test -n "$LUA_LIBS"; then
12739else 12852else
12740 pkg_failed=yes 12853 pkg_failed=yes
12741fi 12854fi
12742 else 12855 fi
12743 pkg_failed=untried 12856else
12857 pkg_failed=untried
12744fi 12858fi
12745 12859
12746 12860
12747 12861
12748if test $pkg_failed = yes; then 12862if test $pkg_failed = yes; then
12749 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
12750$as_echo "no" >&6; }
12751 12863
12752if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 12864if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
12753 _pkg_short_errors_supported=yes 12865 _pkg_short_errors_supported=yes
@@ -12755,22 +12867,25 @@ else
12755 _pkg_short_errors_supported=no 12867 _pkg_short_errors_supported=no
12756fi 12868fi
12757 if test $_pkg_short_errors_supported = yes; then 12869 if test $_pkg_short_errors_supported = yes; then
12758 LUA_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "lua5.1 >= 5.1.0" 2>&1` 12870 LUA_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "lua5.1 >= 5.1.0"`
12759 else 12871 else
12760 LUA_PKG_ERRORS=`$PKG_CONFIG --print-errors "lua5.1 >= 5.1.0" 2>&1` 12872 LUA_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "lua5.1 >= 5.1.0"`
12761 fi 12873 fi
12762 # Put the nasty error message in config.log where it belongs 12874 # Put the nasty error message in config.log where it belongs
12763 echo "$LUA_PKG_ERRORS" >&5 12875 echo "$LUA_PKG_ERRORS" >&5
12764 12876
12877 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
12878$as_echo "no" >&6; }
12765 12879
12766pkg_failed=no 12880pkg_failed=no
12767{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LUA" >&5 12881{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LUA" >&5
12768$as_echo_n "checking for LUA... " >&6; } 12882$as_echo_n "checking for LUA... " >&6; }
12769 12883
12770if test -n "$LUA_CFLAGS"; then 12884if test -n "$PKG_CONFIG"; then
12771 pkg_cv_LUA_CFLAGS="$LUA_CFLAGS" 12885 if test -n "$LUA_CFLAGS"; then
12772 elif test -n "$PKG_CONFIG"; then 12886 pkg_cv_LUA_CFLAGS="$LUA_CFLAGS"
12773 if test -n "$PKG_CONFIG" && \ 12887 else
12888 if test -n "$PKG_CONFIG" && \
12774 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lua-5.1 >= 5.1.0\""; } >&5 12889 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lua-5.1 >= 5.1.0\""; } >&5
12775 ($PKG_CONFIG --exists --print-errors "lua-5.1 >= 5.1.0") 2>&5 12890 ($PKG_CONFIG --exists --print-errors "lua-5.1 >= 5.1.0") 2>&5
12776 ac_status=$? 12891 ac_status=$?
@@ -12780,13 +12895,15 @@ if test -n "$LUA_CFLAGS"; then
12780else 12895else
12781 pkg_failed=yes 12896 pkg_failed=yes
12782fi 12897fi
12783 else 12898 fi
12784 pkg_failed=untried 12899else
12900 pkg_failed=untried
12785fi 12901fi
12786if test -n "$LUA_LIBS"; then 12902if test -n "$PKG_CONFIG"; then
12787 pkg_cv_LUA_LIBS="$LUA_LIBS" 12903 if test -n "$LUA_LIBS"; then
12788 elif test -n "$PKG_CONFIG"; then 12904 pkg_cv_LUA_LIBS="$LUA_LIBS"
12789 if test -n "$PKG_CONFIG" && \ 12905 else
12906 if test -n "$PKG_CONFIG" && \
12790 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lua-5.1 >= 5.1.0\""; } >&5 12907 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lua-5.1 >= 5.1.0\""; } >&5
12791 ($PKG_CONFIG --exists --print-errors "lua-5.1 >= 5.1.0") 2>&5 12908 ($PKG_CONFIG --exists --print-errors "lua-5.1 >= 5.1.0") 2>&5
12792 ac_status=$? 12909 ac_status=$?
@@ -12796,15 +12913,14 @@ if test -n "$LUA_LIBS"; then
12796else 12913else
12797 pkg_failed=yes 12914 pkg_failed=yes
12798fi 12915fi
12799 else 12916 fi
12800 pkg_failed=untried 12917else
12918 pkg_failed=untried
12801fi 12919fi
12802 12920
12803 12921
12804 12922
12805if test $pkg_failed = yes; then 12923if test $pkg_failed = yes; then
12806 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
12807$as_echo "no" >&6; }
12808 12924
12809if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 12925if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
12810 _pkg_short_errors_supported=yes 12926 _pkg_short_errors_supported=yes
@@ -12812,22 +12928,25 @@ else
12812 _pkg_short_errors_supported=no 12928 _pkg_short_errors_supported=no
12813fi 12929fi
12814 if test $_pkg_short_errors_supported = yes; then 12930 if test $_pkg_short_errors_supported = yes; then
12815 LUA_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "lua-5.1 >= 5.1.0" 2>&1` 12931 LUA_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "lua-5.1 >= 5.1.0"`
12816 else 12932 else
12817 LUA_PKG_ERRORS=`$PKG_CONFIG --print-errors "lua-5.1 >= 5.1.0" 2>&1` 12933 LUA_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "lua-5.1 >= 5.1.0"`
12818 fi 12934 fi
12819 # Put the nasty error message in config.log where it belongs 12935 # Put the nasty error message in config.log where it belongs
12820 echo "$LUA_PKG_ERRORS" >&5 12936 echo "$LUA_PKG_ERRORS" >&5
12821 12937
12938 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
12939$as_echo "no" >&6; }
12822 12940
12823pkg_failed=no 12941pkg_failed=no
12824{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LUA" >&5 12942{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LUA" >&5
12825$as_echo_n "checking for LUA... " >&6; } 12943$as_echo_n "checking for LUA... " >&6; }
12826 12944
12827if test -n "$LUA_CFLAGS"; then 12945if test -n "$PKG_CONFIG"; then
12828 pkg_cv_LUA_CFLAGS="$LUA_CFLAGS" 12946 if test -n "$LUA_CFLAGS"; then
12829 elif test -n "$PKG_CONFIG"; then 12947 pkg_cv_LUA_CFLAGS="$LUA_CFLAGS"
12830 if test -n "$PKG_CONFIG" && \ 12948 else
12949 if test -n "$PKG_CONFIG" && \
12831 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lua51 >= 5.1.0\""; } >&5 12950 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lua51 >= 5.1.0\""; } >&5
12832 ($PKG_CONFIG --exists --print-errors "lua51 >= 5.1.0") 2>&5 12951 ($PKG_CONFIG --exists --print-errors "lua51 >= 5.1.0") 2>&5
12833 ac_status=$? 12952 ac_status=$?
@@ -12837,13 +12956,15 @@ if test -n "$LUA_CFLAGS"; then
12837else 12956else
12838 pkg_failed=yes 12957 pkg_failed=yes
12839fi 12958fi
12840 else 12959 fi
12841 pkg_failed=untried 12960else
12961 pkg_failed=untried
12842fi 12962fi
12843if test -n "$LUA_LIBS"; then 12963if test -n "$PKG_CONFIG"; then
12844 pkg_cv_LUA_LIBS="$LUA_LIBS" 12964 if test -n "$LUA_LIBS"; then
12845 elif test -n "$PKG_CONFIG"; then 12965 pkg_cv_LUA_LIBS="$LUA_LIBS"
12846 if test -n "$PKG_CONFIG" && \ 12966 else
12967 if test -n "$PKG_CONFIG" && \
12847 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lua51 >= 5.1.0\""; } >&5 12968 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lua51 >= 5.1.0\""; } >&5
12848 ($PKG_CONFIG --exists --print-errors "lua51 >= 5.1.0") 2>&5 12969 ($PKG_CONFIG --exists --print-errors "lua51 >= 5.1.0") 2>&5
12849 ac_status=$? 12970 ac_status=$?
@@ -12853,15 +12974,14 @@ if test -n "$LUA_LIBS"; then
12853else 12974else
12854 pkg_failed=yes 12975 pkg_failed=yes
12855fi 12976fi
12856 else 12977 fi
12857 pkg_failed=untried 12978else
12979 pkg_failed=untried
12858fi 12980fi
12859 12981
12860 12982
12861 12983
12862if test $pkg_failed = yes; then 12984if test $pkg_failed = yes; then
12863 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
12864$as_echo "no" >&6; }
12865 12985
12866if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 12986if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
12867 _pkg_short_errors_supported=yes 12987 _pkg_short_errors_supported=yes
@@ -12869,17 +12989,17 @@ else
12869 _pkg_short_errors_supported=no 12989 _pkg_short_errors_supported=no
12870fi 12990fi
12871 if test $_pkg_short_errors_supported = yes; then 12991 if test $_pkg_short_errors_supported = yes; then
12872 LUA_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "lua51 >= 5.1.0" 2>&1` 12992 LUA_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "lua51 >= 5.1.0"`
12873 else 12993 else
12874 LUA_PKG_ERRORS=`$PKG_CONFIG --print-errors "lua51 >= 5.1.0" 2>&1` 12994 LUA_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "lua51 >= 5.1.0"`
12875 fi 12995 fi
12876 # Put the nasty error message in config.log where it belongs 12996 # Put the nasty error message in config.log where it belongs
12877 echo "$LUA_PKG_ERRORS" >&5 12997 echo "$LUA_PKG_ERRORS" >&5
12878 12998
12879 have_lua="no" 12999 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
12880elif test $pkg_failed = untried; then
12881 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
12882$as_echo "no" >&6; } 13000$as_echo "no" >&6; }
13001 have_lua="no"
13002elif test $pkg_failed = untried; then
12883 have_lua="no" 13003 have_lua="no"
12884else 13004else
12885 LUA_CFLAGS=$pkg_cv_LUA_CFLAGS 13005 LUA_CFLAGS=$pkg_cv_LUA_CFLAGS
@@ -12889,17 +13009,16 @@ $as_echo "yes" >&6; }
12889 requirement_lua="lua51" 13009 requirement_lua="lua51"
12890fi 13010fi
12891elif test $pkg_failed = untried; then 13011elif test $pkg_failed = untried; then
12892 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
12893$as_echo "no" >&6; }
12894 13012
12895pkg_failed=no 13013pkg_failed=no
12896{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LUA" >&5 13014{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LUA" >&5
12897$as_echo_n "checking for LUA... " >&6; } 13015$as_echo_n "checking for LUA... " >&6; }
12898 13016
12899if test -n "$LUA_CFLAGS"; then 13017if test -n "$PKG_CONFIG"; then
12900 pkg_cv_LUA_CFLAGS="$LUA_CFLAGS" 13018 if test -n "$LUA_CFLAGS"; then
12901 elif test -n "$PKG_CONFIG"; then 13019 pkg_cv_LUA_CFLAGS="$LUA_CFLAGS"
12902 if test -n "$PKG_CONFIG" && \ 13020 else
13021 if test -n "$PKG_CONFIG" && \
12903 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lua51 >= 5.1.0\""; } >&5 13022 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lua51 >= 5.1.0\""; } >&5
12904 ($PKG_CONFIG --exists --print-errors "lua51 >= 5.1.0") 2>&5 13023 ($PKG_CONFIG --exists --print-errors "lua51 >= 5.1.0") 2>&5
12905 ac_status=$? 13024 ac_status=$?
@@ -12909,13 +13028,15 @@ if test -n "$LUA_CFLAGS"; then
12909else 13028else
12910 pkg_failed=yes 13029 pkg_failed=yes
12911fi 13030fi
12912 else 13031 fi
12913 pkg_failed=untried 13032else
13033 pkg_failed=untried
12914fi 13034fi
12915if test -n "$LUA_LIBS"; then 13035if test -n "$PKG_CONFIG"; then
12916 pkg_cv_LUA_LIBS="$LUA_LIBS" 13036 if test -n "$LUA_LIBS"; then
12917 elif test -n "$PKG_CONFIG"; then 13037 pkg_cv_LUA_LIBS="$LUA_LIBS"
12918 if test -n "$PKG_CONFIG" && \ 13038 else
13039 if test -n "$PKG_CONFIG" && \
12919 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lua51 >= 5.1.0\""; } >&5 13040 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lua51 >= 5.1.0\""; } >&5
12920 ($PKG_CONFIG --exists --print-errors "lua51 >= 5.1.0") 2>&5 13041 ($PKG_CONFIG --exists --print-errors "lua51 >= 5.1.0") 2>&5
12921 ac_status=$? 13042 ac_status=$?
@@ -12925,15 +13046,14 @@ if test -n "$LUA_LIBS"; then
12925else 13046else
12926 pkg_failed=yes 13047 pkg_failed=yes
12927fi 13048fi
12928 else 13049 fi
12929 pkg_failed=untried 13050else
13051 pkg_failed=untried
12930fi 13052fi
12931 13053
12932 13054
12933 13055
12934if test $pkg_failed = yes; then 13056if test $pkg_failed = yes; then
12935 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
12936$as_echo "no" >&6; }
12937 13057
12938if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 13058if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
12939 _pkg_short_errors_supported=yes 13059 _pkg_short_errors_supported=yes
@@ -12941,17 +13061,17 @@ else
12941 _pkg_short_errors_supported=no 13061 _pkg_short_errors_supported=no
12942fi 13062fi
12943 if test $_pkg_short_errors_supported = yes; then 13063 if test $_pkg_short_errors_supported = yes; then
12944 LUA_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "lua51 >= 5.1.0" 2>&1` 13064 LUA_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "lua51 >= 5.1.0"`
12945 else 13065 else
12946 LUA_PKG_ERRORS=`$PKG_CONFIG --print-errors "lua51 >= 5.1.0" 2>&1` 13066 LUA_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "lua51 >= 5.1.0"`
12947 fi 13067 fi
12948 # Put the nasty error message in config.log where it belongs 13068 # Put the nasty error message in config.log where it belongs
12949 echo "$LUA_PKG_ERRORS" >&5 13069 echo "$LUA_PKG_ERRORS" >&5
12950 13070
12951 have_lua="no" 13071 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
12952elif test $pkg_failed = untried; then
12953 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
12954$as_echo "no" >&6; } 13072$as_echo "no" >&6; }
13073 have_lua="no"
13074elif test $pkg_failed = untried; then
12955 have_lua="no" 13075 have_lua="no"
12956else 13076else
12957 LUA_CFLAGS=$pkg_cv_LUA_CFLAGS 13077 LUA_CFLAGS=$pkg_cv_LUA_CFLAGS
@@ -12968,17 +13088,16 @@ $as_echo "yes" >&6; }
12968 requirement_lua="lua-5.1" 13088 requirement_lua="lua-5.1"
12969fi 13089fi
12970elif test $pkg_failed = untried; then 13090elif test $pkg_failed = untried; then
12971 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
12972$as_echo "no" >&6; }
12973 13091
12974pkg_failed=no 13092pkg_failed=no
12975{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LUA" >&5 13093{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LUA" >&5
12976$as_echo_n "checking for LUA... " >&6; } 13094$as_echo_n "checking for LUA... " >&6; }
12977 13095
12978if test -n "$LUA_CFLAGS"; then 13096if test -n "$PKG_CONFIG"; then
12979 pkg_cv_LUA_CFLAGS="$LUA_CFLAGS" 13097 if test -n "$LUA_CFLAGS"; then
12980 elif test -n "$PKG_CONFIG"; then 13098 pkg_cv_LUA_CFLAGS="$LUA_CFLAGS"
12981 if test -n "$PKG_CONFIG" && \ 13099 else
13100 if test -n "$PKG_CONFIG" && \
12982 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lua-5.1 >= 5.1.0\""; } >&5 13101 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lua-5.1 >= 5.1.0\""; } >&5
12983 ($PKG_CONFIG --exists --print-errors "lua-5.1 >= 5.1.0") 2>&5 13102 ($PKG_CONFIG --exists --print-errors "lua-5.1 >= 5.1.0") 2>&5
12984 ac_status=$? 13103 ac_status=$?
@@ -12988,13 +13107,15 @@ if test -n "$LUA_CFLAGS"; then
12988else 13107else
12989 pkg_failed=yes 13108 pkg_failed=yes
12990fi 13109fi
12991 else 13110 fi
12992 pkg_failed=untried 13111else
13112 pkg_failed=untried
12993fi 13113fi
12994if test -n "$LUA_LIBS"; then 13114if test -n "$PKG_CONFIG"; then
12995 pkg_cv_LUA_LIBS="$LUA_LIBS" 13115 if test -n "$LUA_LIBS"; then
12996 elif test -n "$PKG_CONFIG"; then 13116 pkg_cv_LUA_LIBS="$LUA_LIBS"
12997 if test -n "$PKG_CONFIG" && \ 13117 else
13118 if test -n "$PKG_CONFIG" && \
12998 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lua-5.1 >= 5.1.0\""; } >&5 13119 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lua-5.1 >= 5.1.0\""; } >&5
12999 ($PKG_CONFIG --exists --print-errors "lua-5.1 >= 5.1.0") 2>&5 13120 ($PKG_CONFIG --exists --print-errors "lua-5.1 >= 5.1.0") 2>&5
13000 ac_status=$? 13121 ac_status=$?
@@ -13004,15 +13125,14 @@ if test -n "$LUA_LIBS"; then
13004else 13125else
13005 pkg_failed=yes 13126 pkg_failed=yes
13006fi 13127fi
13007 else 13128 fi
13008 pkg_failed=untried 13129else
13130 pkg_failed=untried
13009fi 13131fi
13010 13132
13011 13133
13012 13134
13013if test $pkg_failed = yes; then 13135if test $pkg_failed = yes; then
13014 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
13015$as_echo "no" >&6; }
13016 13136
13017if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 13137if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
13018 _pkg_short_errors_supported=yes 13138 _pkg_short_errors_supported=yes
@@ -13020,22 +13140,25 @@ else
13020 _pkg_short_errors_supported=no 13140 _pkg_short_errors_supported=no
13021fi 13141fi
13022 if test $_pkg_short_errors_supported = yes; then 13142 if test $_pkg_short_errors_supported = yes; then
13023 LUA_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "lua-5.1 >= 5.1.0" 2>&1` 13143 LUA_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "lua-5.1 >= 5.1.0"`
13024 else 13144 else
13025 LUA_PKG_ERRORS=`$PKG_CONFIG --print-errors "lua-5.1 >= 5.1.0" 2>&1` 13145 LUA_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "lua-5.1 >= 5.1.0"`
13026 fi 13146 fi
13027 # Put the nasty error message in config.log where it belongs 13147 # Put the nasty error message in config.log where it belongs
13028 echo "$LUA_PKG_ERRORS" >&5 13148 echo "$LUA_PKG_ERRORS" >&5
13029 13149
13150 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
13151$as_echo "no" >&6; }
13030 13152
13031pkg_failed=no 13153pkg_failed=no
13032{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LUA" >&5 13154{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LUA" >&5
13033$as_echo_n "checking for LUA... " >&6; } 13155$as_echo_n "checking for LUA... " >&6; }
13034 13156
13035if test -n "$LUA_CFLAGS"; then 13157if test -n "$PKG_CONFIG"; then
13036 pkg_cv_LUA_CFLAGS="$LUA_CFLAGS" 13158 if test -n "$LUA_CFLAGS"; then
13037 elif test -n "$PKG_CONFIG"; then 13159 pkg_cv_LUA_CFLAGS="$LUA_CFLAGS"
13038 if test -n "$PKG_CONFIG" && \ 13160 else
13161 if test -n "$PKG_CONFIG" && \
13039 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lua51 >= 5.1.0\""; } >&5 13162 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lua51 >= 5.1.0\""; } >&5
13040 ($PKG_CONFIG --exists --print-errors "lua51 >= 5.1.0") 2>&5 13163 ($PKG_CONFIG --exists --print-errors "lua51 >= 5.1.0") 2>&5
13041 ac_status=$? 13164 ac_status=$?
@@ -13045,13 +13168,15 @@ if test -n "$LUA_CFLAGS"; then
13045else 13168else
13046 pkg_failed=yes 13169 pkg_failed=yes
13047fi 13170fi
13048 else 13171 fi
13049 pkg_failed=untried 13172else
13173 pkg_failed=untried
13050fi 13174fi
13051if test -n "$LUA_LIBS"; then 13175if test -n "$PKG_CONFIG"; then
13052 pkg_cv_LUA_LIBS="$LUA_LIBS" 13176 if test -n "$LUA_LIBS"; then
13053 elif test -n "$PKG_CONFIG"; then 13177 pkg_cv_LUA_LIBS="$LUA_LIBS"
13054 if test -n "$PKG_CONFIG" && \ 13178 else
13179 if test -n "$PKG_CONFIG" && \
13055 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lua51 >= 5.1.0\""; } >&5 13180 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lua51 >= 5.1.0\""; } >&5
13056 ($PKG_CONFIG --exists --print-errors "lua51 >= 5.1.0") 2>&5 13181 ($PKG_CONFIG --exists --print-errors "lua51 >= 5.1.0") 2>&5
13057 ac_status=$? 13182 ac_status=$?
@@ -13061,15 +13186,14 @@ if test -n "$LUA_LIBS"; then
13061else 13186else
13062 pkg_failed=yes 13187 pkg_failed=yes
13063fi 13188fi
13064 else 13189 fi
13065 pkg_failed=untried 13190else
13191 pkg_failed=untried
13066fi 13192fi
13067 13193
13068 13194
13069 13195
13070if test $pkg_failed = yes; then 13196if test $pkg_failed = yes; then
13071 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
13072$as_echo "no" >&6; }
13073 13197
13074if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 13198if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
13075 _pkg_short_errors_supported=yes 13199 _pkg_short_errors_supported=yes
@@ -13077,17 +13201,17 @@ else
13077 _pkg_short_errors_supported=no 13201 _pkg_short_errors_supported=no
13078fi 13202fi
13079 if test $_pkg_short_errors_supported = yes; then 13203 if test $_pkg_short_errors_supported = yes; then
13080 LUA_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "lua51 >= 5.1.0" 2>&1` 13204 LUA_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "lua51 >= 5.1.0"`
13081 else 13205 else
13082 LUA_PKG_ERRORS=`$PKG_CONFIG --print-errors "lua51 >= 5.1.0" 2>&1` 13206 LUA_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "lua51 >= 5.1.0"`
13083 fi 13207 fi
13084 # Put the nasty error message in config.log where it belongs 13208 # Put the nasty error message in config.log where it belongs
13085 echo "$LUA_PKG_ERRORS" >&5 13209 echo "$LUA_PKG_ERRORS" >&5
13086 13210
13087 have_lua="no" 13211 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
13088elif test $pkg_failed = untried; then
13089 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
13090$as_echo "no" >&6; } 13212$as_echo "no" >&6; }
13213 have_lua="no"
13214elif test $pkg_failed = untried; then
13091 have_lua="no" 13215 have_lua="no"
13092else 13216else
13093 LUA_CFLAGS=$pkg_cv_LUA_CFLAGS 13217 LUA_CFLAGS=$pkg_cv_LUA_CFLAGS
@@ -13097,17 +13221,16 @@ $as_echo "yes" >&6; }
13097 requirement_lua="lua51" 13221 requirement_lua="lua51"
13098fi 13222fi
13099elif test $pkg_failed = untried; then 13223elif test $pkg_failed = untried; then
13100 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
13101$as_echo "no" >&6; }
13102 13224
13103pkg_failed=no 13225pkg_failed=no
13104{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LUA" >&5 13226{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LUA" >&5
13105$as_echo_n "checking for LUA... " >&6; } 13227$as_echo_n "checking for LUA... " >&6; }
13106 13228
13107if test -n "$LUA_CFLAGS"; then 13229if test -n "$PKG_CONFIG"; then
13108 pkg_cv_LUA_CFLAGS="$LUA_CFLAGS" 13230 if test -n "$LUA_CFLAGS"; then
13109 elif test -n "$PKG_CONFIG"; then 13231 pkg_cv_LUA_CFLAGS="$LUA_CFLAGS"
13110 if test -n "$PKG_CONFIG" && \ 13232 else
13233 if test -n "$PKG_CONFIG" && \
13111 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lua51 >= 5.1.0\""; } >&5 13234 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lua51 >= 5.1.0\""; } >&5
13112 ($PKG_CONFIG --exists --print-errors "lua51 >= 5.1.0") 2>&5 13235 ($PKG_CONFIG --exists --print-errors "lua51 >= 5.1.0") 2>&5
13113 ac_status=$? 13236 ac_status=$?
@@ -13117,13 +13240,15 @@ if test -n "$LUA_CFLAGS"; then
13117else 13240else
13118 pkg_failed=yes 13241 pkg_failed=yes
13119fi 13242fi
13120 else 13243 fi
13121 pkg_failed=untried 13244else
13245 pkg_failed=untried
13122fi 13246fi
13123if test -n "$LUA_LIBS"; then 13247if test -n "$PKG_CONFIG"; then
13124 pkg_cv_LUA_LIBS="$LUA_LIBS" 13248 if test -n "$LUA_LIBS"; then
13125 elif test -n "$PKG_CONFIG"; then 13249 pkg_cv_LUA_LIBS="$LUA_LIBS"
13126 if test -n "$PKG_CONFIG" && \ 13250 else
13251 if test -n "$PKG_CONFIG" && \
13127 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lua51 >= 5.1.0\""; } >&5 13252 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lua51 >= 5.1.0\""; } >&5
13128 ($PKG_CONFIG --exists --print-errors "lua51 >= 5.1.0") 2>&5 13253 ($PKG_CONFIG --exists --print-errors "lua51 >= 5.1.0") 2>&5
13129 ac_status=$? 13254 ac_status=$?
@@ -13133,15 +13258,14 @@ if test -n "$LUA_LIBS"; then
13133else 13258else
13134 pkg_failed=yes 13259 pkg_failed=yes
13135fi 13260fi
13136 else 13261 fi
13137 pkg_failed=untried 13262else
13263 pkg_failed=untried
13138fi 13264fi
13139 13265
13140 13266
13141 13267
13142if test $pkg_failed = yes; then 13268if test $pkg_failed = yes; then
13143 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
13144$as_echo "no" >&6; }
13145 13269
13146if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 13270if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
13147 _pkg_short_errors_supported=yes 13271 _pkg_short_errors_supported=yes
@@ -13149,17 +13273,17 @@ else
13149 _pkg_short_errors_supported=no 13273 _pkg_short_errors_supported=no
13150fi 13274fi
13151 if test $_pkg_short_errors_supported = yes; then 13275 if test $_pkg_short_errors_supported = yes; then
13152 LUA_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "lua51 >= 5.1.0" 2>&1` 13276 LUA_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "lua51 >= 5.1.0"`
13153 else 13277 else
13154 LUA_PKG_ERRORS=`$PKG_CONFIG --print-errors "lua51 >= 5.1.0" 2>&1` 13278 LUA_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "lua51 >= 5.1.0"`
13155 fi 13279 fi
13156 # Put the nasty error message in config.log where it belongs 13280 # Put the nasty error message in config.log where it belongs
13157 echo "$LUA_PKG_ERRORS" >&5 13281 echo "$LUA_PKG_ERRORS" >&5
13158 13282
13159 have_lua="no" 13283 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
13160elif test $pkg_failed = untried; then
13161 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
13162$as_echo "no" >&6; } 13284$as_echo "no" >&6; }
13285 have_lua="no"
13286elif test $pkg_failed = untried; then
13163 have_lua="no" 13287 have_lua="no"
13164else 13288else
13165 LUA_CFLAGS=$pkg_cv_LUA_CFLAGS 13289 LUA_CFLAGS=$pkg_cv_LUA_CFLAGS
@@ -13183,17 +13307,16 @@ $as_echo "yes" >&6; }
13183 requirement_lua="lua5.1" 13307 requirement_lua="lua5.1"
13184fi 13308fi
13185elif test $pkg_failed = untried; then 13309elif test $pkg_failed = untried; then
13186 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
13187$as_echo "no" >&6; }
13188 13310
13189pkg_failed=no 13311pkg_failed=no
13190{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LUA" >&5 13312{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LUA" >&5
13191$as_echo_n "checking for LUA... " >&6; } 13313$as_echo_n "checking for LUA... " >&6; }
13192 13314
13193if test -n "$LUA_CFLAGS"; then 13315if test -n "$PKG_CONFIG"; then
13194 pkg_cv_LUA_CFLAGS="$LUA_CFLAGS" 13316 if test -n "$LUA_CFLAGS"; then
13195 elif test -n "$PKG_CONFIG"; then 13317 pkg_cv_LUA_CFLAGS="$LUA_CFLAGS"
13196 if test -n "$PKG_CONFIG" && \ 13318 else
13319 if test -n "$PKG_CONFIG" && \
13197 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lua5.1 >= 5.1.0\""; } >&5 13320 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lua5.1 >= 5.1.0\""; } >&5
13198 ($PKG_CONFIG --exists --print-errors "lua5.1 >= 5.1.0") 2>&5 13321 ($PKG_CONFIG --exists --print-errors "lua5.1 >= 5.1.0") 2>&5
13199 ac_status=$? 13322 ac_status=$?
@@ -13203,13 +13326,15 @@ if test -n "$LUA_CFLAGS"; then
13203else 13326else
13204 pkg_failed=yes 13327 pkg_failed=yes
13205fi 13328fi
13206 else 13329 fi
13207 pkg_failed=untried 13330else
13331 pkg_failed=untried
13208fi 13332fi
13209if test -n "$LUA_LIBS"; then 13333if test -n "$PKG_CONFIG"; then
13210 pkg_cv_LUA_LIBS="$LUA_LIBS" 13334 if test -n "$LUA_LIBS"; then
13211 elif test -n "$PKG_CONFIG"; then 13335 pkg_cv_LUA_LIBS="$LUA_LIBS"
13212 if test -n "$PKG_CONFIG" && \ 13336 else
13337 if test -n "$PKG_CONFIG" && \
13213 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lua5.1 >= 5.1.0\""; } >&5 13338 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lua5.1 >= 5.1.0\""; } >&5
13214 ($PKG_CONFIG --exists --print-errors "lua5.1 >= 5.1.0") 2>&5 13339 ($PKG_CONFIG --exists --print-errors "lua5.1 >= 5.1.0") 2>&5
13215 ac_status=$? 13340 ac_status=$?
@@ -13219,15 +13344,14 @@ if test -n "$LUA_LIBS"; then
13219else 13344else
13220 pkg_failed=yes 13345 pkg_failed=yes
13221fi 13346fi
13222 else 13347 fi
13223 pkg_failed=untried 13348else
13349 pkg_failed=untried
13224fi 13350fi
13225 13351
13226 13352
13227 13353
13228if test $pkg_failed = yes; then 13354if test $pkg_failed = yes; then
13229 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
13230$as_echo "no" >&6; }
13231 13355
13232if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 13356if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
13233 _pkg_short_errors_supported=yes 13357 _pkg_short_errors_supported=yes
@@ -13235,22 +13359,25 @@ else
13235 _pkg_short_errors_supported=no 13359 _pkg_short_errors_supported=no
13236fi 13360fi
13237 if test $_pkg_short_errors_supported = yes; then 13361 if test $_pkg_short_errors_supported = yes; then
13238 LUA_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "lua5.1 >= 5.1.0" 2>&1` 13362 LUA_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "lua5.1 >= 5.1.0"`
13239 else 13363 else
13240 LUA_PKG_ERRORS=`$PKG_CONFIG --print-errors "lua5.1 >= 5.1.0" 2>&1` 13364 LUA_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "lua5.1 >= 5.1.0"`
13241 fi 13365 fi
13242 # Put the nasty error message in config.log where it belongs 13366 # Put the nasty error message in config.log where it belongs
13243 echo "$LUA_PKG_ERRORS" >&5 13367 echo "$LUA_PKG_ERRORS" >&5
13244 13368
13369 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
13370$as_echo "no" >&6; }
13245 13371
13246pkg_failed=no 13372pkg_failed=no
13247{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LUA" >&5 13373{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LUA" >&5
13248$as_echo_n "checking for LUA... " >&6; } 13374$as_echo_n "checking for LUA... " >&6; }
13249 13375
13250if test -n "$LUA_CFLAGS"; then 13376if test -n "$PKG_CONFIG"; then
13251 pkg_cv_LUA_CFLAGS="$LUA_CFLAGS" 13377 if test -n "$LUA_CFLAGS"; then
13252 elif test -n "$PKG_CONFIG"; then 13378 pkg_cv_LUA_CFLAGS="$LUA_CFLAGS"
13253 if test -n "$PKG_CONFIG" && \ 13379 else
13380 if test -n "$PKG_CONFIG" && \
13254 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lua-5.1 >= 5.1.0\""; } >&5 13381 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lua-5.1 >= 5.1.0\""; } >&5
13255 ($PKG_CONFIG --exists --print-errors "lua-5.1 >= 5.1.0") 2>&5 13382 ($PKG_CONFIG --exists --print-errors "lua-5.1 >= 5.1.0") 2>&5
13256 ac_status=$? 13383 ac_status=$?
@@ -13260,13 +13387,15 @@ if test -n "$LUA_CFLAGS"; then
13260else 13387else
13261 pkg_failed=yes 13388 pkg_failed=yes
13262fi 13389fi
13263 else 13390 fi
13264 pkg_failed=untried 13391else
13392 pkg_failed=untried
13265fi 13393fi
13266if test -n "$LUA_LIBS"; then 13394if test -n "$PKG_CONFIG"; then
13267 pkg_cv_LUA_LIBS="$LUA_LIBS" 13395 if test -n "$LUA_LIBS"; then
13268 elif test -n "$PKG_CONFIG"; then 13396 pkg_cv_LUA_LIBS="$LUA_LIBS"
13269 if test -n "$PKG_CONFIG" && \ 13397 else
13398 if test -n "$PKG_CONFIG" && \
13270 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lua-5.1 >= 5.1.0\""; } >&5 13399 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lua-5.1 >= 5.1.0\""; } >&5
13271 ($PKG_CONFIG --exists --print-errors "lua-5.1 >= 5.1.0") 2>&5 13400 ($PKG_CONFIG --exists --print-errors "lua-5.1 >= 5.1.0") 2>&5
13272 ac_status=$? 13401 ac_status=$?
@@ -13276,15 +13405,14 @@ if test -n "$LUA_LIBS"; then
13276else 13405else
13277 pkg_failed=yes 13406 pkg_failed=yes
13278fi 13407fi
13279 else 13408 fi
13280 pkg_failed=untried 13409else
13410 pkg_failed=untried
13281fi 13411fi
13282 13412
13283 13413
13284 13414
13285if test $pkg_failed = yes; then 13415if test $pkg_failed = yes; then
13286 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
13287$as_echo "no" >&6; }
13288 13416
13289if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 13417if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
13290 _pkg_short_errors_supported=yes 13418 _pkg_short_errors_supported=yes
@@ -13292,22 +13420,25 @@ else
13292 _pkg_short_errors_supported=no 13420 _pkg_short_errors_supported=no
13293fi 13421fi
13294 if test $_pkg_short_errors_supported = yes; then 13422 if test $_pkg_short_errors_supported = yes; then
13295 LUA_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "lua-5.1 >= 5.1.0" 2>&1` 13423 LUA_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "lua-5.1 >= 5.1.0"`
13296 else 13424 else
13297 LUA_PKG_ERRORS=`$PKG_CONFIG --print-errors "lua-5.1 >= 5.1.0" 2>&1` 13425 LUA_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "lua-5.1 >= 5.1.0"`
13298 fi 13426 fi
13299 # Put the nasty error message in config.log where it belongs 13427 # Put the nasty error message in config.log where it belongs
13300 echo "$LUA_PKG_ERRORS" >&5 13428 echo "$LUA_PKG_ERRORS" >&5
13301 13429
13430 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
13431$as_echo "no" >&6; }
13302 13432
13303pkg_failed=no 13433pkg_failed=no
13304{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LUA" >&5 13434{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LUA" >&5
13305$as_echo_n "checking for LUA... " >&6; } 13435$as_echo_n "checking for LUA... " >&6; }
13306 13436
13307if test -n "$LUA_CFLAGS"; then 13437if test -n "$PKG_CONFIG"; then
13308 pkg_cv_LUA_CFLAGS="$LUA_CFLAGS" 13438 if test -n "$LUA_CFLAGS"; then
13309 elif test -n "$PKG_CONFIG"; then 13439 pkg_cv_LUA_CFLAGS="$LUA_CFLAGS"
13310 if test -n "$PKG_CONFIG" && \ 13440 else
13441 if test -n "$PKG_CONFIG" && \
13311 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lua51 >= 5.1.0\""; } >&5 13442 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lua51 >= 5.1.0\""; } >&5
13312 ($PKG_CONFIG --exists --print-errors "lua51 >= 5.1.0") 2>&5 13443 ($PKG_CONFIG --exists --print-errors "lua51 >= 5.1.0") 2>&5
13313 ac_status=$? 13444 ac_status=$?
@@ -13317,13 +13448,15 @@ if test -n "$LUA_CFLAGS"; then
13317else 13448else
13318 pkg_failed=yes 13449 pkg_failed=yes
13319fi 13450fi
13320 else 13451 fi
13321 pkg_failed=untried 13452else
13453 pkg_failed=untried
13322fi 13454fi
13323if test -n "$LUA_LIBS"; then 13455if test -n "$PKG_CONFIG"; then
13324 pkg_cv_LUA_LIBS="$LUA_LIBS" 13456 if test -n "$LUA_LIBS"; then
13325 elif test -n "$PKG_CONFIG"; then 13457 pkg_cv_LUA_LIBS="$LUA_LIBS"
13326 if test -n "$PKG_CONFIG" && \ 13458 else
13459 if test -n "$PKG_CONFIG" && \
13327 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lua51 >= 5.1.0\""; } >&5 13460 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lua51 >= 5.1.0\""; } >&5
13328 ($PKG_CONFIG --exists --print-errors "lua51 >= 5.1.0") 2>&5 13461 ($PKG_CONFIG --exists --print-errors "lua51 >= 5.1.0") 2>&5
13329 ac_status=$? 13462 ac_status=$?
@@ -13333,15 +13466,14 @@ if test -n "$LUA_LIBS"; then
13333else 13466else
13334 pkg_failed=yes 13467 pkg_failed=yes
13335fi 13468fi
13336 else 13469 fi
13337 pkg_failed=untried 13470else
13471 pkg_failed=untried
13338fi 13472fi
13339 13473
13340 13474
13341 13475
13342if test $pkg_failed = yes; then 13476if test $pkg_failed = yes; then
13343 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
13344$as_echo "no" >&6; }
13345 13477
13346if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 13478if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
13347 _pkg_short_errors_supported=yes 13479 _pkg_short_errors_supported=yes
@@ -13349,17 +13481,17 @@ else
13349 _pkg_short_errors_supported=no 13481 _pkg_short_errors_supported=no
13350fi 13482fi
13351 if test $_pkg_short_errors_supported = yes; then 13483 if test $_pkg_short_errors_supported = yes; then
13352 LUA_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "lua51 >= 5.1.0" 2>&1` 13484 LUA_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "lua51 >= 5.1.0"`
13353 else 13485 else
13354 LUA_PKG_ERRORS=`$PKG_CONFIG --print-errors "lua51 >= 5.1.0" 2>&1` 13486 LUA_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "lua51 >= 5.1.0"`
13355 fi 13487 fi
13356 # Put the nasty error message in config.log where it belongs 13488 # Put the nasty error message in config.log where it belongs
13357 echo "$LUA_PKG_ERRORS" >&5 13489 echo "$LUA_PKG_ERRORS" >&5
13358 13490
13359 have_lua="no" 13491 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
13360elif test $pkg_failed = untried; then
13361 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
13362$as_echo "no" >&6; } 13492$as_echo "no" >&6; }
13493 have_lua="no"
13494elif test $pkg_failed = untried; then
13363 have_lua="no" 13495 have_lua="no"
13364else 13496else
13365 LUA_CFLAGS=$pkg_cv_LUA_CFLAGS 13497 LUA_CFLAGS=$pkg_cv_LUA_CFLAGS
@@ -13369,17 +13501,16 @@ $as_echo "yes" >&6; }
13369 requirement_lua="lua51" 13501 requirement_lua="lua51"
13370fi 13502fi
13371elif test $pkg_failed = untried; then 13503elif test $pkg_failed = untried; then
13372 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
13373$as_echo "no" >&6; }
13374 13504
13375pkg_failed=no 13505pkg_failed=no
13376{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LUA" >&5 13506{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LUA" >&5
13377$as_echo_n "checking for LUA... " >&6; } 13507$as_echo_n "checking for LUA... " >&6; }
13378 13508
13379if test -n "$LUA_CFLAGS"; then 13509if test -n "$PKG_CONFIG"; then
13380 pkg_cv_LUA_CFLAGS="$LUA_CFLAGS" 13510 if test -n "$LUA_CFLAGS"; then
13381 elif test -n "$PKG_CONFIG"; then 13511 pkg_cv_LUA_CFLAGS="$LUA_CFLAGS"
13382 if test -n "$PKG_CONFIG" && \ 13512 else
13513 if test -n "$PKG_CONFIG" && \
13383 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lua51 >= 5.1.0\""; } >&5 13514 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lua51 >= 5.1.0\""; } >&5
13384 ($PKG_CONFIG --exists --print-errors "lua51 >= 5.1.0") 2>&5 13515 ($PKG_CONFIG --exists --print-errors "lua51 >= 5.1.0") 2>&5
13385 ac_status=$? 13516 ac_status=$?
@@ -13389,13 +13520,15 @@ if test -n "$LUA_CFLAGS"; then
13389else 13520else
13390 pkg_failed=yes 13521 pkg_failed=yes
13391fi 13522fi
13392 else 13523 fi
13393 pkg_failed=untried 13524else
13525 pkg_failed=untried
13394fi 13526fi
13395if test -n "$LUA_LIBS"; then 13527if test -n "$PKG_CONFIG"; then
13396 pkg_cv_LUA_LIBS="$LUA_LIBS" 13528 if test -n "$LUA_LIBS"; then
13397 elif test -n "$PKG_CONFIG"; then 13529 pkg_cv_LUA_LIBS="$LUA_LIBS"
13398 if test -n "$PKG_CONFIG" && \ 13530 else
13531 if test -n "$PKG_CONFIG" && \
13399 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lua51 >= 5.1.0\""; } >&5 13532 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lua51 >= 5.1.0\""; } >&5
13400 ($PKG_CONFIG --exists --print-errors "lua51 >= 5.1.0") 2>&5 13533 ($PKG_CONFIG --exists --print-errors "lua51 >= 5.1.0") 2>&5
13401 ac_status=$? 13534 ac_status=$?
@@ -13405,15 +13538,14 @@ if test -n "$LUA_LIBS"; then
13405else 13538else
13406 pkg_failed=yes 13539 pkg_failed=yes
13407fi 13540fi
13408 else 13541 fi
13409 pkg_failed=untried 13542else
13543 pkg_failed=untried
13410fi 13544fi
13411 13545
13412 13546
13413 13547
13414if test $pkg_failed = yes; then 13548if test $pkg_failed = yes; then
13415 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
13416$as_echo "no" >&6; }
13417 13549
13418if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 13550if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
13419 _pkg_short_errors_supported=yes 13551 _pkg_short_errors_supported=yes
@@ -13421,17 +13553,17 @@ else
13421 _pkg_short_errors_supported=no 13553 _pkg_short_errors_supported=no
13422fi 13554fi
13423 if test $_pkg_short_errors_supported = yes; then 13555 if test $_pkg_short_errors_supported = yes; then
13424 LUA_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "lua51 >= 5.1.0" 2>&1` 13556 LUA_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "lua51 >= 5.1.0"`
13425 else 13557 else
13426 LUA_PKG_ERRORS=`$PKG_CONFIG --print-errors "lua51 >= 5.1.0" 2>&1` 13558 LUA_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "lua51 >= 5.1.0"`
13427 fi 13559 fi
13428 # Put the nasty error message in config.log where it belongs 13560 # Put the nasty error message in config.log where it belongs
13429 echo "$LUA_PKG_ERRORS" >&5 13561 echo "$LUA_PKG_ERRORS" >&5
13430 13562
13431 have_lua="no" 13563 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
13432elif test $pkg_failed = untried; then
13433 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
13434$as_echo "no" >&6; } 13564$as_echo "no" >&6; }
13565 have_lua="no"
13566elif test $pkg_failed = untried; then
13435 have_lua="no" 13567 have_lua="no"
13436else 13568else
13437 LUA_CFLAGS=$pkg_cv_LUA_CFLAGS 13569 LUA_CFLAGS=$pkg_cv_LUA_CFLAGS
@@ -13448,17 +13580,16 @@ $as_echo "yes" >&6; }
13448 requirement_lua="lua-5.1" 13580 requirement_lua="lua-5.1"
13449fi 13581fi
13450elif test $pkg_failed = untried; then 13582elif test $pkg_failed = untried; then
13451 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
13452$as_echo "no" >&6; }
13453 13583
13454pkg_failed=no 13584pkg_failed=no
13455{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LUA" >&5 13585{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LUA" >&5
13456$as_echo_n "checking for LUA... " >&6; } 13586$as_echo_n "checking for LUA... " >&6; }
13457 13587
13458if test -n "$LUA_CFLAGS"; then 13588if test -n "$PKG_CONFIG"; then
13459 pkg_cv_LUA_CFLAGS="$LUA_CFLAGS" 13589 if test -n "$LUA_CFLAGS"; then
13460 elif test -n "$PKG_CONFIG"; then 13590 pkg_cv_LUA_CFLAGS="$LUA_CFLAGS"
13461 if test -n "$PKG_CONFIG" && \ 13591 else
13592 if test -n "$PKG_CONFIG" && \
13462 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lua-5.1 >= 5.1.0\""; } >&5 13593 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lua-5.1 >= 5.1.0\""; } >&5
13463 ($PKG_CONFIG --exists --print-errors "lua-5.1 >= 5.1.0") 2>&5 13594 ($PKG_CONFIG --exists --print-errors "lua-5.1 >= 5.1.0") 2>&5
13464 ac_status=$? 13595 ac_status=$?
@@ -13468,13 +13599,15 @@ if test -n "$LUA_CFLAGS"; then
13468else 13599else
13469 pkg_failed=yes 13600 pkg_failed=yes
13470fi 13601fi
13471 else 13602 fi
13472 pkg_failed=untried 13603else
13604 pkg_failed=untried
13473fi 13605fi
13474if test -n "$LUA_LIBS"; then 13606if test -n "$PKG_CONFIG"; then
13475 pkg_cv_LUA_LIBS="$LUA_LIBS" 13607 if test -n "$LUA_LIBS"; then
13476 elif test -n "$PKG_CONFIG"; then 13608 pkg_cv_LUA_LIBS="$LUA_LIBS"
13477 if test -n "$PKG_CONFIG" && \ 13609 else
13610 if test -n "$PKG_CONFIG" && \
13478 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lua-5.1 >= 5.1.0\""; } >&5 13611 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lua-5.1 >= 5.1.0\""; } >&5
13479 ($PKG_CONFIG --exists --print-errors "lua-5.1 >= 5.1.0") 2>&5 13612 ($PKG_CONFIG --exists --print-errors "lua-5.1 >= 5.1.0") 2>&5
13480 ac_status=$? 13613 ac_status=$?
@@ -13484,15 +13617,14 @@ if test -n "$LUA_LIBS"; then
13484else 13617else
13485 pkg_failed=yes 13618 pkg_failed=yes
13486fi 13619fi
13487 else 13620 fi
13488 pkg_failed=untried 13621else
13622 pkg_failed=untried
13489fi 13623fi
13490 13624
13491 13625
13492 13626
13493if test $pkg_failed = yes; then 13627if test $pkg_failed = yes; then
13494 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
13495$as_echo "no" >&6; }
13496 13628
13497if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 13629if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
13498 _pkg_short_errors_supported=yes 13630 _pkg_short_errors_supported=yes
@@ -13500,22 +13632,25 @@ else
13500 _pkg_short_errors_supported=no 13632 _pkg_short_errors_supported=no
13501fi 13633fi
13502 if test $_pkg_short_errors_supported = yes; then 13634 if test $_pkg_short_errors_supported = yes; then
13503 LUA_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "lua-5.1 >= 5.1.0" 2>&1` 13635 LUA_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "lua-5.1 >= 5.1.0"`
13504 else 13636 else
13505 LUA_PKG_ERRORS=`$PKG_CONFIG --print-errors "lua-5.1 >= 5.1.0" 2>&1` 13637 LUA_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "lua-5.1 >= 5.1.0"`
13506 fi 13638 fi
13507 # Put the nasty error message in config.log where it belongs 13639 # Put the nasty error message in config.log where it belongs
13508 echo "$LUA_PKG_ERRORS" >&5 13640 echo "$LUA_PKG_ERRORS" >&5
13509 13641
13642 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
13643$as_echo "no" >&6; }
13510 13644
13511pkg_failed=no 13645pkg_failed=no
13512{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LUA" >&5 13646{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LUA" >&5
13513$as_echo_n "checking for LUA... " >&6; } 13647$as_echo_n "checking for LUA... " >&6; }
13514 13648
13515if test -n "$LUA_CFLAGS"; then 13649if test -n "$PKG_CONFIG"; then
13516 pkg_cv_LUA_CFLAGS="$LUA_CFLAGS" 13650 if test -n "$LUA_CFLAGS"; then
13517 elif test -n "$PKG_CONFIG"; then 13651 pkg_cv_LUA_CFLAGS="$LUA_CFLAGS"
13518 if test -n "$PKG_CONFIG" && \ 13652 else
13653 if test -n "$PKG_CONFIG" && \
13519 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lua51 >= 5.1.0\""; } >&5 13654 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lua51 >= 5.1.0\""; } >&5
13520 ($PKG_CONFIG --exists --print-errors "lua51 >= 5.1.0") 2>&5 13655 ($PKG_CONFIG --exists --print-errors "lua51 >= 5.1.0") 2>&5
13521 ac_status=$? 13656 ac_status=$?
@@ -13525,13 +13660,15 @@ if test -n "$LUA_CFLAGS"; then
13525else 13660else
13526 pkg_failed=yes 13661 pkg_failed=yes
13527fi 13662fi
13528 else 13663 fi
13529 pkg_failed=untried 13664else
13665 pkg_failed=untried
13530fi 13666fi
13531if test -n "$LUA_LIBS"; then 13667if test -n "$PKG_CONFIG"; then
13532 pkg_cv_LUA_LIBS="$LUA_LIBS" 13668 if test -n "$LUA_LIBS"; then
13533 elif test -n "$PKG_CONFIG"; then 13669 pkg_cv_LUA_LIBS="$LUA_LIBS"
13534 if test -n "$PKG_CONFIG" && \ 13670 else
13671 if test -n "$PKG_CONFIG" && \
13535 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lua51 >= 5.1.0\""; } >&5 13672 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lua51 >= 5.1.0\""; } >&5
13536 ($PKG_CONFIG --exists --print-errors "lua51 >= 5.1.0") 2>&5 13673 ($PKG_CONFIG --exists --print-errors "lua51 >= 5.1.0") 2>&5
13537 ac_status=$? 13674 ac_status=$?
@@ -13541,15 +13678,14 @@ if test -n "$LUA_LIBS"; then
13541else 13678else
13542 pkg_failed=yes 13679 pkg_failed=yes
13543fi 13680fi
13544 else 13681 fi
13545 pkg_failed=untried 13682else
13683 pkg_failed=untried
13546fi 13684fi
13547 13685
13548 13686
13549 13687
13550if test $pkg_failed = yes; then 13688if test $pkg_failed = yes; then
13551 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
13552$as_echo "no" >&6; }
13553 13689
13554if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 13690if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
13555 _pkg_short_errors_supported=yes 13691 _pkg_short_errors_supported=yes
@@ -13557,17 +13693,17 @@ else
13557 _pkg_short_errors_supported=no 13693 _pkg_short_errors_supported=no
13558fi 13694fi
13559 if test $_pkg_short_errors_supported = yes; then 13695 if test $_pkg_short_errors_supported = yes; then
13560 LUA_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "lua51 >= 5.1.0" 2>&1` 13696 LUA_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "lua51 >= 5.1.0"`
13561 else 13697 else
13562 LUA_PKG_ERRORS=`$PKG_CONFIG --print-errors "lua51 >= 5.1.0" 2>&1` 13698 LUA_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "lua51 >= 5.1.0"`
13563 fi 13699 fi
13564 # Put the nasty error message in config.log where it belongs 13700 # Put the nasty error message in config.log where it belongs
13565 echo "$LUA_PKG_ERRORS" >&5 13701 echo "$LUA_PKG_ERRORS" >&5
13566 13702
13567 have_lua="no" 13703 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
13568elif test $pkg_failed = untried; then
13569 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
13570$as_echo "no" >&6; } 13704$as_echo "no" >&6; }
13705 have_lua="no"
13706elif test $pkg_failed = untried; then
13571 have_lua="no" 13707 have_lua="no"
13572else 13708else
13573 LUA_CFLAGS=$pkg_cv_LUA_CFLAGS 13709 LUA_CFLAGS=$pkg_cv_LUA_CFLAGS
@@ -13577,17 +13713,16 @@ $as_echo "yes" >&6; }
13577 requirement_lua="lua51" 13713 requirement_lua="lua51"
13578fi 13714fi
13579elif test $pkg_failed = untried; then 13715elif test $pkg_failed = untried; then
13580 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
13581$as_echo "no" >&6; }
13582 13716
13583pkg_failed=no 13717pkg_failed=no
13584{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LUA" >&5 13718{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LUA" >&5
13585$as_echo_n "checking for LUA... " >&6; } 13719$as_echo_n "checking for LUA... " >&6; }
13586 13720
13587if test -n "$LUA_CFLAGS"; then 13721if test -n "$PKG_CONFIG"; then
13588 pkg_cv_LUA_CFLAGS="$LUA_CFLAGS" 13722 if test -n "$LUA_CFLAGS"; then
13589 elif test -n "$PKG_CONFIG"; then 13723 pkg_cv_LUA_CFLAGS="$LUA_CFLAGS"
13590 if test -n "$PKG_CONFIG" && \ 13724 else
13725 if test -n "$PKG_CONFIG" && \
13591 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lua51 >= 5.1.0\""; } >&5 13726 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lua51 >= 5.1.0\""; } >&5
13592 ($PKG_CONFIG --exists --print-errors "lua51 >= 5.1.0") 2>&5 13727 ($PKG_CONFIG --exists --print-errors "lua51 >= 5.1.0") 2>&5
13593 ac_status=$? 13728 ac_status=$?
@@ -13597,13 +13732,15 @@ if test -n "$LUA_CFLAGS"; then
13597else 13732else
13598 pkg_failed=yes 13733 pkg_failed=yes
13599fi 13734fi
13600 else 13735 fi
13601 pkg_failed=untried 13736else
13737 pkg_failed=untried
13602fi 13738fi
13603if test -n "$LUA_LIBS"; then 13739if test -n "$PKG_CONFIG"; then
13604 pkg_cv_LUA_LIBS="$LUA_LIBS" 13740 if test -n "$LUA_LIBS"; then
13605 elif test -n "$PKG_CONFIG"; then 13741 pkg_cv_LUA_LIBS="$LUA_LIBS"
13606 if test -n "$PKG_CONFIG" && \ 13742 else
13743 if test -n "$PKG_CONFIG" && \
13607 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lua51 >= 5.1.0\""; } >&5 13744 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lua51 >= 5.1.0\""; } >&5
13608 ($PKG_CONFIG --exists --print-errors "lua51 >= 5.1.0") 2>&5 13745 ($PKG_CONFIG --exists --print-errors "lua51 >= 5.1.0") 2>&5
13609 ac_status=$? 13746 ac_status=$?
@@ -13613,15 +13750,14 @@ if test -n "$LUA_LIBS"; then
13613else 13750else
13614 pkg_failed=yes 13751 pkg_failed=yes
13615fi 13752fi
13616 else 13753 fi
13617 pkg_failed=untried 13754else
13755 pkg_failed=untried
13618fi 13756fi
13619 13757
13620 13758
13621 13759
13622if test $pkg_failed = yes; then 13760if test $pkg_failed = yes; then
13623 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
13624$as_echo "no" >&6; }
13625 13761
13626if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 13762if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
13627 _pkg_short_errors_supported=yes 13763 _pkg_short_errors_supported=yes
@@ -13629,17 +13765,17 @@ else
13629 _pkg_short_errors_supported=no 13765 _pkg_short_errors_supported=no
13630fi 13766fi
13631 if test $_pkg_short_errors_supported = yes; then 13767 if test $_pkg_short_errors_supported = yes; then
13632 LUA_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "lua51 >= 5.1.0" 2>&1` 13768 LUA_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "lua51 >= 5.1.0"`
13633 else 13769 else
13634 LUA_PKG_ERRORS=`$PKG_CONFIG --print-errors "lua51 >= 5.1.0" 2>&1` 13770 LUA_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "lua51 >= 5.1.0"`
13635 fi 13771 fi
13636 # Put the nasty error message in config.log where it belongs 13772 # Put the nasty error message in config.log where it belongs
13637 echo "$LUA_PKG_ERRORS" >&5 13773 echo "$LUA_PKG_ERRORS" >&5
13638 13774
13639 have_lua="no" 13775 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
13640elif test $pkg_failed = untried; then
13641 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
13642$as_echo "no" >&6; } 13776$as_echo "no" >&6; }
13777 have_lua="no"
13778elif test $pkg_failed = untried; then
13643 have_lua="no" 13779 have_lua="no"
13644else 13780else
13645 LUA_CFLAGS=$pkg_cv_LUA_CFLAGS 13781 LUA_CFLAGS=$pkg_cv_LUA_CFLAGS
@@ -13724,7 +13860,7 @@ fi
13724 13860
13725 13861
13726if test "x${have_lua}" = "xno" ; then 13862if test "x${have_lua}" = "xno" ; then
13727 as_fn_error $? "Cannot find lua library. Be sure that you have installed it and set CFLAGS and LDFLAGS correctly" "$LINENO" 5 13863 as_fn_error "Cannot find lua library. Be sure that you have installed it and set CFLAGS and LDFLAGS correctly" "$LINENO" 5
13728fi 13864fi
13729 13865
13730 13866
@@ -13732,10 +13868,11 @@ pkg_failed=no
13732{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for MINIMAL" >&5 13868{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for MINIMAL" >&5
13733$as_echo_n "checking for MINIMAL... " >&6; } 13869$as_echo_n "checking for MINIMAL... " >&6; }
13734 13870
13735if test -n "$MINIMAL_CFLAGS"; then 13871if test -n "$PKG_CONFIG"; then
13736 pkg_cv_MINIMAL_CFLAGS="$MINIMAL_CFLAGS" 13872 if test -n "$MINIMAL_CFLAGS"; then
13737 elif test -n "$PKG_CONFIG"; then 13873 pkg_cv_MINIMAL_CFLAGS="$MINIMAL_CFLAGS"
13738 if test -n "$PKG_CONFIG" && \ 13874 else
13875 if test -n "$PKG_CONFIG" && \
13739 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \" 13876 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"
13740 eina >= 1.1.0 13877 eina >= 1.1.0
13741 eet >= 1.5.0 13878 eet >= 1.5.0
@@ -13754,13 +13891,15 @@ if test -n "$MINIMAL_CFLAGS"; then
13754else 13891else
13755 pkg_failed=yes 13892 pkg_failed=yes
13756fi 13893fi
13757 else 13894 fi
13758 pkg_failed=untried 13895else
13896 pkg_failed=untried
13759fi 13897fi
13760if test -n "$MINIMAL_LIBS"; then 13898if test -n "$PKG_CONFIG"; then
13761 pkg_cv_MINIMAL_LIBS="$MINIMAL_LIBS" 13899 if test -n "$MINIMAL_LIBS"; then
13762 elif test -n "$PKG_CONFIG"; then 13900 pkg_cv_MINIMAL_LIBS="$MINIMAL_LIBS"
13763 if test -n "$PKG_CONFIG" && \ 13901 else
13902 if test -n "$PKG_CONFIG" && \
13764 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \" 13903 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"
13765 eina >= 1.1.0 13904 eina >= 1.1.0
13766 eet >= 1.5.0 13905 eet >= 1.5.0
@@ -13779,15 +13918,14 @@ if test -n "$MINIMAL_LIBS"; then
13779else 13918else
13780 pkg_failed=yes 13919 pkg_failed=yes
13781fi 13920fi
13782 else 13921 fi
13783 pkg_failed=untried 13922else
13923 pkg_failed=untried
13784fi 13924fi
13785 13925
13786 13926
13787 13927
13788if test $pkg_failed = yes; then 13928if test $pkg_failed = yes; then
13789 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
13790$as_echo "no" >&6; }
13791 13929
13792if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 13930if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
13793 _pkg_short_errors_supported=yes 13931 _pkg_short_errors_supported=yes
@@ -13795,20 +13933,20 @@ else
13795 _pkg_short_errors_supported=no 13933 _pkg_short_errors_supported=no
13796fi 13934fi
13797 if test $_pkg_short_errors_supported = yes; then 13935 if test $_pkg_short_errors_supported = yes; then
13798 MINIMAL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors " 13936 MINIMAL_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "
13799 eina >= 1.1.0 13937 eina >= 1.1.0
13800 eet >= 1.5.0 13938 eet >= 1.5.0
13801 " 2>&1` 13939 "`
13802 else 13940 else
13803 MINIMAL_PKG_ERRORS=`$PKG_CONFIG --print-errors " 13941 MINIMAL_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "
13804 eina >= 1.1.0 13942 eina >= 1.1.0
13805 eet >= 1.5.0 13943 eet >= 1.5.0
13806 " 2>&1` 13944 "`
13807 fi 13945 fi
13808 # Put the nasty error message in config.log where it belongs 13946 # Put the nasty error message in config.log where it belongs
13809 echo "$MINIMAL_PKG_ERRORS" >&5 13947 echo "$MINIMAL_PKG_ERRORS" >&5
13810 13948
13811 as_fn_error $? "Package requirements ( 13949 as_fn_error "Package requirements (
13812 eina >= 1.1.0 13950 eina >= 1.1.0
13813 eet >= 1.5.0 13951 eet >= 1.5.0
13814 ) were not met: 13952 ) were not met:
@@ -13820,13 +13958,12 @@ installed software in a non-standard prefix.
13820 13958
13821Alternatively, you may set the environment variables MINIMAL_CFLAGS 13959Alternatively, you may set the environment variables MINIMAL_CFLAGS
13822and MINIMAL_LIBS to avoid the need to call pkg-config. 13960and MINIMAL_LIBS to avoid the need to call pkg-config.
13823See the pkg-config man page for more details." "$LINENO" 5 13961See the pkg-config man page for more details.
13962" "$LINENO" 5
13824elif test $pkg_failed = untried; then 13963elif test $pkg_failed = untried; then
13825 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
13826$as_echo "no" >&6; }
13827 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 13964 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
13828$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 13965$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
13829as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it 13966as_fn_error "The pkg-config script could not be found or is too old. Make sure it
13830is in your PATH or set the PKG_CONFIG environment variable to the full 13967is in your PATH or set the PKG_CONFIG environment variable to the full
13831path to pkg-config. 13968path to pkg-config.
13832 13969
@@ -13835,13 +13972,13 @@ and MINIMAL_LIBS to avoid the need to call pkg-config.
13835See the pkg-config man page for more details. 13972See the pkg-config man page for more details.
13836 13973
13837To get pkg-config, see <http://pkg-config.freedesktop.org/>. 13974To get pkg-config, see <http://pkg-config.freedesktop.org/>.
13838See \`config.log' for more details" "$LINENO" 5 ; } 13975See \`config.log' for more details." "$LINENO" 5; }
13839else 13976else
13840 MINIMAL_CFLAGS=$pkg_cv_MINIMAL_CFLAGS 13977 MINIMAL_CFLAGS=$pkg_cv_MINIMAL_CFLAGS
13841 MINIMAL_LIBS=$pkg_cv_MINIMAL_LIBS 13978 MINIMAL_LIBS=$pkg_cv_MINIMAL_LIBS
13842 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 13979 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
13843$as_echo "yes" >&6; } 13980$as_echo "yes" >&6; }
13844 13981 :
13845fi 13982fi
13846 13983
13847 13984
@@ -13849,10 +13986,11 @@ pkg_failed=no
13849{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EDJE" >&5 13986{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EDJE" >&5
13850$as_echo_n "checking for EDJE... " >&6; } 13987$as_echo_n "checking for EDJE... " >&6; }
13851 13988
13852if test -n "$EDJE_CFLAGS"; then 13989if test -n "$PKG_CONFIG"; then
13853 pkg_cv_EDJE_CFLAGS="$EDJE_CFLAGS" 13990 if test -n "$EDJE_CFLAGS"; then
13854 elif test -n "$PKG_CONFIG"; then 13991 pkg_cv_EDJE_CFLAGS="$EDJE_CFLAGS"
13855 if test -n "$PKG_CONFIG" && \ 13992 else
13993 if test -n "$PKG_CONFIG" && \
13856 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \" 13994 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"
13857 eina >= 1.1.0 13995 eina >= 1.1.0
13858 eet >= 1.5.0 13996 eet >= 1.5.0
@@ -13886,13 +14024,15 @@ if test -n "$EDJE_CFLAGS"; then
13886else 14024else
13887 pkg_failed=yes 14025 pkg_failed=yes
13888fi 14026fi
13889 else 14027 fi
13890 pkg_failed=untried 14028else
14029 pkg_failed=untried
13891fi 14030fi
13892if test -n "$EDJE_LIBS"; then 14031if test -n "$PKG_CONFIG"; then
13893 pkg_cv_EDJE_LIBS="$EDJE_LIBS" 14032 if test -n "$EDJE_LIBS"; then
13894 elif test -n "$PKG_CONFIG"; then 14033 pkg_cv_EDJE_LIBS="$EDJE_LIBS"
13895 if test -n "$PKG_CONFIG" && \ 14034 else
14035 if test -n "$PKG_CONFIG" && \
13896 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \" 14036 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"
13897 eina >= 1.1.0 14037 eina >= 1.1.0
13898 eet >= 1.5.0 14038 eet >= 1.5.0
@@ -13926,15 +14066,14 @@ if test -n "$EDJE_LIBS"; then
13926else 14066else
13927 pkg_failed=yes 14067 pkg_failed=yes
13928fi 14068fi
13929 else 14069 fi
13930 pkg_failed=untried 14070else
14071 pkg_failed=untried
13931fi 14072fi
13932 14073
13933 14074
13934 14075
13935if test $pkg_failed = yes; then 14076if test $pkg_failed = yes; then
13936 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
13937$as_echo "no" >&6; }
13938 14077
13939if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 14078if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
13940 _pkg_short_errors_supported=yes 14079 _pkg_short_errors_supported=yes
@@ -13942,7 +14081,7 @@ else
13942 _pkg_short_errors_supported=no 14081 _pkg_short_errors_supported=no
13943fi 14082fi
13944 if test $_pkg_short_errors_supported = yes; then 14083 if test $_pkg_short_errors_supported = yes; then
13945 EDJE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors " 14084 EDJE_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "
13946 eina >= 1.1.0 14085 eina >= 1.1.0
13947 eet >= 1.5.0 14086 eet >= 1.5.0
13948 evas >= 1.1.0 14087 evas >= 1.1.0
@@ -13950,9 +14089,9 @@ fi
13950 ecore-evas >= 1.1.0 14089 ecore-evas >= 1.1.0
13951 ecore-file >= 1.1.0 14090 ecore-file >= 1.1.0
13952 embryo >= 1.1.0 14091 embryo >= 1.1.0
13953 " 2>&1` 14092 "`
13954 else 14093 else
13955 EDJE_PKG_ERRORS=`$PKG_CONFIG --print-errors " 14094 EDJE_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "
13956 eina >= 1.1.0 14095 eina >= 1.1.0
13957 eet >= 1.5.0 14096 eet >= 1.5.0
13958 evas >= 1.1.0 14097 evas >= 1.1.0
@@ -13960,12 +14099,12 @@ fi
13960 ecore-evas >= 1.1.0 14099 ecore-evas >= 1.1.0
13961 ecore-file >= 1.1.0 14100 ecore-file >= 1.1.0
13962 embryo >= 1.1.0 14101 embryo >= 1.1.0
13963 " 2>&1` 14102 "`
13964 fi 14103 fi
13965 # Put the nasty error message in config.log where it belongs 14104 # Put the nasty error message in config.log where it belongs
13966 echo "$EDJE_PKG_ERRORS" >&5 14105 echo "$EDJE_PKG_ERRORS" >&5
13967 14106
13968 as_fn_error $? "Package requirements ( 14107 as_fn_error "Package requirements (
13969 eina >= 1.1.0 14108 eina >= 1.1.0
13970 eet >= 1.5.0 14109 eet >= 1.5.0
13971 evas >= 1.1.0 14110 evas >= 1.1.0
@@ -13982,13 +14121,12 @@ installed software in a non-standard prefix.
13982 14121
13983Alternatively, you may set the environment variables EDJE_CFLAGS 14122Alternatively, you may set the environment variables EDJE_CFLAGS
13984and EDJE_LIBS to avoid the need to call pkg-config. 14123and EDJE_LIBS to avoid the need to call pkg-config.
13985See the pkg-config man page for more details." "$LINENO" 5 14124See the pkg-config man page for more details.
14125" "$LINENO" 5
13986elif test $pkg_failed = untried; then 14126elif test $pkg_failed = untried; then
13987 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
13988$as_echo "no" >&6; }
13989 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 14127 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
13990$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 14128$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
13991as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it 14129as_fn_error "The pkg-config script could not be found or is too old. Make sure it
13992is in your PATH or set the PKG_CONFIG environment variable to the full 14130is in your PATH or set the PKG_CONFIG environment variable to the full
13993path to pkg-config. 14131path to pkg-config.
13994 14132
@@ -13997,13 +14135,13 @@ and EDJE_LIBS to avoid the need to call pkg-config.
13997See the pkg-config man page for more details. 14135See the pkg-config man page for more details.
13998 14136
13999To get pkg-config, see <http://pkg-config.freedesktop.org/>. 14137To get pkg-config, see <http://pkg-config.freedesktop.org/>.
14000See \`config.log' for more details" "$LINENO" 5 ; } 14138See \`config.log' for more details." "$LINENO" 5; }
14001else 14139else
14002 EDJE_CFLAGS=$pkg_cv_EDJE_CFLAGS 14140 EDJE_CFLAGS=$pkg_cv_EDJE_CFLAGS
14003 EDJE_LIBS=$pkg_cv_EDJE_LIBS 14141 EDJE_LIBS=$pkg_cv_EDJE_LIBS
14004 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 14142 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
14005$as_echo "yes" >&6; } 14143$as_echo "yes" >&6; }
14006 14144 :
14007fi 14145fi
14008 14146
14009EDJE_LIBS="${EDJE_LIBS} ${LUA_LIBS} ${lua_libs}" 14147EDJE_LIBS="${EDJE_LIBS} ${LUA_LIBS} ${lua_libs}"
@@ -14018,10 +14156,11 @@ pkg_failed=no
14018{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ECORE_IMF" >&5 14156{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ECORE_IMF" >&5
14019$as_echo_n "checking for ECORE_IMF... " >&6; } 14157$as_echo_n "checking for ECORE_IMF... " >&6; }
14020 14158
14021if test -n "$ECORE_IMF_CFLAGS"; then 14159if test -n "$PKG_CONFIG"; then
14022 pkg_cv_ECORE_IMF_CFLAGS="$ECORE_IMF_CFLAGS" 14160 if test -n "$ECORE_IMF_CFLAGS"; then
14023 elif test -n "$PKG_CONFIG"; then 14161 pkg_cv_ECORE_IMF_CFLAGS="$ECORE_IMF_CFLAGS"
14024 if test -n "$PKG_CONFIG" && \ 14162 else
14163 if test -n "$PKG_CONFIG" && \
14025 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \" 14164 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"
14026 ecore-imf >= 1.1.0 14165 ecore-imf >= 1.1.0
14027 ecore-imf-evas >= 1.1.0 14166 ecore-imf-evas >= 1.1.0
@@ -14040,13 +14179,15 @@ if test -n "$ECORE_IMF_CFLAGS"; then
14040else 14179else
14041 pkg_failed=yes 14180 pkg_failed=yes
14042fi 14181fi
14043 else 14182 fi
14044 pkg_failed=untried 14183else
14184 pkg_failed=untried
14045fi 14185fi
14046if test -n "$ECORE_IMF_LIBS"; then 14186if test -n "$PKG_CONFIG"; then
14047 pkg_cv_ECORE_IMF_LIBS="$ECORE_IMF_LIBS" 14187 if test -n "$ECORE_IMF_LIBS"; then
14048 elif test -n "$PKG_CONFIG"; then 14188 pkg_cv_ECORE_IMF_LIBS="$ECORE_IMF_LIBS"
14049 if test -n "$PKG_CONFIG" && \ 14189 else
14190 if test -n "$PKG_CONFIG" && \
14050 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \" 14191 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"
14051 ecore-imf >= 1.1.0 14192 ecore-imf >= 1.1.0
14052 ecore-imf-evas >= 1.1.0 14193 ecore-imf-evas >= 1.1.0
@@ -14065,15 +14206,14 @@ if test -n "$ECORE_IMF_LIBS"; then
14065else 14206else
14066 pkg_failed=yes 14207 pkg_failed=yes
14067fi 14208fi
14068 else 14209 fi
14069 pkg_failed=untried 14210else
14211 pkg_failed=untried
14070fi 14212fi
14071 14213
14072 14214
14073 14215
14074if test $pkg_failed = yes; then 14216if test $pkg_failed = yes; then
14075 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
14076$as_echo "no" >&6; }
14077 14217
14078if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 14218if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
14079 _pkg_short_errors_supported=yes 14219 _pkg_short_errors_supported=yes
@@ -14081,23 +14221,23 @@ else
14081 _pkg_short_errors_supported=no 14221 _pkg_short_errors_supported=no
14082fi 14222fi
14083 if test $_pkg_short_errors_supported = yes; then 14223 if test $_pkg_short_errors_supported = yes; then
14084 ECORE_IMF_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors " 14224 ECORE_IMF_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "
14085 ecore-imf >= 1.1.0 14225 ecore-imf >= 1.1.0
14086 ecore-imf-evas >= 1.1.0 14226 ecore-imf-evas >= 1.1.0
14087 " 2>&1` 14227 "`
14088 else 14228 else
14089 ECORE_IMF_PKG_ERRORS=`$PKG_CONFIG --print-errors " 14229 ECORE_IMF_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "
14090 ecore-imf >= 1.1.0 14230 ecore-imf >= 1.1.0
14091 ecore-imf-evas >= 1.1.0 14231 ecore-imf-evas >= 1.1.0
14092 " 2>&1` 14232 "`
14093 fi 14233 fi
14094 # Put the nasty error message in config.log where it belongs 14234 # Put the nasty error message in config.log where it belongs
14095 echo "$ECORE_IMF_PKG_ERRORS" >&5 14235 echo "$ECORE_IMF_PKG_ERRORS" >&5
14096 14236
14097 have_ecore_imf="no" 14237 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
14098elif test $pkg_failed = untried; then
14099 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
14100$as_echo "no" >&6; } 14238$as_echo "no" >&6; }
14239 have_ecore_imf="no"
14240elif test $pkg_failed = untried; then
14101 have_ecore_imf="no" 14241 have_ecore_imf="no"
14102else 14242else
14103 ECORE_IMF_CFLAGS=$pkg_cv_ECORE_IMF_CFLAGS 14243 ECORE_IMF_CFLAGS=$pkg_cv_ECORE_IMF_CFLAGS
@@ -14114,7 +14254,13 @@ $as_echo "#define HAVE_ECORE_IMF 1" >>confdefs.h
14114fi 14254fi
14115 14255
14116# Enable Multisense use 14256# Enable Multisense use
14117want_multisense="no" 14257want_multisense="yes"
14258# Check whether --enable-multisense was given.
14259if test "${enable_multisense+set}" = set; then :
14260 enableval=$enable_multisense; want_multisense=$enableval
14261
14262fi
14263
14118 if test "x${want_multisense}" = "xyes"; then 14264 if test "x${want_multisense}" = "xyes"; then
14119 ENABLE_MULTISENSE_TRUE= 14265 ENABLE_MULTISENSE_TRUE=
14120 ENABLE_MULTISENSE_FALSE='#' 14266 ENABLE_MULTISENSE_FALSE='#'
@@ -14140,10 +14286,11 @@ pkg_failed=no
14140{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SNDFILE" >&5 14286{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SNDFILE" >&5
14141$as_echo_n "checking for SNDFILE... " >&6; } 14287$as_echo_n "checking for SNDFILE... " >&6; }
14142 14288
14143if test -n "$SNDFILE_CFLAGS"; then 14289if test -n "$PKG_CONFIG"; then
14144 pkg_cv_SNDFILE_CFLAGS="$SNDFILE_CFLAGS" 14290 if test -n "$SNDFILE_CFLAGS"; then
14145 elif test -n "$PKG_CONFIG"; then 14291 pkg_cv_SNDFILE_CFLAGS="$SNDFILE_CFLAGS"
14146 if test -n "$PKG_CONFIG" && \ 14292 else
14293 if test -n "$PKG_CONFIG" && \
14147 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sndfile >= 1.0.21\""; } >&5 14294 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sndfile >= 1.0.21\""; } >&5
14148 ($PKG_CONFIG --exists --print-errors "sndfile >= 1.0.21") 2>&5 14295 ($PKG_CONFIG --exists --print-errors "sndfile >= 1.0.21") 2>&5
14149 ac_status=$? 14296 ac_status=$?
@@ -14153,13 +14300,15 @@ if test -n "$SNDFILE_CFLAGS"; then
14153else 14300else
14154 pkg_failed=yes 14301 pkg_failed=yes
14155fi 14302fi
14156 else 14303 fi
14157 pkg_failed=untried 14304else
14305 pkg_failed=untried
14158fi 14306fi
14159if test -n "$SNDFILE_LIBS"; then 14307if test -n "$PKG_CONFIG"; then
14160 pkg_cv_SNDFILE_LIBS="$SNDFILE_LIBS" 14308 if test -n "$SNDFILE_LIBS"; then
14161 elif test -n "$PKG_CONFIG"; then 14309 pkg_cv_SNDFILE_LIBS="$SNDFILE_LIBS"
14162 if test -n "$PKG_CONFIG" && \ 14310 else
14311 if test -n "$PKG_CONFIG" && \
14163 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sndfile >= 1.0.21\""; } >&5 14312 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sndfile >= 1.0.21\""; } >&5
14164 ($PKG_CONFIG --exists --print-errors "sndfile >= 1.0.21") 2>&5 14313 ($PKG_CONFIG --exists --print-errors "sndfile >= 1.0.21") 2>&5
14165 ac_status=$? 14314 ac_status=$?
@@ -14169,15 +14318,14 @@ if test -n "$SNDFILE_LIBS"; then
14169else 14318else
14170 pkg_failed=yes 14319 pkg_failed=yes
14171fi 14320fi
14172 else 14321 fi
14173 pkg_failed=untried 14322else
14323 pkg_failed=untried
14174fi 14324fi
14175 14325
14176 14326
14177 14327
14178if test $pkg_failed = yes; then 14328if test $pkg_failed = yes; then
14179 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
14180$as_echo "no" >&6; }
14181 14329
14182if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 14330if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
14183 _pkg_short_errors_supported=yes 14331 _pkg_short_errors_supported=yes
@@ -14185,18 +14333,18 @@ else
14185 _pkg_short_errors_supported=no 14333 _pkg_short_errors_supported=no
14186fi 14334fi
14187 if test $_pkg_short_errors_supported = yes; then 14335 if test $_pkg_short_errors_supported = yes; then
14188 SNDFILE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "sndfile >= 1.0.21" 2>&1` 14336 SNDFILE_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "sndfile >= 1.0.21"`
14189 else 14337 else
14190 SNDFILE_PKG_ERRORS=`$PKG_CONFIG --print-errors "sndfile >= 1.0.21" 2>&1` 14338 SNDFILE_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "sndfile >= 1.0.21"`
14191 fi 14339 fi
14192 # Put the nasty error message in config.log where it belongs 14340 # Put the nasty error message in config.log where it belongs
14193 echo "$SNDFILE_PKG_ERRORS" >&5 14341 echo "$SNDFILE_PKG_ERRORS" >&5
14194 14342
14195 have_sndfile="no"; want_multisense="no" 14343 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
14344$as_echo "no" >&6; }
14345 have_sndfile="no"; want_multisense="no"
14196 14346
14197elif test $pkg_failed = untried; then 14347elif test $pkg_failed = untried; then
14198 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
14199$as_echo "no" >&6; }
14200 have_sndfile="no"; want_multisense="no" 14348 have_sndfile="no"; want_multisense="no"
14201 14349
14202else 14350else
@@ -14214,7 +14362,7 @@ $as_echo "#define HAVE_LIBSNDFILE 1" >>confdefs.h
14214fi 14362fi
14215 14363
14216 if test "x$want_sndfile" = "xyes" -a "x$have_sndfile" = "xno"; then 14364 if test "x$want_sndfile" = "xyes" -a "x$have_sndfile" = "xno"; then
14217 as_fn_error $? "sndfile support requested, but not found by pkg-config." "$LINENO" 5 14365 as_fn_error "sndfile support requested, but not found by pkg-config." "$LINENO" 5
14218 fi 14366 fi
14219fi 14367fi
14220 if test "x${have_sndfile}" = "xyes"; then 14368 if test "x${have_sndfile}" = "xyes"; then
@@ -14241,10 +14389,11 @@ pkg_failed=no
14241{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for REMIX" >&5 14389{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for REMIX" >&5
14242$as_echo_n "checking for REMIX... " >&6; } 14390$as_echo_n "checking for REMIX... " >&6; }
14243 14391
14244if test -n "$REMIX_CFLAGS"; then 14392if test -n "$PKG_CONFIG"; then
14245 pkg_cv_REMIX_CFLAGS="$REMIX_CFLAGS" 14393 if test -n "$REMIX_CFLAGS"; then
14246 elif test -n "$PKG_CONFIG"; then 14394 pkg_cv_REMIX_CFLAGS="$REMIX_CFLAGS"
14247 if test -n "$PKG_CONFIG" && \ 14395 else
14396 if test -n "$PKG_CONFIG" && \
14248 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"remix >= 0.2.4\""; } >&5 14397 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"remix >= 0.2.4\""; } >&5
14249 ($PKG_CONFIG --exists --print-errors "remix >= 0.2.4") 2>&5 14398 ($PKG_CONFIG --exists --print-errors "remix >= 0.2.4") 2>&5
14250 ac_status=$? 14399 ac_status=$?
@@ -14254,13 +14403,15 @@ if test -n "$REMIX_CFLAGS"; then
14254else 14403else
14255 pkg_failed=yes 14404 pkg_failed=yes
14256fi 14405fi
14257 else 14406 fi
14258 pkg_failed=untried 14407else
14408 pkg_failed=untried
14259fi 14409fi
14260if test -n "$REMIX_LIBS"; then 14410if test -n "$PKG_CONFIG"; then
14261 pkg_cv_REMIX_LIBS="$REMIX_LIBS" 14411 if test -n "$REMIX_LIBS"; then
14262 elif test -n "$PKG_CONFIG"; then 14412 pkg_cv_REMIX_LIBS="$REMIX_LIBS"
14263 if test -n "$PKG_CONFIG" && \ 14413 else
14414 if test -n "$PKG_CONFIG" && \
14264 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"remix >= 0.2.4\""; } >&5 14415 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"remix >= 0.2.4\""; } >&5
14265 ($PKG_CONFIG --exists --print-errors "remix >= 0.2.4") 2>&5 14416 ($PKG_CONFIG --exists --print-errors "remix >= 0.2.4") 2>&5
14266 ac_status=$? 14417 ac_status=$?
@@ -14270,15 +14421,14 @@ if test -n "$REMIX_LIBS"; then
14270else 14421else
14271 pkg_failed=yes 14422 pkg_failed=yes
14272fi 14423fi
14273 else 14424 fi
14274 pkg_failed=untried 14425else
14426 pkg_failed=untried
14275fi 14427fi
14276 14428
14277 14429
14278 14430
14279if test $pkg_failed = yes; then 14431if test $pkg_failed = yes; then
14280 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
14281$as_echo "no" >&6; }
14282 14432
14283if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 14433if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
14284 _pkg_short_errors_supported=yes 14434 _pkg_short_errors_supported=yes
@@ -14286,18 +14436,18 @@ else
14286 _pkg_short_errors_supported=no 14436 _pkg_short_errors_supported=no
14287fi 14437fi
14288 if test $_pkg_short_errors_supported = yes; then 14438 if test $_pkg_short_errors_supported = yes; then
14289 REMIX_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "remix >= 0.2.4" 2>&1` 14439 REMIX_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "remix >= 0.2.4"`
14290 else 14440 else
14291 REMIX_PKG_ERRORS=`$PKG_CONFIG --print-errors "remix >= 0.2.4" 2>&1` 14441 REMIX_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "remix >= 0.2.4"`
14292 fi 14442 fi
14293 # Put the nasty error message in config.log where it belongs 14443 # Put the nasty error message in config.log where it belongs
14294 echo "$REMIX_PKG_ERRORS" >&5 14444 echo "$REMIX_PKG_ERRORS" >&5
14295 14445
14296 have_libremix="no"; want_multisense="no" 14446 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
14447$as_echo "no" >&6; }
14448 have_libremix="no"; want_multisense="no"
14297 14449
14298elif test $pkg_failed = untried; then 14450elif test $pkg_failed = untried; then
14299 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
14300$as_echo "no" >&6; }
14301 have_libremix="no"; want_multisense="no" 14451 have_libremix="no"; want_multisense="no"
14302 14452
14303else 14453else
@@ -14325,7 +14475,7 @@ _ACEOF
14325fi 14475fi
14326 14476
14327 if test "x$want_libremix" = "xyes" -a "x$have_libremix" = "xno"; then 14477 if test "x$want_libremix" = "xyes" -a "x$have_libremix" = "xno"; then
14328 as_fn_error $? "remix support requested, but not found by pkg-config." "$LINENO" 5 14478 as_fn_error "remix support requested, but not found by pkg-config." "$LINENO" 5
14329 fi 14479 fi
14330fi 14480fi
14331 if test "x${have_libremix}" = "xyes"; then 14481 if test "x${have_libremix}" = "xyes"; then
@@ -14352,10 +14502,11 @@ pkg_failed=no
14352{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for VORBISENC" >&5 14502{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for VORBISENC" >&5
14353$as_echo_n "checking for VORBISENC... " >&6; } 14503$as_echo_n "checking for VORBISENC... " >&6; }
14354 14504
14355if test -n "$VORBISENC_CFLAGS"; then 14505if test -n "$PKG_CONFIG"; then
14356 pkg_cv_VORBISENC_CFLAGS="$VORBISENC_CFLAGS" 14506 if test -n "$VORBISENC_CFLAGS"; then
14357 elif test -n "$PKG_CONFIG"; then 14507 pkg_cv_VORBISENC_CFLAGS="$VORBISENC_CFLAGS"
14358 if test -n "$PKG_CONFIG" && \ 14508 else
14509 if test -n "$PKG_CONFIG" && \
14359 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \" 14510 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"
14360 ogg >= 1.1.4 14511 ogg >= 1.1.4
14361 vorbis >= 1.2.3 14512 vorbis >= 1.2.3
@@ -14377,13 +14528,15 @@ if test -n "$VORBISENC_CFLAGS"; then
14377else 14528else
14378 pkg_failed=yes 14529 pkg_failed=yes
14379fi 14530fi
14380 else 14531 fi
14381 pkg_failed=untried 14532else
14533 pkg_failed=untried
14382fi 14534fi
14383if test -n "$VORBISENC_LIBS"; then 14535if test -n "$PKG_CONFIG"; then
14384 pkg_cv_VORBISENC_LIBS="$VORBISENC_LIBS" 14536 if test -n "$VORBISENC_LIBS"; then
14385 elif test -n "$PKG_CONFIG"; then 14537 pkg_cv_VORBISENC_LIBS="$VORBISENC_LIBS"
14386 if test -n "$PKG_CONFIG" && \ 14538 else
14539 if test -n "$PKG_CONFIG" && \
14387 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \" 14540 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"
14388 ogg >= 1.1.4 14541 ogg >= 1.1.4
14389 vorbis >= 1.2.3 14542 vorbis >= 1.2.3
@@ -14405,15 +14558,14 @@ if test -n "$VORBISENC_LIBS"; then
14405else 14558else
14406 pkg_failed=yes 14559 pkg_failed=yes
14407fi 14560fi
14408 else 14561 fi
14409 pkg_failed=untried 14562else
14563 pkg_failed=untried
14410fi 14564fi
14411 14565
14412 14566
14413 14567
14414if test $pkg_failed = yes; then 14568if test $pkg_failed = yes; then
14415 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
14416$as_echo "no" >&6; }
14417 14569
14418if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 14570if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
14419 _pkg_short_errors_supported=yes 14571 _pkg_short_errors_supported=yes
@@ -14421,26 +14573,26 @@ else
14421 _pkg_short_errors_supported=no 14573 _pkg_short_errors_supported=no
14422fi 14574fi
14423 if test $_pkg_short_errors_supported = yes; then 14575 if test $_pkg_short_errors_supported = yes; then
14424 VORBISENC_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors " 14576 VORBISENC_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "
14425 ogg >= 1.1.4 14577 ogg >= 1.1.4
14426 vorbis >= 1.2.3 14578 vorbis >= 1.2.3
14427 vorbisenc >= 1.2.3 14579 vorbisenc >= 1.2.3
14428 " 2>&1` 14580 "`
14429 else 14581 else
14430 VORBISENC_PKG_ERRORS=`$PKG_CONFIG --print-errors " 14582 VORBISENC_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "
14431 ogg >= 1.1.4 14583 ogg >= 1.1.4
14432 vorbis >= 1.2.3 14584 vorbis >= 1.2.3
14433 vorbisenc >= 1.2.3 14585 vorbisenc >= 1.2.3
14434 " 2>&1` 14586 "`
14435 fi 14587 fi
14436 # Put the nasty error message in config.log where it belongs 14588 # Put the nasty error message in config.log where it belongs
14437 echo "$VORBISENC_PKG_ERRORS" >&5 14589 echo "$VORBISENC_PKG_ERRORS" >&5
14438 14590
14439 have_vorbis="no"; want_multisense="no" 14591 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
14592$as_echo "no" >&6; }
14593 have_vorbis="no"; want_multisense="no"
14440 14594
14441elif test $pkg_failed = untried; then 14595elif test $pkg_failed = untried; then
14442 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
14443$as_echo "no" >&6; }
14444 have_vorbis="no"; want_multisense="no" 14596 have_vorbis="no"; want_multisense="no"
14445 14597
14446else 14598else
@@ -14458,7 +14610,7 @@ $as_echo "#define HAVE_VORBIS 1" >>confdefs.h
14458fi 14610fi
14459 14611
14460 if test "x$want_vorbis" = "xyes" -a "x$have_vorbis" = "xno"; then 14612 if test "x$want_vorbis" = "xyes" -a "x$have_vorbis" = "xno"; then
14461 as_fn_error $? "vorbisenc support requested, but not found by pkg-config." "$LINENO" 5 14613 as_fn_error "vorbisenc support requested, but not found by pkg-config." "$LINENO" 5
14462 fi 14614 fi
14463fi 14615fi
14464 14616
@@ -14477,10 +14629,11 @@ pkg_failed=no
14477{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ALSA" >&5 14629{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ALSA" >&5
14478$as_echo_n "checking for ALSA... " >&6; } 14630$as_echo_n "checking for ALSA... " >&6; }
14479 14631
14480if test -n "$ALSA_CFLAGS"; then 14632if test -n "$PKG_CONFIG"; then
14481 pkg_cv_ALSA_CFLAGS="$ALSA_CFLAGS" 14633 if test -n "$ALSA_CFLAGS"; then
14482 elif test -n "$PKG_CONFIG"; then 14634 pkg_cv_ALSA_CFLAGS="$ALSA_CFLAGS"
14483 if test -n "$PKG_CONFIG" && \ 14635 else
14636 if test -n "$PKG_CONFIG" && \
14484 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \" 14637 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"
14485 alsa >= 1.0.21 14638 alsa >= 1.0.21
14486 \""; } >&5 14639 \""; } >&5
@@ -14496,13 +14649,15 @@ if test -n "$ALSA_CFLAGS"; then
14496else 14649else
14497 pkg_failed=yes 14650 pkg_failed=yes
14498fi 14651fi
14499 else 14652 fi
14500 pkg_failed=untried 14653else
14654 pkg_failed=untried
14501fi 14655fi
14502if test -n "$ALSA_LIBS"; then 14656if test -n "$PKG_CONFIG"; then
14503 pkg_cv_ALSA_LIBS="$ALSA_LIBS" 14657 if test -n "$ALSA_LIBS"; then
14504 elif test -n "$PKG_CONFIG"; then 14658 pkg_cv_ALSA_LIBS="$ALSA_LIBS"
14505 if test -n "$PKG_CONFIG" && \ 14659 else
14660 if test -n "$PKG_CONFIG" && \
14506 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \" 14661 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"
14507 alsa >= 1.0.21 14662 alsa >= 1.0.21
14508 \""; } >&5 14663 \""; } >&5
@@ -14518,15 +14673,14 @@ if test -n "$ALSA_LIBS"; then
14518else 14673else
14519 pkg_failed=yes 14674 pkg_failed=yes
14520fi 14675fi
14521 else 14676 fi
14522 pkg_failed=untried 14677else
14678 pkg_failed=untried
14523fi 14679fi
14524 14680
14525 14681
14526 14682
14527if test $pkg_failed = yes; then 14683if test $pkg_failed = yes; then
14528 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
14529$as_echo "no" >&6; }
14530 14684
14531if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 14685if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
14532 _pkg_short_errors_supported=yes 14686 _pkg_short_errors_supported=yes
@@ -14534,22 +14688,22 @@ else
14534 _pkg_short_errors_supported=no 14688 _pkg_short_errors_supported=no
14535fi 14689fi
14536 if test $_pkg_short_errors_supported = yes; then 14690 if test $_pkg_short_errors_supported = yes; then
14537 ALSA_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors " 14691 ALSA_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "
14538 alsa >= 1.0.21 14692 alsa >= 1.0.21
14539 " 2>&1` 14693 "`
14540 else 14694 else
14541 ALSA_PKG_ERRORS=`$PKG_CONFIG --print-errors " 14695 ALSA_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "
14542 alsa >= 1.0.21 14696 alsa >= 1.0.21
14543 " 2>&1` 14697 "`
14544 fi 14698 fi
14545 # Put the nasty error message in config.log where it belongs 14699 # Put the nasty error message in config.log where it belongs
14546 echo "$ALSA_PKG_ERRORS" >&5 14700 echo "$ALSA_PKG_ERRORS" >&5
14547 14701
14548 have_alsa_lib="no"; want_multisense="no" 14702 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
14703$as_echo "no" >&6; }
14704 have_alsa_lib="no"; want_multisense="no"
14549 14705
14550elif test $pkg_failed = untried; then 14706elif test $pkg_failed = untried; then
14551 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
14552$as_echo "no" >&6; }
14553 have_alsa_lib="no"; want_multisense="no" 14707 have_alsa_lib="no"; want_multisense="no"
14554 14708
14555else 14709else
@@ -14567,7 +14721,7 @@ $as_echo "#define HAVE_LIBALSA 1" >>confdefs.h
14567fi 14721fi
14568 14722
14569 if test "x$want_alsa_lib" = "xyes" -a "x$have_alsa_lib" = "xno"; then 14723 if test "x$want_alsa_lib" = "xyes" -a "x$have_alsa_lib" = "xno"; then
14570 as_fn_error $? "alsa support requested, but not found by pkg-config." "$LINENO" 5 14724 as_fn_error "alsa support requested, but not found by pkg-config." "$LINENO" 5
14571 fi 14725 fi
14572fi 14726fi
14573 if test "x${have_alsa_lib}" = "xyes"; then 14727 if test "x${have_alsa_lib}" = "xyes"; then
@@ -14595,10 +14749,11 @@ pkg_failed=no
14595{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for FLAC" >&5 14749{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for FLAC" >&5
14596$as_echo_n "checking for FLAC... " >&6; } 14750$as_echo_n "checking for FLAC... " >&6; }
14597 14751
14598if test -n "$FLAC_CFLAGS"; then 14752if test -n "$PKG_CONFIG"; then
14599 pkg_cv_FLAC_CFLAGS="$FLAC_CFLAGS" 14753 if test -n "$FLAC_CFLAGS"; then
14600 elif test -n "$PKG_CONFIG"; then 14754 pkg_cv_FLAC_CFLAGS="$FLAC_CFLAGS"
14601 if test -n "$PKG_CONFIG" && \ 14755 else
14756 if test -n "$PKG_CONFIG" && \
14602 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \" 14757 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"
14603 flac >= 1.2.1 14758 flac >= 1.2.1
14604 \""; } >&5 14759 \""; } >&5
@@ -14614,13 +14769,15 @@ if test -n "$FLAC_CFLAGS"; then
14614else 14769else
14615 pkg_failed=yes 14770 pkg_failed=yes
14616fi 14771fi
14617 else 14772 fi
14618 pkg_failed=untried 14773else
14774 pkg_failed=untried
14619fi 14775fi
14620if test -n "$FLAC_LIBS"; then 14776if test -n "$PKG_CONFIG"; then
14621 pkg_cv_FLAC_LIBS="$FLAC_LIBS" 14777 if test -n "$FLAC_LIBS"; then
14622 elif test -n "$PKG_CONFIG"; then 14778 pkg_cv_FLAC_LIBS="$FLAC_LIBS"
14623 if test -n "$PKG_CONFIG" && \ 14779 else
14780 if test -n "$PKG_CONFIG" && \
14624 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \" 14781 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"
14625 flac >= 1.2.1 14782 flac >= 1.2.1
14626 \""; } >&5 14783 \""; } >&5
@@ -14636,15 +14793,14 @@ if test -n "$FLAC_LIBS"; then
14636else 14793else
14637 pkg_failed=yes 14794 pkg_failed=yes
14638fi 14795fi
14639 else 14796 fi
14640 pkg_failed=untried 14797else
14798 pkg_failed=untried
14641fi 14799fi
14642 14800
14643 14801
14644 14802
14645if test $pkg_failed = yes; then 14803if test $pkg_failed = yes; then
14646 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
14647$as_echo "no" >&6; }
14648 14804
14649if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 14805if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
14650 _pkg_short_errors_supported=yes 14806 _pkg_short_errors_supported=yes
@@ -14652,22 +14808,22 @@ else
14652 _pkg_short_errors_supported=no 14808 _pkg_short_errors_supported=no
14653fi 14809fi
14654 if test $_pkg_short_errors_supported = yes; then 14810 if test $_pkg_short_errors_supported = yes; then
14655 FLAC_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors " 14811 FLAC_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "
14656 flac >= 1.2.1 14812 flac >= 1.2.1
14657 " 2>&1` 14813 "`
14658 else 14814 else
14659 FLAC_PKG_ERRORS=`$PKG_CONFIG --print-errors " 14815 FLAC_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "
14660 flac >= 1.2.1 14816 flac >= 1.2.1
14661 " 2>&1` 14817 "`
14662 fi 14818 fi
14663 # Put the nasty error message in config.log where it belongs 14819 # Put the nasty error message in config.log where it belongs
14664 echo "$FLAC_PKG_ERRORS" >&5 14820 echo "$FLAC_PKG_ERRORS" >&5
14665 14821
14666 have_flac_lib="no"; want_multisense="no" 14822 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
14823$as_echo "no" >&6; }
14824 have_flac_lib="no"; want_multisense="no"
14667 14825
14668elif test $pkg_failed = untried; then 14826elif test $pkg_failed = untried; then
14669 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
14670$as_echo "no" >&6; }
14671 have_flac_lib="no"; want_multisense="no" 14827 have_flac_lib="no"; want_multisense="no"
14672 14828
14673else 14829else
@@ -14688,7 +14844,7 @@ $as_echo "#define HAVE_LIBFLAC 1" >>confdefs.h
14688 14844
14689fi 14845fi
14690 if test "x$want_flac_lib" = "xyes" -a "x$have_flac_lib" = "xno"; then 14846 if test "x$want_flac_lib" = "xyes" -a "x$have_flac_lib" = "xno"; then
14691 as_fn_error $? "flac support requested, but not found by pkg-config." "$LINENO" 5 14847 as_fn_error "flac support requested, but not found by pkg-config." "$LINENO" 5
14692 fi 14848 fi
14693fi 14849fi
14694 14850
@@ -14706,10 +14862,11 @@ pkg_failed=no
14706{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EDJE_CC" >&5 14862{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EDJE_CC" >&5
14707$as_echo_n "checking for EDJE_CC... " >&6; } 14863$as_echo_n "checking for EDJE_CC... " >&6; }
14708 14864
14709if test -n "$EDJE_CC_CFLAGS"; then 14865if test -n "$PKG_CONFIG"; then
14710 pkg_cv_EDJE_CC_CFLAGS="$EDJE_CC_CFLAGS" 14866 if test -n "$EDJE_CC_CFLAGS"; then
14711 elif test -n "$PKG_CONFIG"; then 14867 pkg_cv_EDJE_CC_CFLAGS="$EDJE_CC_CFLAGS"
14712 if test -n "$PKG_CONFIG" && \ 14868 else
14869 if test -n "$PKG_CONFIG" && \
14713 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ecore-file >= 1.1.0 ecore-evas >= 1.1.0 ecore >= 1.1.0 evas >= 1.1.0 eet >= 1.5.0 eina >= 1.1.0\""; } >&5 14870 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ecore-file >= 1.1.0 ecore-evas >= 1.1.0 ecore >= 1.1.0 evas >= 1.1.0 eet >= 1.5.0 eina >= 1.1.0\""; } >&5
14714 ($PKG_CONFIG --exists --print-errors "ecore-file >= 1.1.0 ecore-evas >= 1.1.0 ecore >= 1.1.0 evas >= 1.1.0 eet >= 1.5.0 eina >= 1.1.0") 2>&5 14871 ($PKG_CONFIG --exists --print-errors "ecore-file >= 1.1.0 ecore-evas >= 1.1.0 ecore >= 1.1.0 evas >= 1.1.0 eet >= 1.5.0 eina >= 1.1.0") 2>&5
14715 ac_status=$? 14872 ac_status=$?
@@ -14719,13 +14876,15 @@ if test -n "$EDJE_CC_CFLAGS"; then
14719else 14876else
14720 pkg_failed=yes 14877 pkg_failed=yes
14721fi 14878fi
14722 else 14879 fi
14723 pkg_failed=untried 14880else
14881 pkg_failed=untried
14724fi 14882fi
14725if test -n "$EDJE_CC_LIBS"; then 14883if test -n "$PKG_CONFIG"; then
14726 pkg_cv_EDJE_CC_LIBS="$EDJE_CC_LIBS" 14884 if test -n "$EDJE_CC_LIBS"; then
14727 elif test -n "$PKG_CONFIG"; then 14885 pkg_cv_EDJE_CC_LIBS="$EDJE_CC_LIBS"
14728 if test -n "$PKG_CONFIG" && \ 14886 else
14887 if test -n "$PKG_CONFIG" && \
14729 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ecore-file >= 1.1.0 ecore-evas >= 1.1.0 ecore >= 1.1.0 evas >= 1.1.0 eet >= 1.5.0 eina >= 1.1.0\""; } >&5 14888 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ecore-file >= 1.1.0 ecore-evas >= 1.1.0 ecore >= 1.1.0 evas >= 1.1.0 eet >= 1.5.0 eina >= 1.1.0\""; } >&5
14730 ($PKG_CONFIG --exists --print-errors "ecore-file >= 1.1.0 ecore-evas >= 1.1.0 ecore >= 1.1.0 evas >= 1.1.0 eet >= 1.5.0 eina >= 1.1.0") 2>&5 14889 ($PKG_CONFIG --exists --print-errors "ecore-file >= 1.1.0 ecore-evas >= 1.1.0 ecore >= 1.1.0 evas >= 1.1.0 eet >= 1.5.0 eina >= 1.1.0") 2>&5
14731 ac_status=$? 14890 ac_status=$?
@@ -14735,15 +14894,14 @@ if test -n "$EDJE_CC_LIBS"; then
14735else 14894else
14736 pkg_failed=yes 14895 pkg_failed=yes
14737fi 14896fi
14738 else 14897 fi
14739 pkg_failed=untried 14898else
14899 pkg_failed=untried
14740fi 14900fi
14741 14901
14742 14902
14743 14903
14744if test $pkg_failed = yes; then 14904if test $pkg_failed = yes; then
14745 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
14746$as_echo "no" >&6; }
14747 14905
14748if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 14906if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
14749 _pkg_short_errors_supported=yes 14907 _pkg_short_errors_supported=yes
@@ -14751,14 +14909,14 @@ else
14751 _pkg_short_errors_supported=no 14909 _pkg_short_errors_supported=no
14752fi 14910fi
14753 if test $_pkg_short_errors_supported = yes; then 14911 if test $_pkg_short_errors_supported = yes; then
14754 EDJE_CC_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "ecore-file >= 1.1.0 ecore-evas >= 1.1.0 ecore >= 1.1.0 evas >= 1.1.0 eet >= 1.5.0 eina >= 1.1.0" 2>&1` 14912 EDJE_CC_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "ecore-file >= 1.1.0 ecore-evas >= 1.1.0 ecore >= 1.1.0 evas >= 1.1.0 eet >= 1.5.0 eina >= 1.1.0"`
14755 else 14913 else
14756 EDJE_CC_PKG_ERRORS=`$PKG_CONFIG --print-errors "ecore-file >= 1.1.0 ecore-evas >= 1.1.0 ecore >= 1.1.0 evas >= 1.1.0 eet >= 1.5.0 eina >= 1.1.0" 2>&1` 14914 EDJE_CC_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "ecore-file >= 1.1.0 ecore-evas >= 1.1.0 ecore >= 1.1.0 evas >= 1.1.0 eet >= 1.5.0 eina >= 1.1.0"`
14757 fi 14915 fi
14758 # Put the nasty error message in config.log where it belongs 14916 # Put the nasty error message in config.log where it belongs
14759 echo "$EDJE_CC_PKG_ERRORS" >&5 14917 echo "$EDJE_CC_PKG_ERRORS" >&5
14760 14918
14761 as_fn_error $? "Package requirements (ecore-file >= 1.1.0 ecore-evas >= 1.1.0 ecore >= 1.1.0 evas >= 1.1.0 eet >= 1.5.0 eina >= 1.1.0) were not met: 14919 as_fn_error "Package requirements (ecore-file >= 1.1.0 ecore-evas >= 1.1.0 ecore >= 1.1.0 evas >= 1.1.0 eet >= 1.5.0 eina >= 1.1.0) were not met:
14762 14920
14763$EDJE_CC_PKG_ERRORS 14921$EDJE_CC_PKG_ERRORS
14764 14922
@@ -14767,13 +14925,12 @@ installed software in a non-standard prefix.
14767 14925
14768Alternatively, you may set the environment variables EDJE_CC_CFLAGS 14926Alternatively, you may set the environment variables EDJE_CC_CFLAGS
14769and EDJE_CC_LIBS to avoid the need to call pkg-config. 14927and EDJE_CC_LIBS to avoid the need to call pkg-config.
14770See the pkg-config man page for more details." "$LINENO" 5 14928See the pkg-config man page for more details.
14929" "$LINENO" 5
14771elif test $pkg_failed = untried; then 14930elif test $pkg_failed = untried; then
14772 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
14773$as_echo "no" >&6; }
14774 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 14931 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
14775$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 14932$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
14776as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it 14933as_fn_error "The pkg-config script could not be found or is too old. Make sure it
14777is in your PATH or set the PKG_CONFIG environment variable to the full 14934is in your PATH or set the PKG_CONFIG environment variable to the full
14778path to pkg-config. 14935path to pkg-config.
14779 14936
@@ -14782,13 +14939,13 @@ and EDJE_CC_LIBS to avoid the need to call pkg-config.
14782See the pkg-config man page for more details. 14939See the pkg-config man page for more details.
14783 14940
14784To get pkg-config, see <http://pkg-config.freedesktop.org/>. 14941To get pkg-config, see <http://pkg-config.freedesktop.org/>.
14785See \`config.log' for more details" "$LINENO" 5 ; } 14942See \`config.log' for more details." "$LINENO" 5; }
14786else 14943else
14787 EDJE_CC_CFLAGS=$pkg_cv_EDJE_CC_CFLAGS 14944 EDJE_CC_CFLAGS=$pkg_cv_EDJE_CC_CFLAGS
14788 EDJE_CC_LIBS=$pkg_cv_EDJE_CC_LIBS 14945 EDJE_CC_LIBS=$pkg_cv_EDJE_CC_LIBS
14789 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 14946 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
14790$as_echo "yes" >&6; } 14947$as_echo "yes" >&6; }
14791 14948 :
14792fi 14949fi
14793 EDJE_CC_LIBS="${EDJE_CC_LIBS} ${LUA_LIBS} ${lua_libs}" 14950 EDJE_CC_LIBS="${EDJE_CC_LIBS} ${LUA_LIBS} ${lua_libs}"
14794fi 14951fi
@@ -14808,10 +14965,11 @@ pkg_failed=no
14808{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EDJE_DECC" >&5 14965{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EDJE_DECC" >&5
14809$as_echo_n "checking for EDJE_DECC... " >&6; } 14966$as_echo_n "checking for EDJE_DECC... " >&6; }
14810 14967
14811if test -n "$EDJE_DECC_CFLAGS"; then 14968if test -n "$PKG_CONFIG"; then
14812 pkg_cv_EDJE_DECC_CFLAGS="$EDJE_DECC_CFLAGS" 14969 if test -n "$EDJE_DECC_CFLAGS"; then
14813 elif test -n "$PKG_CONFIG"; then 14970 pkg_cv_EDJE_DECC_CFLAGS="$EDJE_DECC_CFLAGS"
14814 if test -n "$PKG_CONFIG" && \ 14971 else
14972 if test -n "$PKG_CONFIG" && \
14815 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ecore-file >= 1.1.0 ecore-evas >= 1.1.0 ecore >= 1.1.0 evas >= 1.1.0 eet >= 1.5.0 eina >= 1.1.0\""; } >&5 14973 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ecore-file >= 1.1.0 ecore-evas >= 1.1.0 ecore >= 1.1.0 evas >= 1.1.0 eet >= 1.5.0 eina >= 1.1.0\""; } >&5
14816 ($PKG_CONFIG --exists --print-errors "ecore-file >= 1.1.0 ecore-evas >= 1.1.0 ecore >= 1.1.0 evas >= 1.1.0 eet >= 1.5.0 eina >= 1.1.0") 2>&5 14974 ($PKG_CONFIG --exists --print-errors "ecore-file >= 1.1.0 ecore-evas >= 1.1.0 ecore >= 1.1.0 evas >= 1.1.0 eet >= 1.5.0 eina >= 1.1.0") 2>&5
14817 ac_status=$? 14975 ac_status=$?
@@ -14821,13 +14979,15 @@ if test -n "$EDJE_DECC_CFLAGS"; then
14821else 14979else
14822 pkg_failed=yes 14980 pkg_failed=yes
14823fi 14981fi
14824 else 14982 fi
14825 pkg_failed=untried 14983else
14984 pkg_failed=untried
14826fi 14985fi
14827if test -n "$EDJE_DECC_LIBS"; then 14986if test -n "$PKG_CONFIG"; then
14828 pkg_cv_EDJE_DECC_LIBS="$EDJE_DECC_LIBS" 14987 if test -n "$EDJE_DECC_LIBS"; then
14829 elif test -n "$PKG_CONFIG"; then 14988 pkg_cv_EDJE_DECC_LIBS="$EDJE_DECC_LIBS"
14830 if test -n "$PKG_CONFIG" && \ 14989 else
14990 if test -n "$PKG_CONFIG" && \
14831 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ecore-file >= 1.1.0 ecore-evas >= 1.1.0 ecore >= 1.1.0 evas >= 1.1.0 eet >= 1.5.0 eina >= 1.1.0\""; } >&5 14991 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ecore-file >= 1.1.0 ecore-evas >= 1.1.0 ecore >= 1.1.0 evas >= 1.1.0 eet >= 1.5.0 eina >= 1.1.0\""; } >&5
14832 ($PKG_CONFIG --exists --print-errors "ecore-file >= 1.1.0 ecore-evas >= 1.1.0 ecore >= 1.1.0 evas >= 1.1.0 eet >= 1.5.0 eina >= 1.1.0") 2>&5 14992 ($PKG_CONFIG --exists --print-errors "ecore-file >= 1.1.0 ecore-evas >= 1.1.0 ecore >= 1.1.0 evas >= 1.1.0 eet >= 1.5.0 eina >= 1.1.0") 2>&5
14833 ac_status=$? 14993 ac_status=$?
@@ -14837,15 +14997,14 @@ if test -n "$EDJE_DECC_LIBS"; then
14837else 14997else
14838 pkg_failed=yes 14998 pkg_failed=yes
14839fi 14999fi
14840 else 15000 fi
14841 pkg_failed=untried 15001else
15002 pkg_failed=untried
14842fi 15003fi
14843 15004
14844 15005
14845 15006
14846if test $pkg_failed = yes; then 15007if test $pkg_failed = yes; then
14847 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
14848$as_echo "no" >&6; }
14849 15008
14850if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 15009if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
14851 _pkg_short_errors_supported=yes 15010 _pkg_short_errors_supported=yes
@@ -14853,14 +15012,14 @@ else
14853 _pkg_short_errors_supported=no 15012 _pkg_short_errors_supported=no
14854fi 15013fi
14855 if test $_pkg_short_errors_supported = yes; then 15014 if test $_pkg_short_errors_supported = yes; then
14856 EDJE_DECC_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "ecore-file >= 1.1.0 ecore-evas >= 1.1.0 ecore >= 1.1.0 evas >= 1.1.0 eet >= 1.5.0 eina >= 1.1.0" 2>&1` 15015 EDJE_DECC_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "ecore-file >= 1.1.0 ecore-evas >= 1.1.0 ecore >= 1.1.0 evas >= 1.1.0 eet >= 1.5.0 eina >= 1.1.0"`
14857 else 15016 else
14858 EDJE_DECC_PKG_ERRORS=`$PKG_CONFIG --print-errors "ecore-file >= 1.1.0 ecore-evas >= 1.1.0 ecore >= 1.1.0 evas >= 1.1.0 eet >= 1.5.0 eina >= 1.1.0" 2>&1` 15017 EDJE_DECC_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "ecore-file >= 1.1.0 ecore-evas >= 1.1.0 ecore >= 1.1.0 evas >= 1.1.0 eet >= 1.5.0 eina >= 1.1.0"`
14859 fi 15018 fi
14860 # Put the nasty error message in config.log where it belongs 15019 # Put the nasty error message in config.log where it belongs
14861 echo "$EDJE_DECC_PKG_ERRORS" >&5 15020 echo "$EDJE_DECC_PKG_ERRORS" >&5
14862 15021
14863 as_fn_error $? "Package requirements (ecore-file >= 1.1.0 ecore-evas >= 1.1.0 ecore >= 1.1.0 evas >= 1.1.0 eet >= 1.5.0 eina >= 1.1.0) were not met: 15022 as_fn_error "Package requirements (ecore-file >= 1.1.0 ecore-evas >= 1.1.0 ecore >= 1.1.0 evas >= 1.1.0 eet >= 1.5.0 eina >= 1.1.0) were not met:
14864 15023
14865$EDJE_DECC_PKG_ERRORS 15024$EDJE_DECC_PKG_ERRORS
14866 15025
@@ -14869,13 +15028,12 @@ installed software in a non-standard prefix.
14869 15028
14870Alternatively, you may set the environment variables EDJE_DECC_CFLAGS 15029Alternatively, you may set the environment variables EDJE_DECC_CFLAGS
14871and EDJE_DECC_LIBS to avoid the need to call pkg-config. 15030and EDJE_DECC_LIBS to avoid the need to call pkg-config.
14872See the pkg-config man page for more details." "$LINENO" 5 15031See the pkg-config man page for more details.
15032" "$LINENO" 5
14873elif test $pkg_failed = untried; then 15033elif test $pkg_failed = untried; then
14874 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
14875$as_echo "no" >&6; }
14876 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 15034 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
14877$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 15035$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
14878as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it 15036as_fn_error "The pkg-config script could not be found or is too old. Make sure it
14879is in your PATH or set the PKG_CONFIG environment variable to the full 15037is in your PATH or set the PKG_CONFIG environment variable to the full
14880path to pkg-config. 15038path to pkg-config.
14881 15039
@@ -14884,13 +15042,13 @@ and EDJE_DECC_LIBS to avoid the need to call pkg-config.
14884See the pkg-config man page for more details. 15042See the pkg-config man page for more details.
14885 15043
14886To get pkg-config, see <http://pkg-config.freedesktop.org/>. 15044To get pkg-config, see <http://pkg-config.freedesktop.org/>.
14887See \`config.log' for more details" "$LINENO" 5 ; } 15045See \`config.log' for more details." "$LINENO" 5; }
14888else 15046else
14889 EDJE_DECC_CFLAGS=$pkg_cv_EDJE_DECC_CFLAGS 15047 EDJE_DECC_CFLAGS=$pkg_cv_EDJE_DECC_CFLAGS
14890 EDJE_DECC_LIBS=$pkg_cv_EDJE_DECC_LIBS 15048 EDJE_DECC_LIBS=$pkg_cv_EDJE_DECC_LIBS
14891 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 15049 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
14892$as_echo "yes" >&6; } 15050$as_echo "yes" >&6; }
14893 15051 :
14894fi 15052fi
14895fi 15053fi
14896 15054
@@ -14900,10 +15058,11 @@ pkg_failed=no
14900{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EDJE_PLAYER" >&5 15058{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EDJE_PLAYER" >&5
14901$as_echo_n "checking for EDJE_PLAYER... " >&6; } 15059$as_echo_n "checking for EDJE_PLAYER... " >&6; }
14902 15060
14903if test -n "$EDJE_PLAYER_CFLAGS"; then 15061if test -n "$PKG_CONFIG"; then
14904 pkg_cv_EDJE_PLAYER_CFLAGS="$EDJE_PLAYER_CFLAGS" 15062 if test -n "$EDJE_PLAYER_CFLAGS"; then
14905 elif test -n "$PKG_CONFIG"; then 15063 pkg_cv_EDJE_PLAYER_CFLAGS="$EDJE_PLAYER_CFLAGS"
14906 if test -n "$PKG_CONFIG" && \ 15064 else
15065 if test -n "$PKG_CONFIG" && \
14907 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ecore-evas >= 1.1.0 ecore >= 1.1.0 evas >= 1.1.0 eina >= 1.1.0\""; } >&5 15066 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ecore-evas >= 1.1.0 ecore >= 1.1.0 evas >= 1.1.0 eina >= 1.1.0\""; } >&5
14908 ($PKG_CONFIG --exists --print-errors "ecore-evas >= 1.1.0 ecore >= 1.1.0 evas >= 1.1.0 eina >= 1.1.0") 2>&5 15067 ($PKG_CONFIG --exists --print-errors "ecore-evas >= 1.1.0 ecore >= 1.1.0 evas >= 1.1.0 eina >= 1.1.0") 2>&5
14909 ac_status=$? 15068 ac_status=$?
@@ -14913,13 +15072,15 @@ if test -n "$EDJE_PLAYER_CFLAGS"; then
14913else 15072else
14914 pkg_failed=yes 15073 pkg_failed=yes
14915fi 15074fi
14916 else 15075 fi
14917 pkg_failed=untried 15076else
15077 pkg_failed=untried
14918fi 15078fi
14919if test -n "$EDJE_PLAYER_LIBS"; then 15079if test -n "$PKG_CONFIG"; then
14920 pkg_cv_EDJE_PLAYER_LIBS="$EDJE_PLAYER_LIBS" 15080 if test -n "$EDJE_PLAYER_LIBS"; then
14921 elif test -n "$PKG_CONFIG"; then 15081 pkg_cv_EDJE_PLAYER_LIBS="$EDJE_PLAYER_LIBS"
14922 if test -n "$PKG_CONFIG" && \ 15082 else
15083 if test -n "$PKG_CONFIG" && \
14923 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ecore-evas >= 1.1.0 ecore >= 1.1.0 evas >= 1.1.0 eina >= 1.1.0\""; } >&5 15084 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ecore-evas >= 1.1.0 ecore >= 1.1.0 evas >= 1.1.0 eina >= 1.1.0\""; } >&5
14924 ($PKG_CONFIG --exists --print-errors "ecore-evas >= 1.1.0 ecore >= 1.1.0 evas >= 1.1.0 eina >= 1.1.0") 2>&5 15085 ($PKG_CONFIG --exists --print-errors "ecore-evas >= 1.1.0 ecore >= 1.1.0 evas >= 1.1.0 eina >= 1.1.0") 2>&5
14925 ac_status=$? 15086 ac_status=$?
@@ -14929,15 +15090,14 @@ if test -n "$EDJE_PLAYER_LIBS"; then
14929else 15090else
14930 pkg_failed=yes 15091 pkg_failed=yes
14931fi 15092fi
14932 else 15093 fi
14933 pkg_failed=untried 15094else
15095 pkg_failed=untried
14934fi 15096fi
14935 15097
14936 15098
14937 15099
14938if test $pkg_failed = yes; then 15100if test $pkg_failed = yes; then
14939 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
14940$as_echo "no" >&6; }
14941 15101
14942if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 15102if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
14943 _pkg_short_errors_supported=yes 15103 _pkg_short_errors_supported=yes
@@ -14945,14 +15105,14 @@ else
14945 _pkg_short_errors_supported=no 15105 _pkg_short_errors_supported=no
14946fi 15106fi
14947 if test $_pkg_short_errors_supported = yes; then 15107 if test $_pkg_short_errors_supported = yes; then
14948 EDJE_PLAYER_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "ecore-evas >= 1.1.0 ecore >= 1.1.0 evas >= 1.1.0 eina >= 1.1.0" 2>&1` 15108 EDJE_PLAYER_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "ecore-evas >= 1.1.0 ecore >= 1.1.0 evas >= 1.1.0 eina >= 1.1.0"`
14949 else 15109 else
14950 EDJE_PLAYER_PKG_ERRORS=`$PKG_CONFIG --print-errors "ecore-evas >= 1.1.0 ecore >= 1.1.0 evas >= 1.1.0 eina >= 1.1.0" 2>&1` 15110 EDJE_PLAYER_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "ecore-evas >= 1.1.0 ecore >= 1.1.0 evas >= 1.1.0 eina >= 1.1.0"`
14951 fi 15111 fi
14952 # Put the nasty error message in config.log where it belongs 15112 # Put the nasty error message in config.log where it belongs
14953 echo "$EDJE_PLAYER_PKG_ERRORS" >&5 15113 echo "$EDJE_PLAYER_PKG_ERRORS" >&5
14954 15114
14955 as_fn_error $? "Package requirements (ecore-evas >= 1.1.0 ecore >= 1.1.0 evas >= 1.1.0 eina >= 1.1.0) were not met: 15115 as_fn_error "Package requirements (ecore-evas >= 1.1.0 ecore >= 1.1.0 evas >= 1.1.0 eina >= 1.1.0) were not met:
14956 15116
14957$EDJE_PLAYER_PKG_ERRORS 15117$EDJE_PLAYER_PKG_ERRORS
14958 15118
@@ -14961,13 +15121,12 @@ installed software in a non-standard prefix.
14961 15121
14962Alternatively, you may set the environment variables EDJE_PLAYER_CFLAGS 15122Alternatively, you may set the environment variables EDJE_PLAYER_CFLAGS
14963and EDJE_PLAYER_LIBS to avoid the need to call pkg-config. 15123and EDJE_PLAYER_LIBS to avoid the need to call pkg-config.
14964See the pkg-config man page for more details." "$LINENO" 5 15124See the pkg-config man page for more details.
15125" "$LINENO" 5
14965elif test $pkg_failed = untried; then 15126elif test $pkg_failed = untried; then
14966 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
14967$as_echo "no" >&6; }
14968 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 15127 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
14969$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 15128$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
14970as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it 15129as_fn_error "The pkg-config script could not be found or is too old. Make sure it
14971is in your PATH or set the PKG_CONFIG environment variable to the full 15130is in your PATH or set the PKG_CONFIG environment variable to the full
14972path to pkg-config. 15131path to pkg-config.
14973 15132
@@ -14976,13 +15135,13 @@ and EDJE_PLAYER_LIBS to avoid the need to call pkg-config.
14976See the pkg-config man page for more details. 15135See the pkg-config man page for more details.
14977 15136
14978To get pkg-config, see <http://pkg-config.freedesktop.org/>. 15137To get pkg-config, see <http://pkg-config.freedesktop.org/>.
14979See \`config.log' for more details" "$LINENO" 5 ; } 15138See \`config.log' for more details." "$LINENO" 5; }
14980else 15139else
14981 EDJE_PLAYER_CFLAGS=$pkg_cv_EDJE_PLAYER_CFLAGS 15140 EDJE_PLAYER_CFLAGS=$pkg_cv_EDJE_PLAYER_CFLAGS
14982 EDJE_PLAYER_LIBS=$pkg_cv_EDJE_PLAYER_LIBS 15141 EDJE_PLAYER_LIBS=$pkg_cv_EDJE_PLAYER_LIBS
14983 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 15142 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
14984$as_echo "yes" >&6; } 15143$as_echo "yes" >&6; }
14985 15144 :
14986fi 15145fi
14987fi 15146fi
14988 15147
@@ -14992,10 +15151,11 @@ pkg_failed=no
14992{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EDJE_INSPECTOR" >&5 15151{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EDJE_INSPECTOR" >&5
14993$as_echo_n "checking for EDJE_INSPECTOR... " >&6; } 15152$as_echo_n "checking for EDJE_INSPECTOR... " >&6; }
14994 15153
14995if test -n "$EDJE_INSPECTOR_CFLAGS"; then 15154if test -n "$PKG_CONFIG"; then
14996 pkg_cv_EDJE_INSPECTOR_CFLAGS="$EDJE_INSPECTOR_CFLAGS" 15155 if test -n "$EDJE_INSPECTOR_CFLAGS"; then
14997 elif test -n "$PKG_CONFIG"; then 15156 pkg_cv_EDJE_INSPECTOR_CFLAGS="$EDJE_INSPECTOR_CFLAGS"
14998 if test -n "$PKG_CONFIG" && \ 15157 else
15158 if test -n "$PKG_CONFIG" && \
14999 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ecore-evas >= 1.1.0 ecore >= 1.1.0 evas >= 1.1.0 eina >= 1.1.0\""; } >&5 15159 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ecore-evas >= 1.1.0 ecore >= 1.1.0 evas >= 1.1.0 eina >= 1.1.0\""; } >&5
15000 ($PKG_CONFIG --exists --print-errors "ecore-evas >= 1.1.0 ecore >= 1.1.0 evas >= 1.1.0 eina >= 1.1.0") 2>&5 15160 ($PKG_CONFIG --exists --print-errors "ecore-evas >= 1.1.0 ecore >= 1.1.0 evas >= 1.1.0 eina >= 1.1.0") 2>&5
15001 ac_status=$? 15161 ac_status=$?
@@ -15005,13 +15165,15 @@ if test -n "$EDJE_INSPECTOR_CFLAGS"; then
15005else 15165else
15006 pkg_failed=yes 15166 pkg_failed=yes
15007fi 15167fi
15008 else 15168 fi
15009 pkg_failed=untried 15169else
15170 pkg_failed=untried
15010fi 15171fi
15011if test -n "$EDJE_INSPECTOR_LIBS"; then 15172if test -n "$PKG_CONFIG"; then
15012 pkg_cv_EDJE_INSPECTOR_LIBS="$EDJE_INSPECTOR_LIBS" 15173 if test -n "$EDJE_INSPECTOR_LIBS"; then
15013 elif test -n "$PKG_CONFIG"; then 15174 pkg_cv_EDJE_INSPECTOR_LIBS="$EDJE_INSPECTOR_LIBS"
15014 if test -n "$PKG_CONFIG" && \ 15175 else
15176 if test -n "$PKG_CONFIG" && \
15015 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ecore-evas >= 1.1.0 ecore >= 1.1.0 evas >= 1.1.0 eina >= 1.1.0\""; } >&5 15177 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ecore-evas >= 1.1.0 ecore >= 1.1.0 evas >= 1.1.0 eina >= 1.1.0\""; } >&5
15016 ($PKG_CONFIG --exists --print-errors "ecore-evas >= 1.1.0 ecore >= 1.1.0 evas >= 1.1.0 eina >= 1.1.0") 2>&5 15178 ($PKG_CONFIG --exists --print-errors "ecore-evas >= 1.1.0 ecore >= 1.1.0 evas >= 1.1.0 eina >= 1.1.0") 2>&5
15017 ac_status=$? 15179 ac_status=$?
@@ -15021,15 +15183,14 @@ if test -n "$EDJE_INSPECTOR_LIBS"; then
15021else 15183else
15022 pkg_failed=yes 15184 pkg_failed=yes
15023fi 15185fi
15024 else 15186 fi
15025 pkg_failed=untried 15187else
15188 pkg_failed=untried
15026fi 15189fi
15027 15190
15028 15191
15029 15192
15030if test $pkg_failed = yes; then 15193if test $pkg_failed = yes; then
15031 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
15032$as_echo "no" >&6; }
15033 15194
15034if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 15195if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
15035 _pkg_short_errors_supported=yes 15196 _pkg_short_errors_supported=yes
@@ -15037,14 +15198,14 @@ else
15037 _pkg_short_errors_supported=no 15198 _pkg_short_errors_supported=no
15038fi 15199fi
15039 if test $_pkg_short_errors_supported = yes; then 15200 if test $_pkg_short_errors_supported = yes; then
15040 EDJE_INSPECTOR_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "ecore-evas >= 1.1.0 ecore >= 1.1.0 evas >= 1.1.0 eina >= 1.1.0" 2>&1` 15201 EDJE_INSPECTOR_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "ecore-evas >= 1.1.0 ecore >= 1.1.0 evas >= 1.1.0 eina >= 1.1.0"`
15041 else 15202 else
15042 EDJE_INSPECTOR_PKG_ERRORS=`$PKG_CONFIG --print-errors "ecore-evas >= 1.1.0 ecore >= 1.1.0 evas >= 1.1.0 eina >= 1.1.0" 2>&1` 15203 EDJE_INSPECTOR_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "ecore-evas >= 1.1.0 ecore >= 1.1.0 evas >= 1.1.0 eina >= 1.1.0"`
15043 fi 15204 fi
15044 # Put the nasty error message in config.log where it belongs 15205 # Put the nasty error message in config.log where it belongs
15045 echo "$EDJE_INSPECTOR_PKG_ERRORS" >&5 15206 echo "$EDJE_INSPECTOR_PKG_ERRORS" >&5
15046 15207
15047 as_fn_error $? "Package requirements (ecore-evas >= 1.1.0 ecore >= 1.1.0 evas >= 1.1.0 eina >= 1.1.0) were not met: 15208 as_fn_error "Package requirements (ecore-evas >= 1.1.0 ecore >= 1.1.0 evas >= 1.1.0 eina >= 1.1.0) were not met:
15048 15209
15049$EDJE_INSPECTOR_PKG_ERRORS 15210$EDJE_INSPECTOR_PKG_ERRORS
15050 15211
@@ -15053,13 +15214,12 @@ installed software in a non-standard prefix.
15053 15214
15054Alternatively, you may set the environment variables EDJE_INSPECTOR_CFLAGS 15215Alternatively, you may set the environment variables EDJE_INSPECTOR_CFLAGS
15055and EDJE_INSPECTOR_LIBS to avoid the need to call pkg-config. 15216and EDJE_INSPECTOR_LIBS to avoid the need to call pkg-config.
15056See the pkg-config man page for more details." "$LINENO" 5 15217See the pkg-config man page for more details.
15218" "$LINENO" 5
15057elif test $pkg_failed = untried; then 15219elif test $pkg_failed = untried; then
15058 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
15059$as_echo "no" >&6; }
15060 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 15220 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
15061$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 15221$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
15062as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it 15222as_fn_error "The pkg-config script could not be found or is too old. Make sure it
15063is in your PATH or set the PKG_CONFIG environment variable to the full 15223is in your PATH or set the PKG_CONFIG environment variable to the full
15064path to pkg-config. 15224path to pkg-config.
15065 15225
@@ -15068,13 +15228,13 @@ and EDJE_INSPECTOR_LIBS to avoid the need to call pkg-config.
15068See the pkg-config man page for more details. 15228See the pkg-config man page for more details.
15069 15229
15070To get pkg-config, see <http://pkg-config.freedesktop.org/>. 15230To get pkg-config, see <http://pkg-config.freedesktop.org/>.
15071See \`config.log' for more details" "$LINENO" 5 ; } 15231See \`config.log' for more details." "$LINENO" 5; }
15072else 15232else
15073 EDJE_INSPECTOR_CFLAGS=$pkg_cv_EDJE_INSPECTOR_CFLAGS 15233 EDJE_INSPECTOR_CFLAGS=$pkg_cv_EDJE_INSPECTOR_CFLAGS
15074 EDJE_INSPECTOR_LIBS=$pkg_cv_EDJE_INSPECTOR_LIBS 15234 EDJE_INSPECTOR_LIBS=$pkg_cv_EDJE_INSPECTOR_LIBS
15075 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 15235 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
15076$as_echo "yes" >&6; } 15236$as_echo "yes" >&6; }
15077 15237 :
15078fi 15238fi
15079fi 15239fi
15080 15240
@@ -15084,10 +15244,11 @@ pkg_failed=no
15084{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EDJE_EXTERNAL_INSPECTOR" >&5 15244{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EDJE_EXTERNAL_INSPECTOR" >&5
15085$as_echo_n "checking for EDJE_EXTERNAL_INSPECTOR... " >&6; } 15245$as_echo_n "checking for EDJE_EXTERNAL_INSPECTOR... " >&6; }
15086 15246
15087if test -n "$EDJE_EXTERNAL_INSPECTOR_CFLAGS"; then 15247if test -n "$PKG_CONFIG"; then
15088 pkg_cv_EDJE_EXTERNAL_INSPECTOR_CFLAGS="$EDJE_EXTERNAL_INSPECTOR_CFLAGS" 15248 if test -n "$EDJE_EXTERNAL_INSPECTOR_CFLAGS"; then
15089 elif test -n "$PKG_CONFIG"; then 15249 pkg_cv_EDJE_EXTERNAL_INSPECTOR_CFLAGS="$EDJE_EXTERNAL_INSPECTOR_CFLAGS"
15090 if test -n "$PKG_CONFIG" && \ 15250 else
15251 if test -n "$PKG_CONFIG" && \
15091 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ecore >= 1.1.0 evas >= 1.1.0 eina >= 1.1.0\""; } >&5 15252 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ecore >= 1.1.0 evas >= 1.1.0 eina >= 1.1.0\""; } >&5
15092 ($PKG_CONFIG --exists --print-errors "ecore >= 1.1.0 evas >= 1.1.0 eina >= 1.1.0") 2>&5 15253 ($PKG_CONFIG --exists --print-errors "ecore >= 1.1.0 evas >= 1.1.0 eina >= 1.1.0") 2>&5
15093 ac_status=$? 15254 ac_status=$?
@@ -15097,13 +15258,15 @@ if test -n "$EDJE_EXTERNAL_INSPECTOR_CFLAGS"; then
15097else 15258else
15098 pkg_failed=yes 15259 pkg_failed=yes
15099fi 15260fi
15100 else 15261 fi
15101 pkg_failed=untried 15262else
15263 pkg_failed=untried
15102fi 15264fi
15103if test -n "$EDJE_EXTERNAL_INSPECTOR_LIBS"; then 15265if test -n "$PKG_CONFIG"; then
15104 pkg_cv_EDJE_EXTERNAL_INSPECTOR_LIBS="$EDJE_EXTERNAL_INSPECTOR_LIBS" 15266 if test -n "$EDJE_EXTERNAL_INSPECTOR_LIBS"; then
15105 elif test -n "$PKG_CONFIG"; then 15267 pkg_cv_EDJE_EXTERNAL_INSPECTOR_LIBS="$EDJE_EXTERNAL_INSPECTOR_LIBS"
15106 if test -n "$PKG_CONFIG" && \ 15268 else
15269 if test -n "$PKG_CONFIG" && \
15107 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ecore >= 1.1.0 evas >= 1.1.0 eina >= 1.1.0\""; } >&5 15270 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ecore >= 1.1.0 evas >= 1.1.0 eina >= 1.1.0\""; } >&5
15108 ($PKG_CONFIG --exists --print-errors "ecore >= 1.1.0 evas >= 1.1.0 eina >= 1.1.0") 2>&5 15271 ($PKG_CONFIG --exists --print-errors "ecore >= 1.1.0 evas >= 1.1.0 eina >= 1.1.0") 2>&5
15109 ac_status=$? 15272 ac_status=$?
@@ -15113,15 +15276,14 @@ if test -n "$EDJE_EXTERNAL_INSPECTOR_LIBS"; then
15113else 15276else
15114 pkg_failed=yes 15277 pkg_failed=yes
15115fi 15278fi
15116 else 15279 fi
15117 pkg_failed=untried 15280else
15281 pkg_failed=untried
15118fi 15282fi
15119 15283
15120 15284
15121 15285
15122if test $pkg_failed = yes; then 15286if test $pkg_failed = yes; then
15123 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
15124$as_echo "no" >&6; }
15125 15287
15126if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 15288if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
15127 _pkg_short_errors_supported=yes 15289 _pkg_short_errors_supported=yes
@@ -15129,14 +15291,14 @@ else
15129 _pkg_short_errors_supported=no 15291 _pkg_short_errors_supported=no
15130fi 15292fi
15131 if test $_pkg_short_errors_supported = yes; then 15293 if test $_pkg_short_errors_supported = yes; then
15132 EDJE_EXTERNAL_INSPECTOR_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "ecore >= 1.1.0 evas >= 1.1.0 eina >= 1.1.0" 2>&1` 15294 EDJE_EXTERNAL_INSPECTOR_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "ecore >= 1.1.0 evas >= 1.1.0 eina >= 1.1.0"`
15133 else 15295 else
15134 EDJE_EXTERNAL_INSPECTOR_PKG_ERRORS=`$PKG_CONFIG --print-errors "ecore >= 1.1.0 evas >= 1.1.0 eina >= 1.1.0" 2>&1` 15296 EDJE_EXTERNAL_INSPECTOR_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "ecore >= 1.1.0 evas >= 1.1.0 eina >= 1.1.0"`
15135 fi 15297 fi
15136 # Put the nasty error message in config.log where it belongs 15298 # Put the nasty error message in config.log where it belongs
15137 echo "$EDJE_EXTERNAL_INSPECTOR_PKG_ERRORS" >&5 15299 echo "$EDJE_EXTERNAL_INSPECTOR_PKG_ERRORS" >&5
15138 15300
15139 as_fn_error $? "Package requirements (ecore >= 1.1.0 evas >= 1.1.0 eina >= 1.1.0) were not met: 15301 as_fn_error "Package requirements (ecore >= 1.1.0 evas >= 1.1.0 eina >= 1.1.0) were not met:
15140 15302
15141$EDJE_EXTERNAL_INSPECTOR_PKG_ERRORS 15303$EDJE_EXTERNAL_INSPECTOR_PKG_ERRORS
15142 15304
@@ -15145,13 +15307,12 @@ installed software in a non-standard prefix.
15145 15307
15146Alternatively, you may set the environment variables EDJE_EXTERNAL_INSPECTOR_CFLAGS 15308Alternatively, you may set the environment variables EDJE_EXTERNAL_INSPECTOR_CFLAGS
15147and EDJE_EXTERNAL_INSPECTOR_LIBS to avoid the need to call pkg-config. 15309and EDJE_EXTERNAL_INSPECTOR_LIBS to avoid the need to call pkg-config.
15148See the pkg-config man page for more details." "$LINENO" 5 15310See the pkg-config man page for more details.
15311" "$LINENO" 5
15149elif test $pkg_failed = untried; then 15312elif test $pkg_failed = untried; then
15150 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
15151$as_echo "no" >&6; }
15152 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 15313 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
15153$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 15314$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
15154as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it 15315as_fn_error "The pkg-config script could not be found or is too old. Make sure it
15155is in your PATH or set the PKG_CONFIG environment variable to the full 15316is in your PATH or set the PKG_CONFIG environment variable to the full
15156path to pkg-config. 15317path to pkg-config.
15157 15318
@@ -15160,13 +15321,13 @@ and EDJE_EXTERNAL_INSPECTOR_LIBS to avoid the need to call pkg-config.
15160See the pkg-config man page for more details. 15321See the pkg-config man page for more details.
15161 15322
15162To get pkg-config, see <http://pkg-config.freedesktop.org/>. 15323To get pkg-config, see <http://pkg-config.freedesktop.org/>.
15163See \`config.log' for more details" "$LINENO" 5 ; } 15324See \`config.log' for more details." "$LINENO" 5; }
15164else 15325else
15165 EDJE_EXTERNAL_INSPECTOR_CFLAGS=$pkg_cv_EDJE_EXTERNAL_INSPECTOR_CFLAGS 15326 EDJE_EXTERNAL_INSPECTOR_CFLAGS=$pkg_cv_EDJE_EXTERNAL_INSPECTOR_CFLAGS
15166 EDJE_EXTERNAL_INSPECTOR_LIBS=$pkg_cv_EDJE_EXTERNAL_INSPECTOR_LIBS 15327 EDJE_EXTERNAL_INSPECTOR_LIBS=$pkg_cv_EDJE_EXTERNAL_INSPECTOR_LIBS
15167 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 15328 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
15168$as_echo "yes" >&6; } 15329$as_echo "yes" >&6; }
15169 15330 :
15170fi 15331fi
15171fi 15332fi
15172 15333
@@ -15176,7 +15337,8 @@ for ac_header in locale.h sys/resource.h
15176do : 15337do :
15177 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` 15338 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
15178ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" 15339ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
15179if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : 15340eval as_val=\$$as_ac_Header
15341 if test "x$as_val" = x""yes; then :
15180 cat >>confdefs.h <<_ACEOF 15342 cat >>confdefs.h <<_ACEOF
15181#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 15343#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
15182_ACEOF 15344_ACEOF
@@ -15255,7 +15417,7 @@ $as_echo_n "checking whether cc understands -c and -o together... " >&6; }
15255fi 15417fi
15256set dummy $CC; ac_cc=`$as_echo "$2" | 15418set dummy $CC; ac_cc=`$as_echo "$2" |
15257 sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'` 15419 sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'`
15258if eval "test \"\${ac_cv_prog_cc_${ac_cc}_c_o+set}\"" = set; then : 15420if { as_var=ac_cv_prog_cc_${ac_cc}_c_o; eval "test \"\${$as_var+set}\" = set"; }; then :
15259 $as_echo_n "(cached) " >&6 15421 $as_echo_n "(cached) " >&6
15260else 15422else
15261 cat confdefs.h - <<_ACEOF >conftest.$ac_ext 15423 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -16119,7 +16281,8 @@ if test $ac_cv_os_cray = yes; then
16119 for ac_func in _getb67 GETB67 getb67; do 16281 for ac_func in _getb67 GETB67 getb67; do
16120 as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` 16282 as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
16121ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" 16283ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
16122if eval test \"x\$"$as_ac_var"\" = x"yes"; then : 16284eval as_val=\$$as_ac_var
16285 if test "x$as_val" = x""yes; then :
16123 16286
16124cat >>confdefs.h <<_ACEOF 16287cat >>confdefs.h <<_ACEOF
16125#define CRAY_STACKSEG_END $ac_func 16288#define CRAY_STACKSEG_END $ac_func
@@ -16235,10 +16398,11 @@ pkg_failed=no
16235{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CHECK" >&5 16398{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CHECK" >&5
16236$as_echo_n "checking for CHECK... " >&6; } 16399$as_echo_n "checking for CHECK... " >&6; }
16237 16400
16238if test -n "$CHECK_CFLAGS"; then 16401if test -n "$PKG_CONFIG"; then
16239 pkg_cv_CHECK_CFLAGS="$CHECK_CFLAGS" 16402 if test -n "$CHECK_CFLAGS"; then
16240 elif test -n "$PKG_CONFIG"; then 16403 pkg_cv_CHECK_CFLAGS="$CHECK_CFLAGS"
16241 if test -n "$PKG_CONFIG" && \ 16404 else
16405 if test -n "$PKG_CONFIG" && \
16242 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"check >= 0.9.5\""; } >&5 16406 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"check >= 0.9.5\""; } >&5
16243 ($PKG_CONFIG --exists --print-errors "check >= 0.9.5") 2>&5 16407 ($PKG_CONFIG --exists --print-errors "check >= 0.9.5") 2>&5
16244 ac_status=$? 16408 ac_status=$?
@@ -16248,13 +16412,15 @@ if test -n "$CHECK_CFLAGS"; then
16248else 16412else
16249 pkg_failed=yes 16413 pkg_failed=yes
16250fi 16414fi
16251 else 16415 fi
16252 pkg_failed=untried 16416else
16417 pkg_failed=untried
16253fi 16418fi
16254if test -n "$CHECK_LIBS"; then 16419if test -n "$PKG_CONFIG"; then
16255 pkg_cv_CHECK_LIBS="$CHECK_LIBS" 16420 if test -n "$CHECK_LIBS"; then
16256 elif test -n "$PKG_CONFIG"; then 16421 pkg_cv_CHECK_LIBS="$CHECK_LIBS"
16257 if test -n "$PKG_CONFIG" && \ 16422 else
16423 if test -n "$PKG_CONFIG" && \
16258 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"check >= 0.9.5\""; } >&5 16424 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"check >= 0.9.5\""; } >&5
16259 ($PKG_CONFIG --exists --print-errors "check >= 0.9.5") 2>&5 16425 ($PKG_CONFIG --exists --print-errors "check >= 0.9.5") 2>&5
16260 ac_status=$? 16426 ac_status=$?
@@ -16264,15 +16430,14 @@ if test -n "$CHECK_LIBS"; then
16264else 16430else
16265 pkg_failed=yes 16431 pkg_failed=yes
16266fi 16432fi
16267 else 16433 fi
16268 pkg_failed=untried 16434else
16435 pkg_failed=untried
16269fi 16436fi
16270 16437
16271 16438
16272 16439
16273if test $pkg_failed = yes; then 16440if test $pkg_failed = yes; then
16274 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
16275$as_echo "no" >&6; }
16276 16441
16277if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 16442if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
16278 _pkg_short_errors_supported=yes 16443 _pkg_short_errors_supported=yes
@@ -16280,17 +16445,17 @@ else
16280 _pkg_short_errors_supported=no 16445 _pkg_short_errors_supported=no
16281fi 16446fi
16282 if test $_pkg_short_errors_supported = yes; then 16447 if test $_pkg_short_errors_supported = yes; then
16283 CHECK_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "check >= 0.9.5" 2>&1` 16448 CHECK_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "check >= 0.9.5"`
16284 else 16449 else
16285 CHECK_PKG_ERRORS=`$PKG_CONFIG --print-errors "check >= 0.9.5" 2>&1` 16450 CHECK_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "check >= 0.9.5"`
16286 fi 16451 fi
16287 # Put the nasty error message in config.log where it belongs 16452 # Put the nasty error message in config.log where it belongs
16288 echo "$CHECK_PKG_ERRORS" >&5 16453 echo "$CHECK_PKG_ERRORS" >&5
16289 16454
16290 _efl_enable_tests="no" 16455 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
16291elif test $pkg_failed = untried; then
16292 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
16293$as_echo "no" >&6; } 16456$as_echo "no" >&6; }
16457 _efl_enable_tests="no"
16458elif test $pkg_failed = untried; then
16294 _efl_enable_tests="no" 16459 _efl_enable_tests="no"
16295else 16460else
16296 CHECK_CFLAGS=$pkg_cv_CHECK_CFLAGS 16461 CHECK_CFLAGS=$pkg_cv_CHECK_CFLAGS
@@ -16425,29 +16590,6 @@ fi
16425 16590
16426## Examples 16591## Examples
16427 16592
16428install_examples="yes"
16429# Check whether --enable-install-examples was given.
16430if test "${enable_install_examples+set}" = set; then :
16431 enableval=$enable_install_examples;
16432 if test "x${enableval}" = "xyes" ; then
16433 install_examples="yes"
16434 else
16435 install_examples="no"
16436 fi
16437
16438else
16439 install_examples="yes"
16440fi
16441
16442 if test "x${install_examples}" = "xyes"; then
16443 INSTALL_EXAMPLES_TRUE=
16444 INSTALL_EXAMPLES_FALSE='#'
16445else
16446 INSTALL_EXAMPLES_TRUE='#'
16447 INSTALL_EXAMPLES_FALSE=
16448fi
16449
16450
16451build_examples="no" 16593build_examples="no"
16452# Check whether --enable-build-examples was given. 16594# Check whether --enable-build-examples was given.
16453if test "${enable_build_examples+set}" = set; then : 16595if test "${enable_build_examples+set}" = set; then :
@@ -16455,7 +16597,7 @@ if test "${enable_build_examples+set}" = set; then :
16455 if test "x${enableval}" = "xyes" ; then 16597 if test "x${enableval}" = "xyes" ; then
16456 build_examples="yes" 16598 build_examples="yes"
16457 edje_cc=$($PKG_CONFIG --variable=prefix edje)/bin/edje_cc 16599 edje_cc=$($PKG_CONFIG --variable=prefix edje)/bin/edje_cc
16458 # put in here the dependencies for Edje' examples. They are 16600 # put in here the dependencies for Edje' examples. They are
16459 # meant to be 'real world' usage examples, thus one will be 16601 # meant to be 'real world' usage examples, thus one will be
16460 # using higher level libraries on these programs 16602 # using higher level libraries on these programs
16461 16603
@@ -16563,7 +16705,6 @@ DEFS=-DHAVE_CONFIG_H
16563 16705
16564ac_libobjs= 16706ac_libobjs=
16565ac_ltlibobjs= 16707ac_ltlibobjs=
16566U=
16567for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue 16708for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
16568 # 1. Remove the extension, and $U if already installed. 16709 # 1. Remove the extension, and $U if already installed.
16569 ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' 16710 ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
@@ -16587,99 +16728,95 @@ else
16587fi 16728fi
16588 16729
16589if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then 16730if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
16590 as_fn_error $? "conditional \"AMDEP\" was never defined. 16731 as_fn_error "conditional \"AMDEP\" was never defined.
16591Usually this means the macro was only invoked conditionally." "$LINENO" 5 16732Usually this means the macro was only invoked conditionally." "$LINENO" 5
16592fi 16733fi
16593if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then 16734if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
16594 as_fn_error $? "conditional \"am__fastdepCC\" was never defined. 16735 as_fn_error "conditional \"am__fastdepCC\" was never defined.
16595Usually this means the macro was only invoked conditionally." "$LINENO" 5 16736Usually this means the macro was only invoked conditionally." "$LINENO" 5
16596fi 16737fi
16597if test -z "${EDJE_AMALGAMATION_TRUE}" && test -z "${EDJE_AMALGAMATION_FALSE}"; then 16738if test -z "${EDJE_AMALGAMATION_TRUE}" && test -z "${EDJE_AMALGAMATION_FALSE}"; then
16598 as_fn_error $? "conditional \"EDJE_AMALGAMATION\" was never defined. 16739 as_fn_error "conditional \"EDJE_AMALGAMATION\" was never defined.
16599Usually this means the macro was only invoked conditionally." "$LINENO" 5 16740Usually this means the macro was only invoked conditionally." "$LINENO" 5
16600fi 16741fi
16601if test -z "${BUILD_EDJE_CC_TRUE}" && test -z "${BUILD_EDJE_CC_FALSE}"; then 16742if test -z "${BUILD_EDJE_CC_TRUE}" && test -z "${BUILD_EDJE_CC_FALSE}"; then
16602 as_fn_error $? "conditional \"BUILD_EDJE_CC\" was never defined. 16743 as_fn_error "conditional \"BUILD_EDJE_CC\" was never defined.
16603Usually this means the macro was only invoked conditionally." "$LINENO" 5 16744Usually this means the macro was only invoked conditionally." "$LINENO" 5
16604fi 16745fi
16605if test -z "${BUILD_EDJE_DECC_TRUE}" && test -z "${BUILD_EDJE_DECC_FALSE}"; then 16746if test -z "${BUILD_EDJE_DECC_TRUE}" && test -z "${BUILD_EDJE_DECC_FALSE}"; then
16606 as_fn_error $? "conditional \"BUILD_EDJE_DECC\" was never defined. 16747 as_fn_error "conditional \"BUILD_EDJE_DECC\" was never defined.
16607Usually this means the macro was only invoked conditionally." "$LINENO" 5 16748Usually this means the macro was only invoked conditionally." "$LINENO" 5
16608fi 16749fi
16609if test -z "${BUILD_EDJE_RECC_TRUE}" && test -z "${BUILD_EDJE_RECC_FALSE}"; then 16750if test -z "${BUILD_EDJE_RECC_TRUE}" && test -z "${BUILD_EDJE_RECC_FALSE}"; then
16610 as_fn_error $? "conditional \"BUILD_EDJE_RECC\" was never defined. 16751 as_fn_error "conditional \"BUILD_EDJE_RECC\" was never defined.
16611Usually this means the macro was only invoked conditionally." "$LINENO" 5 16752Usually this means the macro was only invoked conditionally." "$LINENO" 5
16612fi 16753fi
16613if test -z "${BUILD_EDJE_PLAYER_TRUE}" && test -z "${BUILD_EDJE_PLAYER_FALSE}"; then 16754if test -z "${BUILD_EDJE_PLAYER_TRUE}" && test -z "${BUILD_EDJE_PLAYER_FALSE}"; then
16614 as_fn_error $? "conditional \"BUILD_EDJE_PLAYER\" was never defined. 16755 as_fn_error "conditional \"BUILD_EDJE_PLAYER\" was never defined.
16615Usually this means the macro was only invoked conditionally." "$LINENO" 5 16756Usually this means the macro was only invoked conditionally." "$LINENO" 5
16616fi 16757fi
16617if test -z "${BUILD_EDJE_INSPECTOR_TRUE}" && test -z "${BUILD_EDJE_INSPECTOR_FALSE}"; then 16758if test -z "${BUILD_EDJE_INSPECTOR_TRUE}" && test -z "${BUILD_EDJE_INSPECTOR_FALSE}"; then
16618 as_fn_error $? "conditional \"BUILD_EDJE_INSPECTOR\" was never defined. 16759 as_fn_error "conditional \"BUILD_EDJE_INSPECTOR\" was never defined.
16619Usually this means the macro was only invoked conditionally." "$LINENO" 5 16760Usually this means the macro was only invoked conditionally." "$LINENO" 5
16620fi 16761fi
16621if test -z "${BUILD_EDJE_EXTERNAL_INSPECTOR_TRUE}" && test -z "${BUILD_EDJE_EXTERNAL_INSPECTOR_FALSE}"; then 16762if test -z "${BUILD_EDJE_EXTERNAL_INSPECTOR_TRUE}" && test -z "${BUILD_EDJE_EXTERNAL_INSPECTOR_FALSE}"; then
16622 as_fn_error $? "conditional \"BUILD_EDJE_EXTERNAL_INSPECTOR\" was never defined. 16763 as_fn_error "conditional \"BUILD_EDJE_EXTERNAL_INSPECTOR\" was never defined.
16623Usually this means the macro was only invoked conditionally." "$LINENO" 5 16764Usually this means the macro was only invoked conditionally." "$LINENO" 5
16624fi 16765fi
16625if test -z "${EDJE_PROGRAM_CACHE_TRUE}" && test -z "${EDJE_PROGRAM_CACHE_FALSE}"; then 16766if test -z "${EDJE_PROGRAM_CACHE_TRUE}" && test -z "${EDJE_PROGRAM_CACHE_FALSE}"; then
16626 as_fn_error $? "conditional \"EDJE_PROGRAM_CACHE\" was never defined. 16767 as_fn_error "conditional \"EDJE_PROGRAM_CACHE\" was never defined.
16627Usually this means the macro was only invoked conditionally." "$LINENO" 5 16768Usually this means the macro was only invoked conditionally." "$LINENO" 5
16628fi 16769fi
16629if test -z "${EDJE_CALC_CACHE_TRUE}" && test -z "${EDJE_CALC_CACHE_FALSE}"; then 16770if test -z "${EDJE_CALC_CACHE_TRUE}" && test -z "${EDJE_CALC_CACHE_FALSE}"; then
16630 as_fn_error $? "conditional \"EDJE_CALC_CACHE\" was never defined. 16771 as_fn_error "conditional \"EDJE_CALC_CACHE\" was never defined.
16631Usually this means the macro was only invoked conditionally." "$LINENO" 5 16772Usually this means the macro was only invoked conditionally." "$LINENO" 5
16632fi 16773fi
16633if test -z "${BUILD_EDJE_FP_TRUE}" && test -z "${BUILD_EDJE_FP_FALSE}"; then 16774if test -z "${BUILD_EDJE_FP_TRUE}" && test -z "${BUILD_EDJE_FP_FALSE}"; then
16634 as_fn_error $? "conditional \"BUILD_EDJE_FP\" was never defined. 16775 as_fn_error "conditional \"BUILD_EDJE_FP\" was never defined.
16635Usually this means the macro was only invoked conditionally." "$LINENO" 5 16776Usually this means the macro was only invoked conditionally." "$LINENO" 5
16636fi 16777fi
16637if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then 16778if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
16638 as_fn_error $? "conditional \"am__fastdepCC\" was never defined. 16779 as_fn_error "conditional \"am__fastdepCC\" was never defined.
16639Usually this means the macro was only invoked conditionally." "$LINENO" 5 16780Usually this means the macro was only invoked conditionally." "$LINENO" 5
16640fi 16781fi
16641if test -z "${EFL_BUILD_DOC_TRUE}" && test -z "${EFL_BUILD_DOC_FALSE}"; then 16782if test -z "${EFL_BUILD_DOC_TRUE}" && test -z "${EFL_BUILD_DOC_FALSE}"; then
16642 as_fn_error $? "conditional \"EFL_BUILD_DOC\" was never defined. 16783 as_fn_error "conditional \"EFL_BUILD_DOC\" was never defined.
16643Usually this means the macro was only invoked conditionally." "$LINENO" 5 16784Usually this means the macro was only invoked conditionally." "$LINENO" 5
16644fi 16785fi
16645if test -z "${HAVE_PYTHON_TRUE}" && test -z "${HAVE_PYTHON_FALSE}"; then 16786if test -z "${HAVE_PYTHON_TRUE}" && test -z "${HAVE_PYTHON_FALSE}"; then
16646 as_fn_error $? "conditional \"HAVE_PYTHON\" was never defined. 16787 as_fn_error "conditional \"HAVE_PYTHON\" was never defined.
16647Usually this means the macro was only invoked conditionally." "$LINENO" 5 16788Usually this means the macro was only invoked conditionally." "$LINENO" 5
16648fi 16789fi
16649if test -z "${ENABLE_MULTISENSE_TRUE}" && test -z "${ENABLE_MULTISENSE_FALSE}"; then 16790if test -z "${ENABLE_MULTISENSE_TRUE}" && test -z "${ENABLE_MULTISENSE_FALSE}"; then
16650 as_fn_error $? "conditional \"ENABLE_MULTISENSE\" was never defined. 16791 as_fn_error "conditional \"ENABLE_MULTISENSE\" was never defined.
16651Usually this means the macro was only invoked conditionally." "$LINENO" 5 16792Usually this means the macro was only invoked conditionally." "$LINENO" 5
16652fi 16793fi
16653if test -z "${HAVE_LIBSNDFILE_TRUE}" && test -z "${HAVE_LIBSNDFILE_FALSE}"; then 16794if test -z "${HAVE_LIBSNDFILE_TRUE}" && test -z "${HAVE_LIBSNDFILE_FALSE}"; then
16654 as_fn_error $? "conditional \"HAVE_LIBSNDFILE\" was never defined. 16795 as_fn_error "conditional \"HAVE_LIBSNDFILE\" was never defined.
16655Usually this means the macro was only invoked conditionally." "$LINENO" 5 16796Usually this means the macro was only invoked conditionally." "$LINENO" 5
16656fi 16797fi
16657if test -z "${HAVE_LIBREMIX_TRUE}" && test -z "${HAVE_LIBREMIX_FALSE}"; then 16798if test -z "${HAVE_LIBREMIX_TRUE}" && test -z "${HAVE_LIBREMIX_FALSE}"; then
16658 as_fn_error $? "conditional \"HAVE_LIBREMIX\" was never defined. 16799 as_fn_error "conditional \"HAVE_LIBREMIX\" was never defined.
16659Usually this means the macro was only invoked conditionally." "$LINENO" 5 16800Usually this means the macro was only invoked conditionally." "$LINENO" 5
16660fi 16801fi
16661if test -z "${HAVE_LIBALSA_TRUE}" && test -z "${HAVE_LIBALSA_FALSE}"; then 16802if test -z "${HAVE_LIBALSA_TRUE}" && test -z "${HAVE_LIBALSA_FALSE}"; then
16662 as_fn_error $? "conditional \"HAVE_LIBALSA\" was never defined. 16803 as_fn_error "conditional \"HAVE_LIBALSA\" was never defined.
16663Usually this means the macro was only invoked conditionally." "$LINENO" 5 16804Usually this means the macro was only invoked conditionally." "$LINENO" 5
16664fi 16805fi
16665if test -z "${BUILD_EPP_TRUE}" && test -z "${BUILD_EPP_FALSE}"; then 16806if test -z "${BUILD_EPP_TRUE}" && test -z "${BUILD_EPP_FALSE}"; then
16666 as_fn_error $? "conditional \"BUILD_EPP\" was never defined. 16807 as_fn_error "conditional \"BUILD_EPP\" was never defined.
16667Usually this means the macro was only invoked conditionally." "$LINENO" 5 16808Usually this means the macro was only invoked conditionally." "$LINENO" 5
16668fi 16809fi
16669if test -z "${EFL_ENABLE_TESTS_TRUE}" && test -z "${EFL_ENABLE_TESTS_FALSE}"; then 16810if test -z "${EFL_ENABLE_TESTS_TRUE}" && test -z "${EFL_ENABLE_TESTS_FALSE}"; then
16670 as_fn_error $? "conditional \"EFL_ENABLE_TESTS\" was never defined. 16811 as_fn_error "conditional \"EFL_ENABLE_TESTS\" was never defined.
16671Usually this means the macro was only invoked conditionally." "$LINENO" 5 16812Usually this means the macro was only invoked conditionally." "$LINENO" 5
16672fi 16813fi
16673if test -z "${EFL_ENABLE_COVERAGE_TRUE}" && test -z "${EFL_ENABLE_COVERAGE_FALSE}"; then 16814if test -z "${EFL_ENABLE_COVERAGE_TRUE}" && test -z "${EFL_ENABLE_COVERAGE_FALSE}"; then
16674 as_fn_error $? "conditional \"EFL_ENABLE_COVERAGE\" was never defined. 16815 as_fn_error "conditional \"EFL_ENABLE_COVERAGE\" was never defined.
16675Usually this means the macro was only invoked conditionally." "$LINENO" 5
16676fi
16677if test -z "${INSTALL_EXAMPLES_TRUE}" && test -z "${INSTALL_EXAMPLES_FALSE}"; then
16678 as_fn_error $? "conditional \"INSTALL_EXAMPLES\" was never defined.
16679Usually this means the macro was only invoked conditionally." "$LINENO" 5 16816Usually this means the macro was only invoked conditionally." "$LINENO" 5
16680fi 16817fi
16681if test -z "${BUILD_EXAMPLES_TRUE}" && test -z "${BUILD_EXAMPLES_FALSE}"; then 16818if test -z "${BUILD_EXAMPLES_TRUE}" && test -z "${BUILD_EXAMPLES_FALSE}"; then
16682 as_fn_error $? "conditional \"BUILD_EXAMPLES\" was never defined. 16819 as_fn_error "conditional \"BUILD_EXAMPLES\" was never defined.
16683Usually this means the macro was only invoked conditionally." "$LINENO" 5 16820Usually this means the macro was only invoked conditionally." "$LINENO" 5
16684fi 16821fi
16685 16822
@@ -16829,19 +16966,19 @@ export LANGUAGE
16829(unset CDPATH) >/dev/null 2>&1 && unset CDPATH 16966(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
16830 16967
16831 16968
16832# as_fn_error STATUS ERROR [LINENO LOG_FD] 16969# as_fn_error ERROR [LINENO LOG_FD]
16833# ---------------------------------------- 16970# ---------------------------------
16834# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are 16971# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
16835# provided, also output the error to LOG_FD, referencing LINENO. Then exit the 16972# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
16836# script with STATUS, using 1 if that was 0. 16973# script with status $?, using 1 if that was 0.
16837as_fn_error () 16974as_fn_error ()
16838{ 16975{
16839 as_status=$1; test $as_status -eq 0 && as_status=1 16976 as_status=$?; test $as_status -eq 0 && as_status=1
16840 if test "$4"; then 16977 if test "$3"; then
16841 as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 16978 as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
16842 $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 16979 $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
16843 fi 16980 fi
16844 $as_echo "$as_me: error: $2" >&2 16981 $as_echo "$as_me: error: $1" >&2
16845 as_fn_exit $as_status 16982 as_fn_exit $as_status
16846} # as_fn_error 16983} # as_fn_error
16847 16984
@@ -17037,7 +17174,7 @@ $as_echo X"$as_dir" |
17037 test -d "$as_dir" && break 17174 test -d "$as_dir" && break
17038 done 17175 done
17039 test -z "$as_dirs" || eval "mkdir $as_dirs" 17176 test -z "$as_dirs" || eval "mkdir $as_dirs"
17040 } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" 17177 } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir"
17041 17178
17042 17179
17043} # as_fn_mkdir_p 17180} # as_fn_mkdir_p
@@ -17090,8 +17227,8 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
17090# report actual input values of CONFIG_FILES etc. instead of their 17227# report actual input values of CONFIG_FILES etc. instead of their
17091# values after options handling. 17228# values after options handling.
17092ac_log=" 17229ac_log="
17093This file was extended by edje $as_me 1.1.0, which was 17230This file was extended by edje $as_me 1.1.99.67344, which was
17094generated by GNU Autoconf 2.67. Invocation command line was 17231generated by GNU Autoconf 2.65. Invocation command line was
17095 17232
17096 CONFIG_FILES = $CONFIG_FILES 17233 CONFIG_FILES = $CONFIG_FILES
17097 CONFIG_HEADERS = $CONFIG_HEADERS 17234 CONFIG_HEADERS = $CONFIG_HEADERS
@@ -17156,11 +17293,11 @@ _ACEOF
17156cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 17293cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
17157ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" 17294ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
17158ac_cs_version="\\ 17295ac_cs_version="\\
17159edje config.status 1.1.0 17296edje config.status 1.1.99.67344
17160configured by $0, generated by GNU Autoconf 2.67, 17297configured by $0, generated by GNU Autoconf 2.65,
17161 with options \\"\$ac_cs_config\\" 17298 with options \\"\$ac_cs_config\\"
17162 17299
17163Copyright (C) 2010 Free Software Foundation, Inc. 17300Copyright (C) 2009 Free Software Foundation, Inc.
17164This config.status script is free software; the Free Software Foundation 17301This config.status script is free software; the Free Software Foundation
17165gives unlimited permission to copy, distribute and modify it." 17302gives unlimited permission to copy, distribute and modify it."
17166 17303
@@ -17178,16 +17315,11 @@ ac_need_defaults=:
17178while test $# != 0 17315while test $# != 0
17179do 17316do
17180 case $1 in 17317 case $1 in
17181 --*=?*) 17318 --*=*)
17182 ac_option=`expr "X$1" : 'X\([^=]*\)='` 17319 ac_option=`expr "X$1" : 'X\([^=]*\)='`
17183 ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` 17320 ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
17184 ac_shift=: 17321 ac_shift=:
17185 ;; 17322 ;;
17186 --*=)
17187 ac_option=`expr "X$1" : 'X\([^=]*\)='`
17188 ac_optarg=
17189 ac_shift=:
17190 ;;
17191 *) 17323 *)
17192 ac_option=$1 17324 ac_option=$1
17193 ac_optarg=$2 17325 ac_optarg=$2
@@ -17209,7 +17341,6 @@ do
17209 $ac_shift 17341 $ac_shift
17210 case $ac_optarg in 17342 case $ac_optarg in
17211 *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; 17343 *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
17212 '') as_fn_error $? "missing file argument" ;;
17213 esac 17344 esac
17214 as_fn_append CONFIG_FILES " '$ac_optarg'" 17345 as_fn_append CONFIG_FILES " '$ac_optarg'"
17215 ac_need_defaults=false;; 17346 ac_need_defaults=false;;
@@ -17222,7 +17353,7 @@ do
17222 ac_need_defaults=false;; 17353 ac_need_defaults=false;;
17223 --he | --h) 17354 --he | --h)
17224 # Conflict between --help and --header 17355 # Conflict between --help and --header
17225 as_fn_error $? "ambiguous option: \`$1' 17356 as_fn_error "ambiguous option: \`$1'
17226Try \`$0 --help' for more information.";; 17357Try \`$0 --help' for more information.";;
17227 --help | --hel | -h ) 17358 --help | --hel | -h )
17228 $as_echo "$ac_cs_usage"; exit ;; 17359 $as_echo "$ac_cs_usage"; exit ;;
@@ -17231,7 +17362,7 @@ Try \`$0 --help' for more information.";;
17231 ac_cs_silent=: ;; 17362 ac_cs_silent=: ;;
17232 17363
17233 # This is an error. 17364 # This is an error.
17234 -*) as_fn_error $? "unrecognized option: \`$1' 17365 -*) as_fn_error "unrecognized option: \`$1'
17235Try \`$0 --help' for more information." ;; 17366Try \`$0 --help' for more information." ;;
17236 17367
17237 *) as_fn_append ac_config_targets " $1" 17368 *) as_fn_append ac_config_targets " $1"
@@ -17405,47 +17536,6 @@ enable_dlopen_self='`$ECHO "X$enable_dlopen_self" | $Xsed -e "$delay_single_quot
17405enable_dlopen_self_static='`$ECHO "X$enable_dlopen_self_static" | $Xsed -e "$delay_single_quote_subst"`' 17536enable_dlopen_self_static='`$ECHO "X$enable_dlopen_self_static" | $Xsed -e "$delay_single_quote_subst"`'
17406old_striplib='`$ECHO "X$old_striplib" | $Xsed -e "$delay_single_quote_subst"`' 17537old_striplib='`$ECHO "X$old_striplib" | $Xsed -e "$delay_single_quote_subst"`'
17407striplib='`$ECHO "X$striplib" | $Xsed -e "$delay_single_quote_subst"`' 17538striplib='`$ECHO "X$striplib" | $Xsed -e "$delay_single_quote_subst"`'
17408LD_='`$ECHO "X$LD_" | $Xsed -e "$delay_single_quote_subst"`'
17409old_archive_cmds_='`$ECHO "X$old_archive_cmds_" | $Xsed -e "$delay_single_quote_subst"`'
17410compiler_='`$ECHO "X$compiler_" | $Xsed -e "$delay_single_quote_subst"`'
17411GCC_='`$ECHO "X$GCC_" | $Xsed -e "$delay_single_quote_subst"`'
17412lt_prog_compiler_no_builtin_flag_='`$ECHO "X$lt_prog_compiler_no_builtin_flag_" | $Xsed -e "$delay_single_quote_subst"`'
17413lt_prog_compiler_wl_='`$ECHO "X$lt_prog_compiler_wl_" | $Xsed -e "$delay_single_quote_subst"`'
17414lt_prog_compiler_pic_='`$ECHO "X$lt_prog_compiler_pic_" | $Xsed -e "$delay_single_quote_subst"`'
17415lt_prog_compiler_static_='`$ECHO "X$lt_prog_compiler_static_" | $Xsed -e "$delay_single_quote_subst"`'
17416lt_cv_prog_compiler_c_o_='`$ECHO "X$lt_cv_prog_compiler_c_o_" | $Xsed -e "$delay_single_quote_subst"`'
17417archive_cmds_need_lc_='`$ECHO "X$archive_cmds_need_lc_" | $Xsed -e "$delay_single_quote_subst"`'
17418enable_shared_with_static_runtimes_='`$ECHO "X$enable_shared_with_static_runtimes_" | $Xsed -e "$delay_single_quote_subst"`'
17419export_dynamic_flag_spec_='`$ECHO "X$export_dynamic_flag_spec_" | $Xsed -e "$delay_single_quote_subst"`'
17420whole_archive_flag_spec_='`$ECHO "X$whole_archive_flag_spec_" | $Xsed -e "$delay_single_quote_subst"`'
17421compiler_needs_object_='`$ECHO "X$compiler_needs_object_" | $Xsed -e "$delay_single_quote_subst"`'
17422old_archive_from_new_cmds_='`$ECHO "X$old_archive_from_new_cmds_" | $Xsed -e "$delay_single_quote_subst"`'
17423old_archive_from_expsyms_cmds_='`$ECHO "X$old_archive_from_expsyms_cmds_" | $Xsed -e "$delay_single_quote_subst"`'
17424archive_cmds_='`$ECHO "X$archive_cmds_" | $Xsed -e "$delay_single_quote_subst"`'
17425archive_expsym_cmds_='`$ECHO "X$archive_expsym_cmds_" | $Xsed -e "$delay_single_quote_subst"`'
17426module_cmds_='`$ECHO "X$module_cmds_" | $Xsed -e "$delay_single_quote_subst"`'
17427module_expsym_cmds_='`$ECHO "X$module_expsym_cmds_" | $Xsed -e "$delay_single_quote_subst"`'
17428with_gnu_ld_='`$ECHO "X$with_gnu_ld_" | $Xsed -e "$delay_single_quote_subst"`'
17429allow_undefined_flag_='`$ECHO "X$allow_undefined_flag_" | $Xsed -e "$delay_single_quote_subst"`'
17430no_undefined_flag_='`$ECHO "X$no_undefined_flag_" | $Xsed -e "$delay_single_quote_subst"`'
17431hardcode_libdir_flag_spec_='`$ECHO "X$hardcode_libdir_flag_spec_" | $Xsed -e "$delay_single_quote_subst"`'
17432hardcode_libdir_flag_spec_ld_='`$ECHO "X$hardcode_libdir_flag_spec_ld_" | $Xsed -e "$delay_single_quote_subst"`'
17433hardcode_libdir_separator_='`$ECHO "X$hardcode_libdir_separator_" | $Xsed -e "$delay_single_quote_subst"`'
17434hardcode_direct_='`$ECHO "X$hardcode_direct_" | $Xsed -e "$delay_single_quote_subst"`'
17435hardcode_direct_absolute_='`$ECHO "X$hardcode_direct_absolute_" | $Xsed -e "$delay_single_quote_subst"`'
17436hardcode_minus_L_='`$ECHO "X$hardcode_minus_L_" | $Xsed -e "$delay_single_quote_subst"`'
17437hardcode_shlibpath_var_='`$ECHO "X$hardcode_shlibpath_var_" | $Xsed -e "$delay_single_quote_subst"`'
17438hardcode_automatic_='`$ECHO "X$hardcode_automatic_" | $Xsed -e "$delay_single_quote_subst"`'
17439inherit_rpath_='`$ECHO "X$inherit_rpath_" | $Xsed -e "$delay_single_quote_subst"`'
17440link_all_deplibs_='`$ECHO "X$link_all_deplibs_" | $Xsed -e "$delay_single_quote_subst"`'
17441fix_srcfile_path_='`$ECHO "X$fix_srcfile_path_" | $Xsed -e "$delay_single_quote_subst"`'
17442always_export_symbols_='`$ECHO "X$always_export_symbols_" | $Xsed -e "$delay_single_quote_subst"`'
17443export_symbols_cmds_='`$ECHO "X$export_symbols_cmds_" | $Xsed -e "$delay_single_quote_subst"`'
17444exclude_expsyms_='`$ECHO "X$exclude_expsyms_" | $Xsed -e "$delay_single_quote_subst"`'
17445include_expsyms_='`$ECHO "X$include_expsyms_" | $Xsed -e "$delay_single_quote_subst"`'
17446prelink_cmds_='`$ECHO "X$prelink_cmds_" | $Xsed -e "$delay_single_quote_subst"`'
17447file_list_spec_='`$ECHO "X$file_list_spec_" | $Xsed -e "$delay_single_quote_subst"`'
17448hardcode_action_='`$ECHO "X$hardcode_action_" | $Xsed -e "$delay_single_quote_subst"`'
17449 17539
17450LTCC='$LTCC' 17540LTCC='$LTCC'
17451LTCFLAGS='$LTCFLAGS' 17541LTCFLAGS='$LTCFLAGS'
@@ -17508,27 +17598,7 @@ library_names_spec \
17508soname_spec \ 17598soname_spec \
17509finish_eval \ 17599finish_eval \
17510old_striplib \ 17600old_striplib \
17511striplib \ 17601striplib; do
17512LD_ \
17513compiler_ \
17514lt_prog_compiler_no_builtin_flag_ \
17515lt_prog_compiler_wl_ \
17516lt_prog_compiler_pic_ \
17517lt_prog_compiler_static_ \
17518lt_cv_prog_compiler_c_o_ \
17519export_dynamic_flag_spec_ \
17520whole_archive_flag_spec_ \
17521compiler_needs_object_ \
17522with_gnu_ld_ \
17523allow_undefined_flag_ \
17524no_undefined_flag_ \
17525hardcode_libdir_flag_spec_ \
17526hardcode_libdir_flag_spec_ld_ \
17527hardcode_libdir_separator_ \
17528fix_srcfile_path_ \
17529exclude_expsyms_ \
17530include_expsyms_ \
17531file_list_spec_; do
17532 case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in 17602 case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
17533 *[\\\\\\\`\\"\\\$]*) 17603 *[\\\\\\\`\\"\\\$]*)
17534 eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" 17604 eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
@@ -17557,16 +17627,7 @@ postinstall_cmds \
17557postuninstall_cmds \ 17627postuninstall_cmds \
17558finish_cmds \ 17628finish_cmds \
17559sys_lib_search_path_spec \ 17629sys_lib_search_path_spec \
17560sys_lib_dlsearch_path_spec \ 17630sys_lib_dlsearch_path_spec; do
17561old_archive_cmds_ \
17562old_archive_from_new_cmds_ \
17563old_archive_from_expsyms_cmds_ \
17564archive_cmds_ \
17565archive_expsym_cmds_ \
17566module_cmds_ \
17567module_expsym_cmds_ \
17568export_symbols_cmds_ \
17569prelink_cmds_; do
17570 case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in 17631 case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
17571 *[\\\\\\\`\\"\\\$]*) 17632 *[\\\\\\\`\\"\\\$]*)
17572 eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" 17633 eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
@@ -17633,7 +17694,7 @@ do
17633 "utils/Makefile") CONFIG_FILES="$CONFIG_FILES utils/Makefile" ;; 17694 "utils/Makefile") CONFIG_FILES="$CONFIG_FILES utils/Makefile" ;;
17634 "src/examples/Makefile") CONFIG_FILES="$CONFIG_FILES src/examples/Makefile" ;; 17695 "src/examples/Makefile") CONFIG_FILES="$CONFIG_FILES src/examples/Makefile" ;;
17635 17696
17636 *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5 ;; 17697 *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
17637 esac 17698 esac
17638done 17699done
17639 17700
@@ -17671,7 +17732,7 @@ $debug ||
17671{ 17732{
17672 tmp=./conf$$-$RANDOM 17733 tmp=./conf$$-$RANDOM
17673 (umask 077 && mkdir "$tmp") 17734 (umask 077 && mkdir "$tmp")
17674} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 17735} || as_fn_error "cannot create a temporary directory in ." "$LINENO" 5
17675 17736
17676# Set up the scripts for CONFIG_FILES section. 17737# Set up the scripts for CONFIG_FILES section.
17677# No need to generate them if there are no CONFIG_FILES. 17738# No need to generate them if there are no CONFIG_FILES.
@@ -17688,7 +17749,7 @@ if test "x$ac_cr" = x; then
17688fi 17749fi
17689ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null` 17750ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
17690if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then 17751if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
17691 ac_cs_awk_cr='\\r' 17752 ac_cs_awk_cr='\r'
17692else 17753else
17693 ac_cs_awk_cr=$ac_cr 17754 ac_cs_awk_cr=$ac_cr
17694fi 17755fi
@@ -17702,18 +17763,18 @@ _ACEOF
17702 echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && 17763 echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
17703 echo "_ACEOF" 17764 echo "_ACEOF"
17704} >conf$$subs.sh || 17765} >conf$$subs.sh ||
17705 as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 17766 as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
17706ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` 17767ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'`
17707ac_delim='%!_!# ' 17768ac_delim='%!_!# '
17708for ac_last_try in false false false false false :; do 17769for ac_last_try in false false false false false :; do
17709 . ./conf$$subs.sh || 17770 . ./conf$$subs.sh ||
17710 as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 17771 as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
17711 17772
17712 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` 17773 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
17713 if test $ac_delim_n = $ac_delim_num; then 17774 if test $ac_delim_n = $ac_delim_num; then
17714 break 17775 break
17715 elif $ac_last_try; then 17776 elif $ac_last_try; then
17716 as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 17777 as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
17717 else 17778 else
17718 ac_delim="$ac_delim!$ac_delim _$ac_delim!! " 17779 ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
17719 fi 17780 fi
@@ -17802,28 +17863,20 @@ if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
17802else 17863else
17803 cat 17864 cat
17804fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ 17865fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
17805 || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 17866 || as_fn_error "could not setup config files machinery" "$LINENO" 5
17806_ACEOF 17867_ACEOF
17807 17868
17808# VPATH may cause trouble with some makes, so we remove sole $(srcdir), 17869# VPATH may cause trouble with some makes, so we remove $(srcdir),
17809# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and 17870# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
17810# trailing colons and then remove the whole line if VPATH becomes empty 17871# trailing colons and then remove the whole line if VPATH becomes empty
17811# (actually we leave an empty line to preserve line numbers). 17872# (actually we leave an empty line to preserve line numbers).
17812if test "x$srcdir" = x.; then 17873if test "x$srcdir" = x.; then
17813 ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ 17874 ac_vpsub='/^[ ]*VPATH[ ]*=/{
17814h 17875s/:*\$(srcdir):*/:/
17815s/// 17876s/:*\${srcdir}:*/:/
17816s/^/:/ 17877s/:*@srcdir@:*/:/
17817s/[ ]*$/:/ 17878s/^\([^=]*=[ ]*\):*/\1/
17818s/:\$(srcdir):/:/g
17819s/:\${srcdir}:/:/g
17820s/:@srcdir@:/:/g
17821s/^:*//
17822s/:*$// 17879s/:*$//
17823x
17824s/\(=[ ]*\).*/\1/
17825G
17826s/\n//
17827s/^[^=]*=[ ]*$// 17880s/^[^=]*=[ ]*$//
17828}' 17881}'
17829fi 17882fi
@@ -17851,7 +17904,7 @@ for ac_last_try in false false :; do
17851 if test -z "$ac_t"; then 17904 if test -z "$ac_t"; then
17852 break 17905 break
17853 elif $ac_last_try; then 17906 elif $ac_last_try; then
17854 as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 17907 as_fn_error "could not make $CONFIG_HEADERS" "$LINENO" 5
17855 else 17908 else
17856 ac_delim="$ac_delim!$ac_delim _$ac_delim!! " 17909 ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
17857 fi 17910 fi
@@ -17936,7 +17989,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
17936_ACAWK 17989_ACAWK
17937_ACEOF 17990_ACEOF
17938cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 17991cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
17939 as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 17992 as_fn_error "could not setup config headers machinery" "$LINENO" 5
17940fi # test -n "$CONFIG_HEADERS" 17993fi # test -n "$CONFIG_HEADERS"
17941 17994
17942 17995
@@ -17949,7 +18002,7 @@ do
17949 esac 18002 esac
17950 case $ac_mode$ac_tag in 18003 case $ac_mode$ac_tag in
17951 :[FHL]*:*);; 18004 :[FHL]*:*);;
17952 :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5 ;; 18005 :L* | :C*:*) as_fn_error "invalid tag \`$ac_tag'" "$LINENO" 5;;
17953 :[FH]-) ac_tag=-:-;; 18006 :[FH]-) ac_tag=-:-;;
17954 :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; 18007 :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
17955 esac 18008 esac
@@ -17977,7 +18030,7 @@ do
17977 [\\/$]*) false;; 18030 [\\/$]*) false;;
17978 *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; 18031 *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
17979 esac || 18032 esac ||
17980 as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5 ;; 18033 as_fn_error "cannot find input file: \`$ac_f'" "$LINENO" 5;;
17981 esac 18034 esac
17982 case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac 18035 case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
17983 as_fn_append ac_file_inputs " '$ac_f'" 18036 as_fn_append ac_file_inputs " '$ac_f'"
@@ -18004,7 +18057,7 @@ $as_echo "$as_me: creating $ac_file" >&6;}
18004 18057
18005 case $ac_tag in 18058 case $ac_tag in
18006 *:-:* | *:-) cat >"$tmp/stdin" \ 18059 *:-:* | *:-) cat >"$tmp/stdin" \
18007 || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; 18060 || as_fn_error "could not create $ac_file" "$LINENO" 5 ;;
18008 esac 18061 esac
18009 ;; 18062 ;;
18010 esac 18063 esac
@@ -18141,22 +18194,22 @@ s&@MKDIR_P@&$ac_MKDIR_P&;t t
18141$ac_datarootdir_hack 18194$ac_datarootdir_hack
18142" 18195"
18143eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ 18196eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \
18144 || as_fn_error $? "could not create $ac_file" "$LINENO" 5 18197 || as_fn_error "could not create $ac_file" "$LINENO" 5
18145 18198
18146test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && 18199test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
18147 { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && 18200 { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
18148 { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && 18201 { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
18149 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' 18202 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
18150which seems to be undefined. Please make sure it is defined" >&5 18203which seems to be undefined. Please make sure it is defined." >&5
18151$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' 18204$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
18152which seems to be undefined. Please make sure it is defined" >&2;} 18205which seems to be undefined. Please make sure it is defined." >&2;}
18153 18206
18154 rm -f "$tmp/stdin" 18207 rm -f "$tmp/stdin"
18155 case $ac_file in 18208 case $ac_file in
18156 -) cat "$tmp/out" && rm -f "$tmp/out";; 18209 -) cat "$tmp/out" && rm -f "$tmp/out";;
18157 *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; 18210 *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
18158 esac \ 18211 esac \
18159 || as_fn_error $? "could not create $ac_file" "$LINENO" 5 18212 || as_fn_error "could not create $ac_file" "$LINENO" 5
18160 ;; 18213 ;;
18161 :H) 18214 :H)
18162 # 18215 #
@@ -18167,19 +18220,19 @@ which seems to be undefined. Please make sure it is defined" >&2;}
18167 $as_echo "/* $configure_input */" \ 18220 $as_echo "/* $configure_input */" \
18168 && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" 18221 && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs"
18169 } >"$tmp/config.h" \ 18222 } >"$tmp/config.h" \
18170 || as_fn_error $? "could not create $ac_file" "$LINENO" 5 18223 || as_fn_error "could not create $ac_file" "$LINENO" 5
18171 if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then 18224 if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then
18172 { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 18225 { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
18173$as_echo "$as_me: $ac_file is unchanged" >&6;} 18226$as_echo "$as_me: $ac_file is unchanged" >&6;}
18174 else 18227 else
18175 rm -f "$ac_file" 18228 rm -f "$ac_file"
18176 mv "$tmp/config.h" "$ac_file" \ 18229 mv "$tmp/config.h" "$ac_file" \
18177 || as_fn_error $? "could not create $ac_file" "$LINENO" 5 18230 || as_fn_error "could not create $ac_file" "$LINENO" 5
18178 fi 18231 fi
18179 else 18232 else
18180 $as_echo "/* $configure_input */" \ 18233 $as_echo "/* $configure_input */" \
18181 && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ 18234 && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \
18182 || as_fn_error $? "could not create -" "$LINENO" 5 18235 || as_fn_error "could not create -" "$LINENO" 5
18183 fi 18236 fi
18184# Compute "$ac_file"'s index in $config_headers. 18237# Compute "$ac_file"'s index in $config_headers.
18185_am_arg="$ac_file" 18238_am_arg="$ac_file"
@@ -18970,7 +19023,7 @@ _ACEOF
18970ac_clean_files=$ac_clean_files_save 19023ac_clean_files=$ac_clean_files_save
18971 19024
18972test $ac_write_fail = 0 || 19025test $ac_write_fail = 0 ||
18973 as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 19026 as_fn_error "write failure creating $CONFIG_STATUS" "$LINENO" 5
18974 19027
18975 19028
18976# configure is writing to config.log, and then calls config.status. 19029# configure is writing to config.log, and then calls config.status.
@@ -18991,7 +19044,7 @@ if test "$no_create" != yes; then
18991 exec 5>>config.log 19044 exec 5>>config.log
18992 # Use ||, not &&, to avoid exiting from the if with $? = 1, which 19045 # Use ||, not &&, to avoid exiting from the if with $? = 1, which
18993 # would make configure fail if this is the last instruction. 19046 # would make configure fail if this is the last instruction.
18994 $ac_cs_success || as_fn_exit 1 19047 $ac_cs_success || as_fn_exit $?
18995fi 19048fi
18996if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then 19049if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
18997 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 19050 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
diff --git a/libraries/edje/configure.ac b/libraries/edje/configure.ac
index 36bf32c..eceed6c 100644
--- a/libraries/edje/configure.ac
+++ b/libraries/edje/configure.ac
@@ -2,11 +2,11 @@
2##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## 2##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
3m4_define([v_maj], [1]) 3m4_define([v_maj], [1])
4m4_define([v_min], [1]) 4m4_define([v_min], [1])
5m4_define([v_mic], [0]) 5m4_define([v_mic], [99])
6m4_define([v_rev], m4_esyscmd([(svnversion "${SVN_REPO_PATH:-.}" | grep -v export || 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
9m4_undefine([v_rev]) 9dnl m4_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])
@@ -291,14 +291,14 @@ PKG_CHECK_MODULES([ECORE_IMF],
291 [have_ecore_imf="no"]) 291 [have_ecore_imf="no"])
292 292
293# Enable Multisense use 293# Enable Multisense use
294want_multisense="no" 294want_multisense="yes"
295dnl AC_ARG_ENABLE([multisense], 295AC_ARG_ENABLE([multisense],
296dnl [AC_HELP_STRING( 296 [AC_HELP_STRING(
297dnl [--enable-multisense], 297 [--enable-multisense],
298dnl [multisense provides sound. tone and haptic effects support, [[default=disabled]]] 298 [multisense provides sound. tone and haptic effects support, [[default=disabled]]]
299dnl )], 299 )],
300dnl [want_multisense=$enableval] 300 [want_multisense=$enableval]
301dnl ) 301)
302AM_CONDITIONAL([ENABLE_MULTISENSE], [test "x${want_multisense}" = "xyes"]) 302AM_CONDITIONAL([ENABLE_MULTISENSE], [test "x${want_multisense}" = "xyes"])
303 303
304##sndfile library 304##sndfile library
@@ -534,21 +534,6 @@ fi
534 534
535## Examples 535## Examples
536 536
537install_examples="yes"
538AC_ARG_ENABLE([install-examples],
539 AC_HELP_STRING([--disable-install-examples],
540 [disable installing examples (compiled or just source).
541 @<:@default==enabled@:>@]),
542 [
543 if test "x${enableval}" = "xyes" ; then
544 install_examples="yes"
545 else
546 install_examples="no"
547 fi
548 ],
549 [install_examples="yes"])
550AM_CONDITIONAL([INSTALL_EXAMPLES], [test "x${install_examples}" = "xyes"])
551
552build_examples="no" 537build_examples="no"
553AC_ARG_ENABLE([build-examples], 538AC_ARG_ENABLE([build-examples],
554 AC_HELP_STRING([--enable-build-examples], 539 AC_HELP_STRING([--enable-build-examples],
@@ -557,7 +542,7 @@ AC_ARG_ENABLE([build-examples],
557 if test "x${enableval}" = "xyes" ; then 542 if test "x${enableval}" = "xyes" ; then
558 build_examples="yes" 543 build_examples="yes"
559 edje_cc=$($PKG_CONFIG --variable=prefix edje)/bin/edje_cc 544 edje_cc=$($PKG_CONFIG --variable=prefix edje)/bin/edje_cc
560 # put in here the dependencies for Edje' examples. They are 545 # put in here the dependencies for Edje' examples. They are
561 # meant to be 'real world' usage examples, thus one will be 546 # meant to be 'real world' usage examples, thus one will be
562 # using higher level libraries on these programs 547 # using higher level libraries on these programs
563 AC_SUBST(edje_cc) 548 AC_SUBST(edje_cc)
diff --git a/libraries/edje/data/Makefile.in b/libraries/edje/data/Makefile.in
index 8555a6e..83c9e7c 100644
--- a/libraries/edje/data/Makefile.in
+++ b/libraries/edje/data/Makefile.in
@@ -217,8 +217,6 @@ PACKAGE_URL = @PACKAGE_URL@
217PACKAGE_VERSION = @PACKAGE_VERSION@ 217PACKAGE_VERSION = @PACKAGE_VERSION@
218PATH_SEPARATOR = @PATH_SEPARATOR@ 218PATH_SEPARATOR = @PATH_SEPARATOR@
219PKG_CONFIG = @PKG_CONFIG@ 219PKG_CONFIG = @PKG_CONFIG@
220PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
221PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
222PYTHON = @PYTHON@ 220PYTHON = @PYTHON@
223PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ 221PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
224PYTHON_PLATFORM = @PYTHON_PLATFORM@ 222PYTHON_PLATFORM = @PYTHON_PLATFORM@
diff --git a/libraries/edje/data/include/Makefile.in b/libraries/edje/data/include/Makefile.in
index ce14f03..b639450 100644
--- a/libraries/edje/data/include/Makefile.in
+++ b/libraries/edje/data/include/Makefile.in
@@ -177,8 +177,6 @@ PACKAGE_URL = @PACKAGE_URL@
177PACKAGE_VERSION = @PACKAGE_VERSION@ 177PACKAGE_VERSION = @PACKAGE_VERSION@
178PATH_SEPARATOR = @PATH_SEPARATOR@ 178PATH_SEPARATOR = @PATH_SEPARATOR@
179PKG_CONFIG = @PKG_CONFIG@ 179PKG_CONFIG = @PKG_CONFIG@
180PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
181PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
182PYTHON = @PYTHON@ 180PYTHON = @PYTHON@
183PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ 181PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
184PYTHON_PLATFORM = @PYTHON_PLATFORM@ 182PYTHON_PLATFORM = @PYTHON_PLATFORM@
diff --git a/libraries/edje/doc/Makefile.in b/libraries/edje/doc/Makefile.in
index b821675..d88c39e 100644
--- a/libraries/edje/doc/Makefile.in
+++ b/libraries/edje/doc/Makefile.in
@@ -154,8 +154,6 @@ PACKAGE_URL = @PACKAGE_URL@
154PACKAGE_VERSION = @PACKAGE_VERSION@ 154PACKAGE_VERSION = @PACKAGE_VERSION@
155PATH_SEPARATOR = @PATH_SEPARATOR@ 155PATH_SEPARATOR = @PATH_SEPARATOR@
156PKG_CONFIG = @PKG_CONFIG@ 156PKG_CONFIG = @PKG_CONFIG@
157PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
158PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
159PYTHON = @PYTHON@ 157PYTHON = @PYTHON@
160PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ 158PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
161PYTHON_PLATFORM = @PYTHON_PLATFORM@ 159PYTHON_PLATFORM = @PYTHON_PLATFORM@
diff --git a/libraries/edje/edje.spec b/libraries/edje/edje.spec
index d887479..cede72d 100644
--- a/libraries/edje/edje.spec
+++ b/libraries/edje/edje.spec
@@ -4,7 +4,7 @@
4 4
5Summary: Complex Graphical Design/Layout Engine 5Summary: Complex Graphical Design/Layout Engine
6Name: edje 6Name: edje
7Version: 1.1.0 7Version: 1.1.99.67344
8Release: %{_rel} 8Release: %{_rel}
9License: BSD 9License: BSD
10Group: System Environment/Libraries 10Group: System Environment/Libraries
@@ -81,8 +81,8 @@ test "x$RPM_BUILD_ROOT" != "x/" && rm -rf $RPM_BUILD_ROOT
81 81
82%files devel 82%files devel
83%defattr(-, root, root) 83%defattr(-, root, root)
84%doc doc/html
85%{_libdir}/*.so 84%{_libdir}/*.so
85%{_libdir}/edje/modules/multisense_factory/*/module.*
86%{_libdir}/*.la 86%{_libdir}/*.la
87%{_libdir}/*.a 87%{_libdir}/*.a
88%{_libdir}/pkgconfig/* 88%{_libdir}/pkgconfig/*
diff --git a/libraries/edje/edje.spec.in b/libraries/edje/edje.spec.in
index be7069c..a05e8a3 100644
--- a/libraries/edje/edje.spec.in
+++ b/libraries/edje/edje.spec.in
@@ -81,8 +81,8 @@ test "x$RPM_BUILD_ROOT" != "x/" && rm -rf $RPM_BUILD_ROOT
81 81
82%files devel 82%files devel
83%defattr(-, root, root) 83%defattr(-, root, root)
84%doc doc/html
85%{_libdir}/*.so 84%{_libdir}/*.so
85%{_libdir}/edje/modules/multisense_factory/*/module.*
86%{_libdir}/*.la 86%{_libdir}/*.la
87%{_libdir}/*.a 87%{_libdir}/*.a
88%{_libdir}/pkgconfig/* 88%{_libdir}/pkgconfig/*
diff --git a/libraries/edje/ltmain.sh b/libraries/edje/ltmain.sh
index fa4b1e1..7ed280b 100755
--- a/libraries/edje/ltmain.sh
+++ b/libraries/edje/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-2ubuntu3 68# $progname: (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
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-2ubuntu3" 76VERSION="2.2.6b Debian-2.2.6b-2ubuntu1"
77TIMESTAMP="" 77TIMESTAMP=""
78package_revision=1.3017 78package_revision=1.3017
79 79
diff --git a/libraries/edje/m4/libtool.m4 b/libraries/edje/m4/libtool.m4
index 6e86e5b..a3fee53 100644
--- a/libraries/edje/m4/libtool.m4
+++ b/libraries/edje/m4/libtool.m4
@@ -380,12 +380,12 @@ m4_define([lt_decl_dquote_varnames],
380# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) 380# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...])
381# --------------------------------------------------- 381# ---------------------------------------------------
382m4_define([lt_decl_varnames_tagged], 382m4_define([lt_decl_varnames_tagged],
383[_$0(m4_quote(m4_default([$1], [[, ]])), 383[m4_assert([$# <= 2])dnl
384 m4_quote(m4_if([$2], [], 384_$0(m4_quote(m4_default([$1], [[, ]])),
385 m4_quote(lt_decl_tag_varnames), 385 m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]),
386 m4_quote(m4_shift($@)))), 386 m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))])
387 m4_split(m4_normalize(m4_quote(_LT_TAGS))))]) 387m4_define([_lt_decl_varnames_tagged],
388m4_define([_lt_decl_varnames_tagged], [lt_combine([$1], [$2], [_], $3)]) 388[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])])
389 389
390 390
391# lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) 391# lt_decl_all_varnames([SEPARATOR], [VARNAME1...])
@@ -945,10 +945,10 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
945 _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; 945 _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
946 darwin1.*) 946 darwin1.*)
947 _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 947 _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
948 darwin*) # darwin 5.x on 948 darwin*) # darwin 5.x on
949 # if running on 10.5 or later, the deployment target defaults 949 # if running on 10.5 or later, the deployment target defaults
950 # to the OS version, if on x86, and 10.4, the deployment 950 # to the OS version, if on x86, and 10.4, the deployment
951 # target defaults to 10.4. Don't you love it? 951 # target defaults to 10.4. Don't you love it?
952 case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 952 case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
953 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) 953 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*)
954 _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; 954 _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
@@ -990,7 +990,11 @@ m4_defun([_LT_DARWIN_LINKER_FEATURES],
990 _LT_TAGVAR(whole_archive_flag_spec, $1)='' 990 _LT_TAGVAR(whole_archive_flag_spec, $1)=''
991 _LT_TAGVAR(link_all_deplibs, $1)=yes 991 _LT_TAGVAR(link_all_deplibs, $1)=yes
992 _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" 992 _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined"
993 if test "$GCC" = "yes"; then 993 case $cc_basename in
994 ifort*) _lt_dar_can_shared=yes ;;
995 *) _lt_dar_can_shared=$GCC ;;
996 esac
997 if test "$_lt_dar_can_shared" = "yes"; then
994 output_verbose_link_cmd=echo 998 output_verbose_link_cmd=echo
995 _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" 999 _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
996 _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" 1000 _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
@@ -1512,7 +1516,7 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
1512 lt_cv_sys_max_cmd_len=-1; 1516 lt_cv_sys_max_cmd_len=-1;
1513 ;; 1517 ;;
1514 1518
1515 cygwin* | mingw*) 1519 cygwin* | mingw* | cegcc*)
1516 # On Win9x/ME, this test blows up -- it succeeds, but takes 1520 # On Win9x/ME, this test blows up -- it succeeds, but takes
1517 # about 5 minutes as the teststring grows exponentially. 1521 # about 5 minutes as the teststring grows exponentially.
1518 # Worse, since 9x/ME are not pre-emptively multitasking, 1522 # Worse, since 9x/ME are not pre-emptively multitasking,
@@ -1680,10 +1684,6 @@ else
1680# endif 1684# endif
1681#endif 1685#endif
1682 1686
1683#ifdef __cplusplus
1684extern "C" void exit (int);
1685#endif
1686
1687void fnord() { int i=42;} 1687void fnord() { int i=42;}
1688int main () 1688int main ()
1689{ 1689{
@@ -1699,7 +1699,7 @@ int main ()
1699 else 1699 else
1700 puts (dlerror ()); 1700 puts (dlerror ());
1701 1701
1702 exit (status); 1702 return status;
1703}] 1703}]
1704_LT_EOF 1704_LT_EOF
1705 if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then 1705 if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then
@@ -1738,7 +1738,7 @@ else
1738 lt_cv_dlopen_self=yes 1738 lt_cv_dlopen_self=yes
1739 ;; 1739 ;;
1740 1740
1741 mingw* | pw32*) 1741 mingw* | pw32* | cegcc*)
1742 lt_cv_dlopen="LoadLibrary" 1742 lt_cv_dlopen="LoadLibrary"
1743 lt_cv_dlopen_libs= 1743 lt_cv_dlopen_libs=
1744 ;; 1744 ;;
@@ -2035,6 +2035,7 @@ m4_defun([_LT_SYS_DYNAMIC_LINKER],
2035[AC_REQUIRE([AC_CANONICAL_HOST])dnl 2035[AC_REQUIRE([AC_CANONICAL_HOST])dnl
2036m4_require([_LT_DECL_EGREP])dnl 2036m4_require([_LT_DECL_EGREP])dnl
2037m4_require([_LT_FILEUTILS_DEFAULTS])dnl 2037m4_require([_LT_FILEUTILS_DEFAULTS])dnl
2038m4_require([_LT_DECL_OBJDUMP])dnl
2038m4_require([_LT_DECL_SED])dnl 2039m4_require([_LT_DECL_SED])dnl
2039AC_MSG_CHECKING([dynamic linker characteristics]) 2040AC_MSG_CHECKING([dynamic linker characteristics])
2040m4_if([$1], 2041m4_if([$1],
@@ -2199,14 +2200,14 @@ bsdi[[45]]*)
2199 # libtool to hard-code these into programs 2200 # libtool to hard-code these into programs
2200 ;; 2201 ;;
2201 2202
2202cygwin* | mingw* | pw32*) 2203cygwin* | mingw* | pw32* | cegcc*)
2203 version_type=windows 2204 version_type=windows
2204 shrext_cmds=".dll" 2205 shrext_cmds=".dll"
2205 need_version=no 2206 need_version=no
2206 need_lib_prefix=no 2207 need_lib_prefix=no
2207 2208
2208 case $GCC,$host_os in 2209 case $GCC,$host_os in
2209 yes,cygwin* | yes,mingw* | yes,pw32*) 2210 yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
2210 library_names_spec='$libname.dll.a' 2211 library_names_spec='$libname.dll.a'
2211 # DLL is installed to $(libdir)/../bin by postinstall_cmds 2212 # DLL is installed to $(libdir)/../bin by postinstall_cmds
2212 postinstall_cmds='base_file=`basename \${file}`~ 2213 postinstall_cmds='base_file=`basename \${file}`~
@@ -2229,7 +2230,7 @@ cygwin* | mingw* | pw32*)
2229 soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' 2230 soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
2230 sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" 2231 sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
2231 ;; 2232 ;;
2232 mingw*) 2233 mingw* | cegcc*)
2233 # MinGW DLLs use traditional 'lib' prefix 2234 # MinGW DLLs use traditional 'lib' prefix
2234 soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' 2235 soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
2235 sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` 2236 sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
@@ -2444,7 +2445,7 @@ linux*oldld* | linux*aout* | linux*coff*)
2444 ;; 2445 ;;
2445 2446
2446# This must be Linux ELF. 2447# This must be Linux ELF.
2447linux* | k*bsd*-gnu) 2448linux* | k*bsd*-gnu | kopensolaris*-gnu)
2448 version_type=linux 2449 version_type=linux
2449 need_lib_prefix=no 2450 need_lib_prefix=no
2450 need_version=no 2451 need_version=no
@@ -2667,7 +2668,7 @@ tpf*)
2667 version_type=linux 2668 version_type=linux
2668 need_lib_prefix=no 2669 need_lib_prefix=no
2669 need_version=no 2670 need_version=no
2670 library_name_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' 2671 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
2671 shlibpath_var=LD_LIBRARY_PATH 2672 shlibpath_var=LD_LIBRARY_PATH
2672 shlibpath_overrides_runpath=no 2673 shlibpath_overrides_runpath=no
2673 hardcode_into_libs=yes 2674 hardcode_into_libs=yes
@@ -2691,7 +2692,7 @@ variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
2691if test "$GCC" = yes; then 2692if test "$GCC" = yes; then
2692 variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" 2693 variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
2693fi 2694fi
2694 2695
2695if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then 2696if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
2696 sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" 2697 sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
2697fi 2698fi
@@ -2968,6 +2969,7 @@ _LT_DECL([], [reload_cmds], [2])dnl
2968# -- PORTME fill in with the dynamic library characteristics 2969# -- PORTME fill in with the dynamic library characteristics
2969m4_defun([_LT_CHECK_MAGIC_METHOD], 2970m4_defun([_LT_CHECK_MAGIC_METHOD],
2970[m4_require([_LT_DECL_EGREP]) 2971[m4_require([_LT_DECL_EGREP])
2972m4_require([_LT_DECL_OBJDUMP])
2971AC_CACHE_CHECK([how to recognize dependent libraries], 2973AC_CACHE_CHECK([how to recognize dependent libraries],
2972lt_cv_deplibs_check_method, 2974lt_cv_deplibs_check_method,
2973[lt_cv_file_magic_cmd='$MAGIC_CMD' 2975[lt_cv_file_magic_cmd='$MAGIC_CMD'
@@ -3018,6 +3020,12 @@ mingw* | pw32*)
3018 fi 3020 fi
3019 ;; 3021 ;;
3020 3022
3023cegcc)
3024 # use the weaker test based on 'objdump'. See mingw*.
3025 lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
3026 lt_cv_file_magic_cmd='$OBJDUMP -f'
3027 ;;
3028
3021darwin* | rhapsody*) 3029darwin* | rhapsody*)
3022 lt_cv_deplibs_check_method=pass_all 3030 lt_cv_deplibs_check_method=pass_all
3023 ;; 3031 ;;
@@ -3076,7 +3084,7 @@ irix5* | irix6* | nonstopux*)
3076 ;; 3084 ;;
3077 3085
3078# This must be Linux ELF. 3086# This must be Linux ELF.
3079linux* | k*bsd*-gnu) 3087linux* | k*bsd*-gnu | kopensolaris*-gnu)
3080 lt_cv_deplibs_check_method=pass_all 3088 lt_cv_deplibs_check_method=pass_all
3081 ;; 3089 ;;
3082 3090
@@ -3329,7 +3337,7 @@ case $host_os in
3329aix*) 3337aix*)
3330 symcode='[[BCDT]]' 3338 symcode='[[BCDT]]'
3331 ;; 3339 ;;
3332cygwin* | mingw* | pw32*) 3340cygwin* | mingw* | pw32* | cegcc*)
3333 symcode='[[ABCDGISTW]]' 3341 symcode='[[ABCDGISTW]]'
3334 ;; 3342 ;;
3335hpux*) 3343hpux*)
@@ -3575,7 +3583,7 @@ m4_if([$1], [CXX], [
3575 beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) 3583 beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
3576 # PIC is the default for these OSes. 3584 # PIC is the default for these OSes.
3577 ;; 3585 ;;
3578 mingw* | cygwin* | os2* | pw32*) 3586 mingw* | cygwin* | os2* | pw32* | cegcc*)
3579 # This hack is so that the source file can tell whether it is being 3587 # This hack is so that the source file can tell whether it is being
3580 # built for inclusion in a dll (and should export symbols for example). 3588 # built for inclusion in a dll (and should export symbols for example).
3581 # Although the cygwin gcc ignores -fPIC, still need this for old-style 3589 # Although the cygwin gcc ignores -fPIC, still need this for old-style
@@ -3602,10 +3610,11 @@ m4_if([$1], [CXX], [
3602 fi 3610 fi
3603 ;; 3611 ;;
3604 hpux*) 3612 hpux*)
3605 # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but 3613 # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
3606 # not for PA HP-UX. 3614 # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
3615 # sets the default TLS model and affects inlining.
3607 case $host_cpu in 3616 case $host_cpu in
3608 hppa*64*|ia64*) 3617 hppa*64*)
3609 ;; 3618 ;;
3610 *) 3619 *)
3611 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' 3620 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
@@ -3696,19 +3705,26 @@ m4_if([$1], [CXX], [
3696 ;; 3705 ;;
3697 esac 3706 esac
3698 ;; 3707 ;;
3699 linux* | k*bsd*-gnu) 3708 linux* | k*bsd*-gnu | kopensolaris*-gnu)
3700 case $cc_basename in 3709 case $cc_basename in
3701 KCC*) 3710 KCC*)
3702 # KAI C++ Compiler 3711 # KAI C++ Compiler
3703 _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' 3712 _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
3704 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' 3713 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
3705 ;; 3714 ;;
3706 icpc* | ecpc* ) 3715 ecpc* )
3707 # Intel C++ 3716 # old Intel C++ for x86_64 which still supported -KPIC.
3708 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 3717 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
3709 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' 3718 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
3710 _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' 3719 _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
3711 ;; 3720 ;;
3721 icpc* )
3722 # Intel C++, used to be incompatible with GCC.
3723 # ICC 10 doesn't accept -KPIC any more.
3724 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
3725 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
3726 _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
3727 ;;
3712 pgCC* | pgcpp*) 3728 pgCC* | pgcpp*)
3713 # Portland Group C++ compiler 3729 # Portland Group C++ compiler
3714 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 3730 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
@@ -3874,7 +3890,7 @@ m4_if([$1], [CXX], [
3874 # PIC is the default for these OSes. 3890 # PIC is the default for these OSes.
3875 ;; 3891 ;;
3876 3892
3877 mingw* | cygwin* | pw32* | os2*) 3893 mingw* | cygwin* | pw32* | os2* | cegcc*)
3878 # This hack is so that the source file can tell whether it is being 3894 # This hack is so that the source file can tell whether it is being
3879 # built for inclusion in a dll (and should export symbols for example). 3895 # built for inclusion in a dll (and should export symbols for example).
3880 # Although the cygwin gcc ignores -fPIC, still need this for old-style 3896 # Although the cygwin gcc ignores -fPIC, still need this for old-style
@@ -3890,10 +3906,11 @@ m4_if([$1], [CXX], [
3890 ;; 3906 ;;
3891 3907
3892 hpux*) 3908 hpux*)
3893 # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but 3909 # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
3894 # not for PA HP-UX. 3910 # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
3911 # sets the default TLS model and affects inlining.
3895 case $host_cpu in 3912 case $host_cpu in
3896 hppa*64*|ia64*) 3913 hppa*64*)
3897 # +Z the default 3914 # +Z the default
3898 ;; 3915 ;;
3899 *) 3916 *)
@@ -3943,7 +3960,7 @@ m4_if([$1], [CXX], [
3943 fi 3960 fi
3944 ;; 3961 ;;
3945 3962
3946 mingw* | cygwin* | pw32* | os2*) 3963 mingw* | cygwin* | pw32* | os2* | cegcc*)
3947 # This hack is so that the source file can tell whether it is being 3964 # This hack is so that the source file can tell whether it is being
3948 # built for inclusion in a dll (and should export symbols for example). 3965 # built for inclusion in a dll (and should export symbols for example).
3949 m4_if([$1], [GCJ], [], 3966 m4_if([$1], [GCJ], [],
@@ -3972,13 +3989,27 @@ m4_if([$1], [CXX], [
3972 _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' 3989 _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
3973 ;; 3990 ;;
3974 3991
3975 linux* | k*bsd*-gnu) 3992 linux* | k*bsd*-gnu | kopensolaris*-gnu)
3976 case $cc_basename in 3993 case $cc_basename in
3977 icc* | ecc* | ifort*) 3994 # old Intel for x86_64 which still supported -KPIC.
3995 ecc*)
3978 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 3996 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
3979 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' 3997 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
3980 _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' 3998 _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
3981 ;; 3999 ;;
4000 # icc used to be incompatible with GCC.
4001 # ICC 10 doesn't accept -KPIC any more.
4002 icc* | ifort*)
4003 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4004 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
4005 _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
4006 ;;
4007 # Lahey Fortran 8.1.
4008 lf95*)
4009 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4010 _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared'
4011 _LT_TAGVAR(lt_prog_compiler_static, $1)='--static'
4012 ;;
3982 pgcc* | pgf77* | pgf90* | pgf95*) 4013 pgcc* | pgf77* | pgf90* | pgf95*)
3983 # Portland Group compilers (*not* the Pentium gcc compiler, 4014 # Portland Group compilers (*not* the Pentium gcc compiler,
3984 # which looks to be a dead project) 4015 # which looks to be a dead project)
@@ -4160,7 +4191,7 @@ m4_if([$1], [CXX], [
4160 pw32*) 4191 pw32*)
4161 _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" 4192 _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
4162 ;; 4193 ;;
4163 cygwin* | mingw*) 4194 cygwin* | mingw* | cegcc*)
4164 _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' 4195 _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
4165 ;; 4196 ;;
4166 linux* | k*bsd*-gnu) 4197 linux* | k*bsd*-gnu)
@@ -4215,7 +4246,7 @@ dnl Note also adjust exclude_expsyms for C++ above.
4215 extract_expsyms_cmds= 4246 extract_expsyms_cmds=
4216 4247
4217 case $host_os in 4248 case $host_os in
4218 cygwin* | mingw* | pw32*) 4249 cygwin* | mingw* | pw32* | cegcc*)
4219 # FIXME: the MSVC++ port hasn't been tested in a loooong time 4250 # FIXME: the MSVC++ port hasn't been tested in a loooong time
4220 # When not using gcc, we currently assume that we are using 4251 # When not using gcc, we currently assume that we are using
4221 # Microsoft Visual C++. 4252 # Microsoft Visual C++.
@@ -4230,6 +4261,9 @@ dnl Note also adjust exclude_expsyms for C++ above.
4230 openbsd*) 4261 openbsd*)
4231 with_gnu_ld=no 4262 with_gnu_ld=no
4232 ;; 4263 ;;
4264 linux* | k*bsd*-gnu)
4265 _LT_TAGVAR(link_all_deplibs, $1)=no
4266 ;;
4233 esac 4267 esac
4234 4268
4235 _LT_TAGVAR(ld_shlibs, $1)=yes 4269 _LT_TAGVAR(ld_shlibs, $1)=yes
@@ -4251,6 +4285,7 @@ dnl Note also adjust exclude_expsyms for C++ above.
4251 fi 4285 fi
4252 supports_anon_versioning=no 4286 supports_anon_versioning=no
4253 case `$LD -v 2>&1` in 4287 case `$LD -v 2>&1` in
4288 *GNU\ gold*) supports_anon_versioning=yes ;;
4254 *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 4289 *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11
4255 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... 4290 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
4256 *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... 4291 *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
@@ -4302,7 +4337,7 @@ _LT_EOF
4302 fi 4337 fi
4303 ;; 4338 ;;
4304 4339
4305 cygwin* | mingw* | pw32*) 4340 cygwin* | mingw* | pw32* | cegcc*)
4306 # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, 4341 # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
4307 # as there is no search path for DLLs. 4342 # as there is no search path for DLLs.
4308 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' 4343 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
@@ -4342,7 +4377,7 @@ _LT_EOF
4342 _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' 4377 _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
4343 ;; 4378 ;;
4344 4379
4345 gnu* | linux* | tpf* | k*bsd*-gnu) 4380 gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
4346 tmp_diet=no 4381 tmp_diet=no
4347 if test "$host_os" = linux-dietlibc; then 4382 if test "$host_os" = linux-dietlibc; then
4348 case $cc_basename in 4383 case $cc_basename in
@@ -4368,6 +4403,9 @@ _LT_EOF
4368 tmp_addflag=' -i_dynamic -nofor_main' ;; 4403 tmp_addflag=' -i_dynamic -nofor_main' ;;
4369 ifc* | ifort*) # Intel Fortran compiler 4404 ifc* | ifort*) # Intel Fortran compiler
4370 tmp_addflag=' -nofor_main' ;; 4405 tmp_addflag=' -nofor_main' ;;
4406 lf95*) # Lahey Fortran 8.1
4407 _LT_TAGVAR(whole_archive_flag_spec, $1)=
4408 tmp_sharedflag='--shared' ;;
4371 xl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) 4409 xl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below)
4372 tmp_sharedflag='-qmkshrobj' 4410 tmp_sharedflag='-qmkshrobj'
4373 tmp_addflag= ;; 4411 tmp_addflag= ;;
@@ -4600,6 +4638,7 @@ _LT_EOF
4600 fi 4638 fi
4601 fi 4639 fi
4602 4640
4641 _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall'
4603 # It seems that -bexpall does not export symbols beginning with 4642 # It seems that -bexpall does not export symbols beginning with
4604 # underscore (_), so it is better to generate a list of symbols to export. 4643 # underscore (_), so it is better to generate a list of symbols to export.
4605 _LT_TAGVAR(always_export_symbols, $1)=yes 4644 _LT_TAGVAR(always_export_symbols, $1)=yes
@@ -4654,7 +4693,7 @@ _LT_EOF
4654 _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic 4693 _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic
4655 ;; 4694 ;;
4656 4695
4657 cygwin* | mingw* | pw32*) 4696 cygwin* | mingw* | pw32* | cegcc*)
4658 # When not using gcc, we currently assume that we are using 4697 # When not using gcc, we currently assume that we are using
4659 # Microsoft Visual C++. 4698 # Microsoft Visual C++.
4660 # hardcode_libdir_flag_spec is actually meaningless, as there is 4699 # hardcode_libdir_flag_spec is actually meaningless, as there is
@@ -4758,7 +4797,7 @@ _LT_EOF
4758 _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' 4797 _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
4759 ;; 4798 ;;
4760 ia64*) 4799 ia64*)
4761 _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' 4800 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
4762 ;; 4801 ;;
4763 *) 4802 *)
4764 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' 4803 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
@@ -5543,6 +5582,7 @@ if test "$_lt_caught_CXX_error" != yes; then
5543 fi 5582 fi
5544 fi 5583 fi
5545 5584
5585 _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall'
5546 # It seems that -bexpall does not export symbols beginning with 5586 # It seems that -bexpall does not export symbols beginning with
5547 # underscore (_), so it is better to generate a list of symbols to 5587 # underscore (_), so it is better to generate a list of symbols to
5548 # export. 5588 # export.
@@ -5601,7 +5641,7 @@ if test "$_lt_caught_CXX_error" != yes; then
5601 esac 5641 esac
5602 ;; 5642 ;;
5603 5643
5604 cygwin* | mingw* | pw32*) 5644 cygwin* | mingw* | pw32* | cegcc*)
5605 # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, 5645 # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
5606 # as there is no search path for DLLs. 5646 # as there is no search path for DLLs.
5607 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' 5647 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
@@ -5821,7 +5861,7 @@ if test "$_lt_caught_CXX_error" != yes; then
5821 _LT_TAGVAR(inherit_rpath, $1)=yes 5861 _LT_TAGVAR(inherit_rpath, $1)=yes
5822 ;; 5862 ;;
5823 5863
5824 linux* | k*bsd*-gnu) 5864 linux* | k*bsd*-gnu | kopensolaris*-gnu)
5825 case $cc_basename in 5865 case $cc_basename in
5826 KCC*) 5866 KCC*)
5827 # Kuck and Associates, Inc. (KAI) C++ Compiler 5867 # Kuck and Associates, Inc. (KAI) C++ Compiler
@@ -6986,6 +7026,18 @@ AC_SUBST([GREP])
6986]) 7026])
6987 7027
6988 7028
7029# _LT_DECL_OBJDUMP
7030# --------------
7031# If we don't have a new enough Autoconf to choose the best objdump
7032# available, choose the one first in the user's PATH.
7033m4_defun([_LT_DECL_OBJDUMP],
7034[AC_CHECK_TOOL(OBJDUMP, objdump, false)
7035test -z "$OBJDUMP" && OBJDUMP=objdump
7036_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper])
7037AC_SUBST([OBJDUMP])
7038])
7039
7040
6989# _LT_DECL_SED 7041# _LT_DECL_SED
6990# ------------ 7042# ------------
6991# Check for a fully-functional sed program, that truncates 7043# Check for a fully-functional sed program, that truncates
diff --git a/libraries/edje/m4/ltoptions.m4 b/libraries/edje/m4/ltoptions.m4
index e970119..34151a3 100644
--- a/libraries/edje/m4/ltoptions.m4
+++ b/libraries/edje/m4/ltoptions.m4
@@ -125,7 +125,7 @@ LT_OPTION_DEFINE([LT_INIT], [win32-dll],
125[enable_win32_dll=yes 125[enable_win32_dll=yes
126 126
127case $host in 127case $host in
128*-*-cygwin* | *-*-mingw* | *-*-pw32*) 128*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*)
129 AC_CHECK_TOOL(AS, as, false) 129 AC_CHECK_TOOL(AS, as, false)
130 AC_CHECK_TOOL(DLLTOOL, dlltool, false) 130 AC_CHECK_TOOL(DLLTOOL, dlltool, false)
131 AC_CHECK_TOOL(OBJDUMP, objdump, false) 131 AC_CHECK_TOOL(OBJDUMP, objdump, false)
diff --git a/libraries/edje/sha1-for-source.txt b/libraries/edje/sha1-for-source.txt
deleted file mode 100644
index ca5daa9..0000000
--- a/libraries/edje/sha1-for-source.txt
+++ /dev/null
@@ -1 +0,0 @@
10753a3ba57908d7c3f0e5ab4fb437c24ed1b5dce
diff --git a/libraries/edje/src/Makefile.in b/libraries/edje/src/Makefile.in
index 532d75b..fc05386 100644
--- a/libraries/edje/src/Makefile.in
+++ b/libraries/edje/src/Makefile.in
@@ -193,8 +193,6 @@ PACKAGE_URL = @PACKAGE_URL@
193PACKAGE_VERSION = @PACKAGE_VERSION@ 193PACKAGE_VERSION = @PACKAGE_VERSION@
194PATH_SEPARATOR = @PATH_SEPARATOR@ 194PATH_SEPARATOR = @PATH_SEPARATOR@
195PKG_CONFIG = @PKG_CONFIG@ 195PKG_CONFIG = @PKG_CONFIG@
196PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
197PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
198PYTHON = @PYTHON@ 196PYTHON = @PYTHON@
199PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ 197PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
200PYTHON_PLATFORM = @PYTHON_PLATFORM@ 198PYTHON_PLATFORM = @PYTHON_PLATFORM@
diff --git a/libraries/edje/src/bin/Makefile.in b/libraries/edje/src/bin/Makefile.in
index 877bcb2..07bf025 100644
--- a/libraries/edje/src/bin/Makefile.in
+++ b/libraries/edje/src/bin/Makefile.in
@@ -291,8 +291,6 @@ PACKAGE_URL = @PACKAGE_URL@
291PACKAGE_VERSION = @PACKAGE_VERSION@ 291PACKAGE_VERSION = @PACKAGE_VERSION@
292PATH_SEPARATOR = @PATH_SEPARATOR@ 292PATH_SEPARATOR = @PATH_SEPARATOR@
293PKG_CONFIG = @PKG_CONFIG@ 293PKG_CONFIG = @PKG_CONFIG@
294PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
295PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
296PYTHON = @PYTHON@ 294PYTHON = @PYTHON@
297PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ 295PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
298PYTHON_PLATFORM = @PYTHON_PLATFORM@ 296PYTHON_PLATFORM = @PYTHON_PLATFORM@
diff --git a/libraries/edje/src/bin/edje_cc.h b/libraries/edje/src/bin/edje_cc.h
index bcd31a1..d0c6d22 100644
--- a/libraries/edje/src/bin/edje_cc.h
+++ b/libraries/edje/src/bin/edje_cc.h
@@ -138,6 +138,7 @@ struct _Edje_Part_Parser
138/* global fn calls */ 138/* global fn calls */
139void data_setup(void); 139void data_setup(void);
140void data_write(void); 140void data_write(void);
141void data_queue_group_lookup(const char *name, Edje_Part *part);
141void data_queue_part_lookup(Edje_Part_Collection *pc, const char *name, int *dest); 142void data_queue_part_lookup(Edje_Part_Collection *pc, const char *name, int *dest);
142void data_queue_copied_part_lookup(Edje_Part_Collection *pc, int *src, int *dest); 143void data_queue_copied_part_lookup(Edje_Part_Collection *pc, int *src, int *dest);
143void data_queue_program_lookup(Edje_Part_Collection *pc, const char *name, int *dest); 144void data_queue_program_lookup(Edje_Part_Collection *pc, const char *name, int *dest);
diff --git a/libraries/edje/src/bin/edje_cc_handlers.c b/libraries/edje/src/bin/edje_cc_handlers.c
index 8bfc262..f74fa12 100644
--- a/libraries/edje/src/bin/edje_cc_handlers.c
+++ b/libraries/edje/src/bin/edje_cc_handlers.c
@@ -172,6 +172,7 @@ static void st_collections_group_parts_part_description_visible(void);
172static void st_collections_group_parts_part_description_align(void); 172static void st_collections_group_parts_part_description_align(void);
173static void st_collections_group_parts_part_description_fixed(void); 173static void st_collections_group_parts_part_description_fixed(void);
174static void st_collections_group_parts_part_description_min(void); 174static void st_collections_group_parts_part_description_min(void);
175static void st_collections_group_parts_part_description_minmul(void);
175static void st_collections_group_parts_part_description_max(void); 176static void st_collections_group_parts_part_description_max(void);
176static void st_collections_group_parts_part_description_step(void); 177static void st_collections_group_parts_part_description_step(void);
177static void st_collections_group_parts_part_description_aspect(void); 178static void st_collections_group_parts_part_description_aspect(void);
@@ -261,12 +262,9 @@ static void st_collections_group_programs_program_after(void);
261static void st_collections_group_programs_program_api(void); 262static void st_collections_group_programs_program_api(void);
262 263
263static void ob_collections_group_programs_program_script(void); 264static void ob_collections_group_programs_program_script(void);
264
265#ifdef ENABLE_MULTISENSE
266static void st_collections_group_sound_sample_name(void); 265static void st_collections_group_sound_sample_name(void);
267static void st_collections_group_sound_sample_source(void); 266static void st_collections_group_sound_sample_source(void);
268static void st_collections_group_sound_tone(void); 267static void st_collections_group_sound_tone(void);
269#endif
270 268
271/*****/ 269/*****/
272 270
@@ -305,14 +303,13 @@ New_Statement_Handler statement_handlers[] =
305 {"collections.color_classes.color_class.color", st_color_class_color}, /* dup */ 303 {"collections.color_classes.color_class.color", st_color_class_color}, /* dup */
306 {"collections.color_classes.color_class.color2", st_color_class_color2}, /* dup */ 304 {"collections.color_classes.color_class.color2", st_color_class_color2}, /* dup */
307 {"collections.color_classes.color_class.color3", st_color_class_color3}, /* dup */ 305 {"collections.color_classes.color_class.color3", st_color_class_color3}, /* dup */
308#ifdef ENABLE_MULTISENSE 306
309 {"collections.sounds.sample.name", st_collections_group_sound_sample_name}, 307 {"collections.sounds.sample.name", st_collections_group_sound_sample_name},
310 {"collections.sounds.sample.source", st_collections_group_sound_sample_source}, 308 {"collections.sounds.sample.source", st_collections_group_sound_sample_source},
311 {"collections.group.sounds.sample.name", st_collections_group_sound_sample_name}, /* dup */ 309 {"collections.group.sounds.sample.name", st_collections_group_sound_sample_name}, /* dup */
312 {"collections.group.sounds.sample.source", st_collections_group_sound_sample_source}, /* dup */ 310 {"collections.group.sounds.sample.source", st_collections_group_sound_sample_source}, /* dup */
313 {"collections.sounds.tone", st_collections_group_sound_tone}, 311 {"collections.sounds.tone", st_collections_group_sound_tone},
314 {"collections.group.sounds.tone", st_collections_group_sound_tone}, /* dup */ 312 {"collections.group.sounds.tone", st_collections_group_sound_tone}, /* dup */
315#endif
316 {"collections.group.name", st_collections_group_name}, 313 {"collections.group.name", st_collections_group_name},
317 {"collections.group.inherit", st_collections_group_inherit}, 314 {"collections.group.inherit", st_collections_group_inherit},
318 {"collections.group.script_only", st_collections_group_script_only}, 315 {"collections.group.script_only", st_collections_group_script_only},
@@ -438,6 +435,7 @@ New_Statement_Handler statement_handlers[] =
438 {"collections.group.parts.part.description.align", st_collections_group_parts_part_description_align}, 435 {"collections.group.parts.part.description.align", st_collections_group_parts_part_description_align},
439 {"collections.group.parts.part.description.fixed", st_collections_group_parts_part_description_fixed}, 436 {"collections.group.parts.part.description.fixed", st_collections_group_parts_part_description_fixed},
440 {"collections.group.parts.part.description.min", st_collections_group_parts_part_description_min}, 437 {"collections.group.parts.part.description.min", st_collections_group_parts_part_description_min},
438 {"collections.group.parts.part.description.minmul", st_collections_group_parts_part_description_minmul},
441 {"collections.group.parts.part.description.max", st_collections_group_parts_part_description_max}, 439 {"collections.group.parts.part.description.max", st_collections_group_parts_part_description_max},
442 {"collections.group.parts.part.description.step", st_collections_group_parts_part_description_step}, 440 {"collections.group.parts.part.description.step", st_collections_group_parts_part_description_step},
443 {"collections.group.parts.part.description.aspect", st_collections_group_parts_part_description_aspect}, 441 {"collections.group.parts.part.description.aspect", st_collections_group_parts_part_description_aspect},
@@ -677,14 +675,13 @@ New_Object_Handler object_handlers[] =
677 {"collections.styles.style", ob_styles_style}, /* dup */ 675 {"collections.styles.style", ob_styles_style}, /* dup */
678 {"collections.color_classes", NULL}, /* dup */ 676 {"collections.color_classes", NULL}, /* dup */
679 {"collections.color_classes.color_class", ob_color_class}, /* dup */ 677 {"collections.color_classes.color_class", ob_color_class}, /* dup */
680#ifdef ENABLE_MULTISENSE
681 {"collections.sounds", NULL}, 678 {"collections.sounds", NULL},
682 {"collections.group.sounds", NULL}, /* dup */ 679 {"collections.group.sounds", NULL}, /* dup */
683 {"collections.sounds.sample", NULL}, 680 {"collections.sounds.sample", NULL},
684 {"collections.group.sounds.sample", NULL}, /* dup */ 681 {"collections.group.sounds.sample", NULL}, /* dup */
685#endif
686 {"collections.group", ob_collections_group}, 682 {"collections.group", ob_collections_group},
687 {"collections.group.data", NULL}, 683 {"collections.group.data", NULL},
684 {"collections.group.limits", NULL},
688 {"collections.group.script", ob_collections_group_script}, 685 {"collections.group.script", ob_collections_group_script},
689 {"collections.group.lua_script", ob_collections_group_lua_script}, 686 {"collections.group.lua_script", ob_collections_group_lua_script},
690 {"collections.group.externals", NULL}, /* dup */ 687 {"collections.group.externals", NULL}, /* dup */
@@ -1836,12 +1833,6 @@ st_styles_style_tag(void)
1836 stl->tags = eina_list_append(stl->tags, tag); 1833 stl->tags = eina_list_append(stl->tags, tag);
1837} 1834}
1838 1835
1839#ifdef ENABLE_MULTISENSE
1840/* add to below doc
1841sounds { }
1842 */
1843#endif
1844
1845/** 1836/**
1846 @page edcref 1837 @page edcref
1847 @block 1838 @block
@@ -1851,6 +1842,7 @@ sounds { }
1851 .. 1842 ..
1852 group { } 1843 group { }
1853 group { } 1844 group { }
1845 sounds { }
1854 .. 1846 ..
1855 } 1847 }
1856 @description 1848 @description
@@ -1866,8 +1858,7 @@ ob_collections(void)
1866 edje_file->collection = eina_hash_string_small_new(NULL); 1858 edje_file->collection = eina_hash_string_small_new(NULL);
1867} 1859}
1868 1860
1869#ifdef ENABLE_MULTISENSE 1861/**
1870/* * delete space before *
1871 @page edcref 1862 @page edcref
1872 @block 1863 @block
1873 sounds 1864 sounds
@@ -1980,7 +1971,7 @@ st_collections_group_sound_sample_name(void)
1980 1971
1981} 1972}
1982 1973
1983/* * delete space before * 1974/**
1984 @page edcref 1975 @page edcref
1985 @property 1976 @property
1986 source 1977 source
@@ -2016,7 +2007,7 @@ st_collections_group_sound_sample_source(void)
2016 check_arg_count(1); 2007 check_arg_count(1);
2017} 2008}
2018 2009
2019/* * delete space before * 2010/**
2020 @page edcref 2011 @page edcref
2021 @property 2012 @property
2022 tone 2013 tone
@@ -2079,7 +2070,6 @@ st_collections_group_sound_tone(void)
2079 tone->value = value; 2070 tone->value = value;
2080 tone->id = edje_file->sound_dir->tones_count - 1; 2071 tone->id = edje_file->sound_dir->tones_count - 1;
2081} 2072}
2082#endif
2083 2073
2084/** 2074/**
2085 @edcsection{group,Group sub blocks} 2075 @edcsection{group,Group sub blocks}
@@ -2677,14 +2667,14 @@ st_collections_group_orientation(void)
2677 @block 2667 @block
2678 limits 2668 limits
2679 @context 2669 @context
2680 group { 2670 group {
2681 limits { 2671 limits {
2682 vertical: "limit_name" height_barrier; 2672 vertical: "limit_name" height_barrier;
2683 horizontal: "limit_name" width_barrier; 2673 horizontal: "limit_name" width_barrier;
2684 .. 2674 ..
2685 } 2675 }
2686 .. 2676 ..
2687 } 2677 }
2688 .. 2678 ..
2689 @description 2679 @description
2690 This block is used to trigger some signal when the Edje object is resized. 2680 This block is used to trigger some signal when the Edje object is resized.
@@ -2696,10 +2686,10 @@ st_collections_group_orientation(void)
2696 @parameters 2686 @parameters
2697 [name] [height barrier] 2687 [name] [height barrier]
2698 @effect 2688 @effect
2699 It will send a signal: "limit,name,over" when the object is resized and pass 2689 It will send a signal: "limit,name,over" when the object is resized and pass
2700 the limit by growing over it. And it will send: "limit,name,below" when 2690 the limit by growing over it. And it will send: "limit,name,below" when
2701 it pass below that limit. 2691 it pass below that limit.
2702 This limit will be applied on the y absis. 2692 This limit will be applied on the y absis and is expressed in pixels.
2703 @endproperty 2693 @endproperty
2704*/ 2694*/
2705static void 2695static void
@@ -2734,10 +2724,10 @@ st_collections_group_limits_vertical(void)
2734 @parameters 2724 @parameters
2735 [name] [width barrier] 2725 [name] [width barrier]
2736 @effect 2726 @effect
2737 It will send a signal: "limit,name,over" when the object is resized and pass 2727 It will send a signal: "limit,name,over" when the object is resized and pass
2738 the limit by growing over it. And it will send: "limit,name,below" when 2728 the limit by growing over it. And it will send: "limit,name,below" when
2739 it pass below that limit. 2729 it pass below that limit.
2740 This limit will be applied on the x absis. 2730 This limit will be applied on the x absis and is expressed in pixels.
2741 @endproperty 2731 @endproperty
2742*/ 2732*/
2743static void 2733static void
@@ -3224,6 +3214,7 @@ st_collections_group_parts_part_source(void)
3224 3214
3225 //FIXME: validate this somehow (need to decide on the format also) 3215 //FIXME: validate this somehow (need to decide on the format also)
3226 current_part->source = parse_str(0); 3216 current_part->source = parse_str(0);
3217 data_queue_group_lookup(current_part->source, current_part);
3227} 3218}
3228 3219
3229/** 3220/**
@@ -3245,6 +3236,7 @@ st_collections_group_parts_part_source2(void)
3245 3236
3246 //FIXME: validate this somehow (need to decide on the format also) 3237 //FIXME: validate this somehow (need to decide on the format also)
3247 current_part->source2 = parse_str(0); 3238 current_part->source2 = parse_str(0);
3239 data_queue_group_lookup(current_part->source2, current_part);
3248} 3240}
3249 3241
3250/** 3242/**
@@ -3266,6 +3258,7 @@ st_collections_group_parts_part_source3(void)
3266 3258
3267 //FIXME: validate this somehow (need to decide on the format also) 3259 //FIXME: validate this somehow (need to decide on the format also)
3268 current_part->source3 = parse_str(0); 3260 current_part->source3 = parse_str(0);
3261 data_queue_group_lookup(current_part->source3, current_part);
3269} 3262}
3270 3263
3271/** 3264/**
@@ -3287,6 +3280,7 @@ st_collections_group_parts_part_source4(void)
3287 3280
3288 //FIXME: validate this somehow (need to decide on the format also) 3281 //FIXME: validate this somehow (need to decide on the format also)
3289 current_part->source4 = parse_str(0); 3282 current_part->source4 = parse_str(0);
3283 data_queue_group_lookup(current_part->source4, current_part);
3290} 3284}
3291 3285
3292/** 3286/**
@@ -3308,6 +3302,7 @@ st_collections_group_parts_part_source5(void)
3308 3302
3309 //FIXME: validate this somehow (need to decide on the format also) 3303 //FIXME: validate this somehow (need to decide on the format also)
3310 current_part->source5 = parse_str(0); 3304 current_part->source5 = parse_str(0);
3305 data_queue_group_lookup(current_part->source5, current_part);
3311} 3306}
3312 3307
3313/** 3308/**
@@ -3329,6 +3324,7 @@ st_collections_group_parts_part_source6(void)
3329 3324
3330 //FIXME: validate this somehow (need to decide on the format also) 3325 //FIXME: validate this somehow (need to decide on the format also)
3331 current_part->source6 = parse_str(0); 3326 current_part->source6 = parse_str(0);
3327 data_queue_group_lookup(current_part->source6, current_part);
3332} 3328}
3333 3329
3334/** 3330/**
@@ -3439,10 +3435,9 @@ st_collections_group_parts_part_entry_mode(void)
3439 [MODE] 3435 [MODE]
3440 @effect 3436 @effect
3441 Sets the selection mode for a textblock part to one of: 3437 Sets the selection mode for a textblock part to one of:
3442 @li DEFAULT 3438 @li DEFAULT selection mode is what you would expect on any desktop. Press
3443 @li EXPLICIT 3439 mouse, drag and release to end.
3444 DEFAULT selection mode is what you would expect on any desktop. Press 3440 @li EXPLICITmode requires the application
3445 mouse, drag and release to end. EXPLICIT mode requires the application
3446 controlling the edje object has to explicitly begin and end selection 3441 controlling the edje object has to explicitly begin and end selection
3447 modes, and the selection itself is dragable at both ends. 3442 modes, and the selection itself is dragable at both ends.
3448 @endproperty 3443 @endproperty
@@ -3466,11 +3461,9 @@ st_collections_group_parts_part_select_mode(void)
3466 [MODE] 3461 [MODE]
3467 @effect 3462 @effect
3468 Sets the cursor mode for a textblock part to one of: 3463 Sets the cursor mode for a textblock part to one of:
3469 @li UNDER 3464 @li UNDER cursor mode means the cursor will draw below the character pointed
3470 @li BEFORE
3471 UNDER cursor mode means the cursor will draw below the character pointed
3472 at. That's the default. 3465 at. That's the default.
3473 BEFORE cursor mode means the cursor is drawn as a vertical line before 3466 @li BEFORE cursor mode means the cursor is drawn as a vertical line before
3474 the current character, just like many other GUI toolkits handle it. 3467 the current character, just like many other GUI toolkits handle it.
3475 @endproperty 3468 @endproperty
3476*/ 3469*/
@@ -3816,6 +3809,7 @@ static void st_collections_group_parts_part_box_items_item_source(void)
3816 check_arg_count(1); 3809 check_arg_count(1);
3817 3810
3818 current_item->source = parse_str(0); 3811 current_item->source = parse_str(0);
3812 data_queue_group_lookup(current_item->source, current_part);
3819} 3813}
3820 3814
3821/** 3815/**
@@ -4140,6 +4134,9 @@ ob_collections_group_parts_part_description(void)
4140 ed->map.persp_on = 0; 4134 ed->map.persp_on = 0;
4141 ed->persp.zplane = 0; 4135 ed->persp.zplane = 0;
4142 ed->persp.focal = 1000; 4136 ed->persp.focal = 1000;
4137 ed->minmul.have = 1;
4138 ed->minmul.w = FROM_INT(1);
4139 ed->minmul.h = FROM_INT(1);
4143} 4140}
4144 4141
4145/** 4142/**
@@ -4558,6 +4555,27 @@ st_collections_group_parts_part_description_min(void)
4558/** 4555/**
4559 @page edcref 4556 @page edcref
4560 @property 4557 @property
4558 minmul
4559 @parameters
4560 [width multipler] [height multiplier]
4561 @effect
4562 A multiplier FORCIBLY applied to whatever minimum size is only during
4563 minimum size calculation.
4564 @endproperty
4565 @since 1.2
4566*/
4567static void
4568st_collections_group_parts_part_description_minmul(void)
4569{
4570 check_arg_count(2);
4571
4572 current_desc->minmul.w = FROM_DOUBLE(parse_float_range(0, 0, 999999));
4573 current_desc->minmul.h = FROM_DOUBLE(parse_float_range(1, 0, 999999));
4574}
4575
4576/**
4577 @page edcref
4578 @property
4561 max 4579 max
4562 @parameters 4580 @parameters
4563 [width] [height] 4581 [width] [height]
@@ -4605,7 +4623,7 @@ st_collections_group_parts_part_description_step(void)
4605 Normally width and height can be resized to any values independently. 4623 Normally width and height can be resized to any values independently.
4606 The aspect property forces the width to height ratio to be kept between 4624 The aspect property forces the width to height ratio to be kept between
4607 the minimum and maximum set. For example, "1.0 1.0" will increase the 4625 the minimum and maximum set. For example, "1.0 1.0" will increase the
4608 width a pixel for every pixel added to heigh. The default value is 4626 width a pixel for every pixel added to height. The default value is
4609 "0.0 0.0" disabling aspect. 4627 "0.0 0.0" disabling aspect.
4610 @endproperty 4628 @endproperty
4611*/ 4629*/
@@ -4626,7 +4644,7 @@ st_collections_group_parts_part_description_aspect(void)
4626 [DIMENSION] 4644 [DIMENSION]
4627 @effect 4645 @effect
4628 Sets the scope of the "aspect" property to a given dimension. Available 4646 Sets the scope of the "aspect" property to a given dimension. Available
4629 options are BOTH, VERTICAL, HORIZONTAL and NONE 4647 options are BOTH, VERTICAL, HORIZONTAL, SOURCE and NONE
4630 @endproperty 4648 @endproperty
4631*/ 4649*/
4632static void 4650static void
@@ -4639,6 +4657,7 @@ st_collections_group_parts_part_description_aspect_preference(void)
4639 "VERTICAL", EDJE_ASPECT_PREFER_VERTICAL, 4657 "VERTICAL", EDJE_ASPECT_PREFER_VERTICAL,
4640 "HORIZONTAL", EDJE_ASPECT_PREFER_HORIZONTAL, 4658 "HORIZONTAL", EDJE_ASPECT_PREFER_HORIZONTAL,
4641 "BOTH", EDJE_ASPECT_PREFER_BOTH, 4659 "BOTH", EDJE_ASPECT_PREFER_BOTH,
4660 "SOURCE", EDJE_ASPECT_PREFER_SOURCE,
4642 NULL); 4661 NULL);
4643} 4662}
4644 4663
@@ -7236,15 +7255,6 @@ st_collections_group_programs_program_in(void)
7236 current_program->in.range = parse_float_range(1, 0.0, 999999999.0); 7255 current_program->in.range = parse_float_range(1, 0.0, 999999999.0);
7237} 7256}
7238 7257
7239#ifdef ENABLE_MULTISENSE
7240/* add to docs below
7241, PLAY_SAMPLE, PLAY_TONE
7242
7243 action: PLAY_SAMPLE "sample name";\n
7244 action: PLAY_TONE "tone name" duration in seconds ( Range 0.1 to 10.0 );\n
7245*/
7246#endif
7247
7248/** 7258/**
7249 @page edcref 7259 @page edcref
7250 @property 7260 @property
@@ -7254,7 +7264,7 @@ st_collections_group_programs_program_in(void)
7254 @effect 7264 @effect
7255 Action to be performed by the program. Valid actions are: STATE_SET, 7265 Action to be performed by the program. Valid actions are: STATE_SET,
7256 ACTION_STOP, SIGNAL_EMIT, DRAG_VAL_SET, DRAG_VAL_STEP, DRAG_VAL_PAGE, 7266 ACTION_STOP, SIGNAL_EMIT, DRAG_VAL_SET, DRAG_VAL_STEP, DRAG_VAL_PAGE,
7257 FOCUS_SET, PARAM_COPY, PARAM_SET 7267 FOCUS_SET, PARAM_COPY, PARAM_SET, PLAY_SAMPLE, PLAY_TONE
7258 Only one action can be specified per program. Examples:\n 7268 Only one action can be specified per program. Examples:\n
7259 action: STATE_SET "statename" 0.5;\n 7269 action: STATE_SET "statename" 0.5;\n
7260 action: ACTION_STOP;\n 7270 action: ACTION_STOP;\n
@@ -7266,6 +7276,8 @@ st_collections_group_programs_program_in(void)
7266 action: FOCUS_OBJECT;\n 7276 action: FOCUS_OBJECT;\n
7267 action: PARAM_COPY "src_part" "src_param" "dst_part" "dst_param";\n 7277 action: PARAM_COPY "src_part" "src_param" "dst_part" "dst_param";\n
7268 action: PARAM_SET "part" "param" "value";\n 7278 action: PARAM_SET "part" "param" "value";\n
7279 action: PLAY_SAMPLE "sample name";\n
7280 action: PLAY_TONE "tone name" duration in seconds ( Range 0.1 to 10.0 );\n
7269 @endproperty 7281 @endproperty
7270*/ 7282*/
7271static void 7283static void
@@ -7273,6 +7285,7 @@ st_collections_group_programs_program_action(void)
7273{ 7285{
7274 Edje_Part_Collection *pc; 7286 Edje_Part_Collection *pc;
7275 Edje_Program *ep; 7287 Edje_Program *ep;
7288 int i;
7276 7289
7277 pc = eina_list_data_get(eina_list_last(edje_collections)); 7290 pc = eina_list_data_get(eina_list_last(edje_collections));
7278 ep = current_program; 7291 ep = current_program;
@@ -7288,10 +7301,8 @@ st_collections_group_programs_program_action(void)
7288 "FOCUS_OBJECT", EDJE_ACTION_TYPE_FOCUS_OBJECT, 7301 "FOCUS_OBJECT", EDJE_ACTION_TYPE_FOCUS_OBJECT,
7289 "PARAM_COPY", EDJE_ACTION_TYPE_PARAM_COPY, 7302 "PARAM_COPY", EDJE_ACTION_TYPE_PARAM_COPY,
7290 "PARAM_SET", EDJE_ACTION_TYPE_PARAM_SET, 7303 "PARAM_SET", EDJE_ACTION_TYPE_PARAM_SET,
7291#ifdef ENABLE_MULTISENSE
7292 "PLAY_SAMPLE", EDJE_ACTION_TYPE_SOUND_SAMPLE, 7304 "PLAY_SAMPLE", EDJE_ACTION_TYPE_SOUND_SAMPLE,
7293 "PLAY_TONE", EDJE_ACTION_TYPE_SOUND_TONE, 7305 "PLAY_TONE", EDJE_ACTION_TYPE_SOUND_TONE,
7294#endif
7295 NULL); 7306 NULL);
7296 if (ep->action == EDJE_ACTION_TYPE_STATE_SET) 7307 if (ep->action == EDJE_ACTION_TYPE_STATE_SET)
7297 { 7308 {
@@ -7303,11 +7314,8 @@ st_collections_group_programs_program_action(void)
7303 ep->state = parse_str(1); 7314 ep->state = parse_str(1);
7304 ep->state2 = parse_str(2); 7315 ep->state2 = parse_str(2);
7305 } 7316 }
7306#ifdef ENABLE_MULTISENSE
7307 else if (ep->action == EDJE_ACTION_TYPE_SOUND_SAMPLE) 7317 else if (ep->action == EDJE_ACTION_TYPE_SOUND_SAMPLE)
7308 { 7318 {
7309 int i;
7310
7311 ep->sample_name = parse_str(1); 7319 ep->sample_name = parse_str(1);
7312 for (i = 0; i < (int)edje_file->sound_dir->samples_count; i++) 7320 for (i = 0; i < (int)edje_file->sound_dir->samples_count; i++)
7313 { 7321 {
@@ -7324,8 +7332,6 @@ st_collections_group_programs_program_action(void)
7324 } 7332 }
7325 else if (ep->action == EDJE_ACTION_TYPE_SOUND_TONE) 7333 else if (ep->action == EDJE_ACTION_TYPE_SOUND_TONE)
7326 { 7334 {
7327 int i;
7328
7329 ep->tone_name = parse_str(1); 7335 ep->tone_name = parse_str(1);
7330 for (i = 0; i < (int)edje_file->sound_dir->tones_count; i++) 7336 for (i = 0; i < (int)edje_file->sound_dir->tones_count; i++)
7331 { 7337 {
@@ -7340,7 +7346,6 @@ st_collections_group_programs_program_action(void)
7340 } 7346 }
7341 ep->duration = parse_float_range(2, 0.1, 10.0); 7347 ep->duration = parse_float_range(2, 0.1, 10.0);
7342 } 7348 }
7343#endif
7344 else if (ep->action == EDJE_ACTION_TYPE_DRAG_VAL_SET) 7349 else if (ep->action == EDJE_ACTION_TYPE_DRAG_VAL_SET)
7345 { 7350 {
7346 ep->value = parse_float(1); 7351 ep->value = parse_float(1);
@@ -7402,14 +7407,12 @@ st_collections_group_programs_program_action(void)
7402 case EDJE_ACTION_TYPE_PARAM_SET: 7407 case EDJE_ACTION_TYPE_PARAM_SET:
7403 check_arg_count(4); 7408 check_arg_count(4);
7404 break; 7409 break;
7405#ifdef ENABLE_MULTISENSE
7406 case EDJE_ACTION_TYPE_SOUND_SAMPLE: 7410 case EDJE_ACTION_TYPE_SOUND_SAMPLE:
7407 check_arg_count(3); 7411 check_arg_count(3);
7408 break; 7412 break;
7409 case EDJE_ACTION_TYPE_SOUND_TONE: 7413 case EDJE_ACTION_TYPE_SOUND_TONE:
7410 check_arg_count(3); 7414 check_arg_count(3);
7411 break; 7415 break;
7412#endif
7413 default: 7416 default:
7414 check_arg_count(3); 7417 check_arg_count(3);
7415 } 7418 }
diff --git a/libraries/edje/src/bin/edje_cc_out.c b/libraries/edje/src/bin/edje_cc_out.c
index 443a702..5050ad4 100644
--- a/libraries/edje/src/bin/edje_cc_out.c
+++ b/libraries/edje/src/bin/edje_cc_out.c
@@ -72,6 +72,7 @@ struct _Program_Lookup
72struct _Group_Lookup 72struct _Group_Lookup
73{ 73{
74 char *name; 74 char *name;
75 Edje_Part *part;
75}; 76};
76 77
77struct _String_Lookup 78struct _String_Lookup
@@ -808,8 +809,8 @@ data_write_groups(Eet_File *ef, int *collection_num)
808 809
809 if (verbose) 810 if (verbose)
810 { 811 {
811 printf("%s: Wrote %9i bytes (%4iKb) for \"%s\" collection entry\n", 812 printf("%s: Wrote %9i bytes (%4iKb) for \"%s\" aka \"%s\" collection entry\n",
812 progname, bytes, (bytes + 512) / 1024, buf); 813 progname, bytes, (bytes + 512) / 1024, buf, pc->part);
813 } 814 }
814 } 815 }
815 816
@@ -1371,13 +1372,16 @@ reorder_parts(void)
1371} 1372}
1372 1373
1373void 1374void
1374data_queue_group_lookup(char *name) 1375data_queue_group_lookup(const char *name, Edje_Part *part)
1375{ 1376{
1376 Group_Lookup *gl; 1377 Group_Lookup *gl;
1377 1378
1379 if (!name || !name[0]) return;
1380
1378 gl = mem_alloc(SZ(Group_Lookup)); 1381 gl = mem_alloc(SZ(Group_Lookup));
1379 group_lookups = eina_list_append(group_lookups, gl); 1382 group_lookups = eina_list_append(group_lookups, gl);
1380 gl->name = mem_strdup(name); 1383 gl->name = mem_strdup(name);
1384 gl->part = part;
1381} 1385}
1382 1386
1383void 1387void
@@ -1698,15 +1702,38 @@ data_process_lookups(void)
1698 { 1702 {
1699 Edje_Part_Collection_Directory_Entry *de; 1703 Edje_Part_Collection_Directory_Entry *de;
1700 1704
1705 if (group->part)
1706 {
1707 if (group->part->type != EDJE_PART_TYPE_GROUP
1708 && group->part->type != EDJE_PART_TYPE_TEXTBLOCK
1709 && group->part->type != EDJE_PART_TYPE_BOX
1710 && group->part->type != EDJE_PART_TYPE_TABLE)
1711 goto free_group;
1712 }
1713
1701 de = eina_hash_find(edje_file->collection, group->name); 1714 de = eina_hash_find(edje_file->collection, group->name);
1702 1715
1703 if (!de) 1716 if (!de)
1717 {
1718 Eina_Bool found = EINA_FALSE;
1719
1720 EINA_LIST_FOREACH(aliases, l, de)
1721 if (strcmp(de->entry, group->name) == 0)
1722 {
1723 found = EINA_TRUE;
1724 break;
1725 }
1726 if (!found) de = NULL;
1727 }
1728
1729 if (!de)
1704 { 1730 {
1705 ERR("%s: Error. Unable to find group name \"%s\".", 1731 ERR("%s: Error. Unable to find group name \"%s\".",
1706 progname, group->name); 1732 progname, group->name);
1707 exit(-1); 1733 exit(-1);
1708 } 1734 }
1709 1735
1736 free_group:
1710 free(group->name); 1737 free(group->name);
1711 free(group); 1738 free(group);
1712 } 1739 }
@@ -1914,7 +1941,7 @@ _data_queue_program_lookup(Edje_Part_Collection *pc, char *name, char *ptr, int
1914static void 1941static void
1915_data_queue_group_lookup(Edje_Part_Collection *pc __UNUSED__, char *name, char *ptr __UNUSED__, int len __UNUSED__) 1942_data_queue_group_lookup(Edje_Part_Collection *pc __UNUSED__, char *name, char *ptr __UNUSED__, int len __UNUSED__)
1916{ 1943{
1917 data_queue_group_lookup(name); 1944 data_queue_group_lookup(name, NULL);
1918} 1945}
1919static void 1946static void
1920_data_queue_image_pc_lookup(Edje_Part_Collection *pc __UNUSED__, char *name, char *ptr, int len) 1947_data_queue_image_pc_lookup(Edje_Part_Collection *pc __UNUSED__, char *name, char *ptr, int len)
diff --git a/libraries/edje/src/bin/edje_cc_parse.c b/libraries/edje/src/bin/edje_cc_parse.c
index ae68e00..adc08d3 100644
--- a/libraries/edje/src/bin/edje_cc_parse.c
+++ b/libraries/edje/src/bin/edje_cc_parse.c
@@ -238,8 +238,6 @@ next_token(char *p, char *end, char **new_p, int *delim)
238 int in_comment_sa = 0; 238 int in_comment_sa = 0;
239 int had_quote = 0; 239 int had_quote = 0;
240 int is_escaped = 0; 240 int is_escaped = 0;
241 char *cpp_token_line = NULL;
242 char *cpp_token_file = NULL;
243 241
244 *delim = 0; 242 *delim = 0;
245 if (p >= end) return NULL; 243 if (p >= end) return NULL;
@@ -249,8 +247,6 @@ next_token(char *p, char *end, char **new_p, int *delim)
249 { 247 {
250 in_comment_ss = 0; 248 in_comment_ss = 0;
251 in_comment_cpp = 0; 249 in_comment_cpp = 0;
252 cpp_token_line = NULL;
253 cpp_token_file = NULL;
254 line++; 250 line++;
255 } 251 }
256 if ((!in_comment_ss) && (!in_comment_sa)) 252 if ((!in_comment_ss) && (!in_comment_sa))
@@ -275,8 +271,6 @@ next_token(char *p, char *end, char **new_p, int *delim)
275 /* their line format is 271 /* their line format is
276 * #line <line no. of next line> <filename from next line on> [??] 272 * #line <line no. of next line> <filename from next line on> [??]
277 */ 273 */
278 cpp_token_line = NULL;
279 cpp_token_file = NULL;
280 274
281 pp = p; 275 pp = p;
282 while ((pp < end) && (*pp != '\n')) 276 while ((pp < end) && (*pp != '\n'))
diff --git a/libraries/edje/src/bin/edje_decc.c b/libraries/edje/src/bin/edje_decc.c
index 1b79e13..ac776e9 100644
--- a/libraries/edje/src/bin/edje_decc.c
+++ b/libraries/edje/src/bin/edje_decc.c
@@ -69,7 +69,6 @@ main(int argc, char **argv)
69 eina_shutdown(); 69 eina_shutdown();
70 exit(-1); 70 exit(-1);
71 } 71 }
72 eina_log_level_set(EINA_LOG_LEVEL_INFO);
73 progname = argv[0]; 72 progname = argv[0];
74 for (i = 1; i < argc; i++) 73 for (i = 1; i < argc; i++)
75 { 74 {
@@ -104,7 +103,7 @@ main(int argc, char **argv)
104 if (!decomp()) return -1; 103 if (!decomp()) return -1;
105 output(); 104 output();
106 105
107 printf("WARNING! If any Image or audio data was encoded in a LOSSY way, then\n" 106 fprintf(stderr, "WARNING! If any Image or audio data was encoded in a LOSSY way, then\n"
108 "re-encoding will drop quality even more. You need access to the original\n" 107 "re-encoding will drop quality even more. You need access to the original\n"
109 "data to ensure no loss of quality.\n"); 108 "data to ensure no loss of quality.\n");
110 eet_close(ef); 109 eet_close(ef);
diff --git a/libraries/edje/src/bin/edje_inspector.c b/libraries/edje/src/bin/edje_inspector.c
index ed3baaf..093de86 100644
--- a/libraries/edje/src/bin/edje_inspector.c
+++ b/libraries/edje/src/bin/edje_inspector.c
@@ -263,20 +263,20 @@ border_fill_name_get(int id)
263} 263}
264 264
265static void 265static void
266state_details(Evas_Object *ed, const char *part, const char *state, double value) 266state_details(Evas_Object *ed, const char *ppart, const char *state, double value)
267{ 267{
268 Edje_Part_Type t = edje_edit_part_type_get(ed, part); 268 Edje_Part_Type t = edje_edit_part_type_get(ed, ppart);
269 double dx, dy; 269 double dx, dy;
270 const char *str, *str2; 270 const char *str, *str2;
271 int x, y, r, g, b, a; 271 int x, y, r, g, b, a;
272 272
273 if (detail < 1) return; 273 if (detail < 1) return;
274 274
275 b = edje_edit_state_visible_get(ed, part, state, value); 275 b = edje_edit_state_visible_get(ed, ppart, state, value);
276 if (machine) printf("VISIBLE: %d\n", b); 276 if (machine) printf("VISIBLE: %d\n", b);
277 else if (!b) puts(INDENT4 "visible: 0;"); 277 else if (!b) puts(INDENT4 "visible: 0;");
278 278
279 edje_edit_state_color_get(ed, part, state, value, &r, &g, &b, &a); 279 edje_edit_state_color_get(ed, ppart, state, value, &r, &g, &b, &a);
280 if (machine) 280 if (machine)
281 printf("COLOR-R: %d\nCOLOR-G: %d\nCOLOR-B: %d\nCOLOR-A: %d\n", r, g, b, a); 281 printf("COLOR-R: %d\nCOLOR-G: %d\nCOLOR-B: %d\nCOLOR-A: %d\n", r, g, b, a);
282 else if ((r != 255) || (g != 255) || (b != 255) || (a != 255)) 282 else if ((r != 255) || (g != 255) || (b != 255) || (a != 255))
@@ -284,14 +284,14 @@ state_details(Evas_Object *ed, const char *part, const char *state, double value
284 284
285 if (detail > 1) 285 if (detail > 1)
286 { 286 {
287 edje_edit_state_color2_get(ed, part, state, value, &r, &g, &b, &a); 287 edje_edit_state_color2_get(ed, ppart, state, value, &r, &g, &b, &a);
288 if (machine) 288 if (machine)
289 printf("COLOR2-R: %d\nCOLOR2-G: %d\nCOLOR2-B: %d\nCOLOR2-A: %d\n", 289 printf("COLOR2-R: %d\nCOLOR2-G: %d\nCOLOR2-B: %d\nCOLOR2-A: %d\n",
290 r, g, b, a); 290 r, g, b, a);
291 else if ((r != 255) || (g != 255) || (b != 255) || (a != 255)) 291 else if ((r != 255) || (g != 255) || (b != 255) || (a != 255))
292 printf(INDENT4 "color2: %d %d %d %d;\n", r, g, b, a); 292 printf(INDENT4 "color2: %d %d %d %d;\n", r, g, b, a);
293 293
294 edje_edit_state_color3_get(ed, part, state, value, &r, &g, &b, &a); 294 edje_edit_state_color3_get(ed, ppart, state, value, &r, &g, &b, &a);
295 if (machine) 295 if (machine)
296 printf("COLOR3-R: %d\nCOLOR3-G: %d\nCOLOR3-B: %d\nCOLOR3-A: %d\n", 296 printf("COLOR3-R: %d\nCOLOR3-G: %d\nCOLOR3-B: %d\nCOLOR3-A: %d\n",
297 r, g, b, a); 297 r, g, b, a);
@@ -299,19 +299,19 @@ state_details(Evas_Object *ed, const char *part, const char *state, double value
299 printf(INDENT4 "color3: %d %d %d %d;\n", r, g, b, a); 299 printf(INDENT4 "color3: %d %d %d %d;\n", r, g, b, a);
300 } 300 }
301 301
302 dx = edje_edit_state_align_x_get(ed, part, state, value); 302 dx = edje_edit_state_align_x_get(ed, ppart, state, value);
303 dy = edje_edit_state_align_y_get(ed, part, state, value); 303 dy = edje_edit_state_align_y_get(ed, ppart, state, value);
304 if (machine) printf("ALIGN-X: %g\nALIGN-Y: %g\n", dx, dy); 304 if (machine) printf("ALIGN-X: %g\nALIGN-Y: %g\n", dx, dy);
305 else if (FDIFF(dx, 0.5) || FDIFF(dy, 0.5)) 305 else if (FDIFF(dx, 0.5) || FDIFF(dy, 0.5))
306 printf(INDENT4 "align: %g %g;\n", dx, dy); 306 printf(INDENT4 "align: %g %g;\n", dx, dy);
307 307
308 x = edje_edit_state_min_w_get(ed, part, state, value); 308 x = edje_edit_state_min_w_get(ed, ppart, state, value);
309 y = edje_edit_state_min_h_get(ed, part, state, value); 309 y = edje_edit_state_min_h_get(ed, ppart, state, value);
310 if (machine) printf("MIN-W: %d\nMIN-H: %d\n", x, y); 310 if (machine) printf("MIN-W: %d\nMIN-H: %d\n", x, y);
311 else if ((x) || (y)) printf(INDENT4 "min: %d %d;\n", x, y); 311 else if ((x) || (y)) printf(INDENT4 "min: %d %d;\n", x, y);
312 312
313 x = edje_edit_state_max_w_get(ed, part, state, value); 313 x = edje_edit_state_max_w_get(ed, ppart, state, value);
314 y = edje_edit_state_max_h_get(ed, part, state, value); 314 y = edje_edit_state_max_h_get(ed, ppart, state, value);
315 if (machine) printf("MAX-W: %d\nMAX-H: %d\n", x, y); 315 if (machine) printf("MAX-W: %d\nMAX-H: %d\n", x, y);
316 else if ((x != -1) || (y != -1)) printf(INDENT4 "max: %d %d;\n", x, y); 316 else if ((x != -1) || (y != -1)) printf(INDENT4 "max: %d %d;\n", x, y);
317 317
@@ -320,30 +320,30 @@ state_details(Evas_Object *ed, const char *part, const char *state, double value
320 320
321 if (detail > 1) 321 if (detail > 1)
322 { 322 {
323 dx = edje_edit_state_aspect_min_get(ed, part, state, value); 323 dx = edje_edit_state_aspect_min_get(ed, ppart, state, value);
324 dy = edje_edit_state_aspect_max_get(ed, part, state, value); 324 dy = edje_edit_state_aspect_max_get(ed, ppart, state, value);
325 if (machine) printf("ASPECT-MIN: %g\nASPECT-MAX: %g\n", dx, dy); 325 if (machine) printf("ASPECT-MIN: %g\nASPECT-MAX: %g\n", dx, dy);
326 else if (FDIFF(dx, 0.0) || FDIFF(dy, 0.0)) 326 else if (FDIFF(dx, 0.0) || FDIFF(dy, 0.0))
327 printf(INDENT4 "aspect: %g %g;\n", dx, dy); 327 printf(INDENT4 "aspect: %g %g;\n", dx, dy);
328 328
329 x = edje_edit_state_aspect_pref_get(ed, part, state, value); 329 x = edje_edit_state_aspect_pref_get(ed, ppart, state, value);
330 str = aspect_pref_name_get(x); 330 str = aspect_pref_name_get(x);
331 if (machine) printf("ASPECT-PREFERENCE: %s\n", str); 331 if (machine) printf("ASPECT-PREFERENCE: %s\n", str);
332 else if (x) printf(INDENT4 "aspect_preference: %s;\n", str); 332 else if (x) printf(INDENT4 "aspect_preference: %s;\n", str);
333 /* do not free this str! */ 333 /* do not free this str! */
334 334
335 str = edje_edit_state_color_class_get(ed, part, state, value); 335 str = edje_edit_state_color_class_get(ed, ppart, state, value);
336 if (machine) printf("COLOR_CLASS: %s\n", str ? str : ""); 336 if (machine) printf("COLOR_CLASS: %s\n", str ? str : "");
337 else if (str) printf(INDENT4 "color_class: \"%s\";\n", str); 337 else if (str) printf(INDENT4 "color_class: \"%s\";\n", str);
338 edje_edit_string_free(str); 338 edje_edit_string_free(str);
339 } 339 }
340 340
341 dx = edje_edit_state_rel1_relative_x_get(ed, part, state, value); 341 dx = edje_edit_state_rel1_relative_x_get(ed, ppart, state, value);
342 dy = edje_edit_state_rel1_relative_y_get(ed, part, state, value); 342 dy = edje_edit_state_rel1_relative_y_get(ed, ppart, state, value);
343 x = edje_edit_state_rel1_offset_x_get(ed, part, state, value); 343 x = edje_edit_state_rel1_offset_x_get(ed, ppart, state, value);
344 y = edje_edit_state_rel1_offset_y_get(ed, part, state, value); 344 y = edje_edit_state_rel1_offset_y_get(ed, ppart, state, value);
345 str = edje_edit_state_rel1_to_x_get(ed, part, state, value); 345 str = edje_edit_state_rel1_to_x_get(ed, ppart, state, value);
346 str2 = edje_edit_state_rel1_to_y_get(ed, part, state, value); 346 str2 = edje_edit_state_rel1_to_y_get(ed, ppart, state, value);
347 if (FDIFF(dx, 0.0) || FDIFF(dy, 0.0) || (x) || (y) || (str) || (str2)) 347 if (FDIFF(dx, 0.0) || FDIFF(dy, 0.0) || (x) || (y) || (str) || (str2))
348 { 348 {
349 if (machine) puts("REL1-BEGIN"); 349 if (machine) puts("REL1-BEGIN");
@@ -372,12 +372,12 @@ state_details(Evas_Object *ed, const char *part, const char *state, double value
372 edje_edit_string_free(str); 372 edje_edit_string_free(str);
373 edje_edit_string_free(str2); 373 edje_edit_string_free(str2);
374 374
375 dx = edje_edit_state_rel2_relative_x_get(ed, part, state, value); 375 dx = edje_edit_state_rel2_relative_x_get(ed, ppart, state, value);
376 dy = edje_edit_state_rel2_relative_y_get(ed, part, state, value); 376 dy = edje_edit_state_rel2_relative_y_get(ed, ppart, state, value);
377 x = edje_edit_state_rel2_offset_x_get(ed, part, state, value); 377 x = edje_edit_state_rel2_offset_x_get(ed, ppart, state, value);
378 y = edje_edit_state_rel2_offset_y_get(ed, part, state, value); 378 y = edje_edit_state_rel2_offset_y_get(ed, ppart, state, value);
379 str = edje_edit_state_rel2_to_x_get(ed, part, state, value); 379 str = edje_edit_state_rel2_to_x_get(ed, ppart, state, value);
380 str2 = edje_edit_state_rel2_to_y_get(ed, part, state, value); 380 str2 = edje_edit_state_rel2_to_y_get(ed, ppart, state, value);
381 if (FDIFF(dx, 1.0) || FDIFF(dy, 1.0) || (x != -1) || (y != -1) || 381 if (FDIFF(dx, 1.0) || FDIFF(dy, 1.0) || (x != -1) || (y != -1) ||
382 (str) || (str2)) 382 (str) || (str2))
383 { 383 {
@@ -410,7 +410,7 @@ state_details(Evas_Object *ed, const char *part, const char *state, double value
410 410
411 if (t == EDJE_PART_TYPE_IMAGE) 411 if (t == EDJE_PART_TYPE_IMAGE)
412 { 412 {
413 str = edje_edit_state_image_get(ed, part, state, value); 413 str = edje_edit_state_image_get(ed, ppart, state, value);
414 414
415 if (machine) printf("IMAGE-BEGIN\nNORMAL: %s\n", str ? str : ""); 415 if (machine) printf("IMAGE-BEGIN\nNORMAL: %s\n", str ? str : "");
416 else if (detail > 1) 416 else if (detail > 1)
@@ -429,7 +429,7 @@ state_details(Evas_Object *ed, const char *part, const char *state, double value
429 double dx2, dy2; 429 double dx2, dy2;
430 Eina_Bool has_orgin, has_size; 430 Eina_Bool has_orgin, has_size;
431 431
432 tweens = edje_edit_state_tweens_list_get(ed, part, state, value); 432 tweens = edje_edit_state_tweens_list_get(ed, ppart, state, value);
433 EINA_LIST_FOREACH(tweens, l, str) 433 EINA_LIST_FOREACH(tweens, l, str)
434 { 434 {
435 if (machine) printf("TWEEN: %s\n", str); 435 if (machine) printf("TWEEN: %s\n", str);
@@ -438,14 +438,14 @@ state_details(Evas_Object *ed, const char *part, const char *state, double value
438 edje_edit_string_list_free(tweens); 438 edje_edit_string_list_free(tweens);
439 439
440 edje_edit_state_image_border_get 440 edje_edit_state_image_border_get
441 (ed, part, state, value, &bl, &br, &bt, &bb); 441 (ed, ppart, state, value, &bl, &br, &bt, &bb);
442 if (machine) 442 if (machine)
443 printf("BORDER-LEFT: %d\nBORDER-RIGHT: %d\n" 443 printf("BORDER-LEFT: %d\nBORDER-RIGHT: %d\n"
444 "BORDER-TOP: %d\nBORDER-BOTTOM: %d\n", bl, br, bt, bb); 444 "BORDER-TOP: %d\nBORDER-BOTTOM: %d\n", bl, br, bt, bb);
445 else if ((bl) || (br) || (bt) || (bb)) 445 else if ((bl) || (br) || (bt) || (bb))
446 printf(INDENT5 "border: %d %d %d %d;\n", bl, br, bt, bb); 446 printf(INDENT5 "border: %d %d %d %d;\n", bl, br, bt, bb);
447 447
448 x = edje_edit_state_image_border_fill_get(ed, part, state, value); 448 x = edje_edit_state_image_border_fill_get(ed, ppart, state, value);
449 str = border_fill_name_get(x); 449 str = border_fill_name_get(x);
450 if (machine) printf("BORDER-FILL: %s\n", str); 450 if (machine) printf("BORDER-FILL: %s\n", str);
451 else if (x != 1) printf(INDENT5 "middle: %s;\n", str); 451 else if (x != 1) printf(INDENT5 "middle: %s;\n", str);
@@ -454,22 +454,22 @@ state_details(Evas_Object *ed, const char *part, const char *state, double value
454 // TODO support image.fill.smooth 454 // TODO support image.fill.smooth
455 455
456 dx = edje_edit_state_fill_origin_relative_x_get 456 dx = edje_edit_state_fill_origin_relative_x_get
457 (ed, part, state, value); 457 (ed, ppart, state, value);
458 dy = edje_edit_state_fill_origin_relative_y_get 458 dy = edje_edit_state_fill_origin_relative_y_get
459 (ed, part, state, value); 459 (ed, ppart, state, value);
460 x = edje_edit_state_fill_origin_offset_x_get 460 x = edje_edit_state_fill_origin_offset_x_get
461 (ed, part, state, value); 461 (ed, ppart, state, value);
462 y = edje_edit_state_fill_origin_offset_y_get 462 y = edje_edit_state_fill_origin_offset_y_get
463 (ed, part, state, value); 463 (ed, ppart, state, value);
464 464
465 dx2 = edje_edit_state_fill_size_relative_x_get 465 dx2 = edje_edit_state_fill_size_relative_x_get
466 (ed, part, state, value); 466 (ed, ppart, state, value);
467 dy2 = edje_edit_state_fill_size_relative_y_get 467 dy2 = edje_edit_state_fill_size_relative_y_get
468 (ed, part, state, value); 468 (ed, ppart, state, value);
469 x2 = edje_edit_state_fill_size_offset_x_get 469 x2 = edje_edit_state_fill_size_offset_x_get
470 (ed, part, state, value); 470 (ed, ppart, state, value);
471 y2 = edje_edit_state_fill_size_offset_y_get 471 y2 = edje_edit_state_fill_size_offset_y_get
472 (ed, part, state, value); 472 (ed, ppart, state, value);
473 473
474 has_orgin = (FDIFF(dx, 0.0) || FDIFF(dy, 0.0) || (x) || (y)); 474 has_orgin = (FDIFF(dx, 0.0) || FDIFF(dy, 0.0) || (x) || (y));
475 has_size = (FDIFF(dx2, 1.0) || FDIFF(dy2, 1.0) || (x2) || (y2)); 475 has_size = (FDIFF(dx2, 1.0) || FDIFF(dy2, 1.0) || (x2) || (y2));
@@ -531,22 +531,22 @@ state_details(Evas_Object *ed, const char *part, const char *state, double value
531 // TODO support proxy.fill.smooth 531 // TODO support proxy.fill.smooth
532 532
533 dx = edje_edit_state_fill_origin_relative_x_get 533 dx = edje_edit_state_fill_origin_relative_x_get
534 (ed, part, state, value); 534 (ed, ppart, state, value);
535 dy = edje_edit_state_fill_origin_relative_y_get 535 dy = edje_edit_state_fill_origin_relative_y_get
536 (ed, part, state, value); 536 (ed, ppart, state, value);
537 x = edje_edit_state_fill_origin_offset_x_get 537 x = edje_edit_state_fill_origin_offset_x_get
538 (ed, part, state, value); 538 (ed, ppart, state, value);
539 y = edje_edit_state_fill_origin_offset_y_get 539 y = edje_edit_state_fill_origin_offset_y_get
540 (ed, part, state, value); 540 (ed, ppart, state, value);
541 541
542 dx2 = edje_edit_state_fill_size_relative_x_get 542 dx2 = edje_edit_state_fill_size_relative_x_get
543 (ed, part, state, value); 543 (ed, ppart, state, value);
544 dy2 = edje_edit_state_fill_size_relative_y_get 544 dy2 = edje_edit_state_fill_size_relative_y_get
545 (ed, part, state, value); 545 (ed, ppart, state, value);
546 x2 = edje_edit_state_fill_size_offset_x_get 546 x2 = edje_edit_state_fill_size_offset_x_get
547 (ed, part, state, value); 547 (ed, ppart, state, value);
548 y2 = edje_edit_state_fill_size_offset_y_get 548 y2 = edje_edit_state_fill_size_offset_y_get
549 (ed, part, state, value); 549 (ed, ppart, state, value);
550 550
551 has_orgin = (FDIFF(dx, 0.0) || FDIFF(dy, 0.0) || (x) || (y)); 551 has_orgin = (FDIFF(dx, 0.0) || FDIFF(dy, 0.0) || (x) || (y));
552 has_size = (FDIFF(dx2, 1.0) || FDIFF(dy2, 1.0) || (x2) || (y2)); 552 has_size = (FDIFF(dx2, 1.0) || FDIFF(dy2, 1.0) || (x2) || (y2));
@@ -600,34 +600,34 @@ state_details(Evas_Object *ed, const char *part, const char *state, double value
600 if (machine) puts("TEXT-BEGIN"); 600 if (machine) puts("TEXT-BEGIN");
601 else puts(INDENT4 "text {"); 601 else puts(INDENT4 "text {");
602 602
603 str = edje_edit_state_text_get(ed, part, state, value); 603 str = edje_edit_state_text_get(ed, ppart, state, value);
604 if (machine) printf("TEXT: %s\n", str ? str : ""); 604 if (machine) printf("TEXT: %s\n", str ? str : "");
605 else if (str) printf(INDENT5 "text: \"%s\";\n", str); 605 else if (str) printf(INDENT5 "text: \"%s\";\n", str);
606 edje_edit_string_free(str); 606 edje_edit_string_free(str);
607 607
608 str = edje_edit_state_font_get(ed, part, state, value); 608 str = edje_edit_state_font_get(ed, ppart, state, value);
609 if (machine) printf("FONT: %s\n", str ? str : ""); 609 if (machine) printf("FONT: %s\n", str ? str : "");
610 else if (str) printf(INDENT5 "font: \"%s\";\n", str); 610 else if (str) printf(INDENT5 "font: \"%s\";\n", str);
611 edje_edit_string_free(str); 611 edje_edit_string_free(str);
612 612
613 x = edje_edit_state_text_size_get(ed, part, state, value); 613 x = edje_edit_state_text_size_get(ed, ppart, state, value);
614 if (machine) printf("SIZE: %d\n", x); 614 if (machine) printf("SIZE: %d\n", x);
615 else if (x > 0) printf(INDENT5 "size: %d;\n", x); 615 else if (x > 0) printf(INDENT5 "size: %d;\n", x);
616 616
617 // TODO text_class 617 // TODO text_class
618 618
619 dx = edje_edit_state_text_align_x_get(ed, part, state, value); 619 dx = edje_edit_state_text_align_x_get(ed, ppart, state, value);
620 dy = edje_edit_state_text_align_y_get(ed, part, state, value); 620 dy = edje_edit_state_text_align_y_get(ed, ppart, state, value);
621 if (machine) printf("TEXT-ALIGN-X: %g\nTEXT-ALIGN-Y: %g\n", dx, dy); 621 if (machine) printf("TEXT-ALIGN-X: %g\nTEXT-ALIGN-Y: %g\n", dx, dy);
622 else if (FDIFF(dx, 0.5) || FDIFF(dy, 0.5)) 622 else if (FDIFF(dx, 0.5) || FDIFF(dy, 0.5))
623 printf(INDENT5 "align: %g %g;\n", dx, dy); 623 printf(INDENT5 "align: %g %g;\n", dx, dy);
624 624
625 x = edje_edit_state_text_fit_x_get(ed, part, state, value); 625 x = edje_edit_state_text_fit_x_get(ed, ppart, state, value);
626 y = edje_edit_state_text_fit_y_get(ed, part, state, value); 626 y = edje_edit_state_text_fit_y_get(ed, ppart, state, value);
627 if (machine) printf("TEXT-FIT-X: %d\nTEXT-FIT-Y: %d\n", x, y); 627 if (machine) printf("TEXT-FIT-X: %d\nTEXT-FIT-Y: %d\n", x, y);
628 else if ((x) || (y)) printf(INDENT5 "fit: %d %d;\n", x, y); 628 else if ((x) || (y)) printf(INDENT5 "fit: %d %d;\n", x, y);
629 629
630 dx = edje_edit_state_text_elipsis_get(ed, part, state, value); 630 dx = edje_edit_state_text_elipsis_get(ed, ppart, state, value);
631 if (machine) printf("TEXT-ELIPSIS: %g\n", dx); 631 if (machine) printf("TEXT-ELIPSIS: %g\n", dx);
632 else if (FDIFF(dx, 0.5)) printf(INDENT5 "elipsis: %g;\n", dx); 632 else if (FDIFF(dx, 0.5)) printf(INDENT5 "elipsis: %g;\n", dx);
633 633
@@ -640,7 +640,7 @@ state_details(Evas_Object *ed, const char *part, const char *state, double value
640 const Edje_External_Param *p; 640 const Edje_External_Param *p;
641 641
642 params = edje_edit_state_external_params_list_get 642 params = edje_edit_state_external_params_list_get
643 (ed, part, state, value); 643 (ed, ppart, state, value);
644 644
645 if (params) 645 if (params)
646 { 646 {
@@ -766,16 +766,16 @@ _api_name_fix(const char *orig)
766} 766}
767 767
768static char * 768static char *
769_part_api_name_get(Evas_Object *ed, const char *part) 769_part_api_name_get(Evas_Object *ed, const char *ppart)
770{ 770{
771 const char *orig = edje_edit_part_api_name_get(ed, part); 771 const char *orig = edje_edit_part_api_name_get(ed, ppart);
772 char *fix = _api_name_fix(orig); 772 char *fix = _api_name_fix(orig);
773 edje_edit_string_free(orig); 773 edje_edit_string_free(orig);
774 return fix; 774 return fix;
775} 775}
776 776
777static void 777static void
778part_details(Evas_Object *ed, const char *part) 778part_details(Evas_Object *ed, const char *ppart)
779{ 779{
780 Eina_List *states, *l; 780 Eina_List *states, *l;
781 Eina_Bool b; 781 Eina_Bool b;
@@ -786,8 +786,8 @@ part_details(Evas_Object *ed, const char *part)
786 786
787 if (machine) puts("PART-DETAILS-BEGIN"); 787 if (machine) puts("PART-DETAILS-BEGIN");
788 788
789 str = api =_part_api_name_get(ed, part); 789 str = api =_part_api_name_get(ed, ppart);
790 str2 = edje_edit_part_api_description_get(ed, part); 790 str2 = edje_edit_part_api_description_get(ed, ppart);
791 if (machine) 791 if (machine)
792 { 792 {
793 printf("API-NAME: %s\n", str ? str : ""); 793 printf("API-NAME: %s\n", str ? str : "");
@@ -798,67 +798,67 @@ part_details(Evas_Object *ed, const char *part)
798 free(api); 798 free(api);
799 edje_edit_string_free(str2); 799 edje_edit_string_free(str2);
800 800
801 b = edje_edit_part_mouse_events_get(ed, part); 801 b = edje_edit_part_mouse_events_get(ed, ppart);
802 if (machine) printf("MOUSE_EVENTS: %d\n", b); 802 if (machine) printf("MOUSE_EVENTS: %d\n", b);
803 else if (!b) puts(INDENT3 "mouse_events: 0;"); 803 else if (!b) puts(INDENT3 "mouse_events: 0;");
804 804
805 if (detail > 1) 805 if (detail > 1)
806 { 806 {
807 b = edje_edit_part_repeat_events_get(ed, part); 807 b = edje_edit_part_repeat_events_get(ed, ppart);
808 if (machine) printf("REPEAT_EVENTS: %d\n", b); 808 if (machine) printf("REPEAT_EVENTS: %d\n", b);
809 else if (b) puts(INDENT3 "repeat_events: 1;"); 809 else if (b) puts(INDENT3 "repeat_events: 1;");
810 810
811 b = edje_edit_part_scale_get(ed, part); 811 b = edje_edit_part_scale_get(ed, ppart);
812 if (machine) printf("SCALE: %d\n", b); 812 if (machine) printf("SCALE: %d\n", b);
813 else if (b) puts(INDENT3 "scale: 1;"); 813 else if (b) puts(INDENT3 "scale: 1;");
814 } 814 }
815 815
816 str = edje_edit_part_clip_to_get(ed, part); 816 str = edje_edit_part_clip_to_get(ed, ppart);
817 if (machine) printf("CLIP_TO: %s\n", str ? str : ""); 817 if (machine) printf("CLIP_TO: %s\n", str ? str : "");
818 else if (str) printf(INDENT3 "clip_to: \"%s\";\n", str); 818 else if (str) printf(INDENT3 "clip_to: \"%s\";\n", str);
819 edje_edit_string_free(str); 819 edje_edit_string_free(str);
820 820
821 str = edje_edit_part_source_get(ed, part); 821 str = edje_edit_part_source_get(ed, ppart);
822 if (machine) printf("SOURCE: %s\n", str ? str : ""); 822 if (machine) printf("SOURCE: %s\n", str ? str : "");
823 else if (str) printf(INDENT3 "source: \"%s\";\n", str); 823 else if (str) printf(INDENT3 "source: \"%s\";\n", str);
824 edje_edit_string_free(str); 824 edje_edit_string_free(str);
825 825
826 if (detail > 1) 826 if (detail > 1)
827 { 827 {
828 if (edje_edit_part_type_get(ed, part) == EDJE_PART_TYPE_TEXT) 828 if (edje_edit_part_type_get(ed, ppart) == EDJE_PART_TYPE_TEXT)
829 { 829 {
830 str = text_effect_name_get(edje_edit_part_effect_get(ed, part)); 830 str = text_effect_name_get(edje_edit_part_effect_get(ed, ppart));
831 if (machine) printf("EFFECT: %s\n", str ? str : ""); 831 if (machine) printf("EFFECT: %s\n", str ? str : "");
832 else if (str) printf(INDENT3 "effect: %s;\n", str); 832 else if (str) printf(INDENT3 "effect: %s;\n", str);
833 /* do not free this str! */ 833 /* do not free this str! */
834 } 834 }
835 835
836 if (edje_edit_part_drag_x_get(ed, part) || 836 if (edje_edit_part_drag_x_get(ed, ppart) ||
837 edje_edit_part_drag_y_get(ed, part)) 837 edje_edit_part_drag_y_get(ed, ppart))
838 { 838 {
839 int dir, step, count; 839 int dir, step, count;
840 840
841 if (machine) puts("DRAGABLE-BEGIN"); 841 if (machine) puts("DRAGABLE-BEGIN");
842 else puts(INDENT3 "dragable {"); 842 else puts(INDENT3 "dragable {");
843 843
844 dir = edje_edit_part_drag_x_get(ed, part); 844 dir = edje_edit_part_drag_x_get(ed, ppart);
845 step = edje_edit_part_drag_step_x_get(ed, part); 845 step = edje_edit_part_drag_step_x_get(ed, ppart);
846 count = edje_edit_part_drag_count_x_get(ed, part); 846 count = edje_edit_part_drag_count_x_get(ed, ppart);
847 if (machine) printf("DRAG-X: %d %d %d\n", dir, step, count); 847 if (machine) printf("DRAG-X: %d %d %d\n", dir, step, count);
848 else printf(INDENT4 "x: %d %d %d;\n", dir, step, count); 848 else printf(INDENT4 "x: %d %d %d;\n", dir, step, count);
849 849
850 dir = edje_edit_part_drag_y_get(ed, part); 850 dir = edje_edit_part_drag_y_get(ed, ppart);
851 step = edje_edit_part_drag_step_y_get(ed, part); 851 step = edje_edit_part_drag_step_y_get(ed, ppart);
852 count = edje_edit_part_drag_count_y_get(ed, part); 852 count = edje_edit_part_drag_count_y_get(ed, ppart);
853 if (machine) printf("DRAG-Y: %d %d %d\n", dir, step, count); 853 if (machine) printf("DRAG-Y: %d %d %d\n", dir, step, count);
854 else printf(INDENT4 "y: %d %d %d;\n", dir, step, count); 854 else printf(INDENT4 "y: %d %d %d;\n", dir, step, count);
855 855
856 str = edje_edit_part_drag_confine_get(ed, part); 856 str = edje_edit_part_drag_confine_get(ed, ppart);
857 if (machine) printf("DRAG-CONFINE: %s\n", str ? str : ""); 857 if (machine) printf("DRAG-CONFINE: %s\n", str ? str : "");
858 else if (str) printf(INDENT4 "confine: \"%s\";\n", str); 858 else if (str) printf(INDENT4 "confine: \"%s\";\n", str);
859 edje_edit_string_free(str); 859 edje_edit_string_free(str);
860 860
861 str = edje_edit_part_drag_event_get(ed, part); 861 str = edje_edit_part_drag_event_get(ed, ppart);
862 if (machine) printf("DRAG-EVENTS: %s\n", str ? str : ""); 862 if (machine) printf("DRAG-EVENTS: %s\n", str ? str : "");
863 else if (str) printf(INDENT4 "events: \"%s\";\n", str); 863 else if (str) printf(INDENT4 "events: \"%s\";\n", str);
864 edje_edit_string_free(str); 864 edje_edit_string_free(str);
@@ -868,7 +868,7 @@ part_details(Evas_Object *ed, const char *part)
868 } 868 }
869 } 869 }
870 870
871 states = edje_edit_part_states_list_get(ed, part); 871 states = edje_edit_part_states_list_get(ed, ppart);
872 EINA_LIST_FOREACH(states, l, str) 872 EINA_LIST_FOREACH(states, l, str)
873 { 873 {
874 char state[512], *delim; 874 char state[512], *delim;
@@ -879,7 +879,7 @@ part_details(Evas_Object *ed, const char *part)
879 delim++; 879 delim++;
880 value = strtod(delim, NULL); 880 value = strtod(delim, NULL);
881 state_begin(state, value); 881 state_begin(state, value);
882 state_details(ed, part, state, value); 882 state_details(ed, ppart, state, value);
883 state_end(); 883 state_end();
884 } 884 }
885 edje_edit_string_list_free(states); 885 edje_edit_string_list_free(states);
@@ -1047,9 +1047,9 @@ program_end(void)
1047 1047
1048 1048
1049static char * 1049static char *
1050_program_api_name_get(Evas_Object *ed, const char *program) 1050_program_api_name_get(Evas_Object *ed, const char *pprogram)
1051{ 1051{
1052 const char *orig = edje_edit_program_api_name_get(ed, program); 1052 const char *orig = edje_edit_program_api_name_get(ed, pprogram);
1053 char *fix = _api_name_fix(orig); 1053 char *fix = _api_name_fix(orig);
1054 edje_edit_string_free(orig); 1054 edje_edit_string_free(orig);
1055 return fix; 1055 return fix;
@@ -1071,7 +1071,7 @@ _transition_name_get(Edje_Tween_Mode mode)
1071} 1071}
1072 1072
1073static void 1073static void
1074program_details(Evas_Object *ed, const char *program) 1074program_details(Evas_Object *ed, const char *pprogram)
1075{ 1075{
1076 const char *str, *str2; 1076 const char *str, *str2;
1077 char *api; 1077 char *api;
@@ -1080,8 +1080,8 @@ program_details(Evas_Object *ed, const char *program)
1080 1080
1081 if (machine) puts("PROGRAM-DETAILS-BEGIN"); 1081 if (machine) puts("PROGRAM-DETAILS-BEGIN");
1082 1082
1083 str = api =_program_api_name_get(ed, program); 1083 str = api =_program_api_name_get(ed, pprogram);
1084 str2 = edje_edit_program_api_description_get(ed, program); 1084 str2 = edje_edit_program_api_description_get(ed, pprogram);
1085 if (machine) 1085 if (machine)
1086 { 1086 {
1087 printf("API-NAME: %s\n", str ? str : ""); 1087 printf("API-NAME: %s\n", str ? str : "");
@@ -1092,12 +1092,12 @@ program_details(Evas_Object *ed, const char *program)
1092 free(api); 1092 free(api);
1093 edje_edit_string_free(str2); 1093 edje_edit_string_free(str2);
1094 1094
1095 str = edje_edit_program_signal_get(ed, program); 1095 str = edje_edit_program_signal_get(ed, pprogram);
1096 if (machine) printf("SIGNAL: %s\n", str ? str : ""); 1096 if (machine) printf("SIGNAL: %s\n", str ? str : "");
1097 else if (str) printf(INDENT3 "signal: \"%s\";\n", str); 1097 else if (str) printf(INDENT3 "signal: \"%s\";\n", str);
1098 edje_edit_string_free(str); 1098 edje_edit_string_free(str);
1099 1099
1100 str = edje_edit_program_source_get(ed, program); 1100 str = edje_edit_program_source_get(ed, pprogram);
1101 if (machine) printf("SOURCE: %s\n", str ? str : ""); 1101 if (machine) printf("SOURCE: %s\n", str ? str : "");
1102 else if (str) printf(INDENT3 "source: \"%s\";\n", str); 1102 else if (str) printf(INDENT3 "source: \"%s\";\n", str);
1103 edje_edit_string_free(str); 1103 edje_edit_string_free(str);
@@ -1105,7 +1105,7 @@ program_details(Evas_Object *ed, const char *program)
1105 if (detail >= 1) 1105 if (detail >= 1)
1106 { 1106 {
1107 Eina_List *lst, *l; 1107 Eina_List *lst, *l;
1108 Edje_Action_Type type = edje_edit_program_action_get(ed, program); 1108 Edje_Action_Type type = edje_edit_program_action_get(ed, pprogram);
1109 switch (type) 1109 switch (type)
1110 { 1110 {
1111 case EDJE_ACTION_TYPE_ACTION_STOP: 1111 case EDJE_ACTION_TYPE_ACTION_STOP:
@@ -1113,18 +1113,18 @@ program_details(Evas_Object *ed, const char *program)
1113 else puts(INDENT3 "action: ACTION_STOP;"); 1113 else puts(INDENT3 "action: ACTION_STOP;");
1114 break; 1114 break;
1115 case EDJE_ACTION_TYPE_STATE_SET: 1115 case EDJE_ACTION_TYPE_STATE_SET:
1116 str = edje_edit_program_state_get(ed, program); 1116 str = edje_edit_program_state_get(ed, pprogram);
1117 if (machine) 1117 if (machine)
1118 printf("ACTION: STATE_SET\nACTION-STATE: %s %g\n", 1118 printf("ACTION: STATE_SET\nACTION-STATE: %s %g\n",
1119 str, edje_edit_program_value_get(ed, program)); 1119 str, edje_edit_program_value_get(ed, pprogram));
1120 else 1120 else
1121 printf(INDENT3 "action: STATE_SET \"%s\" %2.1f;\n", 1121 printf(INDENT3 "action: STATE_SET \"%s\" %2.1f;\n",
1122 str, edje_edit_program_value_get(ed, program)); 1122 str, edje_edit_program_value_get(ed, pprogram));
1123 edje_edit_string_free(str); 1123 edje_edit_string_free(str);
1124 break; 1124 break;
1125 case EDJE_ACTION_TYPE_SIGNAL_EMIT: 1125 case EDJE_ACTION_TYPE_SIGNAL_EMIT:
1126 str = edje_edit_program_state_get(ed, program); 1126 str = edje_edit_program_state_get(ed, pprogram);
1127 str2 = edje_edit_program_state2_get(ed, program); 1127 str2 = edje_edit_program_state2_get(ed, pprogram);
1128 if (machine) 1128 if (machine)
1129 printf("ACTION: SIGNAL_EMIT\nACTION-SIGNAL: %s\n" 1129 printf("ACTION: SIGNAL_EMIT\nACTION-SIGNAL: %s\n"
1130 "ACTION-SOURCE: %s\n", 1130 "ACTION-SOURCE: %s\n",
@@ -1146,7 +1146,7 @@ program_details(Evas_Object *ed, const char *program)
1146 //~ eina_strbuf_append(buf, I4"action: DRAG_VAL_PAGE TODO;\n"); 1146 //~ eina_strbuf_append(buf, I4"action: DRAG_VAL_PAGE TODO;\n");
1147 //~ break; 1147 //~ break;
1148 default: 1148 default:
1149 ERR("Unhandled program action type %d", type); 1149 ERR("Unhandled pprogram action type %d", type);
1150 break; 1150 break;
1151 } 1151 }
1152 1152
@@ -1154,11 +1154,11 @@ program_details(Evas_Object *ed, const char *program)
1154 { 1154 {
1155 double from, range; 1155 double from, range;
1156 1156
1157 from = edje_edit_program_transition_time_get(ed, program); 1157 from = edje_edit_program_transition_time_get(ed, pprogram);
1158 if (from > 0.0) 1158 if (from > 0.0)
1159 { 1159 {
1160 str = _transition_name_get 1160 str = _transition_name_get
1161 (edje_edit_program_transition_get(ed, program)); 1161 (edje_edit_program_transition_get(ed, pprogram));
1162 if (machine) 1162 if (machine)
1163 printf("TRANSITION-NAME: %s\nTRANSITION-DURATION: %g\n", 1163 printf("TRANSITION-NAME: %s\nTRANSITION-DURATION: %g\n",
1164 str, from); 1164 str, from);
@@ -1166,8 +1166,8 @@ program_details(Evas_Object *ed, const char *program)
1166 /* do not free str! */ 1166 /* do not free str! */
1167 } 1167 }
1168 1168
1169 from = edje_edit_program_in_from_get(ed, program); 1169 from = edje_edit_program_in_from_get(ed, pprogram);
1170 range = edje_edit_program_in_range_get(ed, program); 1170 range = edje_edit_program_in_range_get(ed, pprogram);
1171 if (FDIFF(from, 0.0) || FDIFF(range, 0.0)) 1171 if (FDIFF(from, 0.0) || FDIFF(range, 0.0))
1172 { 1172 {
1173 if (machine) 1173 if (machine)
@@ -1176,13 +1176,13 @@ program_details(Evas_Object *ed, const char *program)
1176 } 1176 }
1177 } 1177 }
1178 1178
1179 lst = edje_edit_program_targets_get(ed, program); 1179 lst = edje_edit_program_targets_get(ed, pprogram);
1180 EINA_LIST_FOREACH(lst, l, str) 1180 EINA_LIST_FOREACH(lst, l, str)
1181 if (machine) printf("TARGET: %s\n", str); 1181 if (machine) printf("TARGET: %s\n", str);
1182 else printf(INDENT3 "target: \"%s\";\n", str); 1182 else printf(INDENT3 "target: \"%s\";\n", str);
1183 edje_edit_string_list_free(lst); 1183 edje_edit_string_list_free(lst);
1184 1184
1185 lst = edje_edit_program_afters_get(ed, program); 1185 lst = edje_edit_program_afters_get(ed, pprogram);
1186 EINA_LIST_FOREACH(lst, l, str) 1186 EINA_LIST_FOREACH(lst, l, str)
1187 if (machine) printf("AFTER: %s\n", str); 1187 if (machine) printf("AFTER: %s\n", str);
1188 else printf(INDENT3 "after: \"%s\";\n", str); 1188 else printf(INDENT3 "after: \"%s\";\n", str);
diff --git a/libraries/edje/src/bin/edje_multisense_convert.c b/libraries/edje/src/bin/edje_multisense_convert.c
index d37d218..62c2f67 100644
--- a/libraries/edje/src/bin/edje_multisense_convert.c
+++ b/libraries/edje/src/bin/edje_multisense_convert.c
@@ -12,7 +12,7 @@
12# endif 12# endif
13 13
14Edje_Sound_Encode * 14Edje_Sound_Encode *
15_edje_multisense_encode(const char *filename, Edje_Sound_Sample *sample, double quality) 15_edje_multisense_encode(const char *filename, Edje_Sound_Sample *sample, double quality __UNUSED__)
16{ 16{
17 SF_INFO sfinfo; 17 SF_INFO sfinfo;
18 SNDFILE* sfile; 18 SNDFILE* sfile;
diff --git a/libraries/edje/src/bin/epp/Makefile.in b/libraries/edje/src/bin/epp/Makefile.in
index 2ef2e56..c1a8ee5 100644
--- a/libraries/edje/src/bin/epp/Makefile.in
+++ b/libraries/edje/src/bin/epp/Makefile.in
@@ -225,8 +225,6 @@ PACKAGE_URL = @PACKAGE_URL@
225PACKAGE_VERSION = @PACKAGE_VERSION@ 225PACKAGE_VERSION = @PACKAGE_VERSION@
226PATH_SEPARATOR = @PATH_SEPARATOR@ 226PATH_SEPARATOR = @PATH_SEPARATOR@
227PKG_CONFIG = @PKG_CONFIG@ 227PKG_CONFIG = @PKG_CONFIG@
228PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
229PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
230PYTHON = @PYTHON@ 228PYTHON = @PYTHON@
231PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ 229PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
232PYTHON_PLATFORM = @PYTHON_PLATFORM@ 230PYTHON_PLATFORM = @PYTHON_PLATFORM@
diff --git a/libraries/edje/src/bin/epp/cppmain.c b/libraries/edje/src/bin/epp/cppmain.c
index 45b67b5..ea0a0b2 100644
--- a/libraries/edje/src/bin/epp/cppmain.c
+++ b/libraries/edje/src/bin/epp/cppmain.c
@@ -44,7 +44,9 @@ main(int argc, char **argv)
44 int argi = 1; /* Next argument to handle. */ 44 int argi = 1; /* Next argument to handle. */
45 struct cpp_options *opts = &options; 45 struct cpp_options *opts = &options;
46 enum cpp_token kind; 46 enum cpp_token kind;
47 int got_text; 47#if EPP_DEBUG
48 int got_text = 0;
49#endif
48 50
49 p = argv[0] + strlen(argv[0]); 51 p = argv[0] + strlen(argv[0]);
50#ifndef __EMX__ 52#ifndef __EMX__
@@ -76,7 +78,6 @@ main(int argc, char **argv)
76 else if (!freopen(opts->out_fname, "w", stdout)) 78 else if (!freopen(opts->out_fname, "w", stdout))
77 cpp_pfatal_with_name(&parse_in, opts->out_fname); 79 cpp_pfatal_with_name(&parse_in, opts->out_fname);
78 80
79 got_text = 0;
80 for (i = 0;; i++) 81 for (i = 0;; i++)
81 { 82 {
82 kind = cpp_get_token(&parse_in); 83 kind = cpp_get_token(&parse_in);
@@ -108,7 +109,9 @@ main(int argc, char **argv)
108 case CPP_COMMA: 109 case CPP_COMMA:
109 case CPP_SEMICOLON: 110 case CPP_SEMICOLON:
110 case CPP_3DOTS: 111 case CPP_3DOTS:
111 got_text = 1; 112#if EPP_DEBUG
113 got_text = 1;
114#endif
112 continue; 115 continue;
113 116
114 case CPP_COMMENT: 117 case CPP_COMMENT:
@@ -130,7 +133,9 @@ main(int argc, char **argv)
130 exit(FATAL_EXIT_CODE); 133 exit(FATAL_EXIT_CODE);
131 } 134 }
132 parse_in.limit = parse_in.token_buffer; 135 parse_in.limit = parse_in.token_buffer;
133 got_text = 0; 136#if EPP_DEBUG
137 got_text = 0;
138#endif
134 } 139 }
135 140
136 done: 141 done:
diff --git a/libraries/edje/src/examples/Makefile.am b/libraries/edje/src/examples/Makefile.am
index 20e2c81..579f148 100644
--- a/libraries/edje/src/examples/Makefile.am
+++ b/libraries/edje/src/examples/Makefile.am
@@ -1,12 +1,15 @@
1MAINTAINERCLEANFILES = Makefile.in 1MAINTAINERCLEANFILES = Makefile.in
2 2
3pkglibdir = $(datadir)/$(PACKAGE)/examples 3examplesdir = $(datadir)/$(PACKAGE)/examples
4
4if ENABLE_MULTISENSE 5if ENABLE_MULTISENSE
5MULTISENSE_EDC_FILE = multisense.edc 6MULTISENSE_EDC_FILE = multisense.edc
6SND_DIR = -sd $(srcdir) 7SND_DIR = -sd $(srcdir)
7endif 8endif
9
8#put here all EDCs one needs to the examples 10#put here all EDCs one needs to the examples
9EDCS = basic.edc \ 11EDCS = \
12 basic.edc \
10 swallow.edc \ 13 swallow.edc \
11 text.edc \ 14 text.edc \
12 table.edc \ 15 table.edc \
@@ -20,26 +23,48 @@ EDCS = basic.edc \
20 sigtest.edc \ 23 sigtest.edc \
21 $(MULTISENSE_EDC_FILE) 24 $(MULTISENSE_EDC_FILE)
22 25
26.edc.edj:
27 $(edje_cc) -v -fd $(srcdir) -id $(srcdir) $(SND_DIR) $< $(builddir)/$(@F)
28
29EDJS = $(EDCS:%.edc=%.edj)
30
23filesdir = $(datadir)/$(PACKAGE)/examples 31filesdir = $(datadir)/$(PACKAGE)/examples
24files_DATA = 32files_DATA = \
33 $(EDCS) \
34 bubble.png \
35 red.png \
36 test.png \
37 Vera.ttf \
38 edje-basic.c \
39 edje-swallow.c \
40 edje-text.c \
41 edje-table.c \
42 edje-box.c \
43 edje-box2.c \
44 edje-drag.c \
45 edje-signals-messages.c \
46 edje-color-class.c \
47 edje-perspective.c \
48 edje-animations.c \
49 sigtest.c
50
51EXTRA_DIST = $(files_DATA)
25 52
26if BUILD_EXAMPLES 53if BUILD_EXAMPLES
27 54
28AM_CPPFLAGS = \ 55AM_CPPFLAGS = \
29-I. \ 56 -I. \
30-I$(top_srcdir)/src/lib \ 57 -I$(top_srcdir)/src/lib \
31-I$(top_srcdir)/src/lib/include \ 58 -I$(top_srcdir)/src/lib/include \
32-DPACKAGE_BIN_DIR=\"$(bindir)\" \ 59 -DPACKAGE_BIN_DIR=\"$(bindir)\" \
33-DPACKAGE_LIB_DIR=\"$(libdir)\" \ 60 -DPACKAGE_LIB_DIR=\"$(libdir)\" \
34-DPACKAGE_DATA_DIR=\"$(datadir)/$(PACKAGE)\" \ 61 -DPACKAGE_DATA_DIR=\"$(datadir)/$(PACKAGE)\" \
35-DPACKAGE_EXAMPLES_DIR=\"$(datadir)/$(PACKAGE)/examples\" 62 -DPACKAGE_EXAMPLES_DIR=\"$(datadir)/$(PACKAGE)/examples\" \
36 63 @EDJE_CFLAGS@
37pkglib_PROGRAMS =
38 64
39#the ones using ecore_evas follow 65files_DATA += $(EDJS)
40AM_CPPFLAGS += @EDJE_CFLAGS@
41 66
42pkglib_PROGRAMS += \ 67examples_PROGRAMS = \
43 edje-basic \ 68 edje-basic \
44 edje-swallow \ 69 edje-swallow \
45 edje-text \ 70 edje-text \
@@ -55,53 +80,4 @@ pkglib_PROGRAMS += \
55 80
56LDADD = $(top_builddir)/src/lib/libedje.la @EDJE_LIBS@ 81LDADD = $(top_builddir)/src/lib/libedje.la @EDJE_LIBS@
57 82
58.edc.edj:
59 $(edje_cc) -v -id $(srcdir) $(SND_DIR) $< $(builddir)/$(@F)
60
61EDJS = $(EDCS:%.edc=%.edj)
62
63files_DATA += $(EDJS)
64
65endif # if BUILD_EXAMPLES
66
67if INSTALL_EXAMPLES
68
69#put here additional data when installing examples
70files_DATA += \
71 $(srcdir)/bubble.png \
72 $(srcdir)/red.png \
73 $(srcdir)/test.png \
74 $(srcdir)/Vera.ttf
75
76files_DATA += \
77 $(EDCS) \
78 $(srcdir)/edje-basic.c \
79 $(srcdir)/edje-swallow.c \
80 $(srcdir)/edje-text.c \
81 $(srcdir)/edje-table.c \
82 $(srcdir)/edje-box.c \
83 $(srcdir)/edje-box2.c \
84 $(srcdir)/edje-drag.c \
85 $(srcdir)/edje-signals-messages.c \
86 $(srcdir)/edje-color-class.c \
87 $(srcdir)/edje-perspective.c \
88 $(srcdir)/edje-animations.c \
89 $(srcdir)/sigtest.c
90endif 83endif
91
92EXTRA_DIST = $(EDCS) \
93 $(srcdir)/bubble.png \
94 $(srcdir)/red.png \
95 $(srcdir)/test.png \
96 $(srcdir)/edje-basic.c \
97 $(srcdir)/edje-swallow.c \
98 $(srcdir)/edje-text.c \
99 $(srcdir)/edje-table.c \
100 $(srcdir)/edje-box.c \
101 $(srcdir)/edje-box2.c \
102 $(srcdir)/edje-drag.c \
103 $(srcdir)/edje-signals-messages.c \
104 $(srcdir)/edje-color-class.c \
105 $(srcdir)/edje-perspective.c \
106 $(srcdir)/edje-animations.c \
107 $(srcdir)/sigtest.c
diff --git a/libraries/edje/src/examples/Makefile.in b/libraries/edje/src/examples/Makefile.in
index bde628f..7f867e0 100644
--- a/libraries/edje/src/examples/Makefile.in
+++ b/libraries/edje/src/examples/Makefile.in
@@ -19,6 +19,7 @@
19VPATH = @srcdir@ 19VPATH = @srcdir@
20pkgdatadir = $(datadir)/@PACKAGE@ 20pkgdatadir = $(datadir)/@PACKAGE@
21pkgincludedir = $(includedir)/@PACKAGE@ 21pkgincludedir = $(includedir)/@PACKAGE@
22pkglibdir = $(libdir)/@PACKAGE@
22pkglibexecdir = $(libexecdir)/@PACKAGE@ 23pkglibexecdir = $(libexecdir)/@PACKAGE@
23am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd 24am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
24install_sh_DATA = $(install_sh) -c -m 644 25install_sh_DATA = $(install_sh) -c -m 644
@@ -34,7 +35,8 @@ PRE_UNINSTALL = :
34POST_UNINSTALL = : 35POST_UNINSTALL = :
35build_triplet = @build@ 36build_triplet = @build@
36host_triplet = @host@ 37host_triplet = @host@
37@BUILD_EXAMPLES_TRUE@pkglib_PROGRAMS = edje-basic$(EXEEXT) \ 38@BUILD_EXAMPLES_TRUE@am__append_1 = $(EDJS)
39@BUILD_EXAMPLES_TRUE@examples_PROGRAMS = edje-basic$(EXEEXT) \
38@BUILD_EXAMPLES_TRUE@ edje-swallow$(EXEEXT) edje-text$(EXEEXT) \ 40@BUILD_EXAMPLES_TRUE@ edje-swallow$(EXEEXT) edje-text$(EXEEXT) \
39@BUILD_EXAMPLES_TRUE@ edje-table$(EXEEXT) edje-box$(EXEEXT) \ 41@BUILD_EXAMPLES_TRUE@ edje-table$(EXEEXT) edje-box$(EXEEXT) \
40@BUILD_EXAMPLES_TRUE@ edje-box2$(EXEEXT) edje-drag$(EXEEXT) \ 42@BUILD_EXAMPLES_TRUE@ edje-box2$(EXEEXT) edje-drag$(EXEEXT) \
@@ -42,24 +44,6 @@ host_triplet = @host@
42@BUILD_EXAMPLES_TRUE@ edje-color-class$(EXEEXT) \ 44@BUILD_EXAMPLES_TRUE@ edje-color-class$(EXEEXT) \
43@BUILD_EXAMPLES_TRUE@ edje-perspective$(EXEEXT) \ 45@BUILD_EXAMPLES_TRUE@ edje-perspective$(EXEEXT) \
44@BUILD_EXAMPLES_TRUE@ edje-animations$(EXEEXT) sigtest$(EXEEXT) 46@BUILD_EXAMPLES_TRUE@ edje-animations$(EXEEXT) sigtest$(EXEEXT)
45@BUILD_EXAMPLES_TRUE@am__append_1 = $(EDJS)
46
47#put here additional data when installing examples
48@INSTALL_EXAMPLES_TRUE@am__append_2 = $(srcdir)/bubble.png \
49@INSTALL_EXAMPLES_TRUE@ $(srcdir)/red.png $(srcdir)/test.png \
50@INSTALL_EXAMPLES_TRUE@ $(srcdir)/Vera.ttf $(EDCS) \
51@INSTALL_EXAMPLES_TRUE@ $(srcdir)/edje-basic.c \
52@INSTALL_EXAMPLES_TRUE@ $(srcdir)/edje-swallow.c \
53@INSTALL_EXAMPLES_TRUE@ $(srcdir)/edje-text.c \
54@INSTALL_EXAMPLES_TRUE@ $(srcdir)/edje-table.c \
55@INSTALL_EXAMPLES_TRUE@ $(srcdir)/edje-box.c \
56@INSTALL_EXAMPLES_TRUE@ $(srcdir)/edje-box2.c \
57@INSTALL_EXAMPLES_TRUE@ $(srcdir)/edje-drag.c \
58@INSTALL_EXAMPLES_TRUE@ $(srcdir)/edje-signals-messages.c \
59@INSTALL_EXAMPLES_TRUE@ $(srcdir)/edje-color-class.c \
60@INSTALL_EXAMPLES_TRUE@ $(srcdir)/edje-perspective.c \
61@INSTALL_EXAMPLES_TRUE@ $(srcdir)/edje-animations.c \
62@INSTALL_EXAMPLES_TRUE@ $(srcdir)/sigtest.c
63subdir = src/examples 47subdir = src/examples
64DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in 48DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
65ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 49ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -77,8 +61,8 @@ mkinstalldirs = $(install_sh) -d
77CONFIG_HEADER = $(top_builddir)/config.h 61CONFIG_HEADER = $(top_builddir)/config.h
78CONFIG_CLEAN_FILES = 62CONFIG_CLEAN_FILES =
79CONFIG_CLEAN_VPATH_FILES = 63CONFIG_CLEAN_VPATH_FILES =
80am__installdirs = "$(DESTDIR)$(pkglibdir)" "$(DESTDIR)$(filesdir)" 64am__installdirs = "$(DESTDIR)$(examplesdir)" "$(DESTDIR)$(filesdir)"
81PROGRAMS = $(pkglib_PROGRAMS) 65PROGRAMS = $(examples_PROGRAMS)
82edje_animations_SOURCES = edje-animations.c 66edje_animations_SOURCES = edje-animations.c
83edje_animations_OBJECTS = edje-animations.$(OBJEXT) 67edje_animations_OBJECTS = edje-animations.$(OBJEXT)
84edje_animations_LDADD = $(LDADD) 68edje_animations_LDADD = $(LDADD)
@@ -201,7 +185,6 @@ DATA = $(files_DATA)
201ETAGS = etags 185ETAGS = etags
202CTAGS = ctags 186CTAGS = ctags
203DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) 187DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
204pkglibdir = $(datadir)/$(PACKAGE)/examples
205ACLOCAL = @ACLOCAL@ 188ACLOCAL = @ACLOCAL@
206ALLOCA = @ALLOCA@ 189ALLOCA = @ALLOCA@
207ALSA_CFLAGS = @ALSA_CFLAGS@ 190ALSA_CFLAGS = @ALSA_CFLAGS@
@@ -296,8 +279,6 @@ PACKAGE_URL = @PACKAGE_URL@
296PACKAGE_VERSION = @PACKAGE_VERSION@ 279PACKAGE_VERSION = @PACKAGE_VERSION@
297PATH_SEPARATOR = @PATH_SEPARATOR@ 280PATH_SEPARATOR = @PATH_SEPARATOR@
298PKG_CONFIG = @PKG_CONFIG@ 281PKG_CONFIG = @PKG_CONFIG@
299PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
300PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
301PYTHON = @PYTHON@ 282PYTHON = @PYTHON@
302PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ 283PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
303PYTHON_PLATFORM = @PYTHON_PLATFORM@ 284PYTHON_PLATFORM = @PYTHON_PLATFORM@
@@ -385,10 +366,13 @@ top_srcdir = @top_srcdir@
385version_info = @version_info@ 366version_info = @version_info@
386vimdir = @vimdir@ 367vimdir = @vimdir@
387MAINTAINERCLEANFILES = Makefile.in 368MAINTAINERCLEANFILES = Makefile.in
369examplesdir = $(datadir)/$(PACKAGE)/examples
388@ENABLE_MULTISENSE_TRUE@MULTISENSE_EDC_FILE = multisense.edc 370@ENABLE_MULTISENSE_TRUE@MULTISENSE_EDC_FILE = multisense.edc
389@ENABLE_MULTISENSE_TRUE@SND_DIR = -sd $(srcdir) 371@ENABLE_MULTISENSE_TRUE@SND_DIR = -sd $(srcdir)
372
390#put here all EDCs one needs to the examples 373#put here all EDCs one needs to the examples
391EDCS = basic.edc \ 374EDCS = \
375 basic.edc \
392 swallow.edc \ 376 swallow.edc \
393 text.edc \ 377 text.edc \
394 table.edc \ 378 table.edc \
@@ -402,36 +386,24 @@ EDCS = basic.edc \
402 sigtest.edc \ 386 sigtest.edc \
403 $(MULTISENSE_EDC_FILE) 387 $(MULTISENSE_EDC_FILE)
404 388
389EDJS = $(EDCS:%.edc=%.edj)
405filesdir = $(datadir)/$(PACKAGE)/examples 390filesdir = $(datadir)/$(PACKAGE)/examples
406files_DATA = $(am__append_1) $(am__append_2) 391files_DATA = $(EDCS) bubble.png red.png test.png Vera.ttf edje-basic.c \
407 392 edje-swallow.c edje-text.c edje-table.c edje-box.c edje-box2.c \
408#the ones using ecore_evas follow 393 edje-drag.c edje-signals-messages.c edje-color-class.c \
409@BUILD_EXAMPLES_TRUE@AM_CPPFLAGS = -I. -I$(top_srcdir)/src/lib \ 394 edje-perspective.c edje-animations.c sigtest.c $(am__append_1)
410@BUILD_EXAMPLES_TRUE@ -I$(top_srcdir)/src/lib/include \ 395EXTRA_DIST = $(files_DATA)
411@BUILD_EXAMPLES_TRUE@ -DPACKAGE_BIN_DIR=\"$(bindir)\" \ 396@BUILD_EXAMPLES_TRUE@AM_CPPFLAGS = \
412@BUILD_EXAMPLES_TRUE@ -DPACKAGE_LIB_DIR=\"$(libdir)\" \ 397@BUILD_EXAMPLES_TRUE@ -I. \
413@BUILD_EXAMPLES_TRUE@ -DPACKAGE_DATA_DIR=\"$(datadir)/$(PACKAGE)\" \ 398@BUILD_EXAMPLES_TRUE@ -I$(top_srcdir)/src/lib \
414@BUILD_EXAMPLES_TRUE@ -DPACKAGE_EXAMPLES_DIR=\"$(datadir)/$(PACKAGE)/examples\" \ 399@BUILD_EXAMPLES_TRUE@ -I$(top_srcdir)/src/lib/include \
415@BUILD_EXAMPLES_TRUE@ @EDJE_CFLAGS@ $(am__empty) 400@BUILD_EXAMPLES_TRUE@ -DPACKAGE_BIN_DIR=\"$(bindir)\" \
416@BUILD_EXAMPLES_TRUE@LDADD = $(top_builddir)/src/lib/libedje.la @EDJE_LIBS@ 401@BUILD_EXAMPLES_TRUE@ -DPACKAGE_LIB_DIR=\"$(libdir)\" \
417@BUILD_EXAMPLES_TRUE@EDJS = $(EDCS:%.edc=%.edj) 402@BUILD_EXAMPLES_TRUE@ -DPACKAGE_DATA_DIR=\"$(datadir)/$(PACKAGE)\" \
418EXTRA_DIST = $(EDCS) \ 403@BUILD_EXAMPLES_TRUE@ -DPACKAGE_EXAMPLES_DIR=\"$(datadir)/$(PACKAGE)/examples\" \
419 $(srcdir)/bubble.png \ 404@BUILD_EXAMPLES_TRUE@ @EDJE_CFLAGS@
420 $(srcdir)/red.png \
421 $(srcdir)/test.png \
422 $(srcdir)/edje-basic.c \
423 $(srcdir)/edje-swallow.c \
424 $(srcdir)/edje-text.c \
425 $(srcdir)/edje-table.c \
426 $(srcdir)/edje-box.c \
427 $(srcdir)/edje-box2.c \
428 $(srcdir)/edje-drag.c \
429 $(srcdir)/edje-signals-messages.c \
430 $(srcdir)/edje-color-class.c \
431 $(srcdir)/edje-perspective.c \
432 $(srcdir)/edje-animations.c \
433 $(srcdir)/sigtest.c
434 405
406@BUILD_EXAMPLES_TRUE@LDADD = $(top_builddir)/src/lib/libedje.la @EDJE_LIBS@
435all: all-am 407all: all-am
436 408
437.SUFFIXES: 409.SUFFIXES:
@@ -466,10 +438,10 @@ $(top_srcdir)/configure: $(am__configure_deps)
466$(ACLOCAL_M4): $(am__aclocal_m4_deps) 438$(ACLOCAL_M4): $(am__aclocal_m4_deps)
467 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh 439 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
468$(am__aclocal_m4_deps): 440$(am__aclocal_m4_deps):
469install-pkglibPROGRAMS: $(pkglib_PROGRAMS) 441install-examplesPROGRAMS: $(examples_PROGRAMS)
470 @$(NORMAL_INSTALL) 442 @$(NORMAL_INSTALL)
471 test -z "$(pkglibdir)" || $(MKDIR_P) "$(DESTDIR)$(pkglibdir)" 443 test -z "$(examplesdir)" || $(MKDIR_P) "$(DESTDIR)$(examplesdir)"
472 @list='$(pkglib_PROGRAMS)'; test -n "$(pkglibdir)" || list=; \ 444 @list='$(examples_PROGRAMS)'; test -n "$(examplesdir)" || list=; \
473 for p in $$list; do echo "$$p $$p"; done | \ 445 for p in $$list; do echo "$$p $$p"; done | \
474 sed 's/$(EXEEXT)$$//' | \ 446 sed 's/$(EXEEXT)$$//' | \
475 while read p p1; do if test -f $$p || test -f $$p1; \ 447 while read p p1; do if test -f $$p || test -f $$p1; \
@@ -486,23 +458,23 @@ install-pkglibPROGRAMS: $(pkglib_PROGRAMS)
486 while read type dir files; do \ 458 while read type dir files; do \
487 if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ 459 if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
488 test -z "$$files" || { \ 460 test -z "$$files" || { \
489 echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(pkglibdir)$$dir'"; \ 461 echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(examplesdir)$$dir'"; \
490 $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(pkglibdir)$$dir" || exit $$?; \ 462 $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(examplesdir)$$dir" || exit $$?; \
491 } \ 463 } \
492 ; done 464 ; done
493 465
494uninstall-pkglibPROGRAMS: 466uninstall-examplesPROGRAMS:
495 @$(NORMAL_UNINSTALL) 467 @$(NORMAL_UNINSTALL)
496 @list='$(pkglib_PROGRAMS)'; test -n "$(pkglibdir)" || list=; \ 468 @list='$(examples_PROGRAMS)'; test -n "$(examplesdir)" || list=; \
497 files=`for p in $$list; do echo "$$p"; done | \ 469 files=`for p in $$list; do echo "$$p"; done | \
498 sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ 470 sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
499 -e 's/$$/$(EXEEXT)/' `; \ 471 -e 's/$$/$(EXEEXT)/' `; \
500 test -n "$$list" || exit 0; \ 472 test -n "$$list" || exit 0; \
501 echo " ( cd '$(DESTDIR)$(pkglibdir)' && rm -f" $$files ")"; \ 473 echo " ( cd '$(DESTDIR)$(examplesdir)' && rm -f" $$files ")"; \
502 cd "$(DESTDIR)$(pkglibdir)" && rm -f $$files 474 cd "$(DESTDIR)$(examplesdir)" && rm -f $$files
503 475
504clean-pkglibPROGRAMS: 476clean-examplesPROGRAMS:
505 @list='$(pkglib_PROGRAMS)'; test -n "$$list" || exit 0; \ 477 @list='$(examples_PROGRAMS)'; test -n "$$list" || exit 0; \
506 echo " rm -f" $$list; \ 478 echo " rm -f" $$list; \
507 rm -f $$list || exit $$?; \ 479 rm -f $$list || exit $$?; \
508 test -n "$(EXEEXT)" || exit 0; \ 480 test -n "$(EXEEXT)" || exit 0; \
@@ -701,7 +673,7 @@ check-am: all-am
701check: check-am 673check: check-am
702all-am: Makefile $(PROGRAMS) $(DATA) 674all-am: Makefile $(PROGRAMS) $(DATA)
703installdirs: 675installdirs:
704 for dir in "$(DESTDIR)$(pkglibdir)" "$(DESTDIR)$(filesdir)"; do \ 676 for dir in "$(DESTDIR)$(examplesdir)" "$(DESTDIR)$(filesdir)"; do \
705 test -z "$$dir" || $(MKDIR_P) "$$dir"; \ 677 test -z "$$dir" || $(MKDIR_P) "$$dir"; \
706 done 678 done
707install: install-am 679install: install-am
@@ -732,7 +704,7 @@ maintainer-clean-generic:
732 -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) 704 -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
733clean: clean-am 705clean: clean-am
734 706
735clean-am: clean-generic clean-libtool clean-pkglibPROGRAMS \ 707clean-am: clean-examplesPROGRAMS clean-generic clean-libtool \
736 mostlyclean-am 708 mostlyclean-am
737 709
738distclean: distclean-am 710distclean: distclean-am
@@ -753,13 +725,13 @@ info: info-am
753 725
754info-am: 726info-am:
755 727
756install-data-am: install-filesDATA 728install-data-am: install-examplesPROGRAMS install-filesDATA
757 729
758install-dvi: install-dvi-am 730install-dvi: install-dvi-am
759 731
760install-dvi-am: 732install-dvi-am:
761 733
762install-exec-am: install-pkglibPROGRAMS 734install-exec-am:
763 735
764install-html: install-html-am 736install-html: install-html-am
765 737
@@ -799,28 +771,29 @@ ps: ps-am
799 771
800ps-am: 772ps-am:
801 773
802uninstall-am: uninstall-filesDATA uninstall-pkglibPROGRAMS 774uninstall-am: uninstall-examplesPROGRAMS uninstall-filesDATA
803 775
804.MAKE: install-am install-strip 776.MAKE: install-am install-strip
805 777
806.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ 778.PHONY: CTAGS GTAGS all all-am check check-am clean \
807 clean-libtool clean-pkglibPROGRAMS ctags distclean \ 779 clean-examplesPROGRAMS clean-generic clean-libtool ctags \
808 distclean-compile distclean-generic distclean-libtool \ 780 distclean distclean-compile distclean-generic \
809 distclean-tags distdir dvi dvi-am html html-am info info-am \ 781 distclean-libtool distclean-tags distdir dvi dvi-am html \
810 install install-am install-data install-data-am install-dvi \ 782 html-am info info-am install install-am install-data \
811 install-dvi-am install-exec install-exec-am install-filesDATA \ 783 install-data-am install-dvi install-dvi-am \
812 install-html install-html-am install-info install-info-am \ 784 install-examplesPROGRAMS install-exec install-exec-am \
813 install-man install-pdf install-pdf-am install-pkglibPROGRAMS \ 785 install-filesDATA install-html install-html-am install-info \
786 install-info-am install-man install-pdf install-pdf-am \
814 install-ps install-ps-am install-strip installcheck \ 787 install-ps install-ps-am install-strip installcheck \
815 installcheck-am installdirs maintainer-clean \ 788 installcheck-am installdirs maintainer-clean \
816 maintainer-clean-generic mostlyclean mostlyclean-compile \ 789 maintainer-clean-generic mostlyclean mostlyclean-compile \
817 mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ 790 mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
818 tags uninstall uninstall-am uninstall-filesDATA \ 791 tags uninstall uninstall-am uninstall-examplesPROGRAMS \
819 uninstall-pkglibPROGRAMS 792 uninstall-filesDATA
820 793
821 794
822@BUILD_EXAMPLES_TRUE@.edc.edj: 795.edc.edj:
823@BUILD_EXAMPLES_TRUE@ $(edje_cc) -v -id $(srcdir) $(SND_DIR) $< $(builddir)/$(@F) 796 $(edje_cc) -v -fd $(srcdir) -id $(srcdir) $(SND_DIR) $< $(builddir)/$(@F)
824 797
825# Tell versions [3.59,3.63) of GNU make to not export all variables. 798# Tell versions [3.59,3.63) of GNU make to not export all variables.
826# Otherwise a system limit (for SysV at least) may be exceeded. 799# Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/libraries/edje/src/examples/Vera.ttf b/libraries/edje/src/examples/Vera.ttf
new file mode 100644
index 0000000..58cd6b5
--- /dev/null
+++ b/libraries/edje/src/examples/Vera.ttf
Binary files differ
diff --git a/libraries/edje/src/examples/lua_script.edc b/libraries/edje/src/examples/lua_script.edc
index 24e8ebe..23c2926 100644
--- a/libraries/edje/src/examples/lua_script.edc
+++ b/libraries/edje/src/examples/lua_script.edc
@@ -104,6 +104,10 @@ collections {
104 print("lua::init ... " .. D.val); 104 print("lua::init ... " .. D.val);
105 edje.echo("lua::echo('hello world')"); 105 edje.echo("lua::echo('hello world')");
106 106
107 --// How to check the edje version.
108 version = edje.version();
109 print("The edje version number is " .. version.major .. "." .. version.minor);
110
107 --// actually add the timer to call mycb in 1.23 sec 111 --// actually add the timer to call mycb in 1.23 sec
108 D.tim = edje.timer(1.23, mycb); 112 D.tim = edje.timer(1.23, mycb);
109 D.tra = edje.transition(5.0, mycb3); 113 D.tra = edje.transition(5.0, mycb3);
@@ -168,6 +172,14 @@ collections {
168 print(D.text:text()); 172 print(D.text:text());
169 D.text:show(); 173 D.text:show();
170 174
175 --// Put a few bogus API calls here to test the bogus API protection,
176 --// If the bogus API protection works, these should get ignored, but everything else runs smoothly.
177 --// Otherwise, the map is not done, the bubbles are not done, but the timers keep runinng.
178 bogus.failme(1, "two", D.rect);
179 temp = bogus.failme2();
180 D.text.bogus();
181 edje.bogus2();
182
171 --// Fun with maps! 183 --// Fun with maps!
172 D.map = edje.map(4); --// 4 is the only supported map size at the moment. 184 D.map = edje.map(4); --// 4 is the only supported map size at the moment.
173 --// These all do the same thing. 185 --// These all do the same thing.
diff --git a/libraries/edje/src/examples/multisense.edc b/libraries/edje/src/examples/multisense.edc
new file mode 100644
index 0000000..5a3cf79
--- /dev/null
+++ b/libraries/edje/src/examples/multisense.edc
@@ -0,0 +1,139 @@
1#if 0
2collections {
3 sounds {
4 sample {
5 name: "sound_name1" RAW;
6 source: "8806__jovica__basic-sine-wave-g-1.wav";
7// source: "sample.wav";
8// source: "sample-flac10k.wav";
9// source: "sample-flac10k-mono.wav";
10 }
11// sample {
12// name: "sound_name2" COMP;
13// source: "sample.wav";
14// }
15/*
16 sample {
17 name: "sound_name3" LOSSY 0.5;
18 source: "sample.wav";
19 }
20 sample {
21 name: "sound_name4" AS_IS;
22 source: "sample.wav";
23 }
24 */
25 sample {
26// name: "sound_name5" AS_IS;
27// name: "sound_name5" COMP;
28 name: "sound_name5" RAW;
29// source: "sample-ogg.wav";
30 source: "sample-ogg-mono.wav";
31// source: "sample-ogg10k.wav";
32// source: "sample-flac10k.wav";
33// source: "sample-flac10k-mono.wav";
34 }
35 sample {
36 name: "sound_name6" AS_IS;
37// name: "sound_name6" LOSSY 45.0;
38 source: "sample-flac44k-mono.wav";
39// source: "sample-flac.wav";
40// source: "sample.ogg";
41 }
42 tone: "tone-name" 2600;
43 }
44 group {
45 name: "example_group";
46 parts {
47 part {
48 name: "sample_bg";
49 type: RECT;
50 mouse_events: 1;
51 description {
52 state: "default" 0.0;
53 min: 300 150;
54 max: 300 150;
55 color: 200 200 200 100;
56 align: 0.5 0.0;
57 rel1 {
58 relative: 0.0 0.0;
59 }
60 }
61 }
62 part {
63 name: "sample_text";
64 type: TEXT;
65 mouse_events: 1;
66 repeat_events: 1;
67 description {
68 state: "default" 0.0;
69 rel1.to: "sample_bg";
70 rel2.to: "sample_bg";
71 text {
72 font: "Sans";
73 size: 20;
74 text: "Play Sound Sample";
75 }
76 }
77 }
78 part {
79 name: "tone_bg";
80 type: RECT;
81 mouse_events: 1;
82 description {
83 state: "default" 0.0;
84 min: 300 150;
85 max: 300 150;
86 align: 0.5 0.0;
87 color: 180 180 180 100;
88 rel1 {
89 relative: 0.0 1.0;
90 to: "sample_bg";
91 }
92 }
93 }
94 part {
95 name: "tone_text";
96 type: TEXT;
97 mouse_events: 1;
98 repeat_events : 1;
99 description {
100 state: "default" 0.0;
101 rel1.to: "tone_bg";
102 rel2.to: "tone_bg";
103 text {
104 font: "Sans";
105 size: 20;
106 text: "Play Tone";
107 }
108 }
109 }
110 programs {
111 program {
112 name: "click_sample1";
113 signal: "mouse,down,1";
114 source: "sample_bg";
115 action: PLAY_SAMPLE "sound_name1" 1.0;
116 }
117 program {
118 name: "click_sample2";
119 signal: "mouse,down,2";
120 source: "sample_bg";
121 action: PLAY_SAMPLE "sound_name5" 1.0;
122 }
123 program {
124 name: "click_sample3";
125 signal: "mouse,down,3";
126 source: "sample_bg";
127 action: PLAY_SAMPLE "sound_name6" 1.0;
128 }
129 program {
130 name: "click_tone";
131 signal: "mouse,down,1";
132 source: "tone_bg";
133 action: PLAY_TONE "tone-name" 0.1;
134 }
135 }
136 }
137 }
138}
139#endif
diff --git a/libraries/edje/src/examples/signals-messages.edc b/libraries/edje/src/examples/signals-messages.edc
index 45d9c58..b251368 100644
--- a/libraries/edje/src/examples/signals-messages.edc
+++ b/libraries/edje/src/examples/signals-messages.edc
@@ -105,10 +105,10 @@ collections {
105 if ((type == MSG_INT_SET) && (id == MSG_COLOR)) { 105 if ((type == MSG_INT_SET) && (id == MSG_COLOR)) {
106 new r, g, b, a; 106 new r, g, b, a;
107 107
108 r = getarg(3); 108 r = getarg(2);
109 g = getarg(4); 109 g = getarg(3);
110 b = getarg(5); 110 b = getarg(4);
111 a = getarg(6); 111 a = getarg(5);
112 112
113 set_color_class("cc", r, g, b, a); 113 set_color_class("cc", r, g, b, a);
114 } 114 }
diff --git a/libraries/edje/src/lib/Edje.h b/libraries/edje/src/lib/Edje.h
index c8094b4..6413014 100644
--- a/libraries/edje/src/lib/Edje.h
+++ b/libraries/edje/src/lib/Edje.h
@@ -377,6 +377,13 @@ part of Edje's API:
377@author Sebastian Dransfeld <sd@@tango.flipp.net> 377@author Sebastian Dransfeld <sd@@tango.flipp.net>
378@author Tom Hacohen <tom@@stosb.com> 378@author Tom Hacohen <tom@@stosb.com>
379@author Aharon Hillel <a.hillel@@partner.samsung.com> 379@author Aharon Hillel <a.hillel@@partner.samsung.com>
380@author Shilpa Singh <shilpa.singh@samsung.com> <shilpasingh.o@gmail.com>
381@author Mike Blumenkrantz <michael.blumenkrantz@gmail.com
382@author Jaehwan Kim <jae.hwan.kim@samsung.com>
383@author billiob (Boris Faure) <billiob@gmail.com>
384@author Govindaraju SM <govi.sm@samsung.com> <govism@gmail.com>
385@author Prince Kumar Dubey <prince.dubey@samsung.com> <prince.dubey@gmail.com>
386@author David Seikel <onefang at gmail.com>
380 387
381Please contact <enlightenment-devel@lists.sourceforge.net> to get in 388Please contact <enlightenment-devel@lists.sourceforge.net> to get in
382contact with the developers and maintainers. 389contact with the developers and maintainers.
@@ -472,7 +479,7 @@ extern "C" {
472#endif 479#endif
473 480
474#define EDJE_VERSION_MAJOR 1 481#define EDJE_VERSION_MAJOR 1
475#define EDJE_VERSION_MINOR 0 482#define EDJE_VERSION_MINOR 2
476 483
477 typedef struct _Edje_Version 484 typedef struct _Edje_Version
478 { 485 {
@@ -794,7 +801,7 @@ typedef enum _Edje_External_Param_Flags
794 EDJE_EXTERNAL_PARAM_FLAGS_STATE) /**< Convenience flag that sets property as GET, SET and STATE. */ 801 EDJE_EXTERNAL_PARAM_FLAGS_STATE) /**< Convenience flag that sets property as GET, SET and STATE. */
795} Edje_External_Param_Flags; 802} Edje_External_Param_Flags;
796 803
797typedef enum 804typedef enum _Edje_Input_Panel_Layout
798{ 805{
799 EDJE_INPUT_PANEL_LAYOUT_NORMAL, /**< Default layout */ 806 EDJE_INPUT_PANEL_LAYOUT_NORMAL, /**< Default layout */
800 EDJE_INPUT_PANEL_LAYOUT_NUMBER, /**< Number layout */ 807 EDJE_INPUT_PANEL_LAYOUT_NUMBER, /**< Number layout */
@@ -804,7 +811,10 @@ typedef enum
804 EDJE_INPUT_PANEL_LAYOUT_IP, /**< IP layout */ 811 EDJE_INPUT_PANEL_LAYOUT_IP, /**< IP layout */
805 EDJE_INPUT_PANEL_LAYOUT_MONTH, /**< Month layout */ 812 EDJE_INPUT_PANEL_LAYOUT_MONTH, /**< Month layout */
806 EDJE_INPUT_PANEL_LAYOUT_NUMBERONLY, /**< Number Only layout */ 813 EDJE_INPUT_PANEL_LAYOUT_NUMBERONLY, /**< Number Only layout */
807 EDJE_INPUT_PANEL_LAYOUT_INVALID 814 EDJE_INPUT_PANEL_LAYOUT_INVALID, /**< Never use this */
815 EDJE_INPUT_PANEL_LAYOUT_HEX, /**< Hexadecimal layout @since 1.2 */
816 EDJE_INPUT_PANEL_LAYOUT_TERMINAL, /**< Command-line terminal layout @since 1.2 */
817 EDJE_INPUT_PANEL_LAYOUT_PASSWORD /**< Like normal, but no auto-correct, no auto-capitalization etc. @since 1.2 */
808} Edje_Input_Panel_Layout; 818} Edje_Input_Panel_Layout;
809 819
810/** 820/**
@@ -1650,8 +1660,21 @@ EAPI void edje_box_layout_register (const char *name, Evas_Object
1650 * } 1660 * }
1651 * 1661 *
1652 * @endcode 1662 * @endcode
1663 *
1664 * @note You can get a callback every time edje re-calculates the object
1665 * (either due to animation or some kind of signal or input). This is called
1666 * in-line just after the recalculation has occured. It is a good idea not
1667 * to go and delete or alter the object inside this callbacks, simply make
1668 * a note that the recalculation has taken place and then do somethnig about
1669 * it outside the callback. to register a callback use code like:
1670 *
1671 * @code
1672 * evas_object_smart_callback_add(edje_obj, "recalc", my_cb, my_cb_data);
1673 * @endcode
1674 *
1675 * @see evas_object_smart_callback_add()
1653 * 1676 *
1654 * @note before creating the first Edje object in your code, remember 1677 * @note Before creating the first Edje object in your code, remember
1655 * to initialize the library, with edje_init(), or unexpected behavior 1678 * to initialize the library, with edje_init(), or unexpected behavior
1656 * might occur. 1679 * might occur.
1657 */ 1680 */
@@ -2757,12 +2780,15 @@ EAPI Eina_Bool edje_object_part_text_cursor_is_visible_format_get(const E
2757/** 2780/**
2758 * @brief Returns the content (char) at the cursor position. 2781 * @brief Returns the content (char) at the cursor position.
2759 * @see evas_textblock_cursor_content_get 2782 * @see evas_textblock_cursor_content_get
2783 *
2784 * You must free the return (if not NULL) after you are done with it.
2760 * 2785 *
2761 * @param obj A valid Evas_Object handle 2786 * @param obj A valid Evas_Object handle
2762 * @param part The part name 2787 * @param part The part name
2763 * @param cur The cursor to use 2788 * @param cur The cursor to use
2789 * @return The character string pointed to (may be a multi-byte utf8 sequence) terminated by a nul byte.
2764 */ 2790 */
2765EAPI const char *edje_object_part_text_cursor_content_get (const Evas_Object *obj, const char *part, Edje_Cursor cur); 2791EAPI char *edje_object_part_text_cursor_content_get (const Evas_Object *obj, const char *part, Edje_Cursor cur);
2766 2792
2767/** 2793/**
2768 * @brief Sets the cursor position to the given value 2794 * @brief Sets the cursor position to the given value
@@ -2941,7 +2967,9 @@ EAPI Eina_Bool edje_object_part_swallow (Evas_Object *obj, const c
2941 * 2967 *
2942 * Causes the edje to regurgitate a previously swallowed object. :) 2968 * Causes the edje to regurgitate a previously swallowed object. :)
2943 * 2969 *
2944 * @note @p obj_swallow will @b not be deleted. 2970 * @note @p obj_swallow will @b not be deleted or hidden.
2971 * @note @p obj_swallow may appear shown on the evas depending on its state when
2972 * it got unswallowed. Make sure you delete it or hide it if you do not want it to.
2945 */ 2973 */
2946EAPI void edje_object_part_unswallow (Evas_Object *obj, Evas_Object *obj_swallow); 2974EAPI void edje_object_part_unswallow (Evas_Object *obj, Evas_Object *obj_swallow);
2947 2975
diff --git a/libraries/edje/src/lib/Makefile.in b/libraries/edje/src/lib/Makefile.in
index cf73390..e67d90c 100644
--- a/libraries/edje/src/lib/Makefile.in
+++ b/libraries/edje/src/lib/Makefile.in
@@ -230,8 +230,6 @@ PACKAGE_URL = @PACKAGE_URL@
230PACKAGE_VERSION = @PACKAGE_VERSION@ 230PACKAGE_VERSION = @PACKAGE_VERSION@
231PATH_SEPARATOR = @PATH_SEPARATOR@ 231PATH_SEPARATOR = @PATH_SEPARATOR@
232PKG_CONFIG = @PKG_CONFIG@ 232PKG_CONFIG = @PKG_CONFIG@
233PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
234PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
235PYTHON = @PYTHON@ 233PYTHON = @PYTHON@
236PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ 234PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
237PYTHON_PLATFORM = @PYTHON_PLATFORM@ 235PYTHON_PLATFORM = @PYTHON_PLATFORM@
diff --git a/libraries/edje/src/lib/edje_cache.c b/libraries/edje/src/lib/edje_cache.c
index a8b355f..0ce6b30 100644
--- a/libraries/edje/src/lib/edje_cache.c
+++ b/libraries/edje/src/lib/edje_cache.c
@@ -128,18 +128,11 @@ _edje_file_coll_open(Edje_File *edf, const char *coll)
128} 128}
129 129
130static Edje_File * 130static Edje_File *
131_edje_file_open(const char *file, const char *coll, int *error_ret, Edje_Part_Collection **edc_ret) 131_edje_file_open(const char *file, const char *coll, int *error_ret, Edje_Part_Collection **edc_ret, time_t mtime)
132{ 132{
133 Edje_File *edf; 133 Edje_File *edf;
134 Edje_Part_Collection *edc; 134 Edje_Part_Collection *edc;
135 Eet_File *ef; 135 Eet_File *ef;
136 struct stat st;
137
138 if (stat(file, &st) != 0)
139 {
140 *error_ret = EDJE_LOAD_ERROR_DOES_NOT_EXIST;
141 return NULL;
142 }
143 136
144 ef = eet_open(file, EET_FILE_MODE_READ); 137 ef = eet_open(file, EET_FILE_MODE_READ);
145 if (!ef) 138 if (!ef)
@@ -156,7 +149,7 @@ _edje_file_open(const char *file, const char *coll, int *error_ret, Edje_Part_Co
156 } 149 }
157 150
158 edf->ef = ef; 151 edf->ef = ef;
159 edf->mtime = st.st_mtime; 152 edf->mtime = mtime;
160 153
161 if (edf->version != EDJE_FILE_VERSION) 154 if (edf->version != EDJE_FILE_VERSION)
162 { 155 {
@@ -262,7 +255,7 @@ open_new:
262 if (!_edje_file_hash) 255 if (!_edje_file_hash)
263 _edje_file_hash = eina_hash_string_small_new(NULL); 256 _edje_file_hash = eina_hash_string_small_new(NULL);
264 257
265 edf = _edje_file_open(file, coll, error_ret, edc_ret); 258 edf = _edje_file_open(file, coll, error_ret, edc_ret, st.st_mtime);
266 if (!edf) 259 if (!edf)
267 return NULL; 260 return NULL;
268 261
diff --git a/libraries/edje/src/lib/edje_calc.c b/libraries/edje/src/lib/edje_calc.c
index d9fd51d..213e266 100644
--- a/libraries/edje/src/lib/edje_calc.c
+++ b/libraries/edje/src/lib/edje_calc.c
@@ -8,7 +8,8 @@ static void _edje_part_recalc_single(Edje *ed, Edje_Real_Part *ep,
8 Edje_Real_Part *center, Edje_Real_Part *light, Edje_Real_Part *persp, 8 Edje_Real_Part *center, Edje_Real_Part *light, Edje_Real_Part *persp,
9 Edje_Real_Part *rel1_to_x, Edje_Real_Part *rel1_to_y, 9 Edje_Real_Part *rel1_to_x, Edje_Real_Part *rel1_to_y,
10 Edje_Real_Part *rel2_to_x, Edje_Real_Part *rel2_to_y, 10 Edje_Real_Part *rel2_to_x, Edje_Real_Part *rel2_to_y,
11 Edje_Real_Part *confine_to, Edje_Calc_Params *params); 11 Edje_Real_Part *confine_to, Edje_Calc_Params *params,
12 FLOAT_T pos);
12 13
13void 14void
14_edje_part_pos_set(Edje *ed, Edje_Real_Part *ep, int mode, FLOAT_T pos, FLOAT_T v1, FLOAT_T v2) 15_edje_part_pos_set(Edje *ed, Edje_Real_Part *ep, int mode, FLOAT_T pos, FLOAT_T v1, FLOAT_T v2)
@@ -115,6 +116,7 @@ _edje_part_pos_set(Edje *ed, Edje_Real_Part *ep, int mode, FLOAT_T pos, FLOAT_T
115 ep->description_pos = npos; 116 ep->description_pos = npos;
116 117
117 ed->dirty = 1; 118 ed->dirty = 1;
119 ed->recalc_call = 1;
118#ifdef EDJE_CALC_CACHE 120#ifdef EDJE_CALC_CACHE
119 ep->invalidate = 1; 121 ep->invalidate = 1;
120#endif 122#endif
@@ -304,6 +306,179 @@ _edje_part_description_find(Edje *ed, Edje_Real_Part *rp, const char *name,
304 return ret; 306 return ret;
305} 307}
306 308
309static int
310_edje_image_find(Evas_Object *obj, Edje *ed, Edje_Real_Part_Set **eps, Edje_Part_Description_Image *st, Edje_Part_Image_Id *imid)
311{
312 Edje_Image_Directory_Set_Entry *entry;
313 Edje_Image_Directory_Set *set = NULL;
314 Eina_List *l;
315 int w = 0;
316 int h = 0;
317 int id;
318
319 if (!st && !imid)
320 return -1;
321
322 if (st && !st->image.set)
323 return st->image.id;
324
325 if (imid && !imid->set)
326 return imid->id;
327
328 if (imid)
329 id = imid->id;
330 else
331 id = st->image.id;
332
333 evas_object_geometry_get(obj, NULL, NULL, &w, &h);
334
335 if (eps && *eps)
336 {
337 if ((*eps)->id == id)
338 set = (*eps)->set;
339
340 if (set)
341 if ((*eps)->entry->size.min.w <= w && w <= (*eps)->entry->size.max.w)
342 if ((*eps)->entry->size.min.h <= h && h <= (*eps)->entry->size.max.h)
343 return (*eps)->entry->id;
344 }
345
346 if (!set)
347 set = ed->file->image_dir->sets + id;
348
349 EINA_LIST_FOREACH(set->entries, l, entry)
350 {
351 if (entry->size.min.w <= w && w <= entry->size.max.w)
352 if (entry->size.min.h <= h && h <= entry->size.max.h)
353 {
354 if (eps)
355 {
356 if (!*eps)
357 *eps = calloc(1, sizeof (Edje_Real_Part_Set));
358
359 if (*eps)
360 {
361 (*eps)->entry = entry;
362 (*eps)->set = set;
363 (*eps)->id = id;
364 }
365 }
366 return entry->id;
367 }
368 }
369
370 return -1;
371}
372
373static void
374_edje_real_part_image_set(Edje *ed, Edje_Real_Part *ep, FLOAT_T pos)
375{
376 int image_id;
377 int image_count, image_num;
378
379 image_id = _edje_image_find(ep->object, ed,
380 &ep->param1.set,
381 (Edje_Part_Description_Image*) ep->param1.description,
382 NULL);
383 if (image_id < 0)
384 {
385 Edje_Image_Directory_Entry *ie;
386
387 if (!ed->file->image_dir) ie = NULL;
388 else ie = ed->file->image_dir->entries + (-image_id) - 1;
389 if ((ie) &&
390 (ie->source_type == EDJE_IMAGE_SOURCE_TYPE_EXTERNAL) &&
391 (ie->entry))
392 {
393 evas_object_image_file_set(ep->object, ie->entry, NULL);
394 }
395 }
396 else
397 {
398 image_count = 2;
399 if (ep->param2)
400 image_count += ((Edje_Part_Description_Image*) ep->param2->description)->image.tweens_count;
401 image_num = TO_INT(MUL(pos, SUB(FROM_INT(image_count),
402 FROM_DOUBLE(0.5))));
403 if (image_num > (image_count - 1))
404 image_num = image_count - 1;
405 if (image_num == 0)
406 {
407 image_id = _edje_image_find(ep->object, ed,
408 &ep->param1.set,
409 (Edje_Part_Description_Image*) ep->param1.description,
410 NULL);
411 }
412 else
413 if (ep->param2)
414 {
415 if (image_num == (image_count - 1))
416 {
417 image_id = _edje_image_find(ep->object, ed,
418 &ep->param2->set,
419 (Edje_Part_Description_Image*) ep->param2->description,
420 NULL);
421 }
422 else
423 {
424 Edje_Part_Image_Id *imid;
425
426 imid = ((Edje_Part_Description_Image*) ep->param2->description)->image.tweens[image_num - 1];
427 image_id = _edje_image_find(ep->object, ed, NULL, NULL, imid);
428 }
429 }
430 if (image_id < 0)
431 {
432 ERR("¨Part \"%s\" has description, "
433 "\"%s\" %3.3f with a missing image id!!!",
434 ep->part->name,
435 ep->param1.description->state.name,
436 ep->param1.description->state.value);
437 }
438 else
439 {
440 char buf[1024];
441
442 /* Replace snprint("edje/images/%i") == memcpy + itoa */
443#define IMAGES "edje/images/"
444 memcpy(buf, IMAGES, strlen(IMAGES));
445 eina_convert_itoa(image_id, buf + strlen(IMAGES)); /* No need to check length as 2³² need only 10 characteres. */
446
447 evas_object_image_file_set(ep->object, ed->file->path, buf);
448 if (evas_object_image_load_error_get(ep->object) != EVAS_LOAD_ERROR_NONE)
449 {
450 ERR("Error loading image collection \"%s\" from "
451 "file \"%s\". Missing EET Evas loader module?",
452 buf, ed->file->path);
453 switch (evas_object_image_load_error_get(ep->object))
454 {
455 case EVAS_LOAD_ERROR_GENERIC:
456 ERR("Error type: EVAS_LOAD_ERROR_GENERIC");
457 break;
458 case EVAS_LOAD_ERROR_DOES_NOT_EXIST:
459 ERR("Error type: EVAS_LOAD_ERROR_DOES_NOT_EXIST");
460 break;
461 case EVAS_LOAD_ERROR_PERMISSION_DENIED:
462 ERR("Error type: EVAS_LOAD_ERROR_PERMISSION_DENIED");
463 break;
464 case EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED:
465 ERR("Error type: EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED");
466 break;
467 case EVAS_LOAD_ERROR_CORRUPT_FILE:
468 ERR("Error type: EVAS_LOAD_ERROR_CORRUPT_FILE");
469 break;
470 case EVAS_LOAD_ERROR_UNKNOWN_FORMAT:
471 ERR("Error type: EVAS_LOAD_ERROR_UNKNOWN_FORMAT");
472 break;
473 default:
474 ERR("Error type: ???");
475 break;
476 }
477 }
478 }
479 }
480}
481
307static void 482static void
308_edje_real_part_rel_to_apply(Edje *ed, Edje_Real_Part *ep, Edje_Real_Part_State *state) 483_edje_real_part_rel_to_apply(Edje *ed, Edje_Real_Part *ep, Edje_Real_Part_State *state)
309{ 484{
@@ -398,6 +573,7 @@ _edje_part_description_apply(Edje *ed, Edje_Real_Part *ep, const char *d1, doubl
398 _edje_external_recalc_apply(ed, ep, NULL, chosen_desc); 573 _edje_external_recalc_apply(ed, ep, NULL, chosen_desc);
399 574
400 ed->dirty = 1; 575 ed->dirty = 1;
576 ed->recalc_call = 1;
401#ifdef EDJE_CALC_CACHE 577#ifdef EDJE_CALC_CACHE
402 ep->invalidate = 1; 578 ep->invalidate = 1;
403#endif 579#endif
@@ -423,17 +599,23 @@ _edje_recalc(Edje *ed)
423 return; 599 return;
424 } 600 }
425 } 601 }
426 if (ed->postponed) return; 602// XXX: dont need this with current smart calc infra. remove me later
427 evas_object_smart_changed(ed->obj); 603// if (ed->postponed) return;
428 ed->postponed = 1; 604// if (!ed->calc_only)
605 evas_object_smart_changed(ed->obj);
606// XXX: dont need this with current smart calc infra. remove me later
607// ed->postponed = 1;
429} 608}
430 609
431void 610void
432_edje_recalc_do(Edje *ed) 611_edje_recalc_do(Edje *ed)
433{ 612{
434 unsigned int i; 613 unsigned int i;
614 Eina_Bool need_calc;
435 615
436 ed->postponed = 0; 616// XXX: dont need this with current smart calc infra. remove me later
617// ed->postponed = 0;
618 need_calc = evas_object_smart_need_recalculate_get(ed->obj);
437 evas_object_smart_need_recalculate_set(ed->obj, 0); 619 evas_object_smart_need_recalculate_set(ed->obj, 0);
438 if (!ed->dirty) return; 620 if (!ed->dirty) return;
439 ed->have_mapped_part = 0; 621 ed->have_mapped_part = 0;
@@ -460,6 +642,14 @@ _edje_recalc_do(Edje *ed)
460 ed->all_part_change = 0; 642 ed->all_part_change = 0;
461 ed->text_part_change = 0; 643 ed->text_part_change = 0;
462#endif 644#endif
645 if (!ed->calc_only)
646 {
647 if (ed->recalc_call)
648 evas_object_smart_callback_call(ed->obj, "recalc", NULL);
649 }
650 else
651 evas_object_smart_need_recalculate_set(ed->obj, need_calc);
652 ed->recalc_call = 0;
463} 653}
464 654
465void 655void
@@ -527,6 +717,7 @@ _edje_dragable_pos_set(Edje *ed, Edje_Real_Part *ep, FLOAT_T x, FLOAT_T y)
527 ep->drag->tmp.x = 0; 717 ep->drag->tmp.x = 0;
528 ep->drag->need_reset = 0; 718 ep->drag->need_reset = 0;
529 ed->dirty = 1; 719 ed->dirty = 1;
720 ed->recalc_call = 1;
530 } 721 }
531 722
532 if (ep->drag->y != y || ep->drag->tmp.y) 723 if (ep->drag->y != y || ep->drag->tmp.y)
@@ -535,6 +726,7 @@ _edje_dragable_pos_set(Edje *ed, Edje_Real_Part *ep, FLOAT_T x, FLOAT_T y)
535 ep->drag->tmp.y = 0; 726 ep->drag->tmp.y = 0;
536 ep->drag->need_reset = 0; 727 ep->drag->need_reset = 0;
537 ed->dirty = 1; 728 ed->dirty = 1;
729 ed->recalc_call = 1;
538 } 730 }
539 731
540#ifdef EDJE_CALC_CACHE 732#ifdef EDJE_CALC_CACHE
@@ -598,11 +790,13 @@ _edje_part_recalc_single_rel(Edje *ed,
598} 790}
599 791
600static Edje_Internal_Aspect 792static Edje_Internal_Aspect
601_edje_part_recalc_single_aspect(Edje_Real_Part *ep, 793_edje_part_recalc_single_aspect(Edje *ed,
794 Edje_Real_Part *ep,
602 Edje_Part_Description_Common *desc, 795 Edje_Part_Description_Common *desc,
603 Edje_Calc_Params *params, 796 Edje_Calc_Params *params,
604 int *minw, int *minh, 797 int *minw, int *minh,
605 int *maxw, int *maxh) 798 int *maxw, int *maxh,
799 FLOAT_T pos)
606{ 800{
607 Edje_Internal_Aspect apref = EDJE_ASPECT_PREFER_NONE; 801 Edje_Internal_Aspect apref = EDJE_ASPECT_PREFER_NONE;
608 FLOAT_T aspect, amax, amin; 802 FLOAT_T aspect, amax, amin;
@@ -612,6 +806,17 @@ _edje_part_recalc_single_aspect(Edje_Real_Part *ep,
612 else aspect = DIV(FROM_INT(params->w), FROM_INT(params->h)); 806 else aspect = DIV(FROM_INT(params->w), FROM_INT(params->h));
613 amax = desc->aspect.max; 807 amax = desc->aspect.max;
614 amin = desc->aspect.min; 808 amin = desc->aspect.min;
809 if (desc->aspect.prefer == EDJE_ASPECT_PREFER_SOURCE &&
810 ep->part->type == EDJE_PART_TYPE_IMAGE)
811 {
812 Evas_Coord w, h;
813
814 /* We only need pose to find the right image that would be displayed,
815 and the right aspect ratio in that case */
816 _edje_real_part_image_set(ed, ep, pos);
817 evas_object_image_size_get(ep->object, &w, &h);
818 amin = amax = DIV(FROM_INT(w), FROM_INT(h));
819 }
615 if ((ep->swallow_params.aspect.w > 0) && 820 if ((ep->swallow_params.aspect.w > 0) &&
616 (ep->swallow_params.aspect.h > 0)) 821 (ep->swallow_params.aspect.h > 0))
617 amin = amax = 822 amin = amax =
@@ -693,6 +898,7 @@ _edje_part_recalc_single_aspect(Edje_Real_Part *ep,
693 if ((amin > ZERO) && (aspect < amin)) 898 if ((amin > ZERO) && (aspect < amin))
694 new_h = DIV(FROM_INT(params->w), amin); 899 new_h = DIV(FROM_INT(params->w), amin);
695 break; 900 break;
901 case EDJE_ASPECT_PREFER_SOURCE:
696 case EDJE_ASPECT_PREFER_BOTH: 902 case EDJE_ASPECT_PREFER_BOTH:
697 /* keep both dimensions in check */ 903 /* keep both dimensions in check */
698 /* adjust for max aspect (width / height) */ 904 /* adjust for max aspect (width / height) */
@@ -1255,6 +1461,7 @@ _edje_part_recalc_single_min(Edje_Part_Description_Common *desc,
1255 minh = tmp; 1461 minh = tmp;
1256 break; 1462 break;
1257 } 1463 }
1464 case EDJE_ASPECT_PREFER_SOURCE:
1258 case EDJE_ASPECT_PREFER_BOTH: 1465 case EDJE_ASPECT_PREFER_BOTH:
1259 tmp = minh * params->w / h; 1466 tmp = minh * params->w / h;
1260 if (tmp >= minw) 1467 if (tmp >= minw)
@@ -1321,6 +1528,7 @@ _edje_part_recalc_single_max(Edje_Part_Description_Common *desc,
1321 maxh = tmp; 1528 maxh = tmp;
1322 break; 1529 break;
1323 } 1530 }
1531 case EDJE_ASPECT_PREFER_SOURCE:
1324 case EDJE_ASPECT_PREFER_BOTH: 1532 case EDJE_ASPECT_PREFER_BOTH:
1325 tmp = maxh * params->w / h; 1533 tmp = maxh * params->w / h;
1326 if (tmp <= maxw) 1534 if (tmp <= maxw)
@@ -1481,6 +1689,15 @@ _edje_part_recalc_single_min_max(FLOAT_T sc,
1481 if (ep->swallow_params.min.w > desc->min.w) 1689 if (ep->swallow_params.min.w > desc->min.w)
1482 *minw = ep->swallow_params.min.w; 1690 *minw = ep->swallow_params.min.w;
1483 1691
1692 if (ep->edje->calc_only)
1693 {
1694 if (desc->minmul.have)
1695 {
1696 FLOAT_T mmw = desc->minmul.w;
1697 if (mmw != FROM_INT(1)) *minw = TO_INT(SCALE(mmw, *minw));
1698 }
1699 }
1700
1484 /* XXX TODO: remove need of EDJE_INF_MAX_W, see edje_util.c */ 1701 /* XXX TODO: remove need of EDJE_INF_MAX_W, see edje_util.c */
1485 if ((ep->swallow_params.max.w <= 0) || 1702 if ((ep->swallow_params.max.w <= 0) ||
1486 (ep->swallow_params.max.w == EDJE_INF_MAX_W)) 1703 (ep->swallow_params.max.w == EDJE_INF_MAX_W))
@@ -1508,6 +1725,8 @@ _edje_part_recalc_single_min_max(FLOAT_T sc,
1508 *maxw = ep->swallow_params.max.w; 1725 *maxw = ep->swallow_params.max.w;
1509 } 1726 }
1510 } 1727 }
1728 if ((ep->edje->calc_only) && (desc->minmul.have) &&
1729 (desc->minmul.w != FROM_INT(1))) *maxw = *minw;
1511 if (*maxw >= 0) 1730 if (*maxw >= 0)
1512 { 1731 {
1513 if (*maxw < *minw) *maxw = *minw; 1732 if (*maxw < *minw) *maxw = *minw;
@@ -1518,6 +1737,16 @@ _edje_part_recalc_single_min_max(FLOAT_T sc,
1518 if (ep->swallow_params.min.h > desc->min.h) 1737 if (ep->swallow_params.min.h > desc->min.h)
1519 *minh = ep->swallow_params.min.h; 1738 *minh = ep->swallow_params.min.h;
1520 1739
1740 if (ep->edje->calc_only)
1741 {
1742 if (desc->minmul.have)
1743 {
1744 FLOAT_T mmh = desc->minmul.h;
1745 if (mmh != FROM_INT(1)) *minh = TO_INT(SCALE(mmh, *minh));
1746 }
1747 }
1748
1749
1521 /* XXX TODO: remove need of EDJE_INF_MAX_H, see edje_util.c */ 1750 /* XXX TODO: remove need of EDJE_INF_MAX_H, see edje_util.c */
1522 if ((ep->swallow_params.max.h <= 0) || 1751 if ((ep->swallow_params.max.h <= 0) ||
1523 (ep->swallow_params.max.h == EDJE_INF_MAX_H)) 1752 (ep->swallow_params.max.h == EDJE_INF_MAX_H))
@@ -1544,7 +1773,9 @@ _edje_part_recalc_single_min_max(FLOAT_T sc,
1544 if (ep->swallow_params.max.h < *maxh) 1773 if (ep->swallow_params.max.h < *maxh)
1545 *maxh = ep->swallow_params.max.h; 1774 *maxh = ep->swallow_params.max.h;
1546 } 1775 }
1547 } 1776 }
1777 if ((ep->edje->calc_only) && (desc->minmul.have) &&
1778 (desc->minmul.h != FROM_INT(1))) *maxh = *minh;
1548 if (*maxh >= 0) 1779 if (*maxh >= 0)
1549 { 1780 {
1550 if (*maxh < *minh) *maxh = *minh; 1781 if (*maxh < *minh) *maxh = *minh;
@@ -1665,7 +1896,8 @@ _edje_part_recalc_single(Edje *ed,
1665 Edje_Real_Part *rel2_to_x, 1896 Edje_Real_Part *rel2_to_x,
1666 Edje_Real_Part *rel2_to_y, 1897 Edje_Real_Part *rel2_to_y,
1667 Edje_Real_Part *confine_to, 1898 Edje_Real_Part *confine_to,
1668 Edje_Calc_Params *params) 1899 Edje_Calc_Params *params,
1900 FLOAT_T pos)
1669{ 1901{
1670 Edje_Color_Class *cc = NULL; 1902 Edje_Color_Class *cc = NULL;
1671 Edje_Internal_Aspect apref; 1903 Edje_Internal_Aspect apref;
@@ -1675,12 +1907,12 @@ _edje_part_recalc_single(Edje *ed,
1675 sc = ed->scale; 1907 sc = ed->scale;
1676 if (sc == ZERO) sc = _edje_scale; 1908 if (sc == ZERO) sc = _edje_scale;
1677 _edje_part_recalc_single_min_max(sc, ep, desc, &minw, &minh, &maxw, &maxh); 1909 _edje_part_recalc_single_min_max(sc, ep, desc, &minw, &minh, &maxw, &maxh);
1678 1910
1679 /* relative coords of top left & bottom right */ 1911 /* relative coords of top left & bottom right */
1680 _edje_part_recalc_single_rel(ed, ep, desc, rel1_to_x, rel1_to_y, rel2_to_x, rel2_to_y, params); 1912 _edje_part_recalc_single_rel(ed, ep, desc, rel1_to_x, rel1_to_y, rel2_to_x, rel2_to_y, params);
1681 1913
1682 /* aspect */ 1914 /* aspect */
1683 apref = _edje_part_recalc_single_aspect(ep, desc, params, &minw, &minh, &maxw, &maxh); 1915 apref = _edje_part_recalc_single_aspect(ed, ep, desc, params, &minw, &minh, &maxw, &maxh, pos);
1684 1916
1685 /* size step */ 1917 /* size step */
1686 _edje_part_recalc_single_step(desc, params); 1918 _edje_part_recalc_single_step(desc, params);
@@ -1855,77 +2087,13 @@ _edje_table_recalc_apply(Edje *ed __UNUSED__,
1855 } 2087 }
1856} 2088}
1857 2089
1858static int
1859_edje_image_find(Evas_Object *obj, Edje *ed, Edje_Real_Part_Set **eps, Edje_Part_Description_Image *st, Edje_Part_Image_Id *imid)
1860{
1861 Edje_Image_Directory_Set_Entry *entry;
1862 Edje_Image_Directory_Set *set = NULL;
1863 Eina_List *l;
1864 int w = 0;
1865 int h = 0;
1866 int id;
1867
1868 if (!st && !imid)
1869 return -1;
1870
1871 if (st && !st->image.set)
1872 return st->image.id;
1873
1874 if (imid && !imid->set)
1875 return imid->id;
1876
1877 if (imid)
1878 id = imid->id;
1879 else
1880 id = st->image.id;
1881
1882 evas_object_geometry_get(obj, NULL, NULL, &w, &h);
1883
1884 if (eps && *eps)
1885 {
1886 if ((*eps)->id == id)
1887 set = (*eps)->set;
1888
1889 if (set)
1890 if ((*eps)->entry->size.min.w <= w && w <= (*eps)->entry->size.max.w)
1891 if ((*eps)->entry->size.min.h <= h && h <= (*eps)->entry->size.max.h)
1892 return (*eps)->entry->id;
1893 }
1894
1895 if (!set)
1896 set = ed->file->image_dir->sets + id;
1897
1898 EINA_LIST_FOREACH(set->entries, l, entry)
1899 {
1900 if (entry->size.min.w <= w && w <= entry->size.max.w)
1901 if (entry->size.min.h <= h && h <= entry->size.max.h)
1902 {
1903 if (eps)
1904 {
1905 if (!*eps)
1906 *eps = calloc(1, sizeof (Edje_Real_Part_Set));
1907
1908 if (*eps)
1909 {
1910 (*eps)->entry = entry;
1911 (*eps)->set = set;
1912 (*eps)->id = id;
1913 }
1914 }
1915 return entry->id;
1916 }
1917 }
1918
1919 return -1;
1920}
1921
1922static void 2090static void
1923_edje_proxy_recalc_apply(Edje *ed, Edje_Real_Part *ep, Edje_Calc_Params *p3, Edje_Part_Description_Proxy *chosen_desc, FLOAT_T pos) 2091_edje_proxy_recalc_apply(Edje *ed, Edje_Real_Part *ep, Edje_Calc_Params *p3, Edje_Part_Description_Proxy *chosen_desc, FLOAT_T pos)
1924{ 2092{
1925 Edje_Real_Part *pp; 2093 Edje_Real_Part *pp;
1926 int part_id = -1; 2094 int part_id = -1;
1927 2095
1928 if (pos >= 0.5) 2096 if (pos >= FROM_DOUBLE(0.5))
1929 part_id = ((Edje_Part_Description_Proxy*) ep->param2->description)->proxy.id; 2097 part_id = ((Edje_Part_Description_Proxy*) ep->param2->description)->proxy.id;
1930 else 2098 else
1931 part_id = chosen_desc->proxy.id; 2099 part_id = chosen_desc->proxy.id;
@@ -1967,8 +2135,6 @@ _edje_proxy_recalc_apply(Edje *ed, Edje_Real_Part *ep, Edje_Calc_Params *p3, Edj
1967static void 2135static void
1968_edje_image_recalc_apply(Edje *ed, Edje_Real_Part *ep, Edje_Calc_Params *p3, Edje_Part_Description_Image *chosen_desc, FLOAT_T pos) 2136_edje_image_recalc_apply(Edje *ed, Edje_Real_Part *ep, Edje_Calc_Params *p3, Edje_Part_Description_Image *chosen_desc, FLOAT_T pos)
1969{ 2137{
1970 int image_id;
1971 int image_count, image_num;
1972 FLOAT_T sc; 2138 FLOAT_T sc;
1973 2139
1974 sc = ed->scale; 2140 sc = ed->scale;
@@ -2003,107 +2169,7 @@ _edje_image_recalc_apply(Edje *ed, Edje_Real_Part *ep, Edje_Calc_Params *p3, Edj
2003 else if (chosen_desc->image.border.no_fill == 2) 2169 else if (chosen_desc->image.border.no_fill == 2)
2004 evas_object_image_border_center_fill_set(ep->object, EVAS_BORDER_FILL_SOLID); 2170 evas_object_image_border_center_fill_set(ep->object, EVAS_BORDER_FILL_SOLID);
2005 2171
2006 image_id = _edje_image_find(ep->object, ed, 2172 _edje_real_part_image_set(ed, ep, pos);
2007 &ep->param1.set,
2008 (Edje_Part_Description_Image*) ep->param1.description,
2009 NULL);
2010 if (image_id < 0)
2011 {
2012 Edje_Image_Directory_Entry *ie;
2013
2014 if (!ed->file->image_dir) ie = NULL;
2015 else ie = ed->file->image_dir->entries + (-image_id) - 1;
2016 if ((ie) &&
2017 (ie->source_type == EDJE_IMAGE_SOURCE_TYPE_EXTERNAL) &&
2018 (ie->entry))
2019 {
2020 evas_object_image_file_set(ep->object, ie->entry, NULL);
2021 }
2022 }
2023 else
2024 {
2025 image_count = 2;
2026 if (ep->param2)
2027 image_count += ((Edje_Part_Description_Image*) ep->param2->description)->image.tweens_count;
2028 image_num = TO_INT(MUL(pos, SUB(FROM_INT(image_count),
2029 FROM_DOUBLE(0.5))));
2030 if (image_num > (image_count - 1))
2031 image_num = image_count - 1;
2032 if (image_num == 0)
2033 {
2034 image_id = _edje_image_find(ep->object, ed,
2035 &ep->param1.set,
2036 (Edje_Part_Description_Image*) ep->param1.description,
2037 NULL);
2038 }
2039 else
2040 if (ep->param2)
2041 {
2042 if (image_num == (image_count - 1))
2043 {
2044 image_id = _edje_image_find(ep->object, ed,
2045 &ep->param2->set,
2046 (Edje_Part_Description_Image*) ep->param2->description,
2047 NULL);
2048 }
2049 else
2050 {
2051 Edje_Part_Image_Id *imid;
2052
2053 imid = ((Edje_Part_Description_Image*) ep->param2->description)->image.tweens[image_num - 1];
2054 image_id = _edje_image_find(ep->object, ed, NULL, NULL, imid);
2055 }
2056 }
2057 if (image_id < 0)
2058 {
2059 ERR("¨Part \"%s\" has description, "
2060 "\"%s\" %3.3f with a missing image id!!!",
2061 ep->part->name,
2062 ep->param1.description->state.name,
2063 ep->param1.description->state.value);
2064 }
2065 else
2066 {
2067 char buf[1024];
2068
2069 /* Replace snprint("edje/images/%i") == memcpy + itoa */
2070#define IMAGES "edje/images/"
2071 memcpy(buf, IMAGES, strlen(IMAGES));
2072 eina_convert_itoa(image_id, buf + strlen(IMAGES)); /* No need to check length as 2³² need only 10 characteres. */
2073
2074 evas_object_image_file_set(ep->object, ed->file->path, buf);
2075 if (evas_object_image_load_error_get(ep->object) != EVAS_LOAD_ERROR_NONE)
2076 {
2077 ERR("Error loading image collection \"%s\" from "
2078 "file \"%s\". Missing EET Evas loader module?",
2079 buf, ed->file->path);
2080 switch (evas_object_image_load_error_get(ep->object))
2081 {
2082 case EVAS_LOAD_ERROR_GENERIC:
2083 ERR("Error type: EVAS_LOAD_ERROR_GENERIC");
2084 break;
2085 case EVAS_LOAD_ERROR_DOES_NOT_EXIST:
2086 ERR("Error type: EVAS_LOAD_ERROR_DOES_NOT_EXIST");
2087 break;
2088 case EVAS_LOAD_ERROR_PERMISSION_DENIED:
2089 ERR("Error type: EVAS_LOAD_ERROR_PERMISSION_DENIED");
2090 break;
2091 case EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED:
2092 ERR("Error type: EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED");
2093 break;
2094 case EVAS_LOAD_ERROR_CORRUPT_FILE:
2095 ERR("Error type: EVAS_LOAD_ERROR_CORRUPT_FILE");
2096 break;
2097 case EVAS_LOAD_ERROR_UNKNOWN_FORMAT:
2098 ERR("Error type: EVAS_LOAD_ERROR_UNKNOWN_FORMAT");
2099 break;
2100 default:
2101 ERR("Error type: ???");
2102 break;
2103 }
2104 }
2105 }
2106 }
2107} 2173}
2108 2174
2109static Edje_Real_Part * 2175static Edje_Real_Part *
@@ -2299,13 +2365,15 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags, Edje_Calc_Params *sta
2299 Edje_Real_Part *pp; 2365 Edje_Real_Part *pp;
2300 int part_id = -1; 2366 int part_id = -1;
2301 2367
2302 if (pos >= 0.5) 2368 if (pos >= FROM_DOUBLE(0.5))
2303 part_id = ((Edje_Part_Description_Proxy*) ep->param2->description)->proxy.id; 2369 part_id = ((Edje_Part_Description_Proxy*) ep->param2->description)->proxy.id;
2304 else 2370 else
2305 part_id = ((Edje_Part_Description_Proxy*) chosen_desc)->proxy.id; 2371 part_id = ((Edje_Part_Description_Proxy*) chosen_desc)->proxy.id;
2306 2372
2307 pp = _edje_real_part_state_get(ed, ep, flags, part_id, NULL); 2373 pp = _edje_real_part_state_get(ed, ep, flags, part_id, NULL);
2374#ifdef EDJE_CALC_CACHE
2308 if (pp && pp->invalidate) proxy_invalidate = EINA_TRUE; 2375 if (pp && pp->invalidate) proxy_invalidate = EINA_TRUE;
2376#endif
2309 } 2377 }
2310 2378
2311 /* Recalc if needed the map center && light source */ 2379 /* Recalc if needed the map center && light source */
@@ -2355,7 +2423,7 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags, Edje_Calc_Params *sta
2355 _edje_part_recalc_single(ed, ep, ep->param1.description, chosen_desc, center[0], light[0], persp[0], 2423 _edje_part_recalc_single(ed, ep, ep->param1.description, chosen_desc, center[0], light[0], persp[0],
2356 ep->param1.rel1_to_x, ep->param1.rel1_to_y, ep->param1.rel2_to_x, ep->param1.rel2_to_y, 2424 ep->param1.rel1_to_x, ep->param1.rel1_to_y, ep->param1.rel2_to_x, ep->param1.rel2_to_y,
2357 confine_to, 2425 confine_to,
2358 p1); 2426 p1, pos);
2359 2427
2360#ifdef EDJE_CALC_CACHE 2428#ifdef EDJE_CALC_CACHE
2361 ep->param1.state = ed->state; 2429 ep->param1.state = ed->state;
@@ -2400,10 +2468,15 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags, Edje_Calc_Params *sta
2400 ((ep->part->type == EDJE_PART_TYPE_TEXT || ep->part->type == EDJE_PART_TYPE_TEXTBLOCK) && ed->text_part_change)) 2468 ((ep->part->type == EDJE_PART_TYPE_TEXT || ep->part->type == EDJE_PART_TYPE_TEXTBLOCK) && ed->text_part_change))
2401#endif 2469#endif
2402 { 2470 {
2403 _edje_part_recalc_single(ed, ep, ep->param2->description, chosen_desc, center[1], light[1], persp[1], 2471 _edje_part_recalc_single(ed, ep, ep->param2->description,
2404 ep->param2->rel1_to_x, ep->param2->rel1_to_y, ep->param2->rel2_to_x, ep->param2->rel2_to_y, 2472 chosen_desc,
2473 center[1], light[1], persp[1],
2474 ep->param2->rel1_to_x,
2475 ep->param2->rel1_to_y,
2476 ep->param2->rel2_to_x,
2477 ep->param2->rel2_to_y,
2405 confine_to, 2478 confine_to,
2406 p2); 2479 p2, pos);
2407#ifdef EDJE_CALC_CACHE 2480#ifdef EDJE_CALC_CACHE
2408 ep->param2->state = ed->state; 2481 ep->param2->state = ed->state;
2409#endif 2482#endif
@@ -2449,7 +2522,7 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags, Edje_Calc_Params *sta
2449 p3->req.y = INTP(p1->req.y, p2->req.y, pos); 2522 p3->req.y = INTP(p1->req.y, p2->req.y, pos);
2450 p3->req.w = INTP(p1->req.w, p2->req.w, pos); 2523 p3->req.w = INTP(p1->req.w, p2->req.w, pos);
2451 p3->req.h = INTP(p1->req.h, p2->req.h, pos); 2524 p3->req.h = INTP(p1->req.h, p2->req.h, pos);
2452 2525
2453 if (ep->part->dragable.x) 2526 if (ep->part->dragable.x)
2454 { 2527 {
2455 p3->req_drag.x = INTP(p1->req_drag.x, p2->req_drag.x, pos); 2528 p3->req_drag.x = INTP(p1->req_drag.x, p2->req_drag.x, pos);
@@ -2543,11 +2616,11 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags, Edje_Calc_Params *sta
2543 } 2616 }
2544 else if (p1->persp_on) 2617 else if (p1->persp_on)
2545 { 2618 {
2546 memcpy(&p3->map.persp, &p1->map.persp, sizeof (p1->map.light)); 2619 memcpy(&p3->map.persp, &p1->map.persp, sizeof (p1->map.persp));
2547 } 2620 }
2548 else if (p2->persp_on) 2621 else if (p2->persp_on)
2549 { 2622 {
2550 memcpy(&p3->map.persp, &p2->map.persp, sizeof (p2->map.light)); 2623 memcpy(&p3->map.persp, &p2->map.persp, sizeof (p2->map.persp));
2551 } 2624 }
2552 } 2625 }
2553 2626
diff --git a/libraries/edje/src/lib/edje_callbacks.c b/libraries/edje/src/lib/edje_callbacks.c
index e0b0eae..2b02891 100644
--- a/libraries/edje/src/lib/edje_callbacks.c
+++ b/libraries/edje/src/lib/edje_callbacks.c
@@ -134,6 +134,7 @@ _edje_mouse_down_signal_cb(void *data, Evas *e __UNUSED__, Evas_Object *obj, voi
134 _edje_emit(ed, buf, events->part->name); 134 _edje_emit(ed, buf, events->part->name);
135 } 135 }
136 ed->dirty = 1; 136 ed->dirty = 1;
137 ed->recalc_call = 1;
137#ifdef EDJE_CALC_CACHE 138#ifdef EDJE_CALC_CACHE
138 rp->invalidate = 1; 139 rp->invalidate = 1;
139#endif 140#endif
@@ -157,6 +158,7 @@ _edje_mouse_down_signal_cb(void *data, Evas *e __UNUSED__, Evas_Object *obj, voi
157 rp->drag->val.y = dy; 158 rp->drag->val.y = dy;
158 if (!ignored) 159 if (!ignored)
159 _edje_emit(ed, "drag", rp->part->name); 160 _edje_emit(ed, "drag", rp->part->name);
161 ed->recalc_call = 1;
160 ed->dirty = 1; 162 ed->dirty = 1;
161#ifdef EDJE_CALC_CACHE 163#ifdef EDJE_CALC_CACHE
162 rp->invalidate = 1; 164 rp->invalidate = 1;
@@ -235,6 +237,7 @@ _edje_mouse_up_signal_cb(void *data, Evas *e __UNUSED__, Evas_Object *obj, void
235 if (rp->drag->down.count == 0) 237 if (rp->drag->down.count == 0)
236 { 238 {
237 rp->drag->need_reset = 1; 239 rp->drag->need_reset = 1;
240 ed->recalc_call = 1;
238 ed->dirty = 1; 241 ed->dirty = 1;
239#ifdef EDJE_CALC_CACHE 242#ifdef EDJE_CALC_CACHE
240 rp->invalidate = 1; 243 rp->invalidate = 1;
@@ -314,6 +317,7 @@ _edje_mouse_move_signal_cb(void *data, Evas *e __UNUSED__, Evas_Object *obj, voi
314 rp->drag->tmp.x = ev->cur.canvas.x - rp->drag->down.x; 317 rp->drag->tmp.x = ev->cur.canvas.x - rp->drag->down.x;
315 if (rp->part->dragable.y) 318 if (rp->part->dragable.y)
316 rp->drag->tmp.y = ev->cur.canvas.y - rp->drag->down.y; 319 rp->drag->tmp.y = ev->cur.canvas.y - rp->drag->down.y;
320 ed->recalc_call = 1;
317 ed->dirty = 1; 321 ed->dirty = 1;
318#ifdef EDJE_CALC_CACHE 322#ifdef EDJE_CALC_CACHE
319 rp->invalidate = 1; 323 rp->invalidate = 1;
@@ -332,6 +336,7 @@ _edje_mouse_move_signal_cb(void *data, Evas *e __UNUSED__, Evas_Object *obj, voi
332 rp->drag->val.y = dy; 336 rp->drag->val.y = dy;
333 if (!ignored) 337 if (!ignored)
334 _edje_emit(ed, "drag", rp->part->name); 338 _edje_emit(ed, "drag", rp->part->name);
339 ed->recalc_call = 1;
335 ed->dirty = 1; 340 ed->dirty = 1;
336#ifdef EDJE_CALC_CACHE 341#ifdef EDJE_CALC_CACHE
337 rp->invalidate = 1; 342 rp->invalidate = 1;
diff --git a/libraries/edje/src/lib/edje_data.c b/libraries/edje/src/lib/edje_data.c
index 6b7b395..32b17b6 100644
--- a/libraries/edje/src/lib/edje_data.c
+++ b/libraries/edje/src/lib/edje_data.c
@@ -451,6 +451,9 @@ _edje_edd_init(void)
451 EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "align.y", align.y, EDJE_T_FLOAT); \ 451 EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "align.y", align.y, EDJE_T_FLOAT); \
452 EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "fixed.w", fixed.w, EET_T_UCHAR); \ 452 EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "fixed.w", fixed.w, EET_T_UCHAR); \
453 EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "fixed.h", fixed.h, EET_T_UCHAR); \ 453 EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "fixed.h", fixed.h, EET_T_UCHAR); \
454 EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "minmul.have", minmul.have, EET_T_UCHAR); \
455 EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "minmul.w", minmul.w, EDJE_T_FLOAT); \
456 EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "minmul.h", minmul.h, EDJE_T_FLOAT); \
454 EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "min.w", min.w, EET_T_INT); \ 457 EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "min.w", min.w, EET_T_INT); \
455 EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "min.h", min.h, EET_T_INT); \ 458 EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "min.h", min.h, EET_T_INT); \
456 EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "max.w", max.w, EET_T_INT); \ 459 EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "max.w", max.w, EET_T_INT); \
diff --git a/libraries/edje/src/lib/edje_edit.c b/libraries/edje/src/lib/edje_edit.c
index 901a1b1..eec5e04 100644
--- a/libraries/edje/src/lib/edje_edit.c
+++ b/libraries/edje/src/lib/edje_edit.c
@@ -20,14 +20,18 @@ EAPI Eina_Error EDJE_EDIT_ERROR_GROUP_CURRENTLY_USED = 0 ;
20EAPI Eina_Error EDJE_EDIT_ERROR_GROUP_REFERENCED = 0; 20EAPI Eina_Error EDJE_EDIT_ERROR_GROUP_REFERENCED = 0;
21EAPI Eina_Error EDJE_EDIT_ERROR_GROUP_DOES_NOT_EXIST = 0; 21EAPI Eina_Error EDJE_EDIT_ERROR_GROUP_DOES_NOT_EXIST = 0;
22 22
23/* Get ed(Edje*) from obj(Evas_Object*) */ 23/* Get eed(Edje_Edit*) from obj(Evas_Object*) */
24#define GET_ED_OR_RETURN(RET) \ 24#define GET_EED_OR_RETURN(RET) \
25 Edje *ed; \
26 Edje_Edit *eed; \ 25 Edje_Edit *eed; \
27 if (!evas_object_smart_type_check_ptr(obj, _edje_edit_type)) \ 26 if (!evas_object_smart_type_check_ptr(obj, _edje_edit_type)) \
28 return RET; \ 27 return RET; \
29 eed = evas_object_smart_data_get(obj); \ 28 eed = evas_object_smart_data_get(obj); \
30 if (!eed) return RET; \ 29 if (!eed) return RET;
30
31/* Get ed(Edje*) from obj(Evas_Object*) */
32#define GET_ED_OR_RETURN(RET) \
33 Edje *ed; \
34 GET_EED_OR_RETURN(RET); \
31 ed = (Edje *)eed; 35 ed = (Edje *)eed;
32 36
33/* Get rp(Edje_Real_Part*) from obj(Evas_Object*) and part(char*) */ 37/* Get rp(Edje_Real_Part*) from obj(Evas_Object*) and part(char*) */
@@ -388,72 +392,59 @@ _edje_real_part_free(Edje_Real_Part *rp)
388static Eina_Bool 392static Eina_Bool
389_edje_import_font_file(Edje *ed, const char *path, const char *entry) 393_edje_import_font_file(Edje *ed, const char *path, const char *entry)
390{ 394{
395 Eina_File *f;
396 Eet_File *eetf = NULL;
391 void *fdata = NULL; 397 void *fdata = NULL;
392 long fsize = 0; 398 long fsize = 0;
393 399
394 /* Read font data from file */ 400 /* Read font data from file */
395 { 401 f = eina_file_open(path, 0);
396 FILE *f = fopen(path, "rb"); 402 if (!f)
397 if (!f) 403 {
398 { 404 ERR("Unable to open font file \"%s\"", path);
399 ERR("Unable to open font file \"%s\"", path); 405 return EINA_FALSE;
400 return EINA_FALSE; 406 }
401 }
402 407
403 fseek(f, 0, SEEK_END); 408 fsize = eina_file_size_get(f);
404 fsize = ftell(f); 409 fdata = eina_file_map_all(f, EINA_FILE_SEQUENTIAL);
405 rewind(f); 410 if (!fdata)
406 fdata = malloc(fsize); 411 {
407 if (!fdata) 412 ERR("Unable to map font file \"%s\"", path);
408 { 413 goto on_error;
409 ERR("Unable to alloc font file \"%s\"", path); 414 }
410 fclose(f);
411 return EINA_FALSE;
412 }
413 if (fread(fdata, fsize, 1, f) != 1)
414 {
415 free(fdata);
416 fclose(f);
417 ERR("Unable to read all of font file \"%s\"", path);
418 return EINA_FALSE;
419 }
420 fclose(f);
421 }
422 415
423 /* Write font to edje file */ 416 /* Write font to edje file */
424 { 417 eetf = eet_open(ed->path, EET_FILE_MODE_READ_WRITE);
425 /* open the eet file */ 418 if (!eetf)
426 Eet_File *eetf = eet_open(ed->path, EET_FILE_MODE_READ_WRITE); 419 {
427 if (!eetf) 420 ERR("Unable to open \"%s\" for writing output", ed->path);
428 { 421 goto on_error;
429 ERR("Unable to open \"%s\" for writing output", ed->path); 422 }
430 free(fdata);
431 return EINA_FALSE;
432 }
433 423
434 if (eet_write(eetf, entry, fdata, fsize, 1) <= 0) 424 if (eet_write(eetf, entry, fdata, fsize, 1) <= 0)
435 { 425 {
436 ERR("Unable to write font part \"%s\" as \"%s\" part entry", 426 ERR("Unable to write font part \"%s\" as \"%s\" part entry",
437 path, entry); 427 path, entry);
438 eet_close(eetf); 428 goto on_error;
439 free(fdata); 429 }
440 return EINA_FALSE;
441 }
442 430
443 free(fdata); 431 /* write the edje_file */
432 if (!_edje_edit_edje_file_save(eetf, ed->file))
433 goto on_error;
444 434
445 /* write the edje_file */ 435 eet_close(eetf);
446 if (!_edje_edit_edje_file_save(eetf, ed->file))
447 {
448 eet_delete(eetf, entry);
449 eet_close(eetf);
450 return EINA_FALSE;
451 }
452 436
453 eet_close(eetf); 437 eina_file_map_free(f, fdata);
454 } 438 eina_file_close(f);
455 439
456 return EINA_TRUE; 440 return EINA_TRUE;
441
442 on_error:
443 if (eetf) eet_close(eetf);
444 eina_file_map_free(f, fdata);
445 eina_file_close(f);
446
447 return EINA_FALSE;
457} 448}
458 449
459 450
@@ -4791,7 +4782,7 @@ edje_edit_image_id_get(Evas_Object *obj, const char *image_name)
4791{ 4782{
4792 eina_error_set(0); 4783 eina_error_set(0);
4793 4784
4794 GET_ED_OR_RETURN(-1); 4785 GET_EED_OR_RETURN(-1);
4795 4786
4796 return _edje_image_id_find(eed, image_name); 4787 return _edje_image_id_find(eed, image_name);
4797} 4788}
@@ -5174,7 +5165,6 @@ EAPI Eina_Bool
5174edje_edit_program_add(Evas_Object *obj, const char *name) 5165edje_edit_program_add(Evas_Object *obj, const char *name)
5175{ 5166{
5176 Edje_Program *epr; 5167 Edje_Program *epr;
5177 Edje_Part_Collection *pc;
5178 5168
5179 eina_error_set(0); 5169 eina_error_set(0);
5180 5170
@@ -5191,7 +5181,7 @@ edje_edit_program_add(Evas_Object *obj, const char *name)
5191 if (!epr) return EINA_FALSE; 5181 if (!epr) return EINA_FALSE;
5192 5182
5193 //Add program to group 5183 //Add program to group
5194 pc = ed->collection; 5184 // pc = ed->collection;
5195 5185
5196 /* By default, source and signal are empty, so they fill in nocmp category */ 5186 /* By default, source and signal are empty, so they fill in nocmp category */
5197 ed->collection->programs.nocmp = realloc(ed->collection->programs.nocmp, 5187 ed->collection->programs.nocmp = realloc(ed->collection->programs.nocmp,
@@ -5237,7 +5227,6 @@ edje_edit_program_del(Evas_Object *obj, const char *prog)
5237 Eina_List *l, *l_next; 5227 Eina_List *l, *l_next;
5238 Edje_Program_Target *prt; 5228 Edje_Program_Target *prt;
5239 Edje_Program_After *pa; 5229 Edje_Program_After *pa;
5240 Edje_Part_Collection *pc;
5241 Edje_Program *p; 5230 Edje_Program *p;
5242 Program_Script *ps, *old_ps; 5231 Program_Script *ps, *old_ps;
5243 int id, i; 5232 int id, i;
@@ -5248,7 +5237,7 @@ edje_edit_program_del(Evas_Object *obj, const char *prog)
5248 GET_ED_OR_RETURN(EINA_FALSE); 5237 GET_ED_OR_RETURN(EINA_FALSE);
5249 GET_EPR_OR_RETURN(EINA_FALSE); 5238 GET_EPR_OR_RETURN(EINA_FALSE);
5250 5239
5251 pc = ed->collection; 5240 //pc = ed->collection;
5252 5241
5253 //Remove program from programs list 5242 //Remove program from programs list
5254 id = epr->id; 5243 id = epr->id;
@@ -5737,7 +5726,7 @@ edje_edit_program_action_set(Evas_Object *obj, const char *prog, Edje_Action_Typ
5737 5726
5738 eina_error_set(0); 5727 eina_error_set(0);
5739 5728
5740 GET_ED_OR_RETURN(EINA_FALSE); 5729 GET_EED_OR_RETURN(EINA_FALSE);
5741 GET_EPR_OR_RETURN(EINA_FALSE); 5730 GET_EPR_OR_RETURN(EINA_FALSE);
5742 5731
5743 //printf("SET ACTION for program: %s [%d]\n", prog, action); 5732 //printf("SET ACTION for program: %s [%d]\n", prog, action);
@@ -6081,7 +6070,7 @@ edje_edit_script_set(Evas_Object *obj, const char *code)
6081{ 6070{
6082 eina_error_set(0); 6071 eina_error_set(0);
6083 6072
6084 GET_ED_OR_RETURN(); 6073 GET_EED_OR_RETURN();
6085 6074
6086 free(eed->embryo_source); 6075 free(eed->embryo_source);
6087 free(eed->embryo_processed); 6076 free(eed->embryo_processed);
@@ -6104,7 +6093,7 @@ edje_edit_script_program_get(Evas_Object *obj, const char *prog)
6104 6093
6105 eina_error_set(0); 6094 eina_error_set(0);
6106 6095
6107 GET_ED_OR_RETURN(NULL); 6096 GET_EED_OR_RETURN(NULL);
6108 GET_EPR_OR_RETURN(NULL); 6097 GET_EPR_OR_RETURN(NULL);
6109 6098
6110 if (epr->action != EDJE_ACTION_TYPE_SCRIPT) 6099 if (epr->action != EDJE_ACTION_TYPE_SCRIPT)
@@ -6124,7 +6113,7 @@ edje_edit_script_program_set(Evas_Object *obj, const char *prog, const char *cod
6124 6113
6125 eina_error_set(0); 6114 eina_error_set(0);
6126 6115
6127 GET_ED_OR_RETURN(); 6116 GET_EED_OR_RETURN();
6128 GET_EPR_OR_RETURN(); 6117 GET_EPR_OR_RETURN();
6129 6118
6130 if (epr->action != EDJE_ACTION_TYPE_SCRIPT) 6119 if (epr->action != EDJE_ACTION_TYPE_SCRIPT)
@@ -6550,7 +6539,7 @@ almost_out:
6550EAPI Eina_Bool 6539EAPI Eina_Bool
6551edje_edit_script_compile(Evas_Object *obj) 6540edje_edit_script_compile(Evas_Object *obj)
6552{ 6541{
6553 GET_ED_OR_RETURN(EINA_FALSE); 6542 GET_EED_OR_RETURN(EINA_FALSE);
6554 6543
6555 if (!eed->script_need_recompile) 6544 if (!eed->script_need_recompile)
6556 return EINA_TRUE; 6545 return EINA_TRUE;
@@ -6561,7 +6550,7 @@ edje_edit_script_compile(Evas_Object *obj)
6561EAPI const Eina_List * 6550EAPI const Eina_List *
6562edje_edit_script_error_list_get(Evas_Object *obj) 6551edje_edit_script_error_list_get(Evas_Object *obj)
6563{ 6552{
6564 GET_ED_OR_RETURN(NULL); 6553 GET_EED_OR_RETURN(NULL);
6565 return eed->errors; 6554 return eed->errors;
6566} 6555}
6567 6556
@@ -6643,7 +6632,7 @@ _edje_generate_source_of_program(Evas_Object *obj, const char *program, Eina_Str
6643 const char *api_name, *api_description; 6632 const char *api_name, *api_description;
6644 Edje_Program *epr; 6633 Edje_Program *epr;
6645 6634
6646 GET_ED_OR_RETURN(EINA_FALSE); 6635 GET_EED_OR_RETURN(EINA_FALSE);
6647 6636
6648 epr = _edje_program_get_byname(obj, program); 6637 epr = _edje_program_get_byname(obj, program);
6649 6638
@@ -6816,7 +6805,7 @@ _edje_generate_source_of_state(Evas_Object *obj, const char *part, const char *s
6816 if (pd->aspect.min || pd->aspect.max) 6805 if (pd->aspect.min || pd->aspect.max)
6817 BUF_APPENDF(I5"aspect: %g %g;\n", TO_DOUBLE(pd->aspect.min), TO_DOUBLE(pd->aspect.max)); 6806 BUF_APPENDF(I5"aspect: %g %g;\n", TO_DOUBLE(pd->aspect.min), TO_DOUBLE(pd->aspect.max));
6818 if (pd->aspect.prefer) 6807 if (pd->aspect.prefer)
6819 BUF_APPENDF(I5"aspect_preference: %s;\n", prefers[pd->aspect.prefer]); 6808 BUF_APPENDF(I5"aspect_preference: %s;\n", prefers[(int) pd->aspect.prefer]);
6820 6809
6821 if (pd->color_class) 6810 if (pd->color_class)
6822 BUF_APPENDF(I5"color_class: \"%s\";\n", pd->color_class); 6811 BUF_APPENDF(I5"color_class: \"%s\";\n", pd->color_class);
@@ -7786,7 +7775,7 @@ edje_edit_print_internal_status(Evas_Object *obj)
7786*/ 7775*/
7787 eina_error_set(0); 7776 eina_error_set(0);
7788 7777
7789 GET_ED_OR_RETURN(); 7778 GET_EED_OR_RETURN();
7790 7779
7791 _edje_generate_source(obj); 7780 _edje_generate_source(obj);
7792/* 7781/*
diff --git a/libraries/edje/src/lib/edje_embryo.c b/libraries/edje/src/lib/edje_embryo.c
index c89a4f4..1ad2377 100644
--- a/libraries/edje/src/lib/edje_embryo.c
+++ b/libraries/edje/src/lib/edje_embryo.c
@@ -674,6 +674,7 @@ _edje_embryo_fn_set_min_size(Embryo_Program *ep, Embryo_Cell *params)
674 if (h < 0.0) h = 0.0; 674 if (h < 0.0) h = 0.0;
675 ed->collection->prop.min.w = w; 675 ed->collection->prop.min.w = w;
676 ed->collection->prop.min.h = h; 676 ed->collection->prop.min.h = h;
677 ed->recalc_call = 1;
677 ed->dirty = 1; 678 ed->dirty = 1;
678#ifdef EDJE_CALC_CACHE 679#ifdef EDJE_CALC_CACHE
679 ed->all_part_change = 1; 680 ed->all_part_change = 1;
@@ -701,6 +702,7 @@ _edje_embryo_fn_set_max_size(Embryo_Program *ep, Embryo_Cell *params)
701 if (h < 0.0) h = 0.0; 702 if (h < 0.0) h = 0.0;
702 ed->collection->prop.max.w = w; 703 ed->collection->prop.max.w = w;
703 ed->collection->prop.max.h = h; 704 ed->collection->prop.max.h = h;
705 ed->recalc_call = 1;
704 ed->dirty = 1; 706 ed->dirty = 1;
705#ifdef EDJE_CALC_CACHE 707#ifdef EDJE_CALC_CACHE
706 ed->all_part_change = 1; 708 ed->all_part_change = 1;
diff --git a/libraries/edje/src/lib/edje_entry.c b/libraries/edje/src/lib/edje_entry.c
index e25397a..563497d 100644
--- a/libraries/edje/src/lib/edje_entry.c
+++ b/libraries/edje/src/lib/edje_entry.c
@@ -2,9 +2,9 @@
2 2
3#ifdef HAVE_ECORE_IMF 3#ifdef HAVE_ECORE_IMF
4static Eina_Bool _edje_entry_imf_retrieve_surrounding_cb(void *data, Ecore_IMF_Context *ctx, char **text, int *cursor_pos); 4static Eina_Bool _edje_entry_imf_retrieve_surrounding_cb(void *data, Ecore_IMF_Context *ctx, char **text, int *cursor_pos);
5static Eina_Bool _edje_entry_imf_event_commit_cb(void *data, int type, void *event); 5static void _edje_entry_imf_event_commit_cb(void *data, Ecore_IMF_Context *ctx, void *event_info);
6static Eina_Bool _edje_entry_imf_event_preedit_changed_cb(void *data, int type, void *event); 6static void _edje_entry_imf_event_preedit_changed_cb(void *data, Ecore_IMF_Context *ctx, void *event_info);
7static Eina_Bool _edje_entry_imf_event_delete_surrounding_cb(void *data, int type, void *event); 7static void _edje_entry_imf_event_delete_surrounding_cb(void *data, Ecore_IMF_Context *ctx, void *event);
8#endif 8#endif
9 9
10typedef struct _Entry Entry; 10typedef struct _Entry Entry;
@@ -39,10 +39,6 @@ struct _Entry
39#ifdef HAVE_ECORE_IMF 39#ifdef HAVE_ECORE_IMF
40 Eina_Bool have_preedit : 1; 40 Eina_Bool have_preedit : 1;
41 Ecore_IMF_Context *imf_context; 41 Ecore_IMF_Context *imf_context;
42
43 Ecore_Event_Handler *imf_ee_handler_commit;
44 Ecore_Event_Handler *imf_ee_handler_delete;
45 Ecore_Event_Handler *imf_ee_handler_changed;
46#endif 42#endif
47}; 43};
48 44
@@ -272,20 +268,6 @@ _curs_update_from_curs(Evas_Textblock_Cursor *c, Evas_Object *o __UNUSED__, Entr
272 *cy += (ch / 2); 268 *cy += (ch / 2);
273} 269}
274 270
275static void
276_curs_back(Evas_Textblock_Cursor *c, Evas_Object *o __UNUSED__,
277 Entry *en __UNUSED__)
278{
279 evas_textblock_cursor_char_prev(c);
280}
281
282static void
283_curs_next(Evas_Textblock_Cursor *c, Evas_Object *o __UNUSED__,
284 Entry *en __UNUSED__)
285{
286 evas_textblock_cursor_char_next(c);
287}
288
289static int 271static int
290_curs_line_last_get(Evas_Textblock_Cursor *c __UNUSED__, Evas_Object *o, Entry *en __UNUSED__) 272_curs_line_last_get(Evas_Textblock_Cursor *c __UNUSED__, Evas_Object *o, Entry *en __UNUSED__)
291{ 273{
@@ -415,6 +397,7 @@ static void
415_sel_extend(Evas_Textblock_Cursor *c, Evas_Object *o, Entry *en) 397_sel_extend(Evas_Textblock_Cursor *c, Evas_Object *o, Entry *en)
416{ 398{
417 if (!en->sel_end) return; 399 if (!en->sel_end) return;
400 _edje_entry_imf_context_reset(en);
418 _sel_enable(c, o, en); 401 _sel_enable(c, o, en);
419 if (!evas_textblock_cursor_compare(c, en->sel_end)) return; 402 if (!evas_textblock_cursor_compare(c, en->sel_end)) return;
420 evas_textblock_cursor_copy(c, en->sel_end); 403 evas_textblock_cursor_copy(c, en->sel_end);
@@ -424,13 +407,13 @@ _sel_extend(Evas_Textblock_Cursor *c, Evas_Object *o, Entry *en)
424 en->selection = NULL; 407 en->selection = NULL;
425 } 408 }
426 _edje_emit(en->rp->edje, "selection,changed", en->rp->part->name); 409 _edje_emit(en->rp->edje, "selection,changed", en->rp->part->name);
427 _edje_entry_imf_context_reset(en);
428} 410}
429 411
430static void 412static void
431_sel_preextend(Evas_Textblock_Cursor *c, Evas_Object *o, Entry *en) 413_sel_preextend(Evas_Textblock_Cursor *c, Evas_Object *o, Entry *en)
432{ 414{
433 if (!en->sel_end) return; 415 if (!en->sel_end) return;
416 _edje_entry_imf_context_reset(en);
434 _sel_enable(c, o, en); 417 _sel_enable(c, o, en);
435 if (!evas_textblock_cursor_compare(c, en->sel_start)) return; 418 if (!evas_textblock_cursor_compare(c, en->sel_start)) return;
436 evas_textblock_cursor_copy(c, en->sel_start); 419 evas_textblock_cursor_copy(c, en->sel_start);
@@ -440,7 +423,6 @@ _sel_preextend(Evas_Textblock_Cursor *c, Evas_Object *o, Entry *en)
440 en->selection = NULL; 423 en->selection = NULL;
441 } 424 }
442 _edje_emit(en->rp->edje, "selection,changed", en->rp->part->name); 425 _edje_emit(en->rp->edje, "selection,changed", en->rp->part->name);
443 _edje_entry_imf_context_reset(en);
444} 426}
445 427
446static void 428static void
@@ -1107,6 +1089,10 @@ _edje_key_down_cb(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, v
1107 } 1089 }
1108#endif 1090#endif
1109 1091
1092 if ((!strcmp(ev->key, "Escape")) ||
1093 (!strcmp(ev->key, "Return")) || (!strcmp(ev->key, "KP_Enter")))
1094 _edje_entry_imf_context_reset(en);
1095
1110 old_cur_pos = evas_textblock_cursor_pos_get(en->cursor); 1096 old_cur_pos = evas_textblock_cursor_pos_get(en->cursor);
1111 1097
1112 control = evas_key_modifier_is_set(ev->modifiers, "Control"); 1098 control = evas_key_modifier_is_set(ev->modifiers, "Control");
@@ -1138,6 +1124,7 @@ _edje_key_down_cb(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, v
1138 } 1124 }
1139 _sel_clear(en->cursor, rp->object, en); 1125 _sel_clear(en->cursor, rp->object, en);
1140 _edje_emit(ed, "entry,key,up", rp->part->name); 1126 _edje_emit(ed, "entry,key,up", rp->part->name);
1127 _edje_emit(rp->edje, "cursor,changed,manual", rp->part->name);
1141 } 1128 }
1142 else if (!strcmp(ev->key, "Down") || !strcmp(ev->key, "KP_Down")) 1129 else if (!strcmp(ev->key, "Down") || !strcmp(ev->key, "KP_Down"))
1143 { 1130 {
@@ -1157,6 +1144,7 @@ _edje_key_down_cb(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, v
1157 } 1144 }
1158 _sel_clear(en->cursor, rp->object, en); 1145 _sel_clear(en->cursor, rp->object, en);
1159 _edje_emit(ed, "entry,key,down", rp->part->name); 1146 _edje_emit(ed, "entry,key,down", rp->part->name);
1147 _edje_emit(rp->edje, "cursor,changed,manual", rp->part->name);
1160 } 1148 }
1161 else if (!strcmp(ev->key, "Left") || !strcmp(ev->key, "KP_Left")) 1149 else if (!strcmp(ev->key, "Left") || !strcmp(ev->key, "KP_Left"))
1162 { 1150 {
@@ -1165,13 +1153,16 @@ _edje_key_down_cb(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, v
1165 if (shift) _sel_start(en->cursor, rp->object, en); 1153 if (shift) _sel_start(en->cursor, rp->object, en);
1166 else _sel_clear(en->cursor, rp->object, en); 1154 else _sel_clear(en->cursor, rp->object, en);
1167 } 1155 }
1168 _curs_back(en->cursor, rp->object, en); 1156 evas_textblock_cursor_char_prev(en->cursor);
1157 /* If control is pressed, go to the start of the word */
1158 if (control) evas_textblock_cursor_word_start(en->cursor);
1169 if (en->select_allow) 1159 if (en->select_allow)
1170 { 1160 {
1171 if (shift) _sel_extend(en->cursor, rp->object, en); 1161 if (shift) _sel_extend(en->cursor, rp->object, en);
1172 } 1162 }
1173 _sel_clear(en->cursor, rp->object, en); 1163 _sel_clear(en->cursor, rp->object, en);
1174 _edje_emit(ed, "entry,key,left", rp->part->name); 1164 _edje_emit(ed, "entry,key,left", rp->part->name);
1165 _edje_emit(rp->edje, "cursor,changed,manual", rp->part->name);
1175 ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD; 1166 ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
1176 } 1167 }
1177 else if (!strcmp(ev->key, "Right") || !strcmp(ev->key, "KP_Right")) 1168 else if (!strcmp(ev->key, "Right") || !strcmp(ev->key, "KP_Right"))
@@ -1181,20 +1172,31 @@ _edje_key_down_cb(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, v
1181 if (shift) _sel_start(en->cursor, rp->object, en); 1172 if (shift) _sel_start(en->cursor, rp->object, en);
1182 else _sel_clear(en->cursor, rp->object, en); 1173 else _sel_clear(en->cursor, rp->object, en);
1183 } 1174 }
1184 _curs_next(en->cursor, rp->object, en); 1175 /* If control is pressed, go to the start of the word */
1176 if (control) evas_textblock_cursor_word_end(en->cursor);
1177 evas_textblock_cursor_char_next(en->cursor);
1185 if (en->select_allow) 1178 if (en->select_allow)
1186 { 1179 {
1187 if (shift) _sel_extend(en->cursor, rp->object, en); 1180 if (shift) _sel_extend(en->cursor, rp->object, en);
1188 } 1181 }
1189 _sel_clear(en->cursor, rp->object, en); 1182 _sel_clear(en->cursor, rp->object, en);
1190 _edje_emit(ed, "entry,key,right", rp->part->name); 1183 _edje_emit(ed, "entry,key,right", rp->part->name);
1184 _edje_emit(rp->edje, "cursor,changed,manual", rp->part->name);
1191 ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD; 1185 ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
1192 } 1186 }
1193 else if (!strcmp(ev->key, "BackSpace")) 1187 else if (!strcmp(ev->key, "BackSpace"))
1194 { 1188 {
1195 if (control) 1189 if (control && !en->have_selection)
1196 { 1190 {
1197 // del to start of previous word 1191 // del to start of previous word
1192 _sel_start(en->cursor, rp->object, en);
1193
1194 evas_textblock_cursor_char_prev(en->cursor);
1195 evas_textblock_cursor_word_start(en->cursor);
1196
1197 _sel_extend(en->cursor, rp->object, en);
1198
1199 _range_del_emit(ed, en->cursor, rp->object, en);
1198 } 1200 }
1199 else if ((alt) && (shift)) 1201 else if ((alt) && (shift))
1200 { 1202 {
@@ -1224,6 +1226,14 @@ _edje_key_down_cb(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, v
1224 if (control) 1226 if (control)
1225 { 1227 {
1226 // del to end of next word 1228 // del to end of next word
1229 _sel_start(en->cursor, rp->object, en);
1230
1231 evas_textblock_cursor_word_end(en->cursor);
1232 evas_textblock_cursor_char_next(en->cursor);
1233
1234 _sel_extend(en->cursor, rp->object, en);
1235
1236 _range_del_emit(ed, en->cursor, rp->object, en);
1227 } 1237 }
1228 else if (shift) 1238 else if (shift)
1229 { 1239 {
@@ -1281,10 +1291,6 @@ _edje_key_down_cb(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, v
1281 _edje_emit(ed, "entry,key,end", rp->part->name); 1291 _edje_emit(ed, "entry,key,end", rp->part->name);
1282 ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD; 1292 ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
1283 } 1293 }
1284 else if (!strcmp(ev->key, "Shift_L") || !strcmp(ev->key, "Shift_R"))
1285 {
1286 return;
1287 }
1288 else if ((control) && (!strcmp(ev->key, "v"))) 1294 else if ((control) && (!strcmp(ev->key, "v")))
1289 { 1295 {
1290 _edje_emit(ed, "entry,paste,request", rp->part->name); 1296 _edje_emit(ed, "entry,paste,request", rp->part->name);
@@ -1303,13 +1309,11 @@ _edje_key_down_cb(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, v
1303 } 1309 }
1304 else if ((control) && ((!strcmp(ev->key, "c") || (!strcmp(ev->key, "Insert"))))) 1310 else if ((control) && ((!strcmp(ev->key, "c") || (!strcmp(ev->key, "Insert")))))
1305 { 1311 {
1306 // FIXME: copy - save selection
1307 _edje_emit(ed, "entry,copy,notify", rp->part->name); 1312 _edje_emit(ed, "entry,copy,notify", rp->part->name);
1308 ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD; 1313 ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
1309 } 1314 }
1310 else if ((control) && ((!strcmp(ev->key, "x") || (!strcmp(ev->key, "m"))))) 1315 else if ((control) && ((!strcmp(ev->key, "x") || (!strcmp(ev->key, "m")))))
1311 { 1316 {
1312 // FIXME: cut - save selection, delete seletion
1313 _edje_emit(ed, "entry,cut,notify", rp->part->name); 1317 _edje_emit(ed, "entry,cut,notify", rp->part->name);
1314 ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD; 1318 ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
1315 } 1319 }
@@ -1336,7 +1340,7 @@ _edje_key_down_cb(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, v
1336 else if ((control) && (!strcmp(ev->key, "w"))) 1340 else if ((control) && (!strcmp(ev->key, "w")))
1337 { 1341 {
1338 _sel_clear(en->cursor, rp->object, en); 1342 _sel_clear(en->cursor, rp->object, en);
1339 // select current word 1343 // select current word?
1340 ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD; 1344 ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
1341 } 1345 }
1342 else if (!strcmp(ev->key, "Tab")) 1346 else if (!strcmp(ev->key, "Tab"))
@@ -1361,10 +1365,10 @@ _edje_key_down_cb(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, v
1361 _sel_clear(en->cursor, rp->object, en); 1365 _sel_clear(en->cursor, rp->object, en);
1362 info->change.insert.pos = 1366 info->change.insert.pos =
1363 evas_textblock_cursor_pos_get(en->cursor); 1367 evas_textblock_cursor_pos_get(en->cursor);
1364 info->change.insert.content = eina_stringshare_add("<\t>"); 1368 info->change.insert.content = eina_stringshare_add("<tab/>");
1365 //yy 1369 //yy
1366// evas_textblock_cursor_format_prepend(en->cursor, "\t"); 1370// evas_textblock_cursor_format_prepend(en->cursor, "tab");
1367 _text_filter_format_prepend(en, en->cursor, "\t"); 1371 _text_filter_format_prepend(en, en->cursor, "tab");
1368 _anchors_get(en->cursor, rp->object, en); 1372 _anchors_get(en->cursor, rp->object, en);
1369 _edje_emit(ed, "entry,changed", rp->part->name); 1373 _edje_emit(ed, "entry,changed", rp->part->name);
1370 _edje_emit_full(ed, "entry,changed,user", rp->part->name, 1374 _edje_emit_full(ed, "entry,changed,user", rp->part->name,
@@ -1427,19 +1431,20 @@ _edje_key_down_cb(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, v
1427 1431
1428 info->change.insert.pos = 1432 info->change.insert.pos =
1429 evas_textblock_cursor_pos_get(en->cursor); 1433 evas_textblock_cursor_pos_get(en->cursor);
1430 if (shift) 1434 if (shift ||
1435 evas_object_textblock_legacy_newline_get(rp->object))
1431 { 1436 {
1432 //yy 1437 //yy
1433// evas_textblock_cursor_format_prepend(en->cursor, "\n"); 1438// evas_textblock_cursor_format_prepend(en->cursor, "br");
1434 _text_filter_format_prepend(en, en->cursor, "\n"); 1439 _text_filter_format_prepend(en, en->cursor, "br");
1435 info->change.insert.content = eina_stringshare_add("<\n>"); 1440 info->change.insert.content = eina_stringshare_add("<br/>");
1436 } 1441 }
1437 else 1442 else
1438 { 1443 {
1439 //yy 1444 //yy
1440// evas_textblock_cursor_format_prepend(en->cursor, "ps"); 1445// evas_textblock_cursor_format_prepend(en->cursor, "ps");
1441 _text_filter_format_prepend(en, en->cursor, "ps"); 1446 _text_filter_format_prepend(en, en->cursor, "ps");
1442 info->change.insert.content = eina_stringshare_add("<ps>"); 1447 info->change.insert.content = eina_stringshare_add("<ps/>");
1443 } 1448 }
1444 _anchors_get(en->cursor, rp->object, en); 1449 _anchors_get(en->cursor, rp->object, en);
1445 _edje_emit(ed, "entry,changed", rp->part->name); 1450 _edje_emit(ed, "entry,changed", rp->part->name);
@@ -1499,7 +1504,6 @@ _edje_key_down_cb(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, v
1499 if (!cursor_changed && (old_cur_pos != evas_textblock_cursor_pos_get(en->cursor))) 1504 if (!cursor_changed && (old_cur_pos != evas_textblock_cursor_pos_get(en->cursor)))
1500 _edje_emit(ed, "cursor,changed", rp->part->name); 1505 _edje_emit(ed, "cursor,changed", rp->part->name);
1501 1506
1502 _edje_entry_imf_context_reset(en);
1503 _edje_entry_imf_cursor_info_set(en); 1507 _edje_entry_imf_cursor_info_set(en);
1504 _edje_entry_real_part_configure(rp); 1508 _edje_entry_real_part_configure(rp);
1505} 1509}
@@ -1576,6 +1580,8 @@ _edje_part_mouse_down_cb(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUS
1576 } 1580 }
1577#endif 1581#endif
1578 1582
1583 _edje_entry_imf_context_reset(en);
1584
1579 en->select_mod_start = EINA_FALSE; 1585 en->select_mod_start = EINA_FALSE;
1580 en->select_mod_end = EINA_FALSE; 1586 en->select_mod_end = EINA_FALSE;
1581 if (rp->part->select_mode == EDJE_ENTRY_SELECTION_MODE_DEFAULT) 1587 if (rp->part->select_mode == EDJE_ENTRY_SELECTION_MODE_DEFAULT)
@@ -1690,10 +1696,12 @@ _edje_part_mouse_down_cb(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUS
1690 } 1696 }
1691 } 1697 }
1692 if (evas_textblock_cursor_compare(tc, en->cursor)) 1698 if (evas_textblock_cursor_compare(tc, en->cursor))
1693 _edje_emit(rp->edje, "cursor,changed", rp->part->name); 1699 {
1700 _edje_emit(rp->edje, "cursor,changed", rp->part->name);
1701 _edje_emit(rp->edje, "cursor,changed,manual", rp->part->name);
1702 }
1694 evas_textblock_cursor_free(tc); 1703 evas_textblock_cursor_free(tc);
1695 1704
1696 _edje_entry_imf_context_reset(en);
1697 _edje_entry_imf_cursor_info_set(en); 1705 _edje_entry_imf_cursor_info_set(en);
1698 1706
1699 _edje_entry_real_part_configure(rp); 1707 _edje_entry_real_part_configure(rp);
@@ -1733,6 +1741,8 @@ _edje_part_mouse_up_cb(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED
1733 } 1741 }
1734#endif 1742#endif
1735 1743
1744 _edje_entry_imf_context_reset(en);
1745
1736 tc = evas_object_textblock_cursor_new(rp->object); 1746 tc = evas_object_textblock_cursor_new(rp->object);
1737 evas_textblock_cursor_copy(en->cursor, tc); 1747 evas_textblock_cursor_copy(en->cursor, tc);
1738 evas_object_geometry_get(rp->object, &x, &y, &w, &h); 1748 evas_object_geometry_get(rp->object, &x, &y, &w, &h);
@@ -1799,10 +1809,12 @@ _edje_part_mouse_up_cb(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED
1799 en->selecting = EINA_FALSE; 1809 en->selecting = EINA_FALSE;
1800 } 1810 }
1801 if (evas_textblock_cursor_compare(tc, en->cursor)) 1811 if (evas_textblock_cursor_compare(tc, en->cursor))
1802 _edje_emit(rp->edje, "cursor,changed", rp->part->name); 1812 {
1813 _edje_emit(rp->edje, "cursor,changed", rp->part->name);
1814 _edje_emit(rp->edje, "cursor,changed,manual", rp->part->name);
1815 }
1803 evas_textblock_cursor_free(tc); 1816 evas_textblock_cursor_free(tc);
1804 1817
1805 _edje_entry_imf_context_reset(en);
1806 _edje_entry_imf_cursor_info_set(en); 1818 _edje_entry_imf_cursor_info_set(en);
1807 _edje_entry_real_part_configure(rp); 1819 _edje_entry_real_part_configure(rp);
1808} 1820}
@@ -1893,7 +1905,10 @@ _edje_part_mouse_move_cb(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUS
1893 _sel_update(en->cursor, rp->object, en); 1905 _sel_update(en->cursor, rp->object, en);
1894 } 1906 }
1895 if (evas_textblock_cursor_compare(tc, en->cursor)) 1907 if (evas_textblock_cursor_compare(tc, en->cursor))
1896 _edje_emit(rp->edje, "cursor,changed", rp->part->name); 1908 {
1909 _edje_emit(rp->edje, "cursor,changed", rp->part->name);
1910 _edje_emit(rp->edje, "cursor,changed,manual", rp->part->name);
1911 }
1897 evas_textblock_cursor_free(tc); 1912 evas_textblock_cursor_free(tc);
1898 1913
1899 _edje_entry_imf_context_reset(en); 1914 _edje_entry_imf_context_reset(en);
@@ -2014,6 +2029,8 @@ _edje_entry_real_part_init(Edje_Real_Part *rp)
2014 evas_object_pass_events_set(en->cursor_fg, EINA_TRUE); 2029 evas_object_pass_events_set(en->cursor_fg, EINA_TRUE);
2015 _edje_subobj_register(en->rp->edje, en->cursor_fg); 2030 _edje_subobj_register(en->rp->edje, en->cursor_fg);
2016 2031
2032 evas_object_textblock_legacy_newline_set(rp->object, EINA_TRUE);
2033
2017 if (rp->part->entry_mode >= EDJE_ENTRY_EDIT_MODE_EDITABLE) 2034 if (rp->part->entry_mode >= EDJE_ENTRY_EDIT_MODE_EDITABLE)
2018 { 2035 {
2019 evas_object_show(en->cursor_bg); 2036 evas_object_show(en->cursor_bg);
@@ -2055,9 +2072,9 @@ _edje_entry_real_part_init(Edje_Real_Part *rp)
2055 2072
2056 ecore_imf_context_retrieve_surrounding_callback_set(en->imf_context, 2073 ecore_imf_context_retrieve_surrounding_callback_set(en->imf_context,
2057 _edje_entry_imf_retrieve_surrounding_cb, rp->edje); 2074 _edje_entry_imf_retrieve_surrounding_cb, rp->edje);
2058 en->imf_ee_handler_commit = ecore_event_handler_add(ECORE_IMF_EVENT_COMMIT, _edje_entry_imf_event_commit_cb, rp->edje); 2075 ecore_imf_context_event_callback_add(en->imf_context, ECORE_IMF_CALLBACK_COMMIT, _edje_entry_imf_event_commit_cb, rp->edje);
2059 en->imf_ee_handler_delete = ecore_event_handler_add(ECORE_IMF_EVENT_DELETE_SURROUNDING, _edje_entry_imf_event_delete_surrounding_cb, rp->edje); 2076 ecore_imf_context_event_callback_add(en->imf_context, ECORE_IMF_CALLBACK_DELETE_SURROUNDING, _edje_entry_imf_event_delete_surrounding_cb, rp->edje);
2060 en->imf_ee_handler_changed = ecore_event_handler_add(ECORE_IMF_EVENT_PREEDIT_CHANGED, _edje_entry_imf_event_preedit_changed_cb, rp->edje); 2077 ecore_imf_context_event_callback_add(en->imf_context, ECORE_IMF_CALLBACK_PREEDIT_CHANGED, _edje_entry_imf_event_preedit_changed_cb, rp->edje);
2061 ecore_imf_context_input_mode_set(en->imf_context, 2078 ecore_imf_context_input_mode_set(en->imf_context,
2062 rp->part->entry_mode == EDJE_ENTRY_EDIT_MODE_PASSWORD ? 2079 rp->part->entry_mode == EDJE_ENTRY_EDIT_MODE_PASSWORD ?
2063 ECORE_IMF_INPUT_MODE_INVISIBLE : ECORE_IMF_INPUT_MODE_FULL); 2080 ECORE_IMF_INPUT_MODE_INVISIBLE : ECORE_IMF_INPUT_MODE_FULL);
@@ -2094,23 +2111,9 @@ _edje_entry_real_part_shutdown(Edje_Real_Part *rp)
2094 { 2111 {
2095 if (en->imf_context) 2112 if (en->imf_context)
2096 { 2113 {
2097 if (en->imf_ee_handler_commit) 2114 ecore_imf_context_event_callback_del(en->imf_context, ECORE_IMF_CALLBACK_COMMIT, _edje_entry_imf_event_commit_cb);
2098 { 2115 ecore_imf_context_event_callback_del(en->imf_context, ECORE_IMF_CALLBACK_DELETE_SURROUNDING, _edje_entry_imf_event_delete_surrounding_cb);
2099 ecore_event_handler_del(en->imf_ee_handler_commit); 2116 ecore_imf_context_event_callback_del(en->imf_context, ECORE_IMF_CALLBACK_PREEDIT_CHANGED, _edje_entry_imf_event_preedit_changed_cb);
2100 en->imf_ee_handler_commit = NULL;
2101 }
2102
2103 if (en->imf_ee_handler_delete)
2104 {
2105 ecore_event_handler_del(en->imf_ee_handler_delete);
2106 en->imf_ee_handler_delete = NULL;
2107 }
2108
2109 if (en->imf_ee_handler_changed)
2110 {
2111 ecore_event_handler_del(en->imf_ee_handler_changed);
2112 en->imf_ee_handler_changed = NULL;
2113 }
2114 2117
2115 ecore_imf_context_del(en->imf_context); 2118 ecore_imf_context_del(en->imf_context);
2116 en->imf_context = NULL; 2119 en->imf_context = NULL;
@@ -2189,7 +2192,7 @@ _edje_entry_text_markup_set(Edje_Real_Part *rp, const char *text)
2189{ 2192{
2190 Entry *en = rp->entry_data; 2193 Entry *en = rp->entry_data;
2191 if (!en) return; 2194 if (!en) return;
2192 2195 _edje_entry_imf_context_reset(en);
2193 // set text as markup 2196 // set text as markup
2194 _sel_clear(en->cursor, rp->object, en); 2197 _sel_clear(en->cursor, rp->object, en);
2195 evas_object_textblock_text_markup_set(rp->object, text); 2198 evas_object_textblock_text_markup_set(rp->object, text);
@@ -2228,6 +2231,8 @@ _edje_entry_text_markup_insert(Edje_Real_Part *rp, const char *text)
2228{ 2231{
2229 Entry *en = rp->entry_data; 2232 Entry *en = rp->entry_data;
2230 if (!en) return; 2233 if (!en) return;
2234 _edje_entry_imf_context_reset(en);
2235
2231 // prepend markup @ cursor pos 2236 // prepend markup @ cursor pos
2232 if (en->have_selection) 2237 if (en->have_selection)
2233 _range_del(en->cursor, rp->object, en); 2238 _range_del(en->cursor, rp->object, en);
@@ -2239,9 +2244,7 @@ _edje_entry_text_markup_insert(Edje_Real_Part *rp, const char *text)
2239 _edje_emit(rp->edje, "entry,changed", rp->part->name); 2244 _edje_emit(rp->edje, "entry,changed", rp->part->name);
2240 _edje_emit(rp->edje, "cursor,changed", rp->part->name); 2245 _edje_emit(rp->edje, "cursor,changed", rp->part->name);
2241 2246
2242 _edje_entry_imf_context_reset(en);
2243 _edje_entry_imf_cursor_info_set(en); 2247 _edje_entry_imf_cursor_info_set(en);
2244
2245 _edje_entry_real_part_configure(rp); 2248 _edje_entry_real_part_configure(rp);
2246} 2249}
2247 2250
@@ -2278,6 +2281,9 @@ _edje_entry_select_all(Edje_Real_Part *rp)
2278{ 2281{
2279 Entry *en = rp->entry_data; 2282 Entry *en = rp->entry_data;
2280 if (!en) return; 2283 if (!en) return;
2284
2285 _edje_entry_imf_context_reset(en);
2286
2281 _sel_clear(en->cursor, rp->object, en); 2287 _sel_clear(en->cursor, rp->object, en);
2282 _curs_start(en->cursor, rp->object, en); 2288 _curs_start(en->cursor, rp->object, en);
2283 _sel_enable(en->cursor, rp->object, en); 2289 _sel_enable(en->cursor, rp->object, en);
@@ -2285,7 +2291,6 @@ _edje_entry_select_all(Edje_Real_Part *rp)
2285 _curs_end(en->cursor, rp->object, en); 2291 _curs_end(en->cursor, rp->object, en);
2286 _sel_extend(en->cursor, rp->object, en); 2292 _sel_extend(en->cursor, rp->object, en);
2287 2293
2288 _edje_entry_imf_context_reset(en);
2289 _edje_entry_imf_cursor_info_set(en); 2294 _edje_entry_imf_cursor_info_set(en);
2290 _edje_entry_real_part_configure(rp); 2295 _edje_entry_real_part_configure(rp);
2291} 2296}
@@ -2295,12 +2300,14 @@ _edje_entry_select_begin(Edje_Real_Part *rp)
2295{ 2300{
2296 Entry *en = rp->entry_data; 2301 Entry *en = rp->entry_data;
2297 if (!en) return; 2302 if (!en) return;
2303
2304 _edje_entry_imf_context_reset(en);
2305
2298 _sel_clear(en->cursor, rp->object, en); 2306 _sel_clear(en->cursor, rp->object, en);
2299 _sel_enable(en->cursor, rp->object, en); 2307 _sel_enable(en->cursor, rp->object, en);
2300 _sel_start(en->cursor, rp->object, en); 2308 _sel_start(en->cursor, rp->object, en);
2301 _sel_extend(en->cursor, rp->object, en); 2309 _sel_extend(en->cursor, rp->object, en);
2302 2310
2303 _edje_entry_imf_context_reset(en);
2304 _edje_entry_imf_cursor_info_set(en); 2311 _edje_entry_imf_cursor_info_set(en);
2305 2312
2306 _edje_entry_real_part_configure(rp); 2313 _edje_entry_real_part_configure(rp);
@@ -2311,9 +2318,9 @@ _edje_entry_select_extend(Edje_Real_Part *rp)
2311{ 2318{
2312 Entry *en = rp->entry_data; 2319 Entry *en = rp->entry_data;
2313 if (!en) return; 2320 if (!en) return;
2321 _edje_entry_imf_context_reset(en);
2314 _sel_extend(en->cursor, rp->object, en); 2322 _sel_extend(en->cursor, rp->object, en);
2315 2323
2316 _edje_entry_imf_context_reset(en);
2317 _edje_entry_imf_cursor_info_set(en); 2324 _edje_entry_imf_cursor_info_set(en);
2318 2325
2319 _edje_entry_real_part_configure(rp); 2326 _edje_entry_real_part_configure(rp);
@@ -2560,13 +2567,14 @@ _edje_entry_cursor_next(Edje_Real_Part *rp, Edje_Cursor cur)
2560 Entry *en = rp->entry_data; 2567 Entry *en = rp->entry_data;
2561 Evas_Textblock_Cursor *c = _cursor_get(rp, cur); 2568 Evas_Textblock_Cursor *c = _cursor_get(rp, cur);
2562 if (!c) return EINA_FALSE; 2569 if (!c) return EINA_FALSE;
2570
2571 _edje_entry_imf_context_reset(en);
2572
2563 if (!evas_textblock_cursor_char_next(c)) 2573 if (!evas_textblock_cursor_char_next(c))
2564 { 2574 {
2565 return EINA_FALSE; 2575 return EINA_FALSE;
2566 } 2576 }
2567 _sel_update(c, rp->object, rp->entry_data); 2577 _sel_update(c, rp->object, rp->entry_data);
2568
2569 _edje_entry_imf_context_reset(en);
2570 _edje_entry_imf_cursor_info_set(en); 2578 _edje_entry_imf_cursor_info_set(en);
2571 2579
2572 _edje_emit(rp->edje, "cursor,changed", rp->part->name); 2580 _edje_emit(rp->edje, "cursor,changed", rp->part->name);
@@ -2580,6 +2588,9 @@ _edje_entry_cursor_prev(Edje_Real_Part *rp, Edje_Cursor cur)
2580 Entry *en = rp->entry_data; 2588 Entry *en = rp->entry_data;
2581 Evas_Textblock_Cursor *c = _cursor_get(rp, cur); 2589 Evas_Textblock_Cursor *c = _cursor_get(rp, cur);
2582 if (!c) return EINA_FALSE; 2590 if (!c) return EINA_FALSE;
2591
2592 _edje_entry_imf_context_reset(en);
2593
2583 if (!evas_textblock_cursor_char_prev(c)) 2594 if (!evas_textblock_cursor_char_prev(c))
2584 { 2595 {
2585 if (evas_textblock_cursor_paragraph_prev(c)) goto ok; 2596 if (evas_textblock_cursor_paragraph_prev(c)) goto ok;
@@ -2588,7 +2599,6 @@ _edje_entry_cursor_prev(Edje_Real_Part *rp, Edje_Cursor cur)
2588ok: 2599ok:
2589 _sel_update(c, rp->object, rp->entry_data); 2600 _sel_update(c, rp->object, rp->entry_data);
2590 2601
2591 _edje_entry_imf_context_reset(en);
2592 _edje_entry_imf_cursor_info_set(en); 2602 _edje_entry_imf_cursor_info_set(en);
2593 2603
2594 _edje_emit(rp->edje, "cursor,changed", rp->part->name); 2604 _edje_emit(rp->edje, "cursor,changed", rp->part->name);
@@ -2604,6 +2614,9 @@ _edje_entry_cursor_up(Edje_Real_Part *rp, Edje_Cursor cur)
2604 Evas_Coord lx, ly, lw, lh, cx, cy, cw, ch; 2614 Evas_Coord lx, ly, lw, lh, cx, cy, cw, ch;
2605 int ln; 2615 int ln;
2606 if (!c) return EINA_FALSE; 2616 if (!c) return EINA_FALSE;
2617
2618 _edje_entry_imf_context_reset(en);
2619
2607 ln = evas_textblock_cursor_line_geometry_get(c, NULL, NULL, NULL, NULL); 2620 ln = evas_textblock_cursor_line_geometry_get(c, NULL, NULL, NULL, NULL);
2608 ln--; 2621 ln--;
2609 if (ln < 0) return EINA_FALSE; 2622 if (ln < 0) return EINA_FALSE;
@@ -2620,7 +2633,6 @@ _edje_entry_cursor_up(Edje_Real_Part *rp, Edje_Cursor cur)
2620 } 2633 }
2621 _sel_update(c, rp->object, rp->entry_data); 2634 _sel_update(c, rp->object, rp->entry_data);
2622 2635
2623 _edje_entry_imf_context_reset(en);
2624 _edje_entry_imf_cursor_info_set(en); 2636 _edje_entry_imf_cursor_info_set(en);
2625 2637
2626 _edje_emit(rp->edje, "cursor,changed", rp->part->name); 2638 _edje_emit(rp->edje, "cursor,changed", rp->part->name);
@@ -2636,6 +2648,9 @@ _edje_entry_cursor_down(Edje_Real_Part *rp, Edje_Cursor cur)
2636 Evas_Coord lx, ly, lw, lh, cx, cy, cw, ch; 2648 Evas_Coord lx, ly, lw, lh, cx, cy, cw, ch;
2637 int ln; 2649 int ln;
2638 if (!c) return EINA_FALSE; 2650 if (!c) return EINA_FALSE;
2651
2652 _edje_entry_imf_context_reset(en);
2653
2639 ln = evas_textblock_cursor_line_geometry_get(c, NULL, NULL, NULL, NULL); 2654 ln = evas_textblock_cursor_line_geometry_get(c, NULL, NULL, NULL, NULL);
2640 ln++; 2655 ln++;
2641 if (!evas_object_textblock_line_number_geometry_get(rp->object, ln, 2656 if (!evas_object_textblock_line_number_geometry_get(rp->object, ln,
@@ -2651,7 +2666,6 @@ _edje_entry_cursor_down(Edje_Real_Part *rp, Edje_Cursor cur)
2651 } 2666 }
2652 _sel_update(c, rp->object, rp->entry_data); 2667 _sel_update(c, rp->object, rp->entry_data);
2653 2668
2654 _edje_entry_imf_context_reset(en);
2655 _edje_entry_imf_cursor_info_set(en); 2669 _edje_entry_imf_cursor_info_set(en);
2656 _edje_emit(rp->edje, "cursor,changed", rp->part->name); 2670 _edje_emit(rp->edje, "cursor,changed", rp->part->name);
2657 _edje_entry_real_part_configure(rp); 2671 _edje_entry_real_part_configure(rp);
@@ -2664,10 +2678,12 @@ _edje_entry_cursor_begin(Edje_Real_Part *rp, Edje_Cursor cur)
2664 Entry *en = rp->entry_data; 2678 Entry *en = rp->entry_data;
2665 Evas_Textblock_Cursor *c = _cursor_get(rp, cur); 2679 Evas_Textblock_Cursor *c = _cursor_get(rp, cur);
2666 if (!c) return; 2680 if (!c) return;
2681
2682 _edje_entry_imf_context_reset(en);
2683
2667 evas_textblock_cursor_paragraph_first(c); 2684 evas_textblock_cursor_paragraph_first(c);
2668 _sel_update(c, rp->object, rp->entry_data); 2685 _sel_update(c, rp->object, rp->entry_data);
2669 2686
2670 _edje_entry_imf_context_reset(en);
2671 _edje_entry_imf_cursor_info_set(en); 2687 _edje_entry_imf_cursor_info_set(en);
2672 _edje_emit(rp->edje, "cursor,changed", rp->part->name); 2688 _edje_emit(rp->edje, "cursor,changed", rp->part->name);
2673 _edje_entry_real_part_configure(rp); 2689 _edje_entry_real_part_configure(rp);
@@ -2679,10 +2695,12 @@ _edje_entry_cursor_end(Edje_Real_Part *rp, Edje_Cursor cur)
2679 Entry *en = rp->entry_data; 2695 Entry *en = rp->entry_data;
2680 Evas_Textblock_Cursor *c = _cursor_get(rp, cur); 2696 Evas_Textblock_Cursor *c = _cursor_get(rp, cur);
2681 if (!c) return; 2697 if (!c) return;
2698
2699 _edje_entry_imf_context_reset(en);
2700
2682 _curs_end(c, rp->object, rp->entry_data); 2701 _curs_end(c, rp->object, rp->entry_data);
2683 _sel_update(c, rp->object, rp->entry_data); 2702 _sel_update(c, rp->object, rp->entry_data);
2684 2703
2685 _edje_entry_imf_context_reset(en);
2686 _edje_entry_imf_cursor_info_set(en); 2704 _edje_entry_imf_cursor_info_set(en);
2687 2705
2688 _edje_emit(rp->edje, "cursor,changed", rp->part->name); 2706 _edje_emit(rp->edje, "cursor,changed", rp->part->name);
@@ -2715,10 +2733,11 @@ _edje_entry_cursor_line_begin(Edje_Real_Part *rp, Edje_Cursor cur)
2715 Entry *en = rp->entry_data; 2733 Entry *en = rp->entry_data;
2716 Evas_Textblock_Cursor *c = _cursor_get(rp, cur); 2734 Evas_Textblock_Cursor *c = _cursor_get(rp, cur);
2717 if (!c) return; 2735 if (!c) return;
2736 _edje_entry_imf_context_reset(en);
2737
2718 evas_textblock_cursor_line_char_first(c); 2738 evas_textblock_cursor_line_char_first(c);
2719 _sel_update(c, rp->object, rp->entry_data); 2739 _sel_update(c, rp->object, rp->entry_data);
2720 2740
2721 _edje_entry_imf_context_reset(en);
2722 _edje_entry_imf_cursor_info_set(en); 2741 _edje_entry_imf_cursor_info_set(en);
2723 2742
2724 _edje_emit(rp->edje, "cursor,changed", rp->part->name); 2743 _edje_emit(rp->edje, "cursor,changed", rp->part->name);
@@ -2731,10 +2750,10 @@ _edje_entry_cursor_line_end(Edje_Real_Part *rp, Edje_Cursor cur)
2731 Entry *en = rp->entry_data; 2750 Entry *en = rp->entry_data;
2732 Evas_Textblock_Cursor *c = _cursor_get(rp, cur); 2751 Evas_Textblock_Cursor *c = _cursor_get(rp, cur);
2733 if (!c) return; 2752 if (!c) return;
2753 _edje_entry_imf_context_reset(en);
2734 evas_textblock_cursor_line_char_last(c); 2754 evas_textblock_cursor_line_char_last(c);
2735 _sel_update(c, rp->object, rp->entry_data); 2755 _sel_update(c, rp->object, rp->entry_data);
2736 2756
2737 _edje_entry_imf_context_reset(en);
2738 _edje_entry_imf_cursor_info_set(en); 2757 _edje_entry_imf_cursor_info_set(en);
2739 _edje_emit(rp->edje, "cursor,changed", rp->part->name); 2758 _edje_emit(rp->edje, "cursor,changed", rp->part->name);
2740 _edje_entry_real_part_configure(rp); 2759 _edje_entry_real_part_configure(rp);
@@ -2766,7 +2785,7 @@ _edje_entry_cursor_is_visible_format_get(Edje_Real_Part *rp, Edje_Cursor cur)
2766 return evas_textblock_cursor_format_is_visible_get(c); 2785 return evas_textblock_cursor_format_is_visible_get(c);
2767} 2786}
2768 2787
2769const char * 2788char *
2770_edje_entry_cursor_content_get(Edje_Real_Part *rp, Edje_Cursor cur) 2789_edje_entry_cursor_content_get(Edje_Real_Part *rp, Edje_Cursor cur)
2771{ 2790{
2772 static char *s = NULL; 2791 static char *s = NULL;
@@ -2793,10 +2812,10 @@ _edje_entry_cursor_pos_set(Edje_Real_Part *rp, Edje_Cursor cur, int pos)
2793 if (evas_textblock_cursor_pos_get(c) == pos) 2812 if (evas_textblock_cursor_pos_get(c) == pos)
2794 return; 2813 return;
2795 2814
2815 _edje_entry_imf_context_reset(en);
2796 evas_textblock_cursor_pos_set(c, pos); 2816 evas_textblock_cursor_pos_set(c, pos);
2797 _sel_update(c, rp->object, rp->entry_data); 2817 _sel_update(c, rp->object, rp->entry_data);
2798 2818
2799 _edje_entry_imf_context_reset(en);
2800 _edje_entry_imf_cursor_info_set(en); 2819 _edje_entry_imf_cursor_info_set(en);
2801 _edje_emit(rp->edje, "cursor,changed", rp->part->name); 2820 _edje_emit(rp->edje, "cursor,changed", rp->part->name);
2802 _edje_entry_real_part_configure(rp); 2821 _edje_entry_real_part_configure(rp);
@@ -2891,43 +2910,33 @@ _edje_entry_imf_retrieve_surrounding_cb(void *data, Ecore_IMF_Context *ctx __UNU
2891 return EINA_TRUE; 2910 return EINA_TRUE;
2892} 2911}
2893 2912
2894static Eina_Bool 2913static void
2895_edje_entry_imf_event_commit_cb(void *data, int type __UNUSED__, void *event) 2914_edje_entry_imf_event_commit_cb(void *data, Ecore_IMF_Context *ctx __UNUSED__, void *event_info)
2896{ 2915{
2897 Edje *ed = data; 2916 Edje *ed = data;
2898 Edje_Real_Part *rp = ed->focused_part; 2917 Edje_Real_Part *rp = ed->focused_part;
2899 Entry *en; 2918 Entry *en;
2900 Ecore_IMF_Event_Commit *ev = event; 2919 char *commit_str = event_info;
2901 Evas_Textblock_Cursor *tc; 2920 int start_pos;
2902 Eina_Bool cursor_move = EINA_FALSE;
2903 2921
2904 if ((!rp) || (!ev) || (!ev->str)) return ECORE_CALLBACK_PASS_ON; 2922 if ((!rp)) return;
2905 2923
2906 en = rp->entry_data; 2924 en = rp->entry_data;
2907 if ((!en) || (rp->part->type != EDJE_PART_TYPE_TEXTBLOCK) || 2925 if ((!en) || (rp->part->type != EDJE_PART_TYPE_TEXTBLOCK) ||
2908 (rp->part->entry_mode < EDJE_ENTRY_EDIT_MODE_SELECTABLE)) 2926 (rp->part->entry_mode < EDJE_ENTRY_EDIT_MODE_SELECTABLE))
2909 return ECORE_CALLBACK_PASS_ON; 2927 return;
2910
2911 if (!en->imf_context) return ECORE_CALLBACK_PASS_ON;
2912 if (en->imf_context != ev->ctx) return ECORE_CALLBACK_PASS_ON;
2913 2928
2914 if (en->have_selection) 2929 if (en->have_selection)
2915 { 2930 {
2916 if (strcmp(ev->str, "")) 2931 if (strcmp(commit_str, ""))
2917 { 2932 {
2918 /* delete selected characters */ 2933 /* delete selected characters */
2919 _range_del(en->cursor, rp->object, en); 2934 _range_del_emit(ed, en->cursor, rp->object, en);
2920 _sel_clear(en->cursor, rp->object, en); 2935 _sel_clear(en->cursor, rp->object, en);
2921 } 2936 }
2922 } 2937 }
2923 2938
2924 tc = evas_object_textblock_cursor_new(rp->object); 2939 start_pos = evas_textblock_cursor_pos_get(en->cursor);
2925
2926 /* calculate the cursor position to insert commit string */
2927 if (en->preedit_start)
2928 evas_textblock_cursor_copy(en->preedit_start, tc);
2929 else
2930 evas_textblock_cursor_copy(en->cursor, tc);
2931 2940
2932#ifdef HAVE_ECORE_IMF 2941#ifdef HAVE_ECORE_IMF
2933 /* delete preedit characters */ 2942 /* delete preedit characters */
@@ -2935,17 +2944,16 @@ _edje_entry_imf_event_commit_cb(void *data, int type __UNUSED__, void *event)
2935 _preedit_clear(en); 2944 _preedit_clear(en);
2936#endif 2945#endif
2937 2946
2938 if (evas_textblock_cursor_compare(en->cursor, tc))
2939 cursor_move = EINA_TRUE;
2940 if ((rp->part->entry_mode == EDJE_ENTRY_EDIT_MODE_PASSWORD) && 2947 if ((rp->part->entry_mode == EDJE_ENTRY_EDIT_MODE_PASSWORD) &&
2941 _edje_password_show_last) 2948 _edje_password_show_last)
2942 _edje_entry_hide_visible_password(en->rp); 2949 _edje_entry_hide_visible_password(en->rp);
2943 if ((rp->part->entry_mode == EDJE_ENTRY_EDIT_MODE_PASSWORD) && 2950 if ((rp->part->entry_mode == EDJE_ENTRY_EDIT_MODE_PASSWORD) &&
2944 _edje_password_show_last && (!en->preedit_start)) 2951 _edje_password_show_last && (!en->preedit_start))
2945 { 2952 {
2946 _text_filter_format_prepend(en, tc, "+ password=off"); 2953 _text_filter_format_prepend(en, en->cursor, "+ password=off");
2947 _text_filter_markup_prepend(en, tc, ev->str); 2954 _text_filter_text_prepend(en, en->cursor, commit_str);
2948 _text_filter_format_prepend(en, tc, "- password"); 2955 _text_filter_format_prepend(en, en->cursor, "- password");
2956
2949 if (en->pw_timer) 2957 if (en->pw_timer)
2950 { 2958 {
2951 ecore_timer_del(en->pw_timer); 2959 ecore_timer_del(en->pw_timer);
@@ -2955,51 +2963,54 @@ _edje_entry_imf_event_commit_cb(void *data, int type __UNUSED__, void *event)
2955 _password_timer_cb, en); 2963 _password_timer_cb, en);
2956 } 2964 }
2957 else 2965 else
2958 _text_filter_text_prepend(en, tc, ev->str); 2966 _text_filter_text_prepend(en, en->cursor, commit_str);
2959
2960 if (!cursor_move)
2961 {
2962 /* move cursor to the end of commit string */
2963 evas_textblock_cursor_copy(tc, en->cursor);
2964 }
2965 2967
2966 evas_textblock_cursor_free(tc);
2967 2968
2968 _edje_entry_imf_cursor_info_set(en); 2969 _edje_entry_imf_cursor_info_set(en);
2969 _anchors_get(en->cursor, rp->object, en); 2970 _anchors_get(en->cursor, rp->object, en);
2970 _edje_emit(rp->edje, "entry,changed", rp->part->name); 2971 _edje_emit(rp->edje, "entry,changed", rp->part->name);
2971 _edje_emit(ed, "entry,changed,user", rp->part->name);
2972 _edje_emit(ed, "cursor,changed", rp->part->name);
2973 2972
2974 return ECORE_CALLBACK_DONE; 2973 {
2974 Edje_Entry_Change_Info *info = calloc(1, sizeof(*info));
2975 info->insert = EINA_TRUE;
2976 info->change.insert.pos = start_pos;
2977 info->change.insert.content = eina_stringshare_add(commit_str);
2978 info->change.insert.plain_length =
2979 eina_unicode_utf8_get_len(info->change.insert.content);
2980 _edje_emit_full(ed, "entry,changed,user", rp->part->name,
2981 info, _free_entry_change_info);
2982 _edje_emit(ed, "cursor,changed", rp->part->name);
2983 }
2975} 2984}
2976 2985
2977static Eina_Bool 2986static void
2978_edje_entry_imf_event_preedit_changed_cb(void *data, int type __UNUSED__, void *event) 2987_edje_entry_imf_event_preedit_changed_cb(void *data, Ecore_IMF_Context *ctx __UNUSED__, void *event_info __UNUSED__)
2979{ 2988{
2980 Edje *ed = data; 2989 Edje *ed = data;
2981 Edje_Real_Part *rp = ed->focused_part; 2990 Edje_Real_Part *rp = ed->focused_part;
2982 Entry *en; 2991 Entry *en;
2983 Ecore_IMF_Event_Preedit_Changed *ev = event;
2984 int cursor_pos; 2992 int cursor_pos;
2985 int preedit_start_pos, preedit_end_pos; 2993 int preedit_start_pos, preedit_end_pos;
2986 char *preedit_string; 2994 char *preedit_string;
2987 int i; 2995 int i;
2988 Eina_Bool preedit_end_state = EINA_FALSE; 2996 Eina_Bool preedit_end_state = EINA_FALSE;
2997 Eina_List *attrs = NULL, *l = NULL;
2998 Ecore_IMF_Preedit_Attr *attr;
2999 Eina_Strbuf *buf;
2989 3000
2990 if ((!rp) || (!ev)) return ECORE_CALLBACK_PASS_ON; 3001 if ((!rp)) return;
2991 3002
2992 en = rp->entry_data; 3003 en = rp->entry_data;
2993 if ((!en) || (rp->part->type != EDJE_PART_TYPE_TEXTBLOCK) || 3004 if ((!en) || (rp->part->type != EDJE_PART_TYPE_TEXTBLOCK) ||
2994 (rp->part->entry_mode < EDJE_ENTRY_EDIT_MODE_SELECTABLE)) 3005 (rp->part->entry_mode < EDJE_ENTRY_EDIT_MODE_SELECTABLE))
2995 return ECORE_CALLBACK_PASS_ON; 3006 return;
2996
2997 if (!en->imf_context) return ECORE_CALLBACK_PASS_ON;
2998 3007
2999 if (en->imf_context != ev->ctx) return ECORE_CALLBACK_PASS_ON; 3008 if (!en->imf_context) return;
3000 3009
3001 ecore_imf_context_preedit_string_get(en->imf_context, &preedit_string, &cursor_pos); 3010 ecore_imf_context_preedit_string_with_attributes_get(en->imf_context,
3002 if (!preedit_string) return ECORE_CALLBACK_PASS_ON; 3011 &preedit_string,
3012 &attrs, &cursor_pos);
3013 if (!preedit_string) return;
3003 3014
3004 if (!strcmp(preedit_string, "")) 3015 if (!strcmp(preedit_string, ""))
3005 preedit_end_state = EINA_TRUE; 3016 preedit_end_state = EINA_TRUE;
@@ -3007,7 +3018,7 @@ _edje_entry_imf_event_preedit_changed_cb(void *data, int type __UNUSED__, void *
3007 if (en->have_selection && !preedit_end_state) 3018 if (en->have_selection && !preedit_end_state)
3008 { 3019 {
3009 /* delete selected characters */ 3020 /* delete selected characters */
3010 _range_del(en->cursor, rp->object, en); 3021 _range_del_emit(ed, en->cursor, rp->object, en);
3011 _sel_clear(en->cursor, rp->object, en); 3022 _sel_clear(en->cursor, rp->object, en);
3012 } 3023 }
3013 3024
@@ -3017,23 +3028,51 @@ _edje_entry_imf_event_preedit_changed_cb(void *data, int type __UNUSED__, void *
3017 preedit_start_pos = evas_textblock_cursor_pos_get(en->cursor); 3028 preedit_start_pos = evas_textblock_cursor_pos_get(en->cursor);
3018 3029
3019 /* insert preedit character(s) */ 3030 /* insert preedit character(s) */
3020 if ((rp->part->entry_mode == EDJE_ENTRY_EDIT_MODE_PASSWORD) && 3031 if (strlen(preedit_string) > 0)
3021 _edje_password_show_last)
3022 { 3032 {
3023 _text_filter_format_prepend(en, en->cursor, "+ password=off"); 3033 buf = eina_strbuf_new();
3024 _text_filter_markup_prepend(en, en->cursor, preedit_string); 3034 if (attrs)
3025 _text_filter_format_prepend(en, en->cursor, "- password");
3026 if (en->pw_timer)
3027 { 3035 {
3028 ecore_timer_del(en->pw_timer); 3036 EINA_LIST_FOREACH(attrs, l, attr)
3029 en->pw_timer = NULL; 3037 {
3038 if (attr->preedit_type == ECORE_IMF_PREEDIT_TYPE_SUB1)
3039 {
3040 eina_strbuf_append(buf, "<preedit>");
3041 eina_strbuf_append_n(buf, preedit_string + attr->start_index,
3042 attr->end_index - attr->start_index);
3043 eina_strbuf_append(buf, "</preedit>");
3044 }
3045
3046 else if (attr->preedit_type == ECORE_IMF_PREEDIT_TYPE_SUB2 ||
3047 attr->preedit_type == ECORE_IMF_PREEDIT_TYPE_SUB3)
3048 {
3049 eina_strbuf_append(buf, "<preedit_sel>");
3050 eina_strbuf_append_n(buf, preedit_string + attr->start_index,
3051 attr->end_index - attr->start_index);
3052 eina_strbuf_append(buf, "</preedit_sel>");
3053 }
3054 }
3030 } 3055 }
3031 en->pw_timer = ecore_timer_add(_edje_password_show_last_timeout, 3056 if ((rp->part->entry_mode == EDJE_ENTRY_EDIT_MODE_PASSWORD) &&
3032 _password_timer_cb, en); 3057 _edje_password_show_last)
3033 } 3058 {
3034 else 3059 _edje_entry_hide_visible_password(en->rp);
3035 { 3060 _text_filter_format_prepend(en, en->cursor, "+ password=off");
3036 _text_filter_markup_prepend(en, en->cursor, preedit_string); 3061 _text_filter_markup_prepend(en, en->cursor, eina_strbuf_string_get(buf));
3062 _text_filter_format_prepend(en, en->cursor, "- password");
3063 if (en->pw_timer)
3064 {
3065 ecore_timer_del(en->pw_timer);
3066 en->pw_timer = NULL;
3067 }
3068 en->pw_timer = ecore_timer_add(_edje_password_show_last_timeout,
3069 _password_timer_cb, en);
3070 }
3071 else
3072 {
3073 _text_filter_markup_prepend(en, en->cursor, eina_strbuf_string_get(buf));
3074 }
3075 eina_strbuf_free(buf);
3037 } 3076 }
3038 3077
3039 if (!preedit_end_state) 3078 if (!preedit_end_state)
@@ -3066,29 +3105,30 @@ _edje_entry_imf_event_preedit_changed_cb(void *data, int type __UNUSED__, void *
3066 _edje_emit(rp->edje, "preedit,changed", rp->part->name); 3105 _edje_emit(rp->edje, "preedit,changed", rp->part->name);
3067 _edje_emit(ed, "cursor,changed", rp->part->name); 3106 _edje_emit(ed, "cursor,changed", rp->part->name);
3068 3107
3069 free(preedit_string); 3108 /* delete attribute list */
3109 if (attrs)
3110 {
3111 EINA_LIST_FREE(attrs, attr) free(attr);
3112 }
3070 3113
3071 return ECORE_CALLBACK_DONE; 3114 free(preedit_string);
3072} 3115}
3073 3116
3074static Eina_Bool 3117static void
3075_edje_entry_imf_event_delete_surrounding_cb(void *data, int type __UNUSED__, void *event) 3118_edje_entry_imf_event_delete_surrounding_cb(void *data, Ecore_IMF_Context *ctx __UNUSED__, void *event_info)
3076{ 3119{
3077 Edje *ed = data; 3120 Edje *ed = data;
3078 Edje_Real_Part *rp = ed->focused_part; 3121 Edje_Real_Part *rp = ed->focused_part;
3079 Entry *en; 3122 Entry *en;
3080 Ecore_IMF_Event_Delete_Surrounding *ev = event; 3123 Ecore_IMF_Event_Delete_Surrounding *ev = event_info;
3081 Evas_Textblock_Cursor *del_start, *del_end; 3124 Evas_Textblock_Cursor *del_start, *del_end;
3082 int cursor_pos; 3125 int cursor_pos;
3083 3126
3084 if ((!rp) || (!ev)) return ECORE_CALLBACK_PASS_ON; 3127 if ((!rp) || (!ev)) return;
3085 en = rp->entry_data; 3128 en = rp->entry_data;
3086 if ((!en) || (rp->part->type != EDJE_PART_TYPE_TEXTBLOCK) || 3129 if ((!en) || (rp->part->type != EDJE_PART_TYPE_TEXTBLOCK) ||
3087 (rp->part->entry_mode < EDJE_ENTRY_EDIT_MODE_SELECTABLE)) 3130 (rp->part->entry_mode < EDJE_ENTRY_EDIT_MODE_SELECTABLE))
3088 return ECORE_CALLBACK_PASS_ON; 3131 return;
3089
3090 if (!en->imf_context) return ECORE_CALLBACK_PASS_ON;
3091 if (en->imf_context != ev->ctx) return ECORE_CALLBACK_PASS_ON;
3092 3132
3093 cursor_pos = evas_textblock_cursor_pos_get(en->cursor); 3133 cursor_pos = evas_textblock_cursor_pos_get(en->cursor);
3094 3134
@@ -3102,8 +3142,6 @@ _edje_entry_imf_event_delete_surrounding_cb(void *data, int type __UNUSED__, voi
3102 3142
3103 evas_textblock_cursor_free(del_start); 3143 evas_textblock_cursor_free(del_start);
3104 evas_textblock_cursor_free(del_end); 3144 evas_textblock_cursor_free(del_end);
3105
3106 return ECORE_CALLBACK_DONE;
3107} 3145}
3108#endif 3146#endif
3109 3147
diff --git a/libraries/edje/src/lib/edje_load.c b/libraries/edje/src/lib/edje_load.c
index 644bb7c..8fe5842 100644
--- a/libraries/edje/src/lib/edje_load.c
+++ b/libraries/edje/src/lib/edje_load.c
@@ -262,6 +262,10 @@ _edje_object_file_set_internal(Evas_Object *obj, const char *file, const char *g
262{ 262{
263 Edje *ed; 263 Edje *ed;
264 Evas *tev; 264 Evas *tev;
265 Edje_Real_Part *rp;
266 Eina_List *textblocks = NULL;
267 Eina_List *sources = NULL;
268 Eina_List *externals = NULL;
265 Eina_List *old_swallows; 269 Eina_List *old_swallows;
266 unsigned int n; 270 unsigned int n;
267 Eina_List *parts = NULL; 271 Eina_List *parts = NULL;
@@ -323,7 +327,6 @@ _edje_object_file_set_internal(Evas_Object *obj, const char *file, const char *g
323 else 327 else
324 { 328 {
325 unsigned int i; 329 unsigned int i;
326 int errors = 0;
327 330
328 /* colorclass stuff */ 331 /* colorclass stuff */
329 for (i = 0; i < ed->collection->parts_count; ++i) 332 for (i = 0; i < ed->collection->parts_count; ++i)
@@ -333,8 +336,6 @@ _edje_object_file_set_internal(Evas_Object *obj, const char *file, const char *g
333 336
334 ep = ed->collection->parts[i]; 337 ep = ed->collection->parts[i];
335 338
336 if (errors)
337 break;
338 /* Register any color classes in this parts descriptions. */ 339 /* Register any color classes in this parts descriptions. */
339 if ((ep->default_desc) && (ep->default_desc->color_class)) 340 if ((ep->default_desc) && (ep->default_desc->color_class))
340 _edje_color_class_member_add(ed, ep->default_desc->color_class); 341 _edje_color_class_member_add(ed, ep->default_desc->color_class);
@@ -353,12 +354,12 @@ _edje_object_file_set_internal(Evas_Object *obj, const char *file, const char *g
353 for (n = 0; n < ed->collection->parts_count; n++) 354 for (n = 0; n < ed->collection->parts_count; n++)
354 { 355 {
355 Edje_Part *ep; 356 Edje_Part *ep;
356 Edje_Real_Part *rp;
357 357
358 ep = ed->collection->parts[n]; 358 ep = ed->collection->parts[n];
359 rp = eina_mempool_malloc(_edje_real_part_mp, sizeof(Edje_Real_Part)); 359 rp = eina_mempool_malloc(_edje_real_part_mp, sizeof(Edje_Real_Part));
360 if (!rp) 360 if (!rp)
361 { 361 {
362 /* FIXME: destroy all allocated ressource, need to have a common exit point */
362 ed->load_error = EDJE_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED; 363 ed->load_error = EDJE_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED;
363 evas_event_thaw(tev); 364 evas_event_thaw(tev);
364 evas_event_thaw_eval(tev); 365 evas_event_thaw_eval(tev);
@@ -373,7 +374,7 @@ _edje_object_file_set_internal(Evas_Object *obj, const char *file, const char *g
373 if (!rp->drag) 374 if (!rp->drag)
374 { 375 {
375 ed->load_error = EDJE_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED; 376 ed->load_error = EDJE_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED;
376 free(rp); 377 eina_mempool_free(_edje_real_part_mp, rp);
377 evas_event_thaw(tev); 378 evas_event_thaw(tev);
378 evas_event_thaw_eval(tev); 379 evas_event_thaw_eval(tev);
379 return 0; 380 return 0;
@@ -407,9 +408,12 @@ _edje_object_file_set_internal(Evas_Object *obj, const char *file, const char *g
407 rp->object = evas_object_text_add(ed->base.evas); 408 rp->object = evas_object_text_add(ed->base.evas);
408 evas_object_text_font_source_set(rp->object, ed->path); 409 evas_object_text_font_source_set(rp->object, ed->path);
409 break; 410 break;
410 case EDJE_PART_TYPE_SWALLOW:
411 case EDJE_PART_TYPE_GROUP: 411 case EDJE_PART_TYPE_GROUP:
412 sources = eina_list_append(sources, rp);
413 case EDJE_PART_TYPE_SWALLOW:
412 case EDJE_PART_TYPE_EXTERNAL: 414 case EDJE_PART_TYPE_EXTERNAL:
415 if (ep->type == EDJE_PART_TYPE_EXTERNAL)
416 externals = eina_list_append(externals, rp);
413 rp->object = evas_object_rectangle_add(ed->base.evas); 417 rp->object = evas_object_rectangle_add(ed->base.evas);
414 evas_object_color_set(rp->object, 0, 0, 0, 0); 418 evas_object_color_set(rp->object, 0, 0, 0, 0);
415 evas_object_pass_events_set(rp->object, 1); 419 evas_object_pass_events_set(rp->object, 1);
@@ -417,13 +421,16 @@ _edje_object_file_set_internal(Evas_Object *obj, const char *file, const char *g
417 _edje_callbacks_focus_add(rp->object, ed, rp); 421 _edje_callbacks_focus_add(rp->object, ed, rp);
418 break; 422 break;
419 case EDJE_PART_TYPE_TEXTBLOCK: 423 case EDJE_PART_TYPE_TEXTBLOCK:
424 textblocks = eina_list_append(textblocks, rp);
420 rp->object = evas_object_textblock_add(ed->base.evas); 425 rp->object = evas_object_textblock_add(ed->base.evas);
421 break; 426 break;
422 case EDJE_PART_TYPE_BOX: 427 case EDJE_PART_TYPE_BOX:
428 sources = eina_list_append(sources, rp);
423 rp->object = evas_object_box_add(ed->base.evas); 429 rp->object = evas_object_box_add(ed->base.evas);
424 rp->anim = _edje_box_layout_anim_new(rp->object); 430 rp->anim = _edje_box_layout_anim_new(rp->object);
425 break; 431 break;
426 case EDJE_PART_TYPE_TABLE: 432 case EDJE_PART_TYPE_TABLE:
433 sources = eina_list_append(sources, rp);
427 rp->object = evas_object_table_add(ed->base.evas); 434 rp->object = evas_object_table_add(ed->base.evas);
428 break; 435 break;
429 case EDJE_PART_TYPE_GRADIENT: 436 case EDJE_PART_TYPE_GRADIENT:
@@ -463,7 +470,6 @@ _edje_object_file_set_internal(Evas_Object *obj, const char *file, const char *g
463 } 470 }
464 if (n > 0) 471 if (n > 0)
465 { 472 {
466 Edje_Real_Part *rp;
467 Eina_List *l; 473 Eina_List *l;
468 474
469 ed->table_parts = malloc(sizeof(Edje_Real_Part *) * n); 475 ed->table_parts = malloc(sizeof(Edje_Real_Part *) * n);
@@ -519,7 +525,7 @@ _edje_object_file_set_internal(Evas_Object *obj, const char *file, const char *g
519 } 525 }
520 526
521 rp->swallow_params.min.w = 0; 527 rp->swallow_params.min.w = 0;
522 rp->swallow_params.min.w = 0; 528 rp->swallow_params.min.h = 0;
523 rp->swallow_params.max.w = -1; 529 rp->swallow_params.max.w = -1;
524 rp->swallow_params.max.h = -1; 530 rp->swallow_params.max.h = -1;
525 531
@@ -587,8 +593,6 @@ _edje_object_file_set_internal(Evas_Object *obj, const char *file, const char *g
587 _edje_var_init(ed); 593 _edje_var_init(ed);
588 for (i = 0; i < ed->table_parts_size; i++) 594 for (i = 0; i < ed->table_parts_size; i++)
589 { 595 {
590 Edje_Real_Part *rp;
591
592 rp = ed->table_parts[i]; 596 rp = ed->table_parts[i];
593 evas_object_show(rp->object); 597 evas_object_show(rp->object);
594 if (_edje_block_break(ed)) break; 598 if (_edje_block_break(ed)) break;
@@ -599,6 +603,7 @@ _edje_object_file_set_internal(Evas_Object *obj, const char *file, const char *g
599 _edje_dragable_pos_set(ed, rp, rp->drag->val.x, rp->drag->val.y); 603 _edje_dragable_pos_set(ed, rp, rp->drag->val.x, rp->drag->val.y);
600 } 604 }
601 } 605 }
606 ed->recalc_call = 1;
602 ed->dirty = 1; 607 ed->dirty = 1;
603#ifdef EDJE_CALC_CACHE 608#ifdef EDJE_CALC_CACHE
604 ed->all_part_change = 1; 609 ed->all_part_change = 1;
@@ -606,11 +611,28 @@ _edje_object_file_set_internal(Evas_Object *obj, const char *file, const char *g
606 if ((evas_object_clipees_get(ed->base.clipper)) && 611 if ((evas_object_clipees_get(ed->base.clipper)) &&
607 (evas_object_visible_get(obj))) 612 (evas_object_visible_get(obj)))
608 evas_object_show(ed->base.clipper); 613 evas_object_show(ed->base.clipper);
609 614
610 /* instantiate 'internal swallows' */ 615 /* instantiate 'internal swallows' */
611 for (i = 0; i < ed->table_parts_size; i++) 616 EINA_LIST_FREE(externals, rp)
617 {
618 Edje_Part_Description_External *external;
619 Evas_Object *child_obj;
620
621 external = (Edje_Part_Description_External *) rp->part->default_desc;
622 child_obj = _edje_external_type_add(rp->part->source,
623 evas_object_evas_get(ed->obj), ed->obj,
624 external->external_params, rp->part->name);
625 if (child_obj)
626 {
627 _edje_real_part_swallow(rp, child_obj, EINA_TRUE);
628 rp->param1.external_params = _edje_external_params_parse(child_obj,
629 external->external_params);
630 _edje_external_recalc_apply(ed, rp, NULL, rp->chosen_description);
631 }
632 }
633
634 EINA_LIST_FREE(sources, rp)
612 { 635 {
613 Edje_Real_Part *rp;
614 /* XXX: curr_item and pack_it don't require to be NULL since 636 /* XXX: curr_item and pack_it don't require to be NULL since
615 * XXX: they are just used when source != NULL and type == BOX, 637 * XXX: they are just used when source != NULL and type == BOX,
616 * XXX: and they're always set in this case, but GCC fails to 638 * XXX: and they're always set in this case, but GCC fails to
@@ -620,8 +642,6 @@ _edje_object_file_set_internal(Evas_Object *obj, const char *file, const char *g
620 unsigned int item_count = 0; 642 unsigned int item_count = 0;
621 Edje_Pack_Element *pack_it = NULL; 643 Edje_Pack_Element *pack_it = NULL;
622 const char *source = NULL; 644 const char *source = NULL;
623
624 rp = ed->table_parts[i];
625 645
626 switch (rp->part->type) 646 switch (rp->part->type)
627 { 647 {
@@ -643,25 +663,9 @@ _edje_object_file_set_internal(Evas_Object *obj, const char *file, const char *g
643 } 663 }
644 } 664 }
645 break; 665 break;
646 case EDJE_PART_TYPE_EXTERNAL:
647 {
648 Edje_Part_Description_External *external;
649 Evas_Object *child_obj;
650
651 external = (Edje_Part_Description_External *) rp->part->default_desc;
652 child_obj = _edje_external_type_add(rp->part->source,
653 evas_object_evas_get(ed->obj), ed->obj,
654 external->external_params, rp->part->name);
655 if (child_obj)
656 {
657 _edje_real_part_swallow(rp, child_obj, EINA_TRUE);
658 rp->param1.external_params = _edje_external_params_parse(child_obj,
659 external->external_params);
660 _edje_external_recalc_apply(ed, rp, NULL, rp->chosen_description);
661 }
662 }
663 continue;
664 default: 666 default:
667 /* This list should only be filled by group, box or table, nothing else. */
668 abort();
665 continue; 669 continue;
666 } 670 }
667 671
@@ -682,6 +686,11 @@ _edje_object_file_set_internal(Evas_Object *obj, const char *file, const char *g
682 { 686 {
683 if (data == group_path_entry) 687 if (data == group_path_entry)
684 { 688 {
689 ERR("recursive loop group '%s' already included inside part '%s' of group '%s' from file '%s'",
690 group_path_entry, rp->part->name, group, file);
691 textblocks = eina_list_free(textblocks);
692 externals = eina_list_free(externals);
693 sources = eina_list_free(sources);
685 _edje_thaw(ed); 694 _edje_thaw(ed);
686 _edje_unblock(ed); 695 _edje_unblock(ed);
687 _edje_unref(ed); 696 _edje_unref(ed);
@@ -698,7 +707,7 @@ _edje_object_file_set_internal(Evas_Object *obj, const char *file, const char *g
698 return 0; 707 return 0;
699 } 708 }
700 } 709 }
701 710
702 child_obj = edje_object_add(ed->base.evas); 711 child_obj = edje_object_add(ed->base.evas);
703 group_path = eina_list_append(group_path, group_path_entry); 712 group_path = eina_list_append(group_path, group_path_entry);
704 if (rp->part->type == EDJE_PART_TYPE_GROUP) 713 if (rp->part->type == EDJE_PART_TYPE_GROUP)
@@ -708,11 +717,16 @@ _edje_object_file_set_internal(Evas_Object *obj, const char *file, const char *g
708 717
709 if (!_edje_object_file_set_internal(child_obj, file, source, rp->part->name, group_path)) 718 if (!_edje_object_file_set_internal(child_obj, file, source, rp->part->name, group_path))
710 { 719 {
720 ERR("impossible to set part '%s' of group '%s' from file '%s' to '%s'",
721 rp->part->name, group_path_entry, file, source);
722 textblocks = eina_list_free(textblocks);
723 externals = eina_list_free(externals);
724 sources = eina_list_free(sources);
711 _edje_thaw(ed); 725 _edje_thaw(ed);
712 _edje_unblock(ed); 726 _edje_unblock(ed);
713 _edje_unref(ed); 727 _edje_unref(ed);
714 _edje_file_del(ed); 728 _edje_file_del(ed);
715 729
716 if (group_path_started) 730 if (group_path_started)
717 { 731 {
718 while (group_path) 732 while (group_path)
@@ -794,56 +808,51 @@ _edje_object_file_set_internal(Evas_Object *obj, const char *file, const char *g
794 { 808 {
795 const char *name; 809 const char *name;
796 Evas_Object *swallow; 810 Evas_Object *swallow;
797 811
798 name = eina_list_data_get(old_swallows); 812 name = eina_list_data_get(old_swallows);
799 old_swallows = eina_list_remove_list(old_swallows, old_swallows); 813 old_swallows = eina_list_remove_list(old_swallows, old_swallows);
800 814
801 swallow = eina_list_data_get(old_swallows); 815 swallow = eina_list_data_get(old_swallows);
802 old_swallows = eina_list_remove_list(old_swallows, old_swallows); 816 old_swallows = eina_list_remove_list(old_swallows, old_swallows);
803 817
804 edje_object_part_swallow(obj, name, swallow); 818 edje_object_part_swallow(obj, name, swallow);
805 eina_stringshare_del(name); 819 eina_stringshare_del(name);
806 } 820 }
807 } 821 }
808 822
809 _edje_recalc(ed); 823 _edje_recalc(ed);
810 _edje_thaw(ed); 824 _edje_thaw(ed);
811 _edje_unblock(ed); 825 _edje_unblock(ed);
812 _edje_unref(ed); 826 _edje_unref(ed);
813 ed->load_error = EDJE_LOAD_ERROR_NONE; 827 ed->load_error = EDJE_LOAD_ERROR_NONE;
814 _edje_emit(ed, "load", NULL); 828 _edje_emit(ed, "load", NULL);
815 /* instantiate 'internal swallows' */ 829
816 for (i = 0; i < ed->table_parts_size; i++) 830 /* instantiate 'internal textblock style' */
817 { 831 EINA_LIST_FREE(textblocks, rp)
818 Edje_Real_Part *rp; 832 if (rp->part->default_desc)
819 833 {
820 rp = ed->table_parts[i]; 834 Edje_Part_Description_Text *text;
821 if ((rp->part->type == EDJE_PART_TYPE_TEXTBLOCK) && 835 Edje_Style *stl = NULL;
822 (rp->part->default_desc)) 836 const char *style;
823 { 837
824 Edje_Part_Description_Text *text; 838 text = (Edje_Part_Description_Text *) rp->part->default_desc;
825 Edje_Style *stl = NULL; 839 style = edje_string_get(&text->text.style);
826 const char *style; 840 if (style)
827 841 {
828 text = (Edje_Part_Description_Text *) rp->part->default_desc; 842 Eina_List *l;
829 style = edje_string_get(&text->text.style); 843
830 if (style) 844 EINA_LIST_FOREACH(ed->file->styles, l, stl)
831 { 845 {
832 Eina_List *l; 846 if ((stl->name) && (!strcmp(stl->name, style))) break;
833 847 stl = NULL;
834 EINA_LIST_FOREACH(ed->file->styles, l, stl) 848 }
835 { 849 }
836 if ((stl->name) && (!strcmp(stl->name, style))) break; 850 if (stl)
837 stl = NULL; 851 {
838 } 852 if (evas_object_textblock_style_get(rp->object) != stl->style)
839 } 853 evas_object_textblock_style_set(rp->object, stl->style);
840 if (stl) 854 }
841 { 855 }
842 if (evas_object_textblock_style_get(rp->object) != stl->style)
843 evas_object_textblock_style_set(rp->object, stl->style);
844 }
845 }
846 }
847 } 856 }
848 _edje_entry_init(ed); 857 _edje_entry_init(ed);
849 evas_event_thaw(tev); 858 evas_event_thaw(tev);
diff --git a/libraries/edje/src/lib/edje_lua2.c b/libraries/edje/src/lib/edje_lua2.c
index 2318af9..1d167e9 100644
--- a/libraries/edje/src/lib/edje_lua2.c
+++ b/libraries/edje/src/lib/edje_lua2.c
@@ -376,7 +376,7 @@ _elua_gc(lua_State *L) // Stack usage [-0, +0, e]
376// nil ~ 376// nil ~
377 377
378static char * 378static char *
379_elua_push_name(lua_State *L, char *q, int index) // Stack usage [-0, +1, e or m] 379_elua_push_name(lua_State *L, char *q, int idx) // Stack usage [-0, +1, e or m]
380{ 380{
381 char *p = q; 381 char *p = q;
382 char temp = '\0'; 382 char temp = '\0';
@@ -387,8 +387,8 @@ _elua_push_name(lua_State *L, char *q, int index) // Stack usage [-0, +1, e or
387 q++; 387 q++;
388 temp = *q; 388 temp = *q;
389 *q = '\0'; 389 *q = '\0';
390 if (index > 0) 390 if (idx > 0)
391 lua_getfield(L, index, p); // Stack usage [-0, +1, e] 391 lua_getfield(L, idx, p); // Stack usage [-0, +1, e]
392 else 392 else
393 lua_pushstring(L, p); // Stack usage [-0, +1, m] 393 lua_pushstring(L, p); // Stack usage [-0, +1, m]
394 *q = temp; 394 *q = temp;
@@ -614,6 +614,7 @@ static int _elua_echo(lua_State *L);
614static int _elua_date(lua_State *L); 614static int _elua_date(lua_State *L);
615static int _elua_looptime(lua_State *L); 615static int _elua_looptime(lua_State *L);
616static int _elua_seconds(lua_State *L); 616static int _elua_seconds(lua_State *L);
617static int _elua_version(lua_State *L);
617 618
618static int _elua_objgeom(lua_State *L); 619static int _elua_objgeom(lua_State *L);
619static int _elua_objpos(lua_State *L); 620static int _elua_objpos(lua_State *L);
@@ -649,6 +650,7 @@ static const struct luaL_reg _elua_edje_funcs [] =
649 {"date", _elua_date}, // get date in a table 650 {"date", _elua_date}, // get date in a table
650 {"looptime", _elua_looptime}, // get loop time 651 {"looptime", _elua_looptime}, // get loop time
651 {"seconds", _elua_seconds}, // get seconds 652 {"seconds", _elua_seconds}, // get seconds
653 {"version", _elua_version}, // edje version
652 654
653 // query edje - size, pos 655 // query edje - size, pos
654 {"geom", _elua_objgeom}, // get while edje object geometry in canvas 656 {"geom", _elua_objgeom}, // get while edje object geometry in canvas
@@ -801,6 +803,25 @@ _elua_seconds(lua_State *L) // Stack usage [-0, +1, -]
801 return 1; 803 return 1;
802} 804}
803 805
806/**
807@page luaref
808@subsubsection edje_version edje:version()
809
810Retrieves the current edje version number.
811
812@returns A table with these fields:
813 - integer major: The edje version major number.
814 - integer minor: The edje version minor number.
815
816@since 1.2.0
817*/
818static int
819_elua_version(lua_State *L) // Stack usage [-4, +5, em]
820{
821 _elua_ret(L, "%major %minor", EDJE_VERSION_MAJOR, EDJE_VERSION_MINOR); // Stack usage [-4, +5, em]
822 return 1;
823}
824
804//------------- 825//-------------
805/** 826/**
806@page luaref 827@page luaref
@@ -2936,7 +2957,9 @@ static int _elua_line_xy(lua_State *L) // Stack usage [
2936 2957
2937The lua evas map class includes functions for dealing with evas map objects. 2958The lua evas map class includes functions for dealing with evas map objects.
2938The evas map objects must have been previously created by lua using the lua 2959The evas map objects must have been previously created by lua using the lua
2939map object creation function edje:map(). 2960map object creation function edje:map(). The evas map system is complex, rather
2961than repeat the copious documentation here, please refer to the evas map
2962documentation. It has pictures and everything. B-)
2940 2963
2941In the following, "map_object" is a place holder for any lua variable that 2964In the following, "map_object" is a place holder for any lua variable that
2942holds a reference to an evas map object. 2965holds a reference to an evas map object.
@@ -2980,8 +3003,18 @@ static const struct luaL_reg _elua_evas_map_funcs [] =
2980 3003
2981/** 3004/**
2982@page luaref 3005@page luaref
2983@subsubsection map_alpha map_object:alpha() 3006@subsubsection map_alpha map_object:alpha(alpha)
3007
3008Get (and optionally set) the maps alpha mode.
3009
3010Wraps evas_map_alpha_set().
2984 3011
3012@param alpha The alpha mode.
3013
3014Note that the argument is optional, without it this function just queries the
3015current value.
3016
3017@return A boolean reflecting the alpha mode.
2985 3018
2986@since 1.1.0 3019@since 1.1.0
2987*/ 3020*/
@@ -3008,6 +3041,11 @@ _elua_map_alpha(lua_State *L) // Stack usage [
3008@page luaref 3041@page luaref
3009@subsubsection map_clockwise map_object:clockwise() 3042@subsubsection map_clockwise map_object:clockwise()
3010 3043
3044Get the maps clockwise state.
3045
3046Wraps evas_map_util_clockwise_get().
3047
3048@return A boolean reflecting if the map is clockwise or not.
3011 3049
3012@since 1.1.0 3050@since 1.1.0
3013*/ 3051*/
@@ -3025,8 +3063,30 @@ _elua_map_clockwise(lua_State *L) // Stack usage [
3025 3063
3026/** 3064/**
3027@page luaref 3065@page luaref
3028@subsubsection map_colour map_object:colour() 3066@subsubsection map_colour map_object:colour(index, r, g, b, a)
3029 3067
3068Gets or sets colour information for the map. There are two variations, with or
3069without the index. With the index parameter it gets (and optionally sets) the
3070colour of the point the index refers to, without it sets the colour for the
3071entire map.
3072
3073Wraps evas_map_point_color_set() or evas_map_util_points_color_set()
3074
3075@param index Which point to change the colour of.
3076@param r The new red value.
3077@param g The new green value.
3078@param b The new blue value.
3079@param a The new alpha value.
3080
3081Note that the arguments are optional, without them this function just queries
3082the current values. The colour arguments can be separate values, or named
3083fields in a table.
3084
3085@return A table with these fields:
3086 - integer r: The red value.
3087 - integer g: The green value.
3088 - integer b: The blue value.
3089 - integer a: The alpha value.
3030 3090
3031@since 1.1.0 3091@since 1.1.0
3032*/ 3092*/
@@ -3073,8 +3133,24 @@ _elua_map_colour(lua_State *L) // Stack usage [
3073 3133
3074/** 3134/**
3075@page luaref 3135@page luaref
3076@subsubsection map_coord map_object:coord() 3136@subsubsection map_coord map_object:coord(index, x, y, z)
3137
3138Gets (and optionally sets) the 3D coordinates of a point on the map.
3139
3140Wraps evas_map_point_coord_set().
3141
3142@param x The x coordinate of the point.
3143@param y The y coordinate of the point.
3144@param z The z coordinate of the point.
3145
3146Note that the arguments are optional, without them this function just queries
3147the current values. The coordinate arguments can be separate values, or named
3148fields in a table.
3077 3149
3150@return A table with these fields:
3151 - integer x: The x coordinate of the point.
3152 - integer y: The y coordinate of the point.
3153 - integer z: The z coordinate of the point.
3078 3154
3079@since 1.1.0 3155@since 1.1.0
3080*/ 3156*/
@@ -3104,8 +3180,21 @@ _elua_map_coord(lua_State *L) // Stack usage [
3104 3180
3105/** 3181/**
3106@page luaref 3182@page luaref
3107@subsubsection map_lighting map_object:lighting() 3183@subsubsection map_lighting map_object:lighting(x, y, z, r, g, b, ar, ag, ab)
3184
3185Set the 3D lights for the map. The three triplets can be tables.
3108 3186
3187Wraps evas_map_util_3d_lighting().
3188
3189@param x The x coordinate of the light point.
3190@param y The y coordinate of the light point.
3191@param z The z coordinate of the light point.
3192@param r The new red value of the light point.
3193@param g The new green value of the light point.
3194@param b The new blue value of the light point.
3195@param ar The new red value of the ambient light.
3196@param ag The new green value of the ambient light.
3197@param ab The new blue value of the ambient light.
3109 3198
3110@since 1.1.0 3199@since 1.1.0
3111*/ 3200*/
@@ -3133,8 +3222,18 @@ _elua_map_lighting(lua_State *L) // Stack usage [
3133 3222
3134/** 3223/**
3135@page luaref 3224@page luaref
3136@subsubsection map_perspective map_object:perspective() 3225@subsubsection map_perspective map_object:perspective(x, y, z, f)
3226
3227Apply a perspective transform to the map.
3228
3229Wraps evas_map_util_3d_perspective().
3137 3230
3231The arguments can be separate values, or named fields in a table.
3232
3233@param x The perspective distance X coordinate
3234@param y The perspective distance Y coordinate
3235@param z The "0" z plane value
3236@param f The focal distance
3138 3237
3139@since 1.1.0 3238@since 1.1.0
3140*/ 3239*/
@@ -3156,8 +3255,28 @@ _elua_map_perspective(lua_State *L) // Stack usage [
3156 3255
3157/** 3256/**
3158@page luaref 3257@page luaref
3159@subsubsection map_populate map_object:populate() 3258@subsubsection map_populate map_object:populate(...)
3259
3260Populate the points in a map, in one of three different methods.
3261
32621) Wraps evas_map_util_points_populate_from_object().
3263
3264@param source An evas object to copy points from.
3265
32662) Wraps evas_map_util_paints_populate_from_object_full().
3267
3268@param source An evas object to copy points from.
3269@param z Common Z coordinate hint for all four points.
3160 3270
32713) Wraps evas_map_util_points_populate_from_geometry().
3272
3273The first four arguments can be separate values, or named fields in a table.
3274
3275@param x Point X coordinate
3276@param y Point Y coordinate
3277@param w Width to use to calculate second and third points.
3278@param h Height to use to calculate third and fourth points.
3279@param z Common Z coordinate hint for all four points.
3161 3280
3162@since 1.1.0 3281@since 1.1.0
3163*/ 3282*/
@@ -3210,8 +3329,17 @@ _elua_map_populate(lua_State *L) // Stack usage [
3210 3329
3211/** 3330/**
3212@page luaref 3331@page luaref
3213@subsubsection map_rotate map_object:rotate() 3332@subsubsection map_rotate map_object:rotate(degrees, x, y)
3333
3334Rotate the maps coordinates in 2D.
3214 3335
3336Wraps evas_map_util_rotate().
3337
3338The coordinates can be separate values, or named fields in a table.
3339
3340@param degrees Amount of degrees from 0.0 to 360.0 to rotate.
3341@param x Rotation's centre horizontal position.
3342@param y Rotation's centre vertical position.
3215 3343
3216@since 1.1.0 3344@since 1.1.0
3217*/ 3345*/
@@ -3238,8 +3366,21 @@ _elua_map_rotate(lua_State *L) // Stack usage [
3238 3366
3239/** 3367/**
3240@page luaref 3368@page luaref
3241@subsubsection map_rotate3d map_object:rotate3d() 3369@subsubsection map_rotate3d map_object:rotate3d(dx, dy, dz, x, y, z)
3370
3371Rotate the maps coordinates in 3D.
3242 3372
3373Wraps evas_map_util_3d_rotate().
3374
3375The coordinates can be separate values, or named fields in a table. The same
3376with the rotation.
3377
3378@param dx Amount of degrees from 0.0 to 360.0 to rotate around X axis.
3379@param dy Amount of degrees from 0.0 to 360.0 to rotate around Y axis.
3380@param dz Amount of degrees from 0.0 to 360.0 to rotate around Z axis.
3381@param x Rotation's centre horizontal position.
3382@param y Rotation's centre vertical position.
3383@param z Rotation's centre vertical position.
3243 3384
3244@since 1.1.0 3385@since 1.1.0
3245*/ 3386*/
@@ -3265,8 +3406,18 @@ _elua_map_rotate3d(lua_State *L) // Stack usage [
3265 3406
3266/** 3407/**
3267@page luaref 3408@page luaref
3268@subsubsection map_smooth map_object:smooth() 3409@subsubsection map_smooth map_object:smooth(smooth)
3410
3411Get (and optionally set) the maps smooth mode.
3412
3413Wraps evas_map_smooth_set().
3414
3415@param smooth The smooth mode.
3416
3417Note that the argument is optional, without it this function just queries the
3418current value.
3269 3419
3420@return A boolean reflecting the smooth mode.
3270 3421
3271@since 1.1.0 3422@since 1.1.0
3272*/ 3423*/
@@ -3291,8 +3442,23 @@ _elua_map_smooth(lua_State *L) // Stack usage [
3291 3442
3292/** 3443/**
3293@page luaref 3444@page luaref
3294@subsubsection map_uv map_object:uv() 3445@subsubsection map_uv map_object:uv(index, u, v)
3446
3447Gets (and optionally sets) the texture U and V texture coordinates for this map.
3448
3449Wraps evas_map_point_image_uv_set().
3450
3451@param index Index of the point to change. Must be smaller than map size.
3452@param u The X coordinate within the image/texture source.
3453@param v The Y coordinate within the image/texture source.
3454
3455Note that the U,V arguments are optional, without them this function just queries
3456the current values. The coordinate arguments can be separate values, or named
3457fields in a table.
3295 3458
3459@return A table with these fields:
3460 - number u: The X coordinate within the image/texture source.
3461 - number v: The Y coordinate within the image/texture source.
3296 3462
3297@since 1.1.0 3463@since 1.1.0
3298*/ 3464*/
@@ -3322,8 +3488,18 @@ _elua_map_uv(lua_State *L) // Stack usage [
3322 3488
3323/** 3489/**
3324@page luaref 3490@page luaref
3325@subsubsection map_zoom map_object:zoom() 3491@subsubsection map_zoom map_object:zoom(x, y, x, y)
3492
3493Apply a zoom to the map.
3494
3495Wraps evas_map_util_zoom().
3326 3496
3497The arguments can be two separate values, or named fields in a table.
3498
3499@param x The horizontal zoom amount.
3500@param y The vertical zoom amount.
3501@param x The X coordinate of the centre of the zoom.
3502@param y The Y coordinate of the centre of the zoom.
3327 3503
3328@since 1.1.0 3504@since 1.1.0
3329*/ 3505*/
@@ -3530,7 +3706,7 @@ _elua_text_font(lua_State *L) // Stack usage [
3530@page luaref 3706@page luaref
3531@subsubsection text_text text_object:text(text) 3707@subsubsection text_text text_object:text(text)
3532 3708
3533Get (and optionally set) the actual tetx for this text object. 3709Get (and optionally set) the actual text for this text object.
3534 3710
3535Wraps evas_object_text_text_set(). 3711Wraps evas_object_text_text_set().
3536 3712
@@ -3569,25 +3745,80 @@ _elua_text_text(lua_State *L) // Stack usage [
3569 3745
3570 3746
3571//--------------------------------------------------------------------------// 3747//--------------------------------------------------------------------------//
3748
3749// A metatable and functions so that calling non existant API does not crash Lua scripts.
3750
3751static int _elua_bogan_nilfunc(lua_State *L);
3752static int _elua_bogan_index(lua_State *L);
3753
3754static const struct luaL_reg _elua_bogan_funcs [] =
3755{
3756 {"nilfunc", _elua_bogan_nilfunc}, // Just return a nil.
3757 {"__index", _elua_bogan_index}, // Return the above func.
3758
3759 {NULL, NULL} // end
3760};
3761
3762static int
3763_elua_bogan_nilfunc(lua_State *L)
3764{
3765 lua_getglobal(L, "nil");
3766 return 1;
3767}
3768
3769static int
3770_elua_bogan_index(lua_State *L)
3771{
3772 const char *key;
3773
3774 key = lua_tostring(L, 2);
3775 LE("%s does not exist!", key);
3776 lua_pushcfunction(L, _elua_bogan_nilfunc);
3777 return 1;
3778}
3779
3780static void
3781_elua_bogan_protect(lua_State *L) // Stack usage [-3, +3, m]
3782{
3783 lua_pushnil(L); // Stack usage [-0, +1, -]
3784 luaL_newmetatable(L, "bogan"); // Stack usage [-0, +1, m]
3785 luaL_register(L, 0, _elua_bogan_funcs); // Stack usage [-1, +1, m]
3786 lua_setmetatable(L, -2); // Stack usage [-1, +0, -]
3787 lua_pop(L, 1); // Stack usage [-1, +0, -]
3788}
3789
3790//--------------------------------------------------------------------------//
3791
3572// Brain dead inheritance thingy, built for speed. Kinda. Part 1. 3792// Brain dead inheritance thingy, built for speed. Kinda. Part 1.
3573static void 3793static void
3574_elua_add_functions(lua_State *L, const char *api, const luaL_Reg *funcs, const char *meta, const char *parent, const char *base) // Stack usage [-3, +5, m] if inheriting [-6, +11, em] 3794_elua_add_functions(lua_State *L, const char *api, const luaL_Reg *funcs, const char *meta, const char *parent, const char *base) // Stack usage [-3, +5, m] if inheriting [-6, +11, em]
3575{ 3795{
3796 // Create an api table, fill it full of the methods.
3576 luaL_register(L, api, funcs); // Stack usage [-0, +1, m] 3797 luaL_register(L, api, funcs); // Stack usage [-0, +1, m]
3798 // Set the api metatable to the bogan metatable.
3799 luaL_getmetatable(L, "bogan"); // Stack usage [-0, +1, -]
3800 lua_setmetatable(L, -2); // Stack usage [-1, +0, -]
3801 // Creat a meta metatable.
3577 luaL_newmetatable(L, meta); // Stack usage [-0, +1, m] 3802 luaL_newmetatable(L, meta); // Stack usage [-0, +1, m]
3803 // Put the gc functions in the metatable.
3578 luaL_register(L, 0, _elua_edje_gc_funcs); // Stack usage [-1, +1, m] 3804 luaL_register(L, 0, _elua_edje_gc_funcs); // Stack usage [-1, +1, m]
3805 // Create an __index entry in the metatable, make it point to the api table.
3579 lua_pushliteral(L, "__index"); // Stack usage [-0, +1, m] 3806 lua_pushliteral(L, "__index"); // Stack usage [-0, +1, m]
3580 lua_pushvalue(L, -3); // Stack usage [-0, +1, -] 3807 lua_pushvalue(L, -3); // Stack usage [-0, +1, -]
3581 lua_rawset(L, -3); // Stack usage [-2, +0, m] 3808 lua_rawset(L, -3); // Stack usage [-2, +0, m]
3809 // Later this metatable is used as the metatable for newly created objects of this class.
3582 3810
3583 if (base && parent) 3811 if (base && parent)
3584 { 3812 {
3585 // Inherit from base 3813 // Inherit from base
3586 lua_getglobal(L, base); // Stack usage [-0, +1, e] 3814 lua_getglobal(L, base); // Stack usage [-0, +1, e]
3815 // Create a new parent metatable.
3587 luaL_newmetatable(L, parent); // Stack usage [-0, +1, m] 3816 luaL_newmetatable(L, parent); // Stack usage [-0, +1, m]
3817 // Create an __index entry in the metatable, make it point to the base table.
3588 lua_pushliteral(L, "__index"); // Stack usage [-0, +1, m] 3818 lua_pushliteral(L, "__index"); // Stack usage [-0, +1, m]
3589 lua_pushvalue(L, -3); // Stack usage [-0, +1, -] 3819 lua_pushvalue(L, -3); // Stack usage [-0, +1, -]
3590 lua_rawset(L, -3); // Stack usage [-2, +0, m] 3820 lua_rawset(L, -3); // Stack usage [-2, +0, m]
3821 // Set the metatable for the api table to the parent metatable.
3591 lua_getglobal(L, api); // Stack usage [-0, +1, e] 3822 lua_getglobal(L, api); // Stack usage [-0, +1, e]
3592 luaL_getmetatable(L, parent); // Stack usage [-0, +1, -] 3823 luaL_getmetatable(L, parent); // Stack usage [-0, +1, -]
3593 lua_setmetatable(L, -2); // Stack usage [-1, +0, -] 3824 lua_setmetatable(L, -2); // Stack usage [-1, +0, -]
@@ -3695,7 +3926,11 @@ _edje_lua2_script_init(Edje *ed) // Stack usage
3695 lua_call(L, 1, 0); // Stack usage [-2, +0, m] 3926 lua_call(L, 1, 0); // Stack usage [-2, +0, m]
3696 } 3927 }
3697 3928
3929 _elua_bogan_protect(L); // Stack usage [+3, -3, m]
3930
3698 luaL_register(L, _elua_edje_api, _elua_edje_funcs); // Stack usage [-0, +1, m] 3931 luaL_register(L, _elua_edje_api, _elua_edje_funcs); // Stack usage [-0, +1, m]
3932 luaL_getmetatable(L, "bogan"); // Stack usage [-0, +1, -]
3933 lua_setmetatable(L, -2); // Stack usage [-1, +0, -]
3699 luaL_newmetatable(L, _elua_edje_meta); // Stack usage [-0, +1, m] 3934 luaL_newmetatable(L, _elua_edje_meta); // Stack usage [-0, +1, m]
3700 luaL_register(L, 0, _elua_edje_gc_funcs); // Stack usage [-1, +1, m] 3935 luaL_register(L, 0, _elua_edje_gc_funcs); // Stack usage [-1, +1, m]
3701 3936
@@ -3737,6 +3972,8 @@ _edje_lua2_script_init(Edje *ed) // Stack usage
3737 { 3972 {
3738 int err; 3973 int err;
3739 3974
3975 /* This ends up pushing a function onto the stack for the lua_pcall() below to use.
3976 * The function is the compiled code. */
3740 err = luaL_loadbuffer(L, data, size, "edje_lua_script"); // Stack usage [-0, +1, m] 3977 err = luaL_loadbuffer(L, data, size, "edje_lua_script"); // Stack usage [-0, +1, m]
3741 if (err) 3978 if (err)
3742 { 3979 {
diff --git a/libraries/edje/src/lib/edje_main.c b/libraries/edje/src/lib/edje_main.c
index cf443c7..5d011ad 100644
--- a/libraries/edje/src/lib/edje_main.c
+++ b/libraries/edje/src/lib/edje_main.c
@@ -22,10 +22,7 @@ edje_init(void)
22 srand(time(NULL)); 22 srand(time(NULL));
23 23
24 if (!eina_init()) 24 if (!eina_init())
25 { 25 return --_edje_init_count;
26 fprintf(stderr, "Edje: Eina init failed");
27 return --_edje_init_count;
28 }
29 26
30 _edje_default_log_dom = eina_log_domain_register 27 _edje_default_log_dom = eina_log_domain_register
31 ("edje", EDJE_DEFAULT_LOG_COLOR); 28 ("edje", EDJE_DEFAULT_LOG_COLOR);
diff --git a/libraries/edje/src/lib/edje_message_queue.c b/libraries/edje/src/lib/edje_message_queue.c
index 1a313a5..5628ccc 100644
--- a/libraries/edje/src/lib/edje_message_queue.c
+++ b/libraries/edje/src/lib/edje_message_queue.c
@@ -364,8 +364,8 @@ _edje_message_propornot_send(Edje *ed, Edje_Queue queue, Edje_Message_Type type,
364 } 364 }
365 if (_injob > 0) 365 if (_injob > 0)
366 { 366 {
367 if (_job_loss_timer) ecore_timer_del(_job_loss_timer); 367 if (!_job_loss_timer)
368 _job_loss_timer = ecore_timer_add(0.001, _edje_job_loss_timer, NULL); 368 _job_loss_timer = ecore_timer_add(0.001, _edje_job_loss_timer, NULL);
369 } 369 }
370 else 370 else
371 { 371 {
diff --git a/libraries/edje/src/lib/edje_module.c b/libraries/edje/src/lib/edje_module.c
index effcee1..358295b 100644
--- a/libraries/edje/src/lib/edje_module.c
+++ b/libraries/edje/src/lib/edje_module.c
@@ -136,12 +136,12 @@ edje_available_modules_get(void)
136 136
137 snprintf(tmp, sizeof (tmp), "%s/%s/" EDJE_MODULE_NAME, info->path, MODULE_ARCH 137 snprintf(tmp, sizeof (tmp), "%s/%s/" EDJE_MODULE_NAME, info->path, MODULE_ARCH
138#ifdef EDJE_EXTRA_MODULE_NAME 138#ifdef EDJE_EXTRA_MODULE_NAME
139 , ecore_file_file_get(info->path) 139 , info->path + info->name_start
140#endif 140#endif
141 ); 141 );
142 142
143 if (ecore_file_exists(tmp)) 143 if (ecore_file_exists(tmp))
144 result = eina_list_append(result, eina_stringshare_add(ecore_file_file_get(info->path))); 144 result = eina_list_append(result, eina_stringshare_add(info->path + info->name_start));
145 } 145 }
146 146
147 eina_iterator_free(it); 147 eina_iterator_free(it);
diff --git a/libraries/edje/src/lib/edje_multisense.c b/libraries/edje/src/lib/edje_multisense.c
index f9c7f91..f3324e7 100644
--- a/libraries/edje/src/lib/edje_multisense.c
+++ b/libraries/edje/src/lib/edje_multisense.c
@@ -351,8 +351,10 @@ _edje_multisense_internal_sound_sample_play(Edje *ed, const char *sample_name, c
351 command.type.sample.speed = speed; 351 command.type.sample.speed = speed;
352 size = write(command_pipe[1], &command, sizeof(command)); 352 size = write(command_pipe[1], &command, sizeof(command));
353#else 353#else
354 ed = NULL; // warning shh 354 // warning shh
355 if (speed > 0) sample_name = NULL; // warning shh 355 (void) ed;
356 (void) sample_name;
357 (void) speed;
356#endif 358#endif
357 return (size == sizeof(Edje_Multisense_Sound_Action)); 359 return (size == sizeof(Edje_Multisense_Sound_Action));
358} 360}
@@ -371,8 +373,10 @@ _edje_multisense_internal_sound_tone_play(Edje *ed, const char *tone_name, const
371 command.type.tone.duration = duration; 373 command.type.tone.duration = duration;
372 size = write(command_pipe[1], &command, sizeof(command)); 374 size = write(command_pipe[1], &command, sizeof(command));
373#else 375#else
374 ed = NULL; // warning shh 376 // warning shh
375 if (duration > 0) tone_name = NULL; // warning shh 377 (void) ed;
378 (void) duration;
379 (void) tone_name;
376#endif 380#endif
377 return (size == sizeof(Edje_Multisense_Sound_Action)); 381 return (size == sizeof(Edje_Multisense_Sound_Action));
378 382
diff --git a/libraries/edje/src/lib/edje_private.h b/libraries/edje/src/lib/edje_private.h
index cbb3e03..8bf18eb 100644
--- a/libraries/edje/src/lib/edje_private.h
+++ b/libraries/edje/src/lib/edje_private.h
@@ -192,7 +192,8 @@ typedef enum
192 EDJE_ASPECT_PREFER_NONE, 192 EDJE_ASPECT_PREFER_NONE,
193 EDJE_ASPECT_PREFER_VERTICAL, 193 EDJE_ASPECT_PREFER_VERTICAL,
194 EDJE_ASPECT_PREFER_HORIZONTAL, 194 EDJE_ASPECT_PREFER_HORIZONTAL,
195 EDJE_ASPECT_PREFER_BOTH 195 EDJE_ASPECT_PREFER_BOTH,
196 EDJE_ASPECT_PREFER_SOURCE
196} Edje_Internal_Aspect; 197} Edje_Internal_Aspect;
197 198
198struct _Edje_Perspective 199struct _Edje_Perspective
@@ -232,7 +233,7 @@ struct _Edje_Color
232struct _Edje_Aspect_Prefer 233struct _Edje_Aspect_Prefer
233{ 234{
234 FLOAT_T min, max; 235 FLOAT_T min, max;
235 Edje_Internal_Aspect prefer; 236 char prefer;
236}; 237};
237 238
238struct _Edje_Aspect 239struct _Edje_Aspect
@@ -834,6 +835,11 @@ struct _Edje_Part_Description_Common
834 unsigned char w, h; /* width or height is fixed in side (cannot expand with Edje object size) */ 835 unsigned char w, h; /* width or height is fixed in side (cannot expand with Edje object size) */
835 } fixed; 836 } fixed;
836 837
838 struct { // only during recalc
839 unsigned char have;
840 FLOAT_T w, h;
841 } minmul;
842
837 Edje_Size min, max; 843 Edje_Size min, max;
838 Edje_Position step; /* size stepping by n pixels, 0 = none */ 844 Edje_Position step; /* size stepping by n pixels, 0 = none */
839 Edje_Aspect_Prefer aspect; 845 Edje_Aspect_Prefer aspect;
@@ -1138,6 +1144,7 @@ struct _Edje
1138 unsigned int all_part_change : 1; 1144 unsigned int all_part_change : 1;
1139#endif 1145#endif
1140 unsigned int have_mapped_part : 1; 1146 unsigned int have_mapped_part : 1;
1147 unsigned int recalc_call : 1;
1141}; 1148};
1142 1149
1143struct _Edje_Calc_Params 1150struct _Edje_Calc_Params
@@ -1915,7 +1922,7 @@ void _edje_entry_cursor_line_end(Edje_Real_Part *rp, Edje_Cursor cur);
1915Eina_Bool _edje_entry_cursor_coord_set(Edje_Real_Part *rp, Edje_Cursor cur, int x, int y); 1922Eina_Bool _edje_entry_cursor_coord_set(Edje_Real_Part *rp, Edje_Cursor cur, int x, int y);
1916Eina_Bool _edje_entry_cursor_is_format_get(Edje_Real_Part *rp, Edje_Cursor cur); 1923Eina_Bool _edje_entry_cursor_is_format_get(Edje_Real_Part *rp, Edje_Cursor cur);
1917Eina_Bool _edje_entry_cursor_is_visible_format_get(Edje_Real_Part *rp, Edje_Cursor cur); 1924Eina_Bool _edje_entry_cursor_is_visible_format_get(Edje_Real_Part *rp, Edje_Cursor cur);
1918const char *_edje_entry_cursor_content_get(Edje_Real_Part *rp, Edje_Cursor cur); 1925char *_edje_entry_cursor_content_get(Edje_Real_Part *rp, Edje_Cursor cur);
1919void _edje_entry_cursor_pos_set(Edje_Real_Part *rp, Edje_Cursor cur, int pos); 1926void _edje_entry_cursor_pos_set(Edje_Real_Part *rp, Edje_Cursor cur, int pos);
1920int _edje_entry_cursor_pos_get(Edje_Real_Part *rp, Edje_Cursor cur); 1927int _edje_entry_cursor_pos_get(Edje_Real_Part *rp, Edje_Cursor cur);
1921void _edje_entry_input_panel_layout_set(Edje_Real_Part *rp, Edje_Input_Panel_Layout layout); 1928void _edje_entry_input_panel_layout_set(Edje_Real_Part *rp, Edje_Input_Panel_Layout layout);
diff --git a/libraries/edje/src/lib/edje_program.c b/libraries/edje/src/lib/edje_program.c
index 505b6a2..d80c7c9 100644
--- a/libraries/edje/src/lib/edje_program.c
+++ b/libraries/edje/src/lib/edje_program.c
@@ -992,7 +992,7 @@ _edje_emit_full(Edje *ed, const char *sig, const char *src, void *data, void (*f
992 break ; 992 break ;
993 993
994 default: 994 default:
995 fprintf(stderr, "SPANK SPANK SPANK !!!\nYou should never be here !\n"); 995 ERR("SPANK SPANK SPANK !!!\nYou should never be here !");
996 break; 996 break;
997 } 997 }
998 } 998 }
@@ -1621,6 +1621,7 @@ _edje_param_native_set(Edje_Real_Part *rp, const char *name, const Edje_External
1621 if (param->type != EDJE_EXTERNAL_PARAM_TYPE_DOUBLE) 1621 if (param->type != EDJE_EXTERNAL_PARAM_TYPE_DOUBLE)
1622 return EINA_FALSE; 1622 return EINA_FALSE;
1623 rp->drag->size.x = FROM_DOUBLE(CLAMP(param->d, 0.0, 1.0)); 1623 rp->drag->size.x = FROM_DOUBLE(CLAMP(param->d, 0.0, 1.0));
1624 rp->edje->recalc_call = 1;
1624 rp->edje->dirty = 1; 1625 rp->edje->dirty = 1;
1625#ifdef EDJE_CALC_CACHE 1626#ifdef EDJE_CALC_CACHE
1626 rp->invalidate = 1; 1627 rp->invalidate = 1;
@@ -1633,6 +1634,7 @@ _edje_param_native_set(Edje_Real_Part *rp, const char *name, const Edje_External
1633 if (param->type != EDJE_EXTERNAL_PARAM_TYPE_DOUBLE) 1634 if (param->type != EDJE_EXTERNAL_PARAM_TYPE_DOUBLE)
1634 return EINA_FALSE; 1635 return EINA_FALSE;
1635 rp->drag->size.y = FROM_DOUBLE(CLAMP(param->d, 0.0, 1.0)); 1636 rp->drag->size.y = FROM_DOUBLE(CLAMP(param->d, 0.0, 1.0));
1637 rp->edje->recalc_call = 1;
1636 rp->edje->dirty = 1; 1638 rp->edje->dirty = 1;
1637#ifdef EDJE_CALC_CACHE 1639#ifdef EDJE_CALC_CACHE
1638 rp->invalidate = 1; 1640 rp->invalidate = 1;
diff --git a/libraries/edje/src/lib/edje_util.c b/libraries/edje/src/lib/edje_util.c
index dbb37a7..2205ba3 100644
--- a/libraries/edje/src/lib/edje_util.c
+++ b/libraries/edje/src/lib/edje_util.c
@@ -438,6 +438,7 @@ edje_color_class_set(const char *color_class, int r, int g, int b, int a, int r2
438 438
439 ed = eina_list_data_get(members); 439 ed = eina_list_data_get(members);
440 ed->dirty = 1; 440 ed->dirty = 1;
441 ed->recalc_call = 1;
441#ifdef EDJE_CALC_CACHE 442#ifdef EDJE_CALC_CACHE
442 ed->all_part_change = 1; 443 ed->all_part_change = 1;
443#endif 444#endif
@@ -504,6 +505,7 @@ edje_color_class_del(const char *color_class)
504 505
505 ed = eina_list_data_get(members); 506 ed = eina_list_data_get(members);
506 ed->dirty = 1; 507 ed->dirty = 1;
508 ed->recalc_call = 1;
507#ifdef EDJE_CALC_CACHE 509#ifdef EDJE_CALC_CACHE
508 ed->all_part_change = 1; 510 ed->all_part_change = 1;
509#endif 511#endif
@@ -583,6 +585,7 @@ edje_object_color_class_set(Evas_Object *obj, const char *color_class, int r, in
583 cc->b3 = b3; 585 cc->b3 = b3;
584 cc->a3 = a3; 586 cc->a3 = a3;
585 ed->dirty = 1; 587 ed->dirty = 1;
588 ed->recalc_call = 1;
586#ifdef EDJE_CALC_CACHE 589#ifdef EDJE_CALC_CACHE
587 ed->all_part_change = 1; 590 ed->all_part_change = 1;
588#endif 591#endif
@@ -611,6 +614,7 @@ edje_object_color_class_set(Evas_Object *obj, const char *color_class, int r, in
611 cc->a3 = a3; 614 cc->a3 = a3;
612 ed->color_classes = eina_list_append(ed->color_classes, cc); 615 ed->color_classes = eina_list_append(ed->color_classes, cc);
613 ed->dirty = 1; 616 ed->dirty = 1;
617 ed->recalc_call = 1;
614#ifdef EDJE_CALC_CACHE 618#ifdef EDJE_CALC_CACHE
615 ed->all_part_change = 1; 619 ed->all_part_change = 1;
616#endif 620#endif
@@ -693,6 +697,7 @@ edje_object_color_class_del(Evas_Object *obj, const char *color_class)
693 } 697 }
694 698
695 ed->dirty = 1; 699 ed->dirty = 1;
700 ed->recalc_call = 1;
696#ifdef EDJE_CALC_CACHE 701#ifdef EDJE_CALC_CACHE
697 ed->all_part_change = 1; 702 ed->all_part_change = 1;
698#endif 703#endif
@@ -752,6 +757,7 @@ edje_text_class_set(const char *text_class, const char *font, Evas_Font_Size siz
752 757
753 ed = eina_list_data_get(members); 758 ed = eina_list_data_get(members);
754 ed->dirty = 1; 759 ed->dirty = 1;
760 ed->recalc_call = 1;
755 _edje_textblock_style_all_update(ed); 761 _edje_textblock_style_all_update(ed);
756#ifdef EDJE_CALC_CACHE 762#ifdef EDJE_CALC_CACHE
757 ed->text_part_change = 1; 763 ed->text_part_change = 1;
@@ -847,6 +853,7 @@ edje_object_text_class_set(Evas_Object *obj, const char *text_class, const char
847 853
848 /* Update edje */ 854 /* Update edje */
849 ed->dirty = 1; 855 ed->dirty = 1;
856 ed->recalc_call = 1;
850#ifdef EDJE_CALC_CACHE 857#ifdef EDJE_CALC_CACHE
851 ed->text_part_change = 1; 858 ed->text_part_change = 1;
852#endif 859#endif
@@ -881,6 +888,7 @@ edje_object_text_class_set(Evas_Object *obj, const char *text_class, const char
881 /* Add to edje's text class list */ 888 /* Add to edje's text class list */
882 ed->text_classes = eina_list_append(ed->text_classes, tc); 889 ed->text_classes = eina_list_append(ed->text_classes, tc);
883 ed->dirty = 1; 890 ed->dirty = 1;
891 ed->recalc_call = 1;
884#ifdef EDJE_CALC_CACHE 892#ifdef EDJE_CALC_CACHE
885 ed->text_part_change = 1; 893 ed->text_part_change = 1;
886#endif 894#endif
@@ -1005,6 +1013,7 @@ _edje_object_part_text_raw_set(Evas_Object *obj, Edje_Real_Part *rp, const char
1005 else 1013 else
1006 if (text) rp->text.text = eina_stringshare_add(text); 1014 if (text) rp->text.text = eina_stringshare_add(text);
1007 rp->edje->dirty = 1; 1015 rp->edje->dirty = 1;
1016 rp->edje->recalc_call = 1;
1008#ifdef EDJE_CALC_CACHE 1017#ifdef EDJE_CALC_CACHE
1009 rp->invalidate = 1; 1018 rp->invalidate = 1;
1010#endif 1019#endif
@@ -1039,6 +1048,7 @@ _edje_object_part_text_raw_append(Evas_Object *obj, Edje_Real_Part *rp, const ch
1039 } 1048 }
1040 } 1049 }
1041 rp->edje->dirty = 1; 1050 rp->edje->dirty = 1;
1051 rp->edje->recalc_call = 1;
1042#ifdef EDJE_CALC_CACHE 1052#ifdef EDJE_CALC_CACHE
1043 rp->invalidate = 1; 1053 rp->invalidate = 1;
1044#endif 1054#endif
@@ -1307,6 +1317,7 @@ edje_object_part_text_insert(Evas_Object *obj, const char *part, const char *tex
1307 if (rp->part->entry_mode <= EDJE_ENTRY_EDIT_MODE_NONE) return; 1317 if (rp->part->entry_mode <= EDJE_ENTRY_EDIT_MODE_NONE) return;
1308 _edje_entry_text_markup_insert(rp, text); 1318 _edje_entry_text_markup_insert(rp, text);
1309 rp->edje->dirty = 1; 1319 rp->edje->dirty = 1;
1320 rp->edje->recalc_call = 1;
1310#ifdef EDJE_CALC_CACHE 1321#ifdef EDJE_CALC_CACHE
1311 rp->invalidate = 1; 1322 rp->invalidate = 1;
1312#endif 1323#endif
@@ -1328,6 +1339,7 @@ edje_object_part_text_append(Evas_Object *obj, const char *part, const char *tex
1328 if ((rp->part->type != EDJE_PART_TYPE_TEXTBLOCK)) return; 1339 if ((rp->part->type != EDJE_PART_TYPE_TEXTBLOCK)) return;
1329 _edje_object_part_text_raw_append(obj, rp, part, text); 1340 _edje_object_part_text_raw_append(obj, rp, part, text);
1330 rp->edje->dirty = 1; 1341 rp->edje->dirty = 1;
1342 rp->edje->recalc_call = 1;
1331#ifdef EDJE_CALC_CACHE 1343#ifdef EDJE_CALC_CACHE
1332 rp->invalidate = 1; 1344 rp->invalidate = 1;
1333#endif 1345#endif
@@ -1675,7 +1687,7 @@ edje_object_part_text_cursor_is_visible_format_get(const Evas_Object *obj, const
1675 return 0; 1687 return 0;
1676} 1688}
1677 1689
1678EAPI const char * 1690EAPI char *
1679edje_object_part_text_cursor_content_get(const Evas_Object *obj, const char *part, Edje_Cursor cur) 1691edje_object_part_text_cursor_content_get(const Evas_Object *obj, const char *part, Edje_Cursor cur)
1680{ 1692{
1681 Edje *ed; 1693 Edje *ed;
@@ -1908,6 +1920,13 @@ edje_object_part_swallow(Evas_Object *obj, const char *part, Evas_Object *obj_sw
1908 // XXX: by Sachiel, January 21th 2009, 19:30 UTC 1920 // XXX: by Sachiel, January 21th 2009, 19:30 UTC
1909 _edje_recalc_do(ed); 1921 _edje_recalc_do(ed);
1910 1922
1923 rp = evas_object_data_get(obj_swallow, "\377 edje.swallowing_part");
1924 if (rp)
1925 {
1926 /* The object is already swallowed somewhere, unswallow it first */
1927 edje_object_part_unswallow(rp->edje->obj, obj_swallow);
1928 }
1929
1911 rp = _edje_real_part_recursive_get(ed, (char *)part); 1930 rp = _edje_real_part_recursive_get(ed, (char *)part);
1912 if (!rp) return EINA_FALSE; 1931 if (!rp) return EINA_FALSE;
1913 if (rp->part->type != EDJE_PART_TYPE_SWALLOW) 1932 if (rp->part->type != EDJE_PART_TYPE_SWALLOW)
@@ -1929,6 +1948,7 @@ _recalc_extern_parent(Evas_Object *obj)
1929 ed = _edje_fetch(parent); 1948 ed = _edje_fetch(parent);
1930 1949
1931 ed->dirty = 1; 1950 ed->dirty = 1;
1951 ed->recalc_call = 1; // ZZZ: ???
1932 _edje_recalc(ed); 1952 _edje_recalc(ed);
1933} 1953}
1934 1954
@@ -2110,11 +2130,7 @@ _edje_box_layout_external_new(const char *name, Evas_Object_Box_Layout func, voi
2110 2130
2111 name_len = strlen(name) + 1; 2131 name_len = strlen(name) + 1;
2112 l = malloc(sizeof(Edje_Box_Layout) + name_len); 2132 l = malloc(sizeof(Edje_Box_Layout) + name_len);
2113 if (!l) 2133 if (!l) return NULL;
2114 {
2115 perror("malloc");
2116 return NULL;
2117 }
2118 2134
2119 l->func = func; 2135 l->func = func;
2120 l->layout_data_get = layout_data_get; 2136 l->layout_data_get = layout_data_get;
@@ -2224,6 +2240,7 @@ edje_object_part_unswallow(Evas_Object *obj __UNUSED__, Evas_Object *obj_swallow
2224 rp->swallow_params.max.w = 0; 2240 rp->swallow_params.max.w = 0;
2225 rp->swallow_params.max.h = 0; 2241 rp->swallow_params.max.h = 0;
2226 rp->edje->dirty = 1; 2242 rp->edje->dirty = 1;
2243 rp->edje->recalc_call = 1;
2227#ifdef EDJE_CALC_CACHE 2244#ifdef EDJE_CALC_CACHE
2228 rp->invalidate = 1; 2245 rp->invalidate = 1;
2229#endif 2246#endif
@@ -2684,6 +2701,7 @@ edje_object_part_drag_size_set(Evas_Object *obj, const char *part, double dw, do
2684 rp->drag->size.x = FROM_DOUBLE(dw); 2701 rp->drag->size.x = FROM_DOUBLE(dw);
2685 rp->drag->size.y = FROM_DOUBLE(dh); 2702 rp->drag->size.y = FROM_DOUBLE(dh);
2686 rp->edje->dirty = 1; 2703 rp->edje->dirty = 1;
2704 rp->edje->recalc_call = 1;
2687#ifdef EDJE_CALC_CACHE 2705#ifdef EDJE_CALC_CACHE
2688 rp->invalidate = 1; 2706 rp->invalidate = 1;
2689#endif 2707#endif
@@ -3018,6 +3036,7 @@ _edje_box_child_del_cb(void *data, Evas *e __UNUSED__, Evas_Object *child __UNUS
3018 Edje_Real_Part *rp = data; 3036 Edje_Real_Part *rp = data;
3019 3037
3020 rp->edje->dirty = 1; 3038 rp->edje->dirty = 1;
3039 rp->edje->recalc_call = 1;
3021#ifdef EDJE_CALC_CACHE 3040#ifdef EDJE_CALC_CACHE
3022 rp->invalidate = 1; 3041 rp->invalidate = 1;
3023#endif 3042#endif
@@ -3031,6 +3050,7 @@ _edje_box_child_add(Edje_Real_Part *rp, Evas_Object *child)
3031 (child, EVAS_CALLBACK_DEL, _edje_box_child_del_cb, rp); 3050 (child, EVAS_CALLBACK_DEL, _edje_box_child_del_cb, rp);
3032 3051
3033 rp->edje->dirty = 1; 3052 rp->edje->dirty = 1;
3053 rp->edje->recalc_call = 1;
3034#ifdef EDJE_CALC_CACHE 3054#ifdef EDJE_CALC_CACHE
3035 rp->invalidate = 1; 3055 rp->invalidate = 1;
3036#endif 3056#endif
@@ -3044,6 +3064,7 @@ _edje_box_child_remove(Edje_Real_Part *rp, Evas_Object *child)
3044 (child, EVAS_CALLBACK_DEL, _edje_box_child_del_cb, rp); 3064 (child, EVAS_CALLBACK_DEL, _edje_box_child_del_cb, rp);
3045 3065
3046 rp->edje->dirty = 1; 3066 rp->edje->dirty = 1;
3067 rp->edje->recalc_call = 1;
3047#ifdef EDJE_CALC_CACHE 3068#ifdef EDJE_CALC_CACHE
3048 rp->invalidate = 1; 3069 rp->invalidate = 1;
3049#endif 3070#endif
@@ -3186,6 +3207,7 @@ _edje_table_child_del_cb(void *data, Evas *e __UNUSED__, Evas_Object *child __UN
3186 Edje_Real_Part *rp = data; 3207 Edje_Real_Part *rp = data;
3187 3208
3188 rp->edje->dirty = 1; 3209 rp->edje->dirty = 1;
3210 rp->edje->recalc_call = 1;
3189#ifdef EDJE_CALC_CACHE 3211#ifdef EDJE_CALC_CACHE
3190 rp->invalidate = 1; 3212 rp->invalidate = 1;
3191#endif 3213#endif
@@ -3199,6 +3221,7 @@ _edje_table_child_add(Edje_Real_Part *rp, Evas_Object *child)
3199 (child, EVAS_CALLBACK_DEL, _edje_table_child_del_cb, rp); 3221 (child, EVAS_CALLBACK_DEL, _edje_table_child_del_cb, rp);
3200 3222
3201 rp->edje->dirty = 1; 3223 rp->edje->dirty = 1;
3224 rp->edje->recalc_call = 1;
3202#ifdef EDJE_CALC_CACHE 3225#ifdef EDJE_CALC_CACHE
3203 rp->invalidate = 1; 3226 rp->invalidate = 1;
3204#endif 3227#endif
@@ -3212,6 +3235,7 @@ _edje_table_child_remove(Edje_Real_Part *rp, Evas_Object *child)
3212 (child, EVAS_CALLBACK_DEL, _edje_table_child_del_cb, rp); 3235 (child, EVAS_CALLBACK_DEL, _edje_table_child_del_cb, rp);
3213 3236
3214 rp->edje->dirty = 1; 3237 rp->edje->dirty = 1;
3238 rp->edje->recalc_call = 1;
3215#ifdef EDJE_CALC_CACHE 3239#ifdef EDJE_CALC_CACHE
3216 rp->invalidate = 1; 3240 rp->invalidate = 1;
3217#endif 3241#endif
@@ -3314,6 +3338,7 @@ _edje_perspective_obj_del(void *data, __UNUSED__ Evas *e, __UNUSED__ Evas_Object
3314 if (!ed) continue; 3338 if (!ed) continue;
3315 ed->persp = NULL; 3339 ed->persp = NULL;
3316 ed->dirty = 1; 3340 ed->dirty = 1;
3341 ed->recalc_call = 1;
3317 _edje_recalc_do(ed); 3342 _edje_recalc_do(ed);
3318 } 3343 }
3319 free(ps); 3344 free(ps);
@@ -3367,6 +3392,7 @@ edje_perspective_set(Edje_Perspective *ps, Evas_Coord px, Evas_Coord py, Evas_Co
3367 if (!ed->persp) 3392 if (!ed->persp)
3368 { 3393 {
3369 ed->dirty = 1; 3394 ed->dirty = 1;
3395 ed->recalc_call = 1;
3370 _edje_recalc_do(ed); 3396 _edje_recalc_do(ed);
3371 } 3397 }
3372 } 3398 }
@@ -3381,6 +3407,7 @@ edje_perspective_set(Edje_Perspective *ps, Evas_Coord px, Evas_Coord py, Evas_Co
3381 if (!ed->persp) 3407 if (!ed->persp)
3382 { 3408 {
3383 ed->dirty = 1; 3409 ed->dirty = 1;
3410 ed->recalc_call = 1;
3384 _edje_recalc_do(ed); 3411 _edje_recalc_do(ed);
3385 } 3412 }
3386 } 3413 }
@@ -3414,6 +3441,7 @@ edje_perspective_global_set(Edje_Perspective *ps, Eina_Bool global)
3414 if (!ed->persp) 3441 if (!ed->persp)
3415 { 3442 {
3416 ed->dirty = 1; 3443 ed->dirty = 1;
3444 ed->recalc_call = 1;
3417 _edje_recalc_do(ed); 3445 _edje_recalc_do(ed);
3418 } 3446 }
3419 } 3447 }
@@ -3453,6 +3481,7 @@ edje_object_perspective_set(Evas_Object *obj, Edje_Perspective *ps)
3453 ed->persp = ps; 3481 ed->persp = ps;
3454 if (ps) ps->users = eina_list_append(ps->users, obj); 3482 if (ps) ps->users = eina_list_append(ps->users, obj);
3455 ed->dirty = 1; 3483 ed->dirty = 1;
3484 ed->recalc_call = 1;
3456 _edje_recalc_do(ed); 3485 _edje_recalc_do(ed);
3457} 3486}
3458 3487
@@ -4075,6 +4104,7 @@ _edje_object_part_swallow_changed_hints_cb(void *data, __UNUSED__ Evas *e, __UNU
4075 rp = data; 4104 rp = data;
4076 _edje_real_part_swallow_hints_update(rp); 4105 _edje_real_part_swallow_hints_update(rp);
4077 rp->edje->dirty = 1; 4106 rp->edje->dirty = 1;
4107 rp->edje->recalc_call = 1;
4078 _edje_recalc(rp->edje); 4108 _edje_recalc(rp->edje);
4079 return; 4109 return;
4080} 4110}
@@ -4096,6 +4126,7 @@ _edje_real_part_swallow(Edje_Real_Part *rp,
4096 if (hints_update) 4126 if (hints_update)
4097 _edje_real_part_swallow_hints_update(rp); 4127 _edje_real_part_swallow_hints_update(rp);
4098 rp->edje->dirty = 1; 4128 rp->edje->dirty = 1;
4129 rp->edje->recalc_call = 1;
4099 _edje_recalc(rp->edje); 4130 _edje_recalc(rp->edje);
4100 return; 4131 return;
4101 } 4132 }
@@ -4139,6 +4170,7 @@ _edje_real_part_swallow(Edje_Real_Part *rp,
4139 evas_object_precise_is_inside_set(obj_swallow, 1); 4170 evas_object_precise_is_inside_set(obj_swallow, 1);
4140 4171
4141 rp->edje->dirty = 1; 4172 rp->edje->dirty = 1;
4173 rp->edje->recalc_call = 1;
4142 _edje_recalc(rp->edje); 4174 _edje_recalc(rp->edje);
4143} 4175}
4144 4176
diff --git a/libraries/edje/src/modules/Makefile.in b/libraries/edje/src/modules/Makefile.in
index 55c47d6..5e81050 100644
--- a/libraries/edje/src/modules/Makefile.in
+++ b/libraries/edje/src/modules/Makefile.in
@@ -193,8 +193,6 @@ PACKAGE_URL = @PACKAGE_URL@
193PACKAGE_VERSION = @PACKAGE_VERSION@ 193PACKAGE_VERSION = @PACKAGE_VERSION@
194PATH_SEPARATOR = @PATH_SEPARATOR@ 194PATH_SEPARATOR = @PATH_SEPARATOR@
195PKG_CONFIG = @PKG_CONFIG@ 195PKG_CONFIG = @PKG_CONFIG@
196PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
197PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
198PYTHON = @PYTHON@ 196PYTHON = @PYTHON@
199PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ 197PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
200PYTHON_PLATFORM = @PYTHON_PLATFORM@ 198PYTHON_PLATFORM = @PYTHON_PLATFORM@
diff --git a/libraries/edje/src/modules/alsa_snd_player/Makefile.in b/libraries/edje/src/modules/alsa_snd_player/Makefile.in
index ce68f41..1fe2fb1 100644
--- a/libraries/edje/src/modules/alsa_snd_player/Makefile.in
+++ b/libraries/edje/src/modules/alsa_snd_player/Makefile.in
@@ -210,8 +210,6 @@ PACKAGE_URL = @PACKAGE_URL@
210PACKAGE_VERSION = @PACKAGE_VERSION@ 210PACKAGE_VERSION = @PACKAGE_VERSION@
211PATH_SEPARATOR = @PATH_SEPARATOR@ 211PATH_SEPARATOR = @PATH_SEPARATOR@
212PKG_CONFIG = @PKG_CONFIG@ 212PKG_CONFIG = @PKG_CONFIG@
213PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
214PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
215PYTHON = @PYTHON@ 213PYTHON = @PYTHON@
216PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ 214PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
217PYTHON_PLATFORM = @PYTHON_PLATFORM@ 215PYTHON_PLATFORM = @PYTHON_PLATFORM@
diff --git a/libraries/edje/src/modules/eet_snd_reader/Makefile.in b/libraries/edje/src/modules/eet_snd_reader/Makefile.in
index f4d99bb..12d0487 100644
--- a/libraries/edje/src/modules/eet_snd_reader/Makefile.in
+++ b/libraries/edje/src/modules/eet_snd_reader/Makefile.in
@@ -211,8 +211,6 @@ PACKAGE_URL = @PACKAGE_URL@
211PACKAGE_VERSION = @PACKAGE_VERSION@ 211PACKAGE_VERSION = @PACKAGE_VERSION@
212PATH_SEPARATOR = @PATH_SEPARATOR@ 212PATH_SEPARATOR = @PATH_SEPARATOR@
213PKG_CONFIG = @PKG_CONFIG@ 213PKG_CONFIG = @PKG_CONFIG@
214PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
215PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
216PYTHON = @PYTHON@ 214PYTHON = @PYTHON@
217PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ 215PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
218PYTHON_PLATFORM = @PYTHON_PLATFORM@ 216PYTHON_PLATFORM = @PYTHON_PLATFORM@
diff --git a/libraries/edje/src/modules/multisense_factory/Makefile.in b/libraries/edje/src/modules/multisense_factory/Makefile.in
index ed0c3e4..8fbc0aa 100644
--- a/libraries/edje/src/modules/multisense_factory/Makefile.in
+++ b/libraries/edje/src/modules/multisense_factory/Makefile.in
@@ -208,8 +208,6 @@ PACKAGE_URL = @PACKAGE_URL@
208PACKAGE_VERSION = @PACKAGE_VERSION@ 208PACKAGE_VERSION = @PACKAGE_VERSION@
209PATH_SEPARATOR = @PATH_SEPARATOR@ 209PATH_SEPARATOR = @PATH_SEPARATOR@
210PKG_CONFIG = @PKG_CONFIG@ 210PKG_CONFIG = @PKG_CONFIG@
211PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
212PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
213PYTHON = @PYTHON@ 211PYTHON = @PYTHON@
214PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ 212PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
215PYTHON_PLATFORM = @PYTHON_PLATFORM@ 213PYTHON_PLATFORM = @PYTHON_PLATFORM@
diff --git a/libraries/edje/src/modules/multisense_factory/multisense_factory.c b/libraries/edje/src/modules/multisense_factory/multisense_factory.c
index f89ae9b..8b17be1 100644
--- a/libraries/edje/src/modules/multisense_factory/multisense_factory.c
+++ b/libraries/edje/src/modules/multisense_factory/multisense_factory.c
@@ -1,33 +1,33 @@
1#include "config.h" 1#include "config.h"
2#include "edje_private.h" 2#include "edje_private.h"
3 3
4#define DEFAULT_SAMPLERATE 44100 4#define DEFAULT_SAMPLERATE 44100
5 5
6#ifdef HAVE_LIBREMIX 6#ifdef HAVE_LIBREMIX
7EAPI RemixBase * 7EAPI RemixBase *
8multisense_sound_player_get(Edje_Multisense_Env *msenv) 8multisense_sound_player_get(Edje_Multisense_Env *msenv)
9{ 9{
10 RemixEnv *env = msenv->remixenv; 10 RemixEnv *env = msenv->remixenv;
11 RemixPlugin *player_plugin; 11 RemixPlugin *player_plugin;
12 RemixBase *player; 12 RemixBase *player;
13 13
14 player_plugin = remix_find_plugin(env, "alsa_snd_player"); 14 player_plugin = remix_find_plugin(env, "alsa_snd_player");
15 if (!player_plugin) 15 if (!player_plugin)
16 { 16 {
17 WRN("ALSA player_plugin init fail\n"); 17 WRN("ALSA player_plugin init fail\n");
18 return remix_monitor_new(env); 18 return remix_monitor_new(env);
19 } 19 }
20 player = remix_new(env, player_plugin, NULL); 20 player = remix_new(env, player_plugin, NULL);
21 return player; 21 return player;
22} 22}
23#endif 23#endif
24 24
25EAPI Eina_Bool 25EAPI Eina_Bool
26multisense_factory_init(Edje_Multisense_Env *env) 26multisense_factory_init(Edje_Multisense_Env *env __UNUSED__)
27{ 27{
28#ifdef HAVE_LIBREMIX 28#ifdef HAVE_LIBREMIX
29 remix_set_samplerate(env->remixenv, DEFAULT_SAMPLERATE); 29 remix_set_samplerate(env->remixenv, DEFAULT_SAMPLERATE);
30 remix_set_channels(env->remixenv, REMIX_STEREO); 30 remix_set_channels(env->remixenv, REMIX_STEREO);
31#endif 31#endif
32 return EINA_TRUE; 32 return EINA_TRUE;
33} 33}
diff --git a/libraries/edje/src/tests/Makefile.in b/libraries/edje/src/tests/Makefile.in
index f610548..ff5193e 100644
--- a/libraries/edje/src/tests/Makefile.in
+++ b/libraries/edje/src/tests/Makefile.in
@@ -189,8 +189,6 @@ PACKAGE_URL = @PACKAGE_URL@
189PACKAGE_VERSION = @PACKAGE_VERSION@ 189PACKAGE_VERSION = @PACKAGE_VERSION@
190PATH_SEPARATOR = @PATH_SEPARATOR@ 190PATH_SEPARATOR = @PATH_SEPARATOR@
191PKG_CONFIG = @PKG_CONFIG@ 191PKG_CONFIG = @PKG_CONFIG@
192PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
193PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
194PYTHON = @PYTHON@ 192PYTHON = @PYTHON@
195PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ 193PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
196PYTHON_PLATFORM = @PYTHON_PLATFORM@ 194PYTHON_PLATFORM = @PYTHON_PLATFORM@
diff --git a/libraries/edje/utils/Makefile.in b/libraries/edje/utils/Makefile.in
index 4c05fe5..4df8fbd 100644
--- a/libraries/edje/utils/Makefile.in
+++ b/libraries/edje/utils/Makefile.in
@@ -177,8 +177,6 @@ PACKAGE_URL = @PACKAGE_URL@
177PACKAGE_VERSION = @PACKAGE_VERSION@ 177PACKAGE_VERSION = @PACKAGE_VERSION@
178PATH_SEPARATOR = @PATH_SEPARATOR@ 178PATH_SEPARATOR = @PATH_SEPARATOR@
179PKG_CONFIG = @PKG_CONFIG@ 179PKG_CONFIG = @PKG_CONFIG@
180PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
181PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
182PYTHON = @PYTHON@ 180PYTHON = @PYTHON@
183PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ 181PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
184PYTHON_PLATFORM = @PYTHON_PLATFORM@ 182PYTHON_PLATFORM = @PYTHON_PLATFORM@
diff --git a/libraries/eet/ChangeLog b/libraries/eet/ChangeLog
index 0b3c5fb..795d102 100644
--- a/libraries/eet/ChangeLog
+++ b/libraries/eet/ChangeLog
@@ -107,7 +107,7 @@
107 107
1082008-09-25 Carsten Haitzler (The Rasterman) 1082008-09-25 Carsten Haitzler (The Rasterman)
109 109
110 1.1.0 release 110 1.5.0 release
111 111
1122008-10-20 Cedric BAIL 1122008-10-20 Cedric BAIL
113 113
@@ -546,3 +546,22 @@
546 * JPEG encode and decode in eet now uses ISLOW (not IFAST) due to 546 * JPEG encode and decode in eet now uses ISLOW (not IFAST) due to
547 noticable quality losses in the chase for speed. It will use 547 noticable quality losses in the chase for speed. It will use
548 IFAST for quality less than 60 when encoding 548 IFAST for quality less than 60 when encoding
549
5502011-12-02 Carsten Haitzler (The Rasterman)
551
552 1.1.0 release
553
5542011-12-02 Mike Blumenkrantz
555
556 * added eet_file_get to return the filename of an Eet_File
557 * Eet_File filenames are now stringshared
558 * added mempool allocators
559
5602011-12-29 Carsten Haitzler (The Rasterman)
561
562 * increase eet_connection packet size to 1Mb - more reasonable.
563
5642012-01-07 Boris Faure (billiob)
565
566 * make eet tool write to standard output if no output file given.
567
diff --git a/libraries/eet/Makefile.am b/libraries/eet/Makefile.am
index bc6e99a..34a5762 100644
--- a/libraries/eet/Makefile.am
+++ b/libraries/eet/Makefile.am
@@ -49,7 +49,7 @@ pkgconfig_DATA = eet.pc
49 49
50doc: 50doc:
51 @echo "entering doc/" 51 @echo "entering doc/"
52 make -C doc doc 52 $(MAKE) -C doc doc
53 53
54# Unit tests 54# Unit tests
55 55
@@ -83,9 +83,9 @@ lcov-report:
83 @genhtml -t "$(PACKAGE_STRING)" -o coverage coverage/coverage.info 83 @genhtml -t "$(PACKAGE_STRING)" -o coverage coverage/coverage.info
84 84
85coverage: 85coverage:
86 @make lcov-reset 86 @$(MAKE) lcov-reset
87 @make check 87 @$(MAKE) check
88 @make lcov-report 88 @$(MAKE) lcov-report
89 89
90clean-local: 90clean-local:
91 @rm -rf coverage 91 @rm -rf coverage
diff --git a/libraries/eet/Makefile.in b/libraries/eet/Makefile.in
index 4daff0f..b865027 100644
--- a/libraries/eet/Makefile.in
+++ b/libraries/eet/Makefile.in
@@ -223,8 +223,6 @@ PACKAGE_URL = @PACKAGE_URL@
223PACKAGE_VERSION = @PACKAGE_VERSION@ 223PACKAGE_VERSION = @PACKAGE_VERSION@
224PATH_SEPARATOR = @PATH_SEPARATOR@ 224PATH_SEPARATOR = @PATH_SEPARATOR@
225PKG_CONFIG = @PKG_CONFIG@ 225PKG_CONFIG = @PKG_CONFIG@
226PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
227PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
228RANLIB = @RANLIB@ 226RANLIB = @RANLIB@
229SED = @SED@ 227SED = @SED@
230SET_MAKE = @SET_MAKE@ 228SET_MAKE = @SET_MAKE@
@@ -867,7 +865,7 @@ uninstall-am: uninstall-pkgconfigDATA
867 865
868doc: 866doc:
869 @echo "entering doc/" 867 @echo "entering doc/"
870 make -C doc doc 868 $(MAKE) -C doc doc
871 869
872# Unit tests 870# Unit tests
873 871
@@ -894,9 +892,9 @@ doc:
894@EFL_ENABLE_COVERAGE_TRUE@ @genhtml -t "$(PACKAGE_STRING)" -o coverage coverage/coverage.info 892@EFL_ENABLE_COVERAGE_TRUE@ @genhtml -t "$(PACKAGE_STRING)" -o coverage coverage/coverage.info
895 893
896@EFL_ENABLE_COVERAGE_TRUE@coverage: 894@EFL_ENABLE_COVERAGE_TRUE@coverage:
897@EFL_ENABLE_COVERAGE_TRUE@ @make lcov-reset 895@EFL_ENABLE_COVERAGE_TRUE@ @$(MAKE) lcov-reset
898@EFL_ENABLE_COVERAGE_TRUE@ @make check 896@EFL_ENABLE_COVERAGE_TRUE@ @$(MAKE) check
899@EFL_ENABLE_COVERAGE_TRUE@ @make lcov-report 897@EFL_ENABLE_COVERAGE_TRUE@ @$(MAKE) lcov-report
900 898
901@EFL_ENABLE_COVERAGE_TRUE@clean-local: 899@EFL_ENABLE_COVERAGE_TRUE@clean-local:
902@EFL_ENABLE_COVERAGE_TRUE@ @rm -rf coverage 900@EFL_ENABLE_COVERAGE_TRUE@ @rm -rf coverage
diff --git a/libraries/eet/NEWS b/libraries/eet/NEWS
index 43118b0..cccda15 100644
--- a/libraries/eet/NEWS
+++ b/libraries/eet/NEWS
@@ -1,3 +1,15 @@
1Eet 1.6.0
2
3Changes since Eet 1.5.0:
4--------------------------
5
6Additions:
7 * eet_file_get to return filenames of Eet_Files
8
9Improvements:
10
11 * most allocations moved to mempools
12
1Eet 1.5.0 13Eet 1.5.0
2 14
3Changes since Eet 1.4.0: 15Changes since Eet 1.4.0:
diff --git a/libraries/eet/aclocal.m4 b/libraries/eet/aclocal.m4
index 1d329e5..6d7b012 100644
--- a/libraries/eet/aclocal.m4
+++ b/libraries/eet/aclocal.m4
@@ -13,14 +13,13 @@
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.67],, 16m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.65],,
17[m4_warning([this file was generated for autoconf 2.67. 17[m4_warning([this file was generated for autoconf 2.65.
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)
24# 23#
25# Copyright © 2004 Scott James Remnant <scott@netsplit.com>. 24# Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
26# 25#
@@ -48,10 +47,7 @@ To do so, use the procedure documented by the package, typically `autoreconf'.])
48AC_DEFUN([PKG_PROG_PKG_CONFIG], 47AC_DEFUN([PKG_PROG_PKG_CONFIG],
49[m4_pattern_forbid([^_?PKG_[A-Z_]+$]) 48[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
50m4_pattern_allow([^PKG_CONFIG(_PATH)?$]) 49m4_pattern_allow([^PKG_CONFIG(_PATH)?$])
51AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) 50AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl
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
55if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then 51if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
56 AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) 52 AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
57fi 53fi
@@ -64,6 +60,7 @@ if test -n "$PKG_CONFIG"; then
64 AC_MSG_RESULT([no]) 60 AC_MSG_RESULT([no])
65 PKG_CONFIG="" 61 PKG_CONFIG=""
66 fi 62 fi
63
67fi[]dnl 64fi[]dnl
68])# PKG_PROG_PKG_CONFIG 65])# PKG_PROG_PKG_CONFIG
69 66
@@ -72,31 +69,34 @@ fi[]dnl
72# Check to see whether a particular set of modules exists. Similar 69# Check to see whether a particular set of modules exists. Similar
73# to PKG_CHECK_MODULES(), but does not set variables or print errors. 70# to PKG_CHECK_MODULES(), but does not set variables or print errors.
74# 71#
75# Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) 72#
76# only at the first occurence in configure.ac, so if the first place 73# Similar to PKG_CHECK_MODULES, make sure that the first instance of
77# it's called might be skipped (such as if it is within an "if", you 74# this or PKG_CHECK_MODULES is called, or make sure to call
78# have to call PKG_CHECK_EXISTS manually 75# PKG_CHECK_EXISTS manually
79# -------------------------------------------------------------- 76# --------------------------------------------------------------
80AC_DEFUN([PKG_CHECK_EXISTS], 77AC_DEFUN([PKG_CHECK_EXISTS],
81[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl 78[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
82if test -n "$PKG_CONFIG" && \ 79if test -n "$PKG_CONFIG" && \
83 AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then 80 AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
84 m4_default([$2], [:]) 81 m4_ifval([$2], [$2], [:])
85m4_ifvaln([$3], [else 82m4_ifvaln([$3], [else
86 $3])dnl 83 $3])dnl
87fi]) 84fi])
88 85
86
89# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) 87# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
90# --------------------------------------------- 88# ---------------------------------------------
91m4_define([_PKG_CONFIG], 89m4_define([_PKG_CONFIG],
92[if test -n "$$1"; then 90[if test -n "$PKG_CONFIG"; then
93 pkg_cv_[]$1="$$1" 91 if test -n "$$1"; then
94 elif test -n "$PKG_CONFIG"; then 92 pkg_cv_[]$1="$$1"
95 PKG_CHECK_EXISTS([$3], 93 else
96 [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`], 94 PKG_CHECK_EXISTS([$3],
97 [pkg_failed=yes]) 95 [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`],
98 else 96 [pkg_failed=yes])
99 pkg_failed=untried 97 fi
98else
99 pkg_failed=untried
100fi[]dnl 100fi[]dnl
101])# _PKG_CONFIG 101])# _PKG_CONFIG
102 102
@@ -138,17 +138,16 @@ 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])
142 _PKG_SHORT_ERRORS_SUPPORTED 141 _PKG_SHORT_ERRORS_SUPPORTED
143 if test $_pkg_short_errors_supported = yes; then 142 if test $_pkg_short_errors_supported = yes; then
144 $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1` 143 $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$2"`
145 else 144 else
146 $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1` 145 $1[]_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"`
147 fi 146 fi
148 # Put the nasty error message in config.log where it belongs 147 # Put the nasty error message in config.log where it belongs
149 echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD 148 echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
150 149
151 m4_default([$4], [AC_MSG_ERROR( 150 ifelse([$4], , [AC_MSG_ERROR(dnl
152[Package requirements ($2) were not met: 151[Package requirements ($2) were not met:
153 152
154$$1_PKG_ERRORS 153$$1_PKG_ERRORS
@@ -156,24 +155,25 @@ $$1_PKG_ERRORS
156Consider adjusting the PKG_CONFIG_PATH environment variable if you 155Consider adjusting the PKG_CONFIG_PATH environment variable if you
157installed software in a non-standard prefix. 156installed software in a non-standard prefix.
158 157
159_PKG_TEXT])[]dnl 158_PKG_TEXT
160 ]) 159])],
160 [AC_MSG_RESULT([no])
161 $4])
161elif test $pkg_failed = untried; then 162elif test $pkg_failed = untried; then
162 AC_MSG_RESULT([no]) 163 ifelse([$4], , [AC_MSG_FAILURE(dnl
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/>.])[]dnl 170To get pkg-config, see <http://pkg-config.freedesktop.org/>.])],
171 ]) 171 [$4])
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 $3 176 ifelse([$3], , :, [$3])
177fi[]dnl 177fi[]dnl
178])# PKG_CHECK_MODULES 178])# PKG_CHECK_MODULES
179 179
diff --git a/libraries/eet/config.guess b/libraries/eet/config.guess
index c2246a4..e3a2116 100755
--- a/libraries/eet/config.guess
+++ b/libraries/eet/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, 2010 4# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
5# Free Software Foundation, Inc. 5# Free Software Foundation, Inc.
6 6
7timestamp='2009-12-30' 7timestamp='2009-06-10'
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-12-30'
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. Please send patches (context 30# Originally written by Per Bothner <per@bothner.com>.
31# diff format) to <config-patches@gnu.org> and include a ChangeLog 31# Please send patches to <config-patches@gnu.org>. Submit a context
32# entry. 32# diff and a properly formatted ChangeLog 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# You can get the latest version of this script from: 38# The plan is that this can be called by configure scripts if you
39# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD 39# don't specify an explicit build system type.
40 40
41me=`echo "$0" | sed -e 's,.*/,,'` 41me=`echo "$0" | sed -e 's,.*/,,'`
42 42
@@ -56,9 +56,8 @@ 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, 59Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
602001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free 602002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
61Software Foundation, Inc.
62 61
63This is free software; see the source for copying conditions. There is NO 62This is free software; see the source for copying conditions. There is NO
64warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." 63warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -334,9 +333,6 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
334 sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) 333 sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
335 echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` 334 echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
336 exit ;; 335 exit ;;
337 i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
338 echo i386-pc-auroraux${UNAME_RELEASE}
339 exit ;;
340 i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) 336 i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
341 eval $set_cc_for_build 337 eval $set_cc_for_build
342 SUN_ARCH="i386" 338 SUN_ARCH="i386"
@@ -811,12 +807,12 @@ EOF
811 i*:PW*:*) 807 i*:PW*:*)
812 echo ${UNAME_MACHINE}-pc-pw32 808 echo ${UNAME_MACHINE}-pc-pw32
813 exit ;; 809 exit ;;
814 *:Interix*:*) 810 *:Interix*:[3456]*)
815 case ${UNAME_MACHINE} in 811 case ${UNAME_MACHINE} in
816 x86) 812 x86)
817 echo i586-pc-interix${UNAME_RELEASE} 813 echo i586-pc-interix${UNAME_RELEASE}
818 exit ;; 814 exit ;;
819 authenticamd | genuineintel | EM64T) 815 EM64T | authenticamd | genuineintel)
820 echo x86_64-unknown-interix${UNAME_RELEASE} 816 echo x86_64-unknown-interix${UNAME_RELEASE}
821 exit ;; 817 exit ;;
822 IA64) 818 IA64)
@@ -858,20 +854,6 @@ EOF
858 i*86:Minix:*:*) 854 i*86:Minix:*:*)
859 echo ${UNAME_MACHINE}-pc-minix 855 echo ${UNAME_MACHINE}-pc-minix
860 exit ;; 856 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 ;;
875 arm*:Linux:*:*) 857 arm*:Linux:*:*)
876 eval $set_cc_for_build 858 eval $set_cc_for_build
877 if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ 859 if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
@@ -894,17 +876,6 @@ EOF
894 frv:Linux:*:*) 876 frv:Linux:*:*)
895 echo frv-unknown-linux-gnu 877 echo frv-unknown-linux-gnu
896 exit ;; 878 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 ;;
908 ia64:Linux:*:*) 879 ia64:Linux:*:*)
909 echo ${UNAME_MACHINE}-unknown-linux-gnu 880 echo ${UNAME_MACHINE}-unknown-linux-gnu
910 exit ;; 881 exit ;;
@@ -930,18 +901,39 @@ EOF
930 #endif 901 #endif
931 #endif 902 #endif
932EOF 903EOF
933 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` 904 eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
905 /^CPU/{
906 s: ::g
907 p
908 }'`"
934 test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } 909 test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
935 ;; 910 ;;
936 or32:Linux:*:*) 911 or32:Linux:*:*)
937 echo or32-unknown-linux-gnu 912 echo or32-unknown-linux-gnu
938 exit ;; 913 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 ;;
939 padre:Linux:*:*) 934 padre:Linux:*:*)
940 echo sparc-unknown-linux-gnu 935 echo sparc-unknown-linux-gnu
941 exit ;; 936 exit ;;
942 parisc64:Linux:*:* | hppa64:Linux:*:*)
943 echo hppa64-unknown-linux-gnu
944 exit ;;
945 parisc:Linux:*:* | hppa:Linux:*:*) 937 parisc:Linux:*:* | hppa:Linux:*:*)
946 # Look for CPU level 938 # Look for CPU level
947 case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in 939 case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
@@ -950,11 +942,8 @@ EOF
950 *) echo hppa-unknown-linux-gnu ;; 942 *) echo hppa-unknown-linux-gnu ;;
951 esac 943 esac
952 exit ;; 944 exit ;;
953 ppc64:Linux:*:*) 945 parisc64:Linux:*:* | hppa64:Linux:*:*)
954 echo powerpc64-unknown-linux-gnu 946 echo hppa64-unknown-linux-gnu
955 exit ;;
956 ppc:Linux:*:*)
957 echo powerpc-unknown-linux-gnu
958 exit ;; 947 exit ;;
959 s390:Linux:*:* | s390x:Linux:*:*) 948 s390:Linux:*:* | s390x:Linux:*:*)
960 echo ${UNAME_MACHINE}-ibm-linux 949 echo ${UNAME_MACHINE}-ibm-linux
@@ -977,6 +966,58 @@ EOF
977 xtensa*:Linux:*:*) 966 xtensa*:Linux:*:*)
978 echo ${UNAME_MACHINE}-unknown-linux-gnu 967 echo ${UNAME_MACHINE}-unknown-linux-gnu
979 exit ;; 968 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 ;;
980 i*86:DYNIX/ptx:4*:*) 1021 i*86:DYNIX/ptx:4*:*)
981 # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. 1022 # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
982 # earlier versions are messed up and put the nodename in both 1023 # earlier versions are messed up and put the nodename in both
@@ -1206,16 +1247,6 @@ EOF
1206 *:Darwin:*:*) 1247 *:Darwin:*:*)
1207 UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown 1248 UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
1208 case $UNAME_PROCESSOR in 1249 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 ;;
1219 unknown) UNAME_PROCESSOR=powerpc ;; 1250 unknown) UNAME_PROCESSOR=powerpc ;;
1220 esac 1251 esac
1221 echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} 1252 echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
diff --git a/libraries/eet/config.sub b/libraries/eet/config.sub
index c2d1257..eb0389a 100755
--- a/libraries/eet/config.sub
+++ b/libraries/eet/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, 2010 4# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
5# Free Software Foundation, Inc. 5# Free Software Foundation, Inc.
6 6
7timestamp='2010-01-22' 7timestamp='2009-06-11'
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,16 +32,13 @@ timestamp='2010-01-22'
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 GNU ChangeLog entry. 35# diff and a properly formatted 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
45# This file is supposed to be the same for all GNU packages 42# This file is supposed to be the same for all GNU packages
46# and recognize all the CPU types, system types and aliases 43# and recognize all the CPU types, system types and aliases
47# that are meaningful with *any* GNU software. 44# that are meaningful with *any* GNU software.
@@ -75,9 +72,8 @@ Report bugs and patches to <config-patches@gnu.org>."
75version="\ 72version="\
76GNU config.sub ($timestamp) 73GNU config.sub ($timestamp)
77 74
78Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 75Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
792001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free 762002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
80Software Foundation, Inc.
81 77
82This is free software; see the source for copying conditions. There is NO 78This is free software; see the source for copying conditions. There is NO
83warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." 79warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -153,7 +149,7 @@ case $os in
153 -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ 149 -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
154 -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ 150 -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
155 -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ 151 -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
156 -apple | -axis | -knuth | -cray | -microblaze) 152 -apple | -axis | -knuth | -cray)
157 os= 153 os=
158 basic_machine=$1 154 basic_machine=$1
159 ;; 155 ;;
@@ -288,7 +284,6 @@ case $basic_machine in
288 | pdp10 | pdp11 | pj | pjl \ 284 | pdp10 | pdp11 | pj | pjl \
289 | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ 285 | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
290 | pyramid \ 286 | pyramid \
291 | rx \
292 | score \ 287 | score \
293 | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ 288 | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
294 | sh64 | sh64le \ 289 | sh64 | sh64le \
@@ -296,14 +291,13 @@ case $basic_machine in
296 | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ 291 | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
297 | spu | strongarm \ 292 | spu | strongarm \
298 | tahoe | thumb | tic4x | tic80 | tron \ 293 | tahoe | thumb | tic4x | tic80 | tron \
299 | ubicom32 \
300 | v850 | v850e \ 294 | v850 | v850e \
301 | we32k \ 295 | we32k \
302 | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ 296 | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
303 | z8k | z80) 297 | z8k | z80)
304 basic_machine=$basic_machine-unknown 298 basic_machine=$basic_machine-unknown
305 ;; 299 ;;
306 m6811 | m68hc11 | m6812 | m68hc12 | picochip) 300 m6811 | m68hc11 | m6812 | m68hc12)
307 # Motorola 68HC11/12. 301 # Motorola 68HC11/12.
308 basic_machine=$basic_machine-unknown 302 basic_machine=$basic_machine-unknown
309 os=-none 303 os=-none
@@ -346,7 +340,7 @@ case $basic_machine in
346 | lm32-* \ 340 | lm32-* \
347 | m32c-* | m32r-* | m32rle-* \ 341 | m32c-* | m32r-* | m32rle-* \
348 | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ 342 | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
349 | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \ 343 | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
350 | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ 344 | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
351 | mips16-* \ 345 | mips16-* \
352 | mips64-* | mips64el-* \ 346 | mips64-* | mips64el-* \
@@ -374,17 +368,15 @@ case $basic_machine in
374 | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ 368 | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
375 | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ 369 | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
376 | pyramid-* \ 370 | pyramid-* \
377 | romp-* | rs6000-* | rx-* \ 371 | romp-* | rs6000-* \
378 | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ 372 | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
379 | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ 373 | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
380 | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ 374 | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
381 | sparclite-* \ 375 | sparclite-* \
382 | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ 376 | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
383 | tahoe-* | thumb-* \ 377 | tahoe-* | thumb-* \
384 | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ 378 | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \
385 | tile-* | tilegx-* \
386 | tron-* \ 379 | tron-* \
387 | ubicom32-* \
388 | v850-* | v850e-* | vax-* \ 380 | v850-* | v850e-* | vax-* \
389 | we32k-* \ 381 | we32k-* \
390 | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ 382 | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
@@ -734,9 +726,6 @@ case $basic_machine in
734 basic_machine=ns32k-utek 726 basic_machine=ns32k-utek
735 os=-sysv 727 os=-sysv
736 ;; 728 ;;
737 microblaze)
738 basic_machine=microblaze-xilinx
739 ;;
740 mingw32) 729 mingw32)
741 basic_machine=i386-pc 730 basic_machine=i386-pc
742 os=-mingw32 731 os=-mingw32
@@ -1087,11 +1076,6 @@ case $basic_machine in
1087 basic_machine=tic6x-unknown 1076 basic_machine=tic6x-unknown
1088 os=-coff 1077 os=-coff
1089 ;; 1078 ;;
1090 # This must be matched before tile*.
1091 tilegx*)
1092 basic_machine=tilegx-unknown
1093 os=-linux-gnu
1094 ;;
1095 tile*) 1079 tile*)
1096 basic_machine=tile-unknown 1080 basic_machine=tile-unknown
1097 os=-linux-gnu 1081 os=-linux-gnu
@@ -1263,9 +1247,6 @@ case $os in
1263 # First match some system type aliases 1247 # First match some system type aliases
1264 # that might get confused with valid system types. 1248 # that might get confused with valid system types.
1265 # -solaris* is a basic system type, with this one exception. 1249 # -solaris* is a basic system type, with this one exception.
1266 -auroraux)
1267 os=-auroraux
1268 ;;
1269 -solaris1 | -solaris1.*) 1250 -solaris1 | -solaris1.*)
1270 os=`echo $os | sed -e 's|solaris1|sunos4|'` 1251 os=`echo $os | sed -e 's|solaris1|sunos4|'`
1271 ;; 1252 ;;
@@ -1287,8 +1268,8 @@ case $os in
1287 # -sysv* is not here because it comes later, after sysvr4. 1268 # -sysv* is not here because it comes later, after sysvr4.
1288 -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ 1269 -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
1289 | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ 1270 | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
1290 | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ 1271 | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
1291 | -sym* | -kopensolaris* \ 1272 | -kopensolaris* \
1292 | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ 1273 | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
1293 | -aos* | -aros* \ 1274 | -aos* | -aros* \
1294 | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ 1275 | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
@@ -1309,7 +1290,7 @@ case $os in
1309 | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ 1290 | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
1310 | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ 1291 | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
1311 | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ 1292 | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
1312 | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) 1293 | -skyos* | -haiku* | -rdos* | -toppers* | -drops*)
1313 # Remember, each alternative MUST END IN *, to match a version number. 1294 # Remember, each alternative MUST END IN *, to match a version number.
1314 ;; 1295 ;;
1315 -qnx*) 1296 -qnx*)
@@ -1442,8 +1423,6 @@ case $os in
1442 -dicos*) 1423 -dicos*)
1443 os=-dicos 1424 os=-dicos
1444 ;; 1425 ;;
1445 -nacl*)
1446 ;;
1447 -none) 1426 -none)
1448 ;; 1427 ;;
1449 *) 1428 *)
diff --git a/libraries/eet/configure b/libraries/eet/configure
index a3dddde..b02c1c4 100755
--- a/libraries/eet/configure
+++ b/libraries/eet/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.67 for eet 1.5.0. 3# Generated by GNU Autoconf 2.65 for eet 1.5.99.67344.
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, 2010 Free Software 9# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
10# Foundation, Inc. 10# 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 STATUS ERROR [LINENO LOG_FD] 362# as_fn_error 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=$1; test $as_status -eq 0 && as_status=1 369 as_status=$?; test $as_status -eq 0 && as_status=1
370 if test "$4"; then 370 if test "$3"; then
371 as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 371 as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
372 $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 372 $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
373 fi 373 fi
374 $as_echo "$as_me: error: $2" >&2 374 $as_echo "$as_me: error: $1" >&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, old GNU/Linux) returns a bogus exit status, 685# hostname on some systems (SVR3.2, 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='eet' 702PACKAGE_NAME='eet'
703PACKAGE_TARNAME='eet' 703PACKAGE_TARNAME='eet'
704PACKAGE_VERSION='1.5.0' 704PACKAGE_VERSION='1.5.99.67344'
705PACKAGE_STRING='eet 1.5.0' 705PACKAGE_STRING='eet 1.5.99.67344'
706PACKAGE_BUGREPORT='enlightenment-devel@lists.sourceforge.net' 706PACKAGE_BUGREPORT='enlightenment-devel@lists.sourceforge.net'
707PACKAGE_URL='' 707PACKAGE_URL=''
708 708
@@ -781,8 +781,6 @@ EFL_ENABLE_TESTS_FALSE
781EFL_ENABLE_TESTS_TRUE 781EFL_ENABLE_TESTS_TRUE
782CHECK_LIBS 782CHECK_LIBS
783CHECK_CFLAGS 783CHECK_CFLAGS
784PKG_CONFIG_LIBDIR
785PKG_CONFIG_PATH
786PKG_CONFIG 784PKG_CONFIG
787BUILD_EXAMPLES_FALSE 785BUILD_EXAMPLES_FALSE
788BUILD_EXAMPLES_TRUE 786BUILD_EXAMPLES_TRUE
@@ -944,8 +942,6 @@ LIBS
944CPPFLAGS 942CPPFLAGS
945CPP 943CPP
946PKG_CONFIG 944PKG_CONFIG
947PKG_CONFIG_PATH
948PKG_CONFIG_LIBDIR
949CHECK_CFLAGS 945CHECK_CFLAGS
950CHECK_LIBS 946CHECK_LIBS
951EVIL_CFLAGS 947EVIL_CFLAGS
@@ -1018,9 +1014,8 @@ do
1018 fi 1014 fi
1019 1015
1020 case $ac_option in 1016 case $ac_option in
1021 *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; 1017 *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
1022 *=) ac_optarg= ;; 1018 *) ac_optarg=yes ;;
1023 *) ac_optarg=yes ;;
1024 esac 1019 esac
1025 1020
1026 # Accept the important Cygnus configure options, so we can diagnose typos. 1021 # Accept the important Cygnus configure options, so we can diagnose typos.
@@ -1065,7 +1060,7 @@ do
1065 ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` 1060 ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
1066 # Reject names that are not valid shell variable names. 1061 # Reject names that are not valid shell variable names.
1067 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && 1062 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
1068 as_fn_error $? "invalid feature name: $ac_useropt" 1063 as_fn_error "invalid feature name: $ac_useropt"
1069 ac_useropt_orig=$ac_useropt 1064 ac_useropt_orig=$ac_useropt
1070 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` 1065 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
1071 case $ac_user_opts in 1066 case $ac_user_opts in
@@ -1091,7 +1086,7 @@ do
1091 ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` 1086 ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
1092 # Reject names that are not valid shell variable names. 1087 # Reject names that are not valid shell variable names.
1093 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && 1088 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
1094 as_fn_error $? "invalid feature name: $ac_useropt" 1089 as_fn_error "invalid feature name: $ac_useropt"
1095 ac_useropt_orig=$ac_useropt 1090 ac_useropt_orig=$ac_useropt
1096 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` 1091 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
1097 case $ac_user_opts in 1092 case $ac_user_opts in
@@ -1295,7 +1290,7 @@ do
1295 ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` 1290 ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
1296 # Reject names that are not valid shell variable names. 1291 # Reject names that are not valid shell variable names.
1297 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && 1292 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
1298 as_fn_error $? "invalid package name: $ac_useropt" 1293 as_fn_error "invalid package name: $ac_useropt"
1299 ac_useropt_orig=$ac_useropt 1294 ac_useropt_orig=$ac_useropt
1300 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` 1295 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
1301 case $ac_user_opts in 1296 case $ac_user_opts in
@@ -1311,7 +1306,7 @@ do
1311 ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` 1306 ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
1312 # Reject names that are not valid shell variable names. 1307 # Reject names that are not valid shell variable names.
1313 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && 1308 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
1314 as_fn_error $? "invalid package name: $ac_useropt" 1309 as_fn_error "invalid package name: $ac_useropt"
1315 ac_useropt_orig=$ac_useropt 1310 ac_useropt_orig=$ac_useropt
1316 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` 1311 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
1317 case $ac_user_opts in 1312 case $ac_user_opts in
@@ -1341,8 +1336,8 @@ do
1341 | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) 1336 | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
1342 x_libraries=$ac_optarg ;; 1337 x_libraries=$ac_optarg ;;
1343 1338
1344 -*) as_fn_error $? "unrecognized option: \`$ac_option' 1339 -*) as_fn_error "unrecognized option: \`$ac_option'
1345Try \`$0 --help' for more information" 1340Try \`$0 --help' for more information."
1346 ;; 1341 ;;
1347 1342
1348 *=*) 1343 *=*)
@@ -1350,7 +1345,7 @@ Try \`$0 --help' for more information"
1350 # Reject names that are not valid shell variable names. 1345 # Reject names that are not valid shell variable names.
1351 case $ac_envvar in #( 1346 case $ac_envvar in #(
1352 '' | [0-9]* | *[!_$as_cr_alnum]* ) 1347 '' | [0-9]* | *[!_$as_cr_alnum]* )
1353 as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; 1348 as_fn_error "invalid variable name: \`$ac_envvar'" ;;
1354 esac 1349 esac
1355 eval $ac_envvar=\$ac_optarg 1350 eval $ac_envvar=\$ac_optarg
1356 export $ac_envvar ;; 1351 export $ac_envvar ;;
@@ -1368,13 +1363,13 @@ done
1368 1363
1369if test -n "$ac_prev"; then 1364if test -n "$ac_prev"; then
1370 ac_option=--`echo $ac_prev | sed 's/_/-/g'` 1365 ac_option=--`echo $ac_prev | sed 's/_/-/g'`
1371 as_fn_error $? "missing argument to $ac_option" 1366 as_fn_error "missing argument to $ac_option"
1372fi 1367fi
1373 1368
1374if test -n "$ac_unrecognized_opts"; then 1369if test -n "$ac_unrecognized_opts"; then
1375 case $enable_option_checking in 1370 case $enable_option_checking in
1376 no) ;; 1371 no) ;;
1377 fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; 1372 fatal) as_fn_error "unrecognized options: $ac_unrecognized_opts" ;;
1378 *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; 1373 *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
1379 esac 1374 esac
1380fi 1375fi
@@ -1397,7 +1392,7 @@ do
1397 [\\/$]* | ?:[\\/]* ) continue;; 1392 [\\/$]* | ?:[\\/]* ) continue;;
1398 NONE | '' ) case $ac_var in *prefix ) continue;; esac;; 1393 NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
1399 esac 1394 esac
1400 as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" 1395 as_fn_error "expected an absolute directory name for --$ac_var: $ac_val"
1401done 1396done
1402 1397
1403# There might be people who depend on the old broken behavior: `$host' 1398# There might be people who depend on the old broken behavior: `$host'
@@ -1411,8 +1406,8 @@ target=$target_alias
1411if test "x$host_alias" != x; then 1406if test "x$host_alias" != x; then
1412 if test "x$build_alias" = x; then 1407 if test "x$build_alias" = x; then
1413 cross_compiling=maybe 1408 cross_compiling=maybe
1414 $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host. 1409 $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
1415 If a cross compiler is detected then cross compile mode will be used" >&2 1410 If a cross compiler is detected then cross compile mode will be used." >&2
1416 elif test "x$build_alias" != "x$host_alias"; then 1411 elif test "x$build_alias" != "x$host_alias"; then
1417 cross_compiling=yes 1412 cross_compiling=yes
1418 fi 1413 fi
@@ -1427,9 +1422,9 @@ test "$silent" = yes && exec 6>/dev/null
1427ac_pwd=`pwd` && test -n "$ac_pwd" && 1422ac_pwd=`pwd` && test -n "$ac_pwd" &&
1428ac_ls_di=`ls -di .` && 1423ac_ls_di=`ls -di .` &&
1429ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || 1424ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
1430 as_fn_error $? "working directory cannot be determined" 1425 as_fn_error "working directory cannot be determined"
1431test "X$ac_ls_di" = "X$ac_pwd_ls_di" || 1426test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
1432 as_fn_error $? "pwd does not report name of working directory" 1427 as_fn_error "pwd does not report name of working directory"
1433 1428
1434 1429
1435# Find the source files, if location was not specified. 1430# Find the source files, if location was not specified.
@@ -1468,11 +1463,11 @@ else
1468fi 1463fi
1469if test ! -r "$srcdir/$ac_unique_file"; then 1464if test ! -r "$srcdir/$ac_unique_file"; then
1470 test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." 1465 test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
1471 as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" 1466 as_fn_error "cannot find sources ($ac_unique_file) in $srcdir"
1472fi 1467fi
1473ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" 1468ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
1474ac_abs_confdir=`( 1469ac_abs_confdir=`(
1475 cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" 1470 cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error "$ac_msg"
1476 pwd)` 1471 pwd)`
1477# When building in place, set srcdir=. 1472# When building in place, set srcdir=.
1478if test "$ac_abs_confdir" = "$ac_pwd"; then 1473if test "$ac_abs_confdir" = "$ac_pwd"; then
@@ -1498,7 +1493,7 @@ if test "$ac_init_help" = "long"; then
1498 # Omit some internal or obsolete options to make the list less imposing. 1493 # Omit some internal or obsolete options to make the list less imposing.
1499 # This message is too long to be a string in the A/UX 3.1 sh. 1494 # This message is too long to be a string in the A/UX 3.1 sh.
1500 cat <<_ACEOF 1495 cat <<_ACEOF
1501\`configure' configures eet 1.5.0 to adapt to many kinds of systems. 1496\`configure' configures eet 1.5.99.67344 to adapt to many kinds of systems.
1502 1497
1503Usage: $0 [OPTION]... [VAR=VALUE]... 1498Usage: $0 [OPTION]... [VAR=VALUE]...
1504 1499
@@ -1512,7 +1507,7 @@ Configuration:
1512 --help=short display options specific to this package 1507 --help=short display options specific to this package
1513 --help=recursive display the short help of all the included packages 1508 --help=recursive display the short help of all the included packages
1514 -V, --version display version information and exit 1509 -V, --version display version information and exit
1515 -q, --quiet, --silent do not print \`checking ...' messages 1510 -q, --quiet, --silent do not print \`checking...' messages
1516 --cache-file=FILE cache test results in FILE [disabled] 1511 --cache-file=FILE cache test results in FILE [disabled]
1517 -C, --config-cache alias for \`--cache-file=config.cache' 1512 -C, --config-cache alias for \`--cache-file=config.cache'
1518 -n, --no-create do not create output files 1513 -n, --no-create do not create output files
@@ -1568,7 +1563,7 @@ fi
1568 1563
1569if test -n "$ac_init_help"; then 1564if test -n "$ac_init_help"; then
1570 case $ac_init_help in 1565 case $ac_init_help in
1571 short | recursive ) echo "Configuration of eet 1.5.0:";; 1566 short | recursive ) echo "Configuration of eet 1.5.99.67344:";;
1572 esac 1567 esac
1573 cat <<\_ACEOF 1568 cat <<\_ACEOF
1574 1569
@@ -1628,10 +1623,6 @@ Some influential environment variables:
1628 you have headers in a nonstandard directory <include dir> 1623 you have headers in a nonstandard directory <include dir>
1629 CPP C preprocessor 1624 CPP C preprocessor
1630 PKG_CONFIG path to pkg-config utility 1625 PKG_CONFIG path to pkg-config utility
1631 PKG_CONFIG_PATH
1632 directories to add to pkg-config's search path
1633 PKG_CONFIG_LIBDIR
1634 path overriding pkg-config's built-in search path
1635 CHECK_CFLAGS 1626 CHECK_CFLAGS
1636 C compiler flags for CHECK, overriding pkg-config 1627 C compiler flags for CHECK, overriding pkg-config
1637 CHECK_LIBS linker flags for CHECK, overriding pkg-config 1628 CHECK_LIBS linker flags for CHECK, overriding pkg-config
@@ -1713,10 +1704,10 @@ fi
1713test -n "$ac_init_help" && exit $ac_status 1704test -n "$ac_init_help" && exit $ac_status
1714if $ac_init_version; then 1705if $ac_init_version; then
1715 cat <<\_ACEOF 1706 cat <<\_ACEOF
1716eet configure 1.5.0 1707eet configure 1.5.99.67344
1717generated by GNU Autoconf 2.67 1708generated by GNU Autoconf 2.65
1718 1709
1719Copyright (C) 2010 Free Software Foundation, Inc. 1710Copyright (C) 2009 Free Software Foundation, Inc.
1720This configure script is free software; the Free Software Foundation 1711This configure script is free software; the Free Software Foundation
1721gives unlimited permission to copy, distribute and modify it. 1712gives unlimited permission to copy, distribute and modify it.
1722_ACEOF 1713_ACEOF
@@ -1820,7 +1811,7 @@ ac_fn_c_check_header_compile ()
1820 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 1811 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
1821 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 1812 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
1822$as_echo_n "checking for $2... " >&6; } 1813$as_echo_n "checking for $2... " >&6; }
1823if eval "test \"\${$3+set}\"" = set; then : 1814if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
1824 $as_echo_n "(cached) " >&6 1815 $as_echo_n "(cached) " >&6
1825else 1816else
1826 cat confdefs.h - <<_ACEOF >conftest.$ac_ext 1817 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -1863,7 +1854,7 @@ $as_echo "$ac_try_echo"; } >&5
1863 mv -f conftest.er1 conftest.err 1854 mv -f conftest.er1 conftest.err
1864 fi 1855 fi
1865 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 1856 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
1866 test $ac_status = 0; } > conftest.i && { 1857 test $ac_status = 0; } >/dev/null && {
1867 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || 1858 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
1868 test ! -s conftest.err 1859 test ! -s conftest.err
1869 }; then : 1860 }; then :
@@ -1929,7 +1920,7 @@ ac_fn_c_check_func ()
1929 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 1920 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
1930 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 1921 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
1931$as_echo_n "checking for $2... " >&6; } 1922$as_echo_n "checking for $2... " >&6; }
1932if eval "test \"\${$3+set}\"" = set; then : 1923if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
1933 $as_echo_n "(cached) " >&6 1924 $as_echo_n "(cached) " >&6
1934else 1925else
1935 cat confdefs.h - <<_ACEOF >conftest.$ac_ext 1926 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -1996,10 +1987,10 @@ $as_echo "$ac_res" >&6; }
1996ac_fn_c_check_header_mongrel () 1987ac_fn_c_check_header_mongrel ()
1997{ 1988{
1998 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 1989 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
1999 if eval "test \"\${$3+set}\"" = set; then : 1990 if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
2000 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 1991 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
2001$as_echo_n "checking for $2... " >&6; } 1992$as_echo_n "checking for $2... " >&6; }
2002if eval "test \"\${$3+set}\"" = set; then : 1993if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
2003 $as_echo_n "(cached) " >&6 1994 $as_echo_n "(cached) " >&6
2004fi 1995fi
2005eval ac_res=\$$3 1996eval ac_res=\$$3
@@ -2035,7 +2026,7 @@ if ac_fn_c_try_cpp "$LINENO"; then :
2035else 2026else
2036 ac_header_preproc=no 2027 ac_header_preproc=no
2037fi 2028fi
2038rm -f conftest.err conftest.i conftest.$ac_ext 2029rm -f conftest.err conftest.$ac_ext
2039{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 2030{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
2040$as_echo "$ac_header_preproc" >&6; } 2031$as_echo "$ac_header_preproc" >&6; }
2041 2032
@@ -2058,15 +2049,17 @@ $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
2058$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} 2049$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;}
2059 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 2050 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
2060$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} 2051$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
2061( $as_echo "## -------------------------------------------------------- ## 2052( cat <<\_ASBOX
2053## -------------------------------------------------------- ##
2062## Report this to enlightenment-devel@lists.sourceforge.net ## 2054## Report this to enlightenment-devel@lists.sourceforge.net ##
2063## -------------------------------------------------------- ##" 2055## -------------------------------------------------------- ##
2056_ASBOX
2064 ) | sed "s/^/$as_me: WARNING: /" >&2 2057 ) | sed "s/^/$as_me: WARNING: /" >&2
2065 ;; 2058 ;;
2066esac 2059esac
2067 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 2060 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
2068$as_echo_n "checking for $2... " >&6; } 2061$as_echo_n "checking for $2... " >&6; }
2069if eval "test \"\${$3+set}\"" = set; then : 2062if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
2070 $as_echo_n "(cached) " >&6 2063 $as_echo_n "(cached) " >&6
2071else 2064else
2072 eval "$3=\$ac_header_compiler" 2065 eval "$3=\$ac_header_compiler"
@@ -2082,8 +2075,8 @@ cat >config.log <<_ACEOF
2082This file contains any messages produced by compilers while 2075This file contains any messages produced by compilers while
2083running configure, to aid debugging if configure makes a mistake. 2076running configure, to aid debugging if configure makes a mistake.
2084 2077
2085It was created by eet $as_me 1.5.0, which was 2078It was created by eet $as_me 1.5.99.67344, which was
2086generated by GNU Autoconf 2.67. Invocation command line was 2079generated by GNU Autoconf 2.65. Invocation command line was
2087 2080
2088 $ $0 $@ 2081 $ $0 $@
2089 2082
@@ -2193,9 +2186,11 @@ trap 'exit_status=$?
2193 { 2186 {
2194 echo 2187 echo
2195 2188
2196 $as_echo "## ---------------- ## 2189 cat <<\_ASBOX
2190## ---------------- ##
2197## Cache variables. ## 2191## Cache variables. ##
2198## ---------------- ##" 2192## ---------------- ##
2193_ASBOX
2199 echo 2194 echo
2200 # The following way of writing the cache mishandles newlines in values, 2195 # The following way of writing the cache mishandles newlines in values,
2201( 2196(
@@ -2229,9 +2224,11 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
2229) 2224)
2230 echo 2225 echo
2231 2226
2232 $as_echo "## ----------------- ## 2227 cat <<\_ASBOX
2228## ----------------- ##
2233## Output variables. ## 2229## Output variables. ##
2234## ----------------- ##" 2230## ----------------- ##
2231_ASBOX
2235 echo 2232 echo
2236 for ac_var in $ac_subst_vars 2233 for ac_var in $ac_subst_vars
2237 do 2234 do
@@ -2244,9 +2241,11 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
2244 echo 2241 echo
2245 2242
2246 if test -n "$ac_subst_files"; then 2243 if test -n "$ac_subst_files"; then
2247 $as_echo "## ------------------- ## 2244 cat <<\_ASBOX
2245## ------------------- ##
2248## File substitutions. ## 2246## File substitutions. ##
2249## ------------------- ##" 2247## ------------------- ##
2248_ASBOX
2250 echo 2249 echo
2251 for ac_var in $ac_subst_files 2250 for ac_var in $ac_subst_files
2252 do 2251 do
@@ -2260,9 +2259,11 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
2260 fi 2259 fi
2261 2260
2262 if test -s confdefs.h; then 2261 if test -s confdefs.h; then
2263 $as_echo "## ----------- ## 2262 cat <<\_ASBOX
2263## ----------- ##
2264## confdefs.h. ## 2264## confdefs.h. ##
2265## ----------- ##" 2265## ----------- ##
2266_ASBOX
2266 echo 2267 echo
2267 cat confdefs.h 2268 cat confdefs.h
2268 echo 2269 echo
@@ -2317,12 +2318,7 @@ _ACEOF
2317ac_site_file1=NONE 2318ac_site_file1=NONE
2318ac_site_file2=NONE 2319ac_site_file2=NONE
2319if test -n "$CONFIG_SITE"; then 2320if test -n "$CONFIG_SITE"; then
2320 # We do not want a PATH search for config.site. 2321 ac_site_file1=$CONFIG_SITE
2321 case $CONFIG_SITE in #((
2322 -*) ac_site_file1=./$CONFIG_SITE;;
2323 */*) ac_site_file1=$CONFIG_SITE;;
2324 *) ac_site_file1=./$CONFIG_SITE;;
2325 esac
2326elif test "x$prefix" != xNONE; then 2322elif test "x$prefix" != xNONE; then
2327 ac_site_file1=$prefix/share/config.site 2323 ac_site_file1=$prefix/share/config.site
2328 ac_site_file2=$prefix/etc/config.site 2324 ac_site_file2=$prefix/etc/config.site
@@ -2337,11 +2333,7 @@ do
2337 { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 2333 { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
2338$as_echo "$as_me: loading site script $ac_site_file" >&6;} 2334$as_echo "$as_me: loading site script $ac_site_file" >&6;}
2339 sed 's/^/| /' "$ac_site_file" >&5 2335 sed 's/^/| /' "$ac_site_file" >&5
2340 . "$ac_site_file" \ 2336 . "$ac_site_file"
2341 || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
2342$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
2343as_fn_error $? "failed to load site script $ac_site_file
2344See \`config.log' for more details" "$LINENO" 5 ; }
2345 fi 2337 fi
2346done 2338done
2347 2339
@@ -2417,7 +2409,7 @@ if $ac_cache_corrupted; then
2417$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 2409$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
2418 { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 2410 { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
2419$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} 2411$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
2420 as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 2412 as_fn_error "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
2421fi 2413fi
2422## -------------------- ## 2414## -------------------- ##
2423## Main body of script. ## 2415## Main body of script. ##
@@ -2443,22 +2435,16 @@ am__api_version='1.11'
2443 2435
2444ac_aux_dir= 2436ac_aux_dir=
2445for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do 2437for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
2446 if test -f "$ac_dir/install-sh"; then 2438 for ac_t in install-sh install.sh shtool; do
2447 ac_aux_dir=$ac_dir 2439 if test -f "$ac_dir/$ac_t"; then
2448 ac_install_sh="$ac_aux_dir/install-sh -c" 2440 ac_aux_dir=$ac_dir
2449 break 2441 ac_install_sh="$ac_aux_dir/$ac_t -c"
2450 elif test -f "$ac_dir/install.sh"; then 2442 break 2
2451 ac_aux_dir=$ac_dir 2443 fi
2452 ac_install_sh="$ac_aux_dir/install.sh -c" 2444 done
2453 break
2454 elif test -f "$ac_dir/shtool"; then
2455 ac_aux_dir=$ac_dir
2456 ac_install_sh="$ac_aux_dir/shtool install -c"
2457 break
2458 fi
2459done 2445done
2460if test -z "$ac_aux_dir"; then 2446if test -z "$ac_aux_dir"; then
2461 as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 2447 as_fn_error "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
2462fi 2448fi
2463 2449
2464# These three variables are undocumented and unsupported, 2450# These three variables are undocumented and unsupported,
@@ -2574,11 +2560,11 @@ am_lf='
2574' 2560'
2575case `pwd` in 2561case `pwd` in
2576 *[\\\"\#\$\&\'\`$am_lf]*) 2562 *[\\\"\#\$\&\'\`$am_lf]*)
2577 as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5 ;; 2563 as_fn_error "unsafe absolute working directory name" "$LINENO" 5;;
2578esac 2564esac
2579case $srcdir in 2565case $srcdir in
2580 *[\\\"\#\$\&\'\`$am_lf\ \ ]*) 2566 *[\\\"\#\$\&\'\`$am_lf\ \ ]*)
2581 as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5 ;; 2567 as_fn_error "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;;
2582esac 2568esac
2583 2569
2584# Do `set' in a subshell so we don't clobber the current shell's 2570# Do `set' in a subshell so we don't clobber the current shell's
@@ -2600,7 +2586,7 @@ if (
2600 # if, for instance, CONFIG_SHELL is bash and it inherits a 2586 # if, for instance, CONFIG_SHELL is bash and it inherits a
2601 # broken ls alias from the environment. This has actually 2587 # broken ls alias from the environment. This has actually
2602 # happened. Such a system could not be considered "sane". 2588 # happened. Such a system could not be considered "sane".
2603 as_fn_error $? "ls -t appears to fail. Make sure there is not a broken 2589 as_fn_error "ls -t appears to fail. Make sure there is not a broken
2604alias in your environment" "$LINENO" 5 2590alias in your environment" "$LINENO" 5
2605 fi 2591 fi
2606 2592
@@ -2610,7 +2596,7 @@ then
2610 # Ok. 2596 # Ok.
2611 : 2597 :
2612else 2598else
2613 as_fn_error $? "newly created file is older than distributed files! 2599 as_fn_error "newly created file is older than distributed files!
2614Check your system clock" "$LINENO" 5 2600Check your system clock" "$LINENO" 5
2615fi 2601fi
2616{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 2602{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
@@ -2848,7 +2834,7 @@ done
2848$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } 2834$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
2849set x ${MAKE-make} 2835set x ${MAKE-make}
2850ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` 2836ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
2851if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\"" = set; then : 2837if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then :
2852 $as_echo_n "(cached) " >&6 2838 $as_echo_n "(cached) " >&6
2853else 2839else
2854 cat >conftest.make <<\_ACEOF 2840 cat >conftest.make <<\_ACEOF
@@ -2856,7 +2842,7 @@ SHELL = /bin/sh
2856all: 2842all:
2857 @echo '@@@%%%=$(MAKE)=@@@%%%' 2843 @echo '@@@%%%=$(MAKE)=@@@%%%'
2858_ACEOF 2844_ACEOF
2859# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. 2845# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
2860case `${MAKE-make} -f conftest.make 2>/dev/null` in 2846case `${MAKE-make} -f conftest.make 2>/dev/null` in
2861 *@@@%%%=?*=@@@%%%*) 2847 *@@@%%%=?*=@@@%%%*)
2862 eval ac_cv_prog_make_${ac_make}_set=yes;; 2848 eval ac_cv_prog_make_${ac_make}_set=yes;;
@@ -2890,7 +2876,7 @@ if test "`cd $srcdir && pwd`" != "`pwd`"; then
2890 am__isrc=' -I$(srcdir)' 2876 am__isrc=' -I$(srcdir)'
2891 # test to see if srcdir already configured 2877 # test to see if srcdir already configured
2892 if test -f $srcdir/config.status; then 2878 if test -f $srcdir/config.status; then
2893 as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 2879 as_fn_error "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
2894 fi 2880 fi
2895fi 2881fi
2896 2882
@@ -2906,7 +2892,7 @@ fi
2906 2892
2907# Define the identity of the package. 2893# Define the identity of the package.
2908 PACKAGE='eet' 2894 PACKAGE='eet'
2909 VERSION='1.5.0' 2895 VERSION='1.5.99.67344'
2910 2896
2911 2897
2912cat >>confdefs.h <<_ACEOF 2898cat >>confdefs.h <<_ACEOF
@@ -2961,7 +2947,7 @@ AM_BACKSLASH='\'
2961 2947
2962# Make sure we can run config.sub. 2948# Make sure we can run config.sub.
2963$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || 2949$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
2964 as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 2950 as_fn_error "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
2965 2951
2966{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 2952{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
2967$as_echo_n "checking build system type... " >&6; } 2953$as_echo_n "checking build system type... " >&6; }
@@ -2972,16 +2958,16 @@ else
2972test "x$ac_build_alias" = x && 2958test "x$ac_build_alias" = x &&
2973 ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` 2959 ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
2974test "x$ac_build_alias" = x && 2960test "x$ac_build_alias" = x &&
2975 as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 2961 as_fn_error "cannot guess build type; you must specify one" "$LINENO" 5
2976ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || 2962ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
2977 as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 2963 as_fn_error "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
2978 2964
2979fi 2965fi
2980{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 2966{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
2981$as_echo "$ac_cv_build" >&6; } 2967$as_echo "$ac_cv_build" >&6; }
2982case $ac_cv_build in 2968case $ac_cv_build in
2983*-*-*) ;; 2969*-*-*) ;;
2984*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5 ;; 2970*) as_fn_error "invalid value of canonical build" "$LINENO" 5;;
2985esac 2971esac
2986build=$ac_cv_build 2972build=$ac_cv_build
2987ac_save_IFS=$IFS; IFS='-' 2973ac_save_IFS=$IFS; IFS='-'
@@ -3006,7 +2992,7 @@ else
3006 ac_cv_host=$ac_cv_build 2992 ac_cv_host=$ac_cv_build
3007else 2993else
3008 ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || 2994 ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
3009 as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 2995 as_fn_error "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
3010fi 2996fi
3011 2997
3012fi 2998fi
@@ -3014,7 +3000,7 @@ fi
3014$as_echo "$ac_cv_host" >&6; } 3000$as_echo "$ac_cv_host" >&6; }
3015case $ac_cv_host in 3001case $ac_cv_host in
3016*-*-*) ;; 3002*-*-*) ;;
3017*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5 ;; 3003*) as_fn_error "invalid value of canonical host" "$LINENO" 5;;
3018esac 3004esac
3019host=$ac_cv_host 3005host=$ac_cv_host
3020ac_save_IFS=$IFS; IFS='-' 3006ac_save_IFS=$IFS; IFS='-'
@@ -3720,8 +3706,8 @@ fi
3720 3706
3721test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 3707test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
3722$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 3708$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
3723as_fn_error $? "no acceptable C compiler found in \$PATH 3709as_fn_error "no acceptable C compiler found in \$PATH
3724See \`config.log' for more details" "$LINENO" 5 ; } 3710See \`config.log' for more details." "$LINENO" 5; }
3725 3711
3726# Provide some information about the compiler. 3712# Provide some information about the compiler.
3727$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 3713$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
@@ -3835,8 +3821,9 @@ sed 's/^/| /' conftest.$ac_ext >&5
3835 3821
3836{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 3822{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
3837$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 3823$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
3838as_fn_error 77 "C compiler cannot create executables 3824{ as_fn_set_status 77
3839See \`config.log' for more details" "$LINENO" 5 ; } 3825as_fn_error "C compiler cannot create executables
3826See \`config.log' for more details." "$LINENO" 5; }; }
3840else 3827else
3841 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 3828 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
3842$as_echo "yes" >&6; } 3829$as_echo "yes" >&6; }
@@ -3878,8 +3865,8 @@ done
3878else 3865else
3879 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 3866 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
3880$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 3867$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
3881as_fn_error $? "cannot compute suffix of executables: cannot compile and link 3868as_fn_error "cannot compute suffix of executables: cannot compile and link
3882See \`config.log' for more details" "$LINENO" 5 ; } 3869See \`config.log' for more details." "$LINENO" 5; }
3883fi 3870fi
3884rm -f conftest conftest$ac_cv_exeext 3871rm -f conftest conftest$ac_cv_exeext
3885{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 3872{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
@@ -3936,9 +3923,9 @@ $as_echo "$ac_try_echo"; } >&5
3936 else 3923 else
3937 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 3924 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
3938$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 3925$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
3939as_fn_error $? "cannot run C compiled programs. 3926as_fn_error "cannot run C compiled programs.
3940If you meant to cross compile, use \`--host'. 3927If you meant to cross compile, use \`--host'.
3941See \`config.log' for more details" "$LINENO" 5 ; } 3928See \`config.log' for more details." "$LINENO" 5; }
3942 fi 3929 fi
3943 fi 3930 fi
3944fi 3931fi
@@ -3989,8 +3976,8 @@ sed 's/^/| /' conftest.$ac_ext >&5
3989 3976
3990{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 3977{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
3991$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 3978$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
3992as_fn_error $? "cannot compute suffix of object files: cannot compile 3979as_fn_error "cannot compute suffix of object files: cannot compile
3993See \`config.log' for more details" "$LINENO" 5 ; } 3980See \`config.log' for more details." "$LINENO" 5; }
3994fi 3981fi
3995rm -f conftest.$ac_cv_objext conftest.$ac_ext 3982rm -f conftest.$ac_cv_objext conftest.$ac_ext
3996fi 3983fi
@@ -4394,7 +4381,7 @@ esac
4394 done 4381 done
4395IFS=$as_save_IFS 4382IFS=$as_save_IFS
4396 if test -z "$ac_cv_path_SED"; then 4383 if test -z "$ac_cv_path_SED"; then
4397 as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 4384 as_fn_error "no acceptable sed could be found in \$PATH" "$LINENO" 5
4398 fi 4385 fi
4399else 4386else
4400 ac_cv_path_SED=$SED 4387 ac_cv_path_SED=$SED
@@ -4470,7 +4457,7 @@ esac
4470 done 4457 done
4471IFS=$as_save_IFS 4458IFS=$as_save_IFS
4472 if test -z "$ac_cv_path_GREP"; then 4459 if test -z "$ac_cv_path_GREP"; then
4473 as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 4460 as_fn_error "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
4474 fi 4461 fi
4475else 4462else
4476 ac_cv_path_GREP=$GREP 4463 ac_cv_path_GREP=$GREP
@@ -4536,7 +4523,7 @@ esac
4536 done 4523 done
4537IFS=$as_save_IFS 4524IFS=$as_save_IFS
4538 if test -z "$ac_cv_path_EGREP"; then 4525 if test -z "$ac_cv_path_EGREP"; then
4539 as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 4526 as_fn_error "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
4540 fi 4527 fi
4541else 4528else
4542 ac_cv_path_EGREP=$EGREP 4529 ac_cv_path_EGREP=$EGREP
@@ -4603,7 +4590,7 @@ esac
4603 done 4590 done
4604IFS=$as_save_IFS 4591IFS=$as_save_IFS
4605 if test -z "$ac_cv_path_FGREP"; then 4592 if test -z "$ac_cv_path_FGREP"; then
4606 as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 4593 as_fn_error "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
4607 fi 4594 fi
4608else 4595else
4609 ac_cv_path_FGREP=$FGREP 4596 ac_cv_path_FGREP=$FGREP
@@ -4719,7 +4706,7 @@ else
4719 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 4706 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
4720$as_echo "no" >&6; } 4707$as_echo "no" >&6; }
4721fi 4708fi
4722test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 4709test -z "$LD" && as_fn_error "no acceptable ld found in \$PATH" "$LINENO" 5
4723{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 4710{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
4724$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } 4711$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
4725if test "${lt_cv_prog_gnu_ld+set}" = set; then : 4712if test "${lt_cv_prog_gnu_ld+set}" = set; then :
@@ -4921,13 +4908,13 @@ if test "${lt_cv_nm_interface+set}" = set; then :
4921else 4908else
4922 lt_cv_nm_interface="BSD nm" 4909 lt_cv_nm_interface="BSD nm"
4923 echo "int some_variable = 0;" > conftest.$ac_ext 4910 echo "int some_variable = 0;" > conftest.$ac_ext
4924 (eval echo "\"\$as_me:4924: $ac_compile\"" >&5) 4911 (eval echo "\"\$as_me:4911: $ac_compile\"" >&5)
4925 (eval "$ac_compile" 2>conftest.err) 4912 (eval "$ac_compile" 2>conftest.err)
4926 cat conftest.err >&5 4913 cat conftest.err >&5
4927 (eval echo "\"\$as_me:4927: $NM \\\"conftest.$ac_objext\\\"\"" >&5) 4914 (eval echo "\"\$as_me:4914: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
4928 (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) 4915 (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
4929 cat conftest.err >&5 4916 cat conftest.err >&5
4930 (eval echo "\"\$as_me:4930: output\"" >&5) 4917 (eval echo "\"\$as_me:4917: output\"" >&5)
4931 cat conftest.out >&5 4918 cat conftest.out >&5
4932 if $GREP 'External.*some_variable' conftest.out > /dev/null; then 4919 if $GREP 'External.*some_variable' conftest.out > /dev/null; then
4933 lt_cv_nm_interface="MS dumpbin" 4920 lt_cv_nm_interface="MS dumpbin"
@@ -6130,7 +6117,7 @@ ia64-*-hpux*)
6130 ;; 6117 ;;
6131*-*-irix6*) 6118*-*-irix6*)
6132 # Find out which ABI we are using. 6119 # Find out which ABI we are using.
6133 echo '#line 6133 "configure"' > conftest.$ac_ext 6120 echo '#line 6120 "configure"' > conftest.$ac_ext
6134 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 6121 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
6135 (eval $ac_compile) 2>&5 6122 (eval $ac_compile) 2>&5
6136 ac_status=$? 6123 ac_status=$?
@@ -6919,7 +6906,7 @@ else
6919 # Broken: fails on valid input. 6906 # Broken: fails on valid input.
6920continue 6907continue
6921fi 6908fi
6922rm -f conftest.err conftest.i conftest.$ac_ext 6909rm -f conftest.err conftest.$ac_ext
6923 6910
6924 # OK, works on sane cases. Now check whether nonexistent headers 6911 # OK, works on sane cases. Now check whether nonexistent headers
6925 # can be detected and how. 6912 # can be detected and how.
@@ -6935,11 +6922,11 @@ else
6935ac_preproc_ok=: 6922ac_preproc_ok=:
6936break 6923break
6937fi 6924fi
6938rm -f conftest.err conftest.i conftest.$ac_ext 6925rm -f conftest.err conftest.$ac_ext
6939 6926
6940done 6927done
6941# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. 6928# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
6942rm -f conftest.i conftest.err conftest.$ac_ext 6929rm -f conftest.err conftest.$ac_ext
6943if $ac_preproc_ok; then : 6930if $ac_preproc_ok; then :
6944 break 6931 break
6945fi 6932fi
@@ -6978,7 +6965,7 @@ else
6978 # Broken: fails on valid input. 6965 # Broken: fails on valid input.
6979continue 6966continue
6980fi 6967fi
6981rm -f conftest.err conftest.i conftest.$ac_ext 6968rm -f conftest.err conftest.$ac_ext
6982 6969
6983 # OK, works on sane cases. Now check whether nonexistent headers 6970 # OK, works on sane cases. Now check whether nonexistent headers
6984 # can be detected and how. 6971 # can be detected and how.
@@ -6994,18 +6981,18 @@ else
6994ac_preproc_ok=: 6981ac_preproc_ok=:
6995break 6982break
6996fi 6983fi
6997rm -f conftest.err conftest.i conftest.$ac_ext 6984rm -f conftest.err conftest.$ac_ext
6998 6985
6999done 6986done
7000# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. 6987# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
7001rm -f conftest.i conftest.err conftest.$ac_ext 6988rm -f conftest.err conftest.$ac_ext
7002if $ac_preproc_ok; then : 6989if $ac_preproc_ok; then :
7003 6990
7004else 6991else
7005 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 6992 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
7006$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 6993$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
7007as_fn_error $? "C preprocessor \"$CPP\" fails sanity check 6994as_fn_error "C preprocessor \"$CPP\" fails sanity check
7008See \`config.log' for more details" "$LINENO" 5 ; } 6995See \`config.log' for more details." "$LINENO" 5; }
7009fi 6996fi
7010 6997
7011ac_ext=c 6998ac_ext=c
@@ -7134,7 +7121,8 @@ do :
7134 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` 7121 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
7135ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default 7122ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
7136" 7123"
7137if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : 7124eval as_val=\$$as_ac_Header
7125 if test "x$as_val" = x""yes; then :
7138 cat >>confdefs.h <<_ACEOF 7126 cat >>confdefs.h <<_ACEOF
7139#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 7127#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
7140_ACEOF 7128_ACEOF
@@ -7657,11 +7645,11 @@ else
7657 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ 7645 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
7658 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ 7646 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
7659 -e 's:$: $lt_compiler_flag:'` 7647 -e 's:$: $lt_compiler_flag:'`
7660 (eval echo "\"\$as_me:7660: $lt_compile\"" >&5) 7648 (eval echo "\"\$as_me:7648: $lt_compile\"" >&5)
7661 (eval "$lt_compile" 2>conftest.err) 7649 (eval "$lt_compile" 2>conftest.err)
7662 ac_status=$? 7650 ac_status=$?
7663 cat conftest.err >&5 7651 cat conftest.err >&5
7664 echo "$as_me:7664: \$? = $ac_status" >&5 7652 echo "$as_me:7652: \$? = $ac_status" >&5
7665 if (exit $ac_status) && test -s "$ac_outfile"; then 7653 if (exit $ac_status) && test -s "$ac_outfile"; then
7666 # The compiler can only warn and ignore the option if not recognized 7654 # The compiler can only warn and ignore the option if not recognized
7667 # So say no if there are warnings other than the usual output. 7655 # So say no if there are warnings other than the usual output.
@@ -7996,11 +7984,11 @@ else
7996 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ 7984 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
7997 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ 7985 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
7998 -e 's:$: $lt_compiler_flag:'` 7986 -e 's:$: $lt_compiler_flag:'`
7999 (eval echo "\"\$as_me:7999: $lt_compile\"" >&5) 7987 (eval echo "\"\$as_me:7987: $lt_compile\"" >&5)
8000 (eval "$lt_compile" 2>conftest.err) 7988 (eval "$lt_compile" 2>conftest.err)
8001 ac_status=$? 7989 ac_status=$?
8002 cat conftest.err >&5 7990 cat conftest.err >&5
8003 echo "$as_me:8003: \$? = $ac_status" >&5 7991 echo "$as_me:7991: \$? = $ac_status" >&5
8004 if (exit $ac_status) && test -s "$ac_outfile"; then 7992 if (exit $ac_status) && test -s "$ac_outfile"; then
8005 # The compiler can only warn and ignore the option if not recognized 7993 # The compiler can only warn and ignore the option if not recognized
8006 # So say no if there are warnings other than the usual output. 7994 # So say no if there are warnings other than the usual output.
@@ -8101,11 +8089,11 @@ else
8101 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ 8089 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
8102 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ 8090 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
8103 -e 's:$: $lt_compiler_flag:'` 8091 -e 's:$: $lt_compiler_flag:'`
8104 (eval echo "\"\$as_me:8104: $lt_compile\"" >&5) 8092 (eval echo "\"\$as_me:8092: $lt_compile\"" >&5)
8105 (eval "$lt_compile" 2>out/conftest.err) 8093 (eval "$lt_compile" 2>out/conftest.err)
8106 ac_status=$? 8094 ac_status=$?
8107 cat out/conftest.err >&5 8095 cat out/conftest.err >&5
8108 echo "$as_me:8108: \$? = $ac_status" >&5 8096 echo "$as_me:8096: \$? = $ac_status" >&5
8109 if (exit $ac_status) && test -s out/conftest2.$ac_objext 8097 if (exit $ac_status) && test -s out/conftest2.$ac_objext
8110 then 8098 then
8111 # The compiler can only warn and ignore the option if not recognized 8099 # The compiler can only warn and ignore the option if not recognized
@@ -8156,11 +8144,11 @@ else
8156 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ 8144 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
8157 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ 8145 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
8158 -e 's:$: $lt_compiler_flag:'` 8146 -e 's:$: $lt_compiler_flag:'`
8159 (eval echo "\"\$as_me:8159: $lt_compile\"" >&5) 8147 (eval echo "\"\$as_me:8147: $lt_compile\"" >&5)
8160 (eval "$lt_compile" 2>out/conftest.err) 8148 (eval "$lt_compile" 2>out/conftest.err)
8161 ac_status=$? 8149 ac_status=$?
8162 cat out/conftest.err >&5 8150 cat out/conftest.err >&5
8163 echo "$as_me:8163: \$? = $ac_status" >&5 8151 echo "$as_me:8151: \$? = $ac_status" >&5
8164 if (exit $ac_status) && test -s out/conftest2.$ac_objext 8152 if (exit $ac_status) && test -s out/conftest2.$ac_objext
8165 then 8153 then
8166 # The compiler can only warn and ignore the option if not recognized 8154 # The compiler can only warn and ignore the option if not recognized
@@ -10540,7 +10528,7 @@ else
10540 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 10528 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
10541 lt_status=$lt_dlunknown 10529 lt_status=$lt_dlunknown
10542 cat > conftest.$ac_ext <<_LT_EOF 10530 cat > conftest.$ac_ext <<_LT_EOF
10543#line 10543 "configure" 10531#line 10531 "configure"
10544#include "confdefs.h" 10532#include "confdefs.h"
10545 10533
10546#if HAVE_DLFCN_H 10534#if HAVE_DLFCN_H
@@ -10636,7 +10624,7 @@ else
10636 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 10624 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
10637 lt_status=$lt_dlunknown 10625 lt_status=$lt_dlunknown
10638 cat > conftest.$ac_ext <<_LT_EOF 10626 cat > conftest.$ac_ext <<_LT_EOF
10639#line 10639 "configure" 10627#line 10627 "configure"
10640#include "confdefs.h" 10628#include "confdefs.h"
10641 10629
10642#if HAVE_DLFCN_H 10630#if HAVE_DLFCN_H
@@ -10880,15 +10868,15 @@ _ACEOF
10880 10868
10881 10869
10882cat >>confdefs.h <<_ACEOF 10870cat >>confdefs.h <<_ACEOF
10883#define VMIC 0 10871#define VMIC 99
10884_ACEOF 10872_ACEOF
10885 10873
10886 10874
10887cat >>confdefs.h <<_ACEOF 10875cat >>confdefs.h <<_ACEOF
10888#define VREV 0 10876#define VREV 67344
10889_ACEOF 10877_ACEOF
10890 10878
10891version_info="6:0:5" 10879version_info="6:99:5"
10892release_info="" 10880release_info=""
10893 10881
10894 10882
@@ -11182,10 +11170,6 @@ fi
11182 11170
11183 11171
11184 11172
11185
11186
11187
11188
11189if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then 11173if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
11190 if test -n "$ac_tool_prefix"; then 11174 if test -n "$ac_tool_prefix"; then
11191 # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. 11175 # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
@@ -11298,6 +11282,7 @@ $as_echo "yes" >&6; }
11298$as_echo "no" >&6; } 11282$as_echo "no" >&6; }
11299 PKG_CONFIG="" 11283 PKG_CONFIG=""
11300 fi 11284 fi
11285
11301fi 11286fi
11302 11287
11303 11288
@@ -11329,10 +11314,11 @@ pkg_failed=no
11329{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CHECK" >&5 11314{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CHECK" >&5
11330$as_echo_n "checking for CHECK... " >&6; } 11315$as_echo_n "checking for CHECK... " >&6; }
11331 11316
11332if test -n "$CHECK_CFLAGS"; then 11317if test -n "$PKG_CONFIG"; then
11333 pkg_cv_CHECK_CFLAGS="$CHECK_CFLAGS" 11318 if test -n "$CHECK_CFLAGS"; then
11334 elif test -n "$PKG_CONFIG"; then 11319 pkg_cv_CHECK_CFLAGS="$CHECK_CFLAGS"
11335 if test -n "$PKG_CONFIG" && \ 11320 else
11321 if test -n "$PKG_CONFIG" && \
11336 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"check >= 0.9.5\""; } >&5 11322 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"check >= 0.9.5\""; } >&5
11337 ($PKG_CONFIG --exists --print-errors "check >= 0.9.5") 2>&5 11323 ($PKG_CONFIG --exists --print-errors "check >= 0.9.5") 2>&5
11338 ac_status=$? 11324 ac_status=$?
@@ -11342,13 +11328,15 @@ if test -n "$CHECK_CFLAGS"; then
11342else 11328else
11343 pkg_failed=yes 11329 pkg_failed=yes
11344fi 11330fi
11345 else 11331 fi
11346 pkg_failed=untried 11332else
11333 pkg_failed=untried
11347fi 11334fi
11348if test -n "$CHECK_LIBS"; then 11335if test -n "$PKG_CONFIG"; then
11349 pkg_cv_CHECK_LIBS="$CHECK_LIBS" 11336 if test -n "$CHECK_LIBS"; then
11350 elif test -n "$PKG_CONFIG"; then 11337 pkg_cv_CHECK_LIBS="$CHECK_LIBS"
11351 if test -n "$PKG_CONFIG" && \ 11338 else
11339 if test -n "$PKG_CONFIG" && \
11352 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"check >= 0.9.5\""; } >&5 11340 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"check >= 0.9.5\""; } >&5
11353 ($PKG_CONFIG --exists --print-errors "check >= 0.9.5") 2>&5 11341 ($PKG_CONFIG --exists --print-errors "check >= 0.9.5") 2>&5
11354 ac_status=$? 11342 ac_status=$?
@@ -11358,15 +11346,14 @@ if test -n "$CHECK_LIBS"; then
11358else 11346else
11359 pkg_failed=yes 11347 pkg_failed=yes
11360fi 11348fi
11361 else 11349 fi
11362 pkg_failed=untried 11350else
11351 pkg_failed=untried
11363fi 11352fi
11364 11353
11365 11354
11366 11355
11367if test $pkg_failed = yes; then 11356if test $pkg_failed = yes; then
11368 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
11369$as_echo "no" >&6; }
11370 11357
11371if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 11358if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
11372 _pkg_short_errors_supported=yes 11359 _pkg_short_errors_supported=yes
@@ -11374,17 +11361,17 @@ else
11374 _pkg_short_errors_supported=no 11361 _pkg_short_errors_supported=no
11375fi 11362fi
11376 if test $_pkg_short_errors_supported = yes; then 11363 if test $_pkg_short_errors_supported = yes; then
11377 CHECK_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "check >= 0.9.5" 2>&1` 11364 CHECK_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "check >= 0.9.5"`
11378 else 11365 else
11379 CHECK_PKG_ERRORS=`$PKG_CONFIG --print-errors "check >= 0.9.5" 2>&1` 11366 CHECK_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "check >= 0.9.5"`
11380 fi 11367 fi
11381 # Put the nasty error message in config.log where it belongs 11368 # Put the nasty error message in config.log where it belongs
11382 echo "$CHECK_PKG_ERRORS" >&5 11369 echo "$CHECK_PKG_ERRORS" >&5
11383 11370
11384 _efl_enable_tests="no" 11371 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
11385elif test $pkg_failed = untried; then
11386 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
11387$as_echo "no" >&6; } 11372$as_echo "no" >&6; }
11373 _efl_enable_tests="no"
11374elif test $pkg_failed = untried; then
11388 _efl_enable_tests="no" 11375 _efl_enable_tests="no"
11389else 11376else
11390 CHECK_CFLAGS=$pkg_cv_CHECK_CFLAGS 11377 CHECK_CFLAGS=$pkg_cv_CHECK_CFLAGS
@@ -11821,8 +11808,8 @@ fi
11821 11808
11822test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 11809test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
11823$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 11810$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
11824as_fn_error $? "no acceptable C compiler found in \$PATH 11811as_fn_error "no acceptable C compiler found in \$PATH
11825See \`config.log' for more details" "$LINENO" 5 ; } 11812See \`config.log' for more details." "$LINENO" 5; }
11826 11813
11827# Provide some information about the compiler. 11814# Provide some information about the compiler.
11828$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 11815$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
@@ -12192,10 +12179,6 @@ fi
12192# pkg-config 12179# pkg-config
12193 12180
12194 12181
12195
12196
12197
12198
12199if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then 12182if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
12200 if test -n "$ac_tool_prefix"; then 12183 if test -n "$ac_tool_prefix"; then
12201 # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. 12184 # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
@@ -12308,6 +12291,7 @@ $as_echo "yes" >&6; }
12308$as_echo "no" >&6; } 12291$as_echo "no" >&6; }
12309 PKG_CONFIG="" 12292 PKG_CONFIG=""
12310 fi 12293 fi
12294
12311fi 12295fi
12312 12296
12313# Check whether pkg-config supports Requires.private 12297# Check whether pkg-config supports Requires.private
@@ -12492,10 +12476,11 @@ pkg_failed=no
12492{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EVIL" >&5 12476{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EVIL" >&5
12493$as_echo_n "checking for EVIL... " >&6; } 12477$as_echo_n "checking for EVIL... " >&6; }
12494 12478
12495if test -n "$EVIL_CFLAGS"; then 12479if test -n "$PKG_CONFIG"; then
12496 pkg_cv_EVIL_CFLAGS="$EVIL_CFLAGS" 12480 if test -n "$EVIL_CFLAGS"; then
12497 elif test -n "$PKG_CONFIG"; then 12481 pkg_cv_EVIL_CFLAGS="$EVIL_CFLAGS"
12498 if test -n "$PKG_CONFIG" && \ 12482 else
12483 if test -n "$PKG_CONFIG" && \
12499 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evil >= 1.0.0\""; } >&5 12484 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evil >= 1.0.0\""; } >&5
12500 ($PKG_CONFIG --exists --print-errors "evil >= 1.0.0") 2>&5 12485 ($PKG_CONFIG --exists --print-errors "evil >= 1.0.0") 2>&5
12501 ac_status=$? 12486 ac_status=$?
@@ -12505,13 +12490,15 @@ if test -n "$EVIL_CFLAGS"; then
12505else 12490else
12506 pkg_failed=yes 12491 pkg_failed=yes
12507fi 12492fi
12508 else 12493 fi
12509 pkg_failed=untried 12494else
12495 pkg_failed=untried
12510fi 12496fi
12511if test -n "$EVIL_LIBS"; then 12497if test -n "$PKG_CONFIG"; then
12512 pkg_cv_EVIL_LIBS="$EVIL_LIBS" 12498 if test -n "$EVIL_LIBS"; then
12513 elif test -n "$PKG_CONFIG"; then 12499 pkg_cv_EVIL_LIBS="$EVIL_LIBS"
12514 if test -n "$PKG_CONFIG" && \ 12500 else
12501 if test -n "$PKG_CONFIG" && \
12515 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evil >= 1.0.0\""; } >&5 12502 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evil >= 1.0.0\""; } >&5
12516 ($PKG_CONFIG --exists --print-errors "evil >= 1.0.0") 2>&5 12503 ($PKG_CONFIG --exists --print-errors "evil >= 1.0.0") 2>&5
12517 ac_status=$? 12504 ac_status=$?
@@ -12521,15 +12508,14 @@ if test -n "$EVIL_LIBS"; then
12521else 12508else
12522 pkg_failed=yes 12509 pkg_failed=yes
12523fi 12510fi
12524 else 12511 fi
12525 pkg_failed=untried 12512else
12513 pkg_failed=untried
12526fi 12514fi
12527 12515
12528 12516
12529 12517
12530if test $pkg_failed = yes; then 12518if test $pkg_failed = yes; then
12531 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
12532$as_echo "no" >&6; }
12533 12519
12534if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 12520if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
12535 _pkg_short_errors_supported=yes 12521 _pkg_short_errors_supported=yes
@@ -12537,14 +12523,14 @@ else
12537 _pkg_short_errors_supported=no 12523 _pkg_short_errors_supported=no
12538fi 12524fi
12539 if test $_pkg_short_errors_supported = yes; then 12525 if test $_pkg_short_errors_supported = yes; then
12540 EVIL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "evil >= 1.0.0" 2>&1` 12526 EVIL_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "evil >= 1.0.0"`
12541 else 12527 else
12542 EVIL_PKG_ERRORS=`$PKG_CONFIG --print-errors "evil >= 1.0.0" 2>&1` 12528 EVIL_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "evil >= 1.0.0"`
12543 fi 12529 fi
12544 # Put the nasty error message in config.log where it belongs 12530 # Put the nasty error message in config.log where it belongs
12545 echo "$EVIL_PKG_ERRORS" >&5 12531 echo "$EVIL_PKG_ERRORS" >&5
12546 12532
12547 as_fn_error $? "Package requirements (evil >= 1.0.0) were not met: 12533 as_fn_error "Package requirements (evil >= 1.0.0) were not met:
12548 12534
12549$EVIL_PKG_ERRORS 12535$EVIL_PKG_ERRORS
12550 12536
@@ -12553,13 +12539,12 @@ installed software in a non-standard prefix.
12553 12539
12554Alternatively, you may set the environment variables EVIL_CFLAGS 12540Alternatively, you may set the environment variables EVIL_CFLAGS
12555and EVIL_LIBS to avoid the need to call pkg-config. 12541and EVIL_LIBS to avoid the need to call pkg-config.
12556See the pkg-config man page for more details." "$LINENO" 5 12542See the pkg-config man page for more details.
12543" "$LINENO" 5
12557elif test $pkg_failed = untried; then 12544elif test $pkg_failed = untried; then
12558 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
12559$as_echo "no" >&6; }
12560 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 12545 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
12561$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 12546$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
12562as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it 12547as_fn_error "The pkg-config script could not be found or is too old. Make sure it
12563is in your PATH or set the PKG_CONFIG environment variable to the full 12548is in your PATH or set the PKG_CONFIG environment variable to the full
12564path to pkg-config. 12549path to pkg-config.
12565 12550
@@ -12568,13 +12553,13 @@ and EVIL_LIBS to avoid the need to call pkg-config.
12568See the pkg-config man page for more details. 12553See the pkg-config man page for more details.
12569 12554
12570To get pkg-config, see <http://pkg-config.freedesktop.org/>. 12555To get pkg-config, see <http://pkg-config.freedesktop.org/>.
12571See \`config.log' for more details" "$LINENO" 5 ; } 12556See \`config.log' for more details." "$LINENO" 5; }
12572else 12557else
12573 EVIL_CFLAGS=$pkg_cv_EVIL_CFLAGS 12558 EVIL_CFLAGS=$pkg_cv_EVIL_CFLAGS
12574 EVIL_LIBS=$pkg_cv_EVIL_LIBS 12559 EVIL_LIBS=$pkg_cv_EVIL_LIBS
12575 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 12560 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
12576$as_echo "yes" >&6; } 12561$as_echo "yes" >&6; }
12577 12562 :
12578fi 12563fi
12579 12564
12580$as_echo "#define HAVE_EVIL 1" >>confdefs.h 12565$as_echo "#define HAVE_EVIL 1" >>confdefs.h
@@ -12603,10 +12588,11 @@ pkg_failed=no
12603{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EINA" >&5 12588{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EINA" >&5
12604$as_echo_n "checking for EINA... " >&6; } 12589$as_echo_n "checking for EINA... " >&6; }
12605 12590
12606if test -n "$EINA_CFLAGS"; then 12591if test -n "$PKG_CONFIG"; then
12607 pkg_cv_EINA_CFLAGS="$EINA_CFLAGS" 12592 if test -n "$EINA_CFLAGS"; then
12608 elif test -n "$PKG_CONFIG"; then 12593 pkg_cv_EINA_CFLAGS="$EINA_CFLAGS"
12609 if test -n "$PKG_CONFIG" && \ 12594 else
12595 if test -n "$PKG_CONFIG" && \
12610 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eina >= 1.1.0\""; } >&5 12596 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eina >= 1.1.0\""; } >&5
12611 ($PKG_CONFIG --exists --print-errors "eina >= 1.1.0") 2>&5 12597 ($PKG_CONFIG --exists --print-errors "eina >= 1.1.0") 2>&5
12612 ac_status=$? 12598 ac_status=$?
@@ -12616,13 +12602,15 @@ if test -n "$EINA_CFLAGS"; then
12616else 12602else
12617 pkg_failed=yes 12603 pkg_failed=yes
12618fi 12604fi
12619 else 12605 fi
12620 pkg_failed=untried 12606else
12607 pkg_failed=untried
12621fi 12608fi
12622if test -n "$EINA_LIBS"; then 12609if test -n "$PKG_CONFIG"; then
12623 pkg_cv_EINA_LIBS="$EINA_LIBS" 12610 if test -n "$EINA_LIBS"; then
12624 elif test -n "$PKG_CONFIG"; then 12611 pkg_cv_EINA_LIBS="$EINA_LIBS"
12625 if test -n "$PKG_CONFIG" && \ 12612 else
12613 if test -n "$PKG_CONFIG" && \
12626 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eina >= 1.1.0\""; } >&5 12614 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eina >= 1.1.0\""; } >&5
12627 ($PKG_CONFIG --exists --print-errors "eina >= 1.1.0") 2>&5 12615 ($PKG_CONFIG --exists --print-errors "eina >= 1.1.0") 2>&5
12628 ac_status=$? 12616 ac_status=$?
@@ -12632,15 +12620,14 @@ if test -n "$EINA_LIBS"; then
12632else 12620else
12633 pkg_failed=yes 12621 pkg_failed=yes
12634fi 12622fi
12635 else 12623 fi
12636 pkg_failed=untried 12624else
12625 pkg_failed=untried
12637fi 12626fi
12638 12627
12639 12628
12640 12629
12641if test $pkg_failed = yes; then 12630if test $pkg_failed = yes; then
12642 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
12643$as_echo "no" >&6; }
12644 12631
12645if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 12632if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
12646 _pkg_short_errors_supported=yes 12633 _pkg_short_errors_supported=yes
@@ -12648,14 +12635,14 @@ else
12648 _pkg_short_errors_supported=no 12635 _pkg_short_errors_supported=no
12649fi 12636fi
12650 if test $_pkg_short_errors_supported = yes; then 12637 if test $_pkg_short_errors_supported = yes; then
12651 EINA_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "eina >= 1.1.0" 2>&1` 12638 EINA_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "eina >= 1.1.0"`
12652 else 12639 else
12653 EINA_PKG_ERRORS=`$PKG_CONFIG --print-errors "eina >= 1.1.0" 2>&1` 12640 EINA_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "eina >= 1.1.0"`
12654 fi 12641 fi
12655 # Put the nasty error message in config.log where it belongs 12642 # Put the nasty error message in config.log where it belongs
12656 echo "$EINA_PKG_ERRORS" >&5 12643 echo "$EINA_PKG_ERRORS" >&5
12657 12644
12658 as_fn_error $? "Package requirements (eina >= 1.1.0) were not met: 12645 as_fn_error "Package requirements (eina >= 1.1.0) were not met:
12659 12646
12660$EINA_PKG_ERRORS 12647$EINA_PKG_ERRORS
12661 12648
@@ -12664,13 +12651,12 @@ installed software in a non-standard prefix.
12664 12651
12665Alternatively, you may set the environment variables EINA_CFLAGS 12652Alternatively, you may set the environment variables EINA_CFLAGS
12666and EINA_LIBS to avoid the need to call pkg-config. 12653and EINA_LIBS to avoid the need to call pkg-config.
12667See the pkg-config man page for more details." "$LINENO" 5 12654See the pkg-config man page for more details.
12655" "$LINENO" 5
12668elif test $pkg_failed = untried; then 12656elif test $pkg_failed = untried; then
12669 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
12670$as_echo "no" >&6; }
12671 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 12657 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
12672$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 12658$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
12673as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it 12659as_fn_error "The pkg-config script could not be found or is too old. Make sure it
12674is in your PATH or set the PKG_CONFIG environment variable to the full 12660is in your PATH or set the PKG_CONFIG environment variable to the full
12675path to pkg-config. 12661path to pkg-config.
12676 12662
@@ -12679,13 +12665,13 @@ and EINA_LIBS to avoid the need to call pkg-config.
12679See the pkg-config man page for more details. 12665See the pkg-config man page for more details.
12680 12666
12681To get pkg-config, see <http://pkg-config.freedesktop.org/>. 12667To get pkg-config, see <http://pkg-config.freedesktop.org/>.
12682See \`config.log' for more details" "$LINENO" 5 ; } 12668See \`config.log' for more details." "$LINENO" 5; }
12683else 12669else
12684 EINA_CFLAGS=$pkg_cv_EINA_CFLAGS 12670 EINA_CFLAGS=$pkg_cv_EINA_CFLAGS
12685 EINA_LIBS=$pkg_cv_EINA_LIBS 12671 EINA_LIBS=$pkg_cv_EINA_LIBS
12686 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 12672 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
12687$as_echo "yes" >&6; } 12673$as_echo "yes" >&6; }
12688 12674 :
12689fi 12675fi
12690requirement_eet="eina >= 1.1.0 ${requirement_eet}" 12676requirement_eet="eina >= 1.1.0 ${requirement_eet}"
12691 12677
@@ -12697,10 +12683,11 @@ pkg_failed=no
12697{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNUTLS" >&5 12683{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNUTLS" >&5
12698$as_echo_n "checking for GNUTLS... " >&6; } 12684$as_echo_n "checking for GNUTLS... " >&6; }
12699 12685
12700if test -n "$GNUTLS_CFLAGS"; then 12686if test -n "$PKG_CONFIG"; then
12701 pkg_cv_GNUTLS_CFLAGS="$GNUTLS_CFLAGS" 12687 if test -n "$GNUTLS_CFLAGS"; then
12702 elif test -n "$PKG_CONFIG"; then 12688 pkg_cv_GNUTLS_CFLAGS="$GNUTLS_CFLAGS"
12703 if test -n "$PKG_CONFIG" && \ 12689 else
12690 if test -n "$PKG_CONFIG" && \
12704 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gnutls >= 1.7.6\""; } >&5 12691 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gnutls >= 1.7.6\""; } >&5
12705 ($PKG_CONFIG --exists --print-errors "gnutls >= 1.7.6") 2>&5 12692 ($PKG_CONFIG --exists --print-errors "gnutls >= 1.7.6") 2>&5
12706 ac_status=$? 12693 ac_status=$?
@@ -12710,13 +12697,15 @@ if test -n "$GNUTLS_CFLAGS"; then
12710else 12697else
12711 pkg_failed=yes 12698 pkg_failed=yes
12712fi 12699fi
12713 else 12700 fi
12714 pkg_failed=untried 12701else
12702 pkg_failed=untried
12715fi 12703fi
12716if test -n "$GNUTLS_LIBS"; then 12704if test -n "$PKG_CONFIG"; then
12717 pkg_cv_GNUTLS_LIBS="$GNUTLS_LIBS" 12705 if test -n "$GNUTLS_LIBS"; then
12718 elif test -n "$PKG_CONFIG"; then 12706 pkg_cv_GNUTLS_LIBS="$GNUTLS_LIBS"
12719 if test -n "$PKG_CONFIG" && \ 12707 else
12708 if test -n "$PKG_CONFIG" && \
12720 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gnutls >= 1.7.6\""; } >&5 12709 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gnutls >= 1.7.6\""; } >&5
12721 ($PKG_CONFIG --exists --print-errors "gnutls >= 1.7.6") 2>&5 12710 ($PKG_CONFIG --exists --print-errors "gnutls >= 1.7.6") 2>&5
12722 ac_status=$? 12711 ac_status=$?
@@ -12726,15 +12715,14 @@ if test -n "$GNUTLS_LIBS"; then
12726else 12715else
12727 pkg_failed=yes 12716 pkg_failed=yes
12728fi 12717fi
12729 else 12718 fi
12730 pkg_failed=untried 12719else
12720 pkg_failed=untried
12731fi 12721fi
12732 12722
12733 12723
12734 12724
12735if test $pkg_failed = yes; then 12725if test $pkg_failed = yes; then
12736 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
12737$as_echo "no" >&6; }
12738 12726
12739if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 12727if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
12740 _pkg_short_errors_supported=yes 12728 _pkg_short_errors_supported=yes
@@ -12742,17 +12730,17 @@ else
12742 _pkg_short_errors_supported=no 12730 _pkg_short_errors_supported=no
12743fi 12731fi
12744 if test $_pkg_short_errors_supported = yes; then 12732 if test $_pkg_short_errors_supported = yes; then
12745 GNUTLS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gnutls >= 1.7.6" 2>&1` 12733 GNUTLS_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "gnutls >= 1.7.6"`
12746 else 12734 else
12747 GNUTLS_PKG_ERRORS=`$PKG_CONFIG --print-errors "gnutls >= 1.7.6" 2>&1` 12735 GNUTLS_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gnutls >= 1.7.6"`
12748 fi 12736 fi
12749 # Put the nasty error message in config.log where it belongs 12737 # Put the nasty error message in config.log where it belongs
12750 echo "$GNUTLS_PKG_ERRORS" >&5 12738 echo "$GNUTLS_PKG_ERRORS" >&5
12751 12739
12752 have_gnutls="no" 12740 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
12753elif test $pkg_failed = untried; then
12754 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
12755$as_echo "no" >&6; } 12741$as_echo "no" >&6; }
12742 have_gnutls="no"
12743elif test $pkg_failed = untried; then
12756 have_gnutls="no" 12744 have_gnutls="no"
12757else 12745else
12758 GNUTLS_CFLAGS=$pkg_cv_GNUTLS_CFLAGS 12746 GNUTLS_CFLAGS=$pkg_cv_GNUTLS_CFLAGS
@@ -12889,10 +12877,11 @@ pkg_failed=no
12889{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for OPENSSL" >&5 12877{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for OPENSSL" >&5
12890$as_echo_n "checking for OPENSSL... " >&6; } 12878$as_echo_n "checking for OPENSSL... " >&6; }
12891 12879
12892if test -n "$OPENSSL_CFLAGS"; then 12880if test -n "$PKG_CONFIG"; then
12893 pkg_cv_OPENSSL_CFLAGS="$OPENSSL_CFLAGS" 12881 if test -n "$OPENSSL_CFLAGS"; then
12894 elif test -n "$PKG_CONFIG"; then 12882 pkg_cv_OPENSSL_CFLAGS="$OPENSSL_CFLAGS"
12895 if test -n "$PKG_CONFIG" && \ 12883 else
12884 if test -n "$PKG_CONFIG" && \
12896 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"openssl\""; } >&5 12885 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"openssl\""; } >&5
12897 ($PKG_CONFIG --exists --print-errors "openssl") 2>&5 12886 ($PKG_CONFIG --exists --print-errors "openssl") 2>&5
12898 ac_status=$? 12887 ac_status=$?
@@ -12902,13 +12891,15 @@ if test -n "$OPENSSL_CFLAGS"; then
12902else 12891else
12903 pkg_failed=yes 12892 pkg_failed=yes
12904fi 12893fi
12905 else 12894 fi
12906 pkg_failed=untried 12895else
12896 pkg_failed=untried
12907fi 12897fi
12908if test -n "$OPENSSL_LIBS"; then 12898if test -n "$PKG_CONFIG"; then
12909 pkg_cv_OPENSSL_LIBS="$OPENSSL_LIBS" 12899 if test -n "$OPENSSL_LIBS"; then
12910 elif test -n "$PKG_CONFIG"; then 12900 pkg_cv_OPENSSL_LIBS="$OPENSSL_LIBS"
12911 if test -n "$PKG_CONFIG" && \ 12901 else
12902 if test -n "$PKG_CONFIG" && \
12912 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"openssl\""; } >&5 12903 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"openssl\""; } >&5
12913 ($PKG_CONFIG --exists --print-errors "openssl") 2>&5 12904 ($PKG_CONFIG --exists --print-errors "openssl") 2>&5
12914 ac_status=$? 12905 ac_status=$?
@@ -12918,15 +12909,14 @@ if test -n "$OPENSSL_LIBS"; then
12918else 12909else
12919 pkg_failed=yes 12910 pkg_failed=yes
12920fi 12911fi
12921 else 12912 fi
12922 pkg_failed=untried 12913else
12914 pkg_failed=untried
12923fi 12915fi
12924 12916
12925 12917
12926 12918
12927if test $pkg_failed = yes; then 12919if test $pkg_failed = yes; then
12928 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
12929$as_echo "no" >&6; }
12930 12920
12931if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 12921if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
12932 _pkg_short_errors_supported=yes 12922 _pkg_short_errors_supported=yes
@@ -12934,17 +12924,17 @@ else
12934 _pkg_short_errors_supported=no 12924 _pkg_short_errors_supported=no
12935fi 12925fi
12936 if test $_pkg_short_errors_supported = yes; then 12926 if test $_pkg_short_errors_supported = yes; then
12937 OPENSSL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "openssl" 2>&1` 12927 OPENSSL_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "openssl"`
12938 else 12928 else
12939 OPENSSL_PKG_ERRORS=`$PKG_CONFIG --print-errors "openssl" 2>&1` 12929 OPENSSL_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "openssl"`
12940 fi 12930 fi
12941 # Put the nasty error message in config.log where it belongs 12931 # Put the nasty error message in config.log where it belongs
12942 echo "$OPENSSL_PKG_ERRORS" >&5 12932 echo "$OPENSSL_PKG_ERRORS" >&5
12943 12933
12944 have_openssl="no" 12934 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
12945elif test $pkg_failed = untried; then
12946 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
12947$as_echo "no" >&6; } 12935$as_echo "no" >&6; }
12936 have_openssl="no"
12937elif test $pkg_failed = untried; then
12948 have_openssl="no" 12938 have_openssl="no"
12949else 12939else
12950 OPENSSL_CFLAGS=$pkg_cv_OPENSSL_CFLAGS 12940 OPENSSL_CFLAGS=$pkg_cv_OPENSSL_CFLAGS
@@ -13011,7 +13001,7 @@ ac_fn_c_check_header_mongrel "$LINENO" "zlib.h" "ac_cv_header_zlib_h" "$ac_inclu
13011if test "x$ac_cv_header_zlib_h" = x""yes; then : 13001if test "x$ac_cv_header_zlib_h" = x""yes; then :
13012 dummy="yes" 13002 dummy="yes"
13013else 13003else
13014 as_fn_error $? "\"Cannot find zlib.h. Make sure your CFLAGS environment variable contains include lines for the location of this file\"" "$LINENO" 5 13004 as_fn_error "\"Cannot find zlib.h. Make sure your CFLAGS environment variable contains include lines for the location of this file\"" "$LINENO" 5
13015fi 13005fi
13016 13006
13017 13007
@@ -13020,7 +13010,7 @@ ac_fn_c_check_header_mongrel "$LINENO" "jpeglib.h" "ac_cv_header_jpeglib_h" "$ac
13020if test "x$ac_cv_header_jpeglib_h" = x""yes; then : 13010if test "x$ac_cv_header_jpeglib_h" = x""yes; then :
13021 dummy="yes" 13011 dummy="yes"
13022else 13012else
13023 as_fn_error $? "\"Cannot find jpeglib.h. Make sure your CFLAGS environment variable contains include lines for the location of this file\"" "$LINENO" 5 13013 as_fn_error "\"Cannot find jpeglib.h. Make sure your CFLAGS environment variable contains include lines for the location of this file\"" "$LINENO" 5
13024fi 13014fi
13025 13015
13026 13016
@@ -13029,7 +13019,8 @@ for ac_header in netinet/in.h unistd.h
13029do : 13019do :
13030 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` 13020 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
13031ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" 13021ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
13032if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : 13022eval as_val=\$$as_ac_Header
13023 if test "x$as_val" = x""yes; then :
13033 cat >>confdefs.h <<_ACEOF 13024 cat >>confdefs.h <<_ACEOF
13034#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 13025#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
13035_ACEOF 13026_ACEOF
@@ -13106,7 +13097,7 @@ $as_echo_n "checking whether cc understands -c and -o together... " >&6; }
13106fi 13097fi
13107set dummy $CC; ac_cc=`$as_echo "$2" | 13098set dummy $CC; ac_cc=`$as_echo "$2" |
13108 sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'` 13099 sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'`
13109if eval "test \"\${ac_cv_prog_cc_${ac_cc}_c_o+set}\"" = set; then : 13100if { as_var=ac_cv_prog_cc_${ac_cc}_c_o; eval "test \"\${$as_var+set}\" = set"; }; then :
13110 $as_echo_n "(cached) " >&6 13101 $as_echo_n "(cached) " >&6
13111else 13102else
13112 cat confdefs.h - <<_ACEOF >conftest.$ac_ext 13103 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -14001,7 +13992,8 @@ if test $ac_cv_os_cray = yes; then
14001 for ac_func in _getb67 GETB67 getb67; do 13992 for ac_func in _getb67 GETB67 getb67; do
14002 as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` 13993 as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
14003ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" 13994ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
14004if eval test \"x\$"$as_ac_var"\" = x"yes"; then : 13995eval as_val=\$$as_ac_var
13996 if test "x$as_val" = x""yes; then :
14005 13997
14006cat >>confdefs.h <<_ACEOF 13998cat >>confdefs.h <<_ACEOF
14007#define CRAY_STACKSEG_END $ac_func 13999#define CRAY_STACKSEG_END $ac_func
@@ -14068,7 +14060,8 @@ for ac_func in fmemopen open_memstream realpath
14068do : 14060do :
14069 as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` 14061 as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
14070ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" 14062ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
14071if eval test \"x\$"$as_ac_var"\" = x"yes"; then : 14063eval as_val=\$$as_ac_var
14064 if test "x$as_val" = x""yes; then :
14072 cat >>confdefs.h <<_ACEOF 14065 cat >>confdefs.h <<_ACEOF
14073#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 14066#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
14074_ACEOF 14067_ACEOF
@@ -14160,7 +14153,7 @@ fi
14160if test "x$_efl_have_fnmatch" = "xyes"; then : 14153if test "x$_efl_have_fnmatch" = "xyes"; then :
14161 14154
14162else 14155else
14163 as_fn_error $? "Cannot find fnmatch()" "$LINENO" 5 14156 as_fn_error "Cannot find fnmatch()" "$LINENO" 5
14164fi 14157fi
14165 14158
14166 14159
@@ -14253,7 +14246,6 @@ DEFS=-DHAVE_CONFIG_H
14253 14246
14254ac_libobjs= 14247ac_libobjs=
14255ac_ltlibobjs= 14248ac_ltlibobjs=
14256U=
14257for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue 14249for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
14258 # 1. Remove the extension, and $U if already installed. 14250 # 1. Remove the extension, and $U if already installed.
14259 ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' 14251 ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
@@ -14277,43 +14269,43 @@ else
14277fi 14269fi
14278 14270
14279if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then 14271if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
14280 as_fn_error $? "conditional \"AMDEP\" was never defined. 14272 as_fn_error "conditional \"AMDEP\" was never defined.
14281Usually this means the macro was only invoked conditionally." "$LINENO" 5 14273Usually this means the macro was only invoked conditionally." "$LINENO" 5
14282fi 14274fi
14283if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then 14275if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
14284 as_fn_error $? "conditional \"am__fastdepCC\" was never defined. 14276 as_fn_error "conditional \"am__fastdepCC\" was never defined.
14285Usually this means the macro was only invoked conditionally." "$LINENO" 5 14277Usually this means the macro was only invoked conditionally." "$LINENO" 5
14286fi 14278fi
14287if test -z "${EET_AMALGAMATION_TRUE}" && test -z "${EET_AMALGAMATION_FALSE}"; then 14279if test -z "${EET_AMALGAMATION_TRUE}" && test -z "${EET_AMALGAMATION_FALSE}"; then
14288 as_fn_error $? "conditional \"EET_AMALGAMATION\" was never defined. 14280 as_fn_error "conditional \"EET_AMALGAMATION\" was never defined.
14289Usually this means the macro was only invoked conditionally." "$LINENO" 5 14281Usually this means the macro was only invoked conditionally." "$LINENO" 5
14290fi 14282fi
14291if test -z "${BUILD_EET_TRUE}" && test -z "${BUILD_EET_FALSE}"; then 14283if test -z "${BUILD_EET_TRUE}" && test -z "${BUILD_EET_FALSE}"; then
14292 as_fn_error $? "conditional \"BUILD_EET\" was never defined. 14284 as_fn_error "conditional \"BUILD_EET\" was never defined.
14293Usually this means the macro was only invoked conditionally." "$LINENO" 5 14285Usually this means the macro was only invoked conditionally." "$LINENO" 5
14294fi 14286fi
14295if test -z "${INSTALL_EXAMPLES_TRUE}" && test -z "${INSTALL_EXAMPLES_FALSE}"; then 14287if test -z "${INSTALL_EXAMPLES_TRUE}" && test -z "${INSTALL_EXAMPLES_FALSE}"; then
14296 as_fn_error $? "conditional \"INSTALL_EXAMPLES\" was never defined. 14288 as_fn_error "conditional \"INSTALL_EXAMPLES\" was never defined.
14297Usually this means the macro was only invoked conditionally." "$LINENO" 5 14289Usually this means the macro was only invoked conditionally." "$LINENO" 5
14298fi 14290fi
14299if test -z "${BUILD_EXAMPLES_TRUE}" && test -z "${BUILD_EXAMPLES_FALSE}"; then 14291if test -z "${BUILD_EXAMPLES_TRUE}" && test -z "${BUILD_EXAMPLES_FALSE}"; then
14300 as_fn_error $? "conditional \"BUILD_EXAMPLES\" was never defined. 14292 as_fn_error "conditional \"BUILD_EXAMPLES\" was never defined.
14301Usually this means the macro was only invoked conditionally." "$LINENO" 5 14293Usually this means the macro was only invoked conditionally." "$LINENO" 5
14302fi 14294fi
14303if test -z "${EFL_ENABLE_TESTS_TRUE}" && test -z "${EFL_ENABLE_TESTS_FALSE}"; then 14295if test -z "${EFL_ENABLE_TESTS_TRUE}" && test -z "${EFL_ENABLE_TESTS_FALSE}"; then
14304 as_fn_error $? "conditional \"EFL_ENABLE_TESTS\" was never defined. 14296 as_fn_error "conditional \"EFL_ENABLE_TESTS\" was never defined.
14305Usually this means the macro was only invoked conditionally." "$LINENO" 5 14297Usually this means the macro was only invoked conditionally." "$LINENO" 5
14306fi 14298fi
14307if test -z "${EFL_ENABLE_COVERAGE_TRUE}" && test -z "${EFL_ENABLE_COVERAGE_FALSE}"; then 14299if test -z "${EFL_ENABLE_COVERAGE_TRUE}" && test -z "${EFL_ENABLE_COVERAGE_FALSE}"; then
14308 as_fn_error $? "conditional \"EFL_ENABLE_COVERAGE\" was never defined. 14300 as_fn_error "conditional \"EFL_ENABLE_COVERAGE\" was never defined.
14309Usually this means the macro was only invoked conditionally." "$LINENO" 5 14301Usually this means the macro was only invoked conditionally." "$LINENO" 5
14310fi 14302fi
14311if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then 14303if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
14312 as_fn_error $? "conditional \"am__fastdepCC\" was never defined. 14304 as_fn_error "conditional \"am__fastdepCC\" was never defined.
14313Usually this means the macro was only invoked conditionally." "$LINENO" 5 14305Usually this means the macro was only invoked conditionally." "$LINENO" 5
14314fi 14306fi
14315if test -z "${EFL_BUILD_DOC_TRUE}" && test -z "${EFL_BUILD_DOC_FALSE}"; then 14307if test -z "${EFL_BUILD_DOC_TRUE}" && test -z "${EFL_BUILD_DOC_FALSE}"; then
14316 as_fn_error $? "conditional \"EFL_BUILD_DOC\" was never defined. 14308 as_fn_error "conditional \"EFL_BUILD_DOC\" was never defined.
14317Usually this means the macro was only invoked conditionally." "$LINENO" 5 14309Usually this means the macro was only invoked conditionally." "$LINENO" 5
14318fi 14310fi
14319 14311
@@ -14463,19 +14455,19 @@ export LANGUAGE
14463(unset CDPATH) >/dev/null 2>&1 && unset CDPATH 14455(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
14464 14456
14465 14457
14466# as_fn_error STATUS ERROR [LINENO LOG_FD] 14458# as_fn_error ERROR [LINENO LOG_FD]
14467# ---------------------------------------- 14459# ---------------------------------
14468# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are 14460# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
14469# provided, also output the error to LOG_FD, referencing LINENO. Then exit the 14461# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
14470# script with STATUS, using 1 if that was 0. 14462# script with status $?, using 1 if that was 0.
14471as_fn_error () 14463as_fn_error ()
14472{ 14464{
14473 as_status=$1; test $as_status -eq 0 && as_status=1 14465 as_status=$?; test $as_status -eq 0 && as_status=1
14474 if test "$4"; then 14466 if test "$3"; then
14475 as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 14467 as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
14476 $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 14468 $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
14477 fi 14469 fi
14478 $as_echo "$as_me: error: $2" >&2 14470 $as_echo "$as_me: error: $1" >&2
14479 as_fn_exit $as_status 14471 as_fn_exit $as_status
14480} # as_fn_error 14472} # as_fn_error
14481 14473
@@ -14671,7 +14663,7 @@ $as_echo X"$as_dir" |
14671 test -d "$as_dir" && break 14663 test -d "$as_dir" && break
14672 done 14664 done
14673 test -z "$as_dirs" || eval "mkdir $as_dirs" 14665 test -z "$as_dirs" || eval "mkdir $as_dirs"
14674 } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" 14666 } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir"
14675 14667
14676 14668
14677} # as_fn_mkdir_p 14669} # as_fn_mkdir_p
@@ -14724,8 +14716,8 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
14724# report actual input values of CONFIG_FILES etc. instead of their 14716# report actual input values of CONFIG_FILES etc. instead of their
14725# values after options handling. 14717# values after options handling.
14726ac_log=" 14718ac_log="
14727This file was extended by eet $as_me 1.5.0, which was 14719This file was extended by eet $as_me 1.5.99.67344, which was
14728generated by GNU Autoconf 2.67. Invocation command line was 14720generated by GNU Autoconf 2.65. Invocation command line was
14729 14721
14730 CONFIG_FILES = $CONFIG_FILES 14722 CONFIG_FILES = $CONFIG_FILES
14731 CONFIG_HEADERS = $CONFIG_HEADERS 14723 CONFIG_HEADERS = $CONFIG_HEADERS
@@ -14790,11 +14782,11 @@ _ACEOF
14790cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 14782cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
14791ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" 14783ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
14792ac_cs_version="\\ 14784ac_cs_version="\\
14793eet config.status 1.5.0 14785eet config.status 1.5.99.67344
14794configured by $0, generated by GNU Autoconf 2.67, 14786configured by $0, generated by GNU Autoconf 2.65,
14795 with options \\"\$ac_cs_config\\" 14787 with options \\"\$ac_cs_config\\"
14796 14788
14797Copyright (C) 2010 Free Software Foundation, Inc. 14789Copyright (C) 2009 Free Software Foundation, Inc.
14798This config.status script is free software; the Free Software Foundation 14790This config.status script is free software; the Free Software Foundation
14799gives unlimited permission to copy, distribute and modify it." 14791gives unlimited permission to copy, distribute and modify it."
14800 14792
@@ -14812,16 +14804,11 @@ ac_need_defaults=:
14812while test $# != 0 14804while test $# != 0
14813do 14805do
14814 case $1 in 14806 case $1 in
14815 --*=?*) 14807 --*=*)
14816 ac_option=`expr "X$1" : 'X\([^=]*\)='` 14808 ac_option=`expr "X$1" : 'X\([^=]*\)='`
14817 ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` 14809 ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
14818 ac_shift=: 14810 ac_shift=:
14819 ;; 14811 ;;
14820 --*=)
14821 ac_option=`expr "X$1" : 'X\([^=]*\)='`
14822 ac_optarg=
14823 ac_shift=:
14824 ;;
14825 *) 14812 *)
14826 ac_option=$1 14813 ac_option=$1
14827 ac_optarg=$2 14814 ac_optarg=$2
@@ -14843,7 +14830,6 @@ do
14843 $ac_shift 14830 $ac_shift
14844 case $ac_optarg in 14831 case $ac_optarg in
14845 *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; 14832 *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
14846 '') as_fn_error $? "missing file argument" ;;
14847 esac 14833 esac
14848 as_fn_append CONFIG_FILES " '$ac_optarg'" 14834 as_fn_append CONFIG_FILES " '$ac_optarg'"
14849 ac_need_defaults=false;; 14835 ac_need_defaults=false;;
@@ -14856,7 +14842,7 @@ do
14856 ac_need_defaults=false;; 14842 ac_need_defaults=false;;
14857 --he | --h) 14843 --he | --h)
14858 # Conflict between --help and --header 14844 # Conflict between --help and --header
14859 as_fn_error $? "ambiguous option: \`$1' 14845 as_fn_error "ambiguous option: \`$1'
14860Try \`$0 --help' for more information.";; 14846Try \`$0 --help' for more information.";;
14861 --help | --hel | -h ) 14847 --help | --hel | -h )
14862 $as_echo "$ac_cs_usage"; exit ;; 14848 $as_echo "$ac_cs_usage"; exit ;;
@@ -14865,7 +14851,7 @@ Try \`$0 --help' for more information.";;
14865 ac_cs_silent=: ;; 14851 ac_cs_silent=: ;;
14866 14852
14867 # This is an error. 14853 # This is an error.
14868 -*) as_fn_error $? "unrecognized option: \`$1' 14854 -*) as_fn_error "unrecognized option: \`$1'
14869Try \`$0 --help' for more information." ;; 14855Try \`$0 --help' for more information." ;;
14870 14856
14871 *) as_fn_append ac_config_targets " $1" 14857 *) as_fn_append ac_config_targets " $1"
@@ -15190,7 +15176,7 @@ do
15190 "src/examples/Makefile") CONFIG_FILES="$CONFIG_FILES src/examples/Makefile" ;; 15176 "src/examples/Makefile") CONFIG_FILES="$CONFIG_FILES src/examples/Makefile" ;;
15191 "eet.spec") CONFIG_FILES="$CONFIG_FILES eet.spec" ;; 15177 "eet.spec") CONFIG_FILES="$CONFIG_FILES eet.spec" ;;
15192 15178
15193 *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5 ;; 15179 *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
15194 esac 15180 esac
15195done 15181done
15196 15182
@@ -15228,7 +15214,7 @@ $debug ||
15228{ 15214{
15229 tmp=./conf$$-$RANDOM 15215 tmp=./conf$$-$RANDOM
15230 (umask 077 && mkdir "$tmp") 15216 (umask 077 && mkdir "$tmp")
15231} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 15217} || as_fn_error "cannot create a temporary directory in ." "$LINENO" 5
15232 15218
15233# Set up the scripts for CONFIG_FILES section. 15219# Set up the scripts for CONFIG_FILES section.
15234# No need to generate them if there are no CONFIG_FILES. 15220# No need to generate them if there are no CONFIG_FILES.
@@ -15245,7 +15231,7 @@ if test "x$ac_cr" = x; then
15245fi 15231fi
15246ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null` 15232ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
15247if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then 15233if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
15248 ac_cs_awk_cr='\\r' 15234 ac_cs_awk_cr='\r'
15249else 15235else
15250 ac_cs_awk_cr=$ac_cr 15236 ac_cs_awk_cr=$ac_cr
15251fi 15237fi
@@ -15259,18 +15245,18 @@ _ACEOF
15259 echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && 15245 echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
15260 echo "_ACEOF" 15246 echo "_ACEOF"
15261} >conf$$subs.sh || 15247} >conf$$subs.sh ||
15262 as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 15248 as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
15263ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` 15249ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'`
15264ac_delim='%!_!# ' 15250ac_delim='%!_!# '
15265for ac_last_try in false false false false false :; do 15251for ac_last_try in false false false false false :; do
15266 . ./conf$$subs.sh || 15252 . ./conf$$subs.sh ||
15267 as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 15253 as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
15268 15254
15269 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` 15255 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
15270 if test $ac_delim_n = $ac_delim_num; then 15256 if test $ac_delim_n = $ac_delim_num; then
15271 break 15257 break
15272 elif $ac_last_try; then 15258 elif $ac_last_try; then
15273 as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 15259 as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
15274 else 15260 else
15275 ac_delim="$ac_delim!$ac_delim _$ac_delim!! " 15261 ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
15276 fi 15262 fi
@@ -15359,28 +15345,20 @@ if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
15359else 15345else
15360 cat 15346 cat
15361fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ 15347fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
15362 || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 15348 || as_fn_error "could not setup config files machinery" "$LINENO" 5
15363_ACEOF 15349_ACEOF
15364 15350
15365# VPATH may cause trouble with some makes, so we remove sole $(srcdir), 15351# VPATH may cause trouble with some makes, so we remove $(srcdir),
15366# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and 15352# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
15367# trailing colons and then remove the whole line if VPATH becomes empty 15353# trailing colons and then remove the whole line if VPATH becomes empty
15368# (actually we leave an empty line to preserve line numbers). 15354# (actually we leave an empty line to preserve line numbers).
15369if test "x$srcdir" = x.; then 15355if test "x$srcdir" = x.; then
15370 ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ 15356 ac_vpsub='/^[ ]*VPATH[ ]*=/{
15371h 15357s/:*\$(srcdir):*/:/
15372s/// 15358s/:*\${srcdir}:*/:/
15373s/^/:/ 15359s/:*@srcdir@:*/:/
15374s/[ ]*$/:/ 15360s/^\([^=]*=[ ]*\):*/\1/
15375s/:\$(srcdir):/:/g
15376s/:\${srcdir}:/:/g
15377s/:@srcdir@:/:/g
15378s/^:*//
15379s/:*$// 15361s/:*$//
15380x
15381s/\(=[ ]*\).*/\1/
15382G
15383s/\n//
15384s/^[^=]*=[ ]*$// 15362s/^[^=]*=[ ]*$//
15385}' 15363}'
15386fi 15364fi
@@ -15408,7 +15386,7 @@ for ac_last_try in false false :; do
15408 if test -z "$ac_t"; then 15386 if test -z "$ac_t"; then
15409 break 15387 break
15410 elif $ac_last_try; then 15388 elif $ac_last_try; then
15411 as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 15389 as_fn_error "could not make $CONFIG_HEADERS" "$LINENO" 5
15412 else 15390 else
15413 ac_delim="$ac_delim!$ac_delim _$ac_delim!! " 15391 ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
15414 fi 15392 fi
@@ -15493,7 +15471,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
15493_ACAWK 15471_ACAWK
15494_ACEOF 15472_ACEOF
15495cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 15473cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
15496 as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 15474 as_fn_error "could not setup config headers machinery" "$LINENO" 5
15497fi # test -n "$CONFIG_HEADERS" 15475fi # test -n "$CONFIG_HEADERS"
15498 15476
15499 15477
@@ -15506,7 +15484,7 @@ do
15506 esac 15484 esac
15507 case $ac_mode$ac_tag in 15485 case $ac_mode$ac_tag in
15508 :[FHL]*:*);; 15486 :[FHL]*:*);;
15509 :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5 ;; 15487 :L* | :C*:*) as_fn_error "invalid tag \`$ac_tag'" "$LINENO" 5;;
15510 :[FH]-) ac_tag=-:-;; 15488 :[FH]-) ac_tag=-:-;;
15511 :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; 15489 :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
15512 esac 15490 esac
@@ -15534,7 +15512,7 @@ do
15534 [\\/$]*) false;; 15512 [\\/$]*) false;;
15535 *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; 15513 *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
15536 esac || 15514 esac ||
15537 as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5 ;; 15515 as_fn_error "cannot find input file: \`$ac_f'" "$LINENO" 5;;
15538 esac 15516 esac
15539 case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac 15517 case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
15540 as_fn_append ac_file_inputs " '$ac_f'" 15518 as_fn_append ac_file_inputs " '$ac_f'"
@@ -15561,7 +15539,7 @@ $as_echo "$as_me: creating $ac_file" >&6;}
15561 15539
15562 case $ac_tag in 15540 case $ac_tag in
15563 *:-:* | *:-) cat >"$tmp/stdin" \ 15541 *:-:* | *:-) cat >"$tmp/stdin" \
15564 || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; 15542 || as_fn_error "could not create $ac_file" "$LINENO" 5 ;;
15565 esac 15543 esac
15566 ;; 15544 ;;
15567 esac 15545 esac
@@ -15698,22 +15676,22 @@ s&@MKDIR_P@&$ac_MKDIR_P&;t t
15698$ac_datarootdir_hack 15676$ac_datarootdir_hack
15699" 15677"
15700eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ 15678eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \
15701 || as_fn_error $? "could not create $ac_file" "$LINENO" 5 15679 || as_fn_error "could not create $ac_file" "$LINENO" 5
15702 15680
15703test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && 15681test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
15704 { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && 15682 { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
15705 { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && 15683 { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
15706 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' 15684 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
15707which seems to be undefined. Please make sure it is defined" >&5 15685which seems to be undefined. Please make sure it is defined." >&5
15708$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' 15686$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
15709which seems to be undefined. Please make sure it is defined" >&2;} 15687which seems to be undefined. Please make sure it is defined." >&2;}
15710 15688
15711 rm -f "$tmp/stdin" 15689 rm -f "$tmp/stdin"
15712 case $ac_file in 15690 case $ac_file in
15713 -) cat "$tmp/out" && rm -f "$tmp/out";; 15691 -) cat "$tmp/out" && rm -f "$tmp/out";;
15714 *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; 15692 *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
15715 esac \ 15693 esac \
15716 || as_fn_error $? "could not create $ac_file" "$LINENO" 5 15694 || as_fn_error "could not create $ac_file" "$LINENO" 5
15717 ;; 15695 ;;
15718 :H) 15696 :H)
15719 # 15697 #
@@ -15724,19 +15702,19 @@ which seems to be undefined. Please make sure it is defined" >&2;}
15724 $as_echo "/* $configure_input */" \ 15702 $as_echo "/* $configure_input */" \
15725 && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" 15703 && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs"
15726 } >"$tmp/config.h" \ 15704 } >"$tmp/config.h" \
15727 || as_fn_error $? "could not create $ac_file" "$LINENO" 5 15705 || as_fn_error "could not create $ac_file" "$LINENO" 5
15728 if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then 15706 if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then
15729 { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 15707 { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
15730$as_echo "$as_me: $ac_file is unchanged" >&6;} 15708$as_echo "$as_me: $ac_file is unchanged" >&6;}
15731 else 15709 else
15732 rm -f "$ac_file" 15710 rm -f "$ac_file"
15733 mv "$tmp/config.h" "$ac_file" \ 15711 mv "$tmp/config.h" "$ac_file" \
15734 || as_fn_error $? "could not create $ac_file" "$LINENO" 5 15712 || as_fn_error "could not create $ac_file" "$LINENO" 5
15735 fi 15713 fi
15736 else 15714 else
15737 $as_echo "/* $configure_input */" \ 15715 $as_echo "/* $configure_input */" \
15738 && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ 15716 && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \
15739 || as_fn_error $? "could not create -" "$LINENO" 5 15717 || as_fn_error "could not create -" "$LINENO" 5
15740 fi 15718 fi
15741# Compute "$ac_file"'s index in $config_headers. 15719# Compute "$ac_file"'s index in $config_headers.
15742_am_arg="$ac_file" 15720_am_arg="$ac_file"
@@ -16527,7 +16505,7 @@ _ACEOF
16527ac_clean_files=$ac_clean_files_save 16505ac_clean_files=$ac_clean_files_save
16528 16506
16529test $ac_write_fail = 0 || 16507test $ac_write_fail = 0 ||
16530 as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 16508 as_fn_error "write failure creating $CONFIG_STATUS" "$LINENO" 5
16531 16509
16532 16510
16533# configure is writing to config.log, and then calls config.status. 16511# configure is writing to config.log, and then calls config.status.
@@ -16548,7 +16526,7 @@ if test "$no_create" != yes; then
16548 exec 5>>config.log 16526 exec 5>>config.log
16549 # Use ||, not &&, to avoid exiting from the if with $? = 1, which 16527 # Use ||, not &&, to avoid exiting from the if with $? = 1, which
16550 # would make configure fail if this is the last instruction. 16528 # would make configure fail if this is the last instruction.
16551 $ac_cs_success || as_fn_exit 1 16529 $ac_cs_success || as_fn_exit $?
16552fi 16530fi
16553if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then 16531if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
16554 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 16532 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
diff --git a/libraries/eet/configure.ac b/libraries/eet/configure.ac
index 984cd75..220e2a1 100644
--- a/libraries/eet/configure.ac
+++ b/libraries/eet/configure.ac
@@ -2,11 +2,11 @@ y##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
2##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## 2##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
3m4_define([v_maj], [1]) 3m4_define([v_maj], [1])
4m4_define([v_min], [5]) 4m4_define([v_min], [5])
5m4_define([v_mic], [0]) 5m4_define([v_mic], [99])
6m4_define([v_rev], m4_esyscmd([(svnversion "${SVN_REPO_PATH:-.}" | grep -v export || 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
9m4_undefine([v_rev]) 9dnl m4_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-05]) 11dnl m4_define([relname], [ver-pre-svn-05])
12dnl m4_define([v_rel], [-release relname]) 12dnl m4_define([v_rel], [-release relname])
diff --git a/libraries/eet/doc/Doxyfile b/libraries/eet/doc/Doxyfile
index bf2352b..f6e3026 100644
--- a/libraries/eet/doc/Doxyfile
+++ b/libraries/eet/doc/Doxyfile
@@ -1,139 +1,1694 @@
1# Doxyfile 1.7.3
2
3# This file describes the settings to be used by the documentation system
4# doxygen (www.doxygen.org) for a project.
5#
6# All text after a hash (#) is considered a comment and will be ignored.
7# The format is:
8# TAG = value [value, ...]
9# For lists items can also be appended using:
10# TAG += value [value, ...]
11# Values that contain spaces should be placed between quotes (" ").
12
13#---------------------------------------------------------------------------
14# Project related configuration options
15#---------------------------------------------------------------------------
16
17# This tag specifies the encoding used for all characters in the config file
18# that follow. The default is UTF-8 which is also the encoding used for all
19# text before the first occurrence of this tag. Doxygen uses libiconv (or the
20# iconv built into libc) for the transcoding. See
21# http://www.gnu.org/software/libiconv for the list of possible encodings.
22
23DOXYFILE_ENCODING = UTF-8
24
25# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
26# by quotes) that should identify the project.
27
1PROJECT_NAME = Eet 28PROJECT_NAME = Eet
2PROJECT_NUMBER = 1.5.0 29
30# The PROJECT_NUMBER tag can be used to enter a project or revision number.
31# This could be handy for archiving the generated documentation or
32# if some version control system is used.
33
34PROJECT_NUMBER = 1.5.99.67344
35
36# Using the PROJECT_BRIEF tag one can provide an optional one line description for a project that appears at the top of each page and should give viewer a quick idea about the purpose of the project. Keep the description short.
37
38PROJECT_BRIEF =
39
40# With the PROJECT_LOGO tag one can specify an logo or icon that is
41# included in the documentation. The maximum height of the logo should not
42# exceed 55 pixels and the maximum width should not exceed 200 pixels.
43# Doxygen will copy the logo to the output directory.
44
45PROJECT_LOGO =
46
47# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
48# base path where the generated documentation will be put.
49# If a relative path is entered, it will be relative to the location
50# where doxygen was started. If left blank the current directory will be used.
51
3OUTPUT_DIRECTORY = . 52OUTPUT_DIRECTORY = .
4INPUT = ./eet.dox ./examples.dox ../src/lib 53
5IMAGE_PATH = img 54# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
55# 4096 sub-directories (in 2 levels) under the output directory of each output
56# format and will distribute the generated files over these directories.
57# Enabling this option can be useful when feeding doxygen a huge amount of
58# source files, where putting all generated files in the same directory would
59# otherwise cause performance problems for the file system.
60
61CREATE_SUBDIRS = NO
62
63# The OUTPUT_LANGUAGE tag is used to specify the language in which all
64# documentation generated by doxygen is written. Doxygen will use this
65# information to generate all constant output in the proper language.
66# The default language is English, other supported languages are:
67# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional,
68# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German,
69# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English
70# messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian,
71# Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak,
72# Slovene, Spanish, Swedish, Ukrainian, and Vietnamese.
73
6OUTPUT_LANGUAGE = English 74OUTPUT_LANGUAGE = English
7GENERATE_HTML = YES 75
8HTML_OUTPUT = html 76# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
9HTML_FILE_EXTENSION = .html 77# include brief member descriptions after the members that are listed in
10HTML_HEADER = ./head.html 78# the file and class documentation (similar to JavaDoc).
11HTML_FOOTER = ./foot.html 79# Set to NO to disable this.
12HTML_STYLESHEET = ./e.css 80
13HTML_ALIGN_MEMBERS = YES
14ENUM_VALUES_PER_LINE = 1
15GENERATE_HTMLHELP = NO
16CHM_FILE =
17HHC_LOCATION =
18GENERATE_CHI = NO
19BINARY_TOC = NO
20TOC_EXPAND = NO
21DISABLE_INDEX = YES
22EXTRACT_ALL = NO
23EXTRACT_PRIVATE = NO
24EXTRACT_STATIC = NO
25EXTRACT_LOCAL_CLASSES = NO
26HIDE_UNDOC_MEMBERS = YES
27HIDE_UNDOC_CLASSES = YES
28HIDE_FRIEND_COMPOUNDS = YES
29BRIEF_MEMBER_DESC = YES 81BRIEF_MEMBER_DESC = YES
82
83# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
84# the brief description of a member or function before the detailed description.
85# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
86# brief descriptions will be completely suppressed.
87
30REPEAT_BRIEF = YES 88REPEAT_BRIEF = YES
89
90# This tag implements a quasi-intelligent brief description abbreviator
91# that is used to form the text in various listings. Each string
92# in this list, if found as the leading text of the brief description, will be
93# stripped from the text and the result after processing the whole list, is
94# used as the annotated text. Otherwise, the brief description is used as-is.
95# If left blank, the following values are used ("$name" is automatically
96# replaced with the name of the entity): "The $name class" "The $name widget"
97# "The $name file" "is" "provides" "specifies" "contains"
98# "represents" "a" "an" "the"
99
100ABBREVIATE_BRIEF =
101
102# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
103# Doxygen will generate a detailed section even if there is only a brief
104# description.
105
31ALWAYS_DETAILED_SEC = NO 106ALWAYS_DETAILED_SEC = NO
107
108# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
109# inherited members of a class in the documentation of that class as if those
110# members were ordinary class members. Constructors, destructors and assignment
111# operators of the base classes will not be shown.
112
32INLINE_INHERITED_MEMB = NO 113INLINE_INHERITED_MEMB = NO
114
115# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
116# path before files name in the file list and in the header files. If set
117# to NO the shortest path that makes the file name unique will be used.
118
33FULL_PATH_NAMES = NO 119FULL_PATH_NAMES = NO
34STRIP_FROM_PATH = 120
35INTERNAL_DOCS = NO 121# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
36STRIP_CODE_COMMENTS = NO 122# can be used to strip a user-defined part of the path. Stripping is
37CASE_SENSE_NAMES = YES 123# only done if one of the specified strings matches the left-hand part of
124# the path. The tag can be used to show relative paths in the file list.
125# If left blank the directory from which doxygen is run is used as the
126# path to strip.
127
128STRIP_FROM_PATH =
129
130# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
131# the path mentioned in the documentation of a class, which tells
132# the reader which header file to include in order to use a class.
133# If left blank only the name of the header file containing the class
134# definition is used. Otherwise one should specify the include paths that
135# are normally passed to the compiler using the -I flag.
136
137STRIP_FROM_INC_PATH =
138
139# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
140# (but less readable) file names. This can be useful if your file system
141# doesn't support long names like on DOS, Mac, or CD-ROM.
142
38SHORT_NAMES = NO 143SHORT_NAMES = NO
39HIDE_SCOPE_NAMES = NO 144
40VERBATIM_HEADERS = NO 145# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
41SHOW_INCLUDE_FILES = NO 146# will interpret the first line (until the first dot) of a JavaDoc-style
147# comment as the brief description. If set to NO, the JavaDoc
148# comments will behave just like regular Qt-style comments
149# (thus requiring an explicit @brief command for a brief description.)
150
42JAVADOC_AUTOBRIEF = YES 151JAVADOC_AUTOBRIEF = YES
152
153# If the QT_AUTOBRIEF tag is set to YES then Doxygen will
154# interpret the first line (until the first dot) of a Qt-style
155# comment as the brief description. If set to NO, the comments
156# will behave just like regular Qt-style comments (thus requiring
157# an explicit \brief command for a brief description.)
158
159QT_AUTOBRIEF = NO
160
161# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen
162# treat a multi-line C++ special comment block (i.e. a block of //! or ///
163# comments) as a brief description. This used to be the default behaviour.
164# The new default is to treat a multi-line C++ comment block as a detailed
165# description. Set this tag to YES if you prefer the old behaviour instead.
166
43MULTILINE_CPP_IS_BRIEF = NO 167MULTILINE_CPP_IS_BRIEF = NO
44DETAILS_AT_TOP = NO 168
169# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
170# member inherits the documentation from any documented member that it
171# re-implements.
172
45INHERIT_DOCS = YES 173INHERIT_DOCS = YES
46INLINE_INFO = YES 174
47SORT_MEMBER_DOCS = YES 175# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce
48DISTRIBUTE_GROUP_DOC = NO 176# a new page for each member. If set to NO, the documentation of a member will
177# be part of the file/class/namespace that contains it.
178
179SEPARATE_MEMBER_PAGES = NO
180
181# The TAB_SIZE tag can be used to set the number of spaces in a tab.
182# Doxygen uses this value to replace tabs by spaces in code fragments.
183
49TAB_SIZE = 8 184TAB_SIZE = 8
185
186# This tag can be used to specify a number of aliases that acts
187# as commands in the documentation. An alias has the form "name=value".
188# For example adding "sideeffect=\par Side Effects:\n" will allow you to
189# put the command \sideeffect (or @sideeffect) in the documentation, which
190# will result in a user-defined paragraph with heading "Side Effects:".
191# You can put \n's in the value part of an alias to insert newlines.
192
193ALIASES =
194
195# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C
196# sources only. Doxygen will then generate output that is more tailored for C.
197# For instance, some of the names that are used will be different. The list
198# of all members will be omitted, etc.
199
200OPTIMIZE_OUTPUT_FOR_C = YES
201
202# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java
203# sources only. Doxygen will then generate output that is more tailored for
204# Java. For instance, namespaces will be presented as packages, qualified
205# scopes will look different, etc.
206
207OPTIMIZE_OUTPUT_JAVA = NO
208
209# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
210# sources only. Doxygen will then generate output that is more tailored for
211# Fortran.
212
213OPTIMIZE_FOR_FORTRAN = NO
214
215# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
216# sources. Doxygen will then generate output that is tailored for
217# VHDL.
218
219OPTIMIZE_OUTPUT_VHDL = NO
220
221# Doxygen selects the parser to use depending on the extension of the files it
222# parses. With this tag you can assign which parser to use for a given extension.
223# Doxygen has a built-in mapping, but you can override or extend it using this
224# tag. The format is ext=language, where ext is a file extension, and language
225# is one of the parsers supported by doxygen: IDL, Java, Javascript, CSharp, C,
226# C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make
227# doxygen treat .inc files as Fortran files (default is PHP), and .f files as C
228# (default is Fortran), use: inc=Fortran f=C. Note that for custom extensions
229# you also need to set FILE_PATTERNS otherwise the files are not read by doxygen.
230
231EXTENSION_MAPPING =
232
233# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
234# to include (a tag file for) the STL sources as input, then you should
235# set this tag to YES in order to let doxygen match functions declarations and
236# definitions whose arguments contain STL classes (e.g. func(std::string); v.s.
237# func(std::string) {}). This also makes the inheritance and collaboration
238# diagrams that involve STL classes more complete and accurate.
239
240BUILTIN_STL_SUPPORT = NO
241
242# If you use Microsoft's C++/CLI language, you should set this option to YES to
243# enable parsing support.
244
245CPP_CLI_SUPPORT = NO
246
247# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only.
248# Doxygen will parse them like normal C++ but will assume all classes use public
249# instead of private inheritance when no explicit protection keyword is present.
250
251SIP_SUPPORT = NO
252
253# For Microsoft's IDL there are propget and propput attributes to indicate getter
254# and setter methods for a property. Setting this option to YES (the default)
255# will make doxygen replace the get and set methods by a property in the
256# documentation. This will only work if the methods are indeed getting or
257# setting a simple type. If this is not the case, or you want to show the
258# methods anyway, you should set this option to NO.
259
260IDL_PROPERTY_SUPPORT = YES
261
262# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
263# tag is set to YES, then doxygen will reuse the documentation of the first
264# member in the group (if any) for the other members of the group. By default
265# all members of a group must be documented explicitly.
266
267DISTRIBUTE_GROUP_DOC = NO
268
269# Set the SUBGROUPING tag to YES (the default) to allow class member groups of
270# the same type (for instance a group of public functions) to be put as a
271# subgroup of that type (e.g. under the Public Functions section). Set it to
272# NO to prevent subgrouping. Alternatively, this can be done per class using
273# the \nosubgrouping command.
274
275SUBGROUPING = YES
276
277# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum
278# is documented as struct, union, or enum with the name of the typedef. So
279# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
280# with name TypeT. When disabled the typedef will appear as a member of a file,
281# namespace, or class. And the struct will be named TypeS. This can typically
282# be useful for C code in case the coding convention dictates that all compound
283# types are typedef'ed and only the typedef is referenced, never the tag name.
284
285TYPEDEF_HIDES_STRUCT = NO
286
287# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to
288# determine which symbols to keep in memory and which to flush to disk.
289# When the cache is full, less often used symbols will be written to disk.
290# For small to medium size projects (<1000 input files) the default value is
291# probably good enough. For larger projects a too small cache size can cause
292# doxygen to be busy swapping symbols to and from disk most of the time
293# causing a significant performance penalty.
294# If the system has enough physical memory increasing the cache will improve the
295# performance by keeping more symbols in memory. Note that the value works on
296# a logarithmic scale so increasing the size by one will roughly double the
297# memory usage. The cache size is given by this formula:
298# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0,
299# corresponding to a cache size of 2^16 = 65536 symbols
300
301SYMBOL_CACHE_SIZE = 0
302
303#---------------------------------------------------------------------------
304# Build related configuration options
305#---------------------------------------------------------------------------
306
307# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
308# documentation are documented, even if no documentation was available.
309# Private class members and static file members will be hidden unless
310# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
311
312EXTRACT_ALL = NO
313
314# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
315# will be included in the documentation.
316
317EXTRACT_PRIVATE = NO
318
319# If the EXTRACT_STATIC tag is set to YES all static members of a file
320# will be included in the documentation.
321
322EXTRACT_STATIC = NO
323
324# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
325# defined locally in source files will be included in the documentation.
326# If set to NO only classes defined in header files are included.
327
328EXTRACT_LOCAL_CLASSES = NO
329
330# This flag is only useful for Objective-C code. When set to YES local
331# methods, which are defined in the implementation section but not in
332# the interface are included in the documentation.
333# If set to NO (the default) only methods in the interface are included.
334
335EXTRACT_LOCAL_METHODS = NO
336
337# If this flag is set to YES, the members of anonymous namespaces will be
338# extracted and appear in the documentation as a namespace called
339# 'anonymous_namespace{file}', where file will be replaced with the base
340# name of the file that contains the anonymous namespace. By default
341# anonymous namespaces are hidden.
342
343EXTRACT_ANON_NSPACES = NO
344
345# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
346# undocumented members of documented classes, files or namespaces.
347# If set to NO (the default) these members will be included in the
348# various overviews, but no documentation section is generated.
349# This option has no effect if EXTRACT_ALL is enabled.
350
351HIDE_UNDOC_MEMBERS = NO
352
353# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
354# undocumented classes that are normally visible in the class hierarchy.
355# If set to NO (the default) these classes will be included in the various
356# overviews. This option has no effect if EXTRACT_ALL is enabled.
357
358HIDE_UNDOC_CLASSES = NO
359
360# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all
361# friend (class|struct|union) declarations.
362# If set to NO (the default) these declarations will be included in the
363# documentation.
364
365HIDE_FRIEND_COMPOUNDS = NO
366
367# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any
368# documentation blocks found inside the body of a function.
369# If set to NO (the default) these blocks will be appended to the
370# function's detailed documentation block.
371
372HIDE_IN_BODY_DOCS = NO
373
374# The INTERNAL_DOCS tag determines if documentation
375# that is typed after a \internal command is included. If the tag is set
376# to NO (the default) then the documentation will be excluded.
377# Set it to YES to include the internal documentation.
378
379INTERNAL_DOCS = NO
380
381# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
382# file names in lower-case letters. If set to YES upper-case letters are also
383# allowed. This is useful if you have classes or files whose names only differ
384# in case and if your file system supports case sensitive file names. Windows
385# and Mac users are advised to set this option to NO.
386
387CASE_SENSE_NAMES = YES
388
389# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
390# will show members with their full class and namespace scopes in the
391# documentation. If set to YES the scope will be hidden.
392
393HIDE_SCOPE_NAMES = NO
394
395# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
396# will put a list of the files that are included by a file in the documentation
397# of that file.
398
399SHOW_INCLUDE_FILES = NO
400
401# If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen
402# will list include files with double quotes in the documentation
403# rather than with sharp brackets.
404
405FORCE_LOCAL_INCLUDES = NO
406
407# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
408# is inserted in the documentation for inline members.
409
410INLINE_INFO = YES
411
412# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
413# will sort the (detailed) documentation of file and class members
414# alphabetically by member name. If set to NO the members will appear in
415# declaration order.
416
417SORT_MEMBER_DOCS = NO
418
419# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the
420# brief documentation of file, namespace and class members alphabetically
421# by member name. If set to NO (the default) the members will appear in
422# declaration order.
423
424SORT_BRIEF_DOCS = NO
425
426# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen
427# will sort the (brief and detailed) documentation of class members so that
428# constructors and destructors are listed first. If set to NO (the default)
429# the constructors will appear in the respective orders defined by
430# SORT_MEMBER_DOCS and SORT_BRIEF_DOCS.
431# This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO
432# and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO.
433
434SORT_MEMBERS_CTORS_1ST = NO
435
436# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the
437# hierarchy of group names into alphabetical order. If set to NO (the default)
438# the group names will appear in their defined order.
439
440SORT_GROUP_NAMES = NO
441
442# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be
443# sorted by fully-qualified names, including namespaces. If set to
444# NO (the default), the class list will be sorted only by class name,
445# not including the namespace part.
446# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
447# Note: This option applies only to the class list, not to the
448# alphabetical list.
449
450SORT_BY_SCOPE_NAME = NO
451
452# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper type resolution of all parameters of a function it will reject a
453# match between the prototype and the implementation of a member function even if there is only one candidate or it is obvious which candidate to choose by doing a simple string match. By disabling STRICT_PROTO_MATCHING doxygen
454# will still accept a match between prototype and implementation in such cases.
455
456STRICT_PROTO_MATCHING = NO
457
458# The GENERATE_TODOLIST tag can be used to enable (YES) or
459# disable (NO) the todo list. This list is created by putting \todo
460# commands in the documentation.
461
50GENERATE_TODOLIST = YES 462GENERATE_TODOLIST = YES
463
464# The GENERATE_TESTLIST tag can be used to enable (YES) or
465# disable (NO) the test list. This list is created by putting \test
466# commands in the documentation.
467
51GENERATE_TESTLIST = YES 468GENERATE_TESTLIST = YES
469
470# The GENERATE_BUGLIST tag can be used to enable (YES) or
471# disable (NO) the bug list. This list is created by putting \bug
472# commands in the documentation.
473
52GENERATE_BUGLIST = YES 474GENERATE_BUGLIST = YES
475
476# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or
477# disable (NO) the deprecated list. This list is created by putting
478# \deprecated commands in the documentation.
479
53GENERATE_DEPRECATEDLIST= YES 480GENERATE_DEPRECATEDLIST= YES
54ALIASES = 481
55ENABLED_SECTIONS = 482# The ENABLED_SECTIONS tag can be used to enable conditional
483# documentation sections, marked by \if sectionname ... \endif.
484
485ENABLED_SECTIONS =
486
487# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
488# the initial value of a variable or macro consists of for it to appear in
489# the documentation. If the initializer consists of more lines than specified
490# here it will be hidden. Use a value of 0 to hide initializers completely.
491# The appearance of the initializer of individual variables and macros in the
492# documentation can be controlled using \showinitializer or \hideinitializer
493# command in the documentation regardless of this setting.
494
56MAX_INITIALIZER_LINES = 30 495MAX_INITIALIZER_LINES = 30
57OPTIMIZE_OUTPUT_FOR_C = YES 496
58OPTIMIZE_OUTPUT_JAVA = NO 497# Set the SHOW_USED_FILES tag to NO to disable the list of files generated
498# at the bottom of the documentation of classes and structs. If set to YES the
499# list will mention the files that were used to generate the documentation.
500
59SHOW_USED_FILES = NO 501SHOW_USED_FILES = NO
502
503# If the sources in your project are distributed over multiple directories
504# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy
505# in the documentation. The default is NO.
506
507SHOW_DIRECTORIES = NO
508
509# Set the SHOW_FILES tag to NO to disable the generation of the Files page.
510# This will remove the Files entry from the Quick Index and from the
511# Folder Tree View (if specified). The default is YES.
512
513SHOW_FILES = YES
514
515# Set the SHOW_NAMESPACES tag to NO to disable the generation of the
516# Namespaces page.
517# This will remove the Namespaces entry from the Quick Index
518# and from the Folder Tree View (if specified). The default is YES.
519
520SHOW_NAMESPACES = YES
521
522# The FILE_VERSION_FILTER tag can be used to specify a program or script that
523# doxygen should invoke to get the current version for each file (typically from
524# the version control system). Doxygen will invoke the program by executing (via
525# popen()) the command <command> <input-file>, where <command> is the value of
526# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file
527# provided by doxygen. Whatever the program writes to standard output
528# is used as the file version. See the manual for examples.
529
530FILE_VERSION_FILTER =
531
532# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
533# by doxygen. The layout file controls the global structure of the generated
534# output files in an output format independent way. The create the layout file
535# that represents doxygen's defaults, run doxygen with the -l option.
536# You can optionally specify a file name after the option, if omitted
537# DoxygenLayout.xml will be used as the name of the layout file.
538
539LAYOUT_FILE =
540
541#---------------------------------------------------------------------------
542# configuration options related to warning and progress messages
543#---------------------------------------------------------------------------
544
545# The QUIET tag can be used to turn on/off the messages that are generated
546# by doxygen. Possible values are YES and NO. If left blank NO is used.
547
60QUIET = NO 548QUIET = NO
549
550# The WARNINGS tag can be used to turn on/off the warning messages that are
551# generated by doxygen. Possible values are YES and NO. If left blank
552# NO is used.
553
61WARNINGS = YES 554WARNINGS = YES
555
556# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
557# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
558# automatically be disabled.
559
62WARN_IF_UNDOCUMENTED = YES 560WARN_IF_UNDOCUMENTED = YES
561
562# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for
563# potential errors in the documentation, such as not documenting some
564# parameters in a documented function, or documenting parameters that
565# don't exist or using markup commands wrongly.
566
567WARN_IF_DOC_ERROR = YES
568
569# The WARN_NO_PARAMDOC option can be enabled to get warnings for
570# functions that are documented, but have no documentation for their parameters
571# or return value. If set to NO (the default) doxygen will only warn about
572# wrong or incomplete parameter documentation, but not about the absence of
573# documentation.
574
575WARN_NO_PARAMDOC = YES
576
577# The WARN_FORMAT tag determines the format of the warning messages that
578# doxygen can produce. The string should contain the $file, $line, and $text
579# tags, which will be replaced by the file and line number from which the
580# warning originated and the warning text. Optionally the format may contain
581# $version, which will be replaced by the version of the file (if it could
582# be obtained via FILE_VERSION_FILTER)
583
63WARN_FORMAT = "$file:$line: $text" 584WARN_FORMAT = "$file:$line: $text"
64WARN_LOGFILE = 585
65FILE_PATTERNS = 586# The WARN_LOGFILE tag can be used to specify a file to which warning
66RECURSIVE = NO 587# and error messages should be written. If left blank the output is written
67EXCLUDE = 588# to stderr.
589
590WARN_LOGFILE =
591
592#---------------------------------------------------------------------------
593# configuration options related to the input files
594#---------------------------------------------------------------------------
595
596# The INPUT tag can be used to specify the files and/or directories that contain
597# documented source files. You may enter file names like "myfile.cpp" or
598# directories like "/usr/src/myproject". Separate the files or directories
599# with spaces.
600
601INPUT = ./eet.dox \
602 ./examples.dox \
603 ../src/lib
604
605# This tag can be used to specify the character encoding of the source files
606# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
607# also the default input encoding. Doxygen uses libiconv (or the iconv built
608# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for
609# the list of possible encodings.
610
611INPUT_ENCODING = UTF-8
612
613# If the value of the INPUT tag contains directories, you can use the
614# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
615# and *.h) to filter out the source-files in the directories. If left
616# blank the following patterns are tested:
617# *.c *.cc *.cxx *.cpp *.c++ *.d *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh
618# *.hxx *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.dox *.py
619# *.f90 *.f *.for *.vhd *.vhdl
620
621FILE_PATTERNS = *.c \
622 *.h
623
624# The RECURSIVE tag can be used to turn specify whether or not subdirectories
625# should be searched for input files as well. Possible values are YES and NO.
626# If left blank NO is used.
627
628RECURSIVE = YES
629
630# The EXCLUDE tag can be used to specify files and/or directories that should
631# excluded from the INPUT source files. This way you can easily exclude a
632# subdirectory from a directory tree whose root is specified with the INPUT tag.
633
634EXCLUDE = ../src/lib/eet_amalgamation.c
635
636# The EXCLUDE_SYMLINKS tag can be used select whether or not files or
637# directories that are symbolic links (a Unix file system feature) are excluded
638# from the input.
639
68EXCLUDE_SYMLINKS = NO 640EXCLUDE_SYMLINKS = NO
69EXCLUDE_PATTERNS = 641
70EXAMPLE_PATH = ../src/examples/ 642# If the value of the INPUT tag contains directories, you can use the
71EXAMPLE_PATTERNS = 643# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
644# certain files from those directories. Note that the wildcards are matched
645# against the file with absolute path, so to exclude all test directories
646# for example use the pattern */test/*
647
648EXCLUDE_PATTERNS =
649
650# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
651# (namespaces, classes, functions, etc.) that should be excluded from the
652# output. The symbol name can be a fully qualified name, a word, or if the
653# wildcard * is used, a substring. Examples: ANamespace, AClass,
654# AClass::ANamespace, ANamespace::*Test
655
656EXCLUDE_SYMBOLS =
657
658# The EXAMPLE_PATH tag can be used to specify one or more files or
659# directories that contain example code fragments that are included (see
660# the \include command).
661
662EXAMPLE_PATH = ../src/examples
663
664# If the value of the EXAMPLE_PATH tag contains directories, you can use the
665# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
666# and *.h) to filter out the source-files in the directories. If left
667# blank all files are included.
668
669EXAMPLE_PATTERNS = *.c,*.h,*.x
670
671# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
672# searched for input files to be used with the \include or \dontinclude
673# commands irrespective of the value of the RECURSIVE tag.
674# Possible values are YES and NO. If left blank NO is used.
675
72EXAMPLE_RECURSIVE = NO 676EXAMPLE_RECURSIVE = NO
73INPUT_FILTER = 677
678# The IMAGE_PATH tag can be used to specify one or more files or
679# directories that contain image that are included in the documentation (see
680# the \image command).
681
682IMAGE_PATH = ../doc/img
683
684# The INPUT_FILTER tag can be used to specify a program that doxygen should
685# invoke to filter for each input file. Doxygen will invoke the filter program
686# by executing (via popen()) the command <filter> <input-file>, where <filter>
687# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
688# input file. Doxygen will then use the output that the filter program writes
689# to standard output.
690# If FILTER_PATTERNS is specified, this tag will be
691# ignored.
692
693INPUT_FILTER =
694
695# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
696# basis.
697# Doxygen will compare the file name with each pattern and apply the
698# filter if there is a match.
699# The filters are a list of the form:
700# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further
701# info on how filters are used. If FILTER_PATTERNS is empty or if
702# non of the patterns match the file name, INPUT_FILTER is applied.
703
704FILTER_PATTERNS =
705
706# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
707# INPUT_FILTER) will be used to filter the input files when producing source
708# files to browse (i.e. when SOURCE_BROWSER is set to YES).
709
74FILTER_SOURCE_FILES = NO 710FILTER_SOURCE_FILES = NO
711
712# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file
713# pattern. A pattern will override the setting for FILTER_PATTERN (if any)
714# and it is also possible to disable source filtering for a specific pattern
715# using *.ext= (so without naming a filter). This option only has effect when
716# FILTER_SOURCE_FILES is enabled.
717
718FILTER_SOURCE_PATTERNS =
719
720#---------------------------------------------------------------------------
721# configuration options related to source browsing
722#---------------------------------------------------------------------------
723
724# If the SOURCE_BROWSER tag is set to YES then a list of source files will
725# be generated. Documented entities will be cross-referenced with these sources.
726# Note: To get rid of all source code in the generated output, make sure also
727# VERBATIM_HEADERS is set to NO.
728
75SOURCE_BROWSER = NO 729SOURCE_BROWSER = NO
730
731# Setting the INLINE_SOURCES tag to YES will include the body
732# of functions and classes directly in the documentation.
733
76INLINE_SOURCES = NO 734INLINE_SOURCES = NO
735
736# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
737# doxygen to hide any special comment blocks from generated source code
738# fragments. Normal C and C++ comments will always remain visible.
739
740STRIP_CODE_COMMENTS = YES
741
742# If the REFERENCED_BY_RELATION tag is set to YES
743# then for each documented function all documented
744# functions referencing it will be listed.
745
77REFERENCED_BY_RELATION = YES 746REFERENCED_BY_RELATION = YES
747
748# If the REFERENCES_RELATION tag is set to YES
749# then for each documented function all documented entities
750# called/used by that function will be listed.
751
78REFERENCES_RELATION = YES 752REFERENCES_RELATION = YES
753
754# If the REFERENCES_LINK_SOURCE tag is set to YES (the default)
755# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from
756# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will
757# link to the source code.
758# Otherwise they will link to the documentation.
759
760REFERENCES_LINK_SOURCE = YES
761
762# If the USE_HTAGS tag is set to YES then the references to source code
763# will point to the HTML generated by the htags(1) tool instead of doxygen
764# built-in source browser. The htags tool is part of GNU's global source
765# tagging system (see http://www.gnu.org/software/global/global.html). You
766# will need version 4.8.6 or higher.
767
768USE_HTAGS = NO
769
770# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
771# will generate a verbatim copy of the header file for each class for
772# which an include is specified. Set to NO to disable this.
773
774VERBATIM_HEADERS = NO
775
776#---------------------------------------------------------------------------
777# configuration options related to the alphabetical class index
778#---------------------------------------------------------------------------
779
780# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
781# of all compounds will be generated. Enable this if the project
782# contains a lot of classes, structs, unions or interfaces.
783
79ALPHABETICAL_INDEX = YES 784ALPHABETICAL_INDEX = YES
785
786# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
787# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
788# in which this list will be split (can be a number in the range [1..20])
789
80COLS_IN_ALPHA_INDEX = 2 790COLS_IN_ALPHA_INDEX = 2
81IGNORE_PREFIX = eet_ _eet_ Eet_ _Eet_ EET_ _EET_ 791
792# In case all classes in a project start with a common prefix, all
793# classes will be put under the same header in the alphabetical index.
794# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
795# should be ignored while generating the index headers.
796
797IGNORE_PREFIX = eet_ \
798 _eet_ \
799 Eet_ \
800 _Eet_ \
801 EET_ \
802 _EET_
803
804#---------------------------------------------------------------------------
805# configuration options related to the HTML output
806#---------------------------------------------------------------------------
807
808# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
809# generate HTML output.
810
811GENERATE_HTML = YES
812
813# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
814# If a relative path is entered the value of OUTPUT_DIRECTORY will be
815# put in front of it. If left blank `html' will be used as the default path.
816
817HTML_OUTPUT = html
818
819# The HTML_FILE_EXTENSION tag can be used to specify the file extension for
820# each generated HTML page (for example: .htm,.php,.asp). If it is left blank
821# doxygen will generate files with .html extension.
822
823HTML_FILE_EXTENSION = .html
824
825# The HTML_HEADER tag can be used to specify a personal HTML header for
826# each generated HTML page. If it is left blank doxygen will generate a
827# standard header.
828
829HTML_HEADER = ./head.html
830
831# The HTML_FOOTER tag can be used to specify a personal HTML footer for
832# each generated HTML page. If it is left blank doxygen will generate a
833# standard footer.
834
835HTML_FOOTER = ./foot.html
836
837# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
838# style sheet that is used by each HTML page. It can be used to
839# fine-tune the look of the HTML output. If the tag is left blank doxygen
840# will generate a default style sheet. Note that doxygen will try to copy
841# the style sheet file to the HTML output directory, so don't put your own
842# stylesheet in the HTML output directory as well, or it will be erased!
843
844HTML_STYLESHEET = ./e.css
845
846# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output.
847# Doxygen will adjust the colors in the stylesheet and background images
848# according to this color. Hue is specified as an angle on a colorwheel,
849# see http://en.wikipedia.org/wiki/Hue for more information.
850# For instance the value 0 represents red, 60 is yellow, 120 is green,
851# 180 is cyan, 240 is blue, 300 purple, and 360 is red again.
852# The allowed range is 0 to 359.
853
854HTML_COLORSTYLE_HUE = 220
855
856# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of
857# the colors in the HTML output. For a value of 0 the output will use
858# grayscales only. A value of 255 will produce the most vivid colors.
859
860HTML_COLORSTYLE_SAT = 100
861
862# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to
863# the luminance component of the colors in the HTML output. Values below
864# 100 gradually make the output lighter, whereas values above 100 make
865# the output darker. The value divided by 100 is the actual gamma applied,
866# so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2,
867# and 100 does not change the gamma.
868
869HTML_COLORSTYLE_GAMMA = 80
870
871# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
872# page will contain the date and time when the page was generated. Setting
873# this to NO can help when comparing the output of multiple runs.
874
875HTML_TIMESTAMP = YES
876
877# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
878# files or namespaces will be aligned in HTML using tables. If set to
879# NO a bullet list will be used.
880
881HTML_ALIGN_MEMBERS = YES
882
883# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
884# documentation will contain sections that can be hidden and shown after the
885# page has loaded. For this to work a browser that supports
886# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox
887# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari).
888
889HTML_DYNAMIC_SECTIONS = YES
890
891# If the GENERATE_DOCSET tag is set to YES, additional index files
892# will be generated that can be used as input for Apple's Xcode 3
893# integrated development environment, introduced with OSX 10.5 (Leopard).
894# To create a documentation set, doxygen will generate a Makefile in the
895# HTML output directory. Running make will produce the docset in that
896# directory and running "make install" will install the docset in
897# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find
898# it at startup.
899# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
900# for more information.
901
902GENERATE_DOCSET = YES
903
904# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the
905# feed. A documentation feed provides an umbrella under which multiple
906# documentation sets from a single provider (such as a company or product suite)
907# can be grouped.
908
909DOCSET_FEEDNAME = "Doxygen generated docs"
910
911# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that
912# should uniquely identify the documentation set bundle. This should be a
913# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen
914# will append .docset to the name.
915
916DOCSET_BUNDLE_ID = org.enlightenment.Eet
917
918# When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely identify
919# the documentation publisher. This should be a reverse domain-name style
920# string, e.g. com.mycompany.MyDocSet.documentation.
921
922DOCSET_PUBLISHER_ID = org.enlightenment.Eet
923
924# The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher.
925
926DOCSET_PUBLISHER_NAME = Enlightenment
927
928# If the GENERATE_HTMLHELP tag is set to YES, additional index files
929# will be generated that can be used as input for tools like the
930# Microsoft HTML help workshop to generate a compiled HTML help file (.chm)
931# of the generated HTML documentation.
932
933GENERATE_HTMLHELP = YES
934
935# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can
936# be used to specify the file name of the resulting .chm file. You
937# can add a path in front of the file if the result should not be
938# written to the html output directory.
939
940CHM_FILE =
941
942# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can
943# be used to specify the location (absolute path including file name) of
944# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run
945# the HTML help compiler on the generated index.hhp.
946
947HHC_LOCATION =
948
949# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
950# controls if a separate .chi index file is generated (YES) or that
951# it should be included in the master .chm file (NO).
952
953GENERATE_CHI = NO
954
955# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING
956# is used to encode HtmlHelp index (hhk), content (hhc) and project file
957# content.
958
959CHM_INDEX_ENCODING =
960
961# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag
962# controls whether a binary table of contents is generated (YES) or a
963# normal table of contents (NO) in the .chm file.
964
965BINARY_TOC = NO
966
967# The TOC_EXPAND flag can be set to YES to add extra items for group members
968# to the contents of the HTML help documentation and to the tree view.
969
970TOC_EXPAND = NO
971
972# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
973# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated
974# that can be used as input for Qt's qhelpgenerator to generate a
975# Qt Compressed Help (.qch) of the generated HTML documentation.
976
977GENERATE_QHP = NO
978
979# If the QHG_LOCATION tag is specified, the QCH_FILE tag can
980# be used to specify the file name of the resulting .qch file.
981# The path specified is relative to the HTML output folder.
982
983QCH_FILE =
984
985# The QHP_NAMESPACE tag specifies the namespace to use when generating
986# Qt Help Project output. For more information please see
987# http://doc.trolltech.com/qthelpproject.html#namespace
988
989QHP_NAMESPACE = org.enlightenment.Eet
990
991# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating
992# Qt Help Project output. For more information please see
993# http://doc.trolltech.com/qthelpproject.html#virtual-folders
994
995QHP_VIRTUAL_FOLDER = doc
996
997# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to
998# add. For more information please see
999# http://doc.trolltech.com/qthelpproject.html#custom-filters
1000
1001QHP_CUST_FILTER_NAME =
1002
1003# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the
1004# custom filter to add. For more information please see
1005# <a href="http://doc.trolltech.com/qthelpproject.html#custom-filters">
1006# Qt Help Project / Custom Filters</a>.
1007
1008QHP_CUST_FILTER_ATTRS =
1009
1010# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
1011# project's
1012# filter section matches.
1013# <a href="http://doc.trolltech.com/qthelpproject.html#filter-attributes">
1014# Qt Help Project / Filter Attributes</a>.
1015
1016QHP_SECT_FILTER_ATTRS =
1017
1018# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can
1019# be used to specify the location of Qt's qhelpgenerator.
1020# If non-empty doxygen will try to run qhelpgenerator on the generated
1021# .qhp file.
1022
1023QHG_LOCATION =
1024
1025# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files
1026# will be generated, which together with the HTML files, form an Eclipse help
1027# plugin. To install this plugin and make it available under the help contents
1028# menu in Eclipse, the contents of the directory containing the HTML and XML
1029# files needs to be copied into the plugins directory of eclipse. The name of
1030# the directory within the plugins directory should be the same as
1031# the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before
1032# the help appears.
1033
1034GENERATE_ECLIPSEHELP = NO
1035
1036# A unique identifier for the eclipse help plugin. When installing the plugin
1037# the directory name containing the HTML and XML files should also have
1038# this name.
1039
1040ECLIPSE_DOC_ID = org.enlightenment.Eet
1041
1042# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
1043# top of each HTML page. The value NO (the default) enables the index and
1044# the value YES disables it.
1045
1046DISABLE_INDEX = YES
1047
1048# This tag can be used to set the number of enum values (range [0,1..20])
1049# that doxygen will group on one line in the generated HTML documentation.
1050# Note that a value of 0 will completely suppress the enum values from appearing in the overview section.
1051
1052ENUM_VALUES_PER_LINE = 1
1053
1054# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
1055# structure should be generated to display hierarchical information.
1056# If the tag value is set to YES, a side panel will be generated
1057# containing a tree-like index structure (just like the one that
1058# is generated for HTML Help). For this to work a browser that supports
1059# JavaScript, DHTML, CSS and frames is required (i.e. any modern browser).
1060# Windows users are probably better off using the HTML help feature.
1061
82GENERATE_TREEVIEW = NO 1062GENERATE_TREEVIEW = NO
1063
1064# By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories,
1065# and Class Hierarchy pages using a tree view instead of an ordered list.
1066
1067USE_INLINE_TREES = NO
1068
1069# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
1070# used to set the initial width (in pixels) of the frame in which the tree
1071# is shown.
1072
83TREEVIEW_WIDTH = 250 1073TREEVIEW_WIDTH = 250
1074
1075# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open
1076# links to external symbols imported via tag files in a separate window.
1077
1078EXT_LINKS_IN_WINDOW = NO
1079
1080# Use this tag to change the font size of Latex formulas included
1081# as images in the HTML documentation. The default is 10. Note that
1082# when you change the font size after a successful doxygen run you need
1083# to manually remove any form_*.png images from the HTML output directory
1084# to force them to be regenerated.
1085
1086FORMULA_FONTSIZE = 10
1087
1088# Use the FORMULA_TRANPARENT tag to determine whether or not the images
1089# generated for formulas are transparent PNGs. Transparent PNGs are
1090# not supported properly for IE 6.0, but are supported on all modern browsers.
1091# Note that when changing this option you need to delete any form_*.png files
1092# in the HTML output before the changes have effect.
1093
1094FORMULA_TRANSPARENT = YES
1095
1096# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax
1097# (see http://www.mathjax.org) which uses client side Javascript for the
1098# rendering instead of using prerendered bitmaps. Use this if you do not
1099# have LaTeX installed or if you want to formulas look prettier in the HTML
1100# output. When enabled you also need to install MathJax separately and
1101# configure the path to it using the MATHJAX_RELPATH option.
1102
1103USE_MATHJAX = NO
1104
1105# When MathJax is enabled you need to specify the location relative to the
1106# HTML output directory using the MATHJAX_RELPATH option. The destination
1107# directory should contain the MathJax.js script. For instance, if the mathjax
1108# directory is located at the same level as the HTML output directory, then
1109# MATHJAX_RELPATH should be ../mathjax. The default value points to the mathjax.org site, so you can quickly see the result without installing
1110# MathJax, but it is strongly recommended to install a local copy of MathJax
1111# before deployment.
1112
1113MATHJAX_RELPATH = http://www.mathjax.org/mathjax
1114
1115# When the SEARCHENGINE tag is enabled doxygen will generate a search box
1116# for the HTML output. The underlying search engine uses javascript
1117# and DHTML and should work on any modern browser. Note that when using
1118# HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets
1119# (GENERATE_DOCSET) there is already a search function so this one should
1120# typically be disabled. For large projects the javascript based search engine
1121# can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution.
1122
1123SEARCHENGINE = NO
1124
1125# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
1126# implemented using a PHP enabled web server instead of at the web client
1127# using Javascript. Doxygen will generate the search PHP script and index
1128# file to put on the web server. The advantage of the server
1129# based approach is that it scales better to large projects and allows
1130# full text search. The disadvantages are that it is more difficult to setup
1131# and does not have live searching capabilities.
1132
1133SERVER_BASED_SEARCH = NO
1134
1135#---------------------------------------------------------------------------
1136# configuration options related to the LaTeX output
1137#---------------------------------------------------------------------------
1138
1139# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
1140# generate Latex output.
1141
84GENERATE_LATEX = YES 1142GENERATE_LATEX = YES
1143
1144# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
1145# If a relative path is entered the value of OUTPUT_DIRECTORY will be
1146# put in front of it. If left blank `latex' will be used as the default path.
1147
85LATEX_OUTPUT = latex 1148LATEX_OUTPUT = latex
1149
1150# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
1151# invoked. If left blank `latex' will be used as the default command name.
1152# Note that when enabling USE_PDFLATEX this option is only used for
1153# generating bitmaps for formulas in the HTML output, but not in the
1154# Makefile that is written to the output directory.
1155
86LATEX_CMD_NAME = latex 1156LATEX_CMD_NAME = latex
1157
1158# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to
1159# generate index for LaTeX. If left blank `makeindex' will be used as the
1160# default command name.
1161
87MAKEINDEX_CMD_NAME = makeindex 1162MAKEINDEX_CMD_NAME = makeindex
1163
1164# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
1165# LaTeX documents. This may be useful for small projects and may help to
1166# save some trees in general.
1167
88COMPACT_LATEX = NO 1168COMPACT_LATEX = NO
1169
1170# The PAPER_TYPE tag can be used to set the paper type that is used
1171# by the printer. Possible values are: a4, letter, legal and
1172# executive. If left blank a4wide will be used.
1173
89PAPER_TYPE = a4wide 1174PAPER_TYPE = a4wide
90EXTRA_PACKAGES = 1175
91LATEX_HEADER = 1176# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
1177# packages that should be included in the LaTeX output.
1178
1179EXTRA_PACKAGES =
1180
1181# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
1182# the generated latex document. The header should contain everything until
1183# the first chapter. If it is left blank doxygen will generate a
1184# standard header. Notice: only use this tag if you know what you are doing!
1185
1186LATEX_HEADER =
1187
1188# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
1189# is prepared for conversion to pdf (using ps2pdf). The pdf file will
1190# contain links (just like the HTML output) instead of page references
1191# This makes the output suitable for online browsing using a pdf viewer.
1192
92PDF_HYPERLINKS = YES 1193PDF_HYPERLINKS = YES
1194
1195# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
1196# plain latex in the generated Makefile. Set this option to YES to get a
1197# higher quality PDF documentation.
1198
93USE_PDFLATEX = YES 1199USE_PDFLATEX = YES
1200
1201# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
1202# command to the generated LaTeX files. This will instruct LaTeX to keep
1203# running if errors occur, instead of asking the user for help.
1204# This option is also used when generating formulas in HTML.
1205
94LATEX_BATCHMODE = NO 1206LATEX_BATCHMODE = NO
1207
1208# If LATEX_HIDE_INDICES is set to YES then doxygen will not
1209# include the index chapters (such as File Index, Compound Index, etc.)
1210# in the output.
1211
1212LATEX_HIDE_INDICES = NO
1213
1214# If LATEX_SOURCE_CODE is set to YES then doxygen will include
1215# source code with syntax highlighting in the LaTeX output.
1216# Note that which sources are shown also depends on other settings
1217# such as SOURCE_BROWSER.
1218
1219LATEX_SOURCE_CODE = NO
1220
1221#---------------------------------------------------------------------------
1222# configuration options related to the RTF output
1223#---------------------------------------------------------------------------
1224
1225# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
1226# The RTF output is optimized for Word 97 and may not look very pretty with
1227# other RTF readers or editors.
1228
95GENERATE_RTF = NO 1229GENERATE_RTF = NO
1230
1231# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
1232# If a relative path is entered the value of OUTPUT_DIRECTORY will be
1233# put in front of it. If left blank `rtf' will be used as the default path.
1234
96RTF_OUTPUT = rtf 1235RTF_OUTPUT = rtf
1236
1237# If the COMPACT_RTF tag is set to YES Doxygen generates more compact
1238# RTF documents. This may be useful for small projects and may help to
1239# save some trees in general.
1240
97COMPACT_RTF = NO 1241COMPACT_RTF = NO
1242
1243# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
1244# will contain hyperlink fields. The RTF file will
1245# contain links (just like the HTML output) instead of page references.
1246# This makes the output suitable for online browsing using WORD or other
1247# programs which support those fields.
1248# Note: wordpad (write) and others do not support links.
1249
98RTF_HYPERLINKS = NO 1250RTF_HYPERLINKS = NO
99RTF_STYLESHEET_FILE = 1251
100RTF_EXTENSIONS_FILE = 1252# Load stylesheet definitions from file. Syntax is similar to doxygen's
1253# config file, i.e. a series of assignments. You only have to provide
1254# replacements, missing definitions are set to their default value.
1255
1256RTF_STYLESHEET_FILE =
1257
1258# Set optional variables used in the generation of an rtf document.
1259# Syntax is similar to doxygen's config file.
1260
1261RTF_EXTENSIONS_FILE =
1262
1263#---------------------------------------------------------------------------
1264# configuration options related to the man page output
1265#---------------------------------------------------------------------------
1266
1267# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
1268# generate man pages
1269
101GENERATE_MAN = YES 1270GENERATE_MAN = YES
1271
1272# The MAN_OUTPUT tag is used to specify where the man pages will be put.
1273# If a relative path is entered the value of OUTPUT_DIRECTORY will be
1274# put in front of it. If left blank `man' will be used as the default path.
1275
102MAN_OUTPUT = man 1276MAN_OUTPUT = man
1277
1278# The MAN_EXTENSION tag determines the extension that is added to
1279# the generated man pages (default is the subroutine's section .3)
1280
103MAN_EXTENSION = .3 1281MAN_EXTENSION = .3
1282
1283# If the MAN_LINKS tag is set to YES and Doxygen generates man output,
1284# then it will generate one additional man file for each entity
1285# documented in the real man page(s). These additional files
1286# only source the real man page, but without them the man command
1287# would be unable to find the correct page. The default is NO.
1288
104MAN_LINKS = YES 1289MAN_LINKS = YES
1290
1291#---------------------------------------------------------------------------
1292# configuration options related to the XML output
1293#---------------------------------------------------------------------------
1294
1295# If the GENERATE_XML tag is set to YES Doxygen will
1296# generate an XML file that captures the structure of
1297# the code including all documentation.
1298
105GENERATE_XML = NO 1299GENERATE_XML = NO
106XML_SCHEMA = 1300
107XML_DTD = 1301# The XML_OUTPUT tag is used to specify where the XML pages will be put.
1302# If a relative path is entered the value of OUTPUT_DIRECTORY will be
1303# put in front of it. If left blank `xml' will be used as the default path.
1304
1305XML_OUTPUT = xml
1306
1307# The XML_SCHEMA tag can be used to specify an XML schema,
1308# which can be used by a validating XML parser to check the
1309# syntax of the XML files.
1310
1311XML_SCHEMA =
1312
1313# The XML_DTD tag can be used to specify an XML DTD,
1314# which can be used by a validating XML parser to check the
1315# syntax of the XML files.
1316
1317XML_DTD =
1318
1319# If the XML_PROGRAMLISTING tag is set to YES Doxygen will
1320# dump the program listings (including syntax highlighting
1321# and cross-referencing information) to the XML output. Note that
1322# enabling this will significantly increase the size of the XML output.
1323
1324XML_PROGRAMLISTING = YES
1325
1326#---------------------------------------------------------------------------
1327# configuration options for the AutoGen Definitions output
1328#---------------------------------------------------------------------------
1329
1330# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will
1331# generate an AutoGen Definitions (see autogen.sf.net) file
1332# that captures the structure of the code including all
1333# documentation. Note that this feature is still experimental
1334# and incomplete at the moment.
1335
108GENERATE_AUTOGEN_DEF = NO 1336GENERATE_AUTOGEN_DEF = NO
1337
1338#---------------------------------------------------------------------------
1339# configuration options related to the Perl module output
1340#---------------------------------------------------------------------------
1341
1342# If the GENERATE_PERLMOD tag is set to YES Doxygen will
1343# generate a Perl module file that captures the structure of
1344# the code including all documentation. Note that this
1345# feature is still experimental and incomplete at the
1346# moment.
1347
1348GENERATE_PERLMOD = NO
1349
1350# If the PERLMOD_LATEX tag is set to YES Doxygen will generate
1351# the necessary Makefile rules, Perl scripts and LaTeX code to be able
1352# to generate PDF and DVI output from the Perl module output.
1353
1354PERLMOD_LATEX = NO
1355
1356# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be
1357# nicely formatted so it can be parsed by a human reader.
1358# This is useful
1359# if you want to understand what is going on.
1360# On the other hand, if this
1361# tag is set to NO the size of the Perl module output will be much smaller
1362# and Perl will parse it just the same.
1363
1364PERLMOD_PRETTY = YES
1365
1366# The names of the make variables in the generated doxyrules.make file
1367# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX.
1368# This is useful so different doxyrules.make files included by the same
1369# Makefile don't overwrite each other's variables.
1370
1371PERLMOD_MAKEVAR_PREFIX =
1372
1373#---------------------------------------------------------------------------
1374# Configuration options related to the preprocessor
1375#---------------------------------------------------------------------------
1376
1377# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
1378# evaluate all C-preprocessor directives found in the sources and include
1379# files.
1380
109ENABLE_PREPROCESSING = YES 1381ENABLE_PREPROCESSING = YES
110MACRO_EXPANSION = NO 1382
111EXPAND_ONLY_PREDEF = NO 1383# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
1384# names in the source code. If set to NO (the default) only conditional
1385# compilation will be performed. Macro expansion can be done in a controlled
1386# way by setting EXPAND_ONLY_PREDEF to YES.
1387
1388MACRO_EXPANSION = YES
1389
1390# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
1391# then the macro expansion is limited to the macros specified with the
1392# PREDEFINED and EXPAND_AS_DEFINED tags.
1393
1394EXPAND_ONLY_PREDEF = YES
1395
1396# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
1397# in the INCLUDE_PATH (see below) will be search if a #include is found.
1398
112SEARCH_INCLUDES = NO 1399SEARCH_INCLUDES = NO
1400
1401# The INCLUDE_PATH tag can be used to specify one or more directories that
1402# contain include files that are not input files but should be processed by
1403# the preprocessor.
1404
113INCLUDE_PATH = 1405INCLUDE_PATH =
114INCLUDE_FILE_PATTERNS = 1406
115PREDEFINED = 1407# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
116EXPAND_AS_DEFINED = 1408# patterns (like *.h and *.hpp) to filter out the header-files in the
1409# directories. If left blank, the patterns specified with FILE_PATTERNS will
1410# be used.
1411
1412INCLUDE_FILE_PATTERNS =
1413
1414# The PREDEFINED tag can be used to specify one or more macro names that
1415# are defined before the preprocessor is started (similar to the -D option of
1416# gcc). The argument of the tag is a list of macros of the form: name
1417# or name=definition (no spaces). If the definition and the = are
1418# omitted =1 is assumed. To prevent a macro definition from being
1419# undefined via #undef or recursively expanded use the := operator
1420# instead of the = operator.
1421
1422PREDEFINED = EINA_MAGIC_DEBUG \
1423 __UNUSED__= \
1424 EINA_ARG_NONNULL()= \
1425 EINA_MALLOC= \
1426 EINA_WARN_UNUSED_RESULT= \
1427 EAPI= \
1428 EINA_PURE= \
1429 EINA_CONST=
1430
1431# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
1432# this tag can be used to specify a list of macro names that should be expanded.
1433# The macro definition that is found in the sources will be used.
1434# Use the PREDEFINED tag if you want to use a different macro definition that overrules the definition found in the source code.
1435
1436EXPAND_AS_DEFINED =
1437
1438# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
1439# doxygen's preprocessor will remove all references to function-like macros
1440# that are alone on a line, have an all uppercase name, and do not end with a
1441# semicolon, because these will confuse the parser if not removed.
1442
117SKIP_FUNCTION_MACROS = YES 1443SKIP_FUNCTION_MACROS = YES
118TAGFILES = 1444
119GENERATE_TAGFILE = 1445#---------------------------------------------------------------------------
1446# Configuration::additions related to external references
1447#---------------------------------------------------------------------------
1448
1449# The TAGFILES option can be used to specify one or more tagfiles.
1450# Optionally an initial location of the external documentation
1451# can be added for each tagfile. The format of a tag file without
1452# this location is as follows:
1453#
1454# TAGFILES = file1 file2 ...
1455# Adding location for the tag files is done as follows:
1456#
1457# TAGFILES = file1=loc1 "file2 = loc2" ...
1458# where "loc1" and "loc2" can be relative or absolute paths or
1459# URLs. If a location is present for each tag, the installdox tool
1460# does not have to be run to correct the links.
1461# Note that each tag file must have a unique name
1462# (where the name does NOT include the path)
1463# If a tag file is not located in the directory in which doxygen
1464# is run, you must also specify the path to the tagfile here.
1465
1466TAGFILES =
1467
1468# When a file name is specified after GENERATE_TAGFILE, doxygen will create
1469# a tag file that is based on the input files it reads.
1470
1471GENERATE_TAGFILE =
1472
1473# If the ALLEXTERNALS tag is set to YES all external classes will be listed
1474# in the class index. If set to NO only the inherited external classes
1475# will be listed.
1476
120ALLEXTERNALS = NO 1477ALLEXTERNALS = NO
1478
1479# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed
1480# in the modules index. If set to NO, only the current project's groups will
1481# be listed.
1482
121EXTERNAL_GROUPS = YES 1483EXTERNAL_GROUPS = YES
1484
1485# The PERL_PATH should be the absolute path and name of the perl script
1486# interpreter (i.e. the result of `which perl').
1487
122PERL_PATH = /usr/bin/perl 1488PERL_PATH = /usr/bin/perl
1489
1490#---------------------------------------------------------------------------
1491# Configuration options related to the dot tool
1492#---------------------------------------------------------------------------
1493
1494# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
1495# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base
1496# or super classes. Setting the tag to NO turns the diagrams off. Note that
1497# this option also works with HAVE_DOT disabled, but it is recommended to
1498# install and use dot, since it yields more powerful graphs.
1499
123CLASS_DIAGRAMS = NO 1500CLASS_DIAGRAMS = NO
1501
1502# You can define message sequence charts within doxygen comments using the \msc
1503# command. Doxygen will then run the mscgen tool (see
1504# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the
1505# documentation. The MSCGEN_PATH tag allows you to specify the directory where
1506# the mscgen tool resides. If left empty the tool is assumed to be found in the
1507# default search path.
1508
1509MSCGEN_PATH =
1510
1511# If set to YES, the inheritance and collaboration graphs will hide
1512# inheritance and usage relations if the target is undocumented
1513# or is not a class.
1514
124HIDE_UNDOC_RELATIONS = YES 1515HIDE_UNDOC_RELATIONS = YES
1516
1517# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
1518# available from the path. This tool is part of Graphviz, a graph visualization
1519# toolkit from AT&T and Lucent Bell Labs. The other options in this section
1520# have no effect if this option is set to NO (the default)
1521
125HAVE_DOT = NO 1522HAVE_DOT = NO
1523
1524# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is
1525# allowed to run in parallel. When set to 0 (the default) doxygen will
1526# base this on the number of processors available in the system. You can set it
1527# explicitly to a value larger than 0 to get control over the balance
1528# between CPU load and processing speed.
1529
1530DOT_NUM_THREADS = 0
1531
1532# By default doxygen will write a font called Helvetica to the output
1533# directory and reference it in all dot files that doxygen generates.
1534# When you want a differently looking font you can specify the font name
1535# using DOT_FONTNAME. You need to make sure dot is able to find the font,
1536# which can be done by putting it in a standard location or by setting the
1537# DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory
1538# containing the font.
1539
1540DOT_FONTNAME = Helvetica
1541
1542# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs.
1543# The default size is 10pt.
1544
1545DOT_FONTSIZE = 10
1546
1547# By default doxygen will tell dot to use the output directory to look for the
1548# FreeSans.ttf font (which doxygen will put there itself). If you specify a
1549# different font using DOT_FONTNAME you can set the path where dot
1550# can find it using this tag.
1551
1552DOT_FONTPATH =
1553
1554# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
1555# will generate a graph for each documented class showing the direct and
1556# indirect inheritance relations. Setting this tag to YES will force the
1557# the CLASS_DIAGRAMS tag to NO.
1558
126CLASS_GRAPH = NO 1559CLASS_GRAPH = NO
1560
1561# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
1562# will generate a graph for each documented class showing the direct and
1563# indirect implementation dependencies (inheritance, containment, and
1564# class references variables) of the class with other documented classes.
1565
127COLLABORATION_GRAPH = NO 1566COLLABORATION_GRAPH = NO
1567
1568# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen
1569# will generate a graph for groups, showing the direct groups dependencies
1570
1571GROUP_GRAPHS = YES
1572
1573# If the UML_LOOK tag is set to YES doxygen will generate inheritance and
1574# collaboration diagrams in a style similar to the OMG's Unified Modeling
1575# Language.
1576
1577UML_LOOK = NO
1578
1579# If set to YES, the inheritance and collaboration graphs will show the
1580# relations between templates and their instances.
1581
128TEMPLATE_RELATIONS = NO 1582TEMPLATE_RELATIONS = NO
1583
1584# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT
1585# tags are set to YES then doxygen will generate a graph for each documented
1586# file showing the direct and indirect include dependencies of the file with
1587# other documented files.
1588
129INCLUDE_GRAPH = NO 1589INCLUDE_GRAPH = NO
1590
1591# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and
1592# HAVE_DOT tags are set to YES then doxygen will generate a graph for each
1593# documented header file showing the documented files that directly or
1594# indirectly include this file.
1595
130INCLUDED_BY_GRAPH = NO 1596INCLUDED_BY_GRAPH = NO
1597
1598# If the CALL_GRAPH and HAVE_DOT options are set to YES then
1599# doxygen will generate a call dependency graph for every global function
1600# or class method. Note that enabling this option will significantly increase
1601# the time of a run. So in most cases it will be better to enable call graphs
1602# for selected functions only using the \callgraph command.
1603
1604CALL_GRAPH = NO
1605
1606# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then
1607# doxygen will generate a caller dependency graph for every global function
1608# or class method. Note that enabling this option will significantly increase
1609# the time of a run. So in most cases it will be better to enable caller
1610# graphs for selected functions only using the \callergraph command.
1611
1612CALLER_GRAPH = NO
1613
1614# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
1615# will generate a graphical hierarchy of all classes instead of a textual one.
1616
131GRAPHICAL_HIERARCHY = NO 1617GRAPHICAL_HIERARCHY = NO
1618
1619# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES
1620# then doxygen will show the dependencies a directory has on other directories
1621# in a graphical way. The dependency relations are determined by the #include
1622# relations between the files in the directories.
1623
1624DIRECTORY_GRAPH = YES
1625
1626# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
1627# generated by dot. Possible values are png, svg, gif or svg.
1628# If left blank png will be used.
1629
132DOT_IMAGE_FORMAT = png 1630DOT_IMAGE_FORMAT = png
133DOT_PATH = 1631
134DOTFILE_DIRS = 1632# The tag DOT_PATH can be used to specify the path where the dot tool can be
135MAX_DOT_GRAPH_WIDTH = 512 1633# found. If left blank, it is assumed the dot tool can be found in the path.
136MAX_DOT_GRAPH_HEIGHT = 512 1634
1635DOT_PATH =
1636
1637# The DOTFILE_DIRS tag can be used to specify one or more directories that
1638# contain dot files that are included in the documentation (see the
1639# \dotfile command).
1640
1641DOTFILE_DIRS =
1642
1643# The MSCFILE_DIRS tag can be used to specify one or more directories that
1644# contain msc files that are included in the documentation (see the
1645# \mscfile command).
1646
1647MSCFILE_DIRS =
1648
1649# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of
1650# nodes that will be shown in the graph. If the number of nodes in a graph
1651# becomes larger than this value, doxygen will truncate the graph, which is
1652# visualized by representing a node as a red box. Note that doxygen if the
1653# number of direct children of the root node in a graph is already larger than
1654# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note
1655# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
1656
1657DOT_GRAPH_MAX_NODES = 50
1658
1659# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the
1660# graphs generated by dot. A depth value of 3 means that only nodes reachable
1661# from the root by following a path via at most 3 edges will be shown. Nodes
1662# that lay further from the root node will be omitted. Note that setting this
1663# option to 1 or 2 may greatly reduce the computation time needed for large
1664# code bases. Also note that the size of a graph can be further restricted by
1665# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
1666
1667MAX_DOT_GRAPH_DEPTH = 0
1668
1669# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
1670# background. This is disabled by default, because dot on Windows does not
1671# seem to support this out of the box. Warning: Depending on the platform used,
1672# enabling this option may lead to badly anti-aliased labels on the edges of
1673# a graph (i.e. they become hard to read).
1674
1675DOT_TRANSPARENT = YES
1676
1677# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
1678# files in one run (i.e. multiple -o and -T options on the command line). This
1679# makes dot run faster, but since only newer versions of dot (>1.8.10)
1680# support this, this feature is disabled by default.
1681
1682DOT_MULTI_TARGETS = NO
1683
1684# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
1685# generate a legend page explaining the meaning of the various boxes and
1686# arrows in the dot generated graphs.
1687
137GENERATE_LEGEND = YES 1688GENERATE_LEGEND = YES
1689
1690# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will
1691# remove the intermediate dot files that are used to generate
1692# the various graphs.
1693
138DOT_CLEANUP = YES 1694DOT_CLEANUP = YES
139SEARCHENGINE = NO
diff --git a/libraries/eet/doc/Doxyfile.in b/libraries/eet/doc/Doxyfile.in
index 4ed5452..eadf82a 100644
--- a/libraries/eet/doc/Doxyfile.in
+++ b/libraries/eet/doc/Doxyfile.in
@@ -1,139 +1,1694 @@
1# Doxyfile 1.7.3
2
3# This file describes the settings to be used by the documentation system
4# doxygen (www.doxygen.org) for a project.
5#
6# All text after a hash (#) is considered a comment and will be ignored.
7# The format is:
8# TAG = value [value, ...]
9# For lists items can also be appended using:
10# TAG += value [value, ...]
11# Values that contain spaces should be placed between quotes (" ").
12
13#---------------------------------------------------------------------------
14# Project related configuration options
15#---------------------------------------------------------------------------
16
17# This tag specifies the encoding used for all characters in the config file
18# that follow. The default is UTF-8 which is also the encoding used for all
19# text before the first occurrence of this tag. Doxygen uses libiconv (or the
20# iconv built into libc) for the transcoding. See
21# http://www.gnu.org/software/libiconv for the list of possible encodings.
22
23DOXYFILE_ENCODING = UTF-8
24
25# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
26# by quotes) that should identify the project.
27
1PROJECT_NAME = Eet 28PROJECT_NAME = Eet
29
30# The PROJECT_NUMBER tag can be used to enter a project or revision number.
31# This could be handy for archiving the generated documentation or
32# if some version control system is used.
33
2PROJECT_NUMBER = @PACKAGE_VERSION@ 34PROJECT_NUMBER = @PACKAGE_VERSION@
35
36# Using the PROJECT_BRIEF tag one can provide an optional one line description for a project that appears at the top of each page and should give viewer a quick idea about the purpose of the project. Keep the description short.
37
38PROJECT_BRIEF =
39
40# With the PROJECT_LOGO tag one can specify an logo or icon that is
41# included in the documentation. The maximum height of the logo should not
42# exceed 55 pixels and the maximum width should not exceed 200 pixels.
43# Doxygen will copy the logo to the output directory.
44
45PROJECT_LOGO =
46
47# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
48# base path where the generated documentation will be put.
49# If a relative path is entered, it will be relative to the location
50# where doxygen was started. If left blank the current directory will be used.
51
3OUTPUT_DIRECTORY = . 52OUTPUT_DIRECTORY = .
4INPUT = @srcdir@/eet.dox @srcdir@/examples.dox @top_srcdir@/src/lib 53
5IMAGE_PATH = img 54# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
55# 4096 sub-directories (in 2 levels) under the output directory of each output
56# format and will distribute the generated files over these directories.
57# Enabling this option can be useful when feeding doxygen a huge amount of
58# source files, where putting all generated files in the same directory would
59# otherwise cause performance problems for the file system.
60
61CREATE_SUBDIRS = NO
62
63# The OUTPUT_LANGUAGE tag is used to specify the language in which all
64# documentation generated by doxygen is written. Doxygen will use this
65# information to generate all constant output in the proper language.
66# The default language is English, other supported languages are:
67# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional,
68# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German,
69# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English
70# messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian,
71# Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak,
72# Slovene, Spanish, Swedish, Ukrainian, and Vietnamese.
73
6OUTPUT_LANGUAGE = English 74OUTPUT_LANGUAGE = English
7GENERATE_HTML = YES 75
8HTML_OUTPUT = html 76# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
9HTML_FILE_EXTENSION = .html 77# include brief member descriptions after the members that are listed in
10HTML_HEADER = @srcdir@/head.html 78# the file and class documentation (similar to JavaDoc).
11HTML_FOOTER = @srcdir@/foot.html 79# Set to NO to disable this.
12HTML_STYLESHEET = @srcdir@/e.css 80
13HTML_ALIGN_MEMBERS = YES
14ENUM_VALUES_PER_LINE = 1
15GENERATE_HTMLHELP = NO
16CHM_FILE =
17HHC_LOCATION =
18GENERATE_CHI = NO
19BINARY_TOC = NO
20TOC_EXPAND = NO
21DISABLE_INDEX = YES
22EXTRACT_ALL = NO
23EXTRACT_PRIVATE = NO
24EXTRACT_STATIC = NO
25EXTRACT_LOCAL_CLASSES = NO
26HIDE_UNDOC_MEMBERS = YES
27HIDE_UNDOC_CLASSES = YES
28HIDE_FRIEND_COMPOUNDS = YES
29BRIEF_MEMBER_DESC = YES 81BRIEF_MEMBER_DESC = YES
82
83# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
84# the brief description of a member or function before the detailed description.
85# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
86# brief descriptions will be completely suppressed.
87
30REPEAT_BRIEF = YES 88REPEAT_BRIEF = YES
89
90# This tag implements a quasi-intelligent brief description abbreviator
91# that is used to form the text in various listings. Each string
92# in this list, if found as the leading text of the brief description, will be
93# stripped from the text and the result after processing the whole list, is
94# used as the annotated text. Otherwise, the brief description is used as-is.
95# If left blank, the following values are used ("$name" is automatically
96# replaced with the name of the entity): "The $name class" "The $name widget"
97# "The $name file" "is" "provides" "specifies" "contains"
98# "represents" "a" "an" "the"
99
100ABBREVIATE_BRIEF =
101
102# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
103# Doxygen will generate a detailed section even if there is only a brief
104# description.
105
31ALWAYS_DETAILED_SEC = NO 106ALWAYS_DETAILED_SEC = NO
107
108# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
109# inherited members of a class in the documentation of that class as if those
110# members were ordinary class members. Constructors, destructors and assignment
111# operators of the base classes will not be shown.
112
32INLINE_INHERITED_MEMB = NO 113INLINE_INHERITED_MEMB = NO
114
115# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
116# path before files name in the file list and in the header files. If set
117# to NO the shortest path that makes the file name unique will be used.
118
33FULL_PATH_NAMES = NO 119FULL_PATH_NAMES = NO
34STRIP_FROM_PATH = 120
35INTERNAL_DOCS = NO 121# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
36STRIP_CODE_COMMENTS = NO 122# can be used to strip a user-defined part of the path. Stripping is
37CASE_SENSE_NAMES = YES 123# only done if one of the specified strings matches the left-hand part of
124# the path. The tag can be used to show relative paths in the file list.
125# If left blank the directory from which doxygen is run is used as the
126# path to strip.
127
128STRIP_FROM_PATH =
129
130# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
131# the path mentioned in the documentation of a class, which tells
132# the reader which header file to include in order to use a class.
133# If left blank only the name of the header file containing the class
134# definition is used. Otherwise one should specify the include paths that
135# are normally passed to the compiler using the -I flag.
136
137STRIP_FROM_INC_PATH =
138
139# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
140# (but less readable) file names. This can be useful if your file system
141# doesn't support long names like on DOS, Mac, or CD-ROM.
142
38SHORT_NAMES = NO 143SHORT_NAMES = NO
39HIDE_SCOPE_NAMES = NO 144
40VERBATIM_HEADERS = NO 145# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
41SHOW_INCLUDE_FILES = NO 146# will interpret the first line (until the first dot) of a JavaDoc-style
147# comment as the brief description. If set to NO, the JavaDoc
148# comments will behave just like regular Qt-style comments
149# (thus requiring an explicit @brief command for a brief description.)
150
42JAVADOC_AUTOBRIEF = YES 151JAVADOC_AUTOBRIEF = YES
152
153# If the QT_AUTOBRIEF tag is set to YES then Doxygen will
154# interpret the first line (until the first dot) of a Qt-style
155# comment as the brief description. If set to NO, the comments
156# will behave just like regular Qt-style comments (thus requiring
157# an explicit \brief command for a brief description.)
158
159QT_AUTOBRIEF = NO
160
161# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen
162# treat a multi-line C++ special comment block (i.e. a block of //! or ///
163# comments) as a brief description. This used to be the default behaviour.
164# The new default is to treat a multi-line C++ comment block as a detailed
165# description. Set this tag to YES if you prefer the old behaviour instead.
166
43MULTILINE_CPP_IS_BRIEF = NO 167MULTILINE_CPP_IS_BRIEF = NO
44DETAILS_AT_TOP = NO 168
169# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
170# member inherits the documentation from any documented member that it
171# re-implements.
172
45INHERIT_DOCS = YES 173INHERIT_DOCS = YES
46INLINE_INFO = YES 174
47SORT_MEMBER_DOCS = YES 175# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce
48DISTRIBUTE_GROUP_DOC = NO 176# a new page for each member. If set to NO, the documentation of a member will
177# be part of the file/class/namespace that contains it.
178
179SEPARATE_MEMBER_PAGES = NO
180
181# The TAB_SIZE tag can be used to set the number of spaces in a tab.
182# Doxygen uses this value to replace tabs by spaces in code fragments.
183
49TAB_SIZE = 8 184TAB_SIZE = 8
185
186# This tag can be used to specify a number of aliases that acts
187# as commands in the documentation. An alias has the form "name=value".
188# For example adding "sideeffect=\par Side Effects:\n" will allow you to
189# put the command \sideeffect (or @sideeffect) in the documentation, which
190# will result in a user-defined paragraph with heading "Side Effects:".
191# You can put \n's in the value part of an alias to insert newlines.
192
193ALIASES =
194
195# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C
196# sources only. Doxygen will then generate output that is more tailored for C.
197# For instance, some of the names that are used will be different. The list
198# of all members will be omitted, etc.
199
200OPTIMIZE_OUTPUT_FOR_C = YES
201
202# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java
203# sources only. Doxygen will then generate output that is more tailored for
204# Java. For instance, namespaces will be presented as packages, qualified
205# scopes will look different, etc.
206
207OPTIMIZE_OUTPUT_JAVA = NO
208
209# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
210# sources only. Doxygen will then generate output that is more tailored for
211# Fortran.
212
213OPTIMIZE_FOR_FORTRAN = NO
214
215# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
216# sources. Doxygen will then generate output that is tailored for
217# VHDL.
218
219OPTIMIZE_OUTPUT_VHDL = NO
220
221# Doxygen selects the parser to use depending on the extension of the files it
222# parses. With this tag you can assign which parser to use for a given extension.
223# Doxygen has a built-in mapping, but you can override or extend it using this
224# tag. The format is ext=language, where ext is a file extension, and language
225# is one of the parsers supported by doxygen: IDL, Java, Javascript, CSharp, C,
226# C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make
227# doxygen treat .inc files as Fortran files (default is PHP), and .f files as C
228# (default is Fortran), use: inc=Fortran f=C. Note that for custom extensions
229# you also need to set FILE_PATTERNS otherwise the files are not read by doxygen.
230
231EXTENSION_MAPPING =
232
233# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
234# to include (a tag file for) the STL sources as input, then you should
235# set this tag to YES in order to let doxygen match functions declarations and
236# definitions whose arguments contain STL classes (e.g. func(std::string); v.s.
237# func(std::string) {}). This also makes the inheritance and collaboration
238# diagrams that involve STL classes more complete and accurate.
239
240BUILTIN_STL_SUPPORT = NO
241
242# If you use Microsoft's C++/CLI language, you should set this option to YES to
243# enable parsing support.
244
245CPP_CLI_SUPPORT = NO
246
247# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only.
248# Doxygen will parse them like normal C++ but will assume all classes use public
249# instead of private inheritance when no explicit protection keyword is present.
250
251SIP_SUPPORT = NO
252
253# For Microsoft's IDL there are propget and propput attributes to indicate getter
254# and setter methods for a property. Setting this option to YES (the default)
255# will make doxygen replace the get and set methods by a property in the
256# documentation. This will only work if the methods are indeed getting or
257# setting a simple type. If this is not the case, or you want to show the
258# methods anyway, you should set this option to NO.
259
260IDL_PROPERTY_SUPPORT = YES
261
262# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
263# tag is set to YES, then doxygen will reuse the documentation of the first
264# member in the group (if any) for the other members of the group. By default
265# all members of a group must be documented explicitly.
266
267DISTRIBUTE_GROUP_DOC = NO
268
269# Set the SUBGROUPING tag to YES (the default) to allow class member groups of
270# the same type (for instance a group of public functions) to be put as a
271# subgroup of that type (e.g. under the Public Functions section). Set it to
272# NO to prevent subgrouping. Alternatively, this can be done per class using
273# the \nosubgrouping command.
274
275SUBGROUPING = YES
276
277# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum
278# is documented as struct, union, or enum with the name of the typedef. So
279# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
280# with name TypeT. When disabled the typedef will appear as a member of a file,
281# namespace, or class. And the struct will be named TypeS. This can typically
282# be useful for C code in case the coding convention dictates that all compound
283# types are typedef'ed and only the typedef is referenced, never the tag name.
284
285TYPEDEF_HIDES_STRUCT = NO
286
287# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to
288# determine which symbols to keep in memory and which to flush to disk.
289# When the cache is full, less often used symbols will be written to disk.
290# For small to medium size projects (<1000 input files) the default value is
291# probably good enough. For larger projects a too small cache size can cause
292# doxygen to be busy swapping symbols to and from disk most of the time
293# causing a significant performance penalty.
294# If the system has enough physical memory increasing the cache will improve the
295# performance by keeping more symbols in memory. Note that the value works on
296# a logarithmic scale so increasing the size by one will roughly double the
297# memory usage. The cache size is given by this formula:
298# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0,
299# corresponding to a cache size of 2^16 = 65536 symbols
300
301SYMBOL_CACHE_SIZE = 0
302
303#---------------------------------------------------------------------------
304# Build related configuration options
305#---------------------------------------------------------------------------
306
307# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
308# documentation are documented, even if no documentation was available.
309# Private class members and static file members will be hidden unless
310# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
311
312EXTRACT_ALL = NO
313
314# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
315# will be included in the documentation.
316
317EXTRACT_PRIVATE = NO
318
319# If the EXTRACT_STATIC tag is set to YES all static members of a file
320# will be included in the documentation.
321
322EXTRACT_STATIC = NO
323
324# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
325# defined locally in source files will be included in the documentation.
326# If set to NO only classes defined in header files are included.
327
328EXTRACT_LOCAL_CLASSES = NO
329
330# This flag is only useful for Objective-C code. When set to YES local
331# methods, which are defined in the implementation section but not in
332# the interface are included in the documentation.
333# If set to NO (the default) only methods in the interface are included.
334
335EXTRACT_LOCAL_METHODS = NO
336
337# If this flag is set to YES, the members of anonymous namespaces will be
338# extracted and appear in the documentation as a namespace called
339# 'anonymous_namespace{file}', where file will be replaced with the base
340# name of the file that contains the anonymous namespace. By default
341# anonymous namespaces are hidden.
342
343EXTRACT_ANON_NSPACES = NO
344
345# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
346# undocumented members of documented classes, files or namespaces.
347# If set to NO (the default) these members will be included in the
348# various overviews, but no documentation section is generated.
349# This option has no effect if EXTRACT_ALL is enabled.
350
351HIDE_UNDOC_MEMBERS = NO
352
353# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
354# undocumented classes that are normally visible in the class hierarchy.
355# If set to NO (the default) these classes will be included in the various
356# overviews. This option has no effect if EXTRACT_ALL is enabled.
357
358HIDE_UNDOC_CLASSES = NO
359
360# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all
361# friend (class|struct|union) declarations.
362# If set to NO (the default) these declarations will be included in the
363# documentation.
364
365HIDE_FRIEND_COMPOUNDS = NO
366
367# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any
368# documentation blocks found inside the body of a function.
369# If set to NO (the default) these blocks will be appended to the
370# function's detailed documentation block.
371
372HIDE_IN_BODY_DOCS = NO
373
374# The INTERNAL_DOCS tag determines if documentation
375# that is typed after a \internal command is included. If the tag is set
376# to NO (the default) then the documentation will be excluded.
377# Set it to YES to include the internal documentation.
378
379INTERNAL_DOCS = NO
380
381# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
382# file names in lower-case letters. If set to YES upper-case letters are also
383# allowed. This is useful if you have classes or files whose names only differ
384# in case and if your file system supports case sensitive file names. Windows
385# and Mac users are advised to set this option to NO.
386
387CASE_SENSE_NAMES = YES
388
389# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
390# will show members with their full class and namespace scopes in the
391# documentation. If set to YES the scope will be hidden.
392
393HIDE_SCOPE_NAMES = NO
394
395# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
396# will put a list of the files that are included by a file in the documentation
397# of that file.
398
399SHOW_INCLUDE_FILES = NO
400
401# If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen
402# will list include files with double quotes in the documentation
403# rather than with sharp brackets.
404
405FORCE_LOCAL_INCLUDES = NO
406
407# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
408# is inserted in the documentation for inline members.
409
410INLINE_INFO = YES
411
412# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
413# will sort the (detailed) documentation of file and class members
414# alphabetically by member name. If set to NO the members will appear in
415# declaration order.
416
417SORT_MEMBER_DOCS = NO
418
419# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the
420# brief documentation of file, namespace and class members alphabetically
421# by member name. If set to NO (the default) the members will appear in
422# declaration order.
423
424SORT_BRIEF_DOCS = NO
425
426# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen
427# will sort the (brief and detailed) documentation of class members so that
428# constructors and destructors are listed first. If set to NO (the default)
429# the constructors will appear in the respective orders defined by
430# SORT_MEMBER_DOCS and SORT_BRIEF_DOCS.
431# This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO
432# and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO.
433
434SORT_MEMBERS_CTORS_1ST = NO
435
436# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the
437# hierarchy of group names into alphabetical order. If set to NO (the default)
438# the group names will appear in their defined order.
439
440SORT_GROUP_NAMES = NO
441
442# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be
443# sorted by fully-qualified names, including namespaces. If set to
444# NO (the default), the class list will be sorted only by class name,
445# not including the namespace part.
446# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
447# Note: This option applies only to the class list, not to the
448# alphabetical list.
449
450SORT_BY_SCOPE_NAME = NO
451
452# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper type resolution of all parameters of a function it will reject a
453# match between the prototype and the implementation of a member function even if there is only one candidate or it is obvious which candidate to choose by doing a simple string match. By disabling STRICT_PROTO_MATCHING doxygen
454# will still accept a match between prototype and implementation in such cases.
455
456STRICT_PROTO_MATCHING = NO
457
458# The GENERATE_TODOLIST tag can be used to enable (YES) or
459# disable (NO) the todo list. This list is created by putting \todo
460# commands in the documentation.
461
50GENERATE_TODOLIST = YES 462GENERATE_TODOLIST = YES
463
464# The GENERATE_TESTLIST tag can be used to enable (YES) or
465# disable (NO) the test list. This list is created by putting \test
466# commands in the documentation.
467
51GENERATE_TESTLIST = YES 468GENERATE_TESTLIST = YES
469
470# The GENERATE_BUGLIST tag can be used to enable (YES) or
471# disable (NO) the bug list. This list is created by putting \bug
472# commands in the documentation.
473
52GENERATE_BUGLIST = YES 474GENERATE_BUGLIST = YES
475
476# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or
477# disable (NO) the deprecated list. This list is created by putting
478# \deprecated commands in the documentation.
479
53GENERATE_DEPRECATEDLIST= YES 480GENERATE_DEPRECATEDLIST= YES
54ALIASES = 481
55ENABLED_SECTIONS = 482# The ENABLED_SECTIONS tag can be used to enable conditional
483# documentation sections, marked by \if sectionname ... \endif.
484
485ENABLED_SECTIONS =
486
487# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
488# the initial value of a variable or macro consists of for it to appear in
489# the documentation. If the initializer consists of more lines than specified
490# here it will be hidden. Use a value of 0 to hide initializers completely.
491# The appearance of the initializer of individual variables and macros in the
492# documentation can be controlled using \showinitializer or \hideinitializer
493# command in the documentation regardless of this setting.
494
56MAX_INITIALIZER_LINES = 30 495MAX_INITIALIZER_LINES = 30
57OPTIMIZE_OUTPUT_FOR_C = YES 496
58OPTIMIZE_OUTPUT_JAVA = NO 497# Set the SHOW_USED_FILES tag to NO to disable the list of files generated
498# at the bottom of the documentation of classes and structs. If set to YES the
499# list will mention the files that were used to generate the documentation.
500
59SHOW_USED_FILES = NO 501SHOW_USED_FILES = NO
502
503# If the sources in your project are distributed over multiple directories
504# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy
505# in the documentation. The default is NO.
506
507SHOW_DIRECTORIES = NO
508
509# Set the SHOW_FILES tag to NO to disable the generation of the Files page.
510# This will remove the Files entry from the Quick Index and from the
511# Folder Tree View (if specified). The default is YES.
512
513SHOW_FILES = YES
514
515# Set the SHOW_NAMESPACES tag to NO to disable the generation of the
516# Namespaces page.
517# This will remove the Namespaces entry from the Quick Index
518# and from the Folder Tree View (if specified). The default is YES.
519
520SHOW_NAMESPACES = YES
521
522# The FILE_VERSION_FILTER tag can be used to specify a program or script that
523# doxygen should invoke to get the current version for each file (typically from
524# the version control system). Doxygen will invoke the program by executing (via
525# popen()) the command <command> <input-file>, where <command> is the value of
526# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file
527# provided by doxygen. Whatever the program writes to standard output
528# is used as the file version. See the manual for examples.
529
530FILE_VERSION_FILTER =
531
532# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
533# by doxygen. The layout file controls the global structure of the generated
534# output files in an output format independent way. The create the layout file
535# that represents doxygen's defaults, run doxygen with the -l option.
536# You can optionally specify a file name after the option, if omitted
537# DoxygenLayout.xml will be used as the name of the layout file.
538
539LAYOUT_FILE =
540
541#---------------------------------------------------------------------------
542# configuration options related to warning and progress messages
543#---------------------------------------------------------------------------
544
545# The QUIET tag can be used to turn on/off the messages that are generated
546# by doxygen. Possible values are YES and NO. If left blank NO is used.
547
60QUIET = NO 548QUIET = NO
549
550# The WARNINGS tag can be used to turn on/off the warning messages that are
551# generated by doxygen. Possible values are YES and NO. If left blank
552# NO is used.
553
61WARNINGS = YES 554WARNINGS = YES
555
556# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
557# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
558# automatically be disabled.
559
62WARN_IF_UNDOCUMENTED = YES 560WARN_IF_UNDOCUMENTED = YES
561
562# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for
563# potential errors in the documentation, such as not documenting some
564# parameters in a documented function, or documenting parameters that
565# don't exist or using markup commands wrongly.
566
567WARN_IF_DOC_ERROR = YES
568
569# The WARN_NO_PARAMDOC option can be enabled to get warnings for
570# functions that are documented, but have no documentation for their parameters
571# or return value. If set to NO (the default) doxygen will only warn about
572# wrong or incomplete parameter documentation, but not about the absence of
573# documentation.
574
575WARN_NO_PARAMDOC = YES
576
577# The WARN_FORMAT tag determines the format of the warning messages that
578# doxygen can produce. The string should contain the $file, $line, and $text
579# tags, which will be replaced by the file and line number from which the
580# warning originated and the warning text. Optionally the format may contain
581# $version, which will be replaced by the version of the file (if it could
582# be obtained via FILE_VERSION_FILTER)
583
63WARN_FORMAT = "$file:$line: $text" 584WARN_FORMAT = "$file:$line: $text"
64WARN_LOGFILE = 585
65FILE_PATTERNS = 586# The WARN_LOGFILE tag can be used to specify a file to which warning
66RECURSIVE = NO 587# and error messages should be written. If left blank the output is written
67EXCLUDE = 588# to stderr.
589
590WARN_LOGFILE =
591
592#---------------------------------------------------------------------------
593# configuration options related to the input files
594#---------------------------------------------------------------------------
595
596# The INPUT tag can be used to specify the files and/or directories that contain
597# documented source files. You may enter file names like "myfile.cpp" or
598# directories like "/usr/src/myproject". Separate the files or directories
599# with spaces.
600
601INPUT = @builddir@/eet.dox \
602 @srcdir@/examples.dox \
603 @top_srcdir@/src/lib
604
605# This tag can be used to specify the character encoding of the source files
606# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
607# also the default input encoding. Doxygen uses libiconv (or the iconv built
608# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for
609# the list of possible encodings.
610
611INPUT_ENCODING = UTF-8
612
613# If the value of the INPUT tag contains directories, you can use the
614# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
615# and *.h) to filter out the source-files in the directories. If left
616# blank the following patterns are tested:
617# *.c *.cc *.cxx *.cpp *.c++ *.d *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh
618# *.hxx *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.dox *.py
619# *.f90 *.f *.for *.vhd *.vhdl
620
621FILE_PATTERNS = *.c \
622 *.h
623
624# The RECURSIVE tag can be used to turn specify whether or not subdirectories
625# should be searched for input files as well. Possible values are YES and NO.
626# If left blank NO is used.
627
628RECURSIVE = YES
629
630# The EXCLUDE tag can be used to specify files and/or directories that should
631# excluded from the INPUT source files. This way you can easily exclude a
632# subdirectory from a directory tree whose root is specified with the INPUT tag.
633
634EXCLUDE = @top_builddir@/src/lib/eet_amalgamation.c
635
636# The EXCLUDE_SYMLINKS tag can be used select whether or not files or
637# directories that are symbolic links (a Unix file system feature) are excluded
638# from the input.
639
68EXCLUDE_SYMLINKS = NO 640EXCLUDE_SYMLINKS = NO
69EXCLUDE_PATTERNS = 641
70EXAMPLE_PATH = @top_srcdir@/src/examples/ 642# If the value of the INPUT tag contains directories, you can use the
71EXAMPLE_PATTERNS = 643# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
644# certain files from those directories. Note that the wildcards are matched
645# against the file with absolute path, so to exclude all test directories
646# for example use the pattern */test/*
647
648EXCLUDE_PATTERNS =
649
650# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
651# (namespaces, classes, functions, etc.) that should be excluded from the
652# output. The symbol name can be a fully qualified name, a word, or if the
653# wildcard * is used, a substring. Examples: ANamespace, AClass,
654# AClass::ANamespace, ANamespace::*Test
655
656EXCLUDE_SYMBOLS =
657
658# The EXAMPLE_PATH tag can be used to specify one or more files or
659# directories that contain example code fragments that are included (see
660# the \include command).
661
662EXAMPLE_PATH = @top_srcdir@/src/examples
663
664# If the value of the EXAMPLE_PATH tag contains directories, you can use the
665# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
666# and *.h) to filter out the source-files in the directories. If left
667# blank all files are included.
668
669EXAMPLE_PATTERNS = *.c,*.h,*.x
670
671# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
672# searched for input files to be used with the \include or \dontinclude
673# commands irrespective of the value of the RECURSIVE tag.
674# Possible values are YES and NO. If left blank NO is used.
675
72EXAMPLE_RECURSIVE = NO 676EXAMPLE_RECURSIVE = NO
73INPUT_FILTER = 677
678# The IMAGE_PATH tag can be used to specify one or more files or
679# directories that contain image that are included in the documentation (see
680# the \image command).
681
682IMAGE_PATH = @top_srcdir@/doc/img
683
684# The INPUT_FILTER tag can be used to specify a program that doxygen should
685# invoke to filter for each input file. Doxygen will invoke the filter program
686# by executing (via popen()) the command <filter> <input-file>, where <filter>
687# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
688# input file. Doxygen will then use the output that the filter program writes
689# to standard output.
690# If FILTER_PATTERNS is specified, this tag will be
691# ignored.
692
693INPUT_FILTER =
694
695# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
696# basis.
697# Doxygen will compare the file name with each pattern and apply the
698# filter if there is a match.
699# The filters are a list of the form:
700# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further
701# info on how filters are used. If FILTER_PATTERNS is empty or if
702# non of the patterns match the file name, INPUT_FILTER is applied.
703
704FILTER_PATTERNS =
705
706# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
707# INPUT_FILTER) will be used to filter the input files when producing source
708# files to browse (i.e. when SOURCE_BROWSER is set to YES).
709
74FILTER_SOURCE_FILES = NO 710FILTER_SOURCE_FILES = NO
711
712# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file
713# pattern. A pattern will override the setting for FILTER_PATTERN (if any)
714# and it is also possible to disable source filtering for a specific pattern
715# using *.ext= (so without naming a filter). This option only has effect when
716# FILTER_SOURCE_FILES is enabled.
717
718FILTER_SOURCE_PATTERNS =
719
720#---------------------------------------------------------------------------
721# configuration options related to source browsing
722#---------------------------------------------------------------------------
723
724# If the SOURCE_BROWSER tag is set to YES then a list of source files will
725# be generated. Documented entities will be cross-referenced with these sources.
726# Note: To get rid of all source code in the generated output, make sure also
727# VERBATIM_HEADERS is set to NO.
728
75SOURCE_BROWSER = NO 729SOURCE_BROWSER = NO
730
731# Setting the INLINE_SOURCES tag to YES will include the body
732# of functions and classes directly in the documentation.
733
76INLINE_SOURCES = NO 734INLINE_SOURCES = NO
735
736# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
737# doxygen to hide any special comment blocks from generated source code
738# fragments. Normal C and C++ comments will always remain visible.
739
740STRIP_CODE_COMMENTS = YES
741
742# If the REFERENCED_BY_RELATION tag is set to YES
743# then for each documented function all documented
744# functions referencing it will be listed.
745
77REFERENCED_BY_RELATION = YES 746REFERENCED_BY_RELATION = YES
747
748# If the REFERENCES_RELATION tag is set to YES
749# then for each documented function all documented entities
750# called/used by that function will be listed.
751
78REFERENCES_RELATION = YES 752REFERENCES_RELATION = YES
753
754# If the REFERENCES_LINK_SOURCE tag is set to YES (the default)
755# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from
756# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will
757# link to the source code.
758# Otherwise they will link to the documentation.
759
760REFERENCES_LINK_SOURCE = YES
761
762# If the USE_HTAGS tag is set to YES then the references to source code
763# will point to the HTML generated by the htags(1) tool instead of doxygen
764# built-in source browser. The htags tool is part of GNU's global source
765# tagging system (see http://www.gnu.org/software/global/global.html). You
766# will need version 4.8.6 or higher.
767
768USE_HTAGS = NO
769
770# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
771# will generate a verbatim copy of the header file for each class for
772# which an include is specified. Set to NO to disable this.
773
774VERBATIM_HEADERS = NO
775
776#---------------------------------------------------------------------------
777# configuration options related to the alphabetical class index
778#---------------------------------------------------------------------------
779
780# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
781# of all compounds will be generated. Enable this if the project
782# contains a lot of classes, structs, unions or interfaces.
783
79ALPHABETICAL_INDEX = YES 784ALPHABETICAL_INDEX = YES
785
786# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
787# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
788# in which this list will be split (can be a number in the range [1..20])
789
80COLS_IN_ALPHA_INDEX = 2 790COLS_IN_ALPHA_INDEX = 2
81IGNORE_PREFIX = eet_ _eet_ Eet_ _Eet_ EET_ _EET_ 791
792# In case all classes in a project start with a common prefix, all
793# classes will be put under the same header in the alphabetical index.
794# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
795# should be ignored while generating the index headers.
796
797IGNORE_PREFIX = eet_ \
798 _eet_ \
799 Eet_ \
800 _Eet_ \
801 EET_ \
802 _EET_
803
804#---------------------------------------------------------------------------
805# configuration options related to the HTML output
806#---------------------------------------------------------------------------
807
808# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
809# generate HTML output.
810
811GENERATE_HTML = YES
812
813# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
814# If a relative path is entered the value of OUTPUT_DIRECTORY will be
815# put in front of it. If left blank `html' will be used as the default path.
816
817HTML_OUTPUT = html
818
819# The HTML_FILE_EXTENSION tag can be used to specify the file extension for
820# each generated HTML page (for example: .htm,.php,.asp). If it is left blank
821# doxygen will generate files with .html extension.
822
823HTML_FILE_EXTENSION = .html
824
825# The HTML_HEADER tag can be used to specify a personal HTML header for
826# each generated HTML page. If it is left blank doxygen will generate a
827# standard header.
828
829HTML_HEADER = @srcdir@/head.html
830
831# The HTML_FOOTER tag can be used to specify a personal HTML footer for
832# each generated HTML page. If it is left blank doxygen will generate a
833# standard footer.
834
835HTML_FOOTER = @srcdir@/foot.html
836
837# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
838# style sheet that is used by each HTML page. It can be used to
839# fine-tune the look of the HTML output. If the tag is left blank doxygen
840# will generate a default style sheet. Note that doxygen will try to copy
841# the style sheet file to the HTML output directory, so don't put your own
842# stylesheet in the HTML output directory as well, or it will be erased!
843
844HTML_STYLESHEET = @srcdir@/e.css
845
846# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output.
847# Doxygen will adjust the colors in the stylesheet and background images
848# according to this color. Hue is specified as an angle on a colorwheel,
849# see http://en.wikipedia.org/wiki/Hue for more information.
850# For instance the value 0 represents red, 60 is yellow, 120 is green,
851# 180 is cyan, 240 is blue, 300 purple, and 360 is red again.
852# The allowed range is 0 to 359.
853
854HTML_COLORSTYLE_HUE = 220
855
856# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of
857# the colors in the HTML output. For a value of 0 the output will use
858# grayscales only. A value of 255 will produce the most vivid colors.
859
860HTML_COLORSTYLE_SAT = 100
861
862# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to
863# the luminance component of the colors in the HTML output. Values below
864# 100 gradually make the output lighter, whereas values above 100 make
865# the output darker. The value divided by 100 is the actual gamma applied,
866# so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2,
867# and 100 does not change the gamma.
868
869HTML_COLORSTYLE_GAMMA = 80
870
871# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
872# page will contain the date and time when the page was generated. Setting
873# this to NO can help when comparing the output of multiple runs.
874
875HTML_TIMESTAMP = YES
876
877# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
878# files or namespaces will be aligned in HTML using tables. If set to
879# NO a bullet list will be used.
880
881HTML_ALIGN_MEMBERS = YES
882
883# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
884# documentation will contain sections that can be hidden and shown after the
885# page has loaded. For this to work a browser that supports
886# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox
887# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari).
888
889HTML_DYNAMIC_SECTIONS = YES
890
891# If the GENERATE_DOCSET tag is set to YES, additional index files
892# will be generated that can be used as input for Apple's Xcode 3
893# integrated development environment, introduced with OSX 10.5 (Leopard).
894# To create a documentation set, doxygen will generate a Makefile in the
895# HTML output directory. Running make will produce the docset in that
896# directory and running "make install" will install the docset in
897# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find
898# it at startup.
899# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
900# for more information.
901
902GENERATE_DOCSET = YES
903
904# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the
905# feed. A documentation feed provides an umbrella under which multiple
906# documentation sets from a single provider (such as a company or product suite)
907# can be grouped.
908
909DOCSET_FEEDNAME = "Doxygen generated docs"
910
911# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that
912# should uniquely identify the documentation set bundle. This should be a
913# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen
914# will append .docset to the name.
915
916DOCSET_BUNDLE_ID = org.enlightenment.Eet
917
918# When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely identify
919# the documentation publisher. This should be a reverse domain-name style
920# string, e.g. com.mycompany.MyDocSet.documentation.
921
922DOCSET_PUBLISHER_ID = org.enlightenment.Eet
923
924# The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher.
925
926DOCSET_PUBLISHER_NAME = Enlightenment
927
928# If the GENERATE_HTMLHELP tag is set to YES, additional index files
929# will be generated that can be used as input for tools like the
930# Microsoft HTML help workshop to generate a compiled HTML help file (.chm)
931# of the generated HTML documentation.
932
933GENERATE_HTMLHELP = YES
934
935# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can
936# be used to specify the file name of the resulting .chm file. You
937# can add a path in front of the file if the result should not be
938# written to the html output directory.
939
940CHM_FILE =
941
942# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can
943# be used to specify the location (absolute path including file name) of
944# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run
945# the HTML help compiler on the generated index.hhp.
946
947HHC_LOCATION =
948
949# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
950# controls if a separate .chi index file is generated (YES) or that
951# it should be included in the master .chm file (NO).
952
953GENERATE_CHI = NO
954
955# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING
956# is used to encode HtmlHelp index (hhk), content (hhc) and project file
957# content.
958
959CHM_INDEX_ENCODING =
960
961# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag
962# controls whether a binary table of contents is generated (YES) or a
963# normal table of contents (NO) in the .chm file.
964
965BINARY_TOC = NO
966
967# The TOC_EXPAND flag can be set to YES to add extra items for group members
968# to the contents of the HTML help documentation and to the tree view.
969
970TOC_EXPAND = NO
971
972# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
973# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated
974# that can be used as input for Qt's qhelpgenerator to generate a
975# Qt Compressed Help (.qch) of the generated HTML documentation.
976
977GENERATE_QHP = NO
978
979# If the QHG_LOCATION tag is specified, the QCH_FILE tag can
980# be used to specify the file name of the resulting .qch file.
981# The path specified is relative to the HTML output folder.
982
983QCH_FILE =
984
985# The QHP_NAMESPACE tag specifies the namespace to use when generating
986# Qt Help Project output. For more information please see
987# http://doc.trolltech.com/qthelpproject.html#namespace
988
989QHP_NAMESPACE = org.enlightenment.Eet
990
991# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating
992# Qt Help Project output. For more information please see
993# http://doc.trolltech.com/qthelpproject.html#virtual-folders
994
995QHP_VIRTUAL_FOLDER = doc
996
997# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to
998# add. For more information please see
999# http://doc.trolltech.com/qthelpproject.html#custom-filters
1000
1001QHP_CUST_FILTER_NAME =
1002
1003# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the
1004# custom filter to add. For more information please see
1005# <a href="http://doc.trolltech.com/qthelpproject.html#custom-filters">
1006# Qt Help Project / Custom Filters</a>.
1007
1008QHP_CUST_FILTER_ATTRS =
1009
1010# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
1011# project's
1012# filter section matches.
1013# <a href="http://doc.trolltech.com/qthelpproject.html#filter-attributes">
1014# Qt Help Project / Filter Attributes</a>.
1015
1016QHP_SECT_FILTER_ATTRS =
1017
1018# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can
1019# be used to specify the location of Qt's qhelpgenerator.
1020# If non-empty doxygen will try to run qhelpgenerator on the generated
1021# .qhp file.
1022
1023QHG_LOCATION =
1024
1025# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files
1026# will be generated, which together with the HTML files, form an Eclipse help
1027# plugin. To install this plugin and make it available under the help contents
1028# menu in Eclipse, the contents of the directory containing the HTML and XML
1029# files needs to be copied into the plugins directory of eclipse. The name of
1030# the directory within the plugins directory should be the same as
1031# the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before
1032# the help appears.
1033
1034GENERATE_ECLIPSEHELP = NO
1035
1036# A unique identifier for the eclipse help plugin. When installing the plugin
1037# the directory name containing the HTML and XML files should also have
1038# this name.
1039
1040ECLIPSE_DOC_ID = org.enlightenment.Eet
1041
1042# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
1043# top of each HTML page. The value NO (the default) enables the index and
1044# the value YES disables it.
1045
1046DISABLE_INDEX = YES
1047
1048# This tag can be used to set the number of enum values (range [0,1..20])
1049# that doxygen will group on one line in the generated HTML documentation.
1050# Note that a value of 0 will completely suppress the enum values from appearing in the overview section.
1051
1052ENUM_VALUES_PER_LINE = 1
1053
1054# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
1055# structure should be generated to display hierarchical information.
1056# If the tag value is set to YES, a side panel will be generated
1057# containing a tree-like index structure (just like the one that
1058# is generated for HTML Help). For this to work a browser that supports
1059# JavaScript, DHTML, CSS and frames is required (i.e. any modern browser).
1060# Windows users are probably better off using the HTML help feature.
1061
82GENERATE_TREEVIEW = NO 1062GENERATE_TREEVIEW = NO
1063
1064# By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories,
1065# and Class Hierarchy pages using a tree view instead of an ordered list.
1066
1067USE_INLINE_TREES = NO
1068
1069# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
1070# used to set the initial width (in pixels) of the frame in which the tree
1071# is shown.
1072
83TREEVIEW_WIDTH = 250 1073TREEVIEW_WIDTH = 250
1074
1075# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open
1076# links to external symbols imported via tag files in a separate window.
1077
1078EXT_LINKS_IN_WINDOW = NO
1079
1080# Use this tag to change the font size of Latex formulas included
1081# as images in the HTML documentation. The default is 10. Note that
1082# when you change the font size after a successful doxygen run you need
1083# to manually remove any form_*.png images from the HTML output directory
1084# to force them to be regenerated.
1085
1086FORMULA_FONTSIZE = 10
1087
1088# Use the FORMULA_TRANPARENT tag to determine whether or not the images
1089# generated for formulas are transparent PNGs. Transparent PNGs are
1090# not supported properly for IE 6.0, but are supported on all modern browsers.
1091# Note that when changing this option you need to delete any form_*.png files
1092# in the HTML output before the changes have effect.
1093
1094FORMULA_TRANSPARENT = YES
1095
1096# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax
1097# (see http://www.mathjax.org) which uses client side Javascript for the
1098# rendering instead of using prerendered bitmaps. Use this if you do not
1099# have LaTeX installed or if you want to formulas look prettier in the HTML
1100# output. When enabled you also need to install MathJax separately and
1101# configure the path to it using the MATHJAX_RELPATH option.
1102
1103USE_MATHJAX = NO
1104
1105# When MathJax is enabled you need to specify the location relative to the
1106# HTML output directory using the MATHJAX_RELPATH option. The destination
1107# directory should contain the MathJax.js script. For instance, if the mathjax
1108# directory is located at the same level as the HTML output directory, then
1109# MATHJAX_RELPATH should be ../mathjax. The default value points to the mathjax.org site, so you can quickly see the result without installing
1110# MathJax, but it is strongly recommended to install a local copy of MathJax
1111# before deployment.
1112
1113MATHJAX_RELPATH = http://www.mathjax.org/mathjax
1114
1115# When the SEARCHENGINE tag is enabled doxygen will generate a search box
1116# for the HTML output. The underlying search engine uses javascript
1117# and DHTML and should work on any modern browser. Note that when using
1118# HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets
1119# (GENERATE_DOCSET) there is already a search function so this one should
1120# typically be disabled. For large projects the javascript based search engine
1121# can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution.
1122
1123SEARCHENGINE = NO
1124
1125# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
1126# implemented using a PHP enabled web server instead of at the web client
1127# using Javascript. Doxygen will generate the search PHP script and index
1128# file to put on the web server. The advantage of the server
1129# based approach is that it scales better to large projects and allows
1130# full text search. The disadvantages are that it is more difficult to setup
1131# and does not have live searching capabilities.
1132
1133SERVER_BASED_SEARCH = NO
1134
1135#---------------------------------------------------------------------------
1136# configuration options related to the LaTeX output
1137#---------------------------------------------------------------------------
1138
1139# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
1140# generate Latex output.
1141
84GENERATE_LATEX = YES 1142GENERATE_LATEX = YES
1143
1144# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
1145# If a relative path is entered the value of OUTPUT_DIRECTORY will be
1146# put in front of it. If left blank `latex' will be used as the default path.
1147
85LATEX_OUTPUT = latex 1148LATEX_OUTPUT = latex
1149
1150# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
1151# invoked. If left blank `latex' will be used as the default command name.
1152# Note that when enabling USE_PDFLATEX this option is only used for
1153# generating bitmaps for formulas in the HTML output, but not in the
1154# Makefile that is written to the output directory.
1155
86LATEX_CMD_NAME = latex 1156LATEX_CMD_NAME = latex
1157
1158# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to
1159# generate index for LaTeX. If left blank `makeindex' will be used as the
1160# default command name.
1161
87MAKEINDEX_CMD_NAME = makeindex 1162MAKEINDEX_CMD_NAME = makeindex
1163
1164# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
1165# LaTeX documents. This may be useful for small projects and may help to
1166# save some trees in general.
1167
88COMPACT_LATEX = NO 1168COMPACT_LATEX = NO
1169
1170# The PAPER_TYPE tag can be used to set the paper type that is used
1171# by the printer. Possible values are: a4, letter, legal and
1172# executive. If left blank a4wide will be used.
1173
89PAPER_TYPE = a4wide 1174PAPER_TYPE = a4wide
90EXTRA_PACKAGES = 1175
91LATEX_HEADER = 1176# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
1177# packages that should be included in the LaTeX output.
1178
1179EXTRA_PACKAGES =
1180
1181# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
1182# the generated latex document. The header should contain everything until
1183# the first chapter. If it is left blank doxygen will generate a
1184# standard header. Notice: only use this tag if you know what you are doing!
1185
1186LATEX_HEADER =
1187
1188# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
1189# is prepared for conversion to pdf (using ps2pdf). The pdf file will
1190# contain links (just like the HTML output) instead of page references
1191# This makes the output suitable for online browsing using a pdf viewer.
1192
92PDF_HYPERLINKS = YES 1193PDF_HYPERLINKS = YES
1194
1195# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
1196# plain latex in the generated Makefile. Set this option to YES to get a
1197# higher quality PDF documentation.
1198
93USE_PDFLATEX = YES 1199USE_PDFLATEX = YES
1200
1201# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
1202# command to the generated LaTeX files. This will instruct LaTeX to keep
1203# running if errors occur, instead of asking the user for help.
1204# This option is also used when generating formulas in HTML.
1205
94LATEX_BATCHMODE = NO 1206LATEX_BATCHMODE = NO
1207
1208# If LATEX_HIDE_INDICES is set to YES then doxygen will not
1209# include the index chapters (such as File Index, Compound Index, etc.)
1210# in the output.
1211
1212LATEX_HIDE_INDICES = NO
1213
1214# If LATEX_SOURCE_CODE is set to YES then doxygen will include
1215# source code with syntax highlighting in the LaTeX output.
1216# Note that which sources are shown also depends on other settings
1217# such as SOURCE_BROWSER.
1218
1219LATEX_SOURCE_CODE = NO
1220
1221#---------------------------------------------------------------------------
1222# configuration options related to the RTF output
1223#---------------------------------------------------------------------------
1224
1225# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
1226# The RTF output is optimized for Word 97 and may not look very pretty with
1227# other RTF readers or editors.
1228
95GENERATE_RTF = NO 1229GENERATE_RTF = NO
1230
1231# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
1232# If a relative path is entered the value of OUTPUT_DIRECTORY will be
1233# put in front of it. If left blank `rtf' will be used as the default path.
1234
96RTF_OUTPUT = rtf 1235RTF_OUTPUT = rtf
1236
1237# If the COMPACT_RTF tag is set to YES Doxygen generates more compact
1238# RTF documents. This may be useful for small projects and may help to
1239# save some trees in general.
1240
97COMPACT_RTF = NO 1241COMPACT_RTF = NO
1242
1243# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
1244# will contain hyperlink fields. The RTF file will
1245# contain links (just like the HTML output) instead of page references.
1246# This makes the output suitable for online browsing using WORD or other
1247# programs which support those fields.
1248# Note: wordpad (write) and others do not support links.
1249
98RTF_HYPERLINKS = NO 1250RTF_HYPERLINKS = NO
99RTF_STYLESHEET_FILE = 1251
100RTF_EXTENSIONS_FILE = 1252# Load stylesheet definitions from file. Syntax is similar to doxygen's
1253# config file, i.e. a series of assignments. You only have to provide
1254# replacements, missing definitions are set to their default value.
1255
1256RTF_STYLESHEET_FILE =
1257
1258# Set optional variables used in the generation of an rtf document.
1259# Syntax is similar to doxygen's config file.
1260
1261RTF_EXTENSIONS_FILE =
1262
1263#---------------------------------------------------------------------------
1264# configuration options related to the man page output
1265#---------------------------------------------------------------------------
1266
1267# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
1268# generate man pages
1269
101GENERATE_MAN = YES 1270GENERATE_MAN = YES
1271
1272# The MAN_OUTPUT tag is used to specify where the man pages will be put.
1273# If a relative path is entered the value of OUTPUT_DIRECTORY will be
1274# put in front of it. If left blank `man' will be used as the default path.
1275
102MAN_OUTPUT = man 1276MAN_OUTPUT = man
1277
1278# The MAN_EXTENSION tag determines the extension that is added to
1279# the generated man pages (default is the subroutine's section .3)
1280
103MAN_EXTENSION = .3 1281MAN_EXTENSION = .3
1282
1283# If the MAN_LINKS tag is set to YES and Doxygen generates man output,
1284# then it will generate one additional man file for each entity
1285# documented in the real man page(s). These additional files
1286# only source the real man page, but without them the man command
1287# would be unable to find the correct page. The default is NO.
1288
104MAN_LINKS = YES 1289MAN_LINKS = YES
1290
1291#---------------------------------------------------------------------------
1292# configuration options related to the XML output
1293#---------------------------------------------------------------------------
1294
1295# If the GENERATE_XML tag is set to YES Doxygen will
1296# generate an XML file that captures the structure of
1297# the code including all documentation.
1298
105GENERATE_XML = NO 1299GENERATE_XML = NO
106XML_SCHEMA = 1300
107XML_DTD = 1301# The XML_OUTPUT tag is used to specify where the XML pages will be put.
1302# If a relative path is entered the value of OUTPUT_DIRECTORY will be
1303# put in front of it. If left blank `xml' will be used as the default path.
1304
1305XML_OUTPUT = xml
1306
1307# The XML_SCHEMA tag can be used to specify an XML schema,
1308# which can be used by a validating XML parser to check the
1309# syntax of the XML files.
1310
1311XML_SCHEMA =
1312
1313# The XML_DTD tag can be used to specify an XML DTD,
1314# which can be used by a validating XML parser to check the
1315# syntax of the XML files.
1316
1317XML_DTD =
1318
1319# If the XML_PROGRAMLISTING tag is set to YES Doxygen will
1320# dump the program listings (including syntax highlighting
1321# and cross-referencing information) to the XML output. Note that
1322# enabling this will significantly increase the size of the XML output.
1323
1324XML_PROGRAMLISTING = YES
1325
1326#---------------------------------------------------------------------------
1327# configuration options for the AutoGen Definitions output
1328#---------------------------------------------------------------------------
1329
1330# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will
1331# generate an AutoGen Definitions (see autogen.sf.net) file
1332# that captures the structure of the code including all
1333# documentation. Note that this feature is still experimental
1334# and incomplete at the moment.
1335
108GENERATE_AUTOGEN_DEF = NO 1336GENERATE_AUTOGEN_DEF = NO
1337
1338#---------------------------------------------------------------------------
1339# configuration options related to the Perl module output
1340#---------------------------------------------------------------------------
1341
1342# If the GENERATE_PERLMOD tag is set to YES Doxygen will
1343# generate a Perl module file that captures the structure of
1344# the code including all documentation. Note that this
1345# feature is still experimental and incomplete at the
1346# moment.
1347
1348GENERATE_PERLMOD = NO
1349
1350# If the PERLMOD_LATEX tag is set to YES Doxygen will generate
1351# the necessary Makefile rules, Perl scripts and LaTeX code to be able
1352# to generate PDF and DVI output from the Perl module output.
1353
1354PERLMOD_LATEX = NO
1355
1356# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be
1357# nicely formatted so it can be parsed by a human reader.
1358# This is useful
1359# if you want to understand what is going on.
1360# On the other hand, if this
1361# tag is set to NO the size of the Perl module output will be much smaller
1362# and Perl will parse it just the same.
1363
1364PERLMOD_PRETTY = YES
1365
1366# The names of the make variables in the generated doxyrules.make file
1367# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX.
1368# This is useful so different doxyrules.make files included by the same
1369# Makefile don't overwrite each other's variables.
1370
1371PERLMOD_MAKEVAR_PREFIX =
1372
1373#---------------------------------------------------------------------------
1374# Configuration options related to the preprocessor
1375#---------------------------------------------------------------------------
1376
1377# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
1378# evaluate all C-preprocessor directives found in the sources and include
1379# files.
1380
109ENABLE_PREPROCESSING = YES 1381ENABLE_PREPROCESSING = YES
110MACRO_EXPANSION = NO 1382
111EXPAND_ONLY_PREDEF = NO 1383# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
1384# names in the source code. If set to NO (the default) only conditional
1385# compilation will be performed. Macro expansion can be done in a controlled
1386# way by setting EXPAND_ONLY_PREDEF to YES.
1387
1388MACRO_EXPANSION = YES
1389
1390# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
1391# then the macro expansion is limited to the macros specified with the
1392# PREDEFINED and EXPAND_AS_DEFINED tags.
1393
1394EXPAND_ONLY_PREDEF = YES
1395
1396# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
1397# in the INCLUDE_PATH (see below) will be search if a #include is found.
1398
112SEARCH_INCLUDES = NO 1399SEARCH_INCLUDES = NO
1400
1401# The INCLUDE_PATH tag can be used to specify one or more directories that
1402# contain include files that are not input files but should be processed by
1403# the preprocessor.
1404
113INCLUDE_PATH = 1405INCLUDE_PATH =
114INCLUDE_FILE_PATTERNS = 1406
115PREDEFINED = 1407# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
116EXPAND_AS_DEFINED = 1408# patterns (like *.h and *.hpp) to filter out the header-files in the
1409# directories. If left blank, the patterns specified with FILE_PATTERNS will
1410# be used.
1411
1412INCLUDE_FILE_PATTERNS =
1413
1414# The PREDEFINED tag can be used to specify one or more macro names that
1415# are defined before the preprocessor is started (similar to the -D option of
1416# gcc). The argument of the tag is a list of macros of the form: name
1417# or name=definition (no spaces). If the definition and the = are
1418# omitted =1 is assumed. To prevent a macro definition from being
1419# undefined via #undef or recursively expanded use the := operator
1420# instead of the = operator.
1421
1422PREDEFINED = EINA_MAGIC_DEBUG \
1423 __UNUSED__= \
1424 EINA_ARG_NONNULL()= \
1425 EINA_MALLOC= \
1426 EINA_WARN_UNUSED_RESULT= \
1427 EAPI= \
1428 EINA_PURE= \
1429 EINA_CONST=
1430
1431# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
1432# this tag can be used to specify a list of macro names that should be expanded.
1433# The macro definition that is found in the sources will be used.
1434# Use the PREDEFINED tag if you want to use a different macro definition that overrules the definition found in the source code.
1435
1436EXPAND_AS_DEFINED =
1437
1438# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
1439# doxygen's preprocessor will remove all references to function-like macros
1440# that are alone on a line, have an all uppercase name, and do not end with a
1441# semicolon, because these will confuse the parser if not removed.
1442
117SKIP_FUNCTION_MACROS = YES 1443SKIP_FUNCTION_MACROS = YES
118TAGFILES = 1444
119GENERATE_TAGFILE = 1445#---------------------------------------------------------------------------
1446# Configuration::additions related to external references
1447#---------------------------------------------------------------------------
1448
1449# The TAGFILES option can be used to specify one or more tagfiles.
1450# Optionally an initial location of the external documentation
1451# can be added for each tagfile. The format of a tag file without
1452# this location is as follows:
1453#
1454# TAGFILES = file1 file2 ...
1455# Adding location for the tag files is done as follows:
1456#
1457# TAGFILES = file1=loc1 "file2 = loc2" ...
1458# where "loc1" and "loc2" can be relative or absolute paths or
1459# URLs. If a location is present for each tag, the installdox tool
1460# does not have to be run to correct the links.
1461# Note that each tag file must have a unique name
1462# (where the name does NOT include the path)
1463# If a tag file is not located in the directory in which doxygen
1464# is run, you must also specify the path to the tagfile here.
1465
1466TAGFILES =
1467
1468# When a file name is specified after GENERATE_TAGFILE, doxygen will create
1469# a tag file that is based on the input files it reads.
1470
1471GENERATE_TAGFILE =
1472
1473# If the ALLEXTERNALS tag is set to YES all external classes will be listed
1474# in the class index. If set to NO only the inherited external classes
1475# will be listed.
1476
120ALLEXTERNALS = NO 1477ALLEXTERNALS = NO
1478
1479# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed
1480# in the modules index. If set to NO, only the current project's groups will
1481# be listed.
1482
121EXTERNAL_GROUPS = YES 1483EXTERNAL_GROUPS = YES
1484
1485# The PERL_PATH should be the absolute path and name of the perl script
1486# interpreter (i.e. the result of `which perl').
1487
122PERL_PATH = /usr/bin/perl 1488PERL_PATH = /usr/bin/perl
1489
1490#---------------------------------------------------------------------------
1491# Configuration options related to the dot tool
1492#---------------------------------------------------------------------------
1493
1494# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
1495# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base
1496# or super classes. Setting the tag to NO turns the diagrams off. Note that
1497# this option also works with HAVE_DOT disabled, but it is recommended to
1498# install and use dot, since it yields more powerful graphs.
1499
123CLASS_DIAGRAMS = NO 1500CLASS_DIAGRAMS = NO
1501
1502# You can define message sequence charts within doxygen comments using the \msc
1503# command. Doxygen will then run the mscgen tool (see
1504# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the
1505# documentation. The MSCGEN_PATH tag allows you to specify the directory where
1506# the mscgen tool resides. If left empty the tool is assumed to be found in the
1507# default search path.
1508
1509MSCGEN_PATH =
1510
1511# If set to YES, the inheritance and collaboration graphs will hide
1512# inheritance and usage relations if the target is undocumented
1513# or is not a class.
1514
124HIDE_UNDOC_RELATIONS = YES 1515HIDE_UNDOC_RELATIONS = YES
1516
1517# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
1518# available from the path. This tool is part of Graphviz, a graph visualization
1519# toolkit from AT&T and Lucent Bell Labs. The other options in this section
1520# have no effect if this option is set to NO (the default)
1521
125HAVE_DOT = NO 1522HAVE_DOT = NO
1523
1524# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is
1525# allowed to run in parallel. When set to 0 (the default) doxygen will
1526# base this on the number of processors available in the system. You can set it
1527# explicitly to a value larger than 0 to get control over the balance
1528# between CPU load and processing speed.
1529
1530DOT_NUM_THREADS = 0
1531
1532# By default doxygen will write a font called Helvetica to the output
1533# directory and reference it in all dot files that doxygen generates.
1534# When you want a differently looking font you can specify the font name
1535# using DOT_FONTNAME. You need to make sure dot is able to find the font,
1536# which can be done by putting it in a standard location or by setting the
1537# DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory
1538# containing the font.
1539
1540DOT_FONTNAME = Helvetica
1541
1542# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs.
1543# The default size is 10pt.
1544
1545DOT_FONTSIZE = 10
1546
1547# By default doxygen will tell dot to use the output directory to look for the
1548# FreeSans.ttf font (which doxygen will put there itself). If you specify a
1549# different font using DOT_FONTNAME you can set the path where dot
1550# can find it using this tag.
1551
1552DOT_FONTPATH =
1553
1554# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
1555# will generate a graph for each documented class showing the direct and
1556# indirect inheritance relations. Setting this tag to YES will force the
1557# the CLASS_DIAGRAMS tag to NO.
1558
126CLASS_GRAPH = NO 1559CLASS_GRAPH = NO
1560
1561# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
1562# will generate a graph for each documented class showing the direct and
1563# indirect implementation dependencies (inheritance, containment, and
1564# class references variables) of the class with other documented classes.
1565
127COLLABORATION_GRAPH = NO 1566COLLABORATION_GRAPH = NO
1567
1568# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen
1569# will generate a graph for groups, showing the direct groups dependencies
1570
1571GROUP_GRAPHS = YES
1572
1573# If the UML_LOOK tag is set to YES doxygen will generate inheritance and
1574# collaboration diagrams in a style similar to the OMG's Unified Modeling
1575# Language.
1576
1577UML_LOOK = NO
1578
1579# If set to YES, the inheritance and collaboration graphs will show the
1580# relations between templates and their instances.
1581
128TEMPLATE_RELATIONS = NO 1582TEMPLATE_RELATIONS = NO
1583
1584# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT
1585# tags are set to YES then doxygen will generate a graph for each documented
1586# file showing the direct and indirect include dependencies of the file with
1587# other documented files.
1588
129INCLUDE_GRAPH = NO 1589INCLUDE_GRAPH = NO
1590
1591# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and
1592# HAVE_DOT tags are set to YES then doxygen will generate a graph for each
1593# documented header file showing the documented files that directly or
1594# indirectly include this file.
1595
130INCLUDED_BY_GRAPH = NO 1596INCLUDED_BY_GRAPH = NO
1597
1598# If the CALL_GRAPH and HAVE_DOT options are set to YES then
1599# doxygen will generate a call dependency graph for every global function
1600# or class method. Note that enabling this option will significantly increase
1601# the time of a run. So in most cases it will be better to enable call graphs
1602# for selected functions only using the \callgraph command.
1603
1604CALL_GRAPH = NO
1605
1606# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then
1607# doxygen will generate a caller dependency graph for every global function
1608# or class method. Note that enabling this option will significantly increase
1609# the time of a run. So in most cases it will be better to enable caller
1610# graphs for selected functions only using the \callergraph command.
1611
1612CALLER_GRAPH = NO
1613
1614# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
1615# will generate a graphical hierarchy of all classes instead of a textual one.
1616
131GRAPHICAL_HIERARCHY = NO 1617GRAPHICAL_HIERARCHY = NO
1618
1619# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES
1620# then doxygen will show the dependencies a directory has on other directories
1621# in a graphical way. The dependency relations are determined by the #include
1622# relations between the files in the directories.
1623
1624DIRECTORY_GRAPH = YES
1625
1626# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
1627# generated by dot. Possible values are png, svg, gif or svg.
1628# If left blank png will be used.
1629
132DOT_IMAGE_FORMAT = png 1630DOT_IMAGE_FORMAT = png
133DOT_PATH = 1631
134DOTFILE_DIRS = 1632# The tag DOT_PATH can be used to specify the path where the dot tool can be
135MAX_DOT_GRAPH_WIDTH = 512 1633# found. If left blank, it is assumed the dot tool can be found in the path.
136MAX_DOT_GRAPH_HEIGHT = 512 1634
1635DOT_PATH =
1636
1637# The DOTFILE_DIRS tag can be used to specify one or more directories that
1638# contain dot files that are included in the documentation (see the
1639# \dotfile command).
1640
1641DOTFILE_DIRS =
1642
1643# The MSCFILE_DIRS tag can be used to specify one or more directories that
1644# contain msc files that are included in the documentation (see the
1645# \mscfile command).
1646
1647MSCFILE_DIRS =
1648
1649# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of
1650# nodes that will be shown in the graph. If the number of nodes in a graph
1651# becomes larger than this value, doxygen will truncate the graph, which is
1652# visualized by representing a node as a red box. Note that doxygen if the
1653# number of direct children of the root node in a graph is already larger than
1654# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note
1655# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
1656
1657DOT_GRAPH_MAX_NODES = 50
1658
1659# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the
1660# graphs generated by dot. A depth value of 3 means that only nodes reachable
1661# from the root by following a path via at most 3 edges will be shown. Nodes
1662# that lay further from the root node will be omitted. Note that setting this
1663# option to 1 or 2 may greatly reduce the computation time needed for large
1664# code bases. Also note that the size of a graph can be further restricted by
1665# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
1666
1667MAX_DOT_GRAPH_DEPTH = 0
1668
1669# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
1670# background. This is disabled by default, because dot on Windows does not
1671# seem to support this out of the box. Warning: Depending on the platform used,
1672# enabling this option may lead to badly anti-aliased labels on the edges of
1673# a graph (i.e. they become hard to read).
1674
1675DOT_TRANSPARENT = YES
1676
1677# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
1678# files in one run (i.e. multiple -o and -T options on the command line). This
1679# makes dot run faster, but since only newer versions of dot (>1.8.10)
1680# support this, this feature is disabled by default.
1681
1682DOT_MULTI_TARGETS = NO
1683
1684# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
1685# generate a legend page explaining the meaning of the various boxes and
1686# arrows in the dot generated graphs.
1687
137GENERATE_LEGEND = YES 1688GENERATE_LEGEND = YES
1689
1690# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will
1691# remove the intermediate dot files that are used to generate
1692# the various graphs.
1693
138DOT_CLEANUP = YES 1694DOT_CLEANUP = YES
139SEARCHENGINE = NO
diff --git a/libraries/eet/doc/Makefile.am b/libraries/eet/doc/Makefile.am
index 12f7073..145376f 100644
--- a/libraries/eet/doc/Makefile.am
+++ b/libraries/eet/doc/Makefile.am
@@ -20,6 +20,7 @@ doc: doc-clean
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 24
24clean-local: doc-clean 25clean-local: doc-clean
25 26
@@ -30,7 +31,7 @@ doc:
30 31
31endif 32endif
32 33
33EXTRA_DIST = $(srcdir)/Doxyfile \ 34EXTRA_DIST = $(builddir)/Doxyfile \
34 $(srcdir)/e.css \ 35 $(srcdir)/e.css \
35 $(srcdir)/foot.html \ 36 $(srcdir)/foot.html \
36 $(srcdir)/head.html \ 37 $(srcdir)/head.html \
diff --git a/libraries/eet/doc/Makefile.in b/libraries/eet/doc/Makefile.in
index c3bcf00..e285740 100644
--- a/libraries/eet/doc/Makefile.in
+++ b/libraries/eet/doc/Makefile.in
@@ -143,8 +143,6 @@ PACKAGE_URL = @PACKAGE_URL@
143PACKAGE_VERSION = @PACKAGE_VERSION@ 143PACKAGE_VERSION = @PACKAGE_VERSION@
144PATH_SEPARATOR = @PATH_SEPARATOR@ 144PATH_SEPARATOR = @PATH_SEPARATOR@
145PKG_CONFIG = @PKG_CONFIG@ 145PKG_CONFIG = @PKG_CONFIG@
146PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
147PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
148RANLIB = @RANLIB@ 146RANLIB = @RANLIB@
149SED = @SED@ 147SED = @SED@
150SET_MAKE = @SET_MAKE@ 148SET_MAKE = @SET_MAKE@
@@ -214,7 +212,7 @@ top_srcdir = @top_srcdir@
214version_info = @version_info@ 212version_info = @version_info@
215MAINTAINERCLEANFILES = Makefile.in eet.dox 213MAINTAINERCLEANFILES = Makefile.in eet.dox
216PACKAGE_DOCNAME = $(PACKAGE_TARNAME)-$(PACKAGE_VERSION)-doc 214PACKAGE_DOCNAME = $(PACKAGE_TARNAME)-$(PACKAGE_VERSION)-doc
217EXTRA_DIST = $(srcdir)/Doxyfile \ 215EXTRA_DIST = $(builddir)/Doxyfile \
218 $(srcdir)/e.css \ 216 $(srcdir)/e.css \
219 $(srcdir)/foot.html \ 217 $(srcdir)/foot.html \
220 $(srcdir)/head.html \ 218 $(srcdir)/head.html \
@@ -428,6 +426,7 @@ uninstall-am:
428@EFL_BUILD_DOC_TRUE@ bzip2 -9 $(PACKAGE_DOCNAME).tar 426@EFL_BUILD_DOC_TRUE@ bzip2 -9 $(PACKAGE_DOCNAME).tar
429@EFL_BUILD_DOC_TRUE@ rm -rf $(PACKAGE_DOCNAME)/ 427@EFL_BUILD_DOC_TRUE@ rm -rf $(PACKAGE_DOCNAME)/
430@EFL_BUILD_DOC_TRUE@ mv $(PACKAGE_DOCNAME).tar.bz2 $(top_builddir) 428@EFL_BUILD_DOC_TRUE@ mv $(PACKAGE_DOCNAME).tar.bz2 $(top_builddir)
429@EFL_BUILD_DOC_TRUE@ @echo "Documentation Package: $(top_builddir)/$(PACKAGE_DOCNAME).tar.bz2"
431 430
432@EFL_BUILD_DOC_TRUE@clean-local: doc-clean 431@EFL_BUILD_DOC_TRUE@clean-local: doc-clean
433 432
diff --git a/libraries/eet/eet.spec b/libraries/eet/eet.spec
index 07cabba..4b7994b 100644
--- a/libraries/eet/eet.spec
+++ b/libraries/eet/eet.spec
@@ -3,7 +3,7 @@
3 3
4Summary: Library for speedy data storage, retrieval, and compression. 4Summary: Library for speedy data storage, retrieval, and compression.
5Name: eet 5Name: eet
6Version: 1.5.0 6Version: 1.5.99.67344
7Release: %{_rel} 7Release: %{_rel}
8License: BSD 8License: BSD
9Group: System Environment/Libraries 9Group: System Environment/Libraries
@@ -70,6 +70,7 @@ test "x$RPM_BUILD_ROOT" != "x/" && rm -rf $RPM_BUILD_ROOT
70%{_includedir}/* 70%{_includedir}/*
71%{_libdir}/*.a 71%{_libdir}/*.a
72%{_libdir}/*.so 72%{_libdir}/*.so
73%{_datadir}/eet
73%{_libdir}/*.la 74%{_libdir}/*.la
74 75
75%changelog 76%changelog
diff --git a/libraries/eet/eet.spec.in b/libraries/eet/eet.spec.in
index 898fd7a..5a91f60 100644
--- a/libraries/eet/eet.spec.in
+++ b/libraries/eet/eet.spec.in
@@ -70,6 +70,7 @@ test "x$RPM_BUILD_ROOT" != "x/" && rm -rf $RPM_BUILD_ROOT
70%{_includedir}/* 70%{_includedir}/*
71%{_libdir}/*.a 71%{_libdir}/*.a
72%{_libdir}/*.so 72%{_libdir}/*.so
73%{_datadir}/eet
73%{_libdir}/*.la 74%{_libdir}/*.la
74 75
75%changelog 76%changelog
diff --git a/libraries/eet/ltmain.sh b/libraries/eet/ltmain.sh
index fa4b1e1..7ed280b 100755
--- a/libraries/eet/ltmain.sh
+++ b/libraries/eet/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-2ubuntu3 68# $progname: (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
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-2ubuntu3" 76VERSION="2.2.6b Debian-2.2.6b-2ubuntu1"
77TIMESTAMP="" 77TIMESTAMP=""
78package_revision=1.3017 78package_revision=1.3017
79 79
diff --git a/libraries/eet/sha1-for-source.txt b/libraries/eet/sha1-for-source.txt
deleted file mode 100644
index c9ecae4..0000000
--- a/libraries/eet/sha1-for-source.txt
+++ /dev/null
@@ -1 +0,0 @@
1bbbb3fea6997bc0cb3a5a1ce4ad00d7419b5e935
diff --git a/libraries/eet/src/Makefile.in b/libraries/eet/src/Makefile.in
index 0a28065..8b2aa37 100644
--- a/libraries/eet/src/Makefile.in
+++ b/libraries/eet/src/Makefile.in
@@ -182,8 +182,6 @@ PACKAGE_URL = @PACKAGE_URL@
182PACKAGE_VERSION = @PACKAGE_VERSION@ 182PACKAGE_VERSION = @PACKAGE_VERSION@
183PATH_SEPARATOR = @PATH_SEPARATOR@ 183PATH_SEPARATOR = @PATH_SEPARATOR@
184PKG_CONFIG = @PKG_CONFIG@ 184PKG_CONFIG = @PKG_CONFIG@
185PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
186PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
187RANLIB = @RANLIB@ 185RANLIB = @RANLIB@
188SED = @SED@ 186SED = @SED@
189SET_MAKE = @SET_MAKE@ 187SET_MAKE = @SET_MAKE@
diff --git a/libraries/eet/src/bin/Makefile.in b/libraries/eet/src/bin/Makefile.in
index 9273fac..4a899f5 100644
--- a/libraries/eet/src/bin/Makefile.in
+++ b/libraries/eet/src/bin/Makefile.in
@@ -177,8 +177,6 @@ PACKAGE_URL = @PACKAGE_URL@
177PACKAGE_VERSION = @PACKAGE_VERSION@ 177PACKAGE_VERSION = @PACKAGE_VERSION@
178PATH_SEPARATOR = @PATH_SEPARATOR@ 178PATH_SEPARATOR = @PATH_SEPARATOR@
179PKG_CONFIG = @PKG_CONFIG@ 179PKG_CONFIG = @PKG_CONFIG@
180PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
181PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
182RANLIB = @RANLIB@ 180RANLIB = @RANLIB@
183SED = @SED@ 181SED = @SED@
184SET_MAKE = @SET_MAKE@ 182SET_MAKE = @SET_MAKE@
diff --git a/libraries/eet/src/bin/eet_main.c b/libraries/eet/src/bin/eet_main.c
index 7ab5555..0d577ad 100644
--- a/libraries/eet/src/bin/eet_main.c
+++ b/libraries/eet/src/bin/eet_main.c
@@ -77,7 +77,7 @@ do_eet_extract(const char *file,
77 Eet_File *ef; 77 Eet_File *ef;
78 void *data; 78 void *data;
79 int size = 0; 79 int size = 0;
80 FILE *f; 80 FILE *f = stdout;
81 81
82 ef = eet_open(file, EET_FILE_MODE_READ); 82 ef = eet_open(file, EET_FILE_MODE_READ);
83 if (!ef) 83 if (!ef)
@@ -93,20 +93,23 @@ do_eet_extract(const char *file,
93 exit(-1); 93 exit(-1);
94 } 94 }
95 95
96 f = fopen(out, "wb"); 96 if (out)
97 if (!f)
98 { 97 {
99 ERR("cannot open %s", out); 98 f = fopen(out, "wb");
100 exit(-1); 99 if (!f)
100 {
101 ERR("cannot open %s", out);
102 exit(-1);
103 }
101 } 104 }
102 105
103 if (fwrite(data, size, 1, f) != 1) 106 if (fwrite(data, size, 1, f) != 1)
104 { 107 {
105 ERR("cannot write to %s", out); 108 ERR("cannot write to %s", out ? out : "standard output");
106 exit(-1); 109 exit(-1);
107 } 110 }
108 111
109 fclose(f); 112 if (out) fclose(f);
110 free(data); 113 free(data);
111 eet_close(ef); 114 eet_close(ef);
112} /* do_eet_extract */ 115} /* do_eet_extract */
@@ -125,7 +128,7 @@ do_eet_decode(const char *file,
125 const char *crypto_key) 128 const char *crypto_key)
126{ 129{
127 Eet_File *ef; 130 Eet_File *ef;
128 FILE *f; 131 FILE *f = stdout;
129 132
130 ef = eet_open(file, EET_FILE_MODE_READ); 133 ef = eet_open(file, EET_FILE_MODE_READ);
131 if (!ef) 134 if (!ef)
@@ -134,20 +137,23 @@ do_eet_decode(const char *file,
134 exit(-1); 137 exit(-1);
135 } 138 }
136 139
137 f = fopen(out, "wb"); 140 if (out)
138 if (!f)
139 { 141 {
140 ERR("cannot open %s", out); 142 f = fopen(out, "wb");
141 exit(-1); 143 if (!f)
144 {
145 ERR("cannot open %s", out);
146 exit(-1);
147 }
142 } 148 }
143 149
144 if (!eet_data_dump_cipher(ef, key, crypto_key, do_eet_decode_dump, f)) 150 if (!eet_data_dump_cipher(ef, key, crypto_key, do_eet_decode_dump, f))
145 { 151 {
146 ERR("cannot write to %s", out); 152 ERR("cannot write to %s", out ? out : "standard output");
147 exit(-1); 153 exit(-1);
148 } 154 }
149 155
150 fclose(f); 156 if (out) fclose(f);
151 eet_close(ef); 157 eet_close(ef);
152} /* do_eet_decode */ 158} /* do_eet_decode */
153 159
@@ -352,9 +358,9 @@ main(int argc,
352help: 358help:
353 printf( 359 printf(
354 "Usage:\n" 360 "Usage:\n"
355 " eet -l FILE.EET list all keys in FILE.EET\n" 361 " eet -l FILE.EET list all keys in FILE.EET\n"
356 " eet -x FILE.EET KEY OUT-FILE [CRYPTO_KEY] extract data stored in KEY in FILE.EET and write to OUT-FILE\n" 362 " eet -x FILE.EET KEY [OUT-FILE] [CRYPTO_KEY] extract data stored in KEY in FILE.EET and write to OUT-FILE or standard output\n"
357 " eet -d FILE.EET KEY OUT-FILE [CRYPTO_KEY] extract and decode data stored in KEY in FILE.EET and write to OUT-FILE\n" 363 " eet -d FILE.EET KEY [OUT-FILE] [CRYPTO_KEY] extract and decode data stored in KEY in FILE.EET and write to OUT-FILE or standard output\n"
358 " eet -i FILE.EET KEY IN-FILE COMPRESS [CRYPTO_KEY] insert data to KEY in FILE.EET from IN-FILE and if COMPRESS is 1, compress it\n" 364 " eet -i FILE.EET KEY IN-FILE COMPRESS [CRYPTO_KEY] insert data to KEY in FILE.EET from IN-FILE and if COMPRESS is 1, compress it\n"
359 " eet -e FILE.EET KEY IN-FILE COMPRESS [CRYPTO_KEY] insert and encode to KEY in FILE.EET from IN-FILE and if COMPRESS is 1, compress it\n" 365 " eet -e FILE.EET KEY IN-FILE COMPRESS [CRYPTO_KEY] insert and encode to KEY in FILE.EET from IN-FILE and if COMPRESS is 1, compress it\n"
360 " eet -r FILE.EET KEY remove KEY in FILE.EET\n" 366 " eet -r FILE.EET KEY remove KEY in FILE.EET\n"
@@ -369,19 +375,47 @@ help:
369 goto help; 375 goto help;
370 else if ((!strcmp(argv[1], "-l")) && (argc > 2)) 376 else if ((!strcmp(argv[1], "-l")) && (argc > 2))
371 do_eet_list(argv[2]); 377 do_eet_list(argv[2]);
372 else if ((!strcmp(argv[1], "-x")) && (argc > 4)) 378 else if ((!strcmp(argv[1], "-x")) && (argc > 3))
373 { 379 {
374 if (argc > 5) 380 switch (argc)
375 do_eet_extract(argv[2], argv[3], argv[4], argv[5]); 381 {
376 else 382 case 4:
377 do_eet_extract(argv[2], argv[3], argv[4], NULL); 383 {
384 do_eet_extract(argv[2], argv[3], NULL, NULL);
385 break;
386 }
387 case 5:
388 {
389 do_eet_extract(argv[2], argv[3], argv[4], NULL);
390 break;
391 }
392 default:
393 {
394 do_eet_extract(argv[2], argv[3], argv[4], argv[5]);
395 break;
396 }
397 }
378 } 398 }
379 else if ((!strcmp(argv[1], "-d")) && (argc > 4)) 399 else if ((!strcmp(argv[1], "-d")) && (argc > 3))
380 { 400 {
381 if (argc > 5) 401 switch (argc)
382 do_eet_decode(argv[2], argv[3], argv[4], argv[5]); 402 {
383 else 403 case 4:
384 do_eet_decode(argv[2], argv[3], argv[4], NULL); 404 {
405 do_eet_decode(argv[2], argv[3], NULL, NULL);
406 break;
407 }
408 case 5:
409 {
410 do_eet_decode(argv[2], argv[3], argv[4], NULL);
411 break;
412 }
413 default:
414 {
415 do_eet_decode(argv[2], argv[3], argv[4], argv[5]);
416 break;
417 }
418 }
385 } 419 }
386 else if ((!strcmp(argv[1], "-i")) && (argc > 5)) 420 else if ((!strcmp(argv[1], "-i")) && (argc > 5))
387 { 421 {
diff --git a/libraries/eet/src/examples/Makefile.am b/libraries/eet/src/examples/Makefile.am
index 8279445..6c5a324 100644
--- a/libraries/eet/src/examples/Makefile.am
+++ b/libraries/eet/src/examples/Makefile.am
@@ -1,6 +1,6 @@
1MAINTAINERCLEANFILES = Makefile.in 1MAINTAINERCLEANFILES = Makefile.in
2 2
3pkglibdir = $(datadir)/$(PACKAGE)/examples 3examplesdir = $(datadir)/$(PACKAGE)/examples
4 4
5if BUILD_EXAMPLES 5if BUILD_EXAMPLES
6AM_CPPFLAGS = \ 6AM_CPPFLAGS = \
@@ -8,7 +8,7 @@ AM_CPPFLAGS = \
8-I$(top_srcdir)/src/lib \ 8-I$(top_srcdir)/src/lib \
9@EINA_CFLAGS@ 9@EINA_CFLAGS@
10 10
11pkglib_PROGRAMS = eet_basic eet_file eet_data_simple eet_data_nested eet_data_file_descriptor_01 eet_data_file_descriptor_02 eet_data_cipher_decipher 11examples_PROGRAMS = eet_basic eet_file eet_data_simple eet_data_nested eet_data_file_descriptor_01 eet_data_file_descriptor_02 eet_data_cipher_decipher
12 12
13eet_basic_SOURCES = eet-basic.c 13eet_basic_SOURCES = eet-basic.c
14eet_basic_LDADD = $(top_builddir)/src/lib/libeet.la @EINA_LIBS@ 14eet_basic_LDADD = $(top_builddir)/src/lib/libeet.la @EINA_LIBS@
diff --git a/libraries/eet/src/examples/Makefile.in b/libraries/eet/src/examples/Makefile.in
index d24b728..5830132 100644
--- a/libraries/eet/src/examples/Makefile.in
+++ b/libraries/eet/src/examples/Makefile.in
@@ -19,6 +19,7 @@
19VPATH = @srcdir@ 19VPATH = @srcdir@
20pkgdatadir = $(datadir)/@PACKAGE@ 20pkgdatadir = $(datadir)/@PACKAGE@
21pkgincludedir = $(includedir)/@PACKAGE@ 21pkgincludedir = $(includedir)/@PACKAGE@
22pkglibdir = $(libdir)/@PACKAGE@
22pkglibexecdir = $(libexecdir)/@PACKAGE@ 23pkglibexecdir = $(libexecdir)/@PACKAGE@
23am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd 24am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
24install_sh_DATA = $(install_sh) -c -m 644 25install_sh_DATA = $(install_sh) -c -m 644
@@ -34,7 +35,7 @@ PRE_UNINSTALL = :
34POST_UNINSTALL = : 35POST_UNINSTALL = :
35build_triplet = @build@ 36build_triplet = @build@
36host_triplet = @host@ 37host_triplet = @host@
37@BUILD_EXAMPLES_TRUE@pkglib_PROGRAMS = eet_basic$(EXEEXT) \ 38@BUILD_EXAMPLES_TRUE@examples_PROGRAMS = eet_basic$(EXEEXT) \
38@BUILD_EXAMPLES_TRUE@ eet_file$(EXEEXT) \ 39@BUILD_EXAMPLES_TRUE@ eet_file$(EXEEXT) \
39@BUILD_EXAMPLES_TRUE@ eet_data_simple$(EXEEXT) \ 40@BUILD_EXAMPLES_TRUE@ eet_data_simple$(EXEEXT) \
40@BUILD_EXAMPLES_TRUE@ eet_data_nested$(EXEEXT) \ 41@BUILD_EXAMPLES_TRUE@ eet_data_nested$(EXEEXT) \
@@ -70,8 +71,8 @@ mkinstalldirs = $(install_sh) -d
70CONFIG_HEADER = $(top_builddir)/config.h 71CONFIG_HEADER = $(top_builddir)/config.h
71CONFIG_CLEAN_FILES = 72CONFIG_CLEAN_FILES =
72CONFIG_CLEAN_VPATH_FILES = 73CONFIG_CLEAN_VPATH_FILES =
73am__installdirs = "$(DESTDIR)$(pkglibdir)" "$(DESTDIR)$(filesdir)" 74am__installdirs = "$(DESTDIR)$(examplesdir)" "$(DESTDIR)$(filesdir)"
74PROGRAMS = $(pkglib_PROGRAMS) 75PROGRAMS = $(examples_PROGRAMS)
75am__eet_basic_SOURCES_DIST = eet-basic.c 76am__eet_basic_SOURCES_DIST = eet-basic.c
76@BUILD_EXAMPLES_TRUE@am_eet_basic_OBJECTS = eet-basic.$(OBJEXT) 77@BUILD_EXAMPLES_TRUE@am_eet_basic_OBJECTS = eet-basic.$(OBJEXT)
77eet_basic_OBJECTS = $(am_eet_basic_OBJECTS) 78eet_basic_OBJECTS = $(am_eet_basic_OBJECTS)
@@ -184,7 +185,6 @@ DATA = $(files_DATA)
184ETAGS = etags 185ETAGS = etags
185CTAGS = ctags 186CTAGS = ctags
186DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) 187DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
187pkglibdir = $(datadir)/$(PACKAGE)/examples
188ACLOCAL = @ACLOCAL@ 188ACLOCAL = @ACLOCAL@
189ALLOCA = @ALLOCA@ 189ALLOCA = @ALLOCA@
190AMTAR = @AMTAR@ 190AMTAR = @AMTAR@
@@ -265,8 +265,6 @@ PACKAGE_URL = @PACKAGE_URL@
265PACKAGE_VERSION = @PACKAGE_VERSION@ 265PACKAGE_VERSION = @PACKAGE_VERSION@
266PATH_SEPARATOR = @PATH_SEPARATOR@ 266PATH_SEPARATOR = @PATH_SEPARATOR@
267PKG_CONFIG = @PKG_CONFIG@ 267PKG_CONFIG = @PKG_CONFIG@
268PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
269PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
270RANLIB = @RANLIB@ 268RANLIB = @RANLIB@
271SED = @SED@ 269SED = @SED@
272SET_MAKE = @SET_MAKE@ 270SET_MAKE = @SET_MAKE@
@@ -335,6 +333,7 @@ top_builddir = @top_builddir@
335top_srcdir = @top_srcdir@ 333top_srcdir = @top_srcdir@
336version_info = @version_info@ 334version_info = @version_info@
337MAINTAINERCLEANFILES = Makefile.in 335MAINTAINERCLEANFILES = Makefile.in
336examplesdir = $(datadir)/$(PACKAGE)/examples
338@BUILD_EXAMPLES_TRUE@AM_CPPFLAGS = \ 337@BUILD_EXAMPLES_TRUE@AM_CPPFLAGS = \
339@BUILD_EXAMPLES_TRUE@-I. \ 338@BUILD_EXAMPLES_TRUE@-I. \
340@BUILD_EXAMPLES_TRUE@-I$(top_srcdir)/src/lib \ 339@BUILD_EXAMPLES_TRUE@-I$(top_srcdir)/src/lib \
@@ -390,10 +389,10 @@ $(top_srcdir)/configure: $(am__configure_deps)
390$(ACLOCAL_M4): $(am__aclocal_m4_deps) 389$(ACLOCAL_M4): $(am__aclocal_m4_deps)
391 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh 390 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
392$(am__aclocal_m4_deps): 391$(am__aclocal_m4_deps):
393install-pkglibPROGRAMS: $(pkglib_PROGRAMS) 392install-examplesPROGRAMS: $(examples_PROGRAMS)
394 @$(NORMAL_INSTALL) 393 @$(NORMAL_INSTALL)
395 test -z "$(pkglibdir)" || $(MKDIR_P) "$(DESTDIR)$(pkglibdir)" 394 test -z "$(examplesdir)" || $(MKDIR_P) "$(DESTDIR)$(examplesdir)"
396 @list='$(pkglib_PROGRAMS)'; test -n "$(pkglibdir)" || list=; \ 395 @list='$(examples_PROGRAMS)'; test -n "$(examplesdir)" || list=; \
397 for p in $$list; do echo "$$p $$p"; done | \ 396 for p in $$list; do echo "$$p $$p"; done | \
398 sed 's/$(EXEEXT)$$//' | \ 397 sed 's/$(EXEEXT)$$//' | \
399 while read p p1; do if test -f $$p || test -f $$p1; \ 398 while read p p1; do if test -f $$p || test -f $$p1; \
@@ -410,23 +409,23 @@ install-pkglibPROGRAMS: $(pkglib_PROGRAMS)
410 while read type dir files; do \ 409 while read type dir files; do \
411 if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ 410 if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
412 test -z "$$files" || { \ 411 test -z "$$files" || { \
413 echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(pkglibdir)$$dir'"; \ 412 echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(examplesdir)$$dir'"; \
414 $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(pkglibdir)$$dir" || exit $$?; \ 413 $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(examplesdir)$$dir" || exit $$?; \
415 } \ 414 } \
416 ; done 415 ; done
417 416
418uninstall-pkglibPROGRAMS: 417uninstall-examplesPROGRAMS:
419 @$(NORMAL_UNINSTALL) 418 @$(NORMAL_UNINSTALL)
420 @list='$(pkglib_PROGRAMS)'; test -n "$(pkglibdir)" || list=; \ 419 @list='$(examples_PROGRAMS)'; test -n "$(examplesdir)" || list=; \
421 files=`for p in $$list; do echo "$$p"; done | \ 420 files=`for p in $$list; do echo "$$p"; done | \
422 sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ 421 sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
423 -e 's/$$/$(EXEEXT)/' `; \ 422 -e 's/$$/$(EXEEXT)/' `; \
424 test -n "$$list" || exit 0; \ 423 test -n "$$list" || exit 0; \
425 echo " ( cd '$(DESTDIR)$(pkglibdir)' && rm -f" $$files ")"; \ 424 echo " ( cd '$(DESTDIR)$(examplesdir)' && rm -f" $$files ")"; \
426 cd "$(DESTDIR)$(pkglibdir)" && rm -f $$files 425 cd "$(DESTDIR)$(examplesdir)" && rm -f $$files
427 426
428clean-pkglibPROGRAMS: 427clean-examplesPROGRAMS:
429 @list='$(pkglib_PROGRAMS)'; test -n "$$list" || exit 0; \ 428 @list='$(examples_PROGRAMS)'; test -n "$$list" || exit 0; \
430 echo " rm -f" $$list; \ 429 echo " rm -f" $$list; \
431 rm -f $$list || exit $$?; \ 430 rm -f $$list || exit $$?; \
432 test -n "$(EXEEXT)" || exit 0; \ 431 test -n "$(EXEEXT)" || exit 0; \
@@ -605,7 +604,7 @@ check-am: all-am
605check: check-am 604check: check-am
606all-am: Makefile $(PROGRAMS) $(DATA) 605all-am: Makefile $(PROGRAMS) $(DATA)
607installdirs: 606installdirs:
608 for dir in "$(DESTDIR)$(pkglibdir)" "$(DESTDIR)$(filesdir)"; do \ 607 for dir in "$(DESTDIR)$(examplesdir)" "$(DESTDIR)$(filesdir)"; do \
609 test -z "$$dir" || $(MKDIR_P) "$$dir"; \ 608 test -z "$$dir" || $(MKDIR_P) "$$dir"; \
610 done 609 done
611install: install-am 610install: install-am
@@ -636,7 +635,7 @@ maintainer-clean-generic:
636 -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) 635 -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
637clean: clean-am 636clean: clean-am
638 637
639clean-am: clean-generic clean-libtool clean-pkglibPROGRAMS \ 638clean-am: clean-examplesPROGRAMS clean-generic clean-libtool \
640 mostlyclean-am 639 mostlyclean-am
641 640
642distclean: distclean-am 641distclean: distclean-am
@@ -657,13 +656,13 @@ info: info-am
657 656
658info-am: 657info-am:
659 658
660install-data-am: install-filesDATA 659install-data-am: install-examplesPROGRAMS install-filesDATA
661 660
662install-dvi: install-dvi-am 661install-dvi: install-dvi-am
663 662
664install-dvi-am: 663install-dvi-am:
665 664
666install-exec-am: install-pkglibPROGRAMS 665install-exec-am:
667 666
668install-html: install-html-am 667install-html: install-html-am
669 668
@@ -703,24 +702,25 @@ ps: ps-am
703 702
704ps-am: 703ps-am:
705 704
706uninstall-am: uninstall-filesDATA uninstall-pkglibPROGRAMS 705uninstall-am: uninstall-examplesPROGRAMS uninstall-filesDATA
707 706
708.MAKE: install-am install-strip 707.MAKE: install-am install-strip
709 708
710.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ 709.PHONY: CTAGS GTAGS all all-am check check-am clean \
711 clean-libtool clean-pkglibPROGRAMS ctags distclean \ 710 clean-examplesPROGRAMS clean-generic clean-libtool ctags \
712 distclean-compile distclean-generic distclean-libtool \ 711 distclean distclean-compile distclean-generic \
713 distclean-tags distdir dvi dvi-am html html-am info info-am \ 712 distclean-libtool distclean-tags distdir dvi dvi-am html \
714 install install-am install-data install-data-am install-dvi \ 713 html-am info info-am install install-am install-data \
715 install-dvi-am install-exec install-exec-am install-filesDATA \ 714 install-data-am install-dvi install-dvi-am \
716 install-html install-html-am install-info install-info-am \ 715 install-examplesPROGRAMS install-exec install-exec-am \
717 install-man install-pdf install-pdf-am install-pkglibPROGRAMS \ 716 install-filesDATA install-html install-html-am install-info \
717 install-info-am install-man install-pdf install-pdf-am \
718 install-ps install-ps-am install-strip installcheck \ 718 install-ps install-ps-am install-strip installcheck \
719 installcheck-am installdirs maintainer-clean \ 719 installcheck-am installdirs maintainer-clean \
720 maintainer-clean-generic mostlyclean mostlyclean-compile \ 720 maintainer-clean-generic mostlyclean mostlyclean-compile \
721 mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ 721 mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
722 tags uninstall uninstall-am uninstall-filesDATA \ 722 tags uninstall uninstall-am uninstall-examplesPROGRAMS \
723 uninstall-pkglibPROGRAMS 723 uninstall-filesDATA
724 724
725 725
726# Tell versions [3.59,3.63) of GNU make to not export all variables. 726# Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/libraries/eet/src/lib/Eet.h b/libraries/eet/src/lib/Eet.h
index 8fda1e0..2df7fbf 100644
--- a/libraries/eet/src/lib/Eet.h
+++ b/libraries/eet/src/lib/Eet.h
@@ -188,7 +188,7 @@ extern "C" {
188 */ 188 */
189 189
190#define EET_VERSION_MAJOR 1 190#define EET_VERSION_MAJOR 1
191#define EET_VERSION_MINOR 4 191#define EET_VERSION_MINOR 6
192/** 192/**
193 * @typedef Eet_Version 193 * @typedef Eet_Version
194 * 194 *
@@ -755,7 +755,7 @@ eet_delete(Eet_File *ef,
755 755
756/** 756/**
757 * Alias a specific section to another one. Destination may exist or not, 757 * Alias a specific section to another one. Destination may exist or not,
758 * no check are done. 758 * no checks are done.
759 * @param ef A valid eet file handle opened for writing. 759 * @param ef A valid eet file handle opened for writing.
760 * @param name Name of the new entry. eg: "/base/file_i_want". 760 * @param name Name of the new entry. eg: "/base/file_i_want".
761 * @param destination Actual source of the aliased entry eg: "/base/the_real_stuff_i_want". 761 * @param destination Actual source of the aliased entry eg: "/base/the_real_stuff_i_want".
@@ -775,6 +775,19 @@ eet_alias(Eet_File *ef,
775 int compress); 775 int compress);
776 776
777/** 777/**
778 * Retrieve the filename of an Eet_File
779 * @param ef A valid eet file handle opened for writing.
780 * @return The stringshared file string opened with eet_open(), or NULL on error
781 *
782 * @note This function will return NULL for files opened with eet_memopen_read()
783 *
784 * @since 1.6
785 * @ingroup Eet_File_Group
786 */
787EAPI const char *
788eet_file_get(Eet_File *ef);
789
790/**
778 * Retrieve the destination name of an alias 791 * Retrieve the destination name of an alias
779 * @param ef A valid eet file handle opened for writing 792 * @param ef A valid eet file handle opened for writing
780 * @param name Name of the entry. eg: "/base/file_i_want" 793 * @param name Name of the entry. eg: "/base/file_i_want"
diff --git a/libraries/eet/src/lib/Eet_private.h b/libraries/eet/src/lib/Eet_private.h
index 83f4c18..c04daf0 100644
--- a/libraries/eet/src/lib/Eet_private.h
+++ b/libraries/eet/src/lib/Eet_private.h
@@ -66,6 +66,126 @@ struct _Eet_Node
66 Eet_Node_Data data; 66 Eet_Node_Data data;
67}; 67};
68 68
69typedef struct _Eet_File_Header Eet_File_Header;
70typedef struct _Eet_File_Node Eet_File_Node;
71typedef struct _Eet_File_Directory Eet_File_Directory;
72
73struct _Eet_File
74{
75 const char *path;
76 Eina_File *readfp;
77 Eet_File_Header *header;
78 Eet_Dictionary *ed;
79 Eet_Key *key;
80 const unsigned char *data;
81 const void *x509_der;
82 const void *signature;
83 void *sha1;
84
85 Eet_File_Mode mode;
86
87 int magic;
88 int references;
89
90 unsigned long int data_size;
91 int x509_length;
92 unsigned int signature_length;
93 int sha1_length;
94
95 Eina_Lock file_lock;
96
97 unsigned char writes_pending : 1;
98 unsigned char delete_me_now : 1;
99};
100
101struct _Eet_File_Header
102{
103 int magic;
104 Eet_File_Directory *directory;
105};
106
107struct _Eet_File_Directory
108{
109 int size;
110 Eet_File_Node **nodes;
111};
112
113struct _Eet_File_Node
114{
115 char *name;
116 void *data;
117 Eet_File_Node *next; /* FIXME: make buckets linked lists */
118
119 unsigned long int offset;
120 unsigned long int dictionary_offset;
121 unsigned long int name_offset;
122
123 unsigned int name_size;
124 unsigned int size;
125 unsigned int data_size;
126
127 unsigned char free_name : 1;
128 unsigned char compression : 1;
129 unsigned char ciphered : 1;
130 unsigned char alias : 1;
131};
132
133#if 0
134/* Version 2 */
135/* NB: all int's are stored in network byte order on disk */
136/* file format: */
137int magic; /* magic number ie 0x1ee7ff00 */
138int num_directory_entries; /* number of directory entries to follow */
139int bytes_directory_entries; /* bytes of directory entries to follow */
140struct
141{
142 int offset; /* bytes offset into file for data chunk */
143 int flags; /* flags - for now 0 = uncompressed and clear, 1 = compressed and clear, 2 = uncompressed and ciphered, 3 = compressed and ciphered */
144 int size; /* size of the data chunk */
145 int data_size; /* size of the (uncompressed) data chunk */
146 int name_size; /* length in bytes of the name field */
147 char name[name_size]; /* name string (variable length) and \0 terminated */
148} directory[num_directory_entries];
149/* and now startes the data stream... */
150#endif /* if 0 */
151
152#if 0
153/* Version 3 */
154/* NB: all int's are stored in network byte order on disk */
155/* file format: */
156int magic; /* magic number ie 0x1ee70f42 */
157int num_directory_entries; /* number of directory entries to follow */
158int num_dictionary_entries; /* number of dictionary entries to follow */
159struct
160{
161 int data_offset; /* bytes offset into file for data chunk */
162 int size; /* size of the data chunk */
163 int data_size; /* size of the (uncompressed) data chunk */
164 int name_offset; /* bytes offset into file for name string */
165 int name_size; /* length in bytes of the name field */
166 int flags; /* bit flags - for now:
167 bit 0 => compresion on/off
168 bit 1 => ciphered on/off
169 bit 2 => alias
170 */
171} directory[num_directory_entries];
172struct
173{
174 int hash;
175 int offset;
176 int size;
177 int prev;
178 int next;
179} dictionary[num_dictionary_entries];
180/* now start the string stream. */
181/* and right after them the data stream. */
182int magic_sign; /* Optional, only if the eet file is signed. */
183int signature_length; /* Signature length. */
184int x509_length; /* Public certificate that signed the file. */
185char signature[signature_length]; /* The signature. */
186char x509[x509_length]; /* The public certificate. */
187#endif /* if 0 */
188
69/* 189/*
70 * variable and macros used for the eina_log module 190 * variable and macros used for the eina_log module
71 */ 191 */
@@ -178,6 +298,21 @@ Eet_Node *
178void 298void
179 eet_node_free(Eet_Node *node); 299 eet_node_free(Eet_Node *node);
180 300
301
302#define GENERIC_ALLOC_FREE_HEADER(TYPE, Type) \
303 TYPE *Type##_malloc(unsigned int); \
304 TYPE *Type##_calloc(unsigned int); \
305 void Type##_mp_free(TYPE *e);
306
307GENERIC_ALLOC_FREE_HEADER(Eet_File_Directory, eet_file_directory);
308GENERIC_ALLOC_FREE_HEADER(Eet_File_Node, eet_file_node);
309GENERIC_ALLOC_FREE_HEADER(Eet_File_Header, eet_file_header);
310GENERIC_ALLOC_FREE_HEADER(Eet_Dictionary, eet_dictionary);
311GENERIC_ALLOC_FREE_HEADER(Eet_File, eet_file);
312
313Eina_Bool eet_mempool_init(void);
314void eet_mempool_shutdown(void);
315
181#ifndef PATH_MAX 316#ifndef PATH_MAX
182# define PATH_MAX 4096 317# define PATH_MAX 4096
183#endif /* ifndef PATH_MAX */ 318#endif /* ifndef PATH_MAX */
diff --git a/libraries/eet/src/lib/Makefile.am b/libraries/eet/src/lib/Makefile.am
index 4633749..ae60168 100644
--- a/libraries/eet/src/lib/Makefile.am
+++ b/libraries/eet/src/lib/Makefile.am
@@ -22,6 +22,7 @@ includesdir = $(includedir)/eet-@VMAJ@
22lib_LTLIBRARIES = libeet.la 22lib_LTLIBRARIES = libeet.la
23 23
24base_sources = \ 24base_sources = \
25eet_alloc.c \
25eet_lib.c \ 26eet_lib.c \
26eet_data.c \ 27eet_data.c \
27eet_image.c \ 28eet_image.c \
diff --git a/libraries/eet/src/lib/Makefile.in b/libraries/eet/src/lib/Makefile.in
index f80bcd8..2a3fec0 100644
--- a/libraries/eet/src/lib/Makefile.in
+++ b/libraries/eet/src/lib/Makefile.in
@@ -80,13 +80,14 @@ am__base_list = \
80am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includesdir)" 80am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includesdir)"
81LTLIBRARIES = $(lib_LTLIBRARIES) 81LTLIBRARIES = $(lib_LTLIBRARIES)
82libeet_la_DEPENDENCIES = 82libeet_la_DEPENDENCIES =
83am__libeet_la_SOURCES_DIST = eet_lib.c eet_data.c eet_image.c \ 83am__libeet_la_SOURCES_DIST = eet_alloc.c eet_lib.c eet_data.c \
84 eet_cipher.c eet_dictionary.c eet_node.c eet_utils.c \ 84 eet_image.c eet_cipher.c eet_dictionary.c eet_node.c \
85 eet_connection.c 85 eet_utils.c eet_connection.c
86am__objects_1 = libeet_la-eet_lib.lo libeet_la-eet_data.lo \ 86am__objects_1 = libeet_la-eet_alloc.lo libeet_la-eet_lib.lo \
87 libeet_la-eet_image.lo libeet_la-eet_cipher.lo \ 87 libeet_la-eet_data.lo libeet_la-eet_image.lo \
88 libeet_la-eet_dictionary.lo libeet_la-eet_node.lo \ 88 libeet_la-eet_cipher.lo libeet_la-eet_dictionary.lo \
89 libeet_la-eet_utils.lo libeet_la-eet_connection.lo 89 libeet_la-eet_node.lo libeet_la-eet_utils.lo \
90 libeet_la-eet_connection.lo
90@EET_AMALGAMATION_FALSE@am_libeet_la_OBJECTS = $(am__objects_1) 91@EET_AMALGAMATION_FALSE@am_libeet_la_OBJECTS = $(am__objects_1)
91@EET_AMALGAMATION_TRUE@nodist_libeet_la_OBJECTS = \ 92@EET_AMALGAMATION_TRUE@nodist_libeet_la_OBJECTS = \
92@EET_AMALGAMATION_TRUE@ libeet_la-eet_amalgamation.lo 93@EET_AMALGAMATION_TRUE@ libeet_la-eet_amalgamation.lo
@@ -210,8 +211,6 @@ PACKAGE_URL = @PACKAGE_URL@
210PACKAGE_VERSION = @PACKAGE_VERSION@ 211PACKAGE_VERSION = @PACKAGE_VERSION@
211PATH_SEPARATOR = @PATH_SEPARATOR@ 212PATH_SEPARATOR = @PATH_SEPARATOR@
212PKG_CONFIG = @PKG_CONFIG@ 213PKG_CONFIG = @PKG_CONFIG@
213PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
214PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
215RANLIB = @RANLIB@ 214RANLIB = @RANLIB@
216SED = @SED@ 215SED = @SED@
217SET_MAKE = @SET_MAKE@ 216SET_MAKE = @SET_MAKE@
@@ -299,6 +298,7 @@ includes_HEADERS = Eet.h
299includesdir = $(includedir)/eet-@VMAJ@ 298includesdir = $(includedir)/eet-@VMAJ@
300lib_LTLIBRARIES = libeet.la 299lib_LTLIBRARIES = libeet.la
301base_sources = \ 300base_sources = \
301eet_alloc.c \
302eet_lib.c \ 302eet_lib.c \
303eet_data.c \ 303eet_data.c \
304eet_image.c \ 304eet_image.c \
@@ -388,6 +388,7 @@ mostlyclean-compile:
388distclean-compile: 388distclean-compile:
389 -rm -f *.tab.c 389 -rm -f *.tab.c
390 390
391@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libeet_la-eet_alloc.Plo@am__quote@
391@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libeet_la-eet_amalgamation.Plo@am__quote@ 392@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libeet_la-eet_amalgamation.Plo@am__quote@
392@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libeet_la-eet_cipher.Plo@am__quote@ 393@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libeet_la-eet_cipher.Plo@am__quote@
393@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libeet_la-eet_connection.Plo@am__quote@ 394@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libeet_la-eet_connection.Plo@am__quote@
@@ -422,6 +423,14 @@ distclean-compile:
422@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 423@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
423@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< 424@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
424 425
426libeet_la-eet_alloc.lo: eet_alloc.c
427@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) $(libeet_la_CFLAGS) $(CFLAGS) -MT libeet_la-eet_alloc.lo -MD -MP -MF $(DEPDIR)/libeet_la-eet_alloc.Tpo -c -o libeet_la-eet_alloc.lo `test -f 'eet_alloc.c' || echo '$(srcdir)/'`eet_alloc.c
428@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libeet_la-eet_alloc.Tpo $(DEPDIR)/libeet_la-eet_alloc.Plo
429@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
430@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='eet_alloc.c' object='libeet_la-eet_alloc.lo' libtool=yes @AMDEPBACKSLASH@
431@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
432@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libeet_la_CFLAGS) $(CFLAGS) -c -o libeet_la-eet_alloc.lo `test -f 'eet_alloc.c' || echo '$(srcdir)/'`eet_alloc.c
433
425libeet_la-eet_lib.lo: eet_lib.c 434libeet_la-eet_lib.lo: eet_lib.c
426@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) $(libeet_la_CFLAGS) $(CFLAGS) -MT libeet_la-eet_lib.lo -MD -MP -MF $(DEPDIR)/libeet_la-eet_lib.Tpo -c -o libeet_la-eet_lib.lo `test -f 'eet_lib.c' || echo '$(srcdir)/'`eet_lib.c 435@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) $(libeet_la_CFLAGS) $(CFLAGS) -MT libeet_la-eet_lib.lo -MD -MP -MF $(DEPDIR)/libeet_la-eet_lib.Tpo -c -o libeet_la-eet_lib.lo `test -f 'eet_lib.c' || echo '$(srcdir)/'`eet_lib.c
427@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libeet_la-eet_lib.Tpo $(DEPDIR)/libeet_la-eet_lib.Plo 436@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libeet_la-eet_lib.Tpo $(DEPDIR)/libeet_la-eet_lib.Plo
diff --git a/libraries/eet/src/lib/eet_alloc.c b/libraries/eet/src/lib/eet_alloc.c
new file mode 100644
index 0000000..85351ad
--- /dev/null
+++ b/libraries/eet/src/lib/eet_alloc.c
@@ -0,0 +1,93 @@
1#ifdef HAVE_CONFIG_H
2# include "config.h"
3#endif
4
5#include <Eina.h>
6#include "Eet.h"
7#include "Eet_private.h"
8
9typedef struct _Eet_Mempool Eet_Mempool;
10struct _Eet_Mempool
11{
12 const char *name;
13 Eina_Mempool *mp;
14 size_t size;
15};
16
17#define GENERIC_ALLOC_FREE(TYPE, Type) \
18 Eet_Mempool Type##_mp = { #TYPE, NULL, sizeof (TYPE) }; \
19 \
20 TYPE * \
21 Type##_malloc(unsigned int num) \
22 { \
23 return eina_mempool_malloc(Type##_mp.mp, num * sizeof (TYPE)); \
24 } \
25 TYPE * \
26 Type##_calloc(unsigned int num) \
27 { \
28 return eina_mempool_calloc(Type##_mp.mp, num * sizeof (TYPE)); \
29 } \
30 void \
31 Type##_mp_free(TYPE *e) \
32 { \
33 eina_mempool_free(Type##_mp.mp, e); \
34 }
35
36GENERIC_ALLOC_FREE(Eet_File_Directory, eet_file_directory);
37GENERIC_ALLOC_FREE(Eet_File_Node, eet_file_node);
38GENERIC_ALLOC_FREE(Eet_File_Header, eet_file_header);
39GENERIC_ALLOC_FREE(Eet_Dictionary, eet_dictionary);
40GENERIC_ALLOC_FREE(Eet_File, eet_file);
41
42static Eet_Mempool *mempool_array[] = {
43 &eet_file_directory_mp,
44 &eet_file_node_mp,
45 &eet_file_header_mp,
46 &eet_dictionary_mp,
47 &eet_file_mp,
48};
49
50Eina_Bool
51eet_mempool_init(void)
52{
53 const char *choice;
54 unsigned int i;
55
56 choice = getenv("EINA_MEMPOOL");
57 if ((!choice) || (!choice[0]))
58 choice = "chained_mempool";
59
60 for (i = 0; i < sizeof (mempool_array) / sizeof (mempool_array[0]); ++i)
61 {
62 retry:
63 mempool_array[i]->mp = eina_mempool_add(choice, mempool_array[i]->name, NULL, mempool_array[i]->size, 64);
64 if (!mempool_array[i]->mp)
65 {
66 if (!strcmp(choice, "pass_through"))
67 {
68 ERR("Falling back to pass through ! Previously tried '%s' mempool.", choice);
69 choice = "pass_through";
70 goto retry;
71 }
72 else
73 {
74 ERR("Impossible to allocate mempool '%s' !", choice);
75 return EINA_FALSE;
76 }
77 }
78 }
79 return EINA_TRUE;
80}
81
82void
83eet_mempool_shutdown(void)
84{
85 unsigned int i;
86
87 for (i = 0; i < sizeof (mempool_array) / sizeof (mempool_array[0]); ++i)
88 {
89 eina_mempool_del(mempool_array[i]->mp);
90 mempool_array[i]->mp = NULL;
91 }
92}
93
diff --git a/libraries/eet/src/lib/eet_cipher.c b/libraries/eet/src/lib/eet_cipher.c
index 89ee65d..37a0899 100644
--- a/libraries/eet/src/lib/eet_cipher.c
+++ b/libraries/eet/src/lib/eet_cipher.c
@@ -275,7 +275,7 @@ on_error:
275 cb = NULL; 275 cb = NULL;
276#endif /* ifdef HAVE_SIGNATURE */ 276#endif /* ifdef HAVE_SIGNATURE */
277 return NULL; 277 return NULL;
278} /* eet_identity_open */ 278}
279 279
280EAPI void 280EAPI void
281eet_identity_close(Eet_Key *key) 281eet_identity_close(Eet_Key *key)
@@ -295,7 +295,7 @@ eet_identity_close(Eet_Key *key)
295#else 295#else
296 key = NULL; 296 key = NULL;
297#endif /* ifdef HAVE_SIGNATURE */ 297#endif /* ifdef HAVE_SIGNATURE */
298} /* eet_identity_close */ 298}
299 299
300EAPI void 300EAPI void
301eet_identity_print(Eet_Key *key, 301eet_identity_print(Eet_Key *key,
@@ -419,7 +419,7 @@ on_error:
419 out = NULL; 419 out = NULL;
420 ERR("You need to compile signature support in EET."); 420 ERR("You need to compile signature support in EET.");
421#endif /* ifdef HAVE_SIGNATURE */ 421#endif /* ifdef HAVE_SIGNATURE */
422} /* eet_identity_print */ 422}
423 423
424void 424void
425eet_identity_ref(Eet_Key *key) 425eet_identity_ref(Eet_Key *key)
@@ -428,7 +428,7 @@ eet_identity_ref(Eet_Key *key)
428 return; 428 return;
429 429
430 key->references++; 430 key->references++;
431} /* eet_identity_ref */ 431}
432 432
433void 433void
434eet_identity_unref(Eet_Key *key) 434eet_identity_unref(Eet_Key *key)
@@ -438,7 +438,7 @@ eet_identity_unref(Eet_Key *key)
438 438
439 key->references--; 439 key->references--;
440 eet_identity_close(key); 440 eet_identity_close(key);
441} /* eet_identity_unref */ 441}
442 442
443void * 443void *
444eet_identity_compute_sha1(const void *data_base, 444eet_identity_compute_sha1(const void *data_base,
@@ -479,7 +479,7 @@ eet_identity_compute_sha1(const void *data_base,
479#endif /* ifdef HAVE_SIGNATURE */ 479#endif /* ifdef HAVE_SIGNATURE */
480 480
481 return result; 481 return result;
482} /* eet_identity_compute_sha1 */ 482}
483 483
484Eet_Error 484Eet_Error
485eet_identity_sign(FILE *fp, 485eet_identity_sign(FILE *fp,
@@ -650,7 +650,7 @@ on_error:
650 key = NULL; 650 key = NULL;
651 return EET_ERROR_NOT_IMPLEMENTED; 651 return EET_ERROR_NOT_IMPLEMENTED;
652#endif /* ifdef HAVE_SIGNATURE */ 652#endif /* ifdef HAVE_SIGNATURE */
653} /* eet_identity_sign */ 653}
654 654
655const void * 655const void *
656eet_identity_check(const void *data_base, 656eet_identity_check(const void *data_base,
@@ -830,7 +830,7 @@ eet_identity_check(const void *data_base,
830 x509_length = NULL; 830 x509_length = NULL;
831 return NULL; 831 return NULL;
832#endif /* ifdef HAVE_SIGNATURE */ 832#endif /* ifdef HAVE_SIGNATURE */
833} /* eet_identity_check */ 833}
834 834
835EAPI void 835EAPI void
836eet_identity_certificate_print(const unsigned char *certificate, 836eet_identity_certificate_print(const unsigned char *certificate,
@@ -896,7 +896,7 @@ on_error:
896 out = NULL; 896 out = NULL;
897 ERR("You need to compile signature support in EET."); 897 ERR("You need to compile signature support in EET.");
898#endif /* ifdef HAVE_SIGNATURE */ 898#endif /* ifdef HAVE_SIGNATURE */
899} /* eet_identity_certificate_print */ 899}
900 900
901Eet_Error 901Eet_Error
902eet_cipher(const void *data, 902eet_cipher(const void *data,
@@ -1073,7 +1073,7 @@ on_error:
1073 (void)result_length; 1073 (void)result_length;
1074 return EET_ERROR_NOT_IMPLEMENTED; 1074 return EET_ERROR_NOT_IMPLEMENTED;
1075#endif /* ifdef HAVE_CIPHER */ 1075#endif /* ifdef HAVE_CIPHER */
1076} /* eet_cipher */ 1076}
1077 1077
1078Eet_Error 1078Eet_Error
1079eet_decipher(const void *data, 1079eet_decipher(const void *data,
@@ -1224,7 +1224,7 @@ on_error:
1224 (void)result_length; 1224 (void)result_length;
1225 return EET_ERROR_NOT_IMPLEMENTED; 1225 return EET_ERROR_NOT_IMPLEMENTED;
1226#endif /* ifdef HAVE_CIPHER */ 1226#endif /* ifdef HAVE_CIPHER */
1227} /* eet_decipher */ 1227}
1228 1228
1229#ifdef HAVE_CIPHER 1229#ifdef HAVE_CIPHER
1230# ifdef HAVE_GNUTLS 1230# ifdef HAVE_GNUTLS
@@ -1265,7 +1265,7 @@ eet_hmac_sha1(const void *key,
1265 gcry_md_close(mdh); 1265 gcry_md_close(mdh);
1266 1266
1267 return 0; 1267 return 0;
1268} /* eet_hmac_sha1 */ 1268}
1269 1269
1270# endif /* ifdef HAVE_GNUTLS */ 1270# endif /* ifdef HAVE_GNUTLS */
1271 1271
@@ -1337,6 +1337,6 @@ eet_pbkdf2_sha1(const char *key,
1337 HMAC_cleanup(&hctx); 1337 HMAC_cleanup(&hctx);
1338# endif /* ifdef HAVE_GNUTLS */ 1338# endif /* ifdef HAVE_GNUTLS */
1339 return 0; 1339 return 0;
1340} /* eet_pbkdf2_sha1 */ 1340}
1341 1341
1342#endif /* ifdef HAVE_CIPHER */ 1342#endif /* ifdef HAVE_CIPHER */
diff --git a/libraries/eet/src/lib/eet_connection.c b/libraries/eet/src/lib/eet_connection.c
index 6171b7e..7b6b934 100644
--- a/libraries/eet/src/lib/eet_connection.c
+++ b/libraries/eet/src/lib/eet_connection.c
@@ -35,6 +35,8 @@ void *alloca(size_t);
35#include "Eet.h" 35#include "Eet.h"
36#include "Eet_private.h" 36#include "Eet_private.h"
37 37
38/* max message size: 1Mb - raised from original 64Kb */
39#define MAX_MSG_SIZE (1024 * 1024)
38#define MAGIC_EET_DATA_PACKET 0x4270ACE1 40#define MAGIC_EET_DATA_PACKET 0x4270ACE1
39 41
40struct _Eet_Connection 42struct _Eet_Connection
@@ -56,74 +58,62 @@ eet_connection_new(Eet_Read_Cb *eet_read_cb,
56 const void *user_data) 58 const void *user_data)
57{ 59{
58 Eet_Connection *conn; 60 Eet_Connection *conn;
59 61
60 if (!eet_read_cb || !eet_write_cb) 62 if ((!eet_read_cb) || (!eet_write_cb)) return NULL;
61 return NULL; 63
62
63 conn = calloc(1, sizeof (Eet_Connection)); 64 conn = calloc(1, sizeof (Eet_Connection));
64 if (!conn) 65 if (!conn) return NULL;
65 return NULL;
66
67 conn->eet_read_cb = eet_read_cb; 66 conn->eet_read_cb = eet_read_cb;
68 conn->eet_write_cb = eet_write_cb; 67 conn->eet_write_cb = eet_write_cb;
69 conn->user_data = (void *)user_data; 68 conn->user_data = (void *)user_data;
70
71 return conn; 69 return conn;
72} /* eet_connection_new */ 70}
73 71
74EAPI int 72EAPI int
75eet_connection_received(Eet_Connection *conn, 73eet_connection_received(Eet_Connection *conn,
76 const void *data, 74 const void *data,
77 size_t size) 75 size_t size)
78{ 76{
79 if ((!conn) || (!data) || (!size)) 77 if ((!conn) || (!data) || (!size)) return size;
80 return size; 78 do
81 79 {
82 do {
83 size_t copy_size; 80 size_t copy_size;
84 81
85 if (conn->size == 0) 82 if (conn->size == 0)
86 { 83 {
87 const int *msg; 84 const int *msg;
88 size_t packet_size; 85 size_t packet_size;
89 86
90 if (size < sizeof (int) * 2) 87 if (size < (sizeof(int) * 2)) break;
91 break;
92 88
93 msg = data; 89 msg = data;
94 /* Check the magic */ 90 /* Check the magic */
95 if (ntohl(msg[0]) != MAGIC_EET_DATA_PACKET) 91 if (ntohl(msg[0]) != MAGIC_EET_DATA_PACKET) break;
96 break;
97 92
98 packet_size = ntohl(msg[1]); 93 packet_size = ntohl(msg[1]);
99 /* Message should always be under 64K */ 94 /* Message should always be under MAX_MSG_SIZE */
100 if (packet_size > 64 * 1024) 95 if (packet_size > MAX_MSG_SIZE) break;
101 break;
102 96
103 data = (void *)(msg + 2); 97 data = (void *)(msg + 2);
104 size -= sizeof (int) * 2; 98 size -= sizeof(int) * 2;
105 if ((size_t)packet_size <= size) 99 if ((size_t)packet_size <= size)
106 { 100 {
107 /* Not a partial receive, go the quick way. */ 101 /* Not a partial receive, go the quick way. */
108 if (!conn->eet_read_cb(data, packet_size, conn->user_data)) 102 if (!conn->eet_read_cb(data, packet_size, conn->user_data))
109 break; 103 break;
110 104
111 data = (void *)((char *)data + packet_size); 105 data = (void *)((char *)data + packet_size);
112 size -= packet_size; 106 size -= packet_size;
113 107 conn->received = 0;
114 conn->received = 0; 108 continue;
115 continue;
116 } 109 }
117
118 conn->size = packet_size; 110 conn->size = packet_size;
119 if (conn->allocated < conn->size) 111 if (conn->allocated < conn->size)
120 { 112 {
121 void *tmp; 113 void *tmp;
122 114
123 tmp = realloc(conn->buffer, conn->size); 115 tmp = realloc(conn->buffer, conn->size);
124 if (!tmp) 116 if (!tmp) break;
125 break;
126
127 conn->buffer = tmp; 117 conn->buffer = tmp;
128 conn->allocated = conn->size; 118 conn->allocated = conn->size;
129 } 119 }
@@ -132,33 +122,33 @@ eet_connection_received(Eet_Connection *conn,
132 /* Partial receive */ 122 /* Partial receive */
133 copy_size = 123 copy_size =
134 (conn->size - conn->received >= 124 (conn->size - conn->received >=
135 size) ? size : conn->size - conn->received; 125 size) ? size : conn->size - conn->received;
136 memcpy((char *)conn->buffer + conn->received, data, copy_size); 126 memcpy((char *)conn->buffer + conn->received, data, copy_size);
137 127
138 conn->received += copy_size; 128 conn->received += copy_size;
139 data = (void *)((char *)data + copy_size); 129 data = (void *)((char *)data + copy_size);
140 size -= copy_size; 130 size -= copy_size;
141 131
142 if (conn->received == conn->size) 132 if (conn->received == conn->size)
143 { 133 {
144 size_t data_size; 134 size_t data_size;
145 135
146 data_size = conn->size; 136 data_size = conn->size;
147 conn->size = 0; 137 conn->size = 0;
148 conn->received = 0; 138 conn->received = 0;
149
150 /* Completed a packet. */ 139 /* Completed a packet. */
151 if (!conn->eet_read_cb(conn->buffer, data_size, conn->user_data)) 140 if (!conn->eet_read_cb(conn->buffer, data_size, conn->user_data))
152 { 141 {
153 /* Something goes wrong. Stop now. */ 142 /* Something goes wrong. Stop now. */
154 size += data_size; 143 size += data_size;
155 break; 144 break;
156 } 145 }
157 } 146 }
158 } while (size > 0); 147 }
159 148 while (size > 0);
149
160 return size; 150 return size;
161} /* eet_connection_received */ 151}
162 152
163static Eina_Bool 153static Eina_Bool
164_eet_connection_raw_send(Eet_Connection *conn, 154_eet_connection_raw_send(Eet_Connection *conn,
@@ -167,21 +157,17 @@ _eet_connection_raw_send(Eet_Connection *conn,
167{ 157{
168 int *message; 158 int *message;
169 159
170 /* Message should never be above 64K */ 160 /* Message should always be under MAX_MSG_SIZE */
171 if (data_size > 64 * 1024) 161 if (data_size > MAX_MSG_SIZE) return EINA_FALSE;
172 return EINA_FALSE; 162 message = alloca(data_size + (sizeof(int) * 2));
173
174 message = alloca(data_size + sizeof (int) * 2);
175 message[0] = htonl(MAGIC_EET_DATA_PACKET); 163 message[0] = htonl(MAGIC_EET_DATA_PACKET);
176 message[1] = htonl(data_size); 164 message[1] = htonl(data_size);
177
178 memcpy(message + 2, data, data_size); 165 memcpy(message + 2, data, data_size);
179
180 conn->eet_write_cb(message, 166 conn->eet_write_cb(message,
181 data_size + sizeof (int) * 2, 167 data_size + (sizeof(int) * 2),
182 conn->user_data); 168 conn->user_data);
183 return EINA_TRUE; 169 return EINA_TRUE;
184} /* _eet_connection_raw_send */ 170}
185 171
186EAPI Eina_Bool 172EAPI Eina_Bool
187eet_connection_send(Eet_Connection *conn, 173eet_connection_send(Eet_Connection *conn,
@@ -197,15 +183,11 @@ eet_connection_send(Eet_Connection *conn,
197 data_in, 183 data_in,
198 cipher_key, 184 cipher_key,
199 &data_size); 185 &data_size);
200 if (!flat_data) 186 if (!flat_data) return EINA_FALSE;
201 return EINA_FALSE; 187 if (_eet_connection_raw_send(conn, flat_data, data_size)) ret = EINA_TRUE;
202
203 if (_eet_connection_raw_send(conn, flat_data, data_size))
204 ret = EINA_TRUE;
205
206 free(flat_data); 188 free(flat_data);
207 return ret; 189 return ret;
208} /* eet_connection_send */ 190}
209 191
210EAPI Eina_Bool 192EAPI Eina_Bool
211eet_connection_node_send(Eet_Connection *conn, 193eet_connection_node_send(Eet_Connection *conn,
@@ -217,15 +199,12 @@ eet_connection_node_send(Eet_Connection *conn,
217 Eina_Bool ret = EINA_FALSE; 199 Eina_Bool ret = EINA_FALSE;
218 200
219 data = eet_data_node_encode_cipher(node, cipher_key, &data_size); 201 data = eet_data_node_encode_cipher(node, cipher_key, &data_size);
220 if (!data) 202 if (!data) return EINA_FALSE;
221 return EINA_FALSE;
222
223 if (_eet_connection_raw_send(conn, data, data_size)) 203 if (_eet_connection_raw_send(conn, data, data_size))
224 ret = EINA_TRUE; 204 ret = EINA_TRUE;
225
226 free(data); 205 free(data);
227 return ret; 206 return ret;
228} /* eet_connection_node_send */ 207}
229 208
230EAPI void * 209EAPI void *
231eet_connection_close(Eet_Connection *conn, 210eet_connection_close(Eet_Connection *conn,
@@ -233,17 +212,11 @@ eet_connection_close(Eet_Connection *conn,
233{ 212{
234 void *user_data; 213 void *user_data;
235 214
236 if (!conn) 215 if (!conn) return NULL;
237 return NULL; 216 if (on_going) *on_going = conn->received == 0 ? EINA_FALSE : EINA_TRUE;
238
239 if (on_going)
240 *on_going = conn->received == 0 ? EINA_FALSE : EINA_TRUE;
241
242 user_data = conn->user_data; 217 user_data = conn->user_data;
243
244 free(conn->buffer); 218 free(conn->buffer);
245 free(conn); 219 free(conn);
246
247 return user_data; 220 return user_data;
248} /* eet_connection_close */ 221}
249 222
diff --git a/libraries/eet/src/lib/eet_data.c b/libraries/eet/src/lib/eet_data.c
index 23b0b97..56b9ee0 100644
--- a/libraries/eet/src/lib/eet_data.c
+++ b/libraries/eet/src/lib/eet_data.c
@@ -651,7 +651,7 @@ eet_data_get_char(const Eet_Dictionary *ed __UNUSED__,
651 *d = *s; 651 *d = *s;
652 CONV8(*d); 652 CONV8(*d);
653 return sizeof(char); 653 return sizeof(char);
654} /* eet_data_get_char */ 654}
655 655
656static void * 656static void *
657eet_data_put_char(Eet_Dictionary *ed __UNUSED__, 657eet_data_put_char(Eet_Dictionary *ed __UNUSED__,
@@ -669,7 +669,7 @@ eet_data_put_char(Eet_Dictionary *ed __UNUSED__,
669 CONV8(*d); 669 CONV8(*d);
670 *size_ret = sizeof(char); 670 *size_ret = sizeof(char);
671 return d; 671 return d;
672} /* eet_data_put_char */ 672}
673 673
674/* SHORT TYPE */ 674/* SHORT TYPE */
675static int 675static int
@@ -687,7 +687,7 @@ eet_data_get_short(const Eet_Dictionary *ed __UNUSED__,
687 d = (short *)dst; 687 d = (short *)dst;
688 CONV16(*d); 688 CONV16(*d);
689 return sizeof(short); 689 return sizeof(short);
690} /* eet_data_get_short */ 690}
691 691
692static void * 692static void *
693eet_data_put_short(Eet_Dictionary *ed __UNUSED__, 693eet_data_put_short(Eet_Dictionary *ed __UNUSED__,
@@ -705,7 +705,7 @@ eet_data_put_short(Eet_Dictionary *ed __UNUSED__,
705 CONV16(*d); 705 CONV16(*d);
706 *size_ret = sizeof(short); 706 *size_ret = sizeof(short);
707 return d; 707 return d;
708} /* eet_data_put_short */ 708}
709 709
710/* INT TYPE */ 710/* INT TYPE */
711static inline int 711static inline int
@@ -723,7 +723,7 @@ eet_data_get_int(const Eet_Dictionary *ed __UNUSED__,
723 d = (int *)dst; 723 d = (int *)dst;
724 CONV32(*d); 724 CONV32(*d);
725 return sizeof(int); 725 return sizeof(int);
726} /* eet_data_get_int */ 726}
727 727
728static void * 728static void *
729eet_data_put_int(Eet_Dictionary *ed __UNUSED__, 729eet_data_put_int(Eet_Dictionary *ed __UNUSED__,
@@ -741,7 +741,7 @@ eet_data_put_int(Eet_Dictionary *ed __UNUSED__,
741 CONV32(*d); 741 CONV32(*d);
742 *size_ret = sizeof(int); 742 *size_ret = sizeof(int);
743 return d; 743 return d;
744} /* eet_data_put_int */ 744}
745 745
746/* LONG LONG TYPE */ 746/* LONG LONG TYPE */
747static int 747static int
@@ -759,7 +759,7 @@ eet_data_get_long_long(const Eet_Dictionary *ed __UNUSED__,
759 d = (unsigned long long *)dst; 759 d = (unsigned long long *)dst;
760 CONV64(*d); 760 CONV64(*d);
761 return sizeof(unsigned long long); 761 return sizeof(unsigned long long);
762} /* eet_data_get_long_long */ 762}
763 763
764static void * 764static void *
765eet_data_put_long_long(Eet_Dictionary *ed __UNUSED__, 765eet_data_put_long_long(Eet_Dictionary *ed __UNUSED__,
@@ -777,7 +777,7 @@ eet_data_put_long_long(Eet_Dictionary *ed __UNUSED__,
777 CONV64(*d); 777 CONV64(*d);
778 *size_ret = sizeof(unsigned long long); 778 *size_ret = sizeof(unsigned long long);
779 return d; 779 return d;
780} /* eet_data_put_long_long */ 780}
781 781
782/* STRING TYPE */ 782/* STRING TYPE */
783static inline int 783static inline int
@@ -796,7 +796,7 @@ eet_data_get_string_hash(const Eet_Dictionary *ed,
796 } 796 }
797 797
798 return -1; 798 return -1;
799} /* eet_data_get_string_hash */ 799}
800 800
801static inline int 801static inline int
802eet_data_get_string(const Eet_Dictionary *ed, 802eet_data_get_string(const Eet_Dictionary *ed,
@@ -833,7 +833,7 @@ eet_data_get_string(const Eet_Dictionary *ed,
833 833
834 *d = s; 834 *d = s;
835 return strlen(s) + 1; 835 return strlen(s) + 1;
836} /* eet_data_get_string */ 836}
837 837
838static void * 838static void *
839eet_data_put_string(Eet_Dictionary *ed, 839eet_data_put_string(Eet_Dictionary *ed,
@@ -871,7 +871,7 @@ eet_data_put_string(Eet_Dictionary *ed,
871 memcpy(d, s, len + 1); 871 memcpy(d, s, len + 1);
872 *size_ret = len + 1; 872 *size_ret = len + 1;
873 return d; 873 return d;
874} /* eet_data_put_string */ 874}
875 875
876/* ALWAYS INLINED STRING TYPE */ 876/* ALWAYS INLINED STRING TYPE */
877static int 877static int
@@ -881,7 +881,7 @@ eet_data_get_istring(const Eet_Dictionary *ed __UNUSED__,
881 void *dst) 881 void *dst)
882{ 882{
883 return eet_data_get_string(NULL, src, src_end, dst); 883 return eet_data_get_string(NULL, src, src_end, dst);
884} /* eet_data_get_istring */ 884}
885 885
886static void * 886static void *
887eet_data_put_istring(Eet_Dictionary *ed __UNUSED__, 887eet_data_put_istring(Eet_Dictionary *ed __UNUSED__,
@@ -889,7 +889,7 @@ eet_data_put_istring(Eet_Dictionary *ed __UNUSED__,
889 int *size_ret) 889 int *size_ret)
890{ 890{
891 return eet_data_put_string(NULL, src, size_ret); 891 return eet_data_put_string(NULL, src, size_ret);
892} /* eet_data_put_istring */ 892}
893 893
894/* ALWAYS NULL TYPE */ 894/* ALWAYS NULL TYPE */
895static int 895static int
@@ -904,7 +904,7 @@ eet_data_get_null(const Eet_Dictionary *ed __UNUSED__,
904 904
905 *d = NULL; 905 *d = NULL;
906 return 1; 906 return 1;
907} /* eet_data_get_null */ 907}
908 908
909static void * 909static void *
910eet_data_put_null(Eet_Dictionary *ed __UNUSED__, 910eet_data_put_null(Eet_Dictionary *ed __UNUSED__,
@@ -913,7 +913,7 @@ eet_data_put_null(Eet_Dictionary *ed __UNUSED__,
913{ 913{
914 *size_ret = 0; 914 *size_ret = 0;
915 return NULL; 915 return NULL;
916} /* eet_data_put_null */ 916}
917 917
918/** 918/**
919 * Fast lookups of simple doubles/floats. 919 * Fast lookups of simple doubles/floats.
@@ -941,7 +941,7 @@ _eet_data_float_cache_get(const char *s,
941 } 941 }
942 942
943 return 0; 943 return 0;
944} /* _eet_data_float_cache_get */ 944}
945 945
946static inline int 946static inline int
947_eet_data_double_cache_get(const char *s, 947_eet_data_double_cache_get(const char *s,
@@ -963,7 +963,7 @@ _eet_data_double_cache_get(const char *s,
963 } 963 }
964 964
965 return 0; 965 return 0;
966} /* _eet_data_double_cache_get */ 966}
967 967
968/* FLOAT TYPE */ 968/* FLOAT TYPE */
969static int 969static int
@@ -1006,7 +1006,7 @@ eet_data_get_float(const Eet_Dictionary *ed,
1006 return -1; 1006 return -1;
1007 1007
1008 return 1; 1008 return 1;
1009} /* eet_data_get_float */ 1009}
1010 1010
1011static void * 1011static void *
1012eet_data_put_float(Eet_Dictionary *ed, 1012eet_data_put_float(Eet_Dictionary *ed,
@@ -1038,7 +1038,7 @@ eet_data_put_float(Eet_Dictionary *ed,
1038 return NULL; 1038 return NULL;
1039 1039
1040 return eet_data_put_int(ed, &idx, size_ret); 1040 return eet_data_put_int(ed, &idx, size_ret);
1041} /* eet_data_put_float */ 1041}
1042 1042
1043/* DOUBLE TYPE */ 1043/* DOUBLE TYPE */
1044static int 1044static int
@@ -1082,7 +1082,7 @@ eet_data_get_double(const Eet_Dictionary *ed,
1082 return -1; 1082 return -1;
1083 1083
1084 return 1; 1084 return 1;
1085} /* eet_data_get_double */ 1085}
1086 1086
1087static void * 1087static void *
1088eet_data_put_double(Eet_Dictionary *ed, 1088eet_data_put_double(Eet_Dictionary *ed,
@@ -1115,7 +1115,7 @@ eet_data_put_double(Eet_Dictionary *ed,
1115 return NULL; 1115 return NULL;
1116 1116
1117 return eet_data_put_int(ed, &idx, size_ret); 1117 return eet_data_put_int(ed, &idx, size_ret);
1118} /* eet_data_put_double */ 1118}
1119 1119
1120static int 1120static int
1121eet_data_get_f32p32(const Eet_Dictionary *ed, 1121eet_data_get_f32p32(const Eet_Dictionary *ed,
@@ -1151,7 +1151,7 @@ eet_data_get_f32p32(const Eet_Dictionary *ed,
1151 return -1; 1151 return -1;
1152 1152
1153 return 1; 1153 return 1;
1154} /* eet_data_get_f32p32 */ 1154}
1155 1155
1156static void * 1156static void *
1157eet_data_put_f32p32(Eet_Dictionary *ed, 1157eet_data_put_f32p32(Eet_Dictionary *ed,
@@ -1184,7 +1184,7 @@ eet_data_put_f32p32(Eet_Dictionary *ed,
1184 return NULL; 1184 return NULL;
1185 1185
1186 return eet_data_put_int(ed, &idx, size_ret); 1186 return eet_data_put_int(ed, &idx, size_ret);
1187} /* eet_data_put_f32p32 */ 1187}
1188 1188
1189static int 1189static int
1190eet_data_get_f16p16(const Eet_Dictionary *ed, 1190eet_data_get_f16p16(const Eet_Dictionary *ed,
@@ -1202,7 +1202,7 @@ eet_data_get_f16p16(const Eet_Dictionary *ed,
1202 1202
1203 *fp = eina_f32p32_to_f16p16(tmp); 1203 *fp = eina_f32p32_to_f16p16(tmp);
1204 return 1; 1204 return 1;
1205} /* eet_data_get_f16p16 */ 1205}
1206 1206
1207static void * 1207static void *
1208eet_data_put_f16p16(Eet_Dictionary *ed, 1208eet_data_put_f16p16(Eet_Dictionary *ed,
@@ -1213,7 +1213,7 @@ eet_data_put_f16p16(Eet_Dictionary *ed,
1213 1213
1214 tmp = eina_f16p16_to_f32p32((Eina_F16p16)(*(Eina_F16p16 *)src)); 1214 tmp = eina_f16p16_to_f32p32((Eina_F16p16)(*(Eina_F16p16 *)src));
1215 return eet_data_put_f32p32(ed, &tmp, size_ret); 1215 return eet_data_put_f32p32(ed, &tmp, size_ret);
1216} /* eet_data_put_f16p16 */ 1216}
1217 1217
1218static int 1218static int
1219eet_data_get_f8p24(const Eet_Dictionary *ed, 1219eet_data_get_f8p24(const Eet_Dictionary *ed,
@@ -1231,7 +1231,7 @@ eet_data_get_f8p24(const Eet_Dictionary *ed,
1231 1231
1232 *fp = eina_f32p32_to_f8p24(tmp); 1232 *fp = eina_f32p32_to_f8p24(tmp);
1233 return 1; 1233 return 1;
1234} /* eet_data_get_f8p24 */ 1234}
1235 1235
1236static void * 1236static void *
1237eet_data_put_f8p24(Eet_Dictionary *ed, 1237eet_data_put_f8p24(Eet_Dictionary *ed,
@@ -1242,7 +1242,7 @@ eet_data_put_f8p24(Eet_Dictionary *ed,
1242 1242
1243 tmp = eina_f8p24_to_f32p32((Eina_F8p24)(*(Eina_F8p24 *)src)); 1243 tmp = eina_f8p24_to_f32p32((Eina_F8p24)(*(Eina_F8p24 *)src));
1244 return eet_data_put_f32p32(ed, &tmp, size_ret); 1244 return eet_data_put_f32p32(ed, &tmp, size_ret);
1245} /* eet_data_put_f8p24 */ 1245}
1246 1246
1247static inline int 1247static inline int
1248eet_data_get_type(const Eet_Dictionary *ed, 1248eet_data_get_type(const Eet_Dictionary *ed,
@@ -1255,7 +1255,7 @@ eet_data_get_type(const Eet_Dictionary *ed,
1255 1255
1256 ret = eet_basic_codec[type - 1].get(ed, src, src_end, dest); 1256 ret = eet_basic_codec[type - 1].get(ed, src, src_end, dest);
1257 return ret; 1257 return ret;
1258} /* eet_data_get_type */ 1258}
1259 1259
1260static inline void * 1260static inline void *
1261eet_data_put_type(Eet_Dictionary *ed, 1261eet_data_put_type(Eet_Dictionary *ed,
@@ -1267,7 +1267,7 @@ eet_data_put_type(Eet_Dictionary *ed,
1267 1267
1268 ret = eet_basic_codec[type - 1].put(ed, src, size_ret); 1268 ret = eet_basic_codec[type - 1].put(ed, src, size_ret);
1269 return ret; 1269 return ret;
1270} /* eet_data_put_type */ 1270}
1271 1271
1272static inline Eina_Bool 1272static inline Eina_Bool
1273eet_data_type_match(int type1, 1273eet_data_type_match(int type1,
@@ -1301,10 +1301,10 @@ eet_data_type_match(int type1,
1301 1301
1302 default: 1302 default:
1303 break; 1303 break;
1304 } /* switch */ 1304 }
1305 1305
1306 return EINA_FALSE; 1306 return EINA_FALSE;
1307} /* eet_data_type_match */ 1307}
1308 1308
1309/* chunk format... 1309/* chunk format...
1310 * 1310 *
@@ -1359,7 +1359,7 @@ case EET_I_ ## Type: chnk->type = EET_T_ ## Type; break;
1359 1359
1360 default: 1360 default:
1361 return; 1361 return;
1362 } /* switch */ 1362 }
1363 } 1363 }
1364 else if (chnk->type > EET_T_LAST) 1364 else if (chnk->type > EET_T_LAST)
1365 { 1365 {
@@ -1409,7 +1409,7 @@ case EET_I_ ## Type: chnk->type = EET_T_ ## Type; break;
1409 } 1409 }
1410 1410
1411 return; 1411 return;
1412} /* eet_data_chunk_get */ 1412}
1413 1413
1414static inline Eet_Data_Chunk * 1414static inline Eet_Data_Chunk *
1415eet_data_chunk_new(void *data, 1415eet_data_chunk_new(void *data,
@@ -1441,7 +1441,7 @@ eet_data_chunk_new(void *data,
1441 chnk->type = type; 1441 chnk->type = type;
1442 chnk->group_type = group_type; 1442 chnk->group_type = group_type;
1443 return chnk; 1443 return chnk;
1444} /* eet_data_chunk_new */ 1444}
1445 1445
1446static inline void 1446static inline void
1447eet_data_chunk_free(Eet_Data_Chunk *chnk) 1447eet_data_chunk_free(Eet_Data_Chunk *chnk)
@@ -1450,7 +1450,7 @@ eet_data_chunk_free(Eet_Data_Chunk *chnk)
1450 free(chnk->name); 1450 free(chnk->name);
1451 1451
1452 free(chnk); 1452 free(chnk);
1453} /* eet_data_chunk_free */ 1453}
1454 1454
1455static inline Eet_Data_Stream * 1455static inline Eet_Data_Stream *
1456eet_data_stream_new(void) 1456eet_data_stream_new(void)
@@ -1462,7 +1462,7 @@ eet_data_stream_new(void)
1462 return NULL; 1462 return NULL;
1463 1463
1464 return ds; 1464 return ds;
1465} /* eet_data_stream_new */ 1465}
1466 1466
1467static inline void 1467static inline void
1468eet_data_stream_free(Eet_Data_Stream *ds) 1468eet_data_stream_free(Eet_Data_Stream *ds)
@@ -1471,13 +1471,13 @@ eet_data_stream_free(Eet_Data_Stream *ds)
1471 free(ds->data); 1471 free(ds->data);
1472 1472
1473 free(ds); 1473 free(ds);
1474} /* eet_data_stream_free */ 1474}
1475 1475
1476static inline void 1476static inline void
1477eet_data_stream_flush(Eet_Data_Stream *ds) 1477eet_data_stream_flush(Eet_Data_Stream *ds)
1478{ 1478{
1479 free(ds); 1479 free(ds);
1480} /* eet_data_stream_flush */ 1480}
1481 1481
1482static inline void 1482static inline void
1483eet_data_stream_write(Eet_Data_Stream *ds, 1483eet_data_stream_write(Eet_Data_Stream *ds,
@@ -1502,7 +1502,7 @@ eet_data_stream_write(Eet_Data_Stream *ds,
1502 p = ds->data; 1502 p = ds->data;
1503 memcpy(p + ds->pos, data, size); 1503 memcpy(p + ds->pos, data, size);
1504 ds->pos += size; 1504 ds->pos += size;
1505} /* eet_data_stream_write */ 1505}
1506 1506
1507static void 1507static void
1508eet_data_chunk_put(Eet_Dictionary *ed, 1508eet_data_chunk_put(Eet_Dictionary *ed,
@@ -1541,7 +1541,7 @@ case EET_T_ ## Type: type += EET_I_ ## Type; break;
1541 1541
1542 default: 1542 default:
1543 return; 1543 return;
1544 } /* switch */ 1544 }
1545 1545
1546 buf[3] = type; 1546 buf[3] = type;
1547 } 1547 }
@@ -1578,7 +1578,7 @@ case EET_T_ ## Type: type += EET_I_ ## Type; break;
1578 free(string); 1578 free(string);
1579on_error: 1579on_error:
1580 free(size); 1580 free(size);
1581} /* eet_data_chunk_put */ 1581}
1582 1582
1583/*---*/ 1583/*---*/
1584 1584
@@ -1611,7 +1611,7 @@ _eet_descriptor_hash_new(Eet_Data_Descriptor *edd)
1611 edd->elements.hash.buckets[hash].next = bucket; 1611 edd->elements.hash.buckets[hash].next = bucket;
1612 } 1612 }
1613 } 1613 }
1614} /* _eet_descriptor_hash_new */ 1614}
1615 1615
1616static void 1616static void
1617_eet_descriptor_hash_free(Eet_Data_Descriptor *edd) 1617_eet_descriptor_hash_free(Eet_Data_Descriptor *edd)
@@ -1632,7 +1632,7 @@ _eet_descriptor_hash_free(Eet_Data_Descriptor *edd)
1632 } 1632 }
1633 if (edd->elements.hash.buckets) 1633 if (edd->elements.hash.buckets)
1634 free(edd->elements.hash.buckets); 1634 free(edd->elements.hash.buckets);
1635} /* _eet_descriptor_hash_free */ 1635}
1636 1636
1637static Eet_Data_Element * 1637static Eet_Data_Element *
1638_eet_descriptor_hash_find(Eet_Data_Descriptor *edd, 1638_eet_descriptor_hash_find(Eet_Data_Descriptor *edd,
@@ -1677,31 +1677,31 @@ _eet_descriptor_hash_find(Eet_Data_Descriptor *edd,
1677 bucket = bucket->next; 1677 bucket = bucket->next;
1678 } 1678 }
1679 return NULL; 1679 return NULL;
1680} /* _eet_descriptor_hash_find */ 1680}
1681 1681
1682static void * 1682static void *
1683_eet_mem_alloc(size_t size) 1683_eet_mem_alloc(size_t size)
1684{ 1684{
1685 return calloc(1, size); 1685 return calloc(1, size);
1686} /* _eet_mem_alloc */ 1686}
1687 1687
1688static void 1688static void
1689_eet_mem_free(void *mem) 1689_eet_mem_free(void *mem)
1690{ 1690{
1691 free(mem); 1691 free(mem);
1692} /* _eet_mem_free */ 1692}
1693 1693
1694static char * 1694static char *
1695_eet_str_alloc(const char *str) 1695_eet_str_alloc(const char *str)
1696{ 1696{
1697 return strdup(str); 1697 return strdup(str);
1698} /* _eet_str_alloc */ 1698}
1699 1699
1700static void 1700static void
1701_eet_str_free(const char *str) 1701_eet_str_free(const char *str)
1702{ 1702{
1703 free((char *)str); 1703 free((char *)str);
1704} /* _eet_str_free */ 1704}
1705 1705
1706static Eina_Hash * 1706static Eina_Hash *
1707_eet_eina_hash_add_alloc(Eina_Hash *hash, 1707_eet_eina_hash_add_alloc(Eina_Hash *hash,
@@ -1716,7 +1716,7 @@ _eet_eina_hash_add_alloc(Eina_Hash *hash,
1716 1716
1717 eina_hash_add(hash, key, data); 1717 eina_hash_add(hash, key, data);
1718 return hash; 1718 return hash;
1719} /* _eet_eina_hash_add_alloc */ 1719}
1720 1720
1721static Eina_Hash * 1721static Eina_Hash *
1722_eet_eina_hash_direct_add_alloc(Eina_Hash *hash, 1722_eet_eina_hash_direct_add_alloc(Eina_Hash *hash,
@@ -1731,18 +1731,18 @@ _eet_eina_hash_direct_add_alloc(Eina_Hash *hash,
1731 1731
1732 eina_hash_direct_add(hash, key, data); 1732 eina_hash_direct_add(hash, key, data);
1733 return hash; 1733 return hash;
1734} /* _eet_eina_hash_direct_add_alloc */ 1734}
1735 1735
1736static char * 1736static char *
1737_eet_str_direct_alloc(const char *str) 1737_eet_str_direct_alloc(const char *str)
1738{ 1738{
1739 return (char *)str; 1739 return (char *)str;
1740} /* _eet_str_direct_alloc */ 1740}
1741 1741
1742static void 1742static void
1743_eet_str_direct_free(const char *str __UNUSED__) 1743_eet_str_direct_free(const char *str __UNUSED__)
1744{ 1744{
1745} /* _eet_str_direct_free */ 1745}
1746 1746
1747static void 1747static void
1748_eet_eina_hash_foreach(void *hash, 1748_eet_eina_hash_foreach(void *hash,
@@ -1751,14 +1751,14 @@ _eet_eina_hash_foreach(void *hash,
1751{ 1751{
1752 if (hash) 1752 if (hash)
1753 eina_hash_foreach(hash, cb, fdata); 1753 eina_hash_foreach(hash, cb, fdata);
1754} /* _eet_eina_hash_foreach */ 1754}
1755 1755
1756static void 1756static void
1757_eet_eina_hash_free(void *hash) 1757_eet_eina_hash_free(void *hash)
1758{ 1758{
1759 if (hash) 1759 if (hash)
1760 eina_hash_free(hash); 1760 eina_hash_free(hash);
1761} /* _eet_eina_hash_free */ 1761}
1762 1762
1763/*---*/ 1763/*---*/
1764EAPI Eina_Bool 1764EAPI Eina_Bool
@@ -1792,7 +1792,7 @@ eet_eina_stream_data_descriptor_class_set(Eet_Data_Descriptor_Class *eddc,
1792 eddc->func.array_free = _eet_mem_free; 1792 eddc->func.array_free = _eet_mem_free;
1793 1793
1794 return EINA_TRUE; 1794 return EINA_TRUE;
1795} /* eet_eina_stream_data_descriptor_class_set */ 1795}
1796 1796
1797EAPI Eina_Bool 1797EAPI Eina_Bool
1798eet_eina_file_data_descriptor_class_set(Eet_Data_Descriptor_Class *eddc, 1798eet_eina_file_data_descriptor_class_set(Eet_Data_Descriptor_Class *eddc,
@@ -1811,7 +1811,7 @@ eet_eina_file_data_descriptor_class_set(Eet_Data_Descriptor_Class *eddc,
1811 eddc->func.str_direct_free = _eet_str_direct_free; 1811 eddc->func.str_direct_free = _eet_str_direct_free;
1812 1812
1813 return EINA_TRUE; 1813 return EINA_TRUE;
1814} /* eet_eina_file_data_descriptor_class_set */ 1814}
1815 1815
1816static Eet_Data_Descriptor * 1816static Eet_Data_Descriptor *
1817_eet_data_descriptor_new(const Eet_Data_Descriptor_Class *eddc, 1817_eet_data_descriptor_new(const Eet_Data_Descriptor_Class *eddc,
@@ -1872,7 +1872,7 @@ _eet_data_descriptor_new(const Eet_Data_Descriptor_Class *eddc,
1872 } 1872 }
1873 1873
1874 return edd; 1874 return edd;
1875} /* _eet_data_descriptor_new */ 1875}
1876 1876
1877EAPI Eet_Data_Descriptor * 1877EAPI Eet_Data_Descriptor *
1878eet_data_descriptor_new(const char *name, 1878eet_data_descriptor_new(const char *name,
@@ -1905,31 +1905,31 @@ eet_data_descriptor_new(const char *name,
1905 eddc.func.hash_free = func_hash_free; 1905 eddc.func.hash_free = func_hash_free;
1906 1906
1907 return _eet_data_descriptor_new(&eddc, 0); 1907 return _eet_data_descriptor_new(&eddc, 0);
1908} /* eet_data_descriptor_new */ 1908}
1909 1909
1910EAPI Eet_Data_Descriptor * 1910EAPI Eet_Data_Descriptor *
1911eet_data_descriptor2_new(const Eet_Data_Descriptor_Class *eddc) 1911eet_data_descriptor2_new(const Eet_Data_Descriptor_Class *eddc)
1912{ 1912{
1913 return _eet_data_descriptor_new(eddc, 1); 1913 return _eet_data_descriptor_new(eddc, 1);
1914} /* eet_data_descriptor2_new */ 1914}
1915 1915
1916EAPI Eet_Data_Descriptor * 1916EAPI Eet_Data_Descriptor *
1917eet_data_descriptor3_new(const Eet_Data_Descriptor_Class *eddc) 1917eet_data_descriptor3_new(const Eet_Data_Descriptor_Class *eddc)
1918{ 1918{
1919 return _eet_data_descriptor_new(eddc, 2); 1919 return _eet_data_descriptor_new(eddc, 2);
1920} /* eet_data_descriptor3_new */ 1920}
1921 1921
1922EAPI Eet_Data_Descriptor * 1922EAPI Eet_Data_Descriptor *
1923eet_data_descriptor_stream_new(const Eet_Data_Descriptor_Class *eddc) 1923eet_data_descriptor_stream_new(const Eet_Data_Descriptor_Class *eddc)
1924{ 1924{
1925 return _eet_data_descriptor_new(eddc, 1); 1925 return _eet_data_descriptor_new(eddc, 1);
1926} /* eet_data_descriptor_stream_new */ 1926}
1927 1927
1928EAPI Eet_Data_Descriptor * 1928EAPI Eet_Data_Descriptor *
1929eet_data_descriptor_file_new(const Eet_Data_Descriptor_Class *eddc) 1929eet_data_descriptor_file_new(const Eet_Data_Descriptor_Class *eddc)
1930{ 1930{
1931 return _eet_data_descriptor_new(eddc, 2); 1931 return _eet_data_descriptor_new(eddc, 2);
1932} /* eet_data_descriptor_file_new */ 1932}
1933 1933
1934EAPI void 1934EAPI void
1935eet_data_descriptor_free(Eet_Data_Descriptor *edd) 1935eet_data_descriptor_free(Eet_Data_Descriptor *edd)
@@ -1942,7 +1942,7 @@ eet_data_descriptor_free(Eet_Data_Descriptor *edd)
1942 free(edd->elements.set); 1942 free(edd->elements.set);
1943 1943
1944 free(edd); 1944 free(edd);
1945} /* eet_data_descriptor_free */ 1945}
1946 1946
1947EAPI void 1947EAPI void
1948eet_data_descriptor_element_add(Eet_Data_Descriptor *edd, 1948eet_data_descriptor_element_add(Eet_Data_Descriptor *edd,
@@ -2039,7 +2039,7 @@ eet_data_descriptor_element_add(Eet_Data_Descriptor *edd,
2039 ede->counter_name = counter_name; 2039 ede->counter_name = counter_name;
2040 2040
2041 ede->subtype = subtype; 2041 ede->subtype = subtype;
2042} /* eet_data_descriptor_element_add */ 2042}
2043 2043
2044EAPI void * 2044EAPI void *
2045eet_data_read_cipher(Eet_File *ef, 2045eet_data_read_cipher(Eet_File *ef,
@@ -2075,7 +2075,7 @@ eet_data_read_cipher(Eet_File *ef,
2075 free((void *)data); 2075 free((void *)data);
2076 2076
2077 return data_dec; 2077 return data_dec;
2078} /* eet_data_read_cipher */ 2078}
2079 2079
2080EAPI Eet_Node * 2080EAPI Eet_Node *
2081eet_data_node_read_cipher(Eet_File *ef, 2081eet_data_node_read_cipher(Eet_File *ef,
@@ -2110,7 +2110,7 @@ eet_data_node_read_cipher(Eet_File *ef,
2110 free((void *)data); 2110 free((void *)data);
2111 2111
2112 return result; 2112 return result;
2113} /* eet_data_node_read_cipher */ 2113}
2114 2114
2115EAPI void * 2115EAPI void *
2116eet_data_read(Eet_File *ef, 2116eet_data_read(Eet_File *ef,
@@ -2118,7 +2118,7 @@ eet_data_read(Eet_File *ef,
2118 const char *name) 2118 const char *name)
2119{ 2119{
2120 return eet_data_read_cipher(ef, edd, name, NULL); 2120 return eet_data_read_cipher(ef, edd, name, NULL);
2121} /* eet_data_read */ 2121}
2122 2122
2123EAPI int 2123EAPI int
2124eet_data_write_cipher(Eet_File *ef, 2124eet_data_write_cipher(Eet_File *ef,
@@ -2142,7 +2142,7 @@ eet_data_write_cipher(Eet_File *ef,
2142 val = eet_write_cipher(ef, name, data_enc, size, compress, cipher_key); 2142 val = eet_write_cipher(ef, name, data_enc, size, compress, cipher_key);
2143 free(data_enc); 2143 free(data_enc);
2144 return val; 2144 return val;
2145} /* eet_data_write_cipher */ 2145}
2146 2146
2147EAPI int 2147EAPI int
2148eet_data_write(Eet_File *ef, 2148eet_data_write(Eet_File *ef,
@@ -2152,7 +2152,7 @@ eet_data_write(Eet_File *ef,
2152 int compress) 2152 int compress)
2153{ 2153{
2154 return eet_data_write_cipher(ef, edd, name, NULL, data, compress); 2154 return eet_data_write_cipher(ef, edd, name, NULL, data, compress);
2155} /* eet_data_write */ 2155}
2156 2156
2157static void 2157static void
2158eet_free_context_init(Eet_Free_Context *context) 2158eet_free_context_init(Eet_Free_Context *context)
@@ -2222,7 +2222,7 @@ _eet_free_hash(void *data)
2222#endif /* if defined (_WIN64) || ((!defined (_WIN32)) && (LONG_BIT != 32)) */ 2222#endif /* if defined (_WIN64) || ((!defined (_WIN32)) && (LONG_BIT != 32)) */
2223 2223
2224 return hash & 0xFF; 2224 return hash & 0xFF;
2225} /* _eet_free_hash */ 2225}
2226 2226
2227static void 2227static void
2228_eet_free_add(Eet_Free *ef, 2228_eet_free_add(Eet_Free *ef,
@@ -2240,7 +2240,7 @@ _eet_free_add(Eet_Free *ef,
2240 return; 2240 return;
2241 2241
2242 eina_array_push(&ef->list[hash], data); 2242 eina_array_push(&ef->list[hash], data);
2243} /* _eet_free_add */ 2243}
2244 2244
2245#if 0 2245#if 0
2246static void 2246static void
@@ -2274,19 +2274,19 @@ _eet_free_reset(Eet_Free *ef)
2274 2274
2275 for (i = 0; i < EET_FREE_COUNT; ++i) 2275 for (i = 0; i < EET_FREE_COUNT; ++i)
2276 eina_array_clean(&ef->list[i]); 2276 eina_array_clean(&ef->list[i]);
2277} /* _eet_free_reset */ 2277}
2278 2278
2279static void 2279static void
2280_eet_free_ref(Eet_Free *ef) 2280_eet_free_ref(Eet_Free *ef)
2281{ 2281{
2282 ef->ref++; 2282 ef->ref++;
2283} /* _eet_free_ref */ 2283}
2284 2284
2285static void 2285static void
2286_eet_free_unref(Eet_Free *ef) 2286_eet_free_unref(Eet_Free *ef)
2287{ 2287{
2288 ef->ref--; 2288 ef->ref--;
2289} /* _eet_free_unref */ 2289}
2290 2290
2291#define _eet_freelist_add(Ctx, Data) _eet_free_add(&Ctx->freelist, Data); 2291#define _eet_freelist_add(Ctx, Data) _eet_free_add(&Ctx->freelist, Data);
2292#define _eet_freelist_del(Ctx, Data) _eet_free_del(&Ctx->freelist, Data); 2292#define _eet_freelist_del(Ctx, Data) _eet_free_del(&Ctx->freelist, Data);
@@ -2316,7 +2316,7 @@ _eet_freelist_free(Eet_Free_Context *context,
2316 free(track); 2316 free(track);
2317 } 2317 }
2318 _eet_free_reset(&context->freelist); 2318 _eet_free_reset(&context->freelist);
2319} /* _eet_freelist_free */ 2319}
2320 2320
2321#define _eet_freelist_array_add(Ctx, Data) _eet_free_add(&Ctx->freelist_array, Data); 2321#define _eet_freelist_array_add(Ctx, Data) _eet_free_add(&Ctx->freelist_array, Data);
2322#define _eet_freelist_array_del(Ctx, Data) _eet_free_del(&Ctx->freelist_array, Data); 2322#define _eet_freelist_array_del(Ctx, Data) _eet_free_del(&Ctx->freelist_array, Data);
@@ -2351,7 +2351,7 @@ _eet_freelist_array_free(Eet_Free_Context *context,
2351 free(track); 2351 free(track);
2352 } 2352 }
2353 _eet_free_reset(&context->freelist_array); 2353 _eet_free_reset(&context->freelist_array);
2354} /* _eet_freelist_array_free */ 2354}
2355 2355
2356#define _eet_freelist_list_add(Ctx, Data) _eet_free_add(&Ctx->freelist_list, Data); 2356#define _eet_freelist_list_add(Ctx, Data) _eet_free_add(&Ctx->freelist_list, Data);
2357#define _eet_freelist_list_del(Ctx, Data) _eet_free_del(&Ctx->freelist_list, Data); 2357#define _eet_freelist_list_del(Ctx, Data) _eet_free_del(&Ctx->freelist_list, Data);
@@ -2379,7 +2379,7 @@ _eet_freelist_list_free(Eet_Free_Context *context,
2379 edd->func.list_free(*((void **)(track))); 2379 edd->func.list_free(*((void **)(track)));
2380 } 2380 }
2381 _eet_free_reset(&context->freelist_list); 2381 _eet_free_reset(&context->freelist_list);
2382} /* _eet_freelist_list_free */ 2382}
2383 2383
2384#define _eet_freelist_str_add(Ctx, Data) _eet_free_add(&Ctx->freelist_str, Data); 2384#define _eet_freelist_str_add(Ctx, Data) _eet_free_add(&Ctx->freelist_str, Data);
2385#define _eet_freelist_str_del(Ctx, Data) _eet_free_del(&Ctx->freelist_str, Data); 2385#define _eet_freelist_str_del(Ctx, Data) _eet_free_del(&Ctx->freelist_str, Data);
@@ -2409,7 +2409,7 @@ _eet_freelist_str_free(Eet_Free_Context *context,
2409 free(track); 2409 free(track);
2410 } 2410 }
2411 _eet_free_reset(&context->freelist_str); 2411 _eet_free_reset(&context->freelist_str);
2412} /* _eet_freelist_str_free */ 2412}
2413 2413
2414#define _eet_freelist_direct_str_add(Ctx, Data) _eet_free_add(&Ctx->freelist_direct_str, Data); 2414#define _eet_freelist_direct_str_add(Ctx, Data) _eet_free_add(&Ctx->freelist_direct_str, Data);
2415#define _eet_freelist_direct_str_del(Ctx, Data) _eet_free_del(&Ctx->freelist_direct_str, Data); 2415#define _eet_freelist_direct_str_del(Ctx, Data) _eet_free_del(&Ctx->freelist_direct_str, Data);
@@ -2439,7 +2439,7 @@ _eet_freelist_direct_str_free(Eet_Free_Context *context,
2439 free(track); 2439 free(track);
2440 } 2440 }
2441 _eet_free_reset(&context->freelist_direct_str); 2441 _eet_free_reset(&context->freelist_direct_str);
2442} /* _eet_freelist_direct_str_free */ 2442}
2443 2443
2444#define _eet_freelist_hash_add(Ctx, Data) _eet_free_add(&Ctx->freelist_hash, Data); 2444#define _eet_freelist_hash_add(Ctx, Data) _eet_free_add(&Ctx->freelist_hash, Data);
2445#define _eet_freelist_hash_del(Ctx, Data) _eet_free_del(&Ctx->freelist_hash, Data); 2445#define _eet_freelist_hash_del(Ctx, Data) _eet_free_del(&Ctx->freelist_hash, Data);
@@ -2469,7 +2469,7 @@ _eet_freelist_hash_free(Eet_Free_Context *context,
2469 free(track); 2469 free(track);
2470 } 2470 }
2471 _eet_free_reset(&context->freelist_hash); 2471 _eet_free_reset(&context->freelist_hash);
2472} /* _eet_freelist_hash_free */ 2472}
2473 2473
2474static void 2474static void
2475_eet_freelist_all_ref(Eet_Free_Context *freelist_context) 2475_eet_freelist_all_ref(Eet_Free_Context *freelist_context)
@@ -2479,7 +2479,7 @@ _eet_freelist_all_ref(Eet_Free_Context *freelist_context)
2479 _eet_freelist_list_ref(freelist_context); 2479 _eet_freelist_list_ref(freelist_context);
2480 _eet_freelist_hash_ref(freelist_context); 2480 _eet_freelist_hash_ref(freelist_context);
2481 _eet_freelist_direct_str_ref(freelist_context); 2481 _eet_freelist_direct_str_ref(freelist_context);
2482} /* _eet_freelist_all_ref */ 2482}
2483 2483
2484static void 2484static void
2485_eet_freelist_all_unref(Eet_Free_Context *freelist_context) 2485_eet_freelist_all_unref(Eet_Free_Context *freelist_context)
@@ -2489,7 +2489,7 @@ _eet_freelist_all_unref(Eet_Free_Context *freelist_context)
2489 _eet_freelist_list_unref(freelist_context); 2489 _eet_freelist_list_unref(freelist_context);
2490 _eet_freelist_hash_unref(freelist_context); 2490 _eet_freelist_hash_unref(freelist_context);
2491 _eet_freelist_direct_str_unref(freelist_context); 2491 _eet_freelist_direct_str_unref(freelist_context);
2492} /* _eet_freelist_all_unref */ 2492}
2493 2493
2494static int 2494static int
2495eet_data_descriptor_encode_hash_cb(void *hash __UNUSED__, 2495eet_data_descriptor_encode_hash_cb(void *hash __UNUSED__,
@@ -2556,7 +2556,7 @@ eet_data_descriptor_encode_hash_cb(void *hash __UNUSED__,
2556 } 2556 }
2557 2557
2558 return 1; 2558 return 1;
2559} /* eet_data_descriptor_encode_hash_cb */ 2559}
2560 2560
2561static char * 2561static char *
2562_eet_data_dump_token_get(const char *src, 2562_eet_data_dump_token_get(const char *src,
@@ -2639,7 +2639,7 @@ _eet_data_dump_token_get(const char *src,
2639 free(tok); 2639 free(tok);
2640 2640
2641 return NULL; 2641 return NULL;
2642} /* _eet_data_dump_token_get */ 2642}
2643 2643
2644static void 2644static void
2645eet_data_encode(Eet_Dictionary *ed, 2645eet_data_encode(Eet_Dictionary *ed,
@@ -2663,7 +2663,7 @@ eet_data_encode(Eet_Dictionary *ed,
2663 eet_data_chunk_put(ed, echnk, ds); 2663 eet_data_chunk_put(ed, echnk, ds);
2664 eet_data_chunk_free(echnk); 2664 eet_data_chunk_free(echnk);
2665 free(data); 2665 free(data);
2666} /* eet_data_encode */ 2666}
2667 2667
2668static void * 2668static void *
2669_eet_data_dump_encode(int parent_type, 2669_eet_data_dump_encode(int parent_type,
@@ -2976,7 +2976,7 @@ case Eet_Type: \
2976 eet_data_chunk_free(chnk); 2976 eet_data_chunk_free(chnk);
2977 2977
2978 return cdata; 2978 return cdata;
2979} /* _eet_data_dump_encode */ 2979}
2980 2980
2981static void * 2981static void *
2982_eet_data_dump_parse(Eet_Dictionary *ed, 2982_eet_data_dump_parse(Eet_Dictionary *ed,
@@ -3238,7 +3238,7 @@ _eet_data_dump_parse(Eet_Dictionary *ed,
3238 } 3238 }
3239 3239
3240 return cdata; 3240 return cdata;
3241} /* _eet_data_dump_parse */ 3241}
3242 3242
3243#define NEXT_CHUNK(P, Size, Echnk, Ed) \ 3243#define NEXT_CHUNK(P, Size, Echnk, Ed) \
3244 { \ 3244 { \
@@ -3352,7 +3352,7 @@ _eet_data_descriptor_decode(Eet_Free_Context *context,
3352 case EET_G_VARIANT: 3352 case EET_G_VARIANT:
3353 default: 3353 default:
3354 goto error; 3354 goto error;
3355 } /* switch */ 3355 }
3356 } 3356 }
3357 3357
3358 while (size > 0) 3358 while (size > 0)
@@ -3477,7 +3477,7 @@ error:
3477 3477
3478 /* FIXME: Warn that something goes wrong here. */ 3478 /* FIXME: Warn that something goes wrong here. */
3479 return NULL; 3479 return NULL;
3480} /* _eet_data_descriptor_decode */ 3480}
3481 3481
3482static int 3482static int
3483eet_data_get_list(Eet_Free_Context *context, 3483eet_data_get_list(Eet_Free_Context *context,
@@ -3544,7 +3544,7 @@ eet_data_get_list(Eet_Free_Context *context,
3544 3544
3545on_error: 3545on_error:
3546 return 0; 3546 return 0;
3547} /* eet_data_get_list */ 3547}
3548 3548
3549static int 3549static int
3550eet_data_get_hash(Eet_Free_Context *context, 3550eet_data_get_hash(Eet_Free_Context *context,
@@ -3629,7 +3629,7 @@ eet_data_get_hash(Eet_Free_Context *context,
3629 3629
3630on_error: 3630on_error:
3631 return 0; 3631 return 0;
3632} /* eet_data_get_hash */ 3632}
3633 3633
3634/* var arrays and fixed arrays have to 3634/* var arrays and fixed arrays have to
3635 * get all chunks at once. for fixed arrays 3635 * get all chunks at once. for fixed arrays
@@ -3793,7 +3793,7 @@ on_error:
3793 eet_node_del(tmp); 3793 eet_node_del(tmp);
3794 3794
3795 return 0; 3795 return 0;
3796} /* eet_data_get_array */ 3796}
3797 3797
3798static void 3798static void
3799eet_data_put_union(Eet_Dictionary *ed, 3799eet_data_put_union(Eet_Dictionary *ed,
@@ -3849,7 +3849,7 @@ eet_data_put_union(Eet_Dictionary *ed,
3849 3849
3850 break; 3850 break;
3851 } 3851 }
3852} /* eet_data_put_union */ 3852}
3853 3853
3854static int 3854static int
3855eet_data_get_union(Eet_Free_Context *context, 3855eet_data_get_union(Eet_Free_Context *context,
@@ -3947,7 +3947,7 @@ eet_data_get_union(Eet_Free_Context *context,
3947 3947
3948on_error: 3948on_error:
3949 return 0; 3949 return 0;
3950} /* eet_data_get_union */ 3950}
3951 3951
3952static void 3952static void
3953eet_data_put_variant(Eet_Dictionary *ed, 3953eet_data_put_variant(Eet_Dictionary *ed,
@@ -4058,7 +4058,7 @@ eet_data_put_variant(Eet_Dictionary *ed,
4058 4058
4059 break; 4059 break;
4060 } 4060 }
4061} /* eet_data_put_variant */ 4061}
4062 4062
4063static int 4063static int
4064eet_data_get_variant(Eet_Free_Context *context, 4064eet_data_get_variant(Eet_Free_Context *context,
@@ -4213,7 +4213,7 @@ eet_data_get_variant(Eet_Free_Context *context,
4213 4213
4214on_error: 4214on_error:
4215 return 0; 4215 return 0;
4216} /* eet_data_get_variant */ 4216}
4217 4217
4218static Eet_Node * 4218static Eet_Node *
4219eet_data_node_simple_type(int type, 4219eet_data_node_simple_type(int type,
@@ -4249,8 +4249,8 @@ case Eet_Type: \
4249 default: 4249 default:
4250 ERR("Unknow type passed to eet_data_node_simple_type"); 4250 ERR("Unknow type passed to eet_data_node_simple_type");
4251 return NULL; 4251 return NULL;
4252 } /* switch */ 4252 }
4253} /* eet_data_node_simple_type */ 4253}
4254 4254
4255static int 4255static int
4256eet_data_get_unknown(Eet_Free_Context *context, 4256eet_data_get_unknown(Eet_Free_Context *context,
@@ -4366,7 +4366,7 @@ eet_data_get_unknown(Eet_Free_Context *context,
4366 } 4366 }
4367 4367
4368 return 1; 4368 return 1;
4369} /* eet_data_get_unknown */ 4369}
4370 4370
4371static void 4371static void
4372eet_data_put_array(Eet_Dictionary *ed, 4372eet_data_put_array(Eet_Dictionary *ed,
@@ -4442,7 +4442,7 @@ eet_data_put_array(Eet_Dictionary *ed,
4442 4442
4443 offset += subsize; 4443 offset += subsize;
4444 } 4444 }
4445} /* eet_data_put_array */ 4445}
4446 4446
4447static void 4447static void
4448eet_data_put_unknown(Eet_Dictionary *ed, 4448eet_data_put_unknown(Eet_Dictionary *ed,
@@ -4471,7 +4471,7 @@ eet_data_put_unknown(Eet_Dictionary *ed,
4471 size, 4471 size,
4472 ede->type, 4472 ede->type,
4473 ede->group_type); 4473 ede->group_type);
4474} /* eet_data_put_unknown */ 4474}
4475 4475
4476static void 4476static void
4477eet_data_put_list(Eet_Dictionary *ed, 4477eet_data_put_list(Eet_Dictionary *ed,
@@ -4512,7 +4512,7 @@ eet_data_put_list(Eet_Dictionary *ed,
4512 ede->group_type); 4512 ede->group_type);
4513 } 4513 }
4514 } 4514 }
4515} /* eet_data_put_list */ 4515}
4516 4516
4517static void 4517static void
4518eet_data_put_hash(Eet_Dictionary *ed, 4518eet_data_put_hash(Eet_Dictionary *ed,
@@ -4529,7 +4529,7 @@ eet_data_put_hash(Eet_Dictionary *ed,
4529 fdata.ede = ede; 4529 fdata.ede = ede;
4530 fdata.ed = ed; 4530 fdata.ed = ed;
4531 edd->func.hash_foreach(l, eet_data_descriptor_encode_hash_cb, &fdata); 4531 edd->func.hash_foreach(l, eet_data_descriptor_encode_hash_cb, &fdata);
4532} /* eet_data_put_hash */ 4532}
4533 4533
4534EAPI int 4534EAPI int
4535eet_data_dump_cipher(Eet_File *ef, 4535eet_data_dump_cipher(Eet_File *ef,
@@ -4570,7 +4570,7 @@ eet_data_dump_cipher(Eet_File *ef,
4570 free((void *)data); 4570 free((void *)data);
4571 4571
4572 return result ? 1 : 0; 4572 return result ? 1 : 0;
4573} /* eet_data_dump_cipher */ 4573}
4574 4574
4575EAPI int 4575EAPI int
4576eet_data_dump(Eet_File *ef, 4576eet_data_dump(Eet_File *ef,
@@ -4579,7 +4579,7 @@ eet_data_dump(Eet_File *ef,
4579 void *dumpdata) 4579 void *dumpdata)
4580{ 4580{
4581 return eet_data_dump_cipher(ef, name, NULL, dumpfunc, dumpdata); 4581 return eet_data_dump_cipher(ef, name, NULL, dumpfunc, dumpdata);
4582} /* eet_data_dump */ 4582}
4583 4583
4584EAPI int 4584EAPI int
4585eet_data_text_dump_cipher(const void *data_in, 4585eet_data_text_dump_cipher(const void *data_in,
@@ -4624,7 +4624,7 @@ eet_data_text_dump_cipher(const void *data_in,
4624 free(ret); 4624 free(ret);
4625 4625
4626 return result ? 1 : 0; 4626 return result ? 1 : 0;
4627} /* eet_data_text_dump_cipher */ 4627}
4628 4628
4629EAPI int 4629EAPI int
4630eet_data_text_dump(const void *data_in, 4630eet_data_text_dump(const void *data_in,
@@ -4633,7 +4633,7 @@ eet_data_text_dump(const void *data_in,
4633 void *dumpdata) 4633 void *dumpdata)
4634{ 4634{
4635 return eet_data_text_dump_cipher(data_in, NULL, size_in, dumpfunc, dumpdata); 4635 return eet_data_text_dump_cipher(data_in, NULL, size_in, dumpfunc, dumpdata);
4636} /* eet_data_text_dump */ 4636}
4637 4637
4638EAPI void * 4638EAPI void *
4639eet_data_text_undump_cipher(const char *text, 4639eet_data_text_undump_cipher(const char *text,
@@ -4666,7 +4666,7 @@ eet_data_text_undump_cipher(const char *text,
4666 } 4666 }
4667 4667
4668 return ret; 4668 return ret;
4669} /* eet_data_text_undump_cipher */ 4669}
4670 4670
4671EAPI void * 4671EAPI void *
4672eet_data_text_undump(const char *text, 4672eet_data_text_undump(const char *text,
@@ -4674,7 +4674,7 @@ eet_data_text_undump(const char *text,
4674 int *size_ret) 4674 int *size_ret)
4675{ 4675{
4676 return eet_data_text_undump_cipher(text, NULL, textlen, size_ret); 4676 return eet_data_text_undump_cipher(text, NULL, textlen, size_ret);
4677} /* eet_data_text_undump */ 4677}
4678 4678
4679EAPI int 4679EAPI int
4680eet_data_undump_cipher(Eet_File *ef, 4680eet_data_undump_cipher(Eet_File *ef,
@@ -4698,7 +4698,7 @@ eet_data_undump_cipher(Eet_File *ef,
4698 val = eet_write_cipher(ef, name, data_enc, size, compress, cipher_key); 4698 val = eet_write_cipher(ef, name, data_enc, size, compress, cipher_key);
4699 free(data_enc); 4699 free(data_enc);
4700 return val; 4700 return val;
4701} /* eet_data_undump_cipher */ 4701}
4702 4702
4703EAPI int 4703EAPI int
4704eet_data_undump(Eet_File *ef, 4704eet_data_undump(Eet_File *ef,
@@ -4708,7 +4708,7 @@ eet_data_undump(Eet_File *ef,
4708 int compress) 4708 int compress)
4709{ 4709{
4710 return eet_data_undump_cipher(ef, name, NULL, text, textlen, compress); 4710 return eet_data_undump_cipher(ef, name, NULL, text, textlen, compress);
4711} /* eet_data_undump */ 4711}
4712 4712
4713EAPI void * 4713EAPI void *
4714eet_data_descriptor_decode_cipher(Eet_Data_Descriptor *edd, 4714eet_data_descriptor_decode_cipher(Eet_Data_Descriptor *edd,
@@ -4744,7 +4744,7 @@ eet_data_descriptor_decode_cipher(Eet_Data_Descriptor *edd,
4744 free(deciphered); 4744 free(deciphered);
4745 4745
4746 return ret; 4746 return ret;
4747} /* eet_data_descriptor_decode_cipher */ 4747}
4748 4748
4749EAPI void * 4749EAPI void *
4750eet_data_descriptor_decode(Eet_Data_Descriptor *edd, 4750eet_data_descriptor_decode(Eet_Data_Descriptor *edd,
@@ -4752,7 +4752,7 @@ eet_data_descriptor_decode(Eet_Data_Descriptor *edd,
4752 int size_in) 4752 int size_in)
4753{ 4753{
4754 return eet_data_descriptor_decode_cipher(edd, data_in, NULL, size_in); 4754 return eet_data_descriptor_decode_cipher(edd, data_in, NULL, size_in);
4755} /* eet_data_descriptor_decode */ 4755}
4756 4756
4757EAPI Eet_Node * 4757EAPI Eet_Node *
4758eet_data_node_decode_cipher(const void *data_in, 4758eet_data_node_decode_cipher(const void *data_in,
@@ -4787,7 +4787,7 @@ eet_data_node_decode_cipher(const void *data_in,
4787 free(deciphered); 4787 free(deciphered);
4788 4788
4789 return ret; 4789 return ret;
4790} /* eet_data_node_decode_cipher */ 4790}
4791 4791
4792static void * 4792static void *
4793_eet_data_descriptor_encode(Eet_Dictionary *ed, 4793_eet_data_descriptor_encode(Eet_Dictionary *ed,
@@ -4849,7 +4849,7 @@ _eet_data_descriptor_encode(Eet_Dictionary *ed,
4849 eet_data_chunk_free(chnk); 4849 eet_data_chunk_free(chnk);
4850 4850
4851 return cdata; 4851 return cdata;
4852} /* _eet_data_descriptor_encode */ 4852}
4853 4853
4854EAPI int 4854EAPI int
4855eet_data_node_write_cipher(Eet_File *ef, 4855eet_data_node_write_cipher(Eet_File *ef,
@@ -4872,7 +4872,7 @@ eet_data_node_write_cipher(Eet_File *ef,
4872 val = eet_write_cipher(ef, name, data_enc, size, compress, cipher_key); 4872 val = eet_write_cipher(ef, name, data_enc, size, compress, cipher_key);
4873 free(data_enc); 4873 free(data_enc);
4874 return val; 4874 return val;
4875} /* eet_data_node_write_cipher */ 4875}
4876 4876
4877EAPI void * 4877EAPI void *
4878eet_data_node_encode_cipher(Eet_Node *node, 4878eet_data_node_encode_cipher(Eet_Node *node,
@@ -4909,7 +4909,7 @@ eet_data_node_encode_cipher(Eet_Node *node,
4909 *size_ret = size; 4909 *size_ret = size;
4910 4910
4911 return ret; 4911 return ret;
4912} /* eet_data_node_encode_cipher */ 4912}
4913 4913
4914EAPI void * 4914EAPI void *
4915eet_data_descriptor_encode_cipher(Eet_Data_Descriptor *edd, 4915eet_data_descriptor_encode_cipher(Eet_Data_Descriptor *edd,
@@ -4947,7 +4947,7 @@ eet_data_descriptor_encode_cipher(Eet_Data_Descriptor *edd,
4947 *size_ret = size; 4947 *size_ret = size;
4948 4948
4949 return ret; 4949 return ret;
4950} /* eet_data_descriptor_encode_cipher */ 4950}
4951 4951
4952EAPI void * 4952EAPI void *
4953eet_data_descriptor_encode(Eet_Data_Descriptor *edd, 4953eet_data_descriptor_encode(Eet_Data_Descriptor *edd,
@@ -4955,7 +4955,7 @@ eet_data_descriptor_encode(Eet_Data_Descriptor *edd,
4955 int *size_ret) 4955 int *size_ret)
4956{ 4956{
4957 return eet_data_descriptor_encode_cipher(edd, data_in, NULL, size_ret); 4957 return eet_data_descriptor_encode_cipher(edd, data_in, NULL, size_ret);
4958} /* eet_data_descriptor_encode */ 4958}
4959 4959
4960EAPI void * 4960EAPI void *
4961eet_data_xattr_cipher_get(const char *filename, 4961eet_data_xattr_cipher_get(const char *filename,
diff --git a/libraries/eet/src/lib/eet_dictionary.c b/libraries/eet/src/lib/eet_dictionary.c
index 60d0ec1..287860d 100644
--- a/libraries/eet/src/lib/eet_dictionary.c
+++ b/libraries/eet/src/lib/eet_dictionary.c
@@ -16,34 +16,33 @@ eet_dictionary_add(void)
16{ 16{
17 Eet_Dictionary *new; 17 Eet_Dictionary *new;
18 18
19 new = calloc(1, sizeof (Eet_Dictionary)); 19 new = eet_dictionary_calloc(1);
20 if (!new) 20 if (!new)
21 return NULL; 21 return NULL;
22 22
23 memset(new->hash, -1, sizeof (int) * 256); 23 memset(new->hash, -1, sizeof (int) * 256);
24 24
25 return new; 25 return new;
26} /* eet_dictionary_add */ 26}
27 27
28void 28void
29eet_dictionary_free(Eet_Dictionary *ed) 29eet_dictionary_free(Eet_Dictionary *ed)
30{ 30{
31 if (ed) 31 int i;
32 {
33 int i;
34 32
35 for (i = 0; i < ed->count; ++i) 33 if (!ed) return;
36 if (ed->all[i].allocated)
37 eina_stringshare_del(ed->all[i].str);
38 34
39 if (ed->all) 35 for (i = 0; i < ed->count; ++i)
40 free(ed->all); 36 if (ed->all[i].allocated)
37 eina_stringshare_del(ed->all[i].str);
41 38
42 if (ed->converts) eina_hash_free(ed->converts); 39 if (ed->all)
40 free(ed->all);
43 41
44 free(ed); 42 if (ed->converts) eina_hash_free(ed->converts);
45 } 43
46} /* eet_dictionary_free */ 44 eet_dictionary_mp_free(ed);
45}
47 46
48static int 47static int
49_eet_dictionary_lookup(Eet_Dictionary *ed, 48_eet_dictionary_lookup(Eet_Dictionary *ed,
@@ -77,7 +76,7 @@ _eet_dictionary_lookup(Eet_Dictionary *ed,
77 return prev; 76 return prev;
78 77
79 return current; 78 return current;
80} /* _eet_dictionary_lookup */ 79}
81 80
82int 81int
83eet_dictionary_string_add(Eet_Dictionary *ed, 82eet_dictionary_string_add(Eet_Dictionary *ed,
@@ -110,7 +109,7 @@ eet_dictionary_string_add(Eet_Dictionary *ed,
110 109
111 total = ed->total + 8; 110 total = ed->total + 8;
112 111
113 new = realloc(ed->all, sizeof (Eet_String) * total); 112 new = realloc(ed->all, total * sizeof(Eet_String));
114 if (!new) 113 if (!new)
115 return -1; 114 return -1;
116 115
@@ -152,7 +151,7 @@ eet_dictionary_string_add(Eet_Dictionary *ed,
152 } 151 }
153 152
154 return ed->count++; 153 return ed->count++;
155} /* eet_dictionary_string_add */ 154}
156 155
157int 156int
158eet_dictionary_string_get_size(const Eet_Dictionary *ed, 157eet_dictionary_string_get_size(const Eet_Dictionary *ed,
@@ -168,7 +167,7 @@ eet_dictionary_string_get_size(const Eet_Dictionary *ed,
168 return ed->all[idx].len; 167 return ed->all[idx].len;
169 168
170 return 0; 169 return 0;
171} /* eet_dictionary_string_get_size */ 170}
172 171
173int 172int
174eet_dictionary_string_get_hash(const Eet_Dictionary *ed, 173eet_dictionary_string_get_hash(const Eet_Dictionary *ed,
@@ -184,7 +183,7 @@ eet_dictionary_string_get_hash(const Eet_Dictionary *ed,
184 return ed->all[idx].hash; 183 return ed->all[idx].hash;
185 184
186 return -1; 185 return -1;
187} /* eet_dictionary_string_get_hash */ 186}
188 187
189const char * 188const char *
190eet_dictionary_string_get_char(const Eet_Dictionary *ed, 189eet_dictionary_string_get_char(const Eet_Dictionary *ed,
@@ -210,7 +209,7 @@ eet_dictionary_string_get_char(const Eet_Dictionary *ed,
210 } 209 }
211 210
212 return NULL; 211 return NULL;
213} /* eet_dictionary_string_get_char */ 212}
214 213
215static inline Eina_Bool 214static inline Eina_Bool
216_eet_dictionary_string_get_me_cache(const char *s, 215_eet_dictionary_string_get_me_cache(const char *s,
@@ -227,7 +226,7 @@ _eet_dictionary_string_get_me_cache(const char *s,
227 } 226 }
228 227
229 return EINA_FALSE; 228 return EINA_FALSE;
230} /* _eet_dictionary_string_get_me_cache */ 229}
231 230
232static inline Eina_Bool 231static inline Eina_Bool
233_eet_dictionary_string_get_float_cache(const char *s, 232_eet_dictionary_string_get_float_cache(const char *s,
@@ -248,7 +247,7 @@ _eet_dictionary_string_get_float_cache(const char *s,
248 } 247 }
249 248
250 return EINA_FALSE; 249 return EINA_FALSE;
251} /* _eet_dictionary_string_get_float_cache */ 250}
252 251
253static inline Eina_Bool 252static inline Eina_Bool
254_eet_dictionary_string_get_double_cache(const char *s, 253_eet_dictionary_string_get_double_cache(const char *s,
@@ -269,7 +268,7 @@ _eet_dictionary_string_get_double_cache(const char *s,
269 } 268 }
270 269
271 return EINA_FALSE; 270 return EINA_FALSE;
272} /* _eet_dictionary_string_get_double_cache */ 271}
273 272
274static inline Eina_Bool 273static inline Eina_Bool
275_eet_dictionary_test(const Eet_Dictionary *ed, 274_eet_dictionary_test(const Eet_Dictionary *ed,
@@ -289,7 +288,7 @@ _eet_dictionary_test(const Eet_Dictionary *ed,
289 return EINA_FALSE; 288 return EINA_FALSE;
290 289
291 return EINA_TRUE; 290 return EINA_TRUE;
292} /* _eet_dictionary_test */ 291}
293 292
294static Eet_Convert * 293static Eet_Convert *
295eet_dictionary_convert_get(const Eet_Dictionary *ed, 294eet_dictionary_convert_get(const Eet_Dictionary *ed,
@@ -351,7 +350,7 @@ eet_dictionary_string_get_float(const Eet_Dictionary *ed,
351 350
352 *result = convert->f; 351 *result = convert->f;
353 return EINA_TRUE; 352 return EINA_TRUE;
354} /* eet_dictionary_string_get_float */ 353}
355 354
356Eina_Bool 355Eina_Bool
357eet_dictionary_string_get_double(const Eet_Dictionary *ed, 356eet_dictionary_string_get_double(const Eet_Dictionary *ed,
@@ -387,7 +386,7 @@ eet_dictionary_string_get_double(const Eet_Dictionary *ed,
387 386
388 *result = convert->d; 387 *result = convert->d;
389 return EINA_TRUE; 388 return EINA_TRUE;
390} /* eet_dictionary_string_get_double */ 389}
391 390
392Eina_Bool 391Eina_Bool
393eet_dictionary_string_get_fp(const Eet_Dictionary *ed, 392eet_dictionary_string_get_fp(const Eet_Dictionary *ed,
@@ -416,7 +415,7 @@ eet_dictionary_string_get_fp(const Eet_Dictionary *ed,
416 415
417 *result = convert->fp; 416 *result = convert->fp;
418 return EINA_TRUE; 417 return EINA_TRUE;
419} /* eet_dictionary_string_get_fp */ 418}
420 419
421EAPI int 420EAPI int
422eet_dictionary_string_check(Eet_Dictionary *ed, 421eet_dictionary_string_check(Eet_Dictionary *ed,
@@ -435,5 +434,5 @@ eet_dictionary_string_check(Eet_Dictionary *ed,
435 return 1; 434 return 1;
436 435
437 return 0; 436 return 0;
438} /* eet_dictionary_string_check */ 437}
439 438
diff --git a/libraries/eet/src/lib/eet_image.c b/libraries/eet/src/lib/eet_image.c
index 79f6f90..8c6c03c 100644
--- a/libraries/eet/src/lib/eet_image.c
+++ b/libraries/eet/src/lib/eet_image.c
@@ -66,7 +66,7 @@ _eet_jpeg_membuf_src_init(j_decompress_ptr cinfo)
66{ 66{
67 /* FIXME: Use attribute unused */ 67 /* FIXME: Use attribute unused */
68 (void)cinfo; 68 (void)cinfo;
69} /* _eet_jpeg_membuf_src_init */ 69}
70 70
71static boolean 71static boolean
72_eet_jpeg_membuf_src_fill(j_decompress_ptr cinfo) 72_eet_jpeg_membuf_src_fill(j_decompress_ptr cinfo)
@@ -78,7 +78,7 @@ _eet_jpeg_membuf_src_fill(j_decompress_ptr cinfo)
78 src->pub.next_input_byte = jpeg_eoi; 78 src->pub.next_input_byte = jpeg_eoi;
79 79
80 return TRUE; 80 return TRUE;
81} /* _eet_jpeg_membuf_src_fill */ 81}
82 82
83static void 83static void
84_eet_jpeg_membuf_src_skip(j_decompress_ptr cinfo, 84_eet_jpeg_membuf_src_skip(j_decompress_ptr cinfo,
@@ -88,7 +88,7 @@ _eet_jpeg_membuf_src_skip(j_decompress_ptr cinfo,
88 88
89 src->pub.bytes_in_buffer -= num_bytes; 89 src->pub.bytes_in_buffer -= num_bytes;
90 src->pub.next_input_byte += num_bytes; 90 src->pub.next_input_byte += num_bytes;
91} /* _eet_jpeg_membuf_src_skip */ 91}
92 92
93static void 93static void
94_eet_jpeg_membuf_src_term(j_decompress_ptr cinfo) 94_eet_jpeg_membuf_src_term(j_decompress_ptr cinfo)
@@ -97,7 +97,7 @@ _eet_jpeg_membuf_src_term(j_decompress_ptr cinfo)
97 97
98 free(src); 98 free(src);
99 cinfo->src = NULL; 99 cinfo->src = NULL;
100} /* _eet_jpeg_membuf_src_term */ 100}
101 101
102static int 102static int
103eet_jpeg_membuf_src(j_decompress_ptr cinfo, 103eet_jpeg_membuf_src(j_decompress_ptr cinfo,
@@ -124,7 +124,7 @@ eet_jpeg_membuf_src(j_decompress_ptr cinfo,
124 src->pub.next_input_byte = src->buf; 124 src->pub.next_input_byte = src->buf;
125 125
126 return 0; 126 return 0;
127} /* eet_jpeg_membuf_src */ 127}
128 128
129struct jpeg_membuf_dst 129struct jpeg_membuf_dst
130{ 130{
@@ -144,7 +144,7 @@ _eet_jpeg_membuf_dst_init(j_compress_ptr cinfo)
144{ 144{
145 /* FIXME: Use eina attribute */ 145 /* FIXME: Use eina attribute */
146 (void)cinfo; 146 (void)cinfo;
147} /* _eet_jpeg_membuf_dst_init */ 147}
148 148
149static boolean 149static boolean
150_eet_jpeg_membuf_dst_flush(j_compress_ptr cinfo) 150_eet_jpeg_membuf_dst_flush(j_compress_ptr cinfo)
@@ -168,7 +168,7 @@ _eet_jpeg_membuf_dst_flush(j_compress_ptr cinfo)
168 dst->len *= 2; 168 dst->len *= 2;
169 169
170 return FALSE; 170 return FALSE;
171} /* _eet_jpeg_membuf_dst_flush */ 171}
172 172
173static void 173static void
174_eet_jpeg_membuf_dst_term(j_compress_ptr cinfo) 174_eet_jpeg_membuf_dst_term(j_compress_ptr cinfo)
@@ -189,7 +189,7 @@ _eet_jpeg_membuf_dst_term(j_compress_ptr cinfo)
189 189
190 free(dst); 190 free(dst);
191 cinfo->dest = NULL; 191 cinfo->dest = NULL;
192} /* _eet_jpeg_membuf_dst_term */ 192}
193 193
194static int 194static int
195eet_jpeg_membuf_dst(j_compress_ptr cinfo, 195eet_jpeg_membuf_dst(j_compress_ptr cinfo,
@@ -223,7 +223,7 @@ eet_jpeg_membuf_dst(j_compress_ptr cinfo,
223 dst->failed = 0; 223 dst->failed = 0;
224 224
225 return 0; 225 return 0;
226} /* eet_jpeg_membuf_dst */ 226}
227 227
228/*---*/ 228/*---*/
229 229
@@ -336,7 +336,7 @@ _JPEGFatalErrorHandler(j_common_ptr cinfo)
336 /* cinfo->err->output_message(cinfo);*/ 336 /* cinfo->err->output_message(cinfo);*/
337 longjmp(errmgr->setjmp_buffer, 1); 337 longjmp(errmgr->setjmp_buffer, 1);
338 return; 338 return;
339} /* _JPEGFatalErrorHandler */ 339}
340 340
341static void 341static void
342_JPEGErrorHandler(j_common_ptr cinfo __UNUSED__) 342_JPEGErrorHandler(j_common_ptr cinfo __UNUSED__)
@@ -347,7 +347,7 @@ _JPEGErrorHandler(j_common_ptr cinfo __UNUSED__)
347 /* cinfo->err->output_message(cinfo);*/ 347 /* cinfo->err->output_message(cinfo);*/
348 /* longjmp(errmgr->setjmp_buffer, 1);*/ 348 /* longjmp(errmgr->setjmp_buffer, 1);*/
349 return; 349 return;
350} /* _JPEGErrorHandler */ 350}
351 351
352static void 352static void
353_JPEGErrorHandler2(j_common_ptr cinfo __UNUSED__, 353_JPEGErrorHandler2(j_common_ptr cinfo __UNUSED__,
@@ -359,7 +359,7 @@ _JPEGErrorHandler2(j_common_ptr cinfo __UNUSED__,
359 /* cinfo->err->output_message(cinfo);*/ 359 /* cinfo->err->output_message(cinfo);*/
360 /* longjmp(errmgr->setjmp_buffer, 1);*/ 360 /* longjmp(errmgr->setjmp_buffer, 1);*/
361 return; 361 return;
362} /* _JPEGErrorHandler2 */ 362}
363 363
364static int 364static int
365eet_data_image_jpeg_header_decode(const void *data, 365eet_data_image_jpeg_header_decode(const void *data,
@@ -405,7 +405,7 @@ eet_data_image_jpeg_header_decode(const void *data,
405 return 0; 405 return 0;
406 406
407 return 1; 407 return 1;
408} /* eet_data_image_jpeg_header_decode */ 408}
409 409
410static int 410static int
411eet_data_image_jpeg_rgb_decode(const void *data, 411eet_data_image_jpeg_rgb_decode(const void *data,
@@ -558,7 +558,7 @@ eet_data_image_jpeg_rgb_decode(const void *data,
558 jpeg_finish_decompress(&cinfo); 558 jpeg_finish_decompress(&cinfo);
559 jpeg_destroy_decompress(&cinfo); 559 jpeg_destroy_decompress(&cinfo);
560 return 1; 560 return 1;
561} /* eet_data_image_jpeg_rgb_decode */ 561}
562 562
563static void * 563static void *
564eet_data_image_jpeg_alpha_decode(const void *data, 564eet_data_image_jpeg_alpha_decode(const void *data,
@@ -667,7 +667,7 @@ eet_data_image_jpeg_alpha_decode(const void *data,
667 jpeg_finish_decompress(&cinfo); 667 jpeg_finish_decompress(&cinfo);
668 jpeg_destroy_decompress(&cinfo); 668 jpeg_destroy_decompress(&cinfo);
669 return d; 669 return d;
670} /* eet_data_image_jpeg_alpha_decode */ 670}
671 671
672static void * 672static void *
673eet_data_image_lossless_convert(int *size, 673eet_data_image_lossless_convert(int *size,
@@ -715,7 +715,7 @@ eet_data_image_lossless_convert(int *size,
715 *size = ((w * h * 4) + (8 * 4)); 715 *size = ((w * h * 4) + (8 * 4));
716 return d; 716 return d;
717 } 717 }
718} /* eet_data_image_lossless_convert */ 718}
719 719
720static void * 720static void *
721eet_data_image_lossless_compressed_convert(int *size, 721eet_data_image_lossless_compressed_convert(int *size,
@@ -789,7 +789,7 @@ eet_data_image_lossless_compressed_convert(int *size,
789 free(comp); 789 free(comp);
790 return d; 790 return d;
791 } 791 }
792} /* eet_data_image_lossless_compressed_convert */ 792}
793 793
794static void * 794static void *
795eet_data_image_jpeg_convert(int *size, 795eet_data_image_jpeg_convert(int *size,
@@ -872,7 +872,7 @@ eet_data_image_jpeg_convert(int *size,
872 872
873 *size = sz; 873 *size = sz;
874 return d; 874 return d;
875} /* eet_data_image_jpeg_convert */ 875}
876 876
877static void * 877static void *
878eet_data_image_jpeg_alpha_convert(int *size, 878eet_data_image_jpeg_alpha_convert(int *size,
@@ -1063,7 +1063,7 @@ eet_data_image_jpeg_alpha_convert(int *size,
1063 free(d2); 1063 free(d2);
1064 *size = 12 + sz1 + sz2; 1064 *size = 12 + sz1 + sz2;
1065 return d; 1065 return d;
1066} /* eet_data_image_jpeg_alpha_convert */ 1066}
1067 1067
1068EAPI int 1068EAPI int
1069eet_data_image_write_cipher(Eet_File *ef, 1069eet_data_image_write_cipher(Eet_File *ef,
@@ -1091,7 +1091,7 @@ eet_data_image_write_cipher(Eet_File *ef,
1091 } 1091 }
1092 1092
1093 return 0; 1093 return 0;
1094} /* eet_data_image_write_cipher */ 1094}
1095 1095
1096EAPI int 1096EAPI int
1097eet_data_image_write(Eet_File *ef, 1097eet_data_image_write(Eet_File *ef,
@@ -1114,7 +1114,7 @@ eet_data_image_write(Eet_File *ef,
1114 comp, 1114 comp,
1115 quality, 1115 quality,
1116 lossy); 1116 lossy);
1117} /* eet_data_image_write */ 1117}
1118 1118
1119EAPI void * 1119EAPI void *
1120eet_data_image_read_cipher(Eet_File *ef, 1120eet_data_image_read_cipher(Eet_File *ef,
@@ -1149,7 +1149,7 @@ eet_data_image_read_cipher(Eet_File *ef,
1149 free(data); 1149 free(data);
1150 1150
1151 return d; 1151 return d;
1152} /* eet_data_image_read_cipher */ 1152}
1153 1153
1154EAPI void * 1154EAPI void *
1155eet_data_image_read(Eet_File *ef, 1155eet_data_image_read(Eet_File *ef,
@@ -1163,7 +1163,7 @@ eet_data_image_read(Eet_File *ef,
1163{ 1163{
1164 return eet_data_image_read_cipher(ef, name, NULL, w, h, alpha, 1164 return eet_data_image_read_cipher(ef, name, NULL, w, h, alpha,
1165 comp, quality, lossy); 1165 comp, quality, lossy);
1166} /* eet_data_image_read */ 1166}
1167 1167
1168EAPI int 1168EAPI int
1169eet_data_image_read_to_surface_cipher(Eet_File *ef, 1169eet_data_image_read_to_surface_cipher(Eet_File *ef,
@@ -1204,7 +1204,7 @@ eet_data_image_read_to_surface_cipher(Eet_File *ef,
1204 free(data); 1204 free(data);
1205 1205
1206 return res; 1206 return res;
1207} /* eet_data_image_read_to_surface_cipher */ 1207}
1208 1208
1209EAPI int 1209EAPI int
1210eet_data_image_read_to_surface(Eet_File *ef, 1210eet_data_image_read_to_surface(Eet_File *ef,
@@ -1225,7 +1225,7 @@ eet_data_image_read_to_surface(Eet_File *ef,
1225 w, h, row_stride, 1225 w, h, row_stride,
1226 alpha, comp, quality, 1226 alpha, comp, quality,
1227 lossy); 1227 lossy);
1228} /* eet_data_image_read_to_surface */ 1228}
1229 1229
1230EAPI int 1230EAPI int
1231eet_data_image_header_read_cipher(Eet_File *ef, 1231eet_data_image_header_read_cipher(Eet_File *ef,
@@ -1260,7 +1260,7 @@ eet_data_image_header_read_cipher(Eet_File *ef,
1260 free(data); 1260 free(data);
1261 1261
1262 return d; 1262 return d;
1263} /* eet_data_image_header_read_cipher */ 1263}
1264 1264
1265EAPI int 1265EAPI int
1266eet_data_image_header_read(Eet_File *ef, 1266eet_data_image_header_read(Eet_File *ef,
@@ -1275,7 +1275,7 @@ eet_data_image_header_read(Eet_File *ef,
1275 return eet_data_image_header_read_cipher(ef, name, NULL, 1275 return eet_data_image_header_read_cipher(ef, name, NULL,
1276 w, h, alpha, 1276 w, h, alpha,
1277 comp, quality, lossy); 1277 comp, quality, lossy);
1278} /* eet_data_image_header_read */ 1278}
1279 1279
1280EAPI void * 1280EAPI void *
1281eet_data_image_encode_cipher(const void *data, 1281eet_data_image_encode_cipher(const void *data,
@@ -1333,7 +1333,7 @@ eet_data_image_encode_cipher(const void *data,
1333 *size_ret = size; 1333 *size_ret = size;
1334 1334
1335 return d; 1335 return d;
1336} /* eet_data_image_encode_cipher */ 1336}
1337 1337
1338EAPI void * 1338EAPI void *
1339eet_data_image_encode(const void *data, 1339eet_data_image_encode(const void *data,
@@ -1347,7 +1347,7 @@ eet_data_image_encode(const void *data,
1347{ 1347{
1348 return eet_data_image_encode_cipher(data, NULL, w, h, alpha, 1348 return eet_data_image_encode_cipher(data, NULL, w, h, alpha,
1349 comp, quality, lossy, size_ret); 1349 comp, quality, lossy, size_ret);
1350} /* eet_data_image_encode */ 1350}
1351 1351
1352EAPI int 1352EAPI int
1353eet_data_image_header_decode_cipher(const void *data, 1353eet_data_image_header_decode_cipher(const void *data,
@@ -1499,7 +1499,7 @@ eet_data_image_header_decode_cipher(const void *data,
1499 } 1499 }
1500 1500
1501 return 0; 1501 return 0;
1502} /* eet_data_image_header_decode_cipher */ 1502}
1503 1503
1504EAPI int 1504EAPI int
1505eet_data_image_header_decode(const void *data, 1505eet_data_image_header_decode(const void *data,
@@ -1520,7 +1520,7 @@ eet_data_image_header_decode(const void *data,
1520 comp, 1520 comp,
1521 quality, 1521 quality,
1522 lossy); 1522 lossy);
1523} /* eet_data_image_header_decode */ 1523}
1524 1524
1525static void 1525static void
1526_eet_data_image_copy_buffer(const unsigned int *src, 1526_eet_data_image_copy_buffer(const unsigned int *src,
@@ -1544,7 +1544,7 @@ _eet_data_image_copy_buffer(const unsigned int *src,
1544 for (y = 0; y < h; ++y, src += src_w, over += row_stride) 1544 for (y = 0; y < h; ++y, src += src_w, over += row_stride)
1545 memcpy(over, src, w * 4); 1545 memcpy(over, src, w * 4);
1546 } 1546 }
1547} /* _eet_data_image_copy_buffer */ 1547}
1548 1548
1549static int 1549static int
1550_eet_data_image_decode_inside(const void *data, 1550_eet_data_image_decode_inside(const void *data,
@@ -1647,7 +1647,7 @@ _eet_data_image_decode_inside(const void *data,
1647 abort(); 1647 abort();
1648 1648
1649 return 1; 1649 return 1;
1650} /* _eet_data_image_decode_inside */ 1650}
1651 1651
1652EAPI void * 1652EAPI void *
1653eet_data_image_decode_cipher(const void *data, 1653eet_data_image_decode_cipher(const void *data,
@@ -1714,7 +1714,7 @@ eet_data_image_decode_cipher(const void *data,
1714 *lossy = ilossy; 1714 *lossy = ilossy;
1715 1715
1716 return d; 1716 return d;
1717} /* eet_data_image_decode_cipher */ 1717}
1718 1718
1719EAPI void * 1719EAPI void *
1720eet_data_image_decode(const void *data, 1720eet_data_image_decode(const void *data,
@@ -1728,7 +1728,7 @@ eet_data_image_decode(const void *data,
1728{ 1728{
1729 return eet_data_image_decode_cipher(data, NULL, size, w, h, 1729 return eet_data_image_decode_cipher(data, NULL, size, w, h,
1730 alpha, comp, quality, lossy); 1730 alpha, comp, quality, lossy);
1731} /* eet_data_image_decode */ 1731}
1732 1732
1733EAPI int 1733EAPI int
1734eet_data_image_decode_to_surface_cipher(const void *data, 1734eet_data_image_decode_to_surface_cipher(const void *data,
@@ -1795,7 +1795,7 @@ eet_data_image_decode_to_surface_cipher(const void *data,
1795 *lossy = ilossy; 1795 *lossy = ilossy;
1796 1796
1797 return 1; 1797 return 1;
1798} /* eet_data_image_decode_to_surface_cipher */ 1798}
1799 1799
1800EAPI int 1800EAPI int
1801eet_data_image_decode_to_surface(const void *data, 1801eet_data_image_decode_to_surface(const void *data,
@@ -1816,5 +1816,5 @@ eet_data_image_decode_to_surface(const void *data,
1816 w, h, row_stride, 1816 w, h, row_stride,
1817 alpha, comp, quality, 1817 alpha, comp, quality,
1818 lossy); 1818 lossy);
1819} /* eet_data_image_decode_to_surface */ 1819}
1820 1820
diff --git a/libraries/eet/src/lib/eet_lib.c b/libraries/eet/src/lib/eet_lib.c
index a0d6435..04feebe 100644
--- a/libraries/eet/src/lib/eet_lib.c
+++ b/libraries/eet/src/lib/eet_lib.c
@@ -82,126 +82,6 @@ EAPI Eet_Version *eet_version = &_version;
82 82
83#define EET_MAGIC_FILE2 0x1ee70f42 83#define EET_MAGIC_FILE2 0x1ee70f42
84 84
85typedef struct _Eet_File_Header Eet_File_Header;
86typedef struct _Eet_File_Node Eet_File_Node;
87typedef struct _Eet_File_Directory Eet_File_Directory;
88
89struct _Eet_File
90{
91 char *path;
92 Eina_File *readfp;
93 Eet_File_Header *header;
94 Eet_Dictionary *ed;
95 Eet_Key *key;
96 const unsigned char *data;
97 const void *x509_der;
98 const void *signature;
99 void *sha1;
100
101 Eet_File_Mode mode;
102
103 int magic;
104 int references;
105
106 unsigned long int data_size;
107 int x509_length;
108 unsigned int signature_length;
109 int sha1_length;
110
111 Eina_Lock file_lock;
112
113 unsigned char writes_pending : 1;
114 unsigned char delete_me_now : 1;
115};
116
117struct _Eet_File_Header
118{
119 int magic;
120 Eet_File_Directory *directory;
121};
122
123struct _Eet_File_Directory
124{
125 int size;
126 Eet_File_Node **nodes;
127};
128
129struct _Eet_File_Node
130{
131 char *name;
132 void *data;
133 Eet_File_Node *next; /* FIXME: make buckets linked lists */
134
135 unsigned long int offset;
136 unsigned long int dictionary_offset;
137 unsigned long int name_offset;
138
139 unsigned int name_size;
140 unsigned int size;
141 unsigned int data_size;
142
143 unsigned char free_name : 1;
144 unsigned char compression : 1;
145 unsigned char ciphered : 1;
146 unsigned char alias : 1;
147};
148
149#if 0
150/* Version 2 */
151/* NB: all int's are stored in network byte order on disk */
152/* file format: */
153int magic; /* magic number ie 0x1ee7ff00 */
154int num_directory_entries; /* number of directory entries to follow */
155int bytes_directory_entries; /* bytes of directory entries to follow */
156struct
157{
158 int offset; /* bytes offset into file for data chunk */
159 int flags; /* flags - for now 0 = uncompressed and clear, 1 = compressed and clear, 2 = uncompressed and ciphered, 3 = compressed and ciphered */
160 int size; /* size of the data chunk */
161 int data_size; /* size of the (uncompressed) data chunk */
162 int name_size; /* length in bytes of the name field */
163 char name[name_size]; /* name string (variable length) and \0 terminated */
164} directory[num_directory_entries];
165/* and now startes the data stream... */
166#endif /* if 0 */
167
168#if 0
169/* Version 3 */
170/* NB: all int's are stored in network byte order on disk */
171/* file format: */
172int magic; /* magic number ie 0x1ee70f42 */
173int num_directory_entries; /* number of directory entries to follow */
174int num_dictionary_entries; /* number of dictionary entries to follow */
175struct
176{
177 int data_offset; /* bytes offset into file for data chunk */
178 int size; /* size of the data chunk */
179 int data_size; /* size of the (uncompressed) data chunk */
180 int name_offset; /* bytes offset into file for name string */
181 int name_size; /* length in bytes of the name field */
182 int flags; /* bit flags - for now:
183 bit 0 => compresion on/off
184 bit 1 => ciphered on/off
185 bit 2 => alias
186 */
187} directory[num_directory_entries];
188struct
189{
190 int hash;
191 int offset;
192 int size;
193 int prev;
194 int next;
195} dictionary[num_dictionary_entries];
196/* now start the string stream. */
197/* and right after them the data stream. */
198int magic_sign; /* Optional, only if the eet file is signed. */
199int signature_length; /* Signature length. */
200int x509_length; /* Public certificate that signed the file. */
201char signature[signature_length]; /* The signature. */
202char x509[x509_length]; /* The public certificate. */
203#endif /* if 0 */
204
205#define EET_FILE2_HEADER_COUNT 3 85#define EET_FILE2_HEADER_COUNT 3
206#define EET_FILE2_DIRECTORY_ENTRY_COUNT 6 86#define EET_FILE2_DIRECTORY_ENTRY_COUNT 6
207#define EET_FILE2_DICTIONARY_ENTRY_COUNT 5 87#define EET_FILE2_DICTIONARY_ENTRY_COUNT 5
@@ -280,7 +160,7 @@ eet_check_pointer(const Eet_File *ef)
280 return 1; 160 return 1;
281 161
282 return 0; 162 return 0;
283} /* eet_check_pointer */ 163}
284 164
285static inline int 165static inline int
286eet_check_header(const Eet_File *ef) 166eet_check_header(const Eet_File *ef)
@@ -292,7 +172,7 @@ eet_check_header(const Eet_File *ef)
292 return 1; 172 return 1;
293 173
294 return 0; 174 return 0;
295} /* eet_check_header */ 175}
296 176
297static inline int 177static inline int
298eet_test_close(int test, 178eet_test_close(int test,
@@ -305,7 +185,7 @@ eet_test_close(int test,
305 } 185 }
306 186
307 return test; 187 return test;
308} /* eet_test_close */ 188}
309 189
310/* find an eet file in the currently in use cache */ 190/* find an eet file in the currently in use cache */
311static Eet_File * 191static Eet_File *
@@ -326,7 +206,7 @@ eet_cache_find(const char *path,
326 206
327 /* not found */ 207 /* not found */
328 return NULL; 208 return NULL;
329} /* eet_cache_find */ 209}
330 210
331/* add to end of cache */ 211/* add to end of cache */
332/* this should only be called when the cache lock is already held */ 212/* this should only be called when the cache lock is already held */
@@ -382,7 +262,7 @@ eet_cache_add(Eet_File *ef,
382 *cache = new_cache; 262 *cache = new_cache;
383 *cache_num = new_cache_num; 263 *cache_num = new_cache_num;
384 *cache_alloc = new_cache_alloc; 264 *cache_alloc = new_cache_alloc;
385} /* eet_cache_add */ 265}
386 266
387/* delete from cache */ 267/* delete from cache */
388/* this should only be called when the cache lock is already held */ 268/* this should only be called when the cache lock is already held */
@@ -437,7 +317,7 @@ eet_cache_del(Eet_File *ef,
437 *cache = new_cache; 317 *cache = new_cache;
438 *cache_num = new_cache_num; 318 *cache_num = new_cache_num;
439 *cache_alloc = new_cache_alloc; 319 *cache_alloc = new_cache_alloc;
440} /* eet_cache_del */ 320}
441 321
442/* internal string match. null friendly, catches same ptr */ 322/* internal string match. null friendly, catches same ptr */
443static int 323static int
@@ -452,7 +332,7 @@ eet_string_match(const char *s1,
452 return 1; 332 return 1;
453 333
454 return !strcmp(s1, s2); 334 return !strcmp(s1, s2);
455} /* eet_string_match */ 335}
456 336
457/* flush out writes to a v2 eet file */ 337/* flush out writes to a v2 eet file */
458static Eet_Error 338static Eet_Error
@@ -494,7 +374,7 @@ eet_flush2(Eet_File *ef)
494 if (!fp) 374 if (!fp)
495 return EET_ERROR_NOT_WRITABLE; 375 return EET_ERROR_NOT_WRITABLE;
496 376
497 fcntl(fileno(fp), F_SETFD, FD_CLOEXEC); 377 fcntl(fd, F_SETFD, FD_CLOEXEC);
498 } 378 }
499 else 379 else
500 return EET_ERROR_NOT_WRITABLE; 380 return EET_ERROR_NOT_WRITABLE;
@@ -627,14 +507,6 @@ eet_flush2(Eet_File *ef)
627 507
628 /* flush all write to the file. */ 508 /* flush all write to the file. */
629 fflush(fp); 509 fflush(fp);
630// this is going to really cause trouble. if ANYTHING this needs to go into a
631// thread spawned off - but even then...
632// in this case... ext4 is "wrong". (yes we can jump up and down and point posix
633// manual pages at eachother, but ext4 broke behavior that has been in place
634// for decades and that 1000's of apps rely on daily - that is that one operation
635// to disk is committed to disk BEFORE following operations, so the fs retains
636// a consistent state
637// fsync(fileno(fp));
638 510
639 /* append signature if required */ 511 /* append signature if required */
640 if (ef->key) 512 if (ef->key)
@@ -665,13 +537,13 @@ write_error:
665 case EPIPE: error = EET_ERROR_WRITE_ERROR_FILE_CLOSED; break; 537 case EPIPE: error = EET_ERROR_WRITE_ERROR_FILE_CLOSED; break;
666 538
667 default: error = EET_ERROR_WRITE_ERROR; break; 539 default: error = EET_ERROR_WRITE_ERROR; break;
668 } /* switch */ 540 }
669 } 541 }
670 542
671sign_error: 543sign_error:
672 fclose(fp); 544 fclose(fp);
673 return error; 545 return error;
674} /* eet_flush2 */ 546}
675 547
676EAPI int 548EAPI int
677eet_init(void) 549eet_init(void)
@@ -680,10 +552,7 @@ eet_init(void)
680 return eet_init_count; 552 return eet_init_count;
681 553
682 if (!eina_init()) 554 if (!eina_init())
683 { 555 return --eet_init_count;
684 fprintf(stderr, "Eet: Eina init failed");
685 return --eet_init_count;
686 }
687 556
688 _eet_log_dom_global = eina_log_domain_register("eet", EET_DEFAULT_LOG_COLOR); 557 _eet_log_dom_global = eina_log_domain_register("eet", EET_DEFAULT_LOG_COLOR);
689 if (_eet_log_dom_global < 0) 558 if (_eet_log_dom_global < 0)
@@ -694,12 +563,18 @@ eet_init(void)
694 563
695 eina_lock_new(&eet_cache_lock); 564 eina_lock_new(&eet_cache_lock);
696 565
697 if (!eet_node_init()) 566 if (!eet_mempool_init())
698 { 567 {
699 EINA_LOG_ERR("Eet: Eet_Node mempool creation failed"); 568 EINA_LOG_ERR("Eet: Eet_Node mempool creation failed");
700 goto unregister_log_domain; 569 goto unregister_log_domain;
701 } 570 }
702 571
572 if (!eet_node_init())
573 {
574 EINA_LOG_ERR("Eet: Eet_Node mempool creation failed");
575 goto shutdown_mempool;
576 }
577
703#ifdef HAVE_GNUTLS 578#ifdef HAVE_GNUTLS
704 /* Before the library can be used, it must initialize itself if needed. */ 579 /* Before the library can be used, it must initialize itself if needed. */
705 if (gcry_control(GCRYCTL_ANY_INITIALIZATION_P) == 0) 580 if (gcry_control(GCRYCTL_ANY_INITIALIZATION_P) == 0)
@@ -741,13 +616,15 @@ eet_init(void)
741shutdown_eet: 616shutdown_eet:
742#endif 617#endif
743 eet_node_shutdown(); 618 eet_node_shutdown();
619shutdown_mempool:
620 eet_mempool_shutdown();
744unregister_log_domain: 621unregister_log_domain:
745 eina_log_domain_unregister(_eet_log_dom_global); 622 eina_log_domain_unregister(_eet_log_dom_global);
746 _eet_log_dom_global = -1; 623 _eet_log_dom_global = -1;
747shutdown_eina: 624shutdown_eina:
748 eina_shutdown(); 625 eina_shutdown();
749 return --eet_init_count; 626 return --eet_init_count;
750} /* eet_init */ 627}
751 628
752EAPI int 629EAPI int
753eet_shutdown(void) 630eet_shutdown(void)
@@ -757,6 +634,7 @@ eet_shutdown(void)
757 634
758 eet_clearcache(); 635 eet_clearcache();
759 eet_node_shutdown(); 636 eet_node_shutdown();
637 eet_mempool_shutdown();
760 638
761 eina_lock_free(&eet_cache_lock); 639 eina_lock_free(&eet_cache_lock);
762 640
@@ -772,7 +650,7 @@ eet_shutdown(void)
772 eina_shutdown(); 650 eina_shutdown();
773 651
774 return eet_init_count; 652 return eet_init_count;
775} /* eet_shutdown */ 653}
776 654
777EAPI Eet_Error 655EAPI Eet_Error
778eet_sync(Eet_File *ef) 656eet_sync(Eet_File *ef)
@@ -795,7 +673,7 @@ eet_sync(Eet_File *ef)
795 673
796 UNLOCK_FILE(ef); 674 UNLOCK_FILE(ef);
797 return ret; 675 return ret;
798} /* eet_sync */ 676}
799 677
800EAPI void 678EAPI void
801eet_clearcache(void) 679eet_clearcache(void)
@@ -853,7 +731,7 @@ eet_clearcache(void)
853 } 731 }
854 732
855 UNLOCK_CACHE; 733 UNLOCK_CACHE;
856} /* eet_clearcache */ 734}
857 735
858/* FIXME: MMAP race condition in READ_WRITE_MODE */ 736/* FIXME: MMAP race condition in READ_WRITE_MODE */
859static Eet_File * 737static Eet_File *
@@ -902,14 +780,14 @@ eet_internal_read2(Eet_File *ef)
902 return NULL; 780 return NULL;
903 781
904 /* allocate header */ 782 /* allocate header */
905 ef->header = calloc(1, sizeof(Eet_File_Header)); 783 ef->header = eet_file_header_calloc(1);
906 if (eet_test_close(!ef->header, ef)) 784 if (eet_test_close(!ef->header, ef))
907 return NULL; 785 return NULL;
908 786
909 ef->header->magic = EET_MAGIC_FILE_HEADER; 787 ef->header->magic = EET_MAGIC_FILE_HEADER;
910 788
911 /* allocate directory block in ram */ 789 /* allocate directory block in ram */
912 ef->header->directory = calloc(1, sizeof(Eet_File_Directory)); 790 ef->header->directory = eet_file_directory_calloc(1);
913 if (eet_test_close(!ef->header->directory, ef)) 791 if (eet_test_close(!ef->header->directory, ef))
914 return NULL; 792 return NULL;
915 793
@@ -939,10 +817,10 @@ eet_internal_read2(Eet_File *ef)
939 817
940 /* out directory block is inconsistent - we have overrun our */ 818 /* out directory block is inconsistent - we have overrun our */
941 /* dynamic block buffer before we finished scanning dir entries */ 819 /* dynamic block buffer before we finished scanning dir entries */
942 efn = malloc(sizeof(Eet_File_Node)); 820 efn = eet_file_node_malloc(1);
943 if (eet_test_close(!efn, ef)) 821 if (eet_test_close(!efn, ef))
944 { 822 {
945 if (efn) free(efn); /* yes i know - we only get here if 823 if (efn) eet_file_node_mp_free(efn); /* yes i know - we only get here if
946 * efn is null/0 -> trying to shut up 824 * efn is null/0 -> trying to shut up
947 * warning tools like cppcheck */ 825 * warning tools like cppcheck */
948 return NULL; 826 return NULL;
@@ -963,7 +841,7 @@ eet_internal_read2(Eet_File *ef)
963#define EFN_TEST(Test, Ef, Efn) \ 841#define EFN_TEST(Test, Ef, Efn) \
964 if (eet_test_close(Test, Ef)) \ 842 if (eet_test_close(Test, Ef)) \
965 { \ 843 { \
966 free(Efn); \ 844 eet_file_node_mp_free(Efn); \
967 return NULL; \ 845 return NULL; \
968 } 846 }
969 847
@@ -1022,11 +900,11 @@ eet_internal_read2(Eet_File *ef)
1022 ef)) 900 ef))
1023 return NULL; 901 return NULL;
1024 902
1025 ef->ed = calloc(1, sizeof (Eet_Dictionary)); 903 ef->ed = eet_dictionary_calloc(1);
1026 if (eet_test_close(!ef->ed, ef)) 904 if (eet_test_close(!ef->ed, ef))
1027 return NULL; 905 return NULL;
1028 906
1029 ef->ed->all = calloc(num_dictionary_entries, sizeof (Eet_String)); 907 ef->ed->all = calloc(1, num_dictionary_entries * sizeof(Eet_String));
1030 if (eet_test_close(!ef->ed->all, ef)) 908 if (eet_test_close(!ef->ed->all, ef))
1031 return NULL; 909 return NULL;
1032 910
@@ -1112,7 +990,7 @@ eet_internal_read2(Eet_File *ef)
1112 } 990 }
1113 991
1114 return ef; 992 return ef;
1115} /* eet_internal_read2 */ 993}
1116 994
1117#if EET_OLD_EET_FILE_FORMAT 995#if EET_OLD_EET_FILE_FORMAT
1118static Eet_File * 996static Eet_File *
@@ -1162,14 +1040,14 @@ eet_internal_read1(Eet_File *ef)
1162 return NULL; 1040 return NULL;
1163 1041
1164 /* allocate header */ 1042 /* allocate header */
1165 ef->header = calloc(1, sizeof(Eet_File_Header)); 1043 ef->header = eet_file_header_calloc(1);
1166 if (eet_test_close(!ef->header, ef)) 1044 if (eet_test_close(!ef->header, ef))
1167 return NULL; 1045 return NULL;
1168 1046
1169 ef->header->magic = EET_MAGIC_FILE_HEADER; 1047 ef->header->magic = EET_MAGIC_FILE_HEADER;
1170 1048
1171 /* allocate directory block in ram */ 1049 /* allocate directory block in ram */
1172 ef->header->directory = calloc(1, sizeof(Eet_File_Directory)); 1050 ef->header->directory = eet_file_directory_calloc(1);
1173 if (eet_test_close(!ef->header->directory, ef)) 1051 if (eet_test_close(!ef->header->directory, ef))
1174 return NULL; 1052 return NULL;
1175 1053
@@ -1204,10 +1082,10 @@ eet_internal_read1(Eet_File *ef)
1204 return NULL; 1082 return NULL;
1205 1083
1206 /* allocate all the ram needed for this stored node accounting */ 1084 /* allocate all the ram needed for this stored node accounting */
1207 efn = malloc (sizeof(Eet_File_Node)); 1085 efn = eet_file_node_malloc(1);
1208 if (eet_test_close(!efn, ef)) 1086 if (eet_test_close(!efn, ef))
1209 { 1087 {
1210 if (efn) free(efn); /* yes i know - we only get here if 1088 if (efn) eet_file_node_mp_free(efn); /* yes i know - we only get here if
1211 * efn is null/0 -> trying to shut up 1089 * efn is null/0 -> trying to shut up
1212 * warning tools like cppcheck */ 1090 * warning tools like cppcheck */
1213 return NULL; 1091 return NULL;
@@ -1227,21 +1105,21 @@ eet_internal_read1(Eet_File *ef)
1227 /* invalid size */ 1105 /* invalid size */
1228 if (eet_test_close(efn->size <= 0, ef)) 1106 if (eet_test_close(efn->size <= 0, ef))
1229 { 1107 {
1230 free(efn); 1108 eet_file_node_mp_free(efn);
1231 return NULL; 1109 return NULL;
1232 } 1110 }
1233 1111
1234 /* invalid name_size */ 1112 /* invalid name_size */
1235 if (eet_test_close(name_size <= 0, ef)) 1113 if (eet_test_close(name_size <= 0, ef))
1236 { 1114 {
1237 free(efn); 1115 eet_file_node_mp_free(efn);
1238 return NULL; 1116 return NULL;
1239 } 1117 }
1240 1118
1241 /* reading name would mean falling off end of dyn_buf - invalid */ 1119 /* reading name would mean falling off end of dyn_buf - invalid */
1242 if (eet_test_close((p + 16 + name_size) > (dyn_buf + byte_entries), ef)) 1120 if (eet_test_close((p + 16 + name_size) > (dyn_buf + byte_entries), ef))
1243 { 1121 {
1244 free(efn); 1122 eet_file_node_mp_free(efn);
1245 return NULL; 1123 return NULL;
1246 } 1124 }
1247 1125
@@ -1257,7 +1135,7 @@ eet_internal_read1(Eet_File *ef)
1257 efn->name = malloc(sizeof(char) * name_size + 1); 1135 efn->name = malloc(sizeof(char) * name_size + 1);
1258 if (eet_test_close(!efn->name, ef)) 1136 if (eet_test_close(!efn->name, ef))
1259 { 1137 {
1260 free(efn); 1138 eet_file_node_mp_free(efn);
1261 return NULL; 1139 return NULL;
1262 } 1140 }
1263 1141
@@ -1294,7 +1172,7 @@ eet_internal_read1(Eet_File *ef)
1294 p += HEADER_SIZE + name_size; 1172 p += HEADER_SIZE + name_size;
1295 } 1173 }
1296 return ef; 1174 return ef;
1297} /* eet_internal_read1 */ 1175}
1298 1176
1299#endif /* if EET_OLD_EET_FILE_FORMAT */ 1177#endif /* if EET_OLD_EET_FILE_FORMAT */
1300 1178
@@ -1329,10 +1207,10 @@ eet_internal_read(Eet_File *ef)
1329 ef->delete_me_now = 1; 1207 ef->delete_me_now = 1;
1330 eet_internal_close(ef, EINA_TRUE); 1208 eet_internal_close(ef, EINA_TRUE);
1331 break; 1209 break;
1332 } /* switch */ 1210 }
1333 1211
1334 return NULL; 1212 return NULL;
1335} /* eet_internal_read */ 1213}
1336 1214
1337static Eet_Error 1215static Eet_Error
1338eet_internal_close(Eet_File *ef, 1216eet_internal_close(Eet_File *ef,
@@ -1405,16 +1283,16 @@ eet_internal_close(Eet_File *ef,
1405 if (efn->free_name) 1283 if (efn->free_name)
1406 free(efn->name); 1284 free(efn->name);
1407 1285
1408 free(efn); 1286 eet_file_node_mp_free(efn);
1409 } 1287 }
1410 } 1288 }
1411 free(ef->header->directory->nodes); 1289 free(ef->header->directory->nodes);
1412 } 1290 }
1413 1291
1414 free(ef->header->directory); 1292 eet_file_directory_mp_free(ef->header->directory);
1415 } 1293 }
1416 1294
1417 free(ef->header); 1295 eet_file_header_mp_free(ef->header);
1418 } 1296 }
1419 1297
1420 eet_dictionary_free(ef->ed); 1298 eet_dictionary_free(ef->ed);
@@ -1434,7 +1312,8 @@ eet_internal_close(Eet_File *ef,
1434 memset(ef, 0, sizeof(Eet_File)); 1312 memset(ef, 0, sizeof(Eet_File));
1435 1313
1436 /* free it */ 1314 /* free it */
1437 free(ef); 1315 eina_stringshare_del(ef->path);
1316 eet_file_mp_free(ef);
1438 return err; 1317 return err;
1439 1318
1440on_error: 1319on_error:
@@ -1442,7 +1321,7 @@ on_error:
1442 UNLOCK_CACHE; 1321 UNLOCK_CACHE;
1443 1322
1444 return EET_ERROR_NONE; 1323 return EET_ERROR_NONE;
1445} /* eet_internal_close */ 1324}
1446 1325
1447EAPI Eet_File * 1326EAPI Eet_File *
1448eet_memopen_read(const void *data, 1327eet_memopen_read(const void *data,
@@ -1453,7 +1332,7 @@ eet_memopen_read(const void *data,
1453 if (!data || size == 0) 1332 if (!data || size == 0)
1454 return NULL; 1333 return NULL;
1455 1334
1456 ef = malloc (sizeof (Eet_File)); 1335 ef = eet_file_malloc(1);
1457 if (!ef) 1336 if (!ef)
1458 return NULL; 1337 return NULL;
1459 1338
@@ -1477,7 +1356,14 @@ eet_memopen_read(const void *data,
1477 ef = eet_internal_read(ef); 1356 ef = eet_internal_read(ef);
1478 UNLOCK_CACHE; 1357 UNLOCK_CACHE;
1479 return ef; 1358 return ef;
1480} /* eet_memopen_read */ 1359}
1360
1361EAPI const char *
1362eet_file_get(Eet_File *ef)
1363{
1364 if (eet_check_pointer(ef)) return NULL;
1365 return ef->path;
1366}
1481 1367
1482EAPI Eet_File * 1368EAPI Eet_File *
1483eet_open(const char *file, 1369eet_open(const char *file,
@@ -1578,7 +1464,7 @@ open_error:
1578 file_len = strlen(file) + 1; 1464 file_len = strlen(file) + 1;
1579 1465
1580 /* Allocate struct for eet file and have it zero'd out */ 1466 /* Allocate struct for eet file and have it zero'd out */
1581 ef = malloc(sizeof(Eet_File) + file_len); 1467 ef = eet_file_malloc(1);
1582 if (!ef) 1468 if (!ef)
1583 goto on_error; 1469 goto on_error;
1584 1470
@@ -1586,8 +1472,7 @@ open_error:
1586 INIT_FILE(ef); 1472 INIT_FILE(ef);
1587 ef->key = NULL; 1473 ef->key = NULL;
1588 ef->readfp = fp; 1474 ef->readfp = fp;
1589 ef->path = ((char *)ef) + sizeof(Eet_File); 1475 ef->path = eina_stringshare_add_length(file, file_len);
1590 memcpy(ef->path, file, file_len);
1591 ef->magic = EET_MAGIC_FILE; 1476 ef->magic = EET_MAGIC_FILE;
1592 ef->references = 1; 1477 ef->references = 1;
1593 ef->mode = mode; 1478 ef->mode = mode;
@@ -1641,7 +1526,7 @@ empty_file:
1641on_error: 1526on_error:
1642 UNLOCK_CACHE; 1527 UNLOCK_CACHE;
1643 return NULL; 1528 return NULL;
1644} /* eet_open */ 1529}
1645 1530
1646EAPI Eet_File_Mode 1531EAPI Eet_File_Mode
1647eet_mode_get(Eet_File *ef) 1532eet_mode_get(Eet_File *ef)
@@ -1651,7 +1536,7 @@ eet_mode_get(Eet_File *ef)
1651 return EET_FILE_MODE_INVALID; 1536 return EET_FILE_MODE_INVALID;
1652 else 1537 else
1653 return ef->mode; 1538 return ef->mode;
1654} /* eet_mode_get */ 1539}
1655 1540
1656EAPI const void * 1541EAPI const void *
1657eet_identity_x509(Eet_File *ef, 1542eet_identity_x509(Eet_File *ef,
@@ -1664,7 +1549,7 @@ eet_identity_x509(Eet_File *ef,
1664 *der_length = ef->x509_length; 1549 *der_length = ef->x509_length;
1665 1550
1666 return ef->x509_der; 1551 return ef->x509_der;
1667} /* eet_identity_x509 */ 1552}
1668 1553
1669EAPI const void * 1554EAPI const void *
1670eet_identity_signature(Eet_File *ef, 1555eet_identity_signature(Eet_File *ef,
@@ -1677,7 +1562,7 @@ eet_identity_signature(Eet_File *ef,
1677 *signature_length = ef->signature_length; 1562 *signature_length = ef->signature_length;
1678 1563
1679 return ef->signature; 1564 return ef->signature;
1680} /* eet_identity_signature */ 1565}
1681 1566
1682EAPI const void * 1567EAPI const void *
1683eet_identity_sha1(Eet_File *ef, 1568eet_identity_sha1(Eet_File *ef,
@@ -1692,7 +1577,7 @@ eet_identity_sha1(Eet_File *ef,
1692 *sha1_length = ef->sha1_length; 1577 *sha1_length = ef->sha1_length;
1693 1578
1694 return ef->sha1; 1579 return ef->sha1;
1695} /* eet_identity_sha1 */ 1580}
1696 1581
1697EAPI Eet_Error 1582EAPI Eet_Error
1698eet_identity_set(Eet_File *ef, 1583eet_identity_set(Eet_File *ef,
@@ -1712,13 +1597,13 @@ eet_identity_set(Eet_File *ef,
1712 ef->writes_pending = 1; 1597 ef->writes_pending = 1;
1713 1598
1714 return EET_ERROR_NONE; 1599 return EET_ERROR_NONE;
1715} /* eet_identity_set */ 1600}
1716 1601
1717EAPI Eet_Error 1602EAPI Eet_Error
1718eet_close(Eet_File *ef) 1603eet_close(Eet_File *ef)
1719{ 1604{
1720 return eet_internal_close(ef, EINA_FALSE); 1605 return eet_internal_close(ef, EINA_FALSE);
1721} /* eet_close */ 1606}
1722 1607
1723EAPI void * 1608EAPI void *
1724eet_read_cipher(Eet_File *ef, 1609eet_read_cipher(Eet_File *ef,
@@ -1889,7 +1774,7 @@ on_error:
1889 UNLOCK_FILE(ef); 1774 UNLOCK_FILE(ef);
1890 free(data); 1775 free(data);
1891 return NULL; 1776 return NULL;
1892} /* eet_read_cipher */ 1777}
1893 1778
1894EAPI void * 1779EAPI void *
1895eet_read(Eet_File *ef, 1780eet_read(Eet_File *ef,
@@ -1897,7 +1782,7 @@ eet_read(Eet_File *ef,
1897 int *size_ret) 1782 int *size_ret)
1898{ 1783{
1899 return eet_read_cipher(ef, name, size_ret, NULL); 1784 return eet_read_cipher(ef, name, size_ret, NULL);
1900} /* eet_read */ 1785}
1901 1786
1902EAPI const void * 1787EAPI const void *
1903eet_read_direct(Eet_File *ef, 1788eet_read_direct(Eet_File *ef,
@@ -1995,7 +1880,7 @@ eet_read_direct(Eet_File *ef,
1995on_error: 1880on_error:
1996 UNLOCK_FILE(ef); 1881 UNLOCK_FILE(ef);
1997 return NULL; 1882 return NULL;
1998} /* eet_read_direct */ 1883}
1999 1884
2000EAPI const char * 1885EAPI const char *
2001eet_alias_get(Eet_File *ef, 1886eet_alias_get(Eet_File *ef,
@@ -2102,16 +1987,16 @@ eet_alias(Eet_File *ef,
2102 if (!ef->header) 1987 if (!ef->header)
2103 { 1988 {
2104 /* allocate header */ 1989 /* allocate header */
2105 ef->header = calloc(1, sizeof(Eet_File_Header)); 1990 ef->header = eet_file_header_calloc(1);
2106 if (!ef->header) 1991 if (!ef->header)
2107 goto on_error; 1992 goto on_error;
2108 1993
2109 ef->header->magic = EET_MAGIC_FILE_HEADER; 1994 ef->header->magic = EET_MAGIC_FILE_HEADER;
2110 /* allocate directory block in ram */ 1995 /* allocate directory block in ram */
2111 ef->header->directory = calloc(1, sizeof(Eet_File_Directory)); 1996 ef->header->directory = eet_file_directory_calloc(1);
2112 if (!ef->header->directory) 1997 if (!ef->header->directory)
2113 { 1998 {
2114 free(ef->header); 1999 eet_file_header_mp_free(ef->header);
2115 ef->header = NULL; 2000 ef->header = NULL;
2116 goto on_error; 2001 goto on_error;
2117 } 2002 }
@@ -2124,7 +2009,7 @@ eet_alias(Eet_File *ef,
2124 (1 << ef->header->directory->size)); 2009 (1 << ef->header->directory->size));
2125 if (!ef->header->directory->nodes) 2010 if (!ef->header->directory->nodes)
2126 { 2011 {
2127 free(ef->header->directory); 2012 eet_file_directory_mp_free(ef->header->directory);
2128 ef->header = NULL; 2013 ef->header = NULL;
2129 goto on_error; 2014 goto on_error;
2130 } 2015 }
@@ -2198,7 +2083,7 @@ eet_alias(Eet_File *ef,
2198 } 2083 }
2199 if (!exists_already) 2084 if (!exists_already)
2200 { 2085 {
2201 efn = malloc(sizeof(Eet_File_Node)); 2086 efn = eet_file_node_malloc(1);
2202 if (!efn) 2087 if (!efn)
2203 { 2088 {
2204 free(data2); 2089 free(data2);
@@ -2230,7 +2115,7 @@ eet_alias(Eet_File *ef,
2230on_error: 2115on_error:
2231 UNLOCK_FILE(ef); 2116 UNLOCK_FILE(ef);
2232 return EINA_FALSE; 2117 return EINA_FALSE;
2233} /* eet_alias */ 2118}
2234 2119
2235EAPI int 2120EAPI int
2236eet_write_cipher(Eet_File *ef, 2121eet_write_cipher(Eet_File *ef,
@@ -2262,16 +2147,16 @@ eet_write_cipher(Eet_File *ef,
2262 if (!ef->header) 2147 if (!ef->header)
2263 { 2148 {
2264 /* allocate header */ 2149 /* allocate header */
2265 ef->header = calloc(1, sizeof(Eet_File_Header)); 2150 ef->header = eet_file_header_calloc(1);
2266 if (!ef->header) 2151 if (!ef->header)
2267 goto on_error; 2152 goto on_error;
2268 2153
2269 ef->header->magic = EET_MAGIC_FILE_HEADER; 2154 ef->header->magic = EET_MAGIC_FILE_HEADER;
2270 /* allocate directory block in ram */ 2155 /* allocate directory block in ram */
2271 ef->header->directory = calloc(1, sizeof(Eet_File_Directory)); 2156 ef->header->directory = eet_file_directory_calloc(1);
2272 if (!ef->header->directory) 2157 if (!ef->header->directory)
2273 { 2158 {
2274 free(ef->header); 2159 eet_file_header_mp_free(ef->header);
2275 ef->header = NULL; 2160 ef->header = NULL;
2276 goto on_error; 2161 goto on_error;
2277 } 2162 }
@@ -2284,7 +2169,7 @@ eet_write_cipher(Eet_File *ef,
2284 (1 << ef->header->directory->size)); 2169 (1 << ef->header->directory->size));
2285 if (!ef->header->directory->nodes) 2170 if (!ef->header->directory->nodes)
2286 { 2171 {
2287 free(ef->header->directory); 2172 eet_file_directory_mp_free(ef->header->directory);
2288 ef->header = NULL; 2173 ef->header = NULL;
2289 goto on_error; 2174 goto on_error;
2290 } 2175 }
@@ -2382,7 +2267,7 @@ eet_write_cipher(Eet_File *ef,
2382 } 2267 }
2383 if (!exists_already) 2268 if (!exists_already)
2384 { 2269 {
2385 efn = malloc(sizeof(Eet_File_Node)); 2270 efn = eet_file_node_malloc(1);
2386 if (!efn) 2271 if (!efn)
2387 { 2272 {
2388 free(data2); 2273 free(data2);
@@ -2413,7 +2298,7 @@ eet_write_cipher(Eet_File *ef,
2413on_error: 2298on_error:
2414 UNLOCK_FILE(ef); 2299 UNLOCK_FILE(ef);
2415 return 0; 2300 return 0;
2416} /* eet_write_cipher */ 2301}
2417 2302
2418EAPI int 2303EAPI int
2419eet_write(Eet_File *ef, 2304eet_write(Eet_File *ef,
@@ -2423,7 +2308,7 @@ eet_write(Eet_File *ef,
2423 int comp) 2308 int comp)
2424{ 2309{
2425 return eet_write_cipher(ef, name, data, size, comp, NULL); 2310 return eet_write_cipher(ef, name, data, size, comp, NULL);
2426} /* eet_write */ 2311}
2427 2312
2428EAPI int 2313EAPI int
2429eet_delete(Eet_File *ef, 2314eet_delete(Eet_File *ef,
@@ -2472,7 +2357,7 @@ eet_delete(Eet_File *ef,
2472 if (efn->free_name) 2357 if (efn->free_name)
2473 free(efn->name); 2358 free(efn->name);
2474 2359
2475 free(efn); 2360 eet_file_node_mp_free(efn);
2476 exists_already = 1; 2361 exists_already = 1;
2477 break; 2362 break;
2478 } 2363 }
@@ -2485,7 +2370,7 @@ eet_delete(Eet_File *ef,
2485 2370
2486 /* update access time */ 2371 /* update access time */
2487 return exists_already; 2372 return exists_already;
2488} /* eet_delete */ 2373}
2489 2374
2490EAPI Eet_Dictionary * 2375EAPI Eet_Dictionary *
2491eet_dictionary_get(Eet_File *ef) 2376eet_dictionary_get(Eet_File *ef)
@@ -2494,7 +2379,7 @@ eet_dictionary_get(Eet_File *ef)
2494 return NULL; 2379 return NULL;
2495 2380
2496 return ef->ed; 2381 return ef->ed;
2497} /* eet_dictionary_get */ 2382}
2498 2383
2499EAPI char ** 2384EAPI char **
2500eet_list(Eet_File *ef, 2385eet_list(Eet_File *ef,
@@ -2578,7 +2463,7 @@ on_error:
2578 *count_ret = 0; 2463 *count_ret = 0;
2579 2464
2580 return NULL; 2465 return NULL;
2581} /* eet_list */ 2466}
2582 2467
2583EAPI int 2468EAPI int
2584eet_num_entries(Eet_File *ef) 2469eet_num_entries(Eet_File *ef)
@@ -2605,7 +2490,7 @@ eet_num_entries(Eet_File *ef)
2605 UNLOCK_FILE(ef); 2490 UNLOCK_FILE(ef);
2606 2491
2607 return ret; 2492 return ret;
2608} /* eet_num_entries */ 2493}
2609 2494
2610static Eet_File_Node * 2495static Eet_File_Node *
2611find_node_by_name(Eet_File *ef, 2496find_node_by_name(Eet_File *ef,
@@ -2624,7 +2509,7 @@ find_node_by_name(Eet_File *ef,
2624 } 2509 }
2625 2510
2626 return NULL; 2511 return NULL;
2627} /* find_node_by_name */ 2512}
2628 2513
2629static int 2514static int
2630read_data_from_disk(Eet_File *ef, 2515read_data_from_disk(Eet_File *ef,
@@ -2644,5 +2529,5 @@ read_data_from_disk(Eet_File *ef,
2644 memcpy(buf, ef->data + efn->offset, len); 2529 memcpy(buf, ef->data + efn->offset, len);
2645 2530
2646 return len; 2531 return len;
2647} /* read_data_from_disk */ 2532}
2648 2533
diff --git a/libraries/eet/src/lib/eet_node.c b/libraries/eet/src/lib/eet_node.c
index d90ef83..11d7cc0 100644
--- a/libraries/eet/src/lib/eet_node.c
+++ b/libraries/eet/src/lib/eet_node.c
@@ -27,13 +27,13 @@ eet_node_new(void)
27 27
28 memset(result, 0, sizeof (Eet_Node)); 28 memset(result, 0, sizeof (Eet_Node));
29 return result; 29 return result;
30} /* eet_node_new */ 30}
31 31
32void 32void
33eet_node_free(Eet_Node *node) 33eet_node_free(Eet_Node *node)
34{ 34{
35 eina_mempool_free(_eet_node_mp, node); 35 eina_mempool_free(_eet_node_mp, node);
36} /* eet_node_free */ 36}
37 37
38static Eet_Node * 38static Eet_Node *
39_eet_node_new(const char *name, 39_eet_node_new(const char *name,
@@ -49,7 +49,7 @@ _eet_node_new(const char *name,
49 n->name = eina_stringshare_add(name); 49 n->name = eina_stringshare_add(name);
50 50
51 return n; 51 return n;
52} /* _eet_node_new */ 52}
53 53
54static void 54static void
55_eet_node_append(Eet_Node *n, 55_eet_node_append(Eet_Node *n,
@@ -63,7 +63,7 @@ _eet_node_append(Eet_Node *n,
63 value->next = n->values; 63 value->next = n->values;
64 n->values = value; 64 n->values = value;
65 } 65 }
66} /* _eet_node_append */ 66}
67 67
68#define EET_NODE_NEW(Eet_type, Name, Value, Type) \ 68#define EET_NODE_NEW(Eet_type, Name, Value, Type) \
69 EAPI Eet_Node * \ 69 EAPI Eet_Node * \
@@ -133,7 +133,7 @@ eet_node_list_new(const char *name,
133 _eet_node_append(n, nodes); 133 _eet_node_append(n, nodes);
134 134
135 return n; 135 return n;
136} /* eet_node_list_new */ 136}
137 137
138Eet_Node * 138Eet_Node *
139eet_node_array_new(const char *name, 139eet_node_array_new(const char *name,
@@ -151,7 +151,7 @@ eet_node_array_new(const char *name,
151 _eet_node_append(n, nodes); 151 _eet_node_append(n, nodes);
152 152
153 return n; 153 return n;
154} /* eet_node_array_new */ 154}
155 155
156Eet_Node * 156Eet_Node *
157eet_node_var_array_new(const char *name, 157eet_node_var_array_new(const char *name,
@@ -168,7 +168,7 @@ eet_node_var_array_new(const char *name,
168 _eet_node_append(n, nodes); 168 _eet_node_append(n, nodes);
169 169
170 return n; 170 return n;
171} /* eet_node_var_array_new */ 171}
172 172
173Eet_Node * 173Eet_Node *
174eet_node_hash_new(const char *name, 174eet_node_hash_new(const char *name,
@@ -191,7 +191,7 @@ eet_node_hash_new(const char *name,
191 _eet_node_append(n, nodes); 191 _eet_node_append(n, nodes);
192 192
193 return n; 193 return n;
194} /* eet_node_hash_new */ 194}
195 195
196Eet_Node * 196Eet_Node *
197eet_node_struct_new(const char *name, 197eet_node_struct_new(const char *name,
@@ -206,7 +206,7 @@ eet_node_struct_new(const char *name,
206 _eet_node_append(n, nodes); 206 _eet_node_append(n, nodes);
207 207
208 return n; 208 return n;
209} /* eet_node_struct_new */ 209}
210 210
211Eet_Node * 211Eet_Node *
212eet_node_struct_child_new(const char *parent, 212eet_node_struct_child_new(const char *parent,
@@ -226,7 +226,7 @@ eet_node_struct_child_new(const char *parent,
226 _eet_node_append(n, eina_list_prepend(NULL, child)); 226 _eet_node_append(n, eina_list_prepend(NULL, child));
227 227
228 return n; 228 return n;
229} /* eet_node_struct_child_new */ 229}
230 230
231Eet_Node * 231Eet_Node *
232eet_node_children_get(Eet_Node *node) 232eet_node_children_get(Eet_Node *node)
@@ -289,7 +289,7 @@ eet_node_list_append(Eet_Node *parent,
289 parent->values = nn; 289 parent->values = nn;
290 290
291 eina_stringshare_del(tmp); 291 eina_stringshare_del(tmp);
292} /* eet_node_list_append */ 292}
293 293
294void 294void
295eet_node_struct_append(Eet_Node *parent, 295eet_node_struct_append(Eet_Node *parent,
@@ -338,7 +338,7 @@ eet_node_struct_append(Eet_Node *parent,
338 } 338 }
339 339
340 eina_stringshare_del(tmp); 340 eina_stringshare_del(tmp);
341} /* eet_node_struct_append */ 341}
342 342
343void 343void
344eet_node_hash_add(Eet_Node *parent, 344eet_node_hash_add(Eet_Node *parent,
@@ -356,7 +356,7 @@ eet_node_hash_add(Eet_Node *parent,
356 /* And add it to the parent. */ 356 /* And add it to the parent. */
357 nn->next = parent->values; 357 nn->next = parent->values;
358 parent->values = nn; 358 parent->values = nn;
359} /* eet_node_hash_add */ 359}
360 360
361int 361int
362eet_node_type_get(Eet_Node *node) 362eet_node_type_get(Eet_Node *node)
@@ -420,11 +420,11 @@ eet_node_del(Eet_Node *n)
420 case EET_T_USHORT: 420 case EET_T_USHORT:
421 case EET_T_UINT: 421 case EET_T_UINT:
422 break; 422 break;
423 } /* switch */ 423 }
424 424
425 eina_stringshare_del(n->name); 425 eina_stringshare_del(n->name);
426 eet_node_free(n); 426 eet_node_free(n);
427} /* eet_node_del */ 427}
428 428
429static const char *eet_node_dump_g_name[6] = { 429static const char *eet_node_dump_g_name[6] = {
430 "struct", 430 "struct",
@@ -458,7 +458,7 @@ eet_node_dump_level(int level,
458 int i; 458 int i;
459 459
460 for (i = 0; i < level; i++) dumpfunc(dumpdata, " "); 460 for (i = 0; i < level; i++) dumpfunc(dumpdata, " ");
461} /* eet_node_dump_level */ 461}
462 462
463static char * 463static char *
464eet_node_string_escape(const char *str) 464eet_node_string_escape(const char *str)
@@ -499,7 +499,7 @@ eet_node_string_escape(const char *str)
499 } 499 }
500 *sp = 0; 500 *sp = 0;
501 return s; 501 return s;
502} /* eet_node_string_escape */ 502}
503 503
504static void 504static void
505eet_node_dump_string_escape(void *dumpdata, 505eet_node_dump_string_escape(void *dumpdata,
@@ -514,7 +514,7 @@ eet_node_dump_string_escape(void *dumpdata,
514 514
515 dumpfunc(dumpdata, s); 515 dumpfunc(dumpdata, s);
516 free(s); 516 free(s);
517} /* eet_node_dump_string_escape */ 517}
518 518
519static void 519static void
520eet_node_dump_simple_type(Eet_Node *n, 520eet_node_dump_simple_type(Eet_Node *n,
@@ -578,10 +578,10 @@ case Eet_Type: \
578 default: 578 default:
579 dumpfunc(dumpdata, "???: ???"); 579 dumpfunc(dumpdata, "???: ???");
580 break; 580 break;
581 } /* switch */ 581 }
582 582
583 dumpfunc(dumpdata, ";\n"); 583 dumpfunc(dumpdata, ";\n");
584} /* eet_node_dump_simple_type */ 584}
585 585
586static void 586static void
587eet_node_dump_group_start(int level, 587eet_node_dump_group_start(int level,
@@ -602,7 +602,7 @@ eet_node_dump_group_start(int level,
602 602
603 dumpfunc(dumpdata, eet_node_dump_g_name[chnk_type - EET_G_UNKNOWN]); 603 dumpfunc(dumpdata, eet_node_dump_g_name[chnk_type - EET_G_UNKNOWN]);
604 dumpfunc(dumpdata, " {\n"); 604 dumpfunc(dumpdata, " {\n");
605} /* eet_node_dump_group_start */ 605}
606 606
607static void 607static void
608eet_node_dump_group_end(int level, 608eet_node_dump_group_end(int level,
@@ -611,7 +611,7 @@ eet_node_dump_group_end(int level,
611{ 611{
612 eet_node_dump_level(level, dumpfunc, dumpdata); 612 eet_node_dump_level(level, dumpfunc, dumpdata);
613 dumpfunc(dumpdata, "}\n"); 613 dumpfunc(dumpdata, "}\n");
614} /* eet_node_dump_group_end */ 614}
615 615
616void 616void
617eet_node_dump(Eet_Node *n, 617eet_node_dump(Eet_Node *n,
@@ -676,8 +676,8 @@ eet_node_dump(Eet_Node *n,
676 case EET_T_ULONG_LONG: 676 case EET_T_ULONG_LONG:
677 eet_node_dump_simple_type(n, dumplevel, dumpfunc, dumpdata); 677 eet_node_dump_simple_type(n, dumplevel, dumpfunc, dumpdata);
678 break; 678 break;
679 } /* switch */ 679 }
680} /* eet_node_dump */ 680}
681 681
682void * 682void *
683eet_node_walk(void *parent, 683eet_node_walk(void *parent,
@@ -759,13 +759,13 @@ eet_node_walk(void *parent,
759 case EET_T_ULONG_LONG: 759 case EET_T_ULONG_LONG:
760 me = cb->simple(root->type, &root->data, user_data); 760 me = cb->simple(root->type, &root->data, user_data);
761 break; 761 break;
762 } /* switch */ 762 }
763 763
764 if (parent) 764 if (parent)
765 cb->struct_add(parent, name, me, user_data); 765 cb->struct_add(parent, name, me, user_data);
766 766
767 return me; 767 return me;
768} /* eet_node_walk */ 768}
769 769
770int 770int
771eet_node_init(void) 771eet_node_init(void)
@@ -778,7 +778,7 @@ eet_node_init(void)
778#else 778#else
779 choice = "chained_mempool"; 779 choice = "chained_mempool";
780#endif 780#endif
781 tmp = getenv("EET_MEMPOOL"); 781 tmp = getenv("EINA_MEMPOOL");
782 if (tmp && tmp[0]) 782 if (tmp && tmp[0])
783 choice = tmp; 783 choice = tmp;
784 784
@@ -786,12 +786,12 @@ eet_node_init(void)
786 eina_mempool_add(choice, "eet-node-alloc", NULL, sizeof(Eet_Node), 1024); 786 eina_mempool_add(choice, "eet-node-alloc", NULL, sizeof(Eet_Node), 1024);
787 787
788 return _eet_node_mp ? 1 : 0; 788 return _eet_node_mp ? 1 : 0;
789} /* eet_node_init */ 789}
790 790
791void 791void
792eet_node_shutdown(void) 792eet_node_shutdown(void)
793{ 793{
794 eina_mempool_del(_eet_node_mp); 794 eina_mempool_del(_eet_node_mp);
795 _eet_node_mp = NULL; 795 _eet_node_mp = NULL;
796} /* eet_node_shutdown */ 796}
797 797
diff --git a/libraries/eet/src/lib/eet_utils.c b/libraries/eet/src/lib/eet_utils.c
index 8e591a2..b04ad1b 100644
--- a/libraries/eet/src/lib/eet_utils.c
+++ b/libraries/eet/src/lib/eet_utils.c
@@ -32,5 +32,5 @@ _eet_hash_gen(const char *key,
32 hash_num &= mask; 32 hash_num &= mask;
33 /* return it */ 33 /* return it */
34 return hash_num; 34 return hash_num;
35} /* _eet_hash_gen */ 35}
36 36
diff --git a/libraries/eet/src/tests/Makefile.am b/libraries/eet/src/tests/Makefile.am
index c90a1d5..61158f7 100644
--- a/libraries/eet/src/tests/Makefile.am
+++ b/libraries/eet/src/tests/Makefile.am
@@ -2,6 +2,7 @@ MAINTAINERCLEANFILES = Makefile.in
2 2
3AM_CPPFLAGS = \ 3AM_CPPFLAGS = \
4-I$(top_srcdir)/src/lib \ 4-I$(top_srcdir)/src/lib \
5-DTESTS_SRC_DIR=\"$(top_srcdir)/src/tests\" \
5@CHECK_CFLAGS@ \ 6@CHECK_CFLAGS@ \
6@EINA_CFLAGS@ 7@EINA_CFLAGS@
7 8
diff --git a/libraries/eet/src/tests/Makefile.in b/libraries/eet/src/tests/Makefile.in
index bb15127..791f9fd 100644
--- a/libraries/eet/src/tests/Makefile.in
+++ b/libraries/eet/src/tests/Makefile.in
@@ -174,8 +174,6 @@ PACKAGE_URL = @PACKAGE_URL@
174PACKAGE_VERSION = @PACKAGE_VERSION@ 174PACKAGE_VERSION = @PACKAGE_VERSION@
175PATH_SEPARATOR = @PATH_SEPARATOR@ 175PATH_SEPARATOR = @PATH_SEPARATOR@
176PKG_CONFIG = @PKG_CONFIG@ 176PKG_CONFIG = @PKG_CONFIG@
177PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
178PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
179RANLIB = @RANLIB@ 177RANLIB = @RANLIB@
180SED = @SED@ 178SED = @SED@
181SET_MAKE = @SET_MAKE@ 179SET_MAKE = @SET_MAKE@
@@ -246,6 +244,7 @@ version_info = @version_info@
246MAINTAINERCLEANFILES = Makefile.in 244MAINTAINERCLEANFILES = Makefile.in
247AM_CPPFLAGS = \ 245AM_CPPFLAGS = \
248-I$(top_srcdir)/src/lib \ 246-I$(top_srcdir)/src/lib \
247-DTESTS_SRC_DIR=\"$(top_srcdir)/src/tests\" \
249@CHECK_CFLAGS@ \ 248@CHECK_CFLAGS@ \
250@EINA_CFLAGS@ 249@EINA_CFLAGS@
251 250
diff --git a/libraries/eet/src/tests/eet_suite.c b/libraries/eet/src/tests/eet_suite.c
index 5230c86..3bbc912 100644
--- a/libraries/eet/src/tests/eet_suite.c
+++ b/libraries/eet/src/tests/eet_suite.c
@@ -24,6 +24,8 @@
24 24
25#include "eet_suite.h" 25#include "eet_suite.h"
26 26
27#define CERT_DIR ((*TESTS_SRC_DIR == '/') ? TESTS_SRC_DIR : "src/tests/" TESTS_SRC_DIR)
28
27START_TEST(eet_test_init) 29START_TEST(eet_test_init)
28{ 30{
29 int ret; 31 int ret;
@@ -211,21 +213,21 @@ _eet_test_basic_check(Eet_Test_Basic_Type *result,
211 fail_if(result->empty != NULL); 213 fail_if(result->empty != NULL);
212 if (i == 0) 214 if (i == 0)
213 { 215 {
214 Eet_Test_Basic_Type *tmp; 216 Eet_Test_Basic_Type *tmp2;
215 217
216 tmp = result->with; 218 tmp2 = result->with;
217 fail_if(tmp == NULL); 219 fail_if(tmp2 == NULL);
218 220
219 fail_if(tmp->c != EET_TEST_CHAR); 221 fail_if(tmp2->c != EET_TEST_CHAR);
220 fail_if(tmp->s != EET_TEST_SHORT); 222 fail_if(tmp2->s != EET_TEST_SHORT);
221 fail_if(tmp->i != EET_TEST_INT + i + 1); 223 fail_if(tmp2->i != EET_TEST_INT + i + 1);
222 fail_if(tmp->l != (long long)EET_TEST_LONG_LONG); 224 fail_if(tmp2->l != (long long)EET_TEST_LONG_LONG);
223 fail_if(strcmp(tmp->str, EET_TEST_STRING) != 0); 225 fail_if(strcmp(tmp2->str, EET_TEST_STRING) != 0);
224 fail_if(strcmp(tmp->istr, EET_TEST_STRING) != 0); 226 fail_if(strcmp(tmp2->istr, EET_TEST_STRING) != 0);
225 fail_if(tmp->uc != EET_TEST_CHAR); 227 fail_if(tmp2->uc != EET_TEST_CHAR);
226 fail_if(tmp->us != EET_TEST_SHORT); 228 fail_if(tmp2->us != EET_TEST_SHORT);
227 fail_if(tmp->ui != EET_TEST_INT); 229 fail_if(tmp2->ui != EET_TEST_INT);
228 fail_if(tmp->ul != EET_TEST_LONG_LONG); 230 fail_if(tmp2->ul != EET_TEST_LONG_LONG);
229 } 231 }
230 else 232 else
231 fail_if(result->with != NULL); 233 fail_if(result->with != NULL);
@@ -1640,7 +1642,7 @@ START_TEST(eet_identity_simple)
1640 eet_init(); 1642 eet_init();
1641 1643
1642 fail_if(!(file = tmpnam(file))); 1644 fail_if(!(file = tmpnam(file)));
1643 fail_if(chdir("src/tests")); 1645 fail_if(chdir(CERT_DIR));
1644 fail_if(!(noread = fopen("/dev/null", "w"))); 1646 fail_if(!(noread = fopen("/dev/null", "w")));
1645 1647
1646 /* Sign an eet file. */ 1648 /* Sign an eet file. */
@@ -1707,7 +1709,7 @@ START_TEST(eet_identity_open_simple)
1707 1709
1708 eet_init(); 1710 eet_init();
1709 1711
1710 fail_if(chdir("src/tests")); 1712 fail_if(chdir(CERT_DIR));
1711 1713
1712 k = eet_identity_open("cert.pem", "key.pem", NULL); 1714 k = eet_identity_open("cert.pem", "key.pem", NULL);
1713 fail_if(!k); 1715 fail_if(!k);
@@ -1725,7 +1727,7 @@ START_TEST(eet_identity_open_pkcs8)
1725 1727
1726 eet_init(); 1728 eet_init();
1727 1729
1728 fail_if(chdir("src/tests")); 1730 fail_if(chdir(CERT_DIR));
1729 1731
1730 k = eet_identity_open("cert.pem", "key_enc_none.pem", NULL); 1732 k = eet_identity_open("cert.pem", "key_enc_none.pem", NULL);
1731 fail_if(!k); 1733 fail_if(!k);
@@ -1774,7 +1776,7 @@ START_TEST(eet_identity_open_pkcs8_enc)
1774 1776
1775 eet_init(); 1777 eet_init();
1776 1778
1777 fail_if(chdir("src/tests")); 1779 fail_if(chdir(CERT_DIR));
1778 1780
1779 k = eet_identity_open("cert.pem", "key_enc.pem", NULL); 1781 k = eet_identity_open("cert.pem", "key_enc.pem", NULL);
1780 fail_if(k); 1782 fail_if(k);
@@ -1810,7 +1812,7 @@ START_TEST(eet_cipher_decipher_simple)
1810 eet_init(); 1812 eet_init();
1811 1813
1812 fail_if(!(file = tmpnam(file))); 1814 fail_if(!(file = tmpnam(file)));
1813 fail_if(chdir("src/tests")); 1815 fail_if(chdir(CERT_DIR));
1814 1816
1815 /* Crypt an eet file. */ 1817 /* Crypt an eet file. */
1816 ef = eet_open(file, EET_FILE_MODE_WRITE); 1818 ef = eet_open(file, EET_FILE_MODE_WRITE);
diff --git a/libraries/eina/AUTHORS b/libraries/eina/AUTHORS
index 1483270..c146e20 100644
--- a/libraries/eina/AUTHORS
+++ b/libraries/eina/AUTHORS
@@ -20,3 +20,4 @@ Myungjae Lee <mjae.lee@samsung.com>
20Youness Alaoui <kakaroto@kakaroto.homelinux.net> 20Youness 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>
diff --git a/libraries/eina/ChangeLog b/libraries/eina/ChangeLog
index 0d1ccdf..dfecb61 100644
--- a/libraries/eina/ChangeLog
+++ b/libraries/eina/ChangeLog
@@ -147,3 +147,54 @@
147 147
148 * Add new hash function eina_hash_murmur3 that should be better at 148 * Add new hash function eina_hash_murmur3 that should be better at
149 hashing strings. 149 hashing strings.
150
1512011-12-02 Carsten Haitzler (The Rasterman)
152
153 1.1.0 release
154
1552011-12-02 Mike Blumenkrantz (discomfitor/zmike)
156
157 * Add eina_mempool_calloc for returning zeroed memory
158
1592011-12-07 Mike Blumenkrantz (discomfitor/zmike)
160
161 * eina_log*level_check() functions now return the correct value
162
1632011-12-08 Tom Hacohen
164
165 * Binbuf + Strbuf + Ustrbuf: Added eina_*buf_manage_new_length.
166 Same as eina_(u)strbuf_manage_new except that it accepts a length
167 parameter.
168
1692011-12-20 Cedric Bail
170
171 * Fix bug on eina_shutdown when using eina_error.
172
1732011-12-28 Cedric Bail
174
175 * Fix NONNULL argument for eina_hash_find.
176
1772011-12-30 Vincent Torri
178
179 * Add Eina_Semaphore abstraction API.
180
1812011-12-30 Cedric Bail
182
183 * Let eina_hash_free behave like free.
184
1852012-01-03 Cedric Bail
186
187 * Add eina_xattr_fd_ls, eina_xattr_value_fd_ls and eina_xattr_value_ls.
188 * Detect fault during access to Eina_File mmap memory, use eina_file_map_faulted
189 to learn if it happens.
190 * Add eina_file_xattr_get and eina_file_xattr_value_get.
191
1922012-01-09 Gustavo Barbieri
193
194 * Deprecated eina_array_count_get(), use eina_array_count() instead.
195 * Add eina_inarray data type.
196 * Add eina_value data type (generic value storage).
197
1982012-01-19 Shinwoo Kim
199
200 * Fix compilation of eina_semaphore_lock() (Windows port)
diff --git a/libraries/eina/Makefile.am b/libraries/eina/Makefile.am
index a818b10..7778fd8 100644
--- a/libraries/eina/Makefile.am
+++ b/libraries/eina/Makefile.am
@@ -57,7 +57,7 @@ m4/efl_path_max.m4
57 57
58doc: 58doc:
59 @echo "entering doc/" 59 @echo "entering doc/"
60 @cd doc && make doc 60 @cd doc && $(MAKE) doc
61 61
62# Unit tests 62# Unit tests
63 63
@@ -91,9 +91,9 @@ lcov-report:
91 @genhtml -t "$(PACKAGE_STRING)" -o coverage coverage/coverage.info 91 @genhtml -t "$(PACKAGE_STRING)" -o coverage coverage/coverage.info
92 92
93coverage: 93coverage:
94 @make lcov-reset 94 @$(MAKE) lcov-reset
95 @make check 95 @$(MAKE) check
96 @make lcov-report 96 @$(MAKE) lcov-report
97else 97else
98lcov-reset: 98lcov-reset:
99 @echo "reconfigure with --enable-coverage" 99 @echo "reconfigure with --enable-coverage"
@@ -108,7 +108,7 @@ endif
108if EFL_ENABLE_BENCHMARK 108if EFL_ENABLE_BENCHMARK
109 109
110benchmark: 110benchmark:
111 @cd src && make benchmark 111 @cd src && $(MAKE) benchmark
112 @mkdir result || true 112 @mkdir result || true
113 @cd result && ../src/tests/eina_bench `date +%F_%s` 113 @cd result && ../src/tests/eina_bench `date +%F_%s`
114 114
diff --git a/libraries/eina/Makefile.in b/libraries/eina/Makefile.in
index 8152d7f..423f4da 100644
--- a/libraries/eina/Makefile.in
+++ b/libraries/eina/Makefile.in
@@ -188,7 +188,9 @@ EFL_SIMD_FLAGS = @EFL_SIMD_FLAGS@
188EGREP = @EGREP@ 188EGREP = @EGREP@
189EINA_CFLAGS = @EINA_CFLAGS@ 189EINA_CFLAGS = @EINA_CFLAGS@
190EINA_CONFIGURE_DEFAULT_MEMPOOL = @EINA_CONFIGURE_DEFAULT_MEMPOOL@ 190EINA_CONFIGURE_DEFAULT_MEMPOOL = @EINA_CONFIGURE_DEFAULT_MEMPOOL@
191EINA_CONFIGURE_ENABLE_LOG = @EINA_CONFIGURE_ENABLE_LOG@
191EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@ 192EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@
193EINA_CONFIGURE_HAVE_DIRENT_H = @EINA_CONFIGURE_HAVE_DIRENT_H@
192EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@ 194EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@
193EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@ 195EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@
194EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@ 196EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@
@@ -240,8 +242,6 @@ PACKAGE_URL = @PACKAGE_URL@
240PACKAGE_VERSION = @PACKAGE_VERSION@ 242PACKAGE_VERSION = @PACKAGE_VERSION@
241PATH_SEPARATOR = @PATH_SEPARATOR@ 243PATH_SEPARATOR = @PATH_SEPARATOR@
242PKG_CONFIG = @PKG_CONFIG@ 244PKG_CONFIG = @PKG_CONFIG@
243PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
244PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
245RANLIB = @RANLIB@ 245RANLIB = @RANLIB@
246SED = @SED@ 246SED = @SED@
247SET_MAKE = @SET_MAKE@ 247SET_MAKE = @SET_MAKE@
@@ -895,7 +895,7 @@ uninstall-am: uninstall-pkgconfigDATA
895 895
896doc: 896doc:
897 @echo "entering doc/" 897 @echo "entering doc/"
898 @cd doc && make doc 898 @cd doc && $(MAKE) doc
899 899
900# Unit tests 900# Unit tests
901 901
@@ -922,9 +922,9 @@ doc:
922@EFL_ENABLE_COVERAGE_TRUE@ @genhtml -t "$(PACKAGE_STRING)" -o coverage coverage/coverage.info 922@EFL_ENABLE_COVERAGE_TRUE@ @genhtml -t "$(PACKAGE_STRING)" -o coverage coverage/coverage.info
923 923
924@EFL_ENABLE_COVERAGE_TRUE@coverage: 924@EFL_ENABLE_COVERAGE_TRUE@coverage:
925@EFL_ENABLE_COVERAGE_TRUE@ @make lcov-reset 925@EFL_ENABLE_COVERAGE_TRUE@ @$(MAKE) lcov-reset
926@EFL_ENABLE_COVERAGE_TRUE@ @make check 926@EFL_ENABLE_COVERAGE_TRUE@ @$(MAKE) check
927@EFL_ENABLE_COVERAGE_TRUE@ @make lcov-report 927@EFL_ENABLE_COVERAGE_TRUE@ @$(MAKE) lcov-report
928@EFL_ENABLE_COVERAGE_FALSE@lcov-reset: 928@EFL_ENABLE_COVERAGE_FALSE@lcov-reset:
929@EFL_ENABLE_COVERAGE_FALSE@ @echo "reconfigure with --enable-coverage" 929@EFL_ENABLE_COVERAGE_FALSE@ @echo "reconfigure with --enable-coverage"
930 930
@@ -935,7 +935,7 @@ doc:
935@EFL_ENABLE_COVERAGE_FALSE@ @echo "reconfigure with --enable-tests --enable-coverage" 935@EFL_ENABLE_COVERAGE_FALSE@ @echo "reconfigure with --enable-tests --enable-coverage"
936 936
937@EFL_ENABLE_BENCHMARK_TRUE@benchmark: 937@EFL_ENABLE_BENCHMARK_TRUE@benchmark:
938@EFL_ENABLE_BENCHMARK_TRUE@ @cd src && make benchmark 938@EFL_ENABLE_BENCHMARK_TRUE@ @cd src && $(MAKE) benchmark
939@EFL_ENABLE_BENCHMARK_TRUE@ @mkdir result || true 939@EFL_ENABLE_BENCHMARK_TRUE@ @mkdir result || true
940@EFL_ENABLE_BENCHMARK_TRUE@ @cd result && ../src/tests/eina_bench `date +%F_%s` 940@EFL_ENABLE_BENCHMARK_TRUE@ @cd result && ../src/tests/eina_bench `date +%F_%s`
941 941
diff --git a/libraries/eina/NEWS b/libraries/eina/NEWS
index 6f9a0ef..8669aa7 100644
--- a/libraries/eina/NEWS
+++ b/libraries/eina/NEWS
@@ -1,3 +1,20 @@
1Eina 1.2.0
2
3Changes since Eina 1.1.0:
4-------------------------
5
6Additions:
7
8 * eina_mempool_calloc
9 * Eina_Semaphore abstraction API
10 * eina_xattr_fd_ls
11 * Eina_Xattr iterator : eina_xattr_value_fd_ls and eina_xattr_value_ls API
12 * eina_file_map_faulted API
13 * Xattr iterator for Eina_File : eina_file_xattr_get and eina_file_xattr_value_get API
14 * Deprecated eina_array_count_get(), use eina_array_count() instead.
15 * Added eina_inarray data type
16 * Added eina_value data type (generic value storage)
17
1Eina 1.1.0 18Eina 1.1.0
2 19
3Changes since Eina 1.0.0: 20Changes since Eina 1.0.0:
diff --git a/libraries/eina/README b/libraries/eina/README
index 69ec205..6ff84c8 100644
--- a/libraries/eina/README
+++ b/libraries/eina/README
@@ -17,7 +17,7 @@ Eina 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 17to be lean, efficient and tailored to EFL's needs. This saves each
18library implementing its own custom datatype handling and duplicating 18library implementing its own custom datatype handling and duplicating
19the code. Some of the datatypes handles are: 19the code. Some of the datatypes handles are:
20 Arrays (variable sized) 20 Arrays (variable sized, including inline members)
21 Hash tables 21 Hash tables
22 Inlined linked lists 22 Inlined linked lists
23 Linked lists 23 Linked lists
diff --git a/libraries/eina/aclocal.m4 b/libraries/eina/aclocal.m4
index 45a06ce..f26e3d1 100644
--- a/libraries/eina/aclocal.m4
+++ b/libraries/eina/aclocal.m4
@@ -13,14 +13,13 @@
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.67],, 16m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.65],,
17[m4_warning([this file was generated for autoconf 2.67. 17[m4_warning([this file was generated for autoconf 2.65.
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)
24# 23#
25# Copyright © 2004 Scott James Remnant <scott@netsplit.com>. 24# Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
26# 25#
@@ -48,10 +47,7 @@ To do so, use the procedure documented by the package, typically `autoreconf'.])
48AC_DEFUN([PKG_PROG_PKG_CONFIG], 47AC_DEFUN([PKG_PROG_PKG_CONFIG],
49[m4_pattern_forbid([^_?PKG_[A-Z_]+$]) 48[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
50m4_pattern_allow([^PKG_CONFIG(_PATH)?$]) 49m4_pattern_allow([^PKG_CONFIG(_PATH)?$])
51AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) 50AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl
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
55if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then 51if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
56 AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) 52 AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
57fi 53fi
@@ -64,6 +60,7 @@ if test -n "$PKG_CONFIG"; then
64 AC_MSG_RESULT([no]) 60 AC_MSG_RESULT([no])
65 PKG_CONFIG="" 61 PKG_CONFIG=""
66 fi 62 fi
63
67fi[]dnl 64fi[]dnl
68])# PKG_PROG_PKG_CONFIG 65])# PKG_PROG_PKG_CONFIG
69 66
@@ -72,31 +69,34 @@ fi[]dnl
72# Check to see whether a particular set of modules exists. Similar 69# Check to see whether a particular set of modules exists. Similar
73# to PKG_CHECK_MODULES(), but does not set variables or print errors. 70# to PKG_CHECK_MODULES(), but does not set variables or print errors.
74# 71#
75# Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) 72#
76# only at the first occurence in configure.ac, so if the first place 73# Similar to PKG_CHECK_MODULES, make sure that the first instance of
77# it's called might be skipped (such as if it is within an "if", you 74# this or PKG_CHECK_MODULES is called, or make sure to call
78# have to call PKG_CHECK_EXISTS manually 75# PKG_CHECK_EXISTS manually
79# -------------------------------------------------------------- 76# --------------------------------------------------------------
80AC_DEFUN([PKG_CHECK_EXISTS], 77AC_DEFUN([PKG_CHECK_EXISTS],
81[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl 78[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
82if test -n "$PKG_CONFIG" && \ 79if test -n "$PKG_CONFIG" && \
83 AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then 80 AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
84 m4_default([$2], [:]) 81 m4_ifval([$2], [$2], [:])
85m4_ifvaln([$3], [else 82m4_ifvaln([$3], [else
86 $3])dnl 83 $3])dnl
87fi]) 84fi])
88 85
86
89# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) 87# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
90# --------------------------------------------- 88# ---------------------------------------------
91m4_define([_PKG_CONFIG], 89m4_define([_PKG_CONFIG],
92[if test -n "$$1"; then 90[if test -n "$PKG_CONFIG"; then
93 pkg_cv_[]$1="$$1" 91 if test -n "$$1"; then
94 elif test -n "$PKG_CONFIG"; then 92 pkg_cv_[]$1="$$1"
95 PKG_CHECK_EXISTS([$3], 93 else
96 [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`], 94 PKG_CHECK_EXISTS([$3],
97 [pkg_failed=yes]) 95 [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`],
98 else 96 [pkg_failed=yes])
99 pkg_failed=untried 97 fi
98else
99 pkg_failed=untried
100fi[]dnl 100fi[]dnl
101])# _PKG_CONFIG 101])# _PKG_CONFIG
102 102
@@ -138,17 +138,16 @@ 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])
142 _PKG_SHORT_ERRORS_SUPPORTED 141 _PKG_SHORT_ERRORS_SUPPORTED
143 if test $_pkg_short_errors_supported = yes; then 142 if test $_pkg_short_errors_supported = yes; then
144 $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1` 143 $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$2"`
145 else 144 else
146 $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1` 145 $1[]_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"`
147 fi 146 fi
148 # Put the nasty error message in config.log where it belongs 147 # Put the nasty error message in config.log where it belongs
149 echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD 148 echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
150 149
151 m4_default([$4], [AC_MSG_ERROR( 150 ifelse([$4], , [AC_MSG_ERROR(dnl
152[Package requirements ($2) were not met: 151[Package requirements ($2) were not met:
153 152
154$$1_PKG_ERRORS 153$$1_PKG_ERRORS
@@ -156,24 +155,25 @@ $$1_PKG_ERRORS
156Consider adjusting the PKG_CONFIG_PATH environment variable if you 155Consider adjusting the PKG_CONFIG_PATH environment variable if you
157installed software in a non-standard prefix. 156installed software in a non-standard prefix.
158 157
159_PKG_TEXT])[]dnl 158_PKG_TEXT
160 ]) 159])],
160 [AC_MSG_RESULT([no])
161 $4])
161elif test $pkg_failed = untried; then 162elif test $pkg_failed = untried; then
162 AC_MSG_RESULT([no]) 163 ifelse([$4], , [AC_MSG_FAILURE(dnl
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/>.])[]dnl 170To get pkg-config, see <http://pkg-config.freedesktop.org/>.])],
171 ]) 171 [$4])
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 $3 176 ifelse([$3], , :, [$3])
177fi[]dnl 177fi[]dnl
178])# PKG_CHECK_MODULES 178])# PKG_CHECK_MODULES
179 179
diff --git a/libraries/eina/config.guess b/libraries/eina/config.guess
index c2246a4..e3a2116 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, 2010 4# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
5# Free Software Foundation, Inc. 5# Free Software Foundation, Inc.
6 6
7timestamp='2009-12-30' 7timestamp='2009-06-10'
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-12-30'
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. Please send patches (context 30# Originally written by Per Bothner <per@bothner.com>.
31# diff format) to <config-patches@gnu.org> and include a ChangeLog 31# Please send patches to <config-patches@gnu.org>. Submit a context
32# entry. 32# diff and a properly formatted ChangeLog 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# You can get the latest version of this script from: 38# The plan is that this can be called by configure scripts if you
39# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD 39# don't specify an explicit build system type.
40 40
41me=`echo "$0" | sed -e 's,.*/,,'` 41me=`echo "$0" | sed -e 's,.*/,,'`
42 42
@@ -56,9 +56,8 @@ 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, 59Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
602001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free 602002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
61Software Foundation, Inc.
62 61
63This is free software; see the source for copying conditions. There is NO 62This is free software; see the source for copying conditions. There is NO
64warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." 63warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -334,9 +333,6 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
334 sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) 333 sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
335 echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` 334 echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
336 exit ;; 335 exit ;;
337 i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
338 echo i386-pc-auroraux${UNAME_RELEASE}
339 exit ;;
340 i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) 336 i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
341 eval $set_cc_for_build 337 eval $set_cc_for_build
342 SUN_ARCH="i386" 338 SUN_ARCH="i386"
@@ -811,12 +807,12 @@ EOF
811 i*:PW*:*) 807 i*:PW*:*)
812 echo ${UNAME_MACHINE}-pc-pw32 808 echo ${UNAME_MACHINE}-pc-pw32
813 exit ;; 809 exit ;;
814 *:Interix*:*) 810 *:Interix*:[3456]*)
815 case ${UNAME_MACHINE} in 811 case ${UNAME_MACHINE} in
816 x86) 812 x86)
817 echo i586-pc-interix${UNAME_RELEASE} 813 echo i586-pc-interix${UNAME_RELEASE}
818 exit ;; 814 exit ;;
819 authenticamd | genuineintel | EM64T) 815 EM64T | authenticamd | genuineintel)
820 echo x86_64-unknown-interix${UNAME_RELEASE} 816 echo x86_64-unknown-interix${UNAME_RELEASE}
821 exit ;; 817 exit ;;
822 IA64) 818 IA64)
@@ -858,20 +854,6 @@ EOF
858 i*86:Minix:*:*) 854 i*86:Minix:*:*)
859 echo ${UNAME_MACHINE}-pc-minix 855 echo ${UNAME_MACHINE}-pc-minix
860 exit ;; 856 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 ;;
875 arm*:Linux:*:*) 857 arm*:Linux:*:*)
876 eval $set_cc_for_build 858 eval $set_cc_for_build
877 if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ 859 if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
@@ -894,17 +876,6 @@ EOF
894 frv:Linux:*:*) 876 frv:Linux:*:*)
895 echo frv-unknown-linux-gnu 877 echo frv-unknown-linux-gnu
896 exit ;; 878 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 ;;
908 ia64:Linux:*:*) 879 ia64:Linux:*:*)
909 echo ${UNAME_MACHINE}-unknown-linux-gnu 880 echo ${UNAME_MACHINE}-unknown-linux-gnu
910 exit ;; 881 exit ;;
@@ -930,18 +901,39 @@ EOF
930 #endif 901 #endif
931 #endif 902 #endif
932EOF 903EOF
933 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` 904 eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
905 /^CPU/{
906 s: ::g
907 p
908 }'`"
934 test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } 909 test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
935 ;; 910 ;;
936 or32:Linux:*:*) 911 or32:Linux:*:*)
937 echo or32-unknown-linux-gnu 912 echo or32-unknown-linux-gnu
938 exit ;; 913 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 ;;
939 padre:Linux:*:*) 934 padre:Linux:*:*)
940 echo sparc-unknown-linux-gnu 935 echo sparc-unknown-linux-gnu
941 exit ;; 936 exit ;;
942 parisc64:Linux:*:* | hppa64:Linux:*:*)
943 echo hppa64-unknown-linux-gnu
944 exit ;;
945 parisc:Linux:*:* | hppa:Linux:*:*) 937 parisc:Linux:*:* | hppa:Linux:*:*)
946 # Look for CPU level 938 # Look for CPU level
947 case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in 939 case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
@@ -950,11 +942,8 @@ EOF
950 *) echo hppa-unknown-linux-gnu ;; 942 *) echo hppa-unknown-linux-gnu ;;
951 esac 943 esac
952 exit ;; 944 exit ;;
953 ppc64:Linux:*:*) 945 parisc64:Linux:*:* | hppa64:Linux:*:*)
954 echo powerpc64-unknown-linux-gnu 946 echo hppa64-unknown-linux-gnu
955 exit ;;
956 ppc:Linux:*:*)
957 echo powerpc-unknown-linux-gnu
958 exit ;; 947 exit ;;
959 s390:Linux:*:* | s390x:Linux:*:*) 948 s390:Linux:*:* | s390x:Linux:*:*)
960 echo ${UNAME_MACHINE}-ibm-linux 949 echo ${UNAME_MACHINE}-ibm-linux
@@ -977,6 +966,58 @@ EOF
977 xtensa*:Linux:*:*) 966 xtensa*:Linux:*:*)
978 echo ${UNAME_MACHINE}-unknown-linux-gnu 967 echo ${UNAME_MACHINE}-unknown-linux-gnu
979 exit ;; 968 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 ;;
980 i*86:DYNIX/ptx:4*:*) 1021 i*86:DYNIX/ptx:4*:*)
981 # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. 1022 # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
982 # earlier versions are messed up and put the nodename in both 1023 # earlier versions are messed up and put the nodename in both
@@ -1206,16 +1247,6 @@ EOF
1206 *:Darwin:*:*) 1247 *:Darwin:*:*)
1207 UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown 1248 UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
1208 case $UNAME_PROCESSOR in 1249 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 ;;
1219 unknown) UNAME_PROCESSOR=powerpc ;; 1250 unknown) UNAME_PROCESSOR=powerpc ;;
1220 esac 1251 esac
1221 echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} 1252 echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
diff --git a/libraries/eina/config.h.in b/libraries/eina/config.h.in
index d6370dc..9bd97a1 100644
--- a/libraries/eina/config.h.in
+++ b/libraries/eina/config.h.in
@@ -70,6 +70,9 @@
70/* Set to 1 if ${enable_pass_through} is built */ 70/* Set to 1 if ${enable_pass_through} is built */
71#undef EINA_BUILD_PASS_THROUGH 71#undef EINA_BUILD_PASS_THROUGH
72 72
73/* Turn on debugging overhead in mempool */
74#undef EINA_DEBUG_MALLOC
75
73/* if set, logging is limited to this amount. */ 76/* if set, logging is limited to this amount. */
74#undef EINA_LOG_LEVEL_MAXIMUM 77#undef EINA_LOG_LEVEL_MAXIMUM
75 78
@@ -107,11 +110,10 @@
107 */ 110 */
108#undef HAVE_ALLOCA_H 111#undef HAVE_ALLOCA_H
109 112
110/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'. 113/* Define to 1 if you have a valid <dirent.h> header file. */
111 */
112#undef HAVE_DIRENT_H 114#undef HAVE_DIRENT_H
113 115
114/* Define to 1 if you have the `dirfd' function. */ 116/* Define to 1 if you have the `dirfd' function or macro. */
115#undef HAVE_DIRFD 117#undef HAVE_DIRFD
116 118
117/* Define to 1 if you have the `dladdr' function. */ 119/* Define to 1 if you have the `dladdr' function. */
@@ -150,6 +152,12 @@
150/* Define to 1 if you have the <libgen.h> header file. */ 152/* Define to 1 if you have the <libgen.h> header file. */
151#undef HAVE_LIBGEN_H 153#undef HAVE_LIBGEN_H
152 154
155/* Define to 1 if we log support is on */
156#undef HAVE_LOG
157
158/* We will be able to know the exact amount of wasted memory */
159#undef HAVE_MALLOC_USABLE_SIZE
160
153/* Have mcheck.h */ 161/* Have mcheck.h */
154#undef HAVE_MCHECK 162#undef HAVE_MCHECK
155 163
@@ -162,9 +170,6 @@
162/* Have mtrace */ 170/* Have mtrace */
163#undef HAVE_MTRACE 171#undef HAVE_MTRACE
164 172
165/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
166#undef HAVE_NDIR_H
167
168/* Define to 1 if you have the `openat' function. */ 173/* Define to 1 if you have the `openat' function. */
169#undef HAVE_OPENAT 174#undef HAVE_OPENAT
170 175
@@ -192,13 +197,11 @@
192/* Define to 1 if you have the `strlcpy' function. */ 197/* Define to 1 if you have the `strlcpy' function. */
193#undef HAVE_STRLCPY 198#undef HAVE_STRLCPY
194 199
195/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'. 200/* Define to 1 if the system has the type `struct dirent'. */
196 */ 201#undef HAVE_STRUCT_DIRENT
197#undef HAVE_SYS_DIR_H
198 202
199/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'. 203/* Define to 1 if you have the <sys/mman.h> header file. */
200 */ 204#undef HAVE_SYS_MMAN_H
201#undef HAVE_SYS_NDIR_H
202 205
203/* Define to 1 if you have the <sys/stat.h> header file. */ 206/* Define to 1 if you have the <sys/stat.h> header file. */
204#undef HAVE_SYS_STAT_H 207#undef HAVE_SYS_STAT_H
diff --git a/libraries/eina/config.sub b/libraries/eina/config.sub
index c2d1257..eb0389a 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, 2010 4# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
5# Free Software Foundation, Inc. 5# Free Software Foundation, Inc.
6 6
7timestamp='2010-01-22' 7timestamp='2009-06-11'
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,16 +32,13 @@ timestamp='2010-01-22'
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 GNU ChangeLog entry. 35# diff and a properly formatted 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
45# This file is supposed to be the same for all GNU packages 42# This file is supposed to be the same for all GNU packages
46# and recognize all the CPU types, system types and aliases 43# and recognize all the CPU types, system types and aliases
47# that are meaningful with *any* GNU software. 44# that are meaningful with *any* GNU software.
@@ -75,9 +72,8 @@ Report bugs and patches to <config-patches@gnu.org>."
75version="\ 72version="\
76GNU config.sub ($timestamp) 73GNU config.sub ($timestamp)
77 74
78Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 75Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
792001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free 762002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
80Software Foundation, Inc.
81 77
82This is free software; see the source for copying conditions. There is NO 78This is free software; see the source for copying conditions. There is NO
83warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." 79warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -153,7 +149,7 @@ case $os in
153 -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ 149 -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
154 -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ 150 -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
155 -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ 151 -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
156 -apple | -axis | -knuth | -cray | -microblaze) 152 -apple | -axis | -knuth | -cray)
157 os= 153 os=
158 basic_machine=$1 154 basic_machine=$1
159 ;; 155 ;;
@@ -288,7 +284,6 @@ case $basic_machine in
288 | pdp10 | pdp11 | pj | pjl \ 284 | pdp10 | pdp11 | pj | pjl \
289 | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ 285 | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
290 | pyramid \ 286 | pyramid \
291 | rx \
292 | score \ 287 | score \
293 | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ 288 | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
294 | sh64 | sh64le \ 289 | sh64 | sh64le \
@@ -296,14 +291,13 @@ case $basic_machine in
296 | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ 291 | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
297 | spu | strongarm \ 292 | spu | strongarm \
298 | tahoe | thumb | tic4x | tic80 | tron \ 293 | tahoe | thumb | tic4x | tic80 | tron \
299 | ubicom32 \
300 | v850 | v850e \ 294 | v850 | v850e \
301 | we32k \ 295 | we32k \
302 | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ 296 | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
303 | z8k | z80) 297 | z8k | z80)
304 basic_machine=$basic_machine-unknown 298 basic_machine=$basic_machine-unknown
305 ;; 299 ;;
306 m6811 | m68hc11 | m6812 | m68hc12 | picochip) 300 m6811 | m68hc11 | m6812 | m68hc12)
307 # Motorola 68HC11/12. 301 # Motorola 68HC11/12.
308 basic_machine=$basic_machine-unknown 302 basic_machine=$basic_machine-unknown
309 os=-none 303 os=-none
@@ -346,7 +340,7 @@ case $basic_machine in
346 | lm32-* \ 340 | lm32-* \
347 | m32c-* | m32r-* | m32rle-* \ 341 | m32c-* | m32r-* | m32rle-* \
348 | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ 342 | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
349 | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \ 343 | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
350 | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ 344 | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
351 | mips16-* \ 345 | mips16-* \
352 | mips64-* | mips64el-* \ 346 | mips64-* | mips64el-* \
@@ -374,17 +368,15 @@ case $basic_machine in
374 | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ 368 | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
375 | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ 369 | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
376 | pyramid-* \ 370 | pyramid-* \
377 | romp-* | rs6000-* | rx-* \ 371 | romp-* | rs6000-* \
378 | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ 372 | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
379 | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ 373 | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
380 | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ 374 | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
381 | sparclite-* \ 375 | sparclite-* \
382 | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ 376 | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
383 | tahoe-* | thumb-* \ 377 | tahoe-* | thumb-* \
384 | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ 378 | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \
385 | tile-* | tilegx-* \
386 | tron-* \ 379 | tron-* \
387 | ubicom32-* \
388 | v850-* | v850e-* | vax-* \ 380 | v850-* | v850e-* | vax-* \
389 | we32k-* \ 381 | we32k-* \
390 | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ 382 | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
@@ -734,9 +726,6 @@ case $basic_machine in
734 basic_machine=ns32k-utek 726 basic_machine=ns32k-utek
735 os=-sysv 727 os=-sysv
736 ;; 728 ;;
737 microblaze)
738 basic_machine=microblaze-xilinx
739 ;;
740 mingw32) 729 mingw32)
741 basic_machine=i386-pc 730 basic_machine=i386-pc
742 os=-mingw32 731 os=-mingw32
@@ -1087,11 +1076,6 @@ case $basic_machine in
1087 basic_machine=tic6x-unknown 1076 basic_machine=tic6x-unknown
1088 os=-coff 1077 os=-coff
1089 ;; 1078 ;;
1090 # This must be matched before tile*.
1091 tilegx*)
1092 basic_machine=tilegx-unknown
1093 os=-linux-gnu
1094 ;;
1095 tile*) 1079 tile*)
1096 basic_machine=tile-unknown 1080 basic_machine=tile-unknown
1097 os=-linux-gnu 1081 os=-linux-gnu
@@ -1263,9 +1247,6 @@ case $os in
1263 # First match some system type aliases 1247 # First match some system type aliases
1264 # that might get confused with valid system types. 1248 # that might get confused with valid system types.
1265 # -solaris* is a basic system type, with this one exception. 1249 # -solaris* is a basic system type, with this one exception.
1266 -auroraux)
1267 os=-auroraux
1268 ;;
1269 -solaris1 | -solaris1.*) 1250 -solaris1 | -solaris1.*)
1270 os=`echo $os | sed -e 's|solaris1|sunos4|'` 1251 os=`echo $os | sed -e 's|solaris1|sunos4|'`
1271 ;; 1252 ;;
@@ -1287,8 +1268,8 @@ case $os in
1287 # -sysv* is not here because it comes later, after sysvr4. 1268 # -sysv* is not here because it comes later, after sysvr4.
1288 -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ 1269 -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
1289 | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ 1270 | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
1290 | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ 1271 | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
1291 | -sym* | -kopensolaris* \ 1272 | -kopensolaris* \
1292 | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ 1273 | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
1293 | -aos* | -aros* \ 1274 | -aos* | -aros* \
1294 | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ 1275 | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
@@ -1309,7 +1290,7 @@ case $os in
1309 | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ 1290 | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
1310 | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ 1291 | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
1311 | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ 1292 | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
1312 | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) 1293 | -skyos* | -haiku* | -rdos* | -toppers* | -drops*)
1313 # Remember, each alternative MUST END IN *, to match a version number. 1294 # Remember, each alternative MUST END IN *, to match a version number.
1314 ;; 1295 ;;
1315 -qnx*) 1296 -qnx*)
@@ -1442,8 +1423,6 @@ case $os in
1442 -dicos*) 1423 -dicos*)
1443 os=-dicos 1424 os=-dicos
1444 ;; 1425 ;;
1445 -nacl*)
1446 ;;
1447 -none) 1426 -none)
1448 ;; 1427 ;;
1449 *) 1428 *)
diff --git a/libraries/eina/configure b/libraries/eina/configure
index 7c01482..d3c2f30 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.67 for eina 1.1.0. 3# Generated by GNU Autoconf 2.65 for eina 1.1.99.67344.
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, 2010 Free Software 9# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
10# Foundation, Inc. 10# 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 STATUS ERROR [LINENO LOG_FD] 362# as_fn_error 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=$1; test $as_status -eq 0 && as_status=1 369 as_status=$?; test $as_status -eq 0 && as_status=1
370 if test "$4"; then 370 if test "$3"; then
371 as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 371 as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
372 $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 372 $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
373 fi 373 fi
374 $as_echo "$as_me: error: $2" >&2 374 $as_echo "$as_me: error: $1" >&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, old GNU/Linux) returns a bogus exit status, 685# hostname on some systems (SVR3.2, 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.0' 704PACKAGE_VERSION='1.1.99.67344'
705PACKAGE_STRING='eina 1.1.0' 705PACKAGE_STRING='eina 1.1.99.67344'
706PACKAGE_BUGREPORT='enlightenment-devel@lists.sourceforge.net' 706PACKAGE_BUGREPORT='enlightenment-devel@lists.sourceforge.net'
707PACKAGE_URL='' 707PACKAGE_URL=''
708 708
@@ -799,22 +799,24 @@ EINA_BUILD_CHAINED_POOL_FALSE
799EINA_BUILD_CHAINED_POOL_TRUE 799EINA_BUILD_CHAINED_POOL_TRUE
800rt_libs 800rt_libs
801iconv_libs 801iconv_libs
802EINA_CONFIGURE_ENABLE_LOG
802EFL_FNMATCH_LIBS 803EFL_FNMATCH_LIBS
803dlopen_libs 804dlopen_libs
804ALLOCA 805ALLOCA
805ESCAPE_LIBS 806EINA_CONFIGURE_HAVE_DIRENT_H
806ESCAPE_CFLAGS 807EINA_SIZEOF_WCHAR_T
808EINA_CONFIGURE_HAVE_STDINT_H
809EINA_CONFIGURE_HAVE_INTTYPES_H
807lt_enable_auto_import 810lt_enable_auto_import
808EINA_LIBS 811EINA_LIBS
809EINA_CFLAGS 812EINA_CFLAGS
810EINA_CPPFLAGS 813EINA_CPPFLAGS
814ESCAPE_LIBS
815ESCAPE_CFLAGS
811EINA_HAVE_WIN32_FALSE 816EINA_HAVE_WIN32_FALSE
812EINA_HAVE_WIN32_TRUE 817EINA_HAVE_WIN32_TRUE
813EINA_HAVE_WINCE_FALSE 818EINA_HAVE_WINCE_FALSE
814EINA_HAVE_WINCE_TRUE 819EINA_HAVE_WINCE_TRUE
815EINA_SIZEOF_WCHAR_T
816EINA_CONFIGURE_HAVE_STDINT_H
817EINA_CONFIGURE_HAVE_INTTYPES_H
818BUILD_TILER_EXAMPLE_FALSE 820BUILD_TILER_EXAMPLE_FALSE
819BUILD_TILER_EXAMPLE_TRUE 821BUILD_TILER_EXAMPLE_TRUE
820ECORE_EVAS_LIBS 822ECORE_EVAS_LIBS
@@ -831,8 +833,6 @@ EFL_BUILD_DOC_TRUE
831efl_doxygen 833efl_doxygen
832efl_have_doxygen 834efl_have_doxygen
833pkgconfig_requires_private 835pkgconfig_requires_private
834PKG_CONFIG_LIBDIR
835PKG_CONFIG_PATH
836PKG_CONFIG 836PKG_CONFIG
837CXXCPP 837CXXCPP
838am__fastdepCXX_FALSE 838am__fastdepCXX_FALSE
@@ -1007,6 +1007,8 @@ with_doxygen
1007enable_valgrind 1007enable_valgrind
1008enable_ememoa 1008enable_ememoa
1009enable_assert 1009enable_assert
1010enable_debug_malloc
1011enable_log
1010with_iconv_link 1012with_iconv_link
1011enable_mempool_chained_pool 1013enable_mempool_chained_pool
1012enable_mempool_ememoa_fixed 1014enable_mempool_ememoa_fixed
@@ -1037,8 +1039,6 @@ CXXFLAGS
1037CCC 1039CCC
1038CXXCPP 1040CXXCPP
1039PKG_CONFIG 1041PKG_CONFIG
1040PKG_CONFIG_PATH
1041PKG_CONFIG_LIBDIR
1042VALGRIND_CFLAGS 1042VALGRIND_CFLAGS
1043VALGRIND_LIBS 1043VALGRIND_LIBS
1044EVIL_CFLAGS 1044EVIL_CFLAGS
@@ -1115,9 +1115,8 @@ do
1115 fi 1115 fi
1116 1116
1117 case $ac_option in 1117 case $ac_option in
1118 *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; 1118 *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
1119 *=) ac_optarg= ;; 1119 *) ac_optarg=yes ;;
1120 *) ac_optarg=yes ;;
1121 esac 1120 esac
1122 1121
1123 # Accept the important Cygnus configure options, so we can diagnose typos. 1122 # Accept the important Cygnus configure options, so we can diagnose typos.
@@ -1162,7 +1161,7 @@ do
1162 ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` 1161 ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
1163 # Reject names that are not valid shell variable names. 1162 # Reject names that are not valid shell variable names.
1164 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && 1163 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
1165 as_fn_error $? "invalid feature name: $ac_useropt" 1164 as_fn_error "invalid feature name: $ac_useropt"
1166 ac_useropt_orig=$ac_useropt 1165 ac_useropt_orig=$ac_useropt
1167 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` 1166 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
1168 case $ac_user_opts in 1167 case $ac_user_opts in
@@ -1188,7 +1187,7 @@ do
1188 ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` 1187 ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
1189 # Reject names that are not valid shell variable names. 1188 # Reject names that are not valid shell variable names.
1190 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && 1189 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
1191 as_fn_error $? "invalid feature name: $ac_useropt" 1190 as_fn_error "invalid feature name: $ac_useropt"
1192 ac_useropt_orig=$ac_useropt 1191 ac_useropt_orig=$ac_useropt
1193 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` 1192 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
1194 case $ac_user_opts in 1193 case $ac_user_opts in
@@ -1392,7 +1391,7 @@ do
1392 ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` 1391 ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
1393 # Reject names that are not valid shell variable names. 1392 # Reject names that are not valid shell variable names.
1394 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && 1393 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
1395 as_fn_error $? "invalid package name: $ac_useropt" 1394 as_fn_error "invalid package name: $ac_useropt"
1396 ac_useropt_orig=$ac_useropt 1395 ac_useropt_orig=$ac_useropt
1397 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` 1396 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
1398 case $ac_user_opts in 1397 case $ac_user_opts in
@@ -1408,7 +1407,7 @@ do
1408 ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` 1407 ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
1409 # Reject names that are not valid shell variable names. 1408 # Reject names that are not valid shell variable names.
1410 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && 1409 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
1411 as_fn_error $? "invalid package name: $ac_useropt" 1410 as_fn_error "invalid package name: $ac_useropt"
1412 ac_useropt_orig=$ac_useropt 1411 ac_useropt_orig=$ac_useropt
1413 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` 1412 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
1414 case $ac_user_opts in 1413 case $ac_user_opts in
@@ -1438,8 +1437,8 @@ do
1438 | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) 1437 | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
1439 x_libraries=$ac_optarg ;; 1438 x_libraries=$ac_optarg ;;
1440 1439
1441 -*) as_fn_error $? "unrecognized option: \`$ac_option' 1440 -*) as_fn_error "unrecognized option: \`$ac_option'
1442Try \`$0 --help' for more information" 1441Try \`$0 --help' for more information."
1443 ;; 1442 ;;
1444 1443
1445 *=*) 1444 *=*)
@@ -1447,7 +1446,7 @@ Try \`$0 --help' for more information"
1447 # Reject names that are not valid shell variable names. 1446 # Reject names that are not valid shell variable names.
1448 case $ac_envvar in #( 1447 case $ac_envvar in #(
1449 '' | [0-9]* | *[!_$as_cr_alnum]* ) 1448 '' | [0-9]* | *[!_$as_cr_alnum]* )
1450 as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; 1449 as_fn_error "invalid variable name: \`$ac_envvar'" ;;
1451 esac 1450 esac
1452 eval $ac_envvar=\$ac_optarg 1451 eval $ac_envvar=\$ac_optarg
1453 export $ac_envvar ;; 1452 export $ac_envvar ;;
@@ -1465,13 +1464,13 @@ done
1465 1464
1466if test -n "$ac_prev"; then 1465if test -n "$ac_prev"; then
1467 ac_option=--`echo $ac_prev | sed 's/_/-/g'` 1466 ac_option=--`echo $ac_prev | sed 's/_/-/g'`
1468 as_fn_error $? "missing argument to $ac_option" 1467 as_fn_error "missing argument to $ac_option"
1469fi 1468fi
1470 1469
1471if test -n "$ac_unrecognized_opts"; then 1470if test -n "$ac_unrecognized_opts"; then
1472 case $enable_option_checking in 1471 case $enable_option_checking in
1473 no) ;; 1472 no) ;;
1474 fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; 1473 fatal) as_fn_error "unrecognized options: $ac_unrecognized_opts" ;;
1475 *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; 1474 *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
1476 esac 1475 esac
1477fi 1476fi
@@ -1494,7 +1493,7 @@ do
1494 [\\/$]* | ?:[\\/]* ) continue;; 1493 [\\/$]* | ?:[\\/]* ) continue;;
1495 NONE | '' ) case $ac_var in *prefix ) continue;; esac;; 1494 NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
1496 esac 1495 esac
1497 as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" 1496 as_fn_error "expected an absolute directory name for --$ac_var: $ac_val"
1498done 1497done
1499 1498
1500# There might be people who depend on the old broken behavior: `$host' 1499# There might be people who depend on the old broken behavior: `$host'
@@ -1508,8 +1507,8 @@ target=$target_alias
1508if test "x$host_alias" != x; then 1507if test "x$host_alias" != x; then
1509 if test "x$build_alias" = x; then 1508 if test "x$build_alias" = x; then
1510 cross_compiling=maybe 1509 cross_compiling=maybe
1511 $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host. 1510 $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
1512 If a cross compiler is detected then cross compile mode will be used" >&2 1511 If a cross compiler is detected then cross compile mode will be used." >&2
1513 elif test "x$build_alias" != "x$host_alias"; then 1512 elif test "x$build_alias" != "x$host_alias"; then
1514 cross_compiling=yes 1513 cross_compiling=yes
1515 fi 1514 fi
@@ -1524,9 +1523,9 @@ test "$silent" = yes && exec 6>/dev/null
1524ac_pwd=`pwd` && test -n "$ac_pwd" && 1523ac_pwd=`pwd` && test -n "$ac_pwd" &&
1525ac_ls_di=`ls -di .` && 1524ac_ls_di=`ls -di .` &&
1526ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || 1525ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
1527 as_fn_error $? "working directory cannot be determined" 1526 as_fn_error "working directory cannot be determined"
1528test "X$ac_ls_di" = "X$ac_pwd_ls_di" || 1527test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
1529 as_fn_error $? "pwd does not report name of working directory" 1528 as_fn_error "pwd does not report name of working directory"
1530 1529
1531 1530
1532# Find the source files, if location was not specified. 1531# Find the source files, if location was not specified.
@@ -1565,11 +1564,11 @@ else
1565fi 1564fi
1566if test ! -r "$srcdir/$ac_unique_file"; then 1565if test ! -r "$srcdir/$ac_unique_file"; then
1567 test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." 1566 test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
1568 as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" 1567 as_fn_error "cannot find sources ($ac_unique_file) in $srcdir"
1569fi 1568fi
1570ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" 1569ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
1571ac_abs_confdir=`( 1570ac_abs_confdir=`(
1572 cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" 1571 cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error "$ac_msg"
1573 pwd)` 1572 pwd)`
1574# When building in place, set srcdir=. 1573# When building in place, set srcdir=.
1575if test "$ac_abs_confdir" = "$ac_pwd"; then 1574if test "$ac_abs_confdir" = "$ac_pwd"; then
@@ -1595,7 +1594,7 @@ if test "$ac_init_help" = "long"; then
1595 # Omit some internal or obsolete options to make the list less imposing. 1594 # Omit some internal or obsolete options to make the list less imposing.
1596 # This message is too long to be a string in the A/UX 3.1 sh. 1595 # This message is too long to be a string in the A/UX 3.1 sh.
1597 cat <<_ACEOF 1596 cat <<_ACEOF
1598\`configure' configures eina 1.1.0 to adapt to many kinds of systems. 1597\`configure' configures eina 1.1.99.67344 to adapt to many kinds of systems.
1599 1598
1600Usage: $0 [OPTION]... [VAR=VALUE]... 1599Usage: $0 [OPTION]... [VAR=VALUE]...
1601 1600
@@ -1609,7 +1608,7 @@ Configuration:
1609 --help=short display options specific to this package 1608 --help=short display options specific to this package
1610 --help=recursive display the short help of all the included packages 1609 --help=recursive display the short help of all the included packages
1611 -V, --version display version information and exit 1610 -V, --version display version information and exit
1612 -q, --quiet, --silent do not print \`checking ...' messages 1611 -q, --quiet, --silent do not print \`checking...' messages
1613 --cache-file=FILE cache test results in FILE [disabled] 1612 --cache-file=FILE cache test results in FILE [disabled]
1614 -C, --config-cache alias for \`--cache-file=config.cache' 1613 -C, --config-cache alias for \`--cache-file=config.cache'
1615 -n, --no-create do not create output files 1614 -n, --no-create do not create output files
@@ -1665,7 +1664,7 @@ fi
1665 1664
1666if test -n "$ac_init_help"; then 1665if test -n "$ac_init_help"; then
1667 case $ac_init_help in 1666 case $ac_init_help in
1668 short | recursive ) echo "Configuration of eina 1.1.0:";; 1667 short | recursive ) echo "Configuration of eina 1.1.99.67344:";;
1669 esac 1668 esac
1670 cat <<\_ACEOF 1669 cat <<\_ACEOF
1671 1670
@@ -1711,6 +1710,10 @@ Optional Features:
1711 usages, having it to report proper mempool leaks. 1710 usages, having it to report proper mempool leaks.
1712 --enable-ememoa build ememoa memory pool module [default=yes] 1711 --enable-ememoa build ememoa memory pool module [default=yes]
1713 --disable-assert turn off assertions 1712 --disable-assert turn off assertions
1713 --enable-debug-malloc enable debugging of malloc usage overhead in our
1714 allocator [default=enabled]
1715 --disable-log disable Eina_Log infrastructure completly
1716 [default=enabled]
1714 --enable-mempool-chained-pool 1717 --enable-mempool-chained-pool
1715 enable build of chained pool 1718 enable build of chained pool
1716 [default=${enable_chained_pool}] 1719 [default=${enable_chained_pool}]
@@ -1769,10 +1772,6 @@ Some influential environment variables:
1769 CXXFLAGS C++ compiler flags 1772 CXXFLAGS C++ compiler flags
1770 CXXCPP C++ preprocessor 1773 CXXCPP C++ preprocessor
1771 PKG_CONFIG path to pkg-config utility 1774 PKG_CONFIG path to pkg-config utility
1772 PKG_CONFIG_PATH
1773 directories to add to pkg-config's search path
1774 PKG_CONFIG_LIBDIR
1775 path overriding pkg-config's built-in search path
1776 VALGRIND_CFLAGS 1775 VALGRIND_CFLAGS
1777 C compiler flags for VALGRIND, overriding pkg-config 1776 C compiler flags for VALGRIND, overriding pkg-config
1778 VALGRIND_LIBS 1777 VALGRIND_LIBS
@@ -1861,10 +1860,10 @@ fi
1861test -n "$ac_init_help" && exit $ac_status 1860test -n "$ac_init_help" && exit $ac_status
1862if $ac_init_version; then 1861if $ac_init_version; then
1863 cat <<\_ACEOF 1862 cat <<\_ACEOF
1864eina configure 1.1.0 1863eina configure 1.1.99.67344
1865generated by GNU Autoconf 2.67 1864generated by GNU Autoconf 2.65
1866 1865
1867Copyright (C) 2010 Free Software Foundation, Inc. 1866Copyright (C) 2009 Free Software Foundation, Inc.
1868This configure script is free software; the Free Software Foundation 1867This configure script is free software; the Free Software Foundation
1869gives unlimited permission to copy, distribute and modify it. 1868gives unlimited permission to copy, distribute and modify it.
1870_ACEOF 1869_ACEOF
@@ -1934,7 +1933,7 @@ $as_echo "$ac_try_echo"; } >&5
1934 mv -f conftest.er1 conftest.err 1933 mv -f conftest.er1 conftest.err
1935 fi 1934 fi
1936 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 1935 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
1937 test $ac_status = 0; } > conftest.i && { 1936 test $ac_status = 0; } >/dev/null && {
1938 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || 1937 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
1939 test ! -s conftest.err 1938 test ! -s conftest.err
1940 }; then : 1939 }; then :
@@ -1958,10 +1957,10 @@ fi
1958ac_fn_c_check_header_mongrel () 1957ac_fn_c_check_header_mongrel ()
1959{ 1958{
1960 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 1959 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
1961 if eval "test \"\${$3+set}\"" = set; then : 1960 if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
1962 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 1961 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
1963$as_echo_n "checking for $2... " >&6; } 1962$as_echo_n "checking for $2... " >&6; }
1964if eval "test \"\${$3+set}\"" = set; then : 1963if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
1965 $as_echo_n "(cached) " >&6 1964 $as_echo_n "(cached) " >&6
1966fi 1965fi
1967eval ac_res=\$$3 1966eval ac_res=\$$3
@@ -1997,7 +1996,7 @@ if ac_fn_c_try_cpp "$LINENO"; then :
1997else 1996else
1998 ac_header_preproc=no 1997 ac_header_preproc=no
1999fi 1998fi
2000rm -f conftest.err conftest.i conftest.$ac_ext 1999rm -f conftest.err conftest.$ac_ext
2001{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 2000{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
2002$as_echo "$ac_header_preproc" >&6; } 2001$as_echo "$ac_header_preproc" >&6; }
2003 2002
@@ -2020,15 +2019,17 @@ $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
2020$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} 2019$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;}
2021 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 2020 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
2022$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} 2021$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
2023( $as_echo "## -------------------------------------------------------- ## 2022( cat <<\_ASBOX
2023## -------------------------------------------------------- ##
2024## Report this to enlightenment-devel@lists.sourceforge.net ## 2024## Report this to enlightenment-devel@lists.sourceforge.net ##
2025## -------------------------------------------------------- ##" 2025## -------------------------------------------------------- ##
2026_ASBOX
2026 ) | sed "s/^/$as_me: WARNING: /" >&2 2027 ) | sed "s/^/$as_me: WARNING: /" >&2
2027 ;; 2028 ;;
2028esac 2029esac
2029 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 2030 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
2030$as_echo_n "checking for $2... " >&6; } 2031$as_echo_n "checking for $2... " >&6; }
2031if eval "test \"\${$3+set}\"" = set; then : 2032if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
2032 $as_echo_n "(cached) " >&6 2033 $as_echo_n "(cached) " >&6
2033else 2034else
2034 eval "$3=\$ac_header_compiler" 2035 eval "$3=\$ac_header_compiler"
@@ -2092,7 +2093,7 @@ ac_fn_c_check_header_compile ()
2092 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 2093 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
2093 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 2094 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
2094$as_echo_n "checking for $2... " >&6; } 2095$as_echo_n "checking for $2... " >&6; }
2095if eval "test \"\${$3+set}\"" = set; then : 2096if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
2096 $as_echo_n "(cached) " >&6 2097 $as_echo_n "(cached) " >&6
2097else 2098else
2098 cat confdefs.h - <<_ACEOF >conftest.$ac_ext 2099 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -2168,7 +2169,7 @@ ac_fn_c_check_func ()
2168 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 2169 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
2169 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 2170 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
2170$as_echo_n "checking for $2... " >&6; } 2171$as_echo_n "checking for $2... " >&6; }
2171if eval "test \"\${$3+set}\"" = set; then : 2172if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
2172 $as_echo_n "(cached) " >&6 2173 $as_echo_n "(cached) " >&6
2173else 2174else
2174 cat confdefs.h - <<_ACEOF >conftest.$ac_ext 2175 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -2286,7 +2287,7 @@ $as_echo "$ac_try_echo"; } >&5
2286 mv -f conftest.er1 conftest.err 2287 mv -f conftest.er1 conftest.err
2287 fi 2288 fi
2288 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 2289 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
2289 test $ac_status = 0; } > conftest.i && { 2290 test $ac_status = 0; } >/dev/null && {
2290 test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || 2291 test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
2291 test ! -s conftest.err 2292 test ! -s conftest.err
2292 }; then : 2293 }; then :
@@ -2535,7 +2536,7 @@ ac_fn_c_check_type ()
2535 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 2536 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
2536 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 2537 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
2537$as_echo_n "checking for $2... " >&6; } 2538$as_echo_n "checking for $2... " >&6; }
2538if eval "test \"\${$3+set}\"" = set; then : 2539if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
2539 $as_echo_n "(cached) " >&6 2540 $as_echo_n "(cached) " >&6
2540else 2541else
2541 eval "$3=no" 2542 eval "$3=no"
@@ -2583,8 +2584,8 @@ cat >config.log <<_ACEOF
2583This file contains any messages produced by compilers while 2584This file contains any messages produced by compilers while
2584running configure, to aid debugging if configure makes a mistake. 2585running configure, to aid debugging if configure makes a mistake.
2585 2586
2586It was created by eina $as_me 1.1.0, which was 2587It was created by eina $as_me 1.1.99.67344, which was
2587generated by GNU Autoconf 2.67. Invocation command line was 2588generated by GNU Autoconf 2.65. Invocation command line was
2588 2589
2589 $ $0 $@ 2590 $ $0 $@
2590 2591
@@ -2694,9 +2695,11 @@ trap 'exit_status=$?
2694 { 2695 {
2695 echo 2696 echo
2696 2697
2697 $as_echo "## ---------------- ## 2698 cat <<\_ASBOX
2699## ---------------- ##
2698## Cache variables. ## 2700## Cache variables. ##
2699## ---------------- ##" 2701## ---------------- ##
2702_ASBOX
2700 echo 2703 echo
2701 # The following way of writing the cache mishandles newlines in values, 2704 # The following way of writing the cache mishandles newlines in values,
2702( 2705(
@@ -2730,9 +2733,11 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
2730) 2733)
2731 echo 2734 echo
2732 2735
2733 $as_echo "## ----------------- ## 2736 cat <<\_ASBOX
2737## ----------------- ##
2734## Output variables. ## 2738## Output variables. ##
2735## ----------------- ##" 2739## ----------------- ##
2740_ASBOX
2736 echo 2741 echo
2737 for ac_var in $ac_subst_vars 2742 for ac_var in $ac_subst_vars
2738 do 2743 do
@@ -2745,9 +2750,11 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
2745 echo 2750 echo
2746 2751
2747 if test -n "$ac_subst_files"; then 2752 if test -n "$ac_subst_files"; then
2748 $as_echo "## ------------------- ## 2753 cat <<\_ASBOX
2754## ------------------- ##
2749## File substitutions. ## 2755## File substitutions. ##
2750## ------------------- ##" 2756## ------------------- ##
2757_ASBOX
2751 echo 2758 echo
2752 for ac_var in $ac_subst_files 2759 for ac_var in $ac_subst_files
2753 do 2760 do
@@ -2761,9 +2768,11 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
2761 fi 2768 fi
2762 2769
2763 if test -s confdefs.h; then 2770 if test -s confdefs.h; then
2764 $as_echo "## ----------- ## 2771 cat <<\_ASBOX
2772## ----------- ##
2765## confdefs.h. ## 2773## confdefs.h. ##
2766## ----------- ##" 2774## ----------- ##
2775_ASBOX
2767 echo 2776 echo
2768 cat confdefs.h 2777 cat confdefs.h
2769 echo 2778 echo
@@ -2818,12 +2827,7 @@ _ACEOF
2818ac_site_file1=NONE 2827ac_site_file1=NONE
2819ac_site_file2=NONE 2828ac_site_file2=NONE
2820if test -n "$CONFIG_SITE"; then 2829if test -n "$CONFIG_SITE"; then
2821 # We do not want a PATH search for config.site. 2830 ac_site_file1=$CONFIG_SITE
2822 case $CONFIG_SITE in #((
2823 -*) ac_site_file1=./$CONFIG_SITE;;
2824 */*) ac_site_file1=$CONFIG_SITE;;
2825 *) ac_site_file1=./$CONFIG_SITE;;
2826 esac
2827elif test "x$prefix" != xNONE; then 2831elif test "x$prefix" != xNONE; then
2828 ac_site_file1=$prefix/share/config.site 2832 ac_site_file1=$prefix/share/config.site
2829 ac_site_file2=$prefix/etc/config.site 2833 ac_site_file2=$prefix/etc/config.site
@@ -2838,11 +2842,7 @@ do
2838 { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 2842 { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
2839$as_echo "$as_me: loading site script $ac_site_file" >&6;} 2843$as_echo "$as_me: loading site script $ac_site_file" >&6;}
2840 sed 's/^/| /' "$ac_site_file" >&5 2844 sed 's/^/| /' "$ac_site_file" >&5
2841 . "$ac_site_file" \ 2845 . "$ac_site_file"
2842 || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
2843$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
2844as_fn_error $? "failed to load site script $ac_site_file
2845See \`config.log' for more details" "$LINENO" 5 ; }
2846 fi 2846 fi
2847done 2847done
2848 2848
@@ -2918,7 +2918,7 @@ if $ac_cache_corrupted; then
2918$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 2918$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 2919 { $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;} 2920$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 2921 as_fn_error "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
2922fi 2922fi
2923## -------------------- ## 2923## -------------------- ##
2924## Main body of script. ## 2924## Main body of script. ##
@@ -2944,22 +2944,16 @@ am__api_version='1.11'
2944 2944
2945ac_aux_dir= 2945ac_aux_dir=
2946for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do 2946for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
2947 if test -f "$ac_dir/install-sh"; then 2947 for ac_t in install-sh install.sh shtool; do
2948 ac_aux_dir=$ac_dir 2948 if test -f "$ac_dir/$ac_t"; then
2949 ac_install_sh="$ac_aux_dir/install-sh -c" 2949 ac_aux_dir=$ac_dir
2950 break 2950 ac_install_sh="$ac_aux_dir/$ac_t -c"
2951 elif test -f "$ac_dir/install.sh"; then 2951 break 2
2952 ac_aux_dir=$ac_dir 2952 fi
2953 ac_install_sh="$ac_aux_dir/install.sh -c" 2953 done
2954 break
2955 elif test -f "$ac_dir/shtool"; then
2956 ac_aux_dir=$ac_dir
2957 ac_install_sh="$ac_aux_dir/shtool install -c"
2958 break
2959 fi
2960done 2954done
2961if test -z "$ac_aux_dir"; then 2955if test -z "$ac_aux_dir"; then
2962 as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 2956 as_fn_error "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
2963fi 2957fi
2964 2958
2965# These three variables are undocumented and unsupported, 2959# These three variables are undocumented and unsupported,
@@ -3075,11 +3069,11 @@ am_lf='
3075' 3069'
3076case `pwd` in 3070case `pwd` in
3077 *[\\\"\#\$\&\'\`$am_lf]*) 3071 *[\\\"\#\$\&\'\`$am_lf]*)
3078 as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5 ;; 3072 as_fn_error "unsafe absolute working directory name" "$LINENO" 5;;
3079esac 3073esac
3080case $srcdir in 3074case $srcdir in
3081 *[\\\"\#\$\&\'\`$am_lf\ \ ]*) 3075 *[\\\"\#\$\&\'\`$am_lf\ \ ]*)
3082 as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5 ;; 3076 as_fn_error "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;;
3083esac 3077esac
3084 3078
3085# Do `set' in a subshell so we don't clobber the current shell's 3079# Do `set' in a subshell so we don't clobber the current shell's
@@ -3101,7 +3095,7 @@ if (
3101 # if, for instance, CONFIG_SHELL is bash and it inherits a 3095 # if, for instance, CONFIG_SHELL is bash and it inherits a
3102 # broken ls alias from the environment. This has actually 3096 # broken ls alias from the environment. This has actually
3103 # happened. Such a system could not be considered "sane". 3097 # happened. Such a system could not be considered "sane".
3104 as_fn_error $? "ls -t appears to fail. Make sure there is not a broken 3098 as_fn_error "ls -t appears to fail. Make sure there is not a broken
3105alias in your environment" "$LINENO" 5 3099alias in your environment" "$LINENO" 5
3106 fi 3100 fi
3107 3101
@@ -3111,7 +3105,7 @@ then
3111 # Ok. 3105 # Ok.
3112 : 3106 :
3113else 3107else
3114 as_fn_error $? "newly created file is older than distributed files! 3108 as_fn_error "newly created file is older than distributed files!
3115Check your system clock" "$LINENO" 5 3109Check your system clock" "$LINENO" 5
3116fi 3110fi
3117{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 3111{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
@@ -3349,7 +3343,7 @@ done
3349$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } 3343$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
3350set x ${MAKE-make} 3344set x ${MAKE-make}
3351ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` 3345ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
3352if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\"" = set; then : 3346if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then :
3353 $as_echo_n "(cached) " >&6 3347 $as_echo_n "(cached) " >&6
3354else 3348else
3355 cat >conftest.make <<\_ACEOF 3349 cat >conftest.make <<\_ACEOF
@@ -3357,7 +3351,7 @@ SHELL = /bin/sh
3357all: 3351all:
3358 @echo '@@@%%%=$(MAKE)=@@@%%%' 3352 @echo '@@@%%%=$(MAKE)=@@@%%%'
3359_ACEOF 3353_ACEOF
3360# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. 3354# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
3361case `${MAKE-make} -f conftest.make 2>/dev/null` in 3355case `${MAKE-make} -f conftest.make 2>/dev/null` in
3362 *@@@%%%=?*=@@@%%%*) 3356 *@@@%%%=?*=@@@%%%*)
3363 eval ac_cv_prog_make_${ac_make}_set=yes;; 3357 eval ac_cv_prog_make_${ac_make}_set=yes;;
@@ -3391,7 +3385,7 @@ if test "`cd $srcdir && pwd`" != "`pwd`"; then
3391 am__isrc=' -I$(srcdir)' 3385 am__isrc=' -I$(srcdir)'
3392 # test to see if srcdir already configured 3386 # test to see if srcdir already configured
3393 if test -f $srcdir/config.status; then 3387 if test -f $srcdir/config.status; then
3394 as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 3388 as_fn_error "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
3395 fi 3389 fi
3396fi 3390fi
3397 3391
@@ -3407,7 +3401,7 @@ fi
3407 3401
3408# Define the identity of the package. 3402# Define the identity of the package.
3409 PACKAGE='eina' 3403 PACKAGE='eina'
3410 VERSION='1.1.0' 3404 VERSION='1.1.99.67344'
3411 3405
3412 3406
3413cat >>confdefs.h <<_ACEOF 3407cat >>confdefs.h <<_ACEOF
@@ -3822,8 +3816,8 @@ fi
3822 3816
3823test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 3817test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
3824$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 3818$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
3825as_fn_error $? "no acceptable C compiler found in \$PATH 3819as_fn_error "no acceptable C compiler found in \$PATH
3826See \`config.log' for more details" "$LINENO" 5 ; } 3820See \`config.log' for more details." "$LINENO" 5; }
3827 3821
3828# Provide some information about the compiler. 3822# Provide some information about the compiler.
3829$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 3823$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
@@ -3937,8 +3931,9 @@ sed 's/^/| /' conftest.$ac_ext >&5
3937 3931
3938{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 3932{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
3939$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 3933$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
3940as_fn_error 77 "C compiler cannot create executables 3934{ as_fn_set_status 77
3941See \`config.log' for more details" "$LINENO" 5 ; } 3935as_fn_error "C compiler cannot create executables
3936See \`config.log' for more details." "$LINENO" 5; }; }
3942else 3937else
3943 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 3938 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
3944$as_echo "yes" >&6; } 3939$as_echo "yes" >&6; }
@@ -3980,8 +3975,8 @@ done
3980else 3975else
3981 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 3976 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
3982$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 3977$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
3983as_fn_error $? "cannot compute suffix of executables: cannot compile and link 3978as_fn_error "cannot compute suffix of executables: cannot compile and link
3984See \`config.log' for more details" "$LINENO" 5 ; } 3979See \`config.log' for more details." "$LINENO" 5; }
3985fi 3980fi
3986rm -f conftest conftest$ac_cv_exeext 3981rm -f conftest conftest$ac_cv_exeext
3987{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 3982{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
@@ -4038,9 +4033,9 @@ $as_echo "$ac_try_echo"; } >&5
4038 else 4033 else
4039 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 4034 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
4040$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 4035$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
4041as_fn_error $? "cannot run C compiled programs. 4036as_fn_error "cannot run C compiled programs.
4042If you meant to cross compile, use \`--host'. 4037If you meant to cross compile, use \`--host'.
4043See \`config.log' for more details" "$LINENO" 5 ; } 4038See \`config.log' for more details." "$LINENO" 5; }
4044 fi 4039 fi
4045 fi 4040 fi
4046fi 4041fi
@@ -4091,8 +4086,8 @@ sed 's/^/| /' conftest.$ac_ext >&5
4091 4086
4092{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 4087{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
4093$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 4088$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
4094as_fn_error $? "cannot compute suffix of object files: cannot compile 4089as_fn_error "cannot compute suffix of object files: cannot compile
4095See \`config.log' for more details" "$LINENO" 5 ; } 4090See \`config.log' for more details." "$LINENO" 5; }
4096fi 4091fi
4097rm -f conftest.$ac_cv_objext conftest.$ac_ext 4092rm -f conftest.$ac_cv_objext conftest.$ac_ext
4098fi 4093fi
@@ -4482,7 +4477,7 @@ else
4482 # Broken: fails on valid input. 4477 # Broken: fails on valid input.
4483continue 4478continue
4484fi 4479fi
4485rm -f conftest.err conftest.i conftest.$ac_ext 4480rm -f conftest.err conftest.$ac_ext
4486 4481
4487 # OK, works on sane cases. Now check whether nonexistent headers 4482 # OK, works on sane cases. Now check whether nonexistent headers
4488 # can be detected and how. 4483 # can be detected and how.
@@ -4498,11 +4493,11 @@ else
4498ac_preproc_ok=: 4493ac_preproc_ok=:
4499break 4494break
4500fi 4495fi
4501rm -f conftest.err conftest.i conftest.$ac_ext 4496rm -f conftest.err conftest.$ac_ext
4502 4497
4503done 4498done
4504# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. 4499# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
4505rm -f conftest.i conftest.err conftest.$ac_ext 4500rm -f conftest.err conftest.$ac_ext
4506if $ac_preproc_ok; then : 4501if $ac_preproc_ok; then :
4507 break 4502 break
4508fi 4503fi
@@ -4541,7 +4536,7 @@ else
4541 # Broken: fails on valid input. 4536 # Broken: fails on valid input.
4542continue 4537continue
4543fi 4538fi
4544rm -f conftest.err conftest.i conftest.$ac_ext 4539rm -f conftest.err conftest.$ac_ext
4545 4540
4546 # OK, works on sane cases. Now check whether nonexistent headers 4541 # OK, works on sane cases. Now check whether nonexistent headers
4547 # can be detected and how. 4542 # can be detected and how.
@@ -4557,18 +4552,18 @@ else
4557ac_preproc_ok=: 4552ac_preproc_ok=:
4558break 4553break
4559fi 4554fi
4560rm -f conftest.err conftest.i conftest.$ac_ext 4555rm -f conftest.err conftest.$ac_ext
4561 4556
4562done 4557done
4563# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. 4558# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
4564rm -f conftest.i conftest.err conftest.$ac_ext 4559rm -f conftest.err conftest.$ac_ext
4565if $ac_preproc_ok; then : 4560if $ac_preproc_ok; then :
4566 4561
4567else 4562else
4568 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 4563 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
4569$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 4564$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
4570as_fn_error $? "C preprocessor \"$CPP\" fails sanity check 4565as_fn_error "C preprocessor \"$CPP\" fails sanity check
4571See \`config.log' for more details" "$LINENO" 5 ; } 4566See \`config.log' for more details." "$LINENO" 5; }
4572fi 4567fi
4573 4568
4574ac_ext=c 4569ac_ext=c
@@ -4629,7 +4624,7 @@ esac
4629 done 4624 done
4630IFS=$as_save_IFS 4625IFS=$as_save_IFS
4631 if test -z "$ac_cv_path_GREP"; then 4626 if test -z "$ac_cv_path_GREP"; then
4632 as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 4627 as_fn_error "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
4633 fi 4628 fi
4634else 4629else
4635 ac_cv_path_GREP=$GREP 4630 ac_cv_path_GREP=$GREP
@@ -4695,7 +4690,7 @@ esac
4695 done 4690 done
4696IFS=$as_save_IFS 4691IFS=$as_save_IFS
4697 if test -z "$ac_cv_path_EGREP"; then 4692 if test -z "$ac_cv_path_EGREP"; then
4698 as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 4693 as_fn_error "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
4699 fi 4694 fi
4700else 4695else
4701 ac_cv_path_EGREP=$EGREP 4696 ac_cv_path_EGREP=$EGREP
@@ -4827,7 +4822,8 @@ do :
4827 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` 4822 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
4828ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default 4823ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
4829" 4824"
4830if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : 4825eval as_val=\$$as_ac_Header
4826 if test "x$as_val" = x""yes; then :
4831 cat >>confdefs.h <<_ACEOF 4827 cat >>confdefs.h <<_ACEOF
4832#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 4828#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
4833_ACEOF 4829_ACEOF
@@ -5100,7 +5096,7 @@ fi
5100 5096
5101# Make sure we can run config.sub. 5097# Make sure we can run config.sub.
5102$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || 5098$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
5103 as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 5099 as_fn_error "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
5104 5100
5105{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 5101{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
5106$as_echo_n "checking build system type... " >&6; } 5102$as_echo_n "checking build system type... " >&6; }
@@ -5111,16 +5107,16 @@ else
5111test "x$ac_build_alias" = x && 5107test "x$ac_build_alias" = x &&
5112 ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` 5108 ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
5113test "x$ac_build_alias" = x && 5109test "x$ac_build_alias" = x &&
5114 as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 5110 as_fn_error "cannot guess build type; you must specify one" "$LINENO" 5
5115ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || 5111ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
5116 as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 5112 as_fn_error "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
5117 5113
5118fi 5114fi
5119{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 5115{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
5120$as_echo "$ac_cv_build" >&6; } 5116$as_echo "$ac_cv_build" >&6; }
5121case $ac_cv_build in 5117case $ac_cv_build in
5122*-*-*) ;; 5118*-*-*) ;;
5123*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5 ;; 5119*) as_fn_error "invalid value of canonical build" "$LINENO" 5;;
5124esac 5120esac
5125build=$ac_cv_build 5121build=$ac_cv_build
5126ac_save_IFS=$IFS; IFS='-' 5122ac_save_IFS=$IFS; IFS='-'
@@ -5145,7 +5141,7 @@ else
5145 ac_cv_host=$ac_cv_build 5141 ac_cv_host=$ac_cv_build
5146else 5142else
5147 ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || 5143 ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
5148 as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 5144 as_fn_error "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
5149fi 5145fi
5150 5146
5151fi 5147fi
@@ -5153,7 +5149,7 @@ fi
5153$as_echo "$ac_cv_host" >&6; } 5149$as_echo "$ac_cv_host" >&6; }
5154case $ac_cv_host in 5150case $ac_cv_host in
5155*-*-*) ;; 5151*-*-*) ;;
5156*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5 ;; 5152*) as_fn_error "invalid value of canonical host" "$LINENO" 5;;
5157esac 5153esac
5158host=$ac_cv_host 5154host=$ac_cv_host
5159ac_save_IFS=$IFS; IFS='-' 5155ac_save_IFS=$IFS; IFS='-'
@@ -5172,7 +5168,7 @@ case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
5172enable_win32_dll=yes 5168enable_win32_dll=yes
5173 5169
5174case $host in 5170case $host in
5175*-*-cygwin* | *-*-mingw* | *-*-pw32*) 5171*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*)
5176 if test -n "$ac_tool_prefix"; then 5172 if test -n "$ac_tool_prefix"; then
5177 # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. 5173 # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args.
5178set dummy ${ac_tool_prefix}as; ac_word=$2 5174set dummy ${ac_tool_prefix}as; ac_word=$2
@@ -5554,7 +5550,7 @@ esac
5554 done 5550 done
5555IFS=$as_save_IFS 5551IFS=$as_save_IFS
5556 if test -z "$ac_cv_path_SED"; then 5552 if test -z "$ac_cv_path_SED"; then
5557 as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 5553 as_fn_error "no acceptable sed could be found in \$PATH" "$LINENO" 5
5558 fi 5554 fi
5559else 5555else
5560 ac_cv_path_SED=$SED 5556 ac_cv_path_SED=$SED
@@ -5633,7 +5629,7 @@ esac
5633 done 5629 done
5634IFS=$as_save_IFS 5630IFS=$as_save_IFS
5635 if test -z "$ac_cv_path_FGREP"; then 5631 if test -z "$ac_cv_path_FGREP"; then
5636 as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 5632 as_fn_error "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
5637 fi 5633 fi
5638else 5634else
5639 ac_cv_path_FGREP=$FGREP 5635 ac_cv_path_FGREP=$FGREP
@@ -5749,7 +5745,7 @@ else
5749 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 5745 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
5750$as_echo "no" >&6; } 5746$as_echo "no" >&6; }
5751fi 5747fi
5752test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 5748test -z "$LD" && as_fn_error "no acceptable ld found in \$PATH" "$LINENO" 5
5753{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 5749{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
5754$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } 5750$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
5755if test "${lt_cv_prog_gnu_ld+set}" = set; then : 5751if test "${lt_cv_prog_gnu_ld+set}" = set; then :
@@ -5951,13 +5947,13 @@ if test "${lt_cv_nm_interface+set}" = set; then :
5951else 5947else
5952 lt_cv_nm_interface="BSD nm" 5948 lt_cv_nm_interface="BSD nm"
5953 echo "int some_variable = 0;" > conftest.$ac_ext 5949 echo "int some_variable = 0;" > conftest.$ac_ext
5954 (eval echo "\"\$as_me:5954: $ac_compile\"" >&5) 5950 (eval echo "\"\$as_me:5950: $ac_compile\"" >&5)
5955 (eval "$ac_compile" 2>conftest.err) 5951 (eval "$ac_compile" 2>conftest.err)
5956 cat conftest.err >&5 5952 cat conftest.err >&5
5957 (eval echo "\"\$as_me:5957: $NM \\\"conftest.$ac_objext\\\"\"" >&5) 5953 (eval echo "\"\$as_me:5953: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
5958 (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) 5954 (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
5959 cat conftest.err >&5 5955 cat conftest.err >&5
5960 (eval echo "\"\$as_me:5960: output\"" >&5) 5956 (eval echo "\"\$as_me:5956: output\"" >&5)
5961 cat conftest.out >&5 5957 cat conftest.out >&5
5962 if $GREP 'External.*some_variable' conftest.out > /dev/null; then 5958 if $GREP 'External.*some_variable' conftest.out > /dev/null; then
5963 lt_cv_nm_interface="MS dumpbin" 5959 lt_cv_nm_interface="MS dumpbin"
@@ -6003,7 +5999,7 @@ else
6003 lt_cv_sys_max_cmd_len=-1; 5999 lt_cv_sys_max_cmd_len=-1;
6004 ;; 6000 ;;
6005 6001
6006 cygwin* | mingw*) 6002 cygwin* | mingw* | cegcc*)
6007 # On Win9x/ME, this test blows up -- it succeeds, but takes 6003 # On Win9x/ME, this test blows up -- it succeeds, but takes
6008 # about 5 minutes as the teststring grows exponentially. 6004 # about 5 minutes as the teststring grows exponentially.
6009 # Worse, since 9x/ME are not pre-emptively multitasking, 6005 # Worse, since 9x/ME are not pre-emptively multitasking,
@@ -6204,6 +6200,104 @@ esac
6204 6200
6205 6201
6206 6202
6203if test -n "$ac_tool_prefix"; then
6204 # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
6205set dummy ${ac_tool_prefix}objdump; ac_word=$2
6206{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
6207$as_echo_n "checking for $ac_word... " >&6; }
6208if test "${ac_cv_prog_OBJDUMP+set}" = set; then :
6209 $as_echo_n "(cached) " >&6
6210else
6211 if test -n "$OBJDUMP"; then
6212 ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.
6213else
6214as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
6215for as_dir in $PATH
6216do
6217 IFS=$as_save_IFS
6218 test -z "$as_dir" && as_dir=.
6219 for ac_exec_ext in '' $ac_executable_extensions; do
6220 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
6221 ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
6222 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
6223 break 2
6224 fi
6225done
6226 done
6227IFS=$as_save_IFS
6228
6229fi
6230fi
6231OBJDUMP=$ac_cv_prog_OBJDUMP
6232if test -n "$OBJDUMP"; then
6233 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
6234$as_echo "$OBJDUMP" >&6; }
6235else
6236 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
6237$as_echo "no" >&6; }
6238fi
6239
6240
6241fi
6242if test -z "$ac_cv_prog_OBJDUMP"; then
6243 ac_ct_OBJDUMP=$OBJDUMP
6244 # Extract the first word of "objdump", so it can be a program name with args.
6245set dummy objdump; ac_word=$2
6246{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
6247$as_echo_n "checking for $ac_word... " >&6; }
6248if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then :
6249 $as_echo_n "(cached) " >&6
6250else
6251 if test -n "$ac_ct_OBJDUMP"; then
6252 ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test.
6253else
6254as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
6255for as_dir in $PATH
6256do
6257 IFS=$as_save_IFS
6258 test -z "$as_dir" && as_dir=.
6259 for ac_exec_ext in '' $ac_executable_extensions; do
6260 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
6261 ac_cv_prog_ac_ct_OBJDUMP="objdump"
6262 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
6263 break 2
6264 fi
6265done
6266 done
6267IFS=$as_save_IFS
6268
6269fi
6270fi
6271ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
6272if test -n "$ac_ct_OBJDUMP"; then
6273 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
6274$as_echo "$ac_ct_OBJDUMP" >&6; }
6275else
6276 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
6277$as_echo "no" >&6; }
6278fi
6279
6280 if test "x$ac_ct_OBJDUMP" = x; then
6281 OBJDUMP="false"
6282 else
6283 case $cross_compiling:$ac_tool_warned in
6284yes:)
6285{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
6286$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
6287ac_tool_warned=yes ;;
6288esac
6289 OBJDUMP=$ac_ct_OBJDUMP
6290 fi
6291else
6292 OBJDUMP="$ac_cv_prog_OBJDUMP"
6293fi
6294
6295test -z "$OBJDUMP" && OBJDUMP=objdump
6296
6297
6298
6299
6300
6207 6301
6208{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 6302{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5
6209$as_echo_n "checking how to recognize dependent libraries... " >&6; } 6303$as_echo_n "checking how to recognize dependent libraries... " >&6; }
@@ -6258,6 +6352,12 @@ mingw* | pw32*)
6258 fi 6352 fi
6259 ;; 6353 ;;
6260 6354
6355cegcc)
6356 # use the weaker test based on 'objdump'. See mingw*.
6357 lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
6358 lt_cv_file_magic_cmd='$OBJDUMP -f'
6359 ;;
6360
6261darwin* | rhapsody*) 6361darwin* | rhapsody*)
6262 lt_cv_deplibs_check_method=pass_all 6362 lt_cv_deplibs_check_method=pass_all
6263 ;; 6363 ;;
@@ -6316,7 +6416,7 @@ irix5* | irix6* | nonstopux*)
6316 ;; 6416 ;;
6317 6417
6318# This must be Linux ELF. 6418# This must be Linux ELF.
6319linux* | k*bsd*-gnu) 6419linux* | k*bsd*-gnu | kopensolaris*-gnu)
6320 lt_cv_deplibs_check_method=pass_all 6420 lt_cv_deplibs_check_method=pass_all
6321 ;; 6421 ;;
6322 6422
@@ -6796,7 +6896,7 @@ case $host_os in
6796aix*) 6896aix*)
6797 symcode='[BCDT]' 6897 symcode='[BCDT]'
6798 ;; 6898 ;;
6799cygwin* | mingw* | pw32*) 6899cygwin* | mingw* | pw32* | cegcc*)
6800 symcode='[ABCDGISTW]' 6900 symcode='[ABCDGISTW]'
6801 ;; 6901 ;;
6802hpux*) 6902hpux*)
@@ -7055,7 +7155,7 @@ ia64-*-hpux*)
7055 ;; 7155 ;;
7056*-*-irix6*) 7156*-*-irix6*)
7057 # Find out which ABI we are using. 7157 # Find out which ABI we are using.
7058 echo '#line 7058 "configure"' > conftest.$ac_ext 7158 echo '#line 7158 "configure"' > conftest.$ac_ext
7059 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 7159 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
7060 (eval $ac_compile) 2>&5 7160 (eval $ac_compile) 2>&5
7061 ac_status=$? 7161 ac_status=$?
@@ -8315,11 +8415,11 @@ else
8315 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ 8415 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
8316 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ 8416 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
8317 -e 's:$: $lt_compiler_flag:'` 8417 -e 's:$: $lt_compiler_flag:'`
8318 (eval echo "\"\$as_me:8318: $lt_compile\"" >&5) 8418 (eval echo "\"\$as_me:8418: $lt_compile\"" >&5)
8319 (eval "$lt_compile" 2>conftest.err) 8419 (eval "$lt_compile" 2>conftest.err)
8320 ac_status=$? 8420 ac_status=$?
8321 cat conftest.err >&5 8421 cat conftest.err >&5
8322 echo "$as_me:8322: \$? = $ac_status" >&5 8422 echo "$as_me:8422: \$? = $ac_status" >&5
8323 if (exit $ac_status) && test -s "$ac_outfile"; then 8423 if (exit $ac_status) && test -s "$ac_outfile"; then
8324 # The compiler can only warn and ignore the option if not recognized 8424 # The compiler can only warn and ignore the option if not recognized
8325 # So say no if there are warnings other than the usual output. 8425 # So say no if there are warnings other than the usual output.
@@ -8387,7 +8487,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
8387 # PIC is the default for these OSes. 8487 # PIC is the default for these OSes.
8388 ;; 8488 ;;
8389 8489
8390 mingw* | cygwin* | pw32* | os2*) 8490 mingw* | cygwin* | pw32* | os2* | cegcc*)
8391 # This hack is so that the source file can tell whether it is being 8491 # This hack is so that the source file can tell whether it is being
8392 # built for inclusion in a dll (and should export symbols for example). 8492 # built for inclusion in a dll (and should export symbols for example).
8393 # Although the cygwin gcc ignores -fPIC, still need this for old-style 8493 # Although the cygwin gcc ignores -fPIC, still need this for old-style
@@ -8402,10 +8502,11 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
8402 ;; 8502 ;;
8403 8503
8404 hpux*) 8504 hpux*)
8405 # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but 8505 # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
8406 # not for PA HP-UX. 8506 # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
8507 # sets the default TLS model and affects inlining.
8407 case $host_cpu in 8508 case $host_cpu in
8408 hppa*64*|ia64*) 8509 hppa*64*)
8409 # +Z the default 8510 # +Z the default
8410 ;; 8511 ;;
8411 *) 8512 *)
@@ -8455,7 +8556,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
8455 fi 8556 fi
8456 ;; 8557 ;;
8457 8558
8458 mingw* | cygwin* | pw32* | os2*) 8559 mingw* | cygwin* | pw32* | os2* | cegcc*)
8459 # This hack is so that the source file can tell whether it is being 8560 # This hack is so that the source file can tell whether it is being
8460 # built for inclusion in a dll (and should export symbols for example). 8561 # built for inclusion in a dll (and should export symbols for example).
8461 lt_prog_compiler_pic='-DDLL_EXPORT' 8562 lt_prog_compiler_pic='-DDLL_EXPORT'
@@ -8483,13 +8584,27 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
8483 lt_prog_compiler_static='-non_shared' 8584 lt_prog_compiler_static='-non_shared'
8484 ;; 8585 ;;
8485 8586
8486 linux* | k*bsd*-gnu) 8587 linux* | k*bsd*-gnu | kopensolaris*-gnu)
8487 case $cc_basename in 8588 case $cc_basename in
8488 icc* | ecc* | ifort*) 8589 # old Intel for x86_64 which still supported -KPIC.
8590 ecc*)
8489 lt_prog_compiler_wl='-Wl,' 8591 lt_prog_compiler_wl='-Wl,'
8490 lt_prog_compiler_pic='-KPIC' 8592 lt_prog_compiler_pic='-KPIC'
8491 lt_prog_compiler_static='-static' 8593 lt_prog_compiler_static='-static'
8492 ;; 8594 ;;
8595 # icc used to be incompatible with GCC.
8596 # ICC 10 doesn't accept -KPIC any more.
8597 icc* | ifort*)
8598 lt_prog_compiler_wl='-Wl,'
8599 lt_prog_compiler_pic='-fPIC'
8600 lt_prog_compiler_static='-static'
8601 ;;
8602 # Lahey Fortran 8.1.
8603 lf95*)
8604 lt_prog_compiler_wl='-Wl,'
8605 lt_prog_compiler_pic='--shared'
8606 lt_prog_compiler_static='--static'
8607 ;;
8493 pgcc* | pgf77* | pgf90* | pgf95*) 8608 pgcc* | pgf77* | pgf90* | pgf95*)
8494 # Portland Group compilers (*not* the Pentium gcc compiler, 8609 # Portland Group compilers (*not* the Pentium gcc compiler,
8495 # which looks to be a dead project) 8610 # which looks to be a dead project)
@@ -8639,11 +8754,11 @@ else
8639 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ 8754 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
8640 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ 8755 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
8641 -e 's:$: $lt_compiler_flag:'` 8756 -e 's:$: $lt_compiler_flag:'`
8642 (eval echo "\"\$as_me:8642: $lt_compile\"" >&5) 8757 (eval echo "\"\$as_me:8757: $lt_compile\"" >&5)
8643 (eval "$lt_compile" 2>conftest.err) 8758 (eval "$lt_compile" 2>conftest.err)
8644 ac_status=$? 8759 ac_status=$?
8645 cat conftest.err >&5 8760 cat conftest.err >&5
8646 echo "$as_me:8646: \$? = $ac_status" >&5 8761 echo "$as_me:8761: \$? = $ac_status" >&5
8647 if (exit $ac_status) && test -s "$ac_outfile"; then 8762 if (exit $ac_status) && test -s "$ac_outfile"; then
8648 # The compiler can only warn and ignore the option if not recognized 8763 # The compiler can only warn and ignore the option if not recognized
8649 # So say no if there are warnings other than the usual output. 8764 # So say no if there are warnings other than the usual output.
@@ -8744,11 +8859,11 @@ else
8744 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ 8859 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
8745 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ 8860 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
8746 -e 's:$: $lt_compiler_flag:'` 8861 -e 's:$: $lt_compiler_flag:'`
8747 (eval echo "\"\$as_me:8747: $lt_compile\"" >&5) 8862 (eval echo "\"\$as_me:8862: $lt_compile\"" >&5)
8748 (eval "$lt_compile" 2>out/conftest.err) 8863 (eval "$lt_compile" 2>out/conftest.err)
8749 ac_status=$? 8864 ac_status=$?
8750 cat out/conftest.err >&5 8865 cat out/conftest.err >&5
8751 echo "$as_me:8751: \$? = $ac_status" >&5 8866 echo "$as_me:8866: \$? = $ac_status" >&5
8752 if (exit $ac_status) && test -s out/conftest2.$ac_objext 8867 if (exit $ac_status) && test -s out/conftest2.$ac_objext
8753 then 8868 then
8754 # The compiler can only warn and ignore the option if not recognized 8869 # The compiler can only warn and ignore the option if not recognized
@@ -8799,11 +8914,11 @@ else
8799 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ 8914 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
8800 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ 8915 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
8801 -e 's:$: $lt_compiler_flag:'` 8916 -e 's:$: $lt_compiler_flag:'`
8802 (eval echo "\"\$as_me:8802: $lt_compile\"" >&5) 8917 (eval echo "\"\$as_me:8917: $lt_compile\"" >&5)
8803 (eval "$lt_compile" 2>out/conftest.err) 8918 (eval "$lt_compile" 2>out/conftest.err)
8804 ac_status=$? 8919 ac_status=$?
8805 cat out/conftest.err >&5 8920 cat out/conftest.err >&5
8806 echo "$as_me:8806: \$? = $ac_status" >&5 8921 echo "$as_me:8921: \$? = $ac_status" >&5
8807 if (exit $ac_status) && test -s out/conftest2.$ac_objext 8922 if (exit $ac_status) && test -s out/conftest2.$ac_objext
8808 then 8923 then
8809 # The compiler can only warn and ignore the option if not recognized 8924 # The compiler can only warn and ignore the option if not recognized
@@ -8903,7 +9018,7 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie
8903 extract_expsyms_cmds= 9018 extract_expsyms_cmds=
8904 9019
8905 case $host_os in 9020 case $host_os in
8906 cygwin* | mingw* | pw32*) 9021 cygwin* | mingw* | pw32* | cegcc*)
8907 # FIXME: the MSVC++ port hasn't been tested in a loooong time 9022 # FIXME: the MSVC++ port hasn't been tested in a loooong time
8908 # When not using gcc, we currently assume that we are using 9023 # When not using gcc, we currently assume that we are using
8909 # Microsoft Visual C++. 9024 # Microsoft Visual C++.
@@ -8918,6 +9033,9 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie
8918 openbsd*) 9033 openbsd*)
8919 with_gnu_ld=no 9034 with_gnu_ld=no
8920 ;; 9035 ;;
9036 linux* | k*bsd*-gnu)
9037 link_all_deplibs=no
9038 ;;
8921 esac 9039 esac
8922 9040
8923 ld_shlibs=yes 9041 ld_shlibs=yes
@@ -8939,6 +9057,7 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie
8939 fi 9057 fi
8940 supports_anon_versioning=no 9058 supports_anon_versioning=no
8941 case `$LD -v 2>&1` in 9059 case `$LD -v 2>&1` in
9060 *GNU\ gold*) supports_anon_versioning=yes ;;
8942 *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 9061 *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
8943 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... 9062 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
8944 *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... 9063 *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
@@ -8990,7 +9109,7 @@ _LT_EOF
8990 fi 9109 fi
8991 ;; 9110 ;;
8992 9111
8993 cygwin* | mingw* | pw32*) 9112 cygwin* | mingw* | pw32* | cegcc*)
8994 # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, 9113 # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
8995 # as there is no search path for DLLs. 9114 # as there is no search path for DLLs.
8996 hardcode_libdir_flag_spec='-L$libdir' 9115 hardcode_libdir_flag_spec='-L$libdir'
@@ -9030,7 +9149,7 @@ _LT_EOF
9030 archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' 9149 archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
9031 ;; 9150 ;;
9032 9151
9033 gnu* | linux* | tpf* | k*bsd*-gnu) 9152 gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
9034 tmp_diet=no 9153 tmp_diet=no
9035 if test "$host_os" = linux-dietlibc; then 9154 if test "$host_os" = linux-dietlibc; then
9036 case $cc_basename in 9155 case $cc_basename in
@@ -9056,6 +9175,9 @@ _LT_EOF
9056 tmp_addflag=' -i_dynamic -nofor_main' ;; 9175 tmp_addflag=' -i_dynamic -nofor_main' ;;
9057 ifc* | ifort*) # Intel Fortran compiler 9176 ifc* | ifort*) # Intel Fortran compiler
9058 tmp_addflag=' -nofor_main' ;; 9177 tmp_addflag=' -nofor_main' ;;
9178 lf95*) # Lahey Fortran 8.1
9179 whole_archive_flag_spec=
9180 tmp_sharedflag='--shared' ;;
9059 xl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) 9181 xl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
9060 tmp_sharedflag='-qmkshrobj' 9182 tmp_sharedflag='-qmkshrobj'
9061 tmp_addflag= ;; 9183 tmp_addflag= ;;
@@ -9288,6 +9410,7 @@ _LT_EOF
9288 fi 9410 fi
9289 fi 9411 fi
9290 9412
9413 export_dynamic_flag_spec='${wl}-bexpall'
9291 # It seems that -bexpall does not export symbols beginning with 9414 # It seems that -bexpall does not export symbols beginning with
9292 # underscore (_), so it is better to generate a list of symbols to export. 9415 # underscore (_), so it is better to generate a list of symbols to export.
9293 always_export_symbols=yes 9416 always_export_symbols=yes
@@ -9400,7 +9523,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
9400 export_dynamic_flag_spec=-rdynamic 9523 export_dynamic_flag_spec=-rdynamic
9401 ;; 9524 ;;
9402 9525
9403 cygwin* | mingw* | pw32*) 9526 cygwin* | mingw* | pw32* | cegcc*)
9404 # When not using gcc, we currently assume that we are using 9527 # When not using gcc, we currently assume that we are using
9405 # Microsoft Visual C++. 9528 # Microsoft Visual C++.
9406 # hardcode_libdir_flag_spec is actually meaningless, as there is 9529 # hardcode_libdir_flag_spec is actually meaningless, as there is
@@ -9431,7 +9554,11 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
9431 whole_archive_flag_spec='' 9554 whole_archive_flag_spec=''
9432 link_all_deplibs=yes 9555 link_all_deplibs=yes
9433 allow_undefined_flag="$_lt_dar_allow_undefined" 9556 allow_undefined_flag="$_lt_dar_allow_undefined"
9434 if test "$GCC" = "yes"; then 9557 case $cc_basename in
9558 ifort*) _lt_dar_can_shared=yes ;;
9559 *) _lt_dar_can_shared=$GCC ;;
9560 esac
9561 if test "$_lt_dar_can_shared" = "yes"; then
9435 output_verbose_link_cmd=echo 9562 output_verbose_link_cmd=echo
9436 archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" 9563 archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
9437 module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" 9564 module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
@@ -9523,7 +9650,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
9523 archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' 9650 archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
9524 ;; 9651 ;;
9525 ia64*) 9652 ia64*)
9526 archive_cmds='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' 9653 archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
9527 ;; 9654 ;;
9528 *) 9655 *)
9529 archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' 9656 archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
@@ -10239,14 +10366,14 @@ bsdi[45]*)
10239 # libtool to hard-code these into programs 10366 # libtool to hard-code these into programs
10240 ;; 10367 ;;
10241 10368
10242cygwin* | mingw* | pw32*) 10369cygwin* | mingw* | pw32* | cegcc*)
10243 version_type=windows 10370 version_type=windows
10244 shrext_cmds=".dll" 10371 shrext_cmds=".dll"
10245 need_version=no 10372 need_version=no
10246 need_lib_prefix=no 10373 need_lib_prefix=no
10247 10374
10248 case $GCC,$host_os in 10375 case $GCC,$host_os in
10249 yes,cygwin* | yes,mingw* | yes,pw32*) 10376 yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
10250 library_names_spec='$libname.dll.a' 10377 library_names_spec='$libname.dll.a'
10251 # DLL is installed to $(libdir)/../bin by postinstall_cmds 10378 # DLL is installed to $(libdir)/../bin by postinstall_cmds
10252 postinstall_cmds='base_file=`basename \${file}`~ 10379 postinstall_cmds='base_file=`basename \${file}`~
@@ -10269,7 +10396,7 @@ cygwin* | mingw* | pw32*)
10269 soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' 10396 soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
10270 sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" 10397 sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
10271 ;; 10398 ;;
10272 mingw*) 10399 mingw* | cegcc*)
10273 # MinGW DLLs use traditional 'lib' prefix 10400 # MinGW DLLs use traditional 'lib' prefix
10274 soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' 10401 soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
10275 sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` 10402 sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
@@ -10484,7 +10611,7 @@ linux*oldld* | linux*aout* | linux*coff*)
10484 ;; 10611 ;;
10485 10612
10486# This must be Linux ELF. 10613# This must be Linux ELF.
10487linux* | k*bsd*-gnu) 10614linux* | k*bsd*-gnu | kopensolaris*-gnu)
10488 version_type=linux 10615 version_type=linux
10489 need_lib_prefix=no 10616 need_lib_prefix=no
10490 need_version=no 10617 need_version=no
@@ -10722,7 +10849,7 @@ tpf*)
10722 version_type=linux 10849 version_type=linux
10723 need_lib_prefix=no 10850 need_lib_prefix=no
10724 need_version=no 10851 need_version=no
10725 library_name_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' 10852 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
10726 shlibpath_var=LD_LIBRARY_PATH 10853 shlibpath_var=LD_LIBRARY_PATH
10727 shlibpath_overrides_runpath=no 10854 shlibpath_overrides_runpath=no
10728 hardcode_into_libs=yes 10855 hardcode_into_libs=yes
@@ -10899,7 +11026,7 @@ else
10899 lt_cv_dlopen_self=yes 11026 lt_cv_dlopen_self=yes
10900 ;; 11027 ;;
10901 11028
10902 mingw* | pw32*) 11029 mingw* | pw32* | cegcc*)
10903 lt_cv_dlopen="LoadLibrary" 11030 lt_cv_dlopen="LoadLibrary"
10904 lt_cv_dlopen_libs= 11031 lt_cv_dlopen_libs=
10905 ;; 11032 ;;
@@ -11171,7 +11298,7 @@ else
11171 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 11298 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
11172 lt_status=$lt_dlunknown 11299 lt_status=$lt_dlunknown
11173 cat > conftest.$ac_ext <<_LT_EOF 11300 cat > conftest.$ac_ext <<_LT_EOF
11174#line 11174 "configure" 11301#line 11301 "configure"
11175#include "confdefs.h" 11302#include "confdefs.h"
11176 11303
11177#if HAVE_DLFCN_H 11304#if HAVE_DLFCN_H
@@ -11212,10 +11339,6 @@ else
11212# endif 11339# endif
11213#endif 11340#endif
11214 11341
11215#ifdef __cplusplus
11216extern "C" void exit (int);
11217#endif
11218
11219void fnord() { int i=42;} 11342void fnord() { int i=42;}
11220int main () 11343int main ()
11221{ 11344{
@@ -11231,7 +11354,7 @@ int main ()
11231 else 11354 else
11232 puts (dlerror ()); 11355 puts (dlerror ());
11233 11356
11234 exit (status); 11357 return status;
11235} 11358}
11236_LT_EOF 11359_LT_EOF
11237 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 11360 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
@@ -11271,7 +11394,7 @@ else
11271 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 11394 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
11272 lt_status=$lt_dlunknown 11395 lt_status=$lt_dlunknown
11273 cat > conftest.$ac_ext <<_LT_EOF 11396 cat > conftest.$ac_ext <<_LT_EOF
11274#line 11274 "configure" 11397#line 11397 "configure"
11275#include "confdefs.h" 11398#include "confdefs.h"
11276 11399
11277#if HAVE_DLFCN_H 11400#if HAVE_DLFCN_H
@@ -11312,10 +11435,6 @@ else
11312# endif 11435# endif
11313#endif 11436#endif
11314 11437
11315#ifdef __cplusplus
11316extern "C" void exit (int);
11317#endif
11318
11319void fnord() { int i=42;} 11438void fnord() { int i=42;}
11320int main () 11439int main ()
11321{ 11440{
@@ -11331,7 +11450,7 @@ int main ()
11331 else 11450 else
11332 puts (dlerror ()); 11451 puts (dlerror ());
11333 11452
11334 exit (status); 11453 return status;
11335} 11454}
11336_LT_EOF 11455_LT_EOF
11337 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 11456 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
@@ -11519,15 +11638,15 @@ _ACEOF
11519 11638
11520 11639
11521cat >>confdefs.h <<_ACEOF 11640cat >>confdefs.h <<_ACEOF
11522#define VMIC 0 11641#define VMIC 99
11523_ACEOF 11642_ACEOF
11524 11643
11525 11644
11526cat >>confdefs.h <<_ACEOF 11645cat >>confdefs.h <<_ACEOF
11527#define VREV 0 11646#define VREV 67344
11528_ACEOF 11647_ACEOF
11529 11648
11530version_info="2:0:1" 11649version_info="2:99:1"
11531release_info="" 11650release_info=""
11532 11651
11533 11652
@@ -11549,7 +11668,7 @@ case "$host_os" in
11549 MODULE_ARCH="$host_os-$host_cpu" 11668 MODULE_ARCH="$host_os-$host_cpu"
11550 ;; 11669 ;;
11551 *) 11670 *)
11552 MODULE_ARCH="$host_os-$host_cpu-1.1.0" 11671 MODULE_ARCH="$host_os-$host_cpu-1.1.99"
11553 ;; 11672 ;;
11554esac 11673esac
11555 11674
@@ -12047,7 +12166,7 @@ if test "x${_efl_enable_win32_threads}" = "xyes" ; then
12047 mingw*) 12166 mingw*)
12048 ;; 12167 ;;
12049 *) 12168 *)
12050 as_fn_error $? "Win32 threads support requested but non Windows system found." "$LINENO" 5 12169 as_fn_error "Win32 threads support requested but non Windows system found." "$LINENO" 5
12051 ;; 12170 ;;
12052 esac 12171 esac
12053fi 12172fi
@@ -12055,7 +12174,7 @@ fi
12055if test "x${_efl_enable_posix_threads}" = "xyes" ; then 12174if test "x${_efl_enable_posix_threads}" = "xyes" ; then
12056 case "$host_os" in 12175 case "$host_os" in
12057 mingw*) 12176 mingw*)
12058 as_fn_error $? "POSIX threads support requested but Windows system found." "$LINENO" 5 12177 as_fn_error "POSIX threads support requested but Windows system found." "$LINENO" 5
12059 ;; 12178 ;;
12060 *) 12179 *)
12061 ;; 12180 ;;
@@ -12118,7 +12237,7 @@ $as_echo_n "checking whether system support POSIX threads... " >&6; }
12118{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${_efl_have_posix_threads}" >&5 12237{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${_efl_have_posix_threads}" >&5
12119$as_echo "${_efl_have_posix_threads}" >&6; } 12238$as_echo "${_efl_have_posix_threads}" >&6; }
12120if test "$x{_efl_enable_posix_threads}" = "xyes" && test "x${_efl_have_posix_threads}" = "xno"; then 12239if test "$x{_efl_enable_posix_threads}" = "xyes" && test "x${_efl_have_posix_threads}" = "xno"; then
12121 as_fn_error $? "POSIX threads support requested but not found." "$LINENO" 5 12240 as_fn_error "POSIX threads support requested but not found." "$LINENO" 5
12122fi 12241fi
12123 12242
12124EFL_PTHREAD_CFLAGS="" 12243EFL_PTHREAD_CFLAGS=""
@@ -12379,7 +12498,7 @@ _ACEOF
12379 12498
12380 with_max_log_level="${withval}" 12499 with_max_log_level="${withval}"
12381 else 12500 else
12382 as_fn_error $? "--with-internal-maximum-log-level takes a decimal number, got \"${withval}\" instead." "$LINENO" 5 12501 as_fn_error "--with-internal-maximum-log-level takes a decimal number, got \"${withval}\" instead." "$LINENO" 5
12383 fi 12502 fi
12384 fi 12503 fi
12385 12504
@@ -12793,8 +12912,8 @@ fi
12793 12912
12794test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 12913test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
12795$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 12914$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
12796as_fn_error $? "no acceptable C compiler found in \$PATH 12915as_fn_error "no acceptable C compiler found in \$PATH
12797See \`config.log' for more details" "$LINENO" 5 ; } 12916See \`config.log' for more details." "$LINENO" 5; }
12798 12917
12799# Provide some information about the compiler. 12918# Provide some information about the compiler.
12800$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 12919$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
@@ -13970,7 +14089,7 @@ else
13970 # Broken: fails on valid input. 14089 # Broken: fails on valid input.
13971continue 14090continue
13972fi 14091fi
13973rm -f conftest.err conftest.i conftest.$ac_ext 14092rm -f conftest.err conftest.$ac_ext
13974 14093
13975 # OK, works on sane cases. Now check whether nonexistent headers 14094 # OK, works on sane cases. Now check whether nonexistent headers
13976 # can be detected and how. 14095 # can be detected and how.
@@ -13986,11 +14105,11 @@ else
13986ac_preproc_ok=: 14105ac_preproc_ok=:
13987break 14106break
13988fi 14107fi
13989rm -f conftest.err conftest.i conftest.$ac_ext 14108rm -f conftest.err conftest.$ac_ext
13990 14109
13991done 14110done
13992# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. 14111# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
13993rm -f conftest.i conftest.err conftest.$ac_ext 14112rm -f conftest.err conftest.$ac_ext
13994if $ac_preproc_ok; then : 14113if $ac_preproc_ok; then :
13995 break 14114 break
13996fi 14115fi
@@ -14029,7 +14148,7 @@ else
14029 # Broken: fails on valid input. 14148 # Broken: fails on valid input.
14030continue 14149continue
14031fi 14150fi
14032rm -f conftest.err conftest.i conftest.$ac_ext 14151rm -f conftest.err conftest.$ac_ext
14033 14152
14034 # OK, works on sane cases. Now check whether nonexistent headers 14153 # OK, works on sane cases. Now check whether nonexistent headers
14035 # can be detected and how. 14154 # can be detected and how.
@@ -14045,11 +14164,11 @@ else
14045ac_preproc_ok=: 14164ac_preproc_ok=:
14046break 14165break
14047fi 14166fi
14048rm -f conftest.err conftest.i conftest.$ac_ext 14167rm -f conftest.err conftest.$ac_ext
14049 14168
14050done 14169done
14051# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. 14170# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
14052rm -f conftest.i conftest.err conftest.$ac_ext 14171rm -f conftest.err conftest.$ac_ext
14053if $ac_preproc_ok; then : 14172if $ac_preproc_ok; then :
14054 14173
14055else 14174else
@@ -14278,7 +14397,7 @@ else
14278 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 14397 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
14279$as_echo "no" >&6; } 14398$as_echo "no" >&6; }
14280fi 14399fi
14281test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 14400test -z "$LD" && as_fn_error "no acceptable ld found in \$PATH" "$LINENO" 5
14282{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 14401{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
14283$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } 14402$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
14284if test "${lt_cv_prog_gnu_ld+set}" = set; then : 14403if test "${lt_cv_prog_gnu_ld+set}" = set; then :
@@ -14439,6 +14558,7 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie
14439 fi 14558 fi
14440 fi 14559 fi
14441 14560
14561 export_dynamic_flag_spec_CXX='${wl}-bexpall'
14442 # It seems that -bexpall does not export symbols beginning with 14562 # It seems that -bexpall does not export symbols beginning with
14443 # underscore (_), so it is better to generate a list of symbols to 14563 # underscore (_), so it is better to generate a list of symbols to
14444 # export. 14564 # export.
@@ -14555,7 +14675,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
14555 esac 14675 esac
14556 ;; 14676 ;;
14557 14677
14558 cygwin* | mingw* | pw32*) 14678 cygwin* | mingw* | pw32* | cegcc*)
14559 # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, 14679 # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless,
14560 # as there is no search path for DLLs. 14680 # as there is no search path for DLLs.
14561 hardcode_libdir_flag_spec_CXX='-L$libdir' 14681 hardcode_libdir_flag_spec_CXX='-L$libdir'
@@ -14588,7 +14708,11 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
14588 whole_archive_flag_spec_CXX='' 14708 whole_archive_flag_spec_CXX=''
14589 link_all_deplibs_CXX=yes 14709 link_all_deplibs_CXX=yes
14590 allow_undefined_flag_CXX="$_lt_dar_allow_undefined" 14710 allow_undefined_flag_CXX="$_lt_dar_allow_undefined"
14591 if test "$GCC" = "yes"; then 14711 case $cc_basename in
14712 ifort*) _lt_dar_can_shared=yes ;;
14713 *) _lt_dar_can_shared=$GCC ;;
14714 esac
14715 if test "$_lt_dar_can_shared" = "yes"; then
14592 output_verbose_link_cmd=echo 14716 output_verbose_link_cmd=echo
14593 archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" 14717 archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
14594 module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" 14718 module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
@@ -14798,7 +14922,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
14798 inherit_rpath_CXX=yes 14922 inherit_rpath_CXX=yes
14799 ;; 14923 ;;
14800 14924
14801 linux* | k*bsd*-gnu) 14925 linux* | k*bsd*-gnu | kopensolaris*-gnu)
14802 case $cc_basename in 14926 case $cc_basename in
14803 KCC*) 14927 KCC*)
14804 # Kuck and Associates, Inc. (KAI) C++ Compiler 14928 # Kuck and Associates, Inc. (KAI) C++ Compiler
@@ -15505,7 +15629,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
15505 beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) 15629 beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
15506 # PIC is the default for these OSes. 15630 # PIC is the default for these OSes.
15507 ;; 15631 ;;
15508 mingw* | cygwin* | os2* | pw32*) 15632 mingw* | cygwin* | os2* | pw32* | cegcc*)
15509 # This hack is so that the source file can tell whether it is being 15633 # This hack is so that the source file can tell whether it is being
15510 # built for inclusion in a dll (and should export symbols for example). 15634 # built for inclusion in a dll (and should export symbols for example).
15511 # Although the cygwin gcc ignores -fPIC, still need this for old-style 15635 # Although the cygwin gcc ignores -fPIC, still need this for old-style
@@ -15531,10 +15655,11 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
15531 fi 15655 fi
15532 ;; 15656 ;;
15533 hpux*) 15657 hpux*)
15534 # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but 15658 # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
15535 # not for PA HP-UX. 15659 # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
15660 # sets the default TLS model and affects inlining.
15536 case $host_cpu in 15661 case $host_cpu in
15537 hppa*64*|ia64*) 15662 hppa*64*)
15538 ;; 15663 ;;
15539 *) 15664 *)
15540 lt_prog_compiler_pic_CXX='-fPIC' 15665 lt_prog_compiler_pic_CXX='-fPIC'
@@ -15625,19 +15750,26 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
15625 ;; 15750 ;;
15626 esac 15751 esac
15627 ;; 15752 ;;
15628 linux* | k*bsd*-gnu) 15753 linux* | k*bsd*-gnu | kopensolaris*-gnu)
15629 case $cc_basename in 15754 case $cc_basename in
15630 KCC*) 15755 KCC*)
15631 # KAI C++ Compiler 15756 # KAI C++ Compiler
15632 lt_prog_compiler_wl_CXX='--backend -Wl,' 15757 lt_prog_compiler_wl_CXX='--backend -Wl,'
15633 lt_prog_compiler_pic_CXX='-fPIC' 15758 lt_prog_compiler_pic_CXX='-fPIC'
15634 ;; 15759 ;;
15635 icpc* | ecpc* ) 15760 ecpc* )
15636 # Intel C++ 15761 # old Intel C++ for x86_64 which still supported -KPIC.
15637 lt_prog_compiler_wl_CXX='-Wl,' 15762 lt_prog_compiler_wl_CXX='-Wl,'
15638 lt_prog_compiler_pic_CXX='-KPIC' 15763 lt_prog_compiler_pic_CXX='-KPIC'
15639 lt_prog_compiler_static_CXX='-static' 15764 lt_prog_compiler_static_CXX='-static'
15640 ;; 15765 ;;
15766 icpc* )
15767 # Intel C++, used to be incompatible with GCC.
15768 # ICC 10 doesn't accept -KPIC any more.
15769 lt_prog_compiler_wl_CXX='-Wl,'
15770 lt_prog_compiler_pic_CXX='-fPIC'
15771 lt_prog_compiler_static_CXX='-static'
15772 ;;
15641 pgCC* | pgcpp*) 15773 pgCC* | pgcpp*)
15642 # Portland Group C++ compiler 15774 # Portland Group C++ compiler
15643 lt_prog_compiler_wl_CXX='-Wl,' 15775 lt_prog_compiler_wl_CXX='-Wl,'
@@ -15806,11 +15938,11 @@ else
15806 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ 15938 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
15807 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ 15939 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
15808 -e 's:$: $lt_compiler_flag:'` 15940 -e 's:$: $lt_compiler_flag:'`
15809 (eval echo "\"\$as_me:15809: $lt_compile\"" >&5) 15941 (eval echo "\"\$as_me:15941: $lt_compile\"" >&5)
15810 (eval "$lt_compile" 2>conftest.err) 15942 (eval "$lt_compile" 2>conftest.err)
15811 ac_status=$? 15943 ac_status=$?
15812 cat conftest.err >&5 15944 cat conftest.err >&5
15813 echo "$as_me:15813: \$? = $ac_status" >&5 15945 echo "$as_me:15945: \$? = $ac_status" >&5
15814 if (exit $ac_status) && test -s "$ac_outfile"; then 15946 if (exit $ac_status) && test -s "$ac_outfile"; then
15815 # The compiler can only warn and ignore the option if not recognized 15947 # The compiler can only warn and ignore the option if not recognized
15816 # So say no if there are warnings other than the usual output. 15948 # So say no if there are warnings other than the usual output.
@@ -15905,11 +16037,11 @@ else
15905 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ 16037 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
15906 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ 16038 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
15907 -e 's:$: $lt_compiler_flag:'` 16039 -e 's:$: $lt_compiler_flag:'`
15908 (eval echo "\"\$as_me:15908: $lt_compile\"" >&5) 16040 (eval echo "\"\$as_me:16040: $lt_compile\"" >&5)
15909 (eval "$lt_compile" 2>out/conftest.err) 16041 (eval "$lt_compile" 2>out/conftest.err)
15910 ac_status=$? 16042 ac_status=$?
15911 cat out/conftest.err >&5 16043 cat out/conftest.err >&5
15912 echo "$as_me:15912: \$? = $ac_status" >&5 16044 echo "$as_me:16044: \$? = $ac_status" >&5
15913 if (exit $ac_status) && test -s out/conftest2.$ac_objext 16045 if (exit $ac_status) && test -s out/conftest2.$ac_objext
15914 then 16046 then
15915 # The compiler can only warn and ignore the option if not recognized 16047 # The compiler can only warn and ignore the option if not recognized
@@ -15957,11 +16089,11 @@ else
15957 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ 16089 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
15958 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ 16090 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
15959 -e 's:$: $lt_compiler_flag:'` 16091 -e 's:$: $lt_compiler_flag:'`
15960 (eval echo "\"\$as_me:15960: $lt_compile\"" >&5) 16092 (eval echo "\"\$as_me:16092: $lt_compile\"" >&5)
15961 (eval "$lt_compile" 2>out/conftest.err) 16093 (eval "$lt_compile" 2>out/conftest.err)
15962 ac_status=$? 16094 ac_status=$?
15963 cat out/conftest.err >&5 16095 cat out/conftest.err >&5
15964 echo "$as_me:15964: \$? = $ac_status" >&5 16096 echo "$as_me:16096: \$? = $ac_status" >&5
15965 if (exit $ac_status) && test -s out/conftest2.$ac_objext 16097 if (exit $ac_status) && test -s out/conftest2.$ac_objext
15966 then 16098 then
15967 # The compiler can only warn and ignore the option if not recognized 16099 # The compiler can only warn and ignore the option if not recognized
@@ -16030,7 +16162,7 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie
16030 pw32*) 16162 pw32*)
16031 export_symbols_cmds_CXX="$ltdll_cmds" 16163 export_symbols_cmds_CXX="$ltdll_cmds"
16032 ;; 16164 ;;
16033 cygwin* | mingw*) 16165 cygwin* | mingw* | cegcc*)
16034 export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;/^.*[ ]__nm__/s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' 16166 export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;/^.*[ ]__nm__/s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
16035 ;; 16167 ;;
16036 linux* | k*bsd*-gnu) 16168 linux* | k*bsd*-gnu)
@@ -16291,14 +16423,14 @@ bsdi[45]*)
16291 # libtool to hard-code these into programs 16423 # libtool to hard-code these into programs
16292 ;; 16424 ;;
16293 16425
16294cygwin* | mingw* | pw32*) 16426cygwin* | mingw* | pw32* | cegcc*)
16295 version_type=windows 16427 version_type=windows
16296 shrext_cmds=".dll" 16428 shrext_cmds=".dll"
16297 need_version=no 16429 need_version=no
16298 need_lib_prefix=no 16430 need_lib_prefix=no
16299 16431
16300 case $GCC,$host_os in 16432 case $GCC,$host_os in
16301 yes,cygwin* | yes,mingw* | yes,pw32*) 16433 yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
16302 library_names_spec='$libname.dll.a' 16434 library_names_spec='$libname.dll.a'
16303 # DLL is installed to $(libdir)/../bin by postinstall_cmds 16435 # DLL is installed to $(libdir)/../bin by postinstall_cmds
16304 postinstall_cmds='base_file=`basename \${file}`~ 16436 postinstall_cmds='base_file=`basename \${file}`~
@@ -16321,7 +16453,7 @@ cygwin* | mingw* | pw32*)
16321 soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' 16453 soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
16322 sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" 16454 sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
16323 ;; 16455 ;;
16324 mingw*) 16456 mingw* | cegcc*)
16325 # MinGW DLLs use traditional 'lib' prefix 16457 # MinGW DLLs use traditional 'lib' prefix
16326 soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' 16458 soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
16327 sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` 16459 sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
@@ -16535,7 +16667,7 @@ linux*oldld* | linux*aout* | linux*coff*)
16535 ;; 16667 ;;
16536 16668
16537# This must be Linux ELF. 16669# This must be Linux ELF.
16538linux* | k*bsd*-gnu) 16670linux* | k*bsd*-gnu | kopensolaris*-gnu)
16539 version_type=linux 16671 version_type=linux
16540 need_lib_prefix=no 16672 need_lib_prefix=no
16541 need_version=no 16673 need_version=no
@@ -16773,7 +16905,7 @@ tpf*)
16773 version_type=linux 16905 version_type=linux
16774 need_lib_prefix=no 16906 need_lib_prefix=no
16775 need_version=no 16907 need_version=no
16776 library_name_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' 16908 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
16777 shlibpath_var=LD_LIBRARY_PATH 16909 shlibpath_var=LD_LIBRARY_PATH
16778 shlibpath_overrides_runpath=no 16910 shlibpath_overrides_runpath=no
16779 hardcode_into_libs=yes 16911 hardcode_into_libs=yes
@@ -16909,10 +17041,6 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
16909# pkg-config 17041# pkg-config
16910 17042
16911 17043
16912
16913
16914
16915
16916if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then 17044if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
16917 if test -n "$ac_tool_prefix"; then 17045 if test -n "$ac_tool_prefix"; then
16918 # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. 17046 # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
@@ -17025,6 +17153,7 @@ $as_echo "yes" >&6; }
17025$as_echo "no" >&6; } 17153$as_echo "no" >&6; }
17026 PKG_CONFIG="" 17154 PKG_CONFIG=""
17027 fi 17155 fi
17156
17028fi 17157fi
17029 17158
17030# Check whether pkg-config supports Requires.private 17159# Check whether pkg-config supports Requires.private
@@ -17220,10 +17349,11 @@ pkg_failed=no
17220{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for VALGRIND" >&5 17349{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for VALGRIND" >&5
17221$as_echo_n "checking for VALGRIND... " >&6; } 17350$as_echo_n "checking for VALGRIND... " >&6; }
17222 17351
17223if test -n "$VALGRIND_CFLAGS"; then 17352if test -n "$PKG_CONFIG"; then
17224 pkg_cv_VALGRIND_CFLAGS="$VALGRIND_CFLAGS" 17353 if test -n "$VALGRIND_CFLAGS"; then
17225 elif test -n "$PKG_CONFIG"; then 17354 pkg_cv_VALGRIND_CFLAGS="$VALGRIND_CFLAGS"
17226 if test -n "$PKG_CONFIG" && \ 17355 else
17356 if test -n "$PKG_CONFIG" && \
17227 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"valgrind >= 2.4.0\""; } >&5 17357 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"valgrind >= 2.4.0\""; } >&5
17228 ($PKG_CONFIG --exists --print-errors "valgrind >= 2.4.0") 2>&5 17358 ($PKG_CONFIG --exists --print-errors "valgrind >= 2.4.0") 2>&5
17229 ac_status=$? 17359 ac_status=$?
@@ -17233,13 +17363,15 @@ if test -n "$VALGRIND_CFLAGS"; then
17233else 17363else
17234 pkg_failed=yes 17364 pkg_failed=yes
17235fi 17365fi
17236 else 17366 fi
17237 pkg_failed=untried 17367else
17368 pkg_failed=untried
17238fi 17369fi
17239if test -n "$VALGRIND_LIBS"; then 17370if test -n "$PKG_CONFIG"; then
17240 pkg_cv_VALGRIND_LIBS="$VALGRIND_LIBS" 17371 if test -n "$VALGRIND_LIBS"; then
17241 elif test -n "$PKG_CONFIG"; then 17372 pkg_cv_VALGRIND_LIBS="$VALGRIND_LIBS"
17242 if test -n "$PKG_CONFIG" && \ 17373 else
17374 if test -n "$PKG_CONFIG" && \
17243 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"valgrind >= 2.4.0\""; } >&5 17375 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"valgrind >= 2.4.0\""; } >&5
17244 ($PKG_CONFIG --exists --print-errors "valgrind >= 2.4.0") 2>&5 17376 ($PKG_CONFIG --exists --print-errors "valgrind >= 2.4.0") 2>&5
17245 ac_status=$? 17377 ac_status=$?
@@ -17249,15 +17381,14 @@ if test -n "$VALGRIND_LIBS"; then
17249else 17381else
17250 pkg_failed=yes 17382 pkg_failed=yes
17251fi 17383fi
17252 else 17384 fi
17253 pkg_failed=untried 17385else
17386 pkg_failed=untried
17254fi 17387fi
17255 17388
17256 17389
17257 17390
17258if test $pkg_failed = yes; then 17391if test $pkg_failed = yes; then
17259 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
17260$as_echo "no" >&6; }
17261 17392
17262if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 17393if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
17263 _pkg_short_errors_supported=yes 17394 _pkg_short_errors_supported=yes
@@ -17265,30 +17396,30 @@ else
17265 _pkg_short_errors_supported=no 17396 _pkg_short_errors_supported=no
17266fi 17397fi
17267 if test $_pkg_short_errors_supported = yes; then 17398 if test $_pkg_short_errors_supported = yes; then
17268 VALGRIND_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "valgrind >= 2.4.0" 2>&1` 17399 VALGRIND_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "valgrind >= 2.4.0"`
17269 else 17400 else
17270 VALGRIND_PKG_ERRORS=`$PKG_CONFIG --print-errors "valgrind >= 2.4.0" 2>&1` 17401 VALGRIND_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "valgrind >= 2.4.0"`
17271 fi 17402 fi
17272 # Put the nasty error message in config.log where it belongs 17403 # Put the nasty error message in config.log where it belongs
17273 echo "$VALGRIND_PKG_ERRORS" >&5 17404 echo "$VALGRIND_PKG_ERRORS" >&5
17274 17405
17406 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
17407$as_echo "no" >&6; }
17275 17408
17276 17409
17277$as_echo "#define NVALGRIND 1" >>confdefs.h 17410$as_echo "#define NVALGRIND 1" >>confdefs.h
17278 17411
17279 if test "x${want_valgrind}" = "xyes"; then 17412 if test "x${want_valgrind}" = "xyes"; then
17280 as_fn_error $? "Valgrind >= 2.4.0 is required" "$LINENO" 5 17413 as_fn_error "Valgrind >= 2.4.0 is required" "$LINENO" 5
17281 fi 17414 fi
17282 17415
17283elif test $pkg_failed = untried; then 17416elif test $pkg_failed = untried; then
17284 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
17285$as_echo "no" >&6; }
17286 17417
17287 17418
17288$as_echo "#define NVALGRIND 1" >>confdefs.h 17419$as_echo "#define NVALGRIND 1" >>confdefs.h
17289 17420
17290 if test "x${want_valgrind}" = "xyes"; then 17421 if test "x${want_valgrind}" = "xyes"; then
17291 as_fn_error $? "Valgrind >= 2.4.0 is required" "$LINENO" 5 17422 as_fn_error "Valgrind >= 2.4.0 is required" "$LINENO" 5
17292 fi 17423 fi
17293 17424
17294else 17425else
@@ -17318,10 +17449,11 @@ pkg_failed=no
17318{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EVIL" >&5 17449{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EVIL" >&5
17319$as_echo_n "checking for EVIL... " >&6; } 17450$as_echo_n "checking for EVIL... " >&6; }
17320 17451
17321if test -n "$EVIL_CFLAGS"; then 17452if test -n "$PKG_CONFIG"; then
17322 pkg_cv_EVIL_CFLAGS="$EVIL_CFLAGS" 17453 if test -n "$EVIL_CFLAGS"; then
17323 elif test -n "$PKG_CONFIG"; then 17454 pkg_cv_EVIL_CFLAGS="$EVIL_CFLAGS"
17324 if test -n "$PKG_CONFIG" && \ 17455 else
17456 if test -n "$PKG_CONFIG" && \
17325 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evil >= 1.0.0\""; } >&5 17457 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evil >= 1.0.0\""; } >&5
17326 ($PKG_CONFIG --exists --print-errors "evil >= 1.0.0") 2>&5 17458 ($PKG_CONFIG --exists --print-errors "evil >= 1.0.0") 2>&5
17327 ac_status=$? 17459 ac_status=$?
@@ -17331,13 +17463,15 @@ if test -n "$EVIL_CFLAGS"; then
17331else 17463else
17332 pkg_failed=yes 17464 pkg_failed=yes
17333fi 17465fi
17334 else 17466 fi
17335 pkg_failed=untried 17467else
17468 pkg_failed=untried
17336fi 17469fi
17337if test -n "$EVIL_LIBS"; then 17470if test -n "$PKG_CONFIG"; then
17338 pkg_cv_EVIL_LIBS="$EVIL_LIBS" 17471 if test -n "$EVIL_LIBS"; then
17339 elif test -n "$PKG_CONFIG"; then 17472 pkg_cv_EVIL_LIBS="$EVIL_LIBS"
17340 if test -n "$PKG_CONFIG" && \ 17473 else
17474 if test -n "$PKG_CONFIG" && \
17341 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evil >= 1.0.0\""; } >&5 17475 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evil >= 1.0.0\""; } >&5
17342 ($PKG_CONFIG --exists --print-errors "evil >= 1.0.0") 2>&5 17476 ($PKG_CONFIG --exists --print-errors "evil >= 1.0.0") 2>&5
17343 ac_status=$? 17477 ac_status=$?
@@ -17347,15 +17481,14 @@ if test -n "$EVIL_LIBS"; then
17347else 17481else
17348 pkg_failed=yes 17482 pkg_failed=yes
17349fi 17483fi
17350 else 17484 fi
17351 pkg_failed=untried 17485else
17486 pkg_failed=untried
17352fi 17487fi
17353 17488
17354 17489
17355 17490
17356if test $pkg_failed = yes; then 17491if test $pkg_failed = yes; then
17357 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
17358$as_echo "no" >&6; }
17359 17492
17360if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 17493if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
17361 _pkg_short_errors_supported=yes 17494 _pkg_short_errors_supported=yes
@@ -17363,14 +17496,14 @@ else
17363 _pkg_short_errors_supported=no 17496 _pkg_short_errors_supported=no
17364fi 17497fi
17365 if test $_pkg_short_errors_supported = yes; then 17498 if test $_pkg_short_errors_supported = yes; then
17366 EVIL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "evil >= 1.0.0" 2>&1` 17499 EVIL_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "evil >= 1.0.0"`
17367 else 17500 else
17368 EVIL_PKG_ERRORS=`$PKG_CONFIG --print-errors "evil >= 1.0.0" 2>&1` 17501 EVIL_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "evil >= 1.0.0"`
17369 fi 17502 fi
17370 # Put the nasty error message in config.log where it belongs 17503 # Put the nasty error message in config.log where it belongs
17371 echo "$EVIL_PKG_ERRORS" >&5 17504 echo "$EVIL_PKG_ERRORS" >&5
17372 17505
17373 as_fn_error $? "Package requirements (evil >= 1.0.0) were not met: 17506 as_fn_error "Package requirements (evil >= 1.0.0) were not met:
17374 17507
17375$EVIL_PKG_ERRORS 17508$EVIL_PKG_ERRORS
17376 17509
@@ -17379,13 +17512,12 @@ installed software in a non-standard prefix.
17379 17512
17380Alternatively, you may set the environment variables EVIL_CFLAGS 17513Alternatively, you may set the environment variables EVIL_CFLAGS
17381and EVIL_LIBS to avoid the need to call pkg-config. 17514and EVIL_LIBS to avoid the need to call pkg-config.
17382See the pkg-config man page for more details." "$LINENO" 5 17515See the pkg-config man page for more details.
17516" "$LINENO" 5
17383elif test $pkg_failed = untried; then 17517elif test $pkg_failed = untried; then
17384 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
17385$as_echo "no" >&6; }
17386 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 17518 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
17387$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 17519$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
17388as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it 17520as_fn_error "The pkg-config script could not be found or is too old. Make sure it
17389is in your PATH or set the PKG_CONFIG environment variable to the full 17521is in your PATH or set the PKG_CONFIG environment variable to the full
17390path to pkg-config. 17522path to pkg-config.
17391 17523
@@ -17394,13 +17526,13 @@ and EVIL_LIBS to avoid the need to call pkg-config.
17394See the pkg-config man page for more details. 17526See the pkg-config man page for more details.
17395 17527
17396To get pkg-config, see <http://pkg-config.freedesktop.org/>. 17528To get pkg-config, see <http://pkg-config.freedesktop.org/>.
17397See \`config.log' for more details" "$LINENO" 5 ; } 17529See \`config.log' for more details." "$LINENO" 5; }
17398else 17530else
17399 EVIL_CFLAGS=$pkg_cv_EVIL_CFLAGS 17531 EVIL_CFLAGS=$pkg_cv_EVIL_CFLAGS
17400 EVIL_LIBS=$pkg_cv_EVIL_LIBS 17532 EVIL_LIBS=$pkg_cv_EVIL_LIBS
17401 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 17533 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
17402$as_echo "yes" >&6; } 17534$as_echo "yes" >&6; }
17403 17535 :
17404fi 17536fi
17405 17537
17406$as_echo "#define HAVE_EVIL 1" >>confdefs.h 17538$as_echo "#define HAVE_EVIL 1" >>confdefs.h
@@ -17438,10 +17570,11 @@ pkg_failed=no
17438{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EMEMOA" >&5 17570{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EMEMOA" >&5
17439$as_echo_n "checking for EMEMOA... " >&6; } 17571$as_echo_n "checking for EMEMOA... " >&6; }
17440 17572
17441if test -n "$EMEMOA_CFLAGS"; then 17573if test -n "$PKG_CONFIG"; then
17442 pkg_cv_EMEMOA_CFLAGS="$EMEMOA_CFLAGS" 17574 if test -n "$EMEMOA_CFLAGS"; then
17443 elif test -n "$PKG_CONFIG"; then 17575 pkg_cv_EMEMOA_CFLAGS="$EMEMOA_CFLAGS"
17444 if test -n "$PKG_CONFIG" && \ 17576 else
17577 if test -n "$PKG_CONFIG" && \
17445 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ememoa >= 0.0.26 \""; } >&5 17578 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ememoa >= 0.0.26 \""; } >&5
17446 ($PKG_CONFIG --exists --print-errors "ememoa >= 0.0.26 ") 2>&5 17579 ($PKG_CONFIG --exists --print-errors "ememoa >= 0.0.26 ") 2>&5
17447 ac_status=$? 17580 ac_status=$?
@@ -17451,13 +17584,15 @@ if test -n "$EMEMOA_CFLAGS"; then
17451else 17584else
17452 pkg_failed=yes 17585 pkg_failed=yes
17453fi 17586fi
17454 else 17587 fi
17455 pkg_failed=untried 17588else
17589 pkg_failed=untried
17456fi 17590fi
17457if test -n "$EMEMOA_LIBS"; then 17591if test -n "$PKG_CONFIG"; then
17458 pkg_cv_EMEMOA_LIBS="$EMEMOA_LIBS" 17592 if test -n "$EMEMOA_LIBS"; then
17459 elif test -n "$PKG_CONFIG"; then 17593 pkg_cv_EMEMOA_LIBS="$EMEMOA_LIBS"
17460 if test -n "$PKG_CONFIG" && \ 17594 else
17595 if test -n "$PKG_CONFIG" && \
17461 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ememoa >= 0.0.26 \""; } >&5 17596 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ememoa >= 0.0.26 \""; } >&5
17462 ($PKG_CONFIG --exists --print-errors "ememoa >= 0.0.26 ") 2>&5 17597 ($PKG_CONFIG --exists --print-errors "ememoa >= 0.0.26 ") 2>&5
17463 ac_status=$? 17598 ac_status=$?
@@ -17467,15 +17602,14 @@ if test -n "$EMEMOA_LIBS"; then
17467else 17602else
17468 pkg_failed=yes 17603 pkg_failed=yes
17469fi 17604fi
17470 else 17605 fi
17471 pkg_failed=untried 17606else
17607 pkg_failed=untried
17472fi 17608fi
17473 17609
17474 17610
17475 17611
17476if test $pkg_failed = yes; then 17612if test $pkg_failed = yes; then
17477 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
17478$as_echo "no" >&6; }
17479 17613
17480if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 17614if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
17481 _pkg_short_errors_supported=yes 17615 _pkg_short_errors_supported=yes
@@ -17483,17 +17617,17 @@ else
17483 _pkg_short_errors_supported=no 17617 _pkg_short_errors_supported=no
17484fi 17618fi
17485 if test $_pkg_short_errors_supported = yes; then 17619 if test $_pkg_short_errors_supported = yes; then
17486 EMEMOA_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "ememoa >= 0.0.26 " 2>&1` 17620 EMEMOA_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "ememoa >= 0.0.26 "`
17487 else 17621 else
17488 EMEMOA_PKG_ERRORS=`$PKG_CONFIG --print-errors "ememoa >= 0.0.26 " 2>&1` 17622 EMEMOA_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "ememoa >= 0.0.26 "`
17489 fi 17623 fi
17490 # Put the nasty error message in config.log where it belongs 17624 # Put the nasty error message in config.log where it belongs
17491 echo "$EMEMOA_PKG_ERRORS" >&5 17625 echo "$EMEMOA_PKG_ERRORS" >&5
17492 17626
17493 enable_ememoa="no" 17627 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
17494elif test $pkg_failed = untried; then
17495 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
17496$as_echo "no" >&6; } 17628$as_echo "no" >&6; }
17629 enable_ememoa="no"
17630elif test $pkg_failed = untried; then
17497 enable_ememoa="no" 17631 enable_ememoa="no"
17498else 17632else
17499 EMEMOA_CFLAGS=$pkg_cv_EMEMOA_CFLAGS 17633 EMEMOA_CFLAGS=$pkg_cv_EMEMOA_CFLAGS
@@ -17509,10 +17643,11 @@ pkg_failed=no
17509{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ECORE_EVAS" >&5 17643{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ECORE_EVAS" >&5
17510$as_echo_n "checking for ECORE_EVAS... " >&6; } 17644$as_echo_n "checking for ECORE_EVAS... " >&6; }
17511 17645
17512if test -n "$ECORE_EVAS_CFLAGS"; then 17646if test -n "$PKG_CONFIG"; then
17513 pkg_cv_ECORE_EVAS_CFLAGS="$ECORE_EVAS_CFLAGS" 17647 if test -n "$ECORE_EVAS_CFLAGS"; then
17514 elif test -n "$PKG_CONFIG"; then 17648 pkg_cv_ECORE_EVAS_CFLAGS="$ECORE_EVAS_CFLAGS"
17515 if test -n "$PKG_CONFIG" && \ 17649 else
17650 if test -n "$PKG_CONFIG" && \
17516 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ecore-evas ecore evas\""; } >&5 17651 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ecore-evas ecore evas\""; } >&5
17517 ($PKG_CONFIG --exists --print-errors "ecore-evas ecore evas") 2>&5 17652 ($PKG_CONFIG --exists --print-errors "ecore-evas ecore evas") 2>&5
17518 ac_status=$? 17653 ac_status=$?
@@ -17522,13 +17657,15 @@ if test -n "$ECORE_EVAS_CFLAGS"; then
17522else 17657else
17523 pkg_failed=yes 17658 pkg_failed=yes
17524fi 17659fi
17525 else 17660 fi
17526 pkg_failed=untried 17661else
17662 pkg_failed=untried
17527fi 17663fi
17528if test -n "$ECORE_EVAS_LIBS"; then 17664if test -n "$PKG_CONFIG"; then
17529 pkg_cv_ECORE_EVAS_LIBS="$ECORE_EVAS_LIBS" 17665 if test -n "$ECORE_EVAS_LIBS"; then
17530 elif test -n "$PKG_CONFIG"; then 17666 pkg_cv_ECORE_EVAS_LIBS="$ECORE_EVAS_LIBS"
17531 if test -n "$PKG_CONFIG" && \ 17667 else
17668 if test -n "$PKG_CONFIG" && \
17532 { { $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
17533 ($PKG_CONFIG --exists --print-errors "ecore-evas ecore evas") 2>&5 17670 ($PKG_CONFIG --exists --print-errors "ecore-evas ecore evas") 2>&5
17534 ac_status=$? 17671 ac_status=$?
@@ -17538,15 +17675,14 @@ if test -n "$ECORE_EVAS_LIBS"; then
17538else 17675else
17539 pkg_failed=yes 17676 pkg_failed=yes
17540fi 17677fi
17541 else 17678 fi
17542 pkg_failed=untried 17679else
17680 pkg_failed=untried
17543fi 17681fi
17544 17682
17545 17683
17546 17684
17547if test $pkg_failed = yes; then 17685if test $pkg_failed = yes; then
17548 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
17549$as_echo "no" >&6; }
17550 17686
17551if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 17687if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
17552 _pkg_short_errors_supported=yes 17688 _pkg_short_errors_supported=yes
@@ -17554,17 +17690,17 @@ else
17554 _pkg_short_errors_supported=no 17690 _pkg_short_errors_supported=no
17555fi 17691fi
17556 if test $_pkg_short_errors_supported = yes; then 17692 if test $_pkg_short_errors_supported = yes; then
17557 ECORE_EVAS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "ecore-evas ecore evas" 2>&1` 17693 ECORE_EVAS_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "ecore-evas ecore evas"`
17558 else 17694 else
17559 ECORE_EVAS_PKG_ERRORS=`$PKG_CONFIG --print-errors "ecore-evas ecore evas" 2>&1` 17695 ECORE_EVAS_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "ecore-evas ecore evas"`
17560 fi 17696 fi
17561 # Put the nasty error message in config.log where it belongs 17697 # Put the nasty error message in config.log where it belongs
17562 echo "$ECORE_EVAS_PKG_ERRORS" >&5 17698 echo "$ECORE_EVAS_PKG_ERRORS" >&5
17563 17699
17564 build_tiler_example="no" 17700 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
17565elif test $pkg_failed = untried; then
17566 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
17567$as_echo "no" >&6; } 17701$as_echo "no" >&6; }
17702 build_tiler_example="no"
17703elif test $pkg_failed = untried; then
17568 build_tiler_example="no" 17704 build_tiler_example="no"
17569else 17705else
17570 ECORE_EVAS_CFLAGS=$pkg_cv_ECORE_EVAS_CFLAGS 17706 ECORE_EVAS_CFLAGS=$pkg_cv_ECORE_EVAS_CFLAGS
@@ -17583,360 +17719,6 @@ else
17583fi 17719fi
17584 17720
17585 17721
17586
17587### Checks for header files
17588
17589 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable assertions" >&5
17590$as_echo_n "checking whether to enable assertions... " >&6; }
17591 # Check whether --enable-assert was given.
17592if test "${enable_assert+set}" = set; then :
17593 enableval=$enable_assert; ac_enable_assert=$enableval
17594 if test "x$enableval" = xno; then :
17595
17596$as_echo "#define NDEBUG 1" >>confdefs.h
17597
17598elif test "x$enableval" != xyes; then :
17599 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: invalid argument supplied to --enable-assert" >&5
17600$as_echo "$as_me: WARNING: invalid argument supplied to --enable-assert" >&2;}
17601 ac_enable_assert=yes
17602fi
17603else
17604 ac_enable_assert=yes
17605fi
17606
17607 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_enable_assert" >&5
17608$as_echo "$ac_enable_assert" >&6; }
17609
17610ac_header_dirent=no
17611for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do
17612 as_ac_Header=`$as_echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh`
17613{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_hdr that defines DIR" >&5
17614$as_echo_n "checking for $ac_hdr that defines DIR... " >&6; }
17615if eval "test \"\${$as_ac_Header+set}\"" = set; then :
17616 $as_echo_n "(cached) " >&6
17617else
17618 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
17619/* end confdefs.h. */
17620#include <sys/types.h>
17621#include <$ac_hdr>
17622
17623int
17624main ()
17625{
17626if ((DIR *) 0)
17627return 0;
17628 ;
17629 return 0;
17630}
17631_ACEOF
17632if ac_fn_c_try_compile "$LINENO"; then :
17633 eval "$as_ac_Header=yes"
17634else
17635 eval "$as_ac_Header=no"
17636fi
17637rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
17638fi
17639eval ac_res=\$$as_ac_Header
17640 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
17641$as_echo "$ac_res" >&6; }
17642if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
17643 cat >>confdefs.h <<_ACEOF
17644#define `$as_echo "HAVE_$ac_hdr" | $as_tr_cpp` 1
17645_ACEOF
17646
17647ac_header_dirent=$ac_hdr; break
17648fi
17649
17650done
17651# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
17652if test $ac_header_dirent = dirent.h; then
17653 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5
17654$as_echo_n "checking for library containing opendir... " >&6; }
17655if test "${ac_cv_search_opendir+set}" = set; then :
17656 $as_echo_n "(cached) " >&6
17657else
17658 ac_func_search_save_LIBS=$LIBS
17659cat confdefs.h - <<_ACEOF >conftest.$ac_ext
17660/* end confdefs.h. */
17661
17662/* Override any GCC internal prototype to avoid an error.
17663 Use char because int might match the return type of a GCC
17664 builtin and then its argument prototype would still apply. */
17665#ifdef __cplusplus
17666extern "C"
17667#endif
17668char opendir ();
17669int
17670main ()
17671{
17672return opendir ();
17673 ;
17674 return 0;
17675}
17676_ACEOF
17677for ac_lib in '' dir; do
17678 if test -z "$ac_lib"; then
17679 ac_res="none required"
17680 else
17681 ac_res=-l$ac_lib
17682 LIBS="-l$ac_lib $ac_func_search_save_LIBS"
17683 fi
17684 if ac_fn_c_try_link "$LINENO"; then :
17685 ac_cv_search_opendir=$ac_res
17686fi
17687rm -f core conftest.err conftest.$ac_objext \
17688 conftest$ac_exeext
17689 if test "${ac_cv_search_opendir+set}" = set; then :
17690 break
17691fi
17692done
17693if test "${ac_cv_search_opendir+set}" = set; then :
17694
17695else
17696 ac_cv_search_opendir=no
17697fi
17698rm conftest.$ac_ext
17699LIBS=$ac_func_search_save_LIBS
17700fi
17701{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5
17702$as_echo "$ac_cv_search_opendir" >&6; }
17703ac_res=$ac_cv_search_opendir
17704if test "$ac_res" != no; then :
17705 test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
17706
17707fi
17708
17709else
17710 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5
17711$as_echo_n "checking for library containing opendir... " >&6; }
17712if test "${ac_cv_search_opendir+set}" = set; then :
17713 $as_echo_n "(cached) " >&6
17714else
17715 ac_func_search_save_LIBS=$LIBS
17716cat confdefs.h - <<_ACEOF >conftest.$ac_ext
17717/* end confdefs.h. */
17718
17719/* Override any GCC internal prototype to avoid an error.
17720 Use char because int might match the return type of a GCC
17721 builtin and then its argument prototype would still apply. */
17722#ifdef __cplusplus
17723extern "C"
17724#endif
17725char opendir ();
17726int
17727main ()
17728{
17729return opendir ();
17730 ;
17731 return 0;
17732}
17733_ACEOF
17734for ac_lib in '' x; do
17735 if test -z "$ac_lib"; then
17736 ac_res="none required"
17737 else
17738 ac_res=-l$ac_lib
17739 LIBS="-l$ac_lib $ac_func_search_save_LIBS"
17740 fi
17741 if ac_fn_c_try_link "$LINENO"; then :
17742 ac_cv_search_opendir=$ac_res
17743fi
17744rm -f core conftest.err conftest.$ac_objext \
17745 conftest$ac_exeext
17746 if test "${ac_cv_search_opendir+set}" = set; then :
17747 break
17748fi
17749done
17750if test "${ac_cv_search_opendir+set}" = set; then :
17751
17752else
17753 ac_cv_search_opendir=no
17754fi
17755rm conftest.$ac_ext
17756LIBS=$ac_func_search_save_LIBS
17757fi
17758{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5
17759$as_echo "$ac_cv_search_opendir" >&6; }
17760ac_res=$ac_cv_search_opendir
17761if test "$ac_res" != no; then :
17762 test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
17763
17764fi
17765
17766fi
17767
17768{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether time.h and sys/time.h may both be included" >&5
17769$as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; }
17770if test "${ac_cv_header_time+set}" = set; then :
17771 $as_echo_n "(cached) " >&6
17772else
17773 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
17774/* end confdefs.h. */
17775#include <sys/types.h>
17776#include <sys/time.h>
17777#include <time.h>
17778
17779int
17780main ()
17781{
17782if ((struct tm *) 0)
17783return 0;
17784 ;
17785 return 0;
17786}
17787_ACEOF
17788if ac_fn_c_try_compile "$LINENO"; then :
17789 ac_cv_header_time=yes
17790else
17791 ac_cv_header_time=no
17792fi
17793rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
17794fi
17795{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_time" >&5
17796$as_echo "$ac_cv_header_time" >&6; }
17797if test $ac_cv_header_time = yes; then
17798
17799$as_echo "#define TIME_WITH_SYS_TIME 1" >>confdefs.h
17800
17801fi
17802
17803
17804
17805default_max="4096"
17806ac_ext=c
17807ac_cpp='$CPP $CPPFLAGS'
17808ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
17809ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
17810ac_compiler_gnu=$ac_cv_c_compiler_gnu
17811
17812
17813{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PATH_MAX in limits.h" >&5
17814$as_echo_n "checking for PATH_MAX in limits.h... " >&6; }
17815cat confdefs.h - <<_ACEOF >conftest.$ac_ext
17816/* end confdefs.h. */
17817
17818#include <limits.h>
17819
17820int
17821main ()
17822{
17823
17824int i = PATH_MAX;
17825
17826 ;
17827 return 0;
17828}
17829_ACEOF
17830if ac_fn_c_try_compile "$LINENO"; then :
17831 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
17832$as_echo "yes" >&6; }
17833else
17834
17835
17836cat >>confdefs.h <<_ACEOF
17837#define PATH_MAX ${default_max}
17838_ACEOF
17839
17840 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no: using ${default_max}" >&5
17841$as_echo "no: using ${default_max}" >&6; }
17842
17843fi
17844rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
17845
17846ac_ext=c
17847ac_cpp='$CPP $CPPFLAGS'
17848ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
17849ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
17850ac_compiler_gnu=$ac_cv_c_compiler_gnu
17851
17852
17853
17854for ac_header in unistd.h libgen.h inttypes.h stdint.h sys/types.h siginfo.h
17855do :
17856 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
17857ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
17858if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
17859 cat >>confdefs.h <<_ACEOF
17860#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
17861_ACEOF
17862
17863fi
17864
17865done
17866
17867
17868if test "x${ac_cv_header_inttypes_h}" = "xyes" ; then
17869 EINA_CONFIGURE_HAVE_INTTYPES_H="#define EINA_HAVE_INTTYPES_H"
17870
17871$as_echo "#define HAVE_INTTYPES_H 1" >>confdefs.h
17872
17873fi
17874
17875
17876if test "x${ac_cv_header_inttypes_h}" = "xyes" ; then
17877 EINA_CONFIGURE_HAVE_STDINT_H="#define EINA_HAVE_STDINT_H"
17878
17879$as_echo "#define HAVE_STDINT_H 1" >>confdefs.h
17880
17881fi
17882
17883
17884### Checks for types
17885
17886# The cast to long int works around a bug in the HP C Compiler
17887# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
17888# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
17889# This bug is HP SR number 8606223364.
17890{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of wchar_t" >&5
17891$as_echo_n "checking size of wchar_t... " >&6; }
17892if test "${ac_cv_sizeof_wchar_t+set}" = set; then :
17893 $as_echo_n "(cached) " >&6
17894else
17895 if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (wchar_t))" "ac_cv_sizeof_wchar_t" "$ac_includes_default"; then :
17896
17897else
17898 if test "$ac_cv_type_wchar_t" = yes; then
17899 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
17900$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
17901as_fn_error 77 "cannot compute sizeof (wchar_t)
17902See \`config.log' for more details" "$LINENO" 5 ; }
17903 else
17904 ac_cv_sizeof_wchar_t=0
17905 fi
17906fi
17907
17908fi
17909{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_wchar_t" >&5
17910$as_echo "$ac_cv_sizeof_wchar_t" >&6; }
17911
17912
17913
17914cat >>confdefs.h <<_ACEOF
17915#define SIZEOF_WCHAR_T $ac_cv_sizeof_wchar_t
17916_ACEOF
17917
17918
17919EINA_SIZEOF_WCHAR_T=$ac_cv_sizeof_wchar_t
17920
17921ac_fn_c_check_type "$LINENO" "siginfo_t" "ac_cv_type_siginfo_t" "#include <signal.h>
17922 #if HAVE_SIGINFO_H
17923 # include <siginfo.h>
17924 #endif
17925
17926"
17927if test "x$ac_cv_type_siginfo_t" = x""yes; then :
17928
17929cat >>confdefs.h <<_ACEOF
17930#define HAVE_SIGINFO_T 1
17931_ACEOF
17932
17933
17934fi
17935
17936
17937### Checks for structures
17938
17939
17940### Checks for compiler characteristics 17722### Checks for compiler characteristics
17941{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 17723{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5
17942$as_echo_n "checking for an ANSI C-conforming const... " >&6; } 17724$as_echo_n "checking for an ANSI C-conforming const... " >&6; }
@@ -18238,8 +18020,8 @@ $as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
18238 18020
18239 ;; #( 18021 ;; #(
18240 *) 18022 *)
18241 as_fn_error $? "unknown endianness 18023 as_fn_error "unknown endianness
18242 presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; 18024 presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;;
18243 esac 18025 esac
18244 18026
18245{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 18027{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5
@@ -18787,37 +18569,6 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
18787 18569
18788 18570
18789 18571
18790
18791
18792
18793
18794### Checks for linker characteristics
18795EINA_LIBS=
18796lt_enable_auto_import=""
18797case "${host_os}" in
18798 mingw*)
18799 EINA_LIBS="-ldl ${EVIL_LIBS} -lm"
18800 lt_enable_auto_import="-Wl,--enable-auto-import"
18801 ;;
18802 dragonfly*|openbsd*)
18803 EINA_LIBS="-lm"
18804 ;;
18805 freebsd*|netbsd*)
18806 EINA_LIBS="-lrt -lm"
18807 ;;
18808 darwin*)
18809 EINA_LIBS="-lm"
18810 ;;
18811 cygwin*)
18812 EINA_LIBS="-ldl -lm"
18813 ;;
18814 *)
18815 EINA_LIBS="-ldl -lrt -lm"
18816 ;;
18817esac
18818
18819
18820
18821case "$host_vendor" in 18572case "$host_vendor" in
18822 ps3*) 18573 ps3*)
18823 18574
@@ -18825,10 +18576,11 @@ pkg_failed=no
18825{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ESCAPE" >&5 18576{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ESCAPE" >&5
18826$as_echo_n "checking for ESCAPE... " >&6; } 18577$as_echo_n "checking for ESCAPE... " >&6; }
18827 18578
18828if test -n "$ESCAPE_CFLAGS"; then 18579if test -n "$PKG_CONFIG"; then
18829 pkg_cv_ESCAPE_CFLAGS="$ESCAPE_CFLAGS" 18580 if test -n "$ESCAPE_CFLAGS"; then
18830 elif test -n "$PKG_CONFIG"; then 18581 pkg_cv_ESCAPE_CFLAGS="$ESCAPE_CFLAGS"
18831 if test -n "$PKG_CONFIG" && \ 18582 else
18583 if test -n "$PKG_CONFIG" && \
18832 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"escape\""; } >&5 18584 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"escape\""; } >&5
18833 ($PKG_CONFIG --exists --print-errors "escape") 2>&5 18585 ($PKG_CONFIG --exists --print-errors "escape") 2>&5
18834 ac_status=$? 18586 ac_status=$?
@@ -18838,13 +18590,15 @@ if test -n "$ESCAPE_CFLAGS"; then
18838else 18590else
18839 pkg_failed=yes 18591 pkg_failed=yes
18840fi 18592fi
18841 else 18593 fi
18842 pkg_failed=untried 18594else
18595 pkg_failed=untried
18843fi 18596fi
18844if test -n "$ESCAPE_LIBS"; then 18597if test -n "$PKG_CONFIG"; then
18845 pkg_cv_ESCAPE_LIBS="$ESCAPE_LIBS" 18598 if test -n "$ESCAPE_LIBS"; then
18846 elif test -n "$PKG_CONFIG"; then 18599 pkg_cv_ESCAPE_LIBS="$ESCAPE_LIBS"
18847 if test -n "$PKG_CONFIG" && \ 18600 else
18601 if test -n "$PKG_CONFIG" && \
18848 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"escape\""; } >&5 18602 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"escape\""; } >&5
18849 ($PKG_CONFIG --exists --print-errors "escape") 2>&5 18603 ($PKG_CONFIG --exists --print-errors "escape") 2>&5
18850 ac_status=$? 18604 ac_status=$?
@@ -18854,15 +18608,14 @@ if test -n "$ESCAPE_LIBS"; then
18854else 18608else
18855 pkg_failed=yes 18609 pkg_failed=yes
18856fi 18610fi
18857 else 18611 fi
18858 pkg_failed=untried 18612else
18613 pkg_failed=untried
18859fi 18614fi
18860 18615
18861 18616
18862 18617
18863if test $pkg_failed = yes; then 18618if test $pkg_failed = yes; then
18864 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
18865$as_echo "no" >&6; }
18866 18619
18867if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 18620if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
18868 _pkg_short_errors_supported=yes 18621 _pkg_short_errors_supported=yes
@@ -18870,14 +18623,14 @@ else
18870 _pkg_short_errors_supported=no 18623 _pkg_short_errors_supported=no
18871fi 18624fi
18872 if test $_pkg_short_errors_supported = yes; then 18625 if test $_pkg_short_errors_supported = yes; then
18873 ESCAPE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "escape" 2>&1` 18626 ESCAPE_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "escape"`
18874 else 18627 else
18875 ESCAPE_PKG_ERRORS=`$PKG_CONFIG --print-errors "escape" 2>&1` 18628 ESCAPE_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "escape"`
18876 fi 18629 fi
18877 # Put the nasty error message in config.log where it belongs 18630 # Put the nasty error message in config.log where it belongs
18878 echo "$ESCAPE_PKG_ERRORS" >&5 18631 echo "$ESCAPE_PKG_ERRORS" >&5
18879 18632
18880 as_fn_error $? "Package requirements (escape) were not met: 18633 as_fn_error "Package requirements (escape) were not met:
18881 18634
18882$ESCAPE_PKG_ERRORS 18635$ESCAPE_PKG_ERRORS
18883 18636
@@ -18886,13 +18639,12 @@ installed software in a non-standard prefix.
18886 18639
18887Alternatively, you may set the environment variables ESCAPE_CFLAGS 18640Alternatively, you may set the environment variables ESCAPE_CFLAGS
18888and ESCAPE_LIBS to avoid the need to call pkg-config. 18641and ESCAPE_LIBS to avoid the need to call pkg-config.
18889See the pkg-config man page for more details." "$LINENO" 5 18642See the pkg-config man page for more details.
18643" "$LINENO" 5
18890elif test $pkg_failed = untried; then 18644elif test $pkg_failed = untried; then
18891 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
18892$as_echo "no" >&6; }
18893 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 18645 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
18894$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 18646$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
18895as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it 18647as_fn_error "The pkg-config script could not be found or is too old. Make sure it
18896is in your PATH or set the PKG_CONFIG environment variable to the full 18648is in your PATH or set the PKG_CONFIG environment variable to the full
18897path to pkg-config. 18649path to pkg-config.
18898 18650
@@ -18901,25 +18653,61 @@ and ESCAPE_LIBS to avoid the need to call pkg-config.
18901See the pkg-config man page for more details. 18653See the pkg-config man page for more details.
18902 18654
18903To get pkg-config, see <http://pkg-config.freedesktop.org/>. 18655To get pkg-config, see <http://pkg-config.freedesktop.org/>.
18904See \`config.log' for more details" "$LINENO" 5 ; } 18656See \`config.log' for more details." "$LINENO" 5; }
18905else 18657else
18906 ESCAPE_CFLAGS=$pkg_cv_ESCAPE_CFLAGS 18658 ESCAPE_CFLAGS=$pkg_cv_ESCAPE_CFLAGS
18907 ESCAPE_LIBS=$pkg_cv_ESCAPE_LIBS 18659 ESCAPE_LIBS=$pkg_cv_ESCAPE_LIBS
18908 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 18660 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
18909$as_echo "yes" >&6; } 18661$as_echo "yes" >&6; }
18910 18662 :
18911fi 18663fi
18912 18664
18913$as_echo "#define HAVE_ESCAPE 1" >>confdefs.h 18665$as_echo "#define HAVE_ESCAPE 1" >>confdefs.h
18914 18666
18915 requirement_eina="escape" 18667 requirement_eina="escape"
18916 EINA_LIBS="${ESCAPE_LIBS}"
18917 EINA_CFLAGS="${ESCAPE_CFLAGS} ${EINA_CFLAGS}" 18668 EINA_CFLAGS="${ESCAPE_CFLAGS} ${EINA_CFLAGS}"
18918 ;; 18669 ;;
18919esac 18670esac
18920 18671
18921 18672
18922 18673
18674
18675
18676### Checks for linker characteristics
18677EINA_LIBS=
18678lt_enable_auto_import=""
18679case "${host_os}" in
18680 mingw*)
18681 EINA_LIBS="-ldl ${EVIL_LIBS} -lm"
18682 lt_enable_auto_import="-Wl,--enable-auto-import"
18683 ;;
18684 dragonfly*|openbsd*)
18685 EINA_LIBS="-lm"
18686 ;;
18687 freebsd*|netbsd*)
18688 EINA_LIBS="-lrt -lm"
18689 ;;
18690 darwin*)
18691 EINA_LIBS="-lm"
18692 ;;
18693 cygwin*)
18694 EINA_LIBS="-ldl -lm"
18695 ;;
18696 *)
18697 EINA_LIBS="-ldl -lrt -lm"
18698 ;;
18699esac
18700case "$host_vendor" in
18701 ps3*)
18702 # Escape had already been checked to exist
18703 EINA_LIBS="${ESCAPE_LIBS}"
18704 ;;
18705esac
18706
18707
18708
18709
18710
18923LDFLAGS_save="${LDFLAGS}" 18711LDFLAGS_save="${LDFLAGS}"
18924LDFLAGS="${LDFLAGS} -fno-strict-aliasing" 18712LDFLAGS="${LDFLAGS} -fno-strict-aliasing"
18925 18713
@@ -18965,6 +18753,228 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
18965 18753
18966 18754
18967 18755
18756CFLAGS="${CFLAGS} ${EINA_CFLAGS}"
18757LDFLAGS="${LDFLAGS} ${EINA_LDFLAGS}"
18758LIBS="${LIBS} ${EINA_LIBS}"
18759
18760### Checks for header files
18761
18762 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable assertions" >&5
18763$as_echo_n "checking whether to enable assertions... " >&6; }
18764 # Check whether --enable-assert was given.
18765if test "${enable_assert+set}" = set; then :
18766 enableval=$enable_assert; ac_enable_assert=$enableval
18767 if test "x$enableval" = xno; then :
18768
18769$as_echo "#define NDEBUG 1" >>confdefs.h
18770
18771elif test "x$enableval" != xyes; then :
18772 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: invalid argument supplied to --enable-assert" >&5
18773$as_echo "$as_me: WARNING: invalid argument supplied to --enable-assert" >&2;}
18774 ac_enable_assert=yes
18775fi
18776else
18777 ac_enable_assert=yes
18778fi
18779
18780 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_enable_assert" >&5
18781$as_echo "$ac_enable_assert" >&6; }
18782
18783{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether time.h and sys/time.h may both be included" >&5
18784$as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; }
18785if test "${ac_cv_header_time+set}" = set; then :
18786 $as_echo_n "(cached) " >&6
18787else
18788 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
18789/* end confdefs.h. */
18790#include <sys/types.h>
18791#include <sys/time.h>
18792#include <time.h>
18793
18794int
18795main ()
18796{
18797if ((struct tm *) 0)
18798return 0;
18799 ;
18800 return 0;
18801}
18802_ACEOF
18803if ac_fn_c_try_compile "$LINENO"; then :
18804 ac_cv_header_time=yes
18805else
18806 ac_cv_header_time=no
18807fi
18808rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
18809fi
18810{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_time" >&5
18811$as_echo "$ac_cv_header_time" >&6; }
18812if test $ac_cv_header_time = yes; then
18813
18814$as_echo "#define TIME_WITH_SYS_TIME 1" >>confdefs.h
18815
18816fi
18817
18818
18819
18820default_max="4096"
18821ac_ext=c
18822ac_cpp='$CPP $CPPFLAGS'
18823ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
18824ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
18825ac_compiler_gnu=$ac_cv_c_compiler_gnu
18826
18827
18828{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PATH_MAX in limits.h" >&5
18829$as_echo_n "checking for PATH_MAX in limits.h... " >&6; }
18830cat confdefs.h - <<_ACEOF >conftest.$ac_ext
18831/* end confdefs.h. */
18832
18833#include <limits.h>
18834
18835int
18836main ()
18837{
18838
18839int i = PATH_MAX;
18840
18841 ;
18842 return 0;
18843}
18844_ACEOF
18845if ac_fn_c_try_compile "$LINENO"; then :
18846 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
18847$as_echo "yes" >&6; }
18848else
18849
18850
18851cat >>confdefs.h <<_ACEOF
18852#define PATH_MAX ${default_max}
18853_ACEOF
18854
18855 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no: using ${default_max}" >&5
18856$as_echo "no: using ${default_max}" >&6; }
18857
18858fi
18859rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
18860
18861ac_ext=c
18862ac_cpp='$CPP $CPPFLAGS'
18863ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
18864ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
18865ac_compiler_gnu=$ac_cv_c_compiler_gnu
18866
18867
18868
18869for ac_header in unistd.h libgen.h inttypes.h stdint.h sys/types.h siginfo.h strings.h sys/mman.h
18870do :
18871 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"
18873eval as_val=\$$as_ac_Header
18874 if test "x$as_val" = x""yes; then :
18875 cat >>confdefs.h <<_ACEOF
18876#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
18877_ACEOF
18878
18879fi
18880
18881done
18882
18883
18884if test "x${ac_cv_header_inttypes_h}" = "xyes" ; then
18885 EINA_CONFIGURE_HAVE_INTTYPES_H="#define EINA_HAVE_INTTYPES_H"
18886
18887$as_echo "#define HAVE_INTTYPES_H 1" >>confdefs.h
18888
18889fi
18890
18891
18892if test "x${ac_cv_header_inttypes_h}" = "xyes" ; then
18893 EINA_CONFIGURE_HAVE_STDINT_H="#define EINA_HAVE_STDINT_H"
18894
18895$as_echo "#define HAVE_STDINT_H 1" >>confdefs.h
18896
18897fi
18898
18899
18900### Checks for types
18901
18902# The cast to long int works around a bug in the HP C Compiler
18903# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
18904# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
18905# This bug is HP SR number 8606223364.
18906{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of wchar_t" >&5
18907$as_echo_n "checking size of wchar_t... " >&6; }
18908if test "${ac_cv_sizeof_wchar_t+set}" = set; then :
18909 $as_echo_n "(cached) " >&6
18910else
18911 if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (wchar_t))" "ac_cv_sizeof_wchar_t" "$ac_includes_default"; then :
18912
18913else
18914 if test "$ac_cv_type_wchar_t" = yes; then
18915 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
18916$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
18917{ as_fn_set_status 77
18918as_fn_error "cannot compute sizeof (wchar_t)
18919See \`config.log' for more details." "$LINENO" 5; }; }
18920 else
18921 ac_cv_sizeof_wchar_t=0
18922 fi
18923fi
18924
18925fi
18926{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_wchar_t" >&5
18927$as_echo "$ac_cv_sizeof_wchar_t" >&6; }
18928
18929
18930
18931cat >>confdefs.h <<_ACEOF
18932#define SIZEOF_WCHAR_T $ac_cv_sizeof_wchar_t
18933_ACEOF
18934
18935
18936EINA_SIZEOF_WCHAR_T=$ac_cv_sizeof_wchar_t
18937
18938ac_fn_c_check_type "$LINENO" "siginfo_t" "ac_cv_type_siginfo_t" "#include <signal.h>
18939 #if HAVE_SIGINFO_H
18940 # include <siginfo.h>
18941 #endif
18942
18943"
18944if test "x$ac_cv_type_siginfo_t" = x""yes; then :
18945
18946cat >>confdefs.h <<_ACEOF
18947#define HAVE_SIGINFO_T 1
18948_ACEOF
18949
18950
18951fi
18952
18953
18954### Check if dirent.h is usable
18955
18956ac_fn_c_check_type "$LINENO" "struct dirent" "ac_cv_type_struct_dirent" "#include <dirent.h>
18957
18958"
18959if test "x$ac_cv_type_struct_dirent" = x""yes; then :
18960
18961cat >>confdefs.h <<_ACEOF
18962#define HAVE_STRUCT_DIRENT 1
18963_ACEOF
18964
18965have_dirent="yes"
18966else
18967 have_dirent="no"
18968fi
18969
18970
18971if test "x${have_dirent}" = "xyes" ; then
18972 EINA_CONFIGURE_HAVE_DIRENT_H="#define EINA_HAVE_DIRENT_H"
18973
18974$as_echo "#define HAVE_DIRENT_H 1" >>confdefs.h
18975
18976fi
18977
18968 18978
18969### Checks for library functions 18979### Checks for library functions
18970{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing strerror" >&5 18980{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing strerror" >&5
@@ -19150,7 +19160,8 @@ if test $ac_cv_os_cray = yes; then
19150 for ac_func in _getb67 GETB67 getb67; do 19160 for ac_func in _getb67 GETB67 getb67; do
19151 as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` 19161 as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
19152ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" 19162ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
19153if eval test \"x\$"$as_ac_var"\" = x"yes"; then : 19163eval as_val=\$$as_ac_var
19164 if test "x$as_val" = x""yes; then :
19154 19165
19155cat >>confdefs.h <<_ACEOF 19166cat >>confdefs.h <<_ACEOF
19156#define CRAY_STACKSEG_END $ac_func 19167#define CRAY_STACKSEG_END $ac_func
@@ -19212,11 +19223,12 @@ _ACEOF
19212 19223
19213fi 19224fi
19214 19225
19215for ac_func in strlcpy dirfd openat fstatat fpathconf execvp 19226for ac_func in strlcpy openat fstatat fpathconf execvp
19216do : 19227do :
19217 as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` 19228 as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
19218ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" 19229ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
19219if eval test \"x\$"$as_ac_var"\" = x"yes"; then : 19230eval as_val=\$$as_ac_var
19231 if test "x$as_val" = x""yes; then :
19220 cat >>confdefs.h <<_ACEOF 19232 cat >>confdefs.h <<_ACEOF
19221#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 19233#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
19222_ACEOF 19234_ACEOF
@@ -19225,6 +19237,87 @@ fi
19225done 19237done
19226 19238
19227 19239
19240{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for dirfd" >&5
19241$as_echo_n "checking for dirfd... " >&6; }
19242cat confdefs.h - <<_ACEOF >conftest.$ac_ext
19243/* end confdefs.h. */
19244
19245
19246#include <dirent.h>
19247
19248int
19249main ()
19250{
19251
19252int main(void)
19253{
19254 DIR *dirp;
19255 return dirfd(dirp);
19256}
19257
19258 ;
19259 return 0;
19260}
19261
19262_ACEOF
19263if ac_fn_c_try_link "$LINENO"; then :
19264 have_dirfd="yes"
19265else
19266 have_dirfd="no"
19267fi
19268rm -f core conftest.err conftest.$ac_objext \
19269 conftest$ac_exeext conftest.$ac_ext
19270
19271{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${have_dirfd}" >&5
19272$as_echo "${have_dirfd}" >&6; }
19273
19274if test "x${have_dirfd}" = "xyes" ; then
19275
19276$as_echo "#define HAVE_DIRFD 1" >>confdefs.h
19277
19278fi
19279
19280# check debug information for malloc
19281for ac_func in malloc_usable_size
19282do :
19283 ac_fn_c_check_func "$LINENO" "malloc_usable_size" "ac_cv_func_malloc_usable_size"
19284if test "x$ac_cv_func_malloc_usable_size" = x""yes; then :
19285 cat >>confdefs.h <<_ACEOF
19286#define HAVE_MALLOC_USABLE_SIZE 1
19287_ACEOF
19288 malloc_true_size="yes"
19289else
19290 malloc_true_size="no"
19291fi
19292done
19293
19294if test "x${malloc_true_size}" = "xyes" ; then
19295
19296$as_echo "#define HAVE_MALLOC_USABLE_SIZE 1" >>confdefs.h
19297
19298fi
19299
19300want_debug_malloc="no"
19301# Check whether --enable-debug-malloc was given.
19302if test "${enable_debug_malloc+set}" = set; then :
19303 enableval=$enable_debug_malloc;
19304 if test "x${enableval}" = "xyes" ; then
19305 want_debug_malloc="yes"
19306 else
19307 want_debug_malloc="no"
19308 fi
19309
19310else
19311 want_debug_malloc="no"
19312fi
19313
19314
19315if test "x${malloc_true_size}" = "xyes" -a "x${want_debug_malloc}" = "xyes"; then
19316
19317$as_echo "#define EINA_DEBUG_MALLOC 1" >>confdefs.h
19318
19319fi
19320
19228# dlopen and dladdr 19321# dlopen and dladdr
19229dlopen_libs="" 19322dlopen_libs=""
19230case "$host_os" in 19323case "$host_os" in
@@ -19358,6 +19451,7 @@ fi
19358esac 19451esac
19359 19452
19360 19453
19454have_log="yes"
19361 19455
19362 19456
19363ac_fn_c_check_header_mongrel "$LINENO" "fnmatch.h" "ac_cv_header_fnmatch_h" "$ac_includes_default" 19457ac_fn_c_check_header_mongrel "$LINENO" "fnmatch.h" "ac_cv_header_fnmatch_h" "$ac_includes_default"
@@ -19439,12 +19533,45 @@ fi
19439 19533
19440 19534
19441if test "x$_efl_have_fnmatch" = "xyes"; then : 19535if test "x$_efl_have_fnmatch" = "xyes"; then :
19536 have_log="yes"
19537else
19538 have_log="no"
19539fi
19540
19541
19542
19543want_log="yes"
19544# Check whether --enable-log was given.
19545if test "${enable_log+set}" = set; then :
19546 enableval=$enable_log;
19547 if test "x${enableval}" = "xyes" ; then
19548 want_log="yes"
19549 else
19550 want_log="no"
19551 fi
19442 19552
19443else 19553else
19444 as_fn_error $? "Cannot find fnmatch()" "$LINENO" 5 19554 want_log="yes"
19445fi 19555fi
19446 19556
19447 19557
19558enable_log="no"
19559if test "x${have_log}" = xyes -a "x${want_log}" = xyes; then
19560 enable_log="yes"
19561fi
19562
19563{ $as_echo "$as_me:${as_lineno-$LINENO}: checking wether to build Eina_Log infrastructure" >&5
19564$as_echo_n "checking wether to build Eina_Log infrastructure... " >&6; }
19565{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${enable_log}" >&5
19566$as_echo "${enable_log}" >&6; }
19567
19568if test "x${enable_log}" = "xyes"; then
19569 EINA_CONFIGURE_ENABLE_LOG="#define EINA_ENABLE_LOG"
19570
19571$as_echo "#define HAVE_LOG 1" >>confdefs.h
19572
19573fi
19574
19448 19575
19449for ac_header in mcheck.h 19576for ac_header in mcheck.h
19450do : 19577do :
@@ -20239,10 +20366,11 @@ pkg_failed=no
20239{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CHECK" >&5 20366{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CHECK" >&5
20240$as_echo_n "checking for CHECK... " >&6; } 20367$as_echo_n "checking for CHECK... " >&6; }
20241 20368
20242if test -n "$CHECK_CFLAGS"; then 20369if test -n "$PKG_CONFIG"; then
20243 pkg_cv_CHECK_CFLAGS="$CHECK_CFLAGS" 20370 if test -n "$CHECK_CFLAGS"; then
20244 elif test -n "$PKG_CONFIG"; then 20371 pkg_cv_CHECK_CFLAGS="$CHECK_CFLAGS"
20245 if test -n "$PKG_CONFIG" && \ 20372 else
20373 if test -n "$PKG_CONFIG" && \
20246 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"check >= 0.9.5\""; } >&5 20374 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"check >= 0.9.5\""; } >&5
20247 ($PKG_CONFIG --exists --print-errors "check >= 0.9.5") 2>&5 20375 ($PKG_CONFIG --exists --print-errors "check >= 0.9.5") 2>&5
20248 ac_status=$? 20376 ac_status=$?
@@ -20252,13 +20380,15 @@ if test -n "$CHECK_CFLAGS"; then
20252else 20380else
20253 pkg_failed=yes 20381 pkg_failed=yes
20254fi 20382fi
20255 else 20383 fi
20256 pkg_failed=untried 20384else
20385 pkg_failed=untried
20257fi 20386fi
20258if test -n "$CHECK_LIBS"; then 20387if test -n "$PKG_CONFIG"; then
20259 pkg_cv_CHECK_LIBS="$CHECK_LIBS" 20388 if test -n "$CHECK_LIBS"; then
20260 elif test -n "$PKG_CONFIG"; then 20389 pkg_cv_CHECK_LIBS="$CHECK_LIBS"
20261 if test -n "$PKG_CONFIG" && \ 20390 else
20391 if test -n "$PKG_CONFIG" && \
20262 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"check >= 0.9.5\""; } >&5 20392 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"check >= 0.9.5\""; } >&5
20263 ($PKG_CONFIG --exists --print-errors "check >= 0.9.5") 2>&5 20393 ($PKG_CONFIG --exists --print-errors "check >= 0.9.5") 2>&5
20264 ac_status=$? 20394 ac_status=$?
@@ -20268,15 +20398,14 @@ if test -n "$CHECK_LIBS"; then
20268else 20398else
20269 pkg_failed=yes 20399 pkg_failed=yes
20270fi 20400fi
20271 else 20401 fi
20272 pkg_failed=untried 20402else
20403 pkg_failed=untried
20273fi 20404fi
20274 20405
20275 20406
20276 20407
20277if test $pkg_failed = yes; then 20408if test $pkg_failed = yes; then
20278 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
20279$as_echo "no" >&6; }
20280 20409
20281if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 20410if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
20282 _pkg_short_errors_supported=yes 20411 _pkg_short_errors_supported=yes
@@ -20284,17 +20413,17 @@ else
20284 _pkg_short_errors_supported=no 20413 _pkg_short_errors_supported=no
20285fi 20414fi
20286 if test $_pkg_short_errors_supported = yes; then 20415 if test $_pkg_short_errors_supported = yes; then
20287 CHECK_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "check >= 0.9.5" 2>&1` 20416 CHECK_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "check >= 0.9.5"`
20288 else 20417 else
20289 CHECK_PKG_ERRORS=`$PKG_CONFIG --print-errors "check >= 0.9.5" 2>&1` 20418 CHECK_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "check >= 0.9.5"`
20290 fi 20419 fi
20291 # Put the nasty error message in config.log where it belongs 20420 # Put the nasty error message in config.log where it belongs
20292 echo "$CHECK_PKG_ERRORS" >&5 20421 echo "$CHECK_PKG_ERRORS" >&5
20293 20422
20294 _efl_enable_tests="no" 20423 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
20295elif test $pkg_failed = untried; then
20296 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
20297$as_echo "no" >&6; } 20424$as_echo "no" >&6; }
20425 _efl_enable_tests="no"
20426elif test $pkg_failed = untried; then
20298 _efl_enable_tests="no" 20427 _efl_enable_tests="no"
20299else 20428else
20300 CHECK_CFLAGS=$pkg_cv_CHECK_CFLAGS 20429 CHECK_CFLAGS=$pkg_cv_CHECK_CFLAGS
@@ -20489,10 +20618,11 @@ pkg_failed=no
20489{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GLIB" >&5 20618{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GLIB" >&5
20490$as_echo_n "checking for GLIB... " >&6; } 20619$as_echo_n "checking for GLIB... " >&6; }
20491 20620
20492if test -n "$GLIB_CFLAGS"; then 20621if test -n "$PKG_CONFIG"; then
20493 pkg_cv_GLIB_CFLAGS="$GLIB_CFLAGS" 20622 if test -n "$GLIB_CFLAGS"; then
20494 elif test -n "$PKG_CONFIG"; then 20623 pkg_cv_GLIB_CFLAGS="$GLIB_CFLAGS"
20495 if test -n "$PKG_CONFIG" && \ 20624 else
20625 if test -n "$PKG_CONFIG" && \
20496 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0\""; } >&5 20626 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0\""; } >&5
20497 ($PKG_CONFIG --exists --print-errors "glib-2.0") 2>&5 20627 ($PKG_CONFIG --exists --print-errors "glib-2.0") 2>&5
20498 ac_status=$? 20628 ac_status=$?
@@ -20502,13 +20632,15 @@ if test -n "$GLIB_CFLAGS"; then
20502else 20632else
20503 pkg_failed=yes 20633 pkg_failed=yes
20504fi 20634fi
20505 else 20635 fi
20506 pkg_failed=untried 20636else
20637 pkg_failed=untried
20507fi 20638fi
20508if test -n "$GLIB_LIBS"; then 20639if test -n "$PKG_CONFIG"; then
20509 pkg_cv_GLIB_LIBS="$GLIB_LIBS" 20640 if test -n "$GLIB_LIBS"; then
20510 elif test -n "$PKG_CONFIG"; then 20641 pkg_cv_GLIB_LIBS="$GLIB_LIBS"
20511 if test -n "$PKG_CONFIG" && \ 20642 else
20643 if test -n "$PKG_CONFIG" && \
20512 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0\""; } >&5 20644 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0\""; } >&5
20513 ($PKG_CONFIG --exists --print-errors "glib-2.0") 2>&5 20645 ($PKG_CONFIG --exists --print-errors "glib-2.0") 2>&5
20514 ac_status=$? 20646 ac_status=$?
@@ -20518,15 +20650,14 @@ if test -n "$GLIB_LIBS"; then
20518else 20650else
20519 pkg_failed=yes 20651 pkg_failed=yes
20520fi 20652fi
20521 else 20653 fi
20522 pkg_failed=untried 20654else
20655 pkg_failed=untried
20523fi 20656fi
20524 20657
20525 20658
20526 20659
20527if test $pkg_failed = yes; then 20660if test $pkg_failed = yes; then
20528 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
20529$as_echo "no" >&6; }
20530 20661
20531if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 20662if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
20532 _pkg_short_errors_supported=yes 20663 _pkg_short_errors_supported=yes
@@ -20534,17 +20665,17 @@ else
20534 _pkg_short_errors_supported=no 20665 _pkg_short_errors_supported=no
20535fi 20666fi
20536 if test $_pkg_short_errors_supported = yes; then 20667 if test $_pkg_short_errors_supported = yes; then
20537 GLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "glib-2.0" 2>&1` 20668 GLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "glib-2.0"`
20538 else 20669 else
20539 GLIB_PKG_ERRORS=`$PKG_CONFIG --print-errors "glib-2.0" 2>&1` 20670 GLIB_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "glib-2.0"`
20540 fi 20671 fi
20541 # Put the nasty error message in config.log where it belongs 20672 # Put the nasty error message in config.log where it belongs
20542 echo "$GLIB_PKG_ERRORS" >&5 20673 echo "$GLIB_PKG_ERRORS" >&5
20543 20674
20544 have_module="no" 20675 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
20545elif test $pkg_failed = untried; then
20546 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
20547$as_echo "no" >&6; } 20676$as_echo "no" >&6; }
20677 have_module="no"
20678elif test $pkg_failed = untried; then
20548 have_module="no" 20679 have_module="no"
20549else 20680else
20550 GLIB_CFLAGS=$pkg_cv_GLIB_CFLAGS 20681 GLIB_CFLAGS=$pkg_cv_GLIB_CFLAGS
@@ -20753,7 +20884,6 @@ DEFS=-DHAVE_CONFIG_H
20753 20884
20754ac_libobjs= 20885ac_libobjs=
20755ac_ltlibobjs= 20886ac_ltlibobjs=
20756U=
20757for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue 20887for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
20758 # 1. Remove the extension, and $U if already installed. 20888 # 1. Remove the extension, and $U if already installed.
20759 ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' 20889 ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
@@ -20777,148 +20907,148 @@ else
20777fi 20907fi
20778 20908
20779if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then 20909if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
20780 as_fn_error $? "conditional \"AMDEP\" was never defined. 20910 as_fn_error "conditional \"AMDEP\" was never defined.
20781Usually this means the macro was only invoked conditionally." "$LINENO" 5 20911Usually this means the macro was only invoked conditionally." "$LINENO" 5
20782fi 20912fi
20783if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then 20913if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
20784 as_fn_error $? "conditional \"am__fastdepCC\" was never defined. 20914 as_fn_error "conditional \"am__fastdepCC\" was never defined.
20785Usually this means the macro was only invoked conditionally." "$LINENO" 5 20915Usually this means the macro was only invoked conditionally." "$LINENO" 5
20786fi 20916fi
20787if test -z "${EINA_HAVE_THREADS_TRUE}" && test -z "${EINA_HAVE_THREADS_FALSE}"; then 20917if test -z "${EINA_HAVE_THREADS_TRUE}" && test -z "${EINA_HAVE_THREADS_FALSE}"; then
20788 as_fn_error $? "conditional \"EINA_HAVE_THREADS\" was never defined. 20918 as_fn_error "conditional \"EINA_HAVE_THREADS\" was never defined.
20789Usually this means the macro was only invoked conditionally." "$LINENO" 5 20919Usually this means the macro was only invoked conditionally." "$LINENO" 5
20790fi 20920fi
20791if test -z "${EINA_DEBUG_THREADS_TRUE}" && test -z "${EINA_DEBUG_THREADS_FALSE}"; then 20921if test -z "${EINA_DEBUG_THREADS_TRUE}" && test -z "${EINA_DEBUG_THREADS_FALSE}"; then
20792 as_fn_error $? "conditional \"EINA_DEBUG_THREADS\" was never defined. 20922 as_fn_error "conditional \"EINA_DEBUG_THREADS\" was never defined.
20793Usually this means the macro was only invoked conditionally." "$LINENO" 5 20923Usually this means the macro was only invoked conditionally." "$LINENO" 5
20794fi 20924fi
20795if test -z "${EINA_ON_OFF_THREADS_TRUE}" && test -z "${EINA_ON_OFF_THREADS_FALSE}"; then 20925if test -z "${EINA_ON_OFF_THREADS_TRUE}" && test -z "${EINA_ON_OFF_THREADS_FALSE}"; then
20796 as_fn_error $? "conditional \"EINA_ON_OFF_THREADS\" was never defined. 20926 as_fn_error "conditional \"EINA_ON_OFF_THREADS\" was never defined.
20797Usually this means the macro was only invoked conditionally." "$LINENO" 5 20927Usually this means the macro was only invoked conditionally." "$LINENO" 5
20798fi 20928fi
20799if test -z "${SAFETY_CHECKS_TRUE}" && test -z "${SAFETY_CHECKS_FALSE}"; then 20929if test -z "${SAFETY_CHECKS_TRUE}" && test -z "${SAFETY_CHECKS_FALSE}"; then
20800 as_fn_error $? "conditional \"SAFETY_CHECKS\" was never defined. 20930 as_fn_error "conditional \"SAFETY_CHECKS\" was never defined.
20801Usually this means the macro was only invoked conditionally." "$LINENO" 5 20931Usually this means the macro was only invoked conditionally." "$LINENO" 5
20802fi 20932fi
20803if test -z "${EINA_AMALGAMATION_TRUE}" && test -z "${EINA_AMALGAMATION_FALSE}"; then 20933if test -z "${EINA_AMALGAMATION_TRUE}" && test -z "${EINA_AMALGAMATION_FALSE}"; then
20804 as_fn_error $? "conditional \"EINA_AMALGAMATION\" was never defined. 20934 as_fn_error "conditional \"EINA_AMALGAMATION\" was never defined.
20805Usually this means the macro was only invoked conditionally." "$LINENO" 5 20935Usually this means the macro was only invoked conditionally." "$LINENO" 5
20806fi 20936fi
20807if test -z "${EINA_ENABLE_BENCHMARK_E17_TRUE}" && test -z "${EINA_ENABLE_BENCHMARK_E17_FALSE}"; then 20937if test -z "${EINA_ENABLE_BENCHMARK_E17_TRUE}" && test -z "${EINA_ENABLE_BENCHMARK_E17_FALSE}"; then
20808 as_fn_error $? "conditional \"EINA_ENABLE_BENCHMARK_E17\" was never defined. 20938 as_fn_error "conditional \"EINA_ENABLE_BENCHMARK_E17\" was never defined.
20809Usually this means the macro was only invoked conditionally." "$LINENO" 5 20939Usually this means the macro was only invoked conditionally." "$LINENO" 5
20810fi 20940fi
20811if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then 20941if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
20812 as_fn_error $? "conditional \"am__fastdepCC\" was never defined. 20942 as_fn_error "conditional \"am__fastdepCC\" was never defined.
20813Usually this means the macro was only invoked conditionally." "$LINENO" 5 20943Usually this means the macro was only invoked conditionally." "$LINENO" 5
20814fi 20944fi
20815if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then 20945if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
20816 as_fn_error $? "conditional \"am__fastdepCXX\" was never defined. 20946 as_fn_error "conditional \"am__fastdepCXX\" was never defined.
20817Usually this means the macro was only invoked conditionally." "$LINENO" 5 20947Usually this means the macro was only invoked conditionally." "$LINENO" 5
20818fi 20948fi
20819if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then 20949if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
20820 as_fn_error $? "conditional \"am__fastdepCXX\" was never defined. 20950 as_fn_error "conditional \"am__fastdepCXX\" was never defined.
20821Usually this means the macro was only invoked conditionally." "$LINENO" 5 20951Usually this means the macro was only invoked conditionally." "$LINENO" 5
20822fi 20952fi
20823if test -z "${EFL_BUILD_DOC_TRUE}" && test -z "${EFL_BUILD_DOC_FALSE}"; then 20953if test -z "${EFL_BUILD_DOC_TRUE}" && test -z "${EFL_BUILD_DOC_FALSE}"; then
20824 as_fn_error $? "conditional \"EFL_BUILD_DOC\" was never defined. 20954 as_fn_error "conditional \"EFL_BUILD_DOC\" was never defined.
20825Usually this means the macro was only invoked conditionally." "$LINENO" 5 20955Usually this means the macro was only invoked conditionally." "$LINENO" 5
20826fi 20956fi
20827if test -z "${BUILD_TILER_EXAMPLE_TRUE}" && test -z "${BUILD_TILER_EXAMPLE_FALSE}"; then 20957if test -z "${BUILD_TILER_EXAMPLE_TRUE}" && test -z "${BUILD_TILER_EXAMPLE_FALSE}"; then
20828 as_fn_error $? "conditional \"BUILD_TILER_EXAMPLE\" was never defined. 20958 as_fn_error "conditional \"BUILD_TILER_EXAMPLE\" was never defined.
20829Usually this means the macro was only invoked conditionally." "$LINENO" 5 20959Usually this means the macro was only invoked conditionally." "$LINENO" 5
20830fi 20960fi
20831 20961
20832if test -z "${EINA_HAVE_WINCE_TRUE}" && test -z "${EINA_HAVE_WINCE_FALSE}"; then 20962if test -z "${EINA_HAVE_WINCE_TRUE}" && test -z "${EINA_HAVE_WINCE_FALSE}"; then
20833 as_fn_error $? "conditional \"EINA_HAVE_WINCE\" was never defined. 20963 as_fn_error "conditional \"EINA_HAVE_WINCE\" was never defined.
20834Usually this means the macro was only invoked conditionally." "$LINENO" 5 20964Usually this means the macro was only invoked conditionally." "$LINENO" 5
20835fi 20965fi
20836if test -z "${EINA_HAVE_WIN32_TRUE}" && test -z "${EINA_HAVE_WIN32_FALSE}"; then 20966if test -z "${EINA_HAVE_WIN32_TRUE}" && test -z "${EINA_HAVE_WIN32_FALSE}"; then
20837 as_fn_error $? "conditional \"EINA_HAVE_WIN32\" was never defined. 20967 as_fn_error "conditional \"EINA_HAVE_WIN32\" was never defined.
20838Usually this means the macro was only invoked conditionally." "$LINENO" 5 20968Usually this means the macro was only invoked conditionally." "$LINENO" 5
20839fi 20969fi
20840if test -z "${EINA_BUILD_CHAINED_POOL_TRUE}" && test -z "${EINA_BUILD_CHAINED_POOL_FALSE}"; then 20970if test -z "${EINA_BUILD_CHAINED_POOL_TRUE}" && test -z "${EINA_BUILD_CHAINED_POOL_FALSE}"; then
20841 as_fn_error $? "conditional \"EINA_BUILD_CHAINED_POOL\" was never defined. 20971 as_fn_error "conditional \"EINA_BUILD_CHAINED_POOL\" was never defined.
20842Usually this means the macro was only invoked conditionally." "$LINENO" 5 20972Usually this means the macro was only invoked conditionally." "$LINENO" 5
20843fi 20973fi
20844if test -z "${EINA_STATIC_BUILD_CHAINED_POOL_TRUE}" && test -z "${EINA_STATIC_BUILD_CHAINED_POOL_FALSE}"; then 20974if test -z "${EINA_STATIC_BUILD_CHAINED_POOL_TRUE}" && test -z "${EINA_STATIC_BUILD_CHAINED_POOL_FALSE}"; then
20845 as_fn_error $? "conditional \"EINA_STATIC_BUILD_CHAINED_POOL\" was never defined. 20975 as_fn_error "conditional \"EINA_STATIC_BUILD_CHAINED_POOL\" was never defined.
20846Usually this means the macro was only invoked conditionally." "$LINENO" 5 20976Usually this means the macro was only invoked conditionally." "$LINENO" 5
20847fi 20977fi
20848if test -z "${EINA_BUILD_EMEMOA_FIXED_TRUE}" && test -z "${EINA_BUILD_EMEMOA_FIXED_FALSE}"; then 20978if test -z "${EINA_BUILD_EMEMOA_FIXED_TRUE}" && test -z "${EINA_BUILD_EMEMOA_FIXED_FALSE}"; then
20849 as_fn_error $? "conditional \"EINA_BUILD_EMEMOA_FIXED\" was never defined. 20979 as_fn_error "conditional \"EINA_BUILD_EMEMOA_FIXED\" was never defined.
20850Usually this means the macro was only invoked conditionally." "$LINENO" 5 20980Usually this means the macro was only invoked conditionally." "$LINENO" 5
20851fi 20981fi
20852if test -z "${EINA_STATIC_BUILD_EMEMOA_FIXED_TRUE}" && test -z "${EINA_STATIC_BUILD_EMEMOA_FIXED_FALSE}"; then 20982if test -z "${EINA_STATIC_BUILD_EMEMOA_FIXED_TRUE}" && test -z "${EINA_STATIC_BUILD_EMEMOA_FIXED_FALSE}"; then
20853 as_fn_error $? "conditional \"EINA_STATIC_BUILD_EMEMOA_FIXED\" was never defined. 20983 as_fn_error "conditional \"EINA_STATIC_BUILD_EMEMOA_FIXED\" was never defined.
20854Usually this means the macro was only invoked conditionally." "$LINENO" 5 20984Usually this means the macro was only invoked conditionally." "$LINENO" 5
20855fi 20985fi
20856if test -z "${EINA_BUILD_EMEMOA_UNKNOWN_TRUE}" && test -z "${EINA_BUILD_EMEMOA_UNKNOWN_FALSE}"; then 20986if test -z "${EINA_BUILD_EMEMOA_UNKNOWN_TRUE}" && test -z "${EINA_BUILD_EMEMOA_UNKNOWN_FALSE}"; then
20857 as_fn_error $? "conditional \"EINA_BUILD_EMEMOA_UNKNOWN\" was never defined. 20987 as_fn_error "conditional \"EINA_BUILD_EMEMOA_UNKNOWN\" was never defined.
20858Usually this means the macro was only invoked conditionally." "$LINENO" 5 20988Usually this means the macro was only invoked conditionally." "$LINENO" 5
20859fi 20989fi
20860if test -z "${EINA_STATIC_BUILD_EMEMOA_UNKNOWN_TRUE}" && test -z "${EINA_STATIC_BUILD_EMEMOA_UNKNOWN_FALSE}"; then 20990if test -z "${EINA_STATIC_BUILD_EMEMOA_UNKNOWN_TRUE}" && test -z "${EINA_STATIC_BUILD_EMEMOA_UNKNOWN_FALSE}"; then
20861 as_fn_error $? "conditional \"EINA_STATIC_BUILD_EMEMOA_UNKNOWN\" was never defined. 20991 as_fn_error "conditional \"EINA_STATIC_BUILD_EMEMOA_UNKNOWN\" was never defined.
20862Usually this means the macro was only invoked conditionally." "$LINENO" 5 20992Usually this means the macro was only invoked conditionally." "$LINENO" 5
20863fi 20993fi
20864if test -z "${EINA_BUILD_FIXED_BITMAP_TRUE}" && test -z "${EINA_BUILD_FIXED_BITMAP_FALSE}"; then 20994if test -z "${EINA_BUILD_FIXED_BITMAP_TRUE}" && test -z "${EINA_BUILD_FIXED_BITMAP_FALSE}"; then
20865 as_fn_error $? "conditional \"EINA_BUILD_FIXED_BITMAP\" was never defined. 20995 as_fn_error "conditional \"EINA_BUILD_FIXED_BITMAP\" was never defined.
20866Usually this means the macro was only invoked conditionally." "$LINENO" 5 20996Usually this means the macro was only invoked conditionally." "$LINENO" 5
20867fi 20997fi
20868if test -z "${EINA_STATIC_BUILD_FIXED_BITMAP_TRUE}" && test -z "${EINA_STATIC_BUILD_FIXED_BITMAP_FALSE}"; then 20998if test -z "${EINA_STATIC_BUILD_FIXED_BITMAP_TRUE}" && test -z "${EINA_STATIC_BUILD_FIXED_BITMAP_FALSE}"; then
20869 as_fn_error $? "conditional \"EINA_STATIC_BUILD_FIXED_BITMAP\" was never defined. 20999 as_fn_error "conditional \"EINA_STATIC_BUILD_FIXED_BITMAP\" was never defined.
20870Usually this means the macro was only invoked conditionally." "$LINENO" 5 21000Usually this means the macro was only invoked conditionally." "$LINENO" 5
20871fi 21001fi
20872if test -z "${EINA_BUILD_PASS_THROUGH_TRUE}" && test -z "${EINA_BUILD_PASS_THROUGH_FALSE}"; then 21002if test -z "${EINA_BUILD_PASS_THROUGH_TRUE}" && test -z "${EINA_BUILD_PASS_THROUGH_FALSE}"; then
20873 as_fn_error $? "conditional \"EINA_BUILD_PASS_THROUGH\" was never defined. 21003 as_fn_error "conditional \"EINA_BUILD_PASS_THROUGH\" was never defined.
20874Usually this means the macro was only invoked conditionally." "$LINENO" 5 21004Usually this means the macro was only invoked conditionally." "$LINENO" 5
20875fi 21005fi
20876if test -z "${EINA_STATIC_BUILD_PASS_THROUGH_TRUE}" && test -z "${EINA_STATIC_BUILD_PASS_THROUGH_FALSE}"; then 21006if test -z "${EINA_STATIC_BUILD_PASS_THROUGH_TRUE}" && test -z "${EINA_STATIC_BUILD_PASS_THROUGH_FALSE}"; then
20877 as_fn_error $? "conditional \"EINA_STATIC_BUILD_PASS_THROUGH\" was never defined. 21007 as_fn_error "conditional \"EINA_STATIC_BUILD_PASS_THROUGH\" was never defined.
20878Usually this means the macro was only invoked conditionally." "$LINENO" 5 21008Usually this means the macro was only invoked conditionally." "$LINENO" 5
20879fi 21009fi
20880if test -z "${EINA_BUILD_BUDDY_TRUE}" && test -z "${EINA_BUILD_BUDDY_FALSE}"; then 21010if test -z "${EINA_BUILD_BUDDY_TRUE}" && test -z "${EINA_BUILD_BUDDY_FALSE}"; then
20881 as_fn_error $? "conditional \"EINA_BUILD_BUDDY\" was never defined. 21011 as_fn_error "conditional \"EINA_BUILD_BUDDY\" was never defined.
20882Usually this means the macro was only invoked conditionally." "$LINENO" 5 21012Usually this means the macro was only invoked conditionally." "$LINENO" 5
20883fi 21013fi
20884if test -z "${EINA_STATIC_BUILD_BUDDY_TRUE}" && test -z "${EINA_STATIC_BUILD_BUDDY_FALSE}"; then 21014if test -z "${EINA_STATIC_BUILD_BUDDY_TRUE}" && test -z "${EINA_STATIC_BUILD_BUDDY_FALSE}"; then
20885 as_fn_error $? "conditional \"EINA_STATIC_BUILD_BUDDY\" was never defined. 21015 as_fn_error "conditional \"EINA_STATIC_BUILD_BUDDY\" was never defined.
20886Usually this means the macro was only invoked conditionally." "$LINENO" 5 21016Usually this means the macro was only invoked conditionally." "$LINENO" 5
20887fi 21017fi
20888if test -z "${EINA_BUILD_ONE_BIG_TRUE}" && test -z "${EINA_BUILD_ONE_BIG_FALSE}"; then 21018if test -z "${EINA_BUILD_ONE_BIG_TRUE}" && test -z "${EINA_BUILD_ONE_BIG_FALSE}"; then
20889 as_fn_error $? "conditional \"EINA_BUILD_ONE_BIG\" was never defined. 21019 as_fn_error "conditional \"EINA_BUILD_ONE_BIG\" was never defined.
20890Usually this means the macro was only invoked conditionally." "$LINENO" 5 21020Usually this means the macro was only invoked conditionally." "$LINENO" 5
20891fi 21021fi
20892if test -z "${EINA_STATIC_BUILD_ONE_BIG_TRUE}" && test -z "${EINA_STATIC_BUILD_ONE_BIG_FALSE}"; then 21022if test -z "${EINA_STATIC_BUILD_ONE_BIG_TRUE}" && test -z "${EINA_STATIC_BUILD_ONE_BIG_FALSE}"; then
20893 as_fn_error $? "conditional \"EINA_STATIC_BUILD_ONE_BIG\" was never defined. 21023 as_fn_error "conditional \"EINA_STATIC_BUILD_ONE_BIG\" was never defined.
20894Usually this means the macro was only invoked conditionally." "$LINENO" 5 21024Usually this means the macro was only invoked conditionally." "$LINENO" 5
20895fi 21025fi
20896if test -z "${EFL_ENABLE_TESTS_TRUE}" && test -z "${EFL_ENABLE_TESTS_FALSE}"; then 21026if test -z "${EFL_ENABLE_TESTS_TRUE}" && test -z "${EFL_ENABLE_TESTS_FALSE}"; then
20897 as_fn_error $? "conditional \"EFL_ENABLE_TESTS\" was never defined. 21027 as_fn_error "conditional \"EFL_ENABLE_TESTS\" was never defined.
20898Usually this means the macro was only invoked conditionally." "$LINENO" 5 21028Usually this means the macro was only invoked conditionally." "$LINENO" 5
20899fi 21029fi
20900if test -z "${EFL_ENABLE_COVERAGE_TRUE}" && test -z "${EFL_ENABLE_COVERAGE_FALSE}"; then 21030if test -z "${EFL_ENABLE_COVERAGE_TRUE}" && test -z "${EFL_ENABLE_COVERAGE_FALSE}"; then
20901 as_fn_error $? "conditional \"EFL_ENABLE_COVERAGE\" was never defined. 21031 as_fn_error "conditional \"EFL_ENABLE_COVERAGE\" was never defined.
20902Usually this means the macro was only invoked conditionally." "$LINENO" 5 21032Usually this means the macro was only invoked conditionally." "$LINENO" 5
20903fi 21033fi
20904if test -z "${EFL_ENABLE_BENCHMARK_TRUE}" && test -z "${EFL_ENABLE_BENCHMARK_FALSE}"; then 21034if test -z "${EFL_ENABLE_BENCHMARK_TRUE}" && test -z "${EFL_ENABLE_BENCHMARK_FALSE}"; then
20905 as_fn_error $? "conditional \"EFL_ENABLE_BENCHMARK\" was never defined. 21035 as_fn_error "conditional \"EFL_ENABLE_BENCHMARK\" was never defined.
20906Usually this means the macro was only invoked conditionally." "$LINENO" 5 21036Usually this means the macro was only invoked conditionally." "$LINENO" 5
20907fi 21037fi
20908if test -z "${EINA_HAVE_GLIB_TRUE}" && test -z "${EINA_HAVE_GLIB_FALSE}"; then 21038if test -z "${EINA_HAVE_GLIB_TRUE}" && test -z "${EINA_HAVE_GLIB_FALSE}"; then
20909 as_fn_error $? "conditional \"EINA_HAVE_GLIB\" was never defined. 21039 as_fn_error "conditional \"EINA_HAVE_GLIB\" was never defined.
20910Usually this means the macro was only invoked conditionally." "$LINENO" 5 21040Usually this means the macro was only invoked conditionally." "$LINENO" 5
20911fi 21041fi
20912if test -z "${CITYHASH_BENCH_TRUE}" && test -z "${CITYHASH_BENCH_FALSE}"; then 21042if test -z "${CITYHASH_BENCH_TRUE}" && test -z "${CITYHASH_BENCH_FALSE}"; then
20913 as_fn_error $? "conditional \"CITYHASH_BENCH\" was never defined. 21043 as_fn_error "conditional \"CITYHASH_BENCH\" was never defined.
20914Usually this means the macro was only invoked conditionally." "$LINENO" 5 21044Usually this means the macro was only invoked conditionally." "$LINENO" 5
20915fi 21045fi
20916if test -z "${EFL_BUILD_EXAMPLES_TRUE}" && test -z "${EFL_BUILD_EXAMPLES_FALSE}"; then 21046if test -z "${EFL_BUILD_EXAMPLES_TRUE}" && test -z "${EFL_BUILD_EXAMPLES_FALSE}"; then
20917 as_fn_error $? "conditional \"EFL_BUILD_EXAMPLES\" was never defined. 21047 as_fn_error "conditional \"EFL_BUILD_EXAMPLES\" was never defined.
20918Usually this means the macro was only invoked conditionally." "$LINENO" 5 21048Usually this means the macro was only invoked conditionally." "$LINENO" 5
20919fi 21049fi
20920if test -z "${EFL_INSTALL_EXAMPLES_TRUE}" && test -z "${EFL_INSTALL_EXAMPLES_FALSE}"; then 21050if test -z "${EFL_INSTALL_EXAMPLES_TRUE}" && test -z "${EFL_INSTALL_EXAMPLES_FALSE}"; then
20921 as_fn_error $? "conditional \"EFL_INSTALL_EXAMPLES\" was never defined. 21051 as_fn_error "conditional \"EFL_INSTALL_EXAMPLES\" was never defined.
20922Usually this means the macro was only invoked conditionally." "$LINENO" 5 21052Usually this means the macro was only invoked conditionally." "$LINENO" 5
20923fi 21053fi
20924 21054
@@ -21068,19 +21198,19 @@ export LANGUAGE
21068(unset CDPATH) >/dev/null 2>&1 && unset CDPATH 21198(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
21069 21199
21070 21200
21071# as_fn_error STATUS ERROR [LINENO LOG_FD] 21201# as_fn_error ERROR [LINENO LOG_FD]
21072# ---------------------------------------- 21202# ---------------------------------
21073# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are 21203# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
21074# provided, also output the error to LOG_FD, referencing LINENO. Then exit the 21204# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
21075# script with STATUS, using 1 if that was 0. 21205# script with status $?, using 1 if that was 0.
21076as_fn_error () 21206as_fn_error ()
21077{ 21207{
21078 as_status=$1; test $as_status -eq 0 && as_status=1 21208 as_status=$?; test $as_status -eq 0 && as_status=1
21079 if test "$4"; then 21209 if test "$3"; then
21080 as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 21210 as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
21081 $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 21211 $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
21082 fi 21212 fi
21083 $as_echo "$as_me: error: $2" >&2 21213 $as_echo "$as_me: error: $1" >&2
21084 as_fn_exit $as_status 21214 as_fn_exit $as_status
21085} # as_fn_error 21215} # as_fn_error
21086 21216
@@ -21276,7 +21406,7 @@ $as_echo X"$as_dir" |
21276 test -d "$as_dir" && break 21406 test -d "$as_dir" && break
21277 done 21407 done
21278 test -z "$as_dirs" || eval "mkdir $as_dirs" 21408 test -z "$as_dirs" || eval "mkdir $as_dirs"
21279 } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" 21409 } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir"
21280 21410
21281 21411
21282} # as_fn_mkdir_p 21412} # as_fn_mkdir_p
@@ -21329,8 +21459,8 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
21329# report actual input values of CONFIG_FILES etc. instead of their 21459# report actual input values of CONFIG_FILES etc. instead of their
21330# values after options handling. 21460# values after options handling.
21331ac_log=" 21461ac_log="
21332This file was extended by eina $as_me 1.1.0, which was 21462This file was extended by eina $as_me 1.1.99.67344, which was
21333generated by GNU Autoconf 2.67. Invocation command line was 21463generated by GNU Autoconf 2.65. Invocation command line was
21334 21464
21335 CONFIG_FILES = $CONFIG_FILES 21465 CONFIG_FILES = $CONFIG_FILES
21336 CONFIG_HEADERS = $CONFIG_HEADERS 21466 CONFIG_HEADERS = $CONFIG_HEADERS
@@ -21395,11 +21525,11 @@ _ACEOF
21395cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 21525cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
21396ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" 21526ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
21397ac_cs_version="\\ 21527ac_cs_version="\\
21398eina config.status 1.1.0 21528eina config.status 1.1.99.67344
21399configured by $0, generated by GNU Autoconf 2.67, 21529configured by $0, generated by GNU Autoconf 2.65,
21400 with options \\"\$ac_cs_config\\" 21530 with options \\"\$ac_cs_config\\"
21401 21531
21402Copyright (C) 2010 Free Software Foundation, Inc. 21532Copyright (C) 2009 Free Software Foundation, Inc.
21403This config.status script is free software; the Free Software Foundation 21533This config.status script is free software; the Free Software Foundation
21404gives unlimited permission to copy, distribute and modify it." 21534gives unlimited permission to copy, distribute and modify it."
21405 21535
@@ -21417,16 +21547,11 @@ ac_need_defaults=:
21417while test $# != 0 21547while test $# != 0
21418do 21548do
21419 case $1 in 21549 case $1 in
21420 --*=?*) 21550 --*=*)
21421 ac_option=`expr "X$1" : 'X\([^=]*\)='` 21551 ac_option=`expr "X$1" : 'X\([^=]*\)='`
21422 ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` 21552 ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
21423 ac_shift=: 21553 ac_shift=:
21424 ;; 21554 ;;
21425 --*=)
21426 ac_option=`expr "X$1" : 'X\([^=]*\)='`
21427 ac_optarg=
21428 ac_shift=:
21429 ;;
21430 *) 21555 *)
21431 ac_option=$1 21556 ac_option=$1
21432 ac_optarg=$2 21557 ac_optarg=$2
@@ -21448,7 +21573,6 @@ do
21448 $ac_shift 21573 $ac_shift
21449 case $ac_optarg in 21574 case $ac_optarg in
21450 *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; 21575 *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
21451 '') as_fn_error $? "missing file argument" ;;
21452 esac 21576 esac
21453 as_fn_append CONFIG_FILES " '$ac_optarg'" 21577 as_fn_append CONFIG_FILES " '$ac_optarg'"
21454 ac_need_defaults=false;; 21578 ac_need_defaults=false;;
@@ -21461,7 +21585,7 @@ do
21461 ac_need_defaults=false;; 21585 ac_need_defaults=false;;
21462 --he | --h) 21586 --he | --h)
21463 # Conflict between --help and --header 21587 # Conflict between --help and --header
21464 as_fn_error $? "ambiguous option: \`$1' 21588 as_fn_error "ambiguous option: \`$1'
21465Try \`$0 --help' for more information.";; 21589Try \`$0 --help' for more information.";;
21466 --help | --hel | -h ) 21590 --help | --hel | -h )
21467 $as_echo "$ac_cs_usage"; exit ;; 21591 $as_echo "$ac_cs_usage"; exit ;;
@@ -21470,7 +21594,7 @@ Try \`$0 --help' for more information.";;
21470 ac_cs_silent=: ;; 21594 ac_cs_silent=: ;;
21471 21595
21472 # This is an error. 21596 # This is an error.
21473 -*) as_fn_error $? "unrecognized option: \`$1' 21597 -*) as_fn_error "unrecognized option: \`$1'
21474Try \`$0 --help' for more information." ;; 21598Try \`$0 --help' for more information." ;;
21475 21599
21476 *) as_fn_append ac_config_targets " $1" 21600 *) as_fn_append ac_config_targets " $1"
@@ -21900,7 +22024,7 @@ do
21900 "src/tests/Makefile") CONFIG_FILES="$CONFIG_FILES src/tests/Makefile" ;; 22024 "src/tests/Makefile") CONFIG_FILES="$CONFIG_FILES src/tests/Makefile" ;;
21901 "src/examples/Makefile") CONFIG_FILES="$CONFIG_FILES src/examples/Makefile" ;; 22025 "src/examples/Makefile") CONFIG_FILES="$CONFIG_FILES src/examples/Makefile" ;;
21902 22026
21903 *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5 ;; 22027 *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
21904 esac 22028 esac
21905done 22029done
21906 22030
@@ -21938,7 +22062,7 @@ $debug ||
21938{ 22062{
21939 tmp=./conf$$-$RANDOM 22063 tmp=./conf$$-$RANDOM
21940 (umask 077 && mkdir "$tmp") 22064 (umask 077 && mkdir "$tmp")
21941} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 22065} || as_fn_error "cannot create a temporary directory in ." "$LINENO" 5
21942 22066
21943# Set up the scripts for CONFIG_FILES section. 22067# Set up the scripts for CONFIG_FILES section.
21944# No need to generate them if there are no CONFIG_FILES. 22068# No need to generate them if there are no CONFIG_FILES.
@@ -21955,7 +22079,7 @@ if test "x$ac_cr" = x; then
21955fi 22079fi
21956ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null` 22080ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
21957if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then 22081if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
21958 ac_cs_awk_cr='\\r' 22082 ac_cs_awk_cr='\r'
21959else 22083else
21960 ac_cs_awk_cr=$ac_cr 22084 ac_cs_awk_cr=$ac_cr
21961fi 22085fi
@@ -21969,18 +22093,18 @@ _ACEOF
21969 echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && 22093 echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
21970 echo "_ACEOF" 22094 echo "_ACEOF"
21971} >conf$$subs.sh || 22095} >conf$$subs.sh ||
21972 as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 22096 as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
21973ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` 22097ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'`
21974ac_delim='%!_!# ' 22098ac_delim='%!_!# '
21975for ac_last_try in false false false false false :; do 22099for ac_last_try in false false false false false :; do
21976 . ./conf$$subs.sh || 22100 . ./conf$$subs.sh ||
21977 as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 22101 as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
21978 22102
21979 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` 22103 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
21980 if test $ac_delim_n = $ac_delim_num; then 22104 if test $ac_delim_n = $ac_delim_num; then
21981 break 22105 break
21982 elif $ac_last_try; then 22106 elif $ac_last_try; then
21983 as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 22107 as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
21984 else 22108 else
21985 ac_delim="$ac_delim!$ac_delim _$ac_delim!! " 22109 ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
21986 fi 22110 fi
@@ -22069,28 +22193,20 @@ if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
22069else 22193else
22070 cat 22194 cat
22071fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ 22195fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
22072 || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 22196 || as_fn_error "could not setup config files machinery" "$LINENO" 5
22073_ACEOF 22197_ACEOF
22074 22198
22075# VPATH may cause trouble with some makes, so we remove sole $(srcdir), 22199# VPATH may cause trouble with some makes, so we remove $(srcdir),
22076# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and 22200# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
22077# trailing colons and then remove the whole line if VPATH becomes empty 22201# trailing colons and then remove the whole line if VPATH becomes empty
22078# (actually we leave an empty line to preserve line numbers). 22202# (actually we leave an empty line to preserve line numbers).
22079if test "x$srcdir" = x.; then 22203if test "x$srcdir" = x.; then
22080 ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ 22204 ac_vpsub='/^[ ]*VPATH[ ]*=/{
22081h 22205s/:*\$(srcdir):*/:/
22082s/// 22206s/:*\${srcdir}:*/:/
22083s/^/:/ 22207s/:*@srcdir@:*/:/
22084s/[ ]*$/:/ 22208s/^\([^=]*=[ ]*\):*/\1/
22085s/:\$(srcdir):/:/g
22086s/:\${srcdir}:/:/g
22087s/:@srcdir@:/:/g
22088s/^:*//
22089s/:*$// 22209s/:*$//
22090x
22091s/\(=[ ]*\).*/\1/
22092G
22093s/\n//
22094s/^[^=]*=[ ]*$// 22210s/^[^=]*=[ ]*$//
22095}' 22211}'
22096fi 22212fi
@@ -22118,7 +22234,7 @@ for ac_last_try in false false :; do
22118 if test -z "$ac_t"; then 22234 if test -z "$ac_t"; then
22119 break 22235 break
22120 elif $ac_last_try; then 22236 elif $ac_last_try; then
22121 as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 22237 as_fn_error "could not make $CONFIG_HEADERS" "$LINENO" 5
22122 else 22238 else
22123 ac_delim="$ac_delim!$ac_delim _$ac_delim!! " 22239 ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
22124 fi 22240 fi
@@ -22203,7 +22319,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
22203_ACAWK 22319_ACAWK
22204_ACEOF 22320_ACEOF
22205cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 22321cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
22206 as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 22322 as_fn_error "could not setup config headers machinery" "$LINENO" 5
22207fi # test -n "$CONFIG_HEADERS" 22323fi # test -n "$CONFIG_HEADERS"
22208 22324
22209 22325
@@ -22216,7 +22332,7 @@ do
22216 esac 22332 esac
22217 case $ac_mode$ac_tag in 22333 case $ac_mode$ac_tag in
22218 :[FHL]*:*);; 22334 :[FHL]*:*);;
22219 :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5 ;; 22335 :L* | :C*:*) as_fn_error "invalid tag \`$ac_tag'" "$LINENO" 5;;
22220 :[FH]-) ac_tag=-:-;; 22336 :[FH]-) ac_tag=-:-;;
22221 :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; 22337 :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
22222 esac 22338 esac
@@ -22244,7 +22360,7 @@ do
22244 [\\/$]*) false;; 22360 [\\/$]*) false;;
22245 *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; 22361 *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
22246 esac || 22362 esac ||
22247 as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5 ;; 22363 as_fn_error "cannot find input file: \`$ac_f'" "$LINENO" 5;;
22248 esac 22364 esac
22249 case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac 22365 case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
22250 as_fn_append ac_file_inputs " '$ac_f'" 22366 as_fn_append ac_file_inputs " '$ac_f'"
@@ -22271,7 +22387,7 @@ $as_echo "$as_me: creating $ac_file" >&6;}
22271 22387
22272 case $ac_tag in 22388 case $ac_tag in
22273 *:-:* | *:-) cat >"$tmp/stdin" \ 22389 *:-:* | *:-) cat >"$tmp/stdin" \
22274 || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; 22390 || as_fn_error "could not create $ac_file" "$LINENO" 5 ;;
22275 esac 22391 esac
22276 ;; 22392 ;;
22277 esac 22393 esac
@@ -22408,22 +22524,22 @@ s&@MKDIR_P@&$ac_MKDIR_P&;t t
22408$ac_datarootdir_hack 22524$ac_datarootdir_hack
22409" 22525"
22410eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ 22526eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \
22411 || as_fn_error $? "could not create $ac_file" "$LINENO" 5 22527 || as_fn_error "could not create $ac_file" "$LINENO" 5
22412 22528
22413test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && 22529test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
22414 { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && 22530 { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
22415 { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && 22531 { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
22416 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' 22532 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
22417which seems to be undefined. Please make sure it is defined" >&5 22533which seems to be undefined. Please make sure it is defined." >&5
22418$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' 22534$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
22419which seems to be undefined. Please make sure it is defined" >&2;} 22535which seems to be undefined. Please make sure it is defined." >&2;}
22420 22536
22421 rm -f "$tmp/stdin" 22537 rm -f "$tmp/stdin"
22422 case $ac_file in 22538 case $ac_file in
22423 -) cat "$tmp/out" && rm -f "$tmp/out";; 22539 -) cat "$tmp/out" && rm -f "$tmp/out";;
22424 *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; 22540 *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
22425 esac \ 22541 esac \
22426 || as_fn_error $? "could not create $ac_file" "$LINENO" 5 22542 || as_fn_error "could not create $ac_file" "$LINENO" 5
22427 ;; 22543 ;;
22428 :H) 22544 :H)
22429 # 22545 #
@@ -22434,19 +22550,19 @@ which seems to be undefined. Please make sure it is defined" >&2;}
22434 $as_echo "/* $configure_input */" \ 22550 $as_echo "/* $configure_input */" \
22435 && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" 22551 && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs"
22436 } >"$tmp/config.h" \ 22552 } >"$tmp/config.h" \
22437 || as_fn_error $? "could not create $ac_file" "$LINENO" 5 22553 || as_fn_error "could not create $ac_file" "$LINENO" 5
22438 if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then 22554 if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then
22439 { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 22555 { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
22440$as_echo "$as_me: $ac_file is unchanged" >&6;} 22556$as_echo "$as_me: $ac_file is unchanged" >&6;}
22441 else 22557 else
22442 rm -f "$ac_file" 22558 rm -f "$ac_file"
22443 mv "$tmp/config.h" "$ac_file" \ 22559 mv "$tmp/config.h" "$ac_file" \
22444 || as_fn_error $? "could not create $ac_file" "$LINENO" 5 22560 || as_fn_error "could not create $ac_file" "$LINENO" 5
22445 fi 22561 fi
22446 else 22562 else
22447 $as_echo "/* $configure_input */" \ 22563 $as_echo "/* $configure_input */" \
22448 && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ 22564 && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \
22449 || as_fn_error $? "could not create -" "$LINENO" 5 22565 || as_fn_error "could not create -" "$LINENO" 5
22450 fi 22566 fi
22451# Compute "$ac_file"'s index in $config_headers. 22567# Compute "$ac_file"'s index in $config_headers.
22452_am_arg="$ac_file" 22568_am_arg="$ac_file"
@@ -23404,7 +23520,7 @@ _ACEOF
23404ac_clean_files=$ac_clean_files_save 23520ac_clean_files=$ac_clean_files_save
23405 23521
23406test $ac_write_fail = 0 || 23522test $ac_write_fail = 0 ||
23407 as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 23523 as_fn_error "write failure creating $CONFIG_STATUS" "$LINENO" 5
23408 23524
23409 23525
23410# configure is writing to config.log, and then calls config.status. 23526# configure is writing to config.log, and then calls config.status.
@@ -23425,7 +23541,7 @@ if test "$no_create" != yes; then
23425 exec 5>>config.log 23541 exec 5>>config.log
23426 # Use ||, not &&, to avoid exiting from the if with $? = 1, which 23542 # Use ||, not &&, to avoid exiting from the if with $? = 1, which
23427 # would make configure fail if this is the last instruction. 23543 # would make configure fail if this is the last instruction.
23428 $ac_cs_success || as_fn_exit 1 23544 $ac_cs_success || as_fn_exit $?
23429fi 23545fi
23430if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then 23546if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
23431 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 23547 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
@@ -23452,6 +23568,7 @@ echo " Maximum log level....: ${with_max_log_level}"
23452echo " Report string usage..: ${have_stringshare_usage}" 23568echo " Report string usage..: ${have_stringshare_usage}"
23453echo " Valgrind support.....: ${have_valgrind}" 23569echo " Valgrind support.....: ${have_valgrind}"
23454echo " Default mempool......: ${have_default_mempool}" 23570echo " Default mempool......: ${have_default_mempool}"
23571echo " Log support..........: ${enable_log}"
23455echo " Thread Support.......: ${have_threads}" 23572echo " Thread Support.......: ${have_threads}"
23456if test "${have_threads}" = "POSIX" ; then 23573if test "${have_threads}" = "POSIX" ; then
23457echo " spinlock...........: ${have_posix_threads_spinlock}" 23574echo " spinlock...........: ${have_posix_threads_spinlock}"
@@ -23460,7 +23577,7 @@ echo " on/off support.....: ${have_on_off_threads}"
23460fi 23577fi
23461echo " Amalgamation.........: ${do_amalgamation}" 23578echo " Amalgamation.........: ${do_amalgamation}"
23462echo " Iconv support........: ${have_iconv}" 23579echo " Iconv support........: ${have_iconv}"
23463echo " File dirfd...........: ${ac_cv_func_dirfd}" 23580echo " File dirfd...........: ${have_dirfd}"
23464echo " File xattr...........: ${have_xattr}" 23581echo " File xattr...........: ${have_xattr}"
23465echo 23582echo
23466echo " Documentation........: ${build_doc}" 23583echo " Documentation........: ${build_doc}"
diff --git a/libraries/eina/configure.ac b/libraries/eina/configure.ac
index 5e2fab2..367ffe1 100644
--- a/libraries/eina/configure.ac
+++ b/libraries/eina/configure.ac
@@ -2,11 +2,11 @@
2##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## 2##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
3m4_define([v_maj], [1]) 3m4_define([v_maj], [1])
4m4_define([v_min], [1]) 4m4_define([v_min], [1])
5m4_define([v_mic], [0]) 5m4_define([v_mic], [99])
6m4_define([v_rev], m4_esyscmd([(svnversion "${SVN_REPO_PATH:-.}" | grep -v export || 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
9m4_undefine([v_rev]) 9dnl m4_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])
@@ -352,41 +352,6 @@ PKG_CHECK_MODULES([ECORE_EVAS],
352 352
353AM_CONDITIONAL([BUILD_TILER_EXAMPLE], [test "x${build_tiler_example}" = "xyes"]) 353AM_CONDITIONAL([BUILD_TILER_EXAMPLE], [test "x${build_tiler_example}" = "xyes"])
354 354
355
356### Checks for header files
357AC_HEADER_ASSERT
358AC_HEADER_DIRENT
359AC_HEADER_TIME
360EFL_CHECK_PATH_MAX
361AC_CHECK_HEADERS([unistd.h libgen.h inttypes.h stdint.h sys/types.h siginfo.h])
362
363if test "x${ac_cv_header_inttypes_h}" = "xyes" ; then
364 EINA_CONFIGURE_HAVE_INTTYPES_H="#define EINA_HAVE_INTTYPES_H"
365 AC_DEFINE([HAVE_INTTYPES_H], [1], [Define to 1 if you have the <inttypes.h> header file.])
366fi
367AC_SUBST([EINA_CONFIGURE_HAVE_INTTYPES_H])
368
369if test "x${ac_cv_header_inttypes_h}" = "xyes" ; then
370 EINA_CONFIGURE_HAVE_STDINT_H="#define EINA_HAVE_STDINT_H"
371 AC_DEFINE([HAVE_STDINT_H], [1], [Define to 1 if you have the <stdint.h> header file.])
372fi
373AC_SUBST([EINA_CONFIGURE_HAVE_STDINT_H])
374
375### Checks for types
376
377AC_CHECK_SIZEOF([wchar_t])
378EINA_SIZEOF_WCHAR_T=$ac_cv_sizeof_wchar_t
379AC_SUBST([EINA_SIZEOF_WCHAR_T])
380AC_CHECK_TYPES([siginfo_t], [], [],
381 [[#include <signal.h>
382 #if HAVE_SIGINFO_H
383 # include <siginfo.h>
384 #endif
385 ]])
386
387### Checks for structures
388
389
390### Checks for compiler characteristics 355### Checks for compiler characteristics
391AC_C_CONST 356AC_C_CONST
392AC_C_BIGENDIAN 357AC_C_BIGENDIAN
@@ -422,6 +387,15 @@ m4_ifdef([v_mic],
422 387
423EFL_COMPILER_FLAG([-Wshadow]) 388EFL_COMPILER_FLAG([-Wshadow])
424 389
390case "$host_vendor" in
391 ps3*)
392 PKG_CHECK_MODULES([ESCAPE], [escape])
393 AC_DEFINE(HAVE_ESCAPE, 1, [Set to 1 if evil package is installed])
394 requirement_eina="escape"
395 EINA_CFLAGS="${ESCAPE_CFLAGS} ${EINA_CFLAGS}"
396 ;;
397esac
398
425AC_SUBST([EINA_CPPFLAGS]) 399AC_SUBST([EINA_CPPFLAGS])
426AC_SUBST([EINA_CFLAGS]) 400AC_SUBST([EINA_CFLAGS])
427 401
@@ -450,26 +424,112 @@ case "${host_os}" in
450 EINA_LIBS="-ldl -lrt -lm" 424 EINA_LIBS="-ldl -lrt -lm"
451 ;; 425 ;;
452esac 426esac
453AC_SUBST([EINA_LIBS])
454AC_SUBST([lt_enable_auto_import])
455
456case "$host_vendor" in 427case "$host_vendor" in
457 ps3*) 428 ps3*)
458 PKG_CHECK_MODULES([ESCAPE], [escape]) 429 # Escape had already been checked to exist
459 AC_DEFINE(HAVE_ESCAPE, 1, [Set to 1 if evil package is installed])
460 requirement_eina="escape"
461 EINA_LIBS="${ESCAPE_LIBS}" 430 EINA_LIBS="${ESCAPE_LIBS}"
462 EINA_CFLAGS="${ESCAPE_CFLAGS} ${EINA_CFLAGS}"
463 ;; 431 ;;
464esac 432esac
433AC_SUBST([EINA_LIBS])
434AC_SUBST([lt_enable_auto_import])
465 435
466EFL_LINKER_FLAG([-fno-strict-aliasing]) 436EFL_LINKER_FLAG([-fno-strict-aliasing])
467 437
438CFLAGS="${CFLAGS} ${EINA_CFLAGS}"
439LDFLAGS="${LDFLAGS} ${EINA_LDFLAGS}"
440LIBS="${LIBS} ${EINA_LIBS}"
441
442### Checks for header files
443AC_HEADER_ASSERT
444AC_HEADER_TIME
445EFL_CHECK_PATH_MAX
446AC_CHECK_HEADERS([unistd.h libgen.h inttypes.h stdint.h sys/types.h siginfo.h strings.h sys/mman.h])
447
448if test "x${ac_cv_header_inttypes_h}" = "xyes" ; then
449 EINA_CONFIGURE_HAVE_INTTYPES_H="#define EINA_HAVE_INTTYPES_H"
450 AC_DEFINE([HAVE_INTTYPES_H], [1], [Define to 1 if you have the <inttypes.h> header file.])
451fi
452AC_SUBST([EINA_CONFIGURE_HAVE_INTTYPES_H])
453
454if test "x${ac_cv_header_inttypes_h}" = "xyes" ; then
455 EINA_CONFIGURE_HAVE_STDINT_H="#define EINA_HAVE_STDINT_H"
456 AC_DEFINE([HAVE_STDINT_H], [1], [Define to 1 if you have the <stdint.h> header file.])
457fi
458AC_SUBST([EINA_CONFIGURE_HAVE_STDINT_H])
459
460### Checks for types
461
462AC_CHECK_SIZEOF([wchar_t])
463EINA_SIZEOF_WCHAR_T=$ac_cv_sizeof_wchar_t
464AC_SUBST([EINA_SIZEOF_WCHAR_T])
465AC_CHECK_TYPES([siginfo_t], [], [],
466 [[#include <signal.h>
467 #if HAVE_SIGINFO_H
468 # include <siginfo.h>
469 #endif
470 ]])
471
472### Check if dirent.h is usable
473
474AC_CHECK_TYPES([struct dirent], [have_dirent="yes"], [have_dirent="no"],
475 [[#include <dirent.h>
476 ]])
477
478if test "x${have_dirent}" = "xyes" ; then
479 EINA_CONFIGURE_HAVE_DIRENT_H="#define EINA_HAVE_DIRENT_H"
480 AC_DEFINE([HAVE_DIRENT_H], [1], [Define to 1 if you have a valid <dirent.h> header file.])
481fi
482AC_SUBST([EINA_CONFIGURE_HAVE_DIRENT_H])
468 483
469### Checks for library functions 484### Checks for library functions
470AC_ISC_POSIX 485AC_ISC_POSIX
471AC_FUNC_ALLOCA 486AC_FUNC_ALLOCA
472AC_CHECK_FUNCS([strlcpy dirfd openat fstatat fpathconf execvp]) 487AC_CHECK_FUNCS([strlcpy openat fstatat fpathconf execvp])
488
489AC_MSG_CHECKING([for dirfd])
490AC_LINK_IFELSE(
491 [
492 AC_LANG_PROGRAM(
493 [[
494#include <dirent.h>
495 ]],
496 [[
497int main(void)
498{
499 DIR *dirp;
500 return dirfd(dirp);
501}
502 ]])
503 ],
504 [have_dirfd="yes"],
505 [have_dirfd="no"])
506
507AC_MSG_RESULT([${have_dirfd}])
508
509if test "x${have_dirfd}" = "xyes" ; then
510 AC_DEFINE([HAVE_DIRFD], [1], [ Define to 1 if you have the `dirfd' function or macro.])
511fi
512
513# check debug information for malloc
514AC_CHECK_FUNCS([malloc_usable_size], [malloc_true_size="yes"], [malloc_true_size="no"])
515if test "x${malloc_true_size}" = "xyes" ; then
516 AC_DEFINE([HAVE_MALLOC_USABLE_SIZE], [1], [We will be able to know the exact amount of wasted memory])
517fi
518
519want_debug_malloc="no"
520AC_ARG_ENABLE([debug-malloc],
521 [AC_HELP_STRING([--enable-debug-malloc], [enable debugging of malloc usage overhead in our allocator @<:@default=enabled@:>@])],
522 [
523 if test "x${enableval}" = "xyes" ; then
524 want_debug_malloc="yes"
525 else
526 want_debug_malloc="no"
527 fi
528 ], [want_debug_malloc="no"])
529
530if test "x${malloc_true_size}" = "xyes" -a "x${want_debug_malloc}" = "xyes"; then
531 AC_DEFINE([EINA_DEBUG_MALLOC], [1], [Turn on debugging overhead in mempool])
532fi
473 533
474# dlopen and dladdr 534# dlopen and dladdr
475dlopen_libs="" 535dlopen_libs=""
@@ -496,7 +556,34 @@ case "$host_os" in
496esac 556esac
497AC_SUBST([dlopen_libs]) 557AC_SUBST([dlopen_libs])
498 558
499EFL_CHECK_FNMATCH([], [AC_MSG_ERROR([Cannot find fnmatch()])]) 559have_log="yes"
560EFL_CHECK_FNMATCH([have_log="yes"], [have_log="no"])
561
562want_log="yes"
563AC_ARG_ENABLE([log],
564 [AC_HELP_STRING([--disable-log], [disable Eina_Log infrastructure completly @<:@default=enabled@:>@])],
565 [
566 if test "x${enableval}" = "xyes" ; then
567 want_log="yes"
568 else
569 want_log="no"
570 fi
571 ],
572 [want_log="yes"])
573
574enable_log="no"
575if test "x${have_log}" = xyes -a "x${want_log}" = xyes; then
576 enable_log="yes"
577fi
578
579AC_MSG_CHECKING([wether to build Eina_Log infrastructure])
580AC_MSG_RESULT([${enable_log}])
581
582if test "x${enable_log}" = "xyes"; then
583 EINA_CONFIGURE_ENABLE_LOG="#define EINA_ENABLE_LOG"
584 AC_DEFINE([HAVE_LOG], [1], [Define to 1 if we log support is on])
585fi
586AC_SUBST([EINA_CONFIGURE_ENABLE_LOG])
500 587
501AC_CHECK_HEADERS([mcheck.h], [AC_DEFINE([HAVE_MCHECK], [1], [Have mcheck.h])]) 588AC_CHECK_HEADERS([mcheck.h], [AC_DEFINE([HAVE_MCHECK], [1], [Have mcheck.h])])
502AC_CHECK_FUNCS([mtrace], [AC_DEFINE([HAVE_MTRACE], [1], [Have mtrace])]) 589AC_CHECK_FUNCS([mtrace], [AC_DEFINE([HAVE_MTRACE], [1], [Have mtrace])])
@@ -748,6 +835,7 @@ echo " Maximum log level....: ${with_max_log_level}"
748echo " Report string usage..: ${have_stringshare_usage}" 835echo " Report string usage..: ${have_stringshare_usage}"
749echo " Valgrind support.....: ${have_valgrind}" 836echo " Valgrind support.....: ${have_valgrind}"
750echo " Default mempool......: ${have_default_mempool}" 837echo " Default mempool......: ${have_default_mempool}"
838echo " Log support..........: ${enable_log}"
751echo " Thread Support.......: ${have_threads}" 839echo " Thread Support.......: ${have_threads}"
752if test "${have_threads}" = "POSIX" ; then 840if test "${have_threads}" = "POSIX" ; then
753echo " spinlock...........: ${have_posix_threads_spinlock}" 841echo " spinlock...........: ${have_posix_threads_spinlock}"
@@ -756,7 +844,7 @@ echo " on/off support.....: ${have_on_off_threads}"
756fi 844fi
757echo " Amalgamation.........: ${do_amalgamation}" 845echo " Amalgamation.........: ${do_amalgamation}"
758echo " Iconv support........: ${have_iconv}" 846echo " Iconv support........: ${have_iconv}"
759echo " File dirfd...........: ${ac_cv_func_dirfd}" 847echo " File dirfd...........: ${have_dirfd}"
760echo " File xattr...........: ${have_xattr}" 848echo " File xattr...........: ${have_xattr}"
761echo 849echo
762echo " Documentation........: ${build_doc}" 850echo " Documentation........: ${build_doc}"
diff --git a/libraries/eina/doc/Doxyfile.in b/libraries/eina/doc/Doxyfile.in
index 5843161..97b0bf9 100644
--- a/libraries/eina/doc/Doxyfile.in
+++ b/libraries/eina/doc/Doxyfile.in
@@ -1,224 +1,240 @@
1# Doxyfile 1.5.5 1# Doxyfile 1.7.3
2 2
3# This file describes the settings to be used by the documentation system 3# This file describes the settings to be used by the documentation system
4# doxygen (www.doxygen.org) for a project 4# doxygen (www.doxygen.org) for a project.
5# 5#
6# All text after a hash (#) is considered a comment and will be ignored 6# All text after a hash (#) is considered a comment and will be ignored.
7# The format is: 7# The format is:
8# TAG = value [value, ...] 8# TAG = value [value, ...]
9# For lists items can also be appended using: 9# For lists items can also be appended using:
10# TAG += value [value, ...] 10# TAG += value [value, ...]
11# Values that contain spaces should be placed between quotes (" ") 11# Values that contain spaces should be placed between quotes (" ").
12 12
13#--------------------------------------------------------------------------- 13#---------------------------------------------------------------------------
14# Project related configuration options 14# Project related configuration options
15#--------------------------------------------------------------------------- 15#---------------------------------------------------------------------------
16 16
17# This tag specifies the encoding used for all characters in the config file 17# This tag specifies the encoding used for all characters in the config file
18# that follow. The default is UTF-8 which is also the encoding used for all 18# that follow. The default is UTF-8 which is also the encoding used for all
19# text before the first occurrence of this tag. Doxygen uses libiconv (or the 19# text before the first occurrence of this tag. Doxygen uses libiconv (or the
20# iconv built into libc) for the transcoding. See 20# iconv built into libc) for the transcoding. See
21# http://www.gnu.org/software/libiconv for the list of possible encodings. 21# http://www.gnu.org/software/libiconv for the list of possible encodings.
22 22
23DOXYFILE_ENCODING = UTF-8 23DOXYFILE_ENCODING = UTF-8
24 24
25# The PROJECT_NAME tag is a single word (or a sequence of words surrounded 25# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
26# by quotes) that should identify the project. 26# by quotes) that should identify the project.
27 27
28PROJECT_NAME = Eina 28PROJECT_NAME = Eina
29 29
30# The PROJECT_NUMBER tag can be used to enter a project or revision number. 30# The PROJECT_NUMBER tag can be used to enter a project or revision number.
31# This could be handy for archiving the generated documentation or 31# This could be handy for archiving the generated documentation or
32# if some version control system is used. 32# if some version control system is used.
33 33
34PROJECT_NUMBER = @PACKAGE_VERSION@ 34PROJECT_NUMBER = @PACKAGE_VERSION@
35 35
36# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) 36# Using the PROJECT_BRIEF tag one can provide an optional one line description for a project that appears at the top of each page and should give viewer a quick idea about the purpose of the project. Keep the description short.
37# base path where the generated documentation will be put. 37
38# If a relative path is entered, it will be relative to the location 38PROJECT_BRIEF =
39
40# With the PROJECT_LOGO tag one can specify an logo or icon that is
41# included in the documentation. The maximum height of the logo should not
42# exceed 55 pixels and the maximum width should not exceed 200 pixels.
43# Doxygen will copy the logo to the output directory.
44
45PROJECT_LOGO =
46
47# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
48# base path where the generated documentation will be put.
49# If a relative path is entered, it will be relative to the location
39# where doxygen was started. If left blank the current directory will be used. 50# where doxygen was started. If left blank the current directory will be used.
40 51
41OUTPUT_DIRECTORY = . 52OUTPUT_DIRECTORY = .
42 53
43# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 54# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
44# 4096 sub-directories (in 2 levels) under the output directory of each output 55# 4096 sub-directories (in 2 levels) under the output directory of each output
45# format and will distribute the generated files over these directories. 56# format and will distribute the generated files over these directories.
46# Enabling this option can be useful when feeding doxygen a huge amount of 57# Enabling this option can be useful when feeding doxygen a huge amount of
47# source files, where putting all generated files in the same directory would 58# source files, where putting all generated files in the same directory would
48# otherwise cause performance problems for the file system. 59# otherwise cause performance problems for the file system.
49 60
50CREATE_SUBDIRS = NO 61CREATE_SUBDIRS = NO
51 62
52# The OUTPUT_LANGUAGE tag is used to specify the language in which all 63# The OUTPUT_LANGUAGE tag is used to specify the language in which all
53# documentation generated by doxygen is written. Doxygen will use this 64# documentation generated by doxygen is written. Doxygen will use this
54# information to generate all constant output in the proper language. 65# information to generate all constant output in the proper language.
55# The default language is English, other supported languages are: 66# The default language is English, other supported languages are:
56# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, 67# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional,
57# Croatian, Czech, Danish, Dutch, Farsi, Finnish, French, German, Greek, 68# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German,
58# Hungarian, Italian, Japanese, Japanese-en (Japanese with English messages), 69# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English
59# Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, Polish, 70# messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian,
60# Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish, Swedish, 71# Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak,
61# and Ukrainian. 72# Slovene, Spanish, Swedish, Ukrainian, and Vietnamese.
62 73
63OUTPUT_LANGUAGE = English 74OUTPUT_LANGUAGE = English
64 75
65# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will 76# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
66# include brief member descriptions after the members that are listed in 77# include brief member descriptions after the members that are listed in
67# the file and class documentation (similar to JavaDoc). 78# the file and class documentation (similar to JavaDoc).
68# Set to NO to disable this. 79# Set to NO to disable this.
69 80
70BRIEF_MEMBER_DESC = YES 81BRIEF_MEMBER_DESC = YES
71 82
72# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend 83# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
73# the brief description of a member or function before the detailed description. 84# the brief description of a member or function before the detailed description.
74# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the 85# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
75# brief descriptions will be completely suppressed. 86# brief descriptions will be completely suppressed.
76 87
77REPEAT_BRIEF = YES 88REPEAT_BRIEF = YES
78 89
79# This tag implements a quasi-intelligent brief description abbreviator 90# This tag implements a quasi-intelligent brief description abbreviator
80# that is used to form the text in various listings. Each string 91# that is used to form the text in various listings. Each string
81# in this list, if found as the leading text of the brief description, will be 92# in this list, if found as the leading text of the brief description, will be
82# stripped from the text and the result after processing the whole list, is 93# stripped from the text and the result after processing the whole list, is
83# used as the annotated text. Otherwise, the brief description is used as-is. 94# used as the annotated text. Otherwise, the brief description is used as-is.
84# If left blank, the following values are used ("$name" is automatically 95# If left blank, the following values are used ("$name" is automatically
85# replaced with the name of the entity): "The $name class" "The $name widget" 96# replaced with the name of the entity): "The $name class" "The $name widget"
86# "The $name file" "is" "provides" "specifies" "contains" 97# "The $name file" "is" "provides" "specifies" "contains"
87# "represents" "a" "an" "the" 98# "represents" "a" "an" "the"
88 99
89ABBREVIATE_BRIEF = 100ABBREVIATE_BRIEF =
90 101
91# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then 102# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
92# Doxygen will generate a detailed section even if there is only a brief 103# Doxygen will generate a detailed section even if there is only a brief
93# description. 104# description.
94 105
95ALWAYS_DETAILED_SEC = NO 106ALWAYS_DETAILED_SEC = NO
96 107
97# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all 108# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
98# inherited members of a class in the documentation of that class as if those 109# inherited members of a class in the documentation of that class as if those
99# members were ordinary class members. Constructors, destructors and assignment 110# members were ordinary class members. Constructors, destructors and assignment
100# operators of the base classes will not be shown. 111# operators of the base classes will not be shown.
101 112
102INLINE_INHERITED_MEMB = NO 113INLINE_INHERITED_MEMB = NO
103 114
104# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full 115# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
105# path before files name in the file list and in the header files. If set 116# path before files name in the file list and in the header files. If set
106# to NO the shortest path that makes the file name unique will be used. 117# to NO the shortest path that makes the file name unique will be used.
107 118
108FULL_PATH_NAMES = NO 119FULL_PATH_NAMES = NO
109 120
110# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag 121# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
111# can be used to strip a user-defined part of the path. Stripping is 122# can be used to strip a user-defined part of the path. Stripping is
112# only done if one of the specified strings matches the left-hand part of 123# only done if one of the specified strings matches the left-hand part of
113# the path. The tag can be used to show relative paths in the file list. 124# the path. The tag can be used to show relative paths in the file list.
114# If left blank the directory from which doxygen is run is used as the 125# If left blank the directory from which doxygen is run is used as the
115# path to strip. 126# path to strip.
116 127
117STRIP_FROM_PATH = 128STRIP_FROM_PATH =
118 129
119# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of 130# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
120# the path mentioned in the documentation of a class, which tells 131# the path mentioned in the documentation of a class, which tells
121# the reader which header file to include in order to use a class. 132# the reader which header file to include in order to use a class.
122# If left blank only the name of the header file containing the class 133# If left blank only the name of the header file containing the class
123# definition is used. Otherwise one should specify the include paths that 134# definition is used. Otherwise one should specify the include paths that
124# are normally passed to the compiler using the -I flag. 135# are normally passed to the compiler using the -I flag.
125 136
126STRIP_FROM_INC_PATH = 137STRIP_FROM_INC_PATH =
127 138
128# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter 139# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
129# (but less readable) file names. This can be useful is your file systems 140# (but less readable) file names. This can be useful if your file system
130# doesn't support long names like on DOS, Mac, or CD-ROM. 141# doesn't support long names like on DOS, Mac, or CD-ROM.
131 142
132SHORT_NAMES = NO 143SHORT_NAMES = NO
133 144
134# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen 145# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
135# will interpret the first line (until the first dot) of a JavaDoc-style 146# will interpret the first line (until the first dot) of a JavaDoc-style
136# comment as the brief description. If set to NO, the JavaDoc 147# comment as the brief description. If set to NO, the JavaDoc
137# comments will behave just like regular Qt-style comments 148# comments will behave just like regular Qt-style comments
138# (thus requiring an explicit @brief command for a brief description.) 149# (thus requiring an explicit @brief command for a brief description.)
139 150
140JAVADOC_AUTOBRIEF = YES 151JAVADOC_AUTOBRIEF = YES
141 152
142# If the QT_AUTOBRIEF tag is set to YES then Doxygen will 153# If the QT_AUTOBRIEF tag is set to YES then Doxygen will
143# interpret the first line (until the first dot) of a Qt-style 154# interpret the first line (until the first dot) of a Qt-style
144# comment as the brief description. If set to NO, the comments 155# comment as the brief description. If set to NO, the comments
145# will behave just like regular Qt-style comments (thus requiring 156# will behave just like regular Qt-style comments (thus requiring
146# an explicit \brief command for a brief description.) 157# an explicit \brief command for a brief description.)
147 158
148QT_AUTOBRIEF = NO 159QT_AUTOBRIEF = NO
149 160
150# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen 161# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen
151# treat a multi-line C++ special comment block (i.e. a block of //! or /// 162# treat a multi-line C++ special comment block (i.e. a block of //! or ///
152# comments) as a brief description. This used to be the default behaviour. 163# comments) as a brief description. This used to be the default behaviour.
153# The new default is to treat a multi-line C++ comment block as a detailed 164# The new default is to treat a multi-line C++ comment block as a detailed
154# description. Set this tag to YES if you prefer the old behaviour instead. 165# description. Set this tag to YES if you prefer the old behaviour instead.
155 166
156MULTILINE_CPP_IS_BRIEF = NO 167MULTILINE_CPP_IS_BRIEF = NO
157 168
158# If the DETAILS_AT_TOP tag is set to YES then Doxygen 169# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
159# will output the detailed description near the top, like JavaDoc. 170# member inherits the documentation from any documented member that it
160# If set to NO, the detailed description appears after the member
161# documentation.
162
163DETAILS_AT_TOP = NO
164
165# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
166# member inherits the documentation from any documented member that it
167# re-implements. 171# re-implements.
168 172
169INHERIT_DOCS = YES 173INHERIT_DOCS = YES
170 174
171# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce 175# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce
172# a new page for each member. If set to NO, the documentation of a member will 176# a new page for each member. If set to NO, the documentation of a member will
173# be part of the file/class/namespace that contains it. 177# be part of the file/class/namespace that contains it.
174 178
175SEPARATE_MEMBER_PAGES = NO 179SEPARATE_MEMBER_PAGES = NO
176 180
177# The TAB_SIZE tag can be used to set the number of spaces in a tab. 181# The TAB_SIZE tag can be used to set the number of spaces in a tab.
178# Doxygen uses this value to replace tabs by spaces in code fragments. 182# Doxygen uses this value to replace tabs by spaces in code fragments.
179 183
180TAB_SIZE = 8 184TAB_SIZE = 8
181 185
182# This tag can be used to specify a number of aliases that acts 186# This tag can be used to specify a number of aliases that acts
183# as commands in the documentation. An alias has the form "name=value". 187# as commands in the documentation. An alias has the form "name=value".
184# For example adding "sideeffect=\par Side Effects:\n" will allow you to 188# For example adding "sideeffect=\par Side Effects:\n" will allow you to
185# put the command \sideeffect (or @sideeffect) in the documentation, which 189# put the command \sideeffect (or @sideeffect) in the documentation, which
186# will result in a user-defined paragraph with heading "Side Effects:". 190# will result in a user-defined paragraph with heading "Side Effects:".
187# You can put \n's in the value part of an alias to insert newlines. 191# You can put \n's in the value part of an alias to insert newlines.
188 192
189ALIASES = 193ALIASES =
190 194
191# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C 195# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C
192# sources only. Doxygen will then generate output that is more tailored for C. 196# sources only. Doxygen will then generate output that is more tailored for C.
193# For instance, some of the names that are used will be different. The list 197# For instance, some of the names that are used will be different. The list
194# of all members will be omitted, etc. 198# of all members will be omitted, etc.
195 199
196OPTIMIZE_OUTPUT_FOR_C = YES 200OPTIMIZE_OUTPUT_FOR_C = YES
197 201
198# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java 202# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java
199# sources only. Doxygen will then generate output that is more tailored for 203# sources only. Doxygen will then generate output that is more tailored for
200# Java. For instance, namespaces will be presented as packages, qualified 204# Java. For instance, namespaces will be presented as packages, qualified
201# scopes will look different, etc. 205# scopes will look different, etc.
202 206
203OPTIMIZE_OUTPUT_JAVA = NO 207OPTIMIZE_OUTPUT_JAVA = NO
204 208
205# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran 209# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
206# sources only. Doxygen will then generate output that is more tailored for 210# sources only. Doxygen will then generate output that is more tailored for
207# Fortran. 211# Fortran.
208 212
209OPTIMIZE_FOR_FORTRAN = NO 213OPTIMIZE_FOR_FORTRAN = NO
210 214
211# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL 215# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
212# sources. Doxygen will then generate output that is tailored for 216# sources. Doxygen will then generate output that is tailored for
213# VHDL. 217# VHDL.
214 218
215OPTIMIZE_OUTPUT_VHDL = NO 219OPTIMIZE_OUTPUT_VHDL = NO
216 220
217# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want 221# Doxygen selects the parser to use depending on the extension of the files it
218# to include (a tag file for) the STL sources as input, then you should 222# parses. With this tag you can assign which parser to use for a given extension.
219# set this tag to YES in order to let doxygen match functions declarations and 223# Doxygen has a built-in mapping, but you can override or extend it using this
220# definitions whose arguments contain STL classes (e.g. func(std::string); v.s. 224# tag. The format is ext=language, where ext is a file extension, and language
221# func(std::string) {}). This also make the inheritance and collaboration 225# is one of the parsers supported by doxygen: IDL, Java, Javascript, CSharp, C,
226# C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make
227# doxygen treat .inc files as Fortran files (default is PHP), and .f files as C
228# (default is Fortran), use: inc=Fortran f=C. Note that for custom extensions
229# you also need to set FILE_PATTERNS otherwise the files are not read by doxygen.
230
231EXTENSION_MAPPING =
232
233# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
234# to include (a tag file for) the STL sources as input, then you should
235# set this tag to YES in order to let doxygen match functions declarations and
236# definitions whose arguments contain STL classes (e.g. func(std::string); v.s.
237# func(std::string) {}). This also makes the inheritance and collaboration
222# diagrams that involve STL classes more complete and accurate. 238# diagrams that involve STL classes more complete and accurate.
223 239
224BUILTIN_STL_SUPPORT = NO 240BUILTIN_STL_SUPPORT = NO
@@ -228,425 +244,510 @@ BUILTIN_STL_SUPPORT = NO
228 244
229CPP_CLI_SUPPORT = NO 245CPP_CLI_SUPPORT = NO
230 246
231# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. 247# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only.
232# Doxygen will parse them like normal C++ but will assume all classes use public 248# Doxygen will parse them like normal C++ but will assume all classes use public
233# instead of private inheritance when no explicit protection keyword is present. 249# instead of private inheritance when no explicit protection keyword is present.
234 250
235SIP_SUPPORT = NO 251SIP_SUPPORT = NO
236 252
237# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC 253# For Microsoft's IDL there are propget and propput attributes to indicate getter
238# tag is set to YES, then doxygen will reuse the documentation of the first 254# and setter methods for a property. Setting this option to YES (the default)
239# member in the group (if any) for the other members of the group. By default 255# will make doxygen replace the get and set methods by a property in the
256# documentation. This will only work if the methods are indeed getting or
257# setting a simple type. If this is not the case, or you want to show the
258# methods anyway, you should set this option to NO.
259
260IDL_PROPERTY_SUPPORT = YES
261
262# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
263# tag is set to YES, then doxygen will reuse the documentation of the first
264# member in the group (if any) for the other members of the group. By default
240# all members of a group must be documented explicitly. 265# all members of a group must be documented explicitly.
241 266
242DISTRIBUTE_GROUP_DOC = NO 267DISTRIBUTE_GROUP_DOC = NO
243 268
244# Set the SUBGROUPING tag to YES (the default) to allow class member groups of 269# Set the SUBGROUPING tag to YES (the default) to allow class member groups of
245# the same type (for instance a group of public functions) to be put as a 270# the same type (for instance a group of public functions) to be put as a
246# subgroup of that type (e.g. under the Public Functions section). Set it to 271# subgroup of that type (e.g. under the Public Functions section). Set it to
247# NO to prevent subgrouping. Alternatively, this can be done per class using 272# NO to prevent subgrouping. Alternatively, this can be done per class using
248# the \nosubgrouping command. 273# the \nosubgrouping command.
249 274
250SUBGROUPING = YES 275SUBGROUPING = YES
251 276
252# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum 277# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum
253# is documented as struct, union, or enum with the name of the typedef. So 278# is documented as struct, union, or enum with the name of the typedef. So
254# typedef struct TypeS {} TypeT, will appear in the documentation as a struct 279# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
255# with name TypeT. When disabled the typedef will appear as a member of a file, 280# with name TypeT. When disabled the typedef will appear as a member of a file,
256# namespace, or class. And the struct will be named TypeS. This can typically 281# namespace, or class. And the struct will be named TypeS. This can typically
257# be useful for C code in case the coding convention dictates that all compound 282# be useful for C code in case the coding convention dictates that all compound
258# types are typedef'ed and only the typedef is referenced, never the tag name. 283# types are typedef'ed and only the typedef is referenced, never the tag name.
259 284
260TYPEDEF_HIDES_STRUCT = NO 285TYPEDEF_HIDES_STRUCT = NO
261 286
287# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to
288# determine which symbols to keep in memory and which to flush to disk.
289# When the cache is full, less often used symbols will be written to disk.
290# For small to medium size projects (<1000 input files) the default value is
291# probably good enough. For larger projects a too small cache size can cause
292# doxygen to be busy swapping symbols to and from disk most of the time
293# causing a significant performance penalty.
294# If the system has enough physical memory increasing the cache will improve the
295# performance by keeping more symbols in memory. Note that the value works on
296# a logarithmic scale so increasing the size by one will roughly double the
297# memory usage. The cache size is given by this formula:
298# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0,
299# corresponding to a cache size of 2^16 = 65536 symbols
300
301SYMBOL_CACHE_SIZE = 0
302
262#--------------------------------------------------------------------------- 303#---------------------------------------------------------------------------
263# Build related configuration options 304# Build related configuration options
264#--------------------------------------------------------------------------- 305#---------------------------------------------------------------------------
265 306
266# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in 307# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
267# documentation are documented, even if no documentation was available. 308# documentation are documented, even if no documentation was available.
268# Private class members and static file members will be hidden unless 309# Private class members and static file members will be hidden unless
269# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES 310# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
270 311
271EXTRACT_ALL = NO 312EXTRACT_ALL = NO
272 313
273# If the EXTRACT_PRIVATE tag is set to YES all private members of a class 314# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
274# will be included in the documentation. 315# will be included in the documentation.
275 316
276EXTRACT_PRIVATE = NO 317EXTRACT_PRIVATE = NO
277 318
278# If the EXTRACT_STATIC tag is set to YES all static members of a file 319# If the EXTRACT_STATIC tag is set to YES all static members of a file
279# will be included in the documentation. 320# will be included in the documentation.
280 321
281EXTRACT_STATIC = YES 322EXTRACT_STATIC = YES
282 323
283# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) 324# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
284# defined locally in source files will be included in the documentation. 325# defined locally in source files will be included in the documentation.
285# If set to NO only classes defined in header files are included. 326# If set to NO only classes defined in header files are included.
286 327
287EXTRACT_LOCAL_CLASSES = NO 328EXTRACT_LOCAL_CLASSES = NO
288 329
289# This flag is only useful for Objective-C code. When set to YES local 330# This flag is only useful for Objective-C code. When set to YES local
290# methods, which are defined in the implementation section but not in 331# methods, which are defined in the implementation section but not in
291# the interface are included in the documentation. 332# the interface are included in the documentation.
292# If set to NO (the default) only methods in the interface are included. 333# If set to NO (the default) only methods in the interface are included.
293 334
294EXTRACT_LOCAL_METHODS = NO 335EXTRACT_LOCAL_METHODS = NO
295 336
296# If this flag is set to YES, the members of anonymous namespaces will be 337# If this flag is set to YES, the members of anonymous namespaces will be
297# extracted and appear in the documentation as a namespace called 338# extracted and appear in the documentation as a namespace called
298# 'anonymous_namespace{file}', where file will be replaced with the base 339# 'anonymous_namespace{file}', where file will be replaced with the base
299# name of the file that contains the anonymous namespace. By default 340# name of the file that contains the anonymous namespace. By default
300# anonymous namespace are hidden. 341# anonymous namespaces are hidden.
301 342
302EXTRACT_ANON_NSPACES = NO 343EXTRACT_ANON_NSPACES = NO
303 344
304# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all 345# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
305# undocumented members of documented classes, files or namespaces. 346# undocumented members of documented classes, files or namespaces.
306# If set to NO (the default) these members will be included in the 347# If set to NO (the default) these members will be included in the
307# various overviews, but no documentation section is generated. 348# various overviews, but no documentation section is generated.
308# This option has no effect if EXTRACT_ALL is enabled. 349# This option has no effect if EXTRACT_ALL is enabled.
309 350
310HIDE_UNDOC_MEMBERS = NO 351HIDE_UNDOC_MEMBERS = NO
311 352
312# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all 353# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
313# undocumented classes that are normally visible in the class hierarchy. 354# undocumented classes that are normally visible in the class hierarchy.
314# If set to NO (the default) these classes will be included in the various 355# If set to NO (the default) these classes will be included in the various
315# overviews. This option has no effect if EXTRACT_ALL is enabled. 356# overviews. This option has no effect if EXTRACT_ALL is enabled.
316 357
317HIDE_UNDOC_CLASSES = NO 358HIDE_UNDOC_CLASSES = NO
318 359
319# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all 360# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all
320# friend (class|struct|union) declarations. 361# friend (class|struct|union) declarations.
321# If set to NO (the default) these declarations will be included in the 362# If set to NO (the default) these declarations will be included in the
322# documentation. 363# documentation.
323 364
324HIDE_FRIEND_COMPOUNDS = NO 365HIDE_FRIEND_COMPOUNDS = NO
325 366
326# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any 367# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any
327# documentation blocks found inside the body of a function. 368# documentation blocks found inside the body of a function.
328# If set to NO (the default) these blocks will be appended to the 369# If set to NO (the default) these blocks will be appended to the
329# function's detailed documentation block. 370# function's detailed documentation block.
330 371
331HIDE_IN_BODY_DOCS = NO 372HIDE_IN_BODY_DOCS = NO
332 373
333# The INTERNAL_DOCS tag determines if documentation 374# The INTERNAL_DOCS tag determines if documentation
334# that is typed after a \internal command is included. If the tag is set 375# that is typed after a \internal command is included. If the tag is set
335# to NO (the default) then the documentation will be excluded. 376# to NO (the default) then the documentation will be excluded.
336# Set it to YES to include the internal documentation. 377# Set it to YES to include the internal documentation.
337 378
338INTERNAL_DOCS = NO 379INTERNAL_DOCS = NO
339 380
340# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate 381# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
341# file names in lower-case letters. If set to YES upper-case letters are also 382# file names in lower-case letters. If set to YES upper-case letters are also
342# allowed. This is useful if you have classes or files whose names only differ 383# allowed. This is useful if you have classes or files whose names only differ
343# in case and if your file system supports case sensitive file names. Windows 384# in case and if your file system supports case sensitive file names. Windows
344# and Mac users are advised to set this option to NO. 385# and Mac users are advised to set this option to NO.
345 386
346CASE_SENSE_NAMES = YES 387CASE_SENSE_NAMES = YES
347 388
348# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen 389# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
349# will show members with their full class and namespace scopes in the 390# will show members with their full class and namespace scopes in the
350# documentation. If set to YES the scope will be hidden. 391# documentation. If set to YES the scope will be hidden.
351 392
352HIDE_SCOPE_NAMES = NO 393HIDE_SCOPE_NAMES = NO
353 394
354# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen 395# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
355# will put a list of the files that are included by a file in the documentation 396# will put a list of the files that are included by a file in the documentation
356# of that file. 397# of that file.
357 398
358SHOW_INCLUDE_FILES = NO 399SHOW_INCLUDE_FILES = NO
359 400
360# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] 401# If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen
402# will list include files with double quotes in the documentation
403# rather than with sharp brackets.
404
405FORCE_LOCAL_INCLUDES = NO
406
407# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
361# is inserted in the documentation for inline members. 408# is inserted in the documentation for inline members.
362 409
363INLINE_INFO = YES 410INLINE_INFO = YES
364 411
365# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen 412# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
366# will sort the (detailed) documentation of file and class members 413# will sort the (detailed) documentation of file and class members
367# alphabetically by member name. If set to NO the members will appear in 414# alphabetically by member name. If set to NO the members will appear in
368# declaration order. 415# declaration order.
369 416
370SORT_MEMBER_DOCS = NO 417SORT_MEMBER_DOCS = NO
371 418
372# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the 419# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the
373# brief documentation of file, namespace and class members alphabetically 420# brief documentation of file, namespace and class members alphabetically
374# by member name. If set to NO (the default) the members will appear in 421# by member name. If set to NO (the default) the members will appear in
375# declaration order. 422# declaration order.
376 423
377SORT_BRIEF_DOCS = NO 424SORT_BRIEF_DOCS = NO
378 425
379# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the 426# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen
380# hierarchy of group names into alphabetical order. If set to NO (the default) 427# will sort the (brief and detailed) documentation of class members so that
428# constructors and destructors are listed first. If set to NO (the default)
429# the constructors will appear in the respective orders defined by
430# SORT_MEMBER_DOCS and SORT_BRIEF_DOCS.
431# This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO
432# and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO.
433
434SORT_MEMBERS_CTORS_1ST = NO
435
436# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the
437# hierarchy of group names into alphabetical order. If set to NO (the default)
381# the group names will appear in their defined order. 438# the group names will appear in their defined order.
382 439
383SORT_GROUP_NAMES = NO 440SORT_GROUP_NAMES = NO
384 441
385# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be 442# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be
386# sorted by fully-qualified names, including namespaces. If set to 443# sorted by fully-qualified names, including namespaces. If set to
387# NO (the default), the class list will be sorted only by class name, 444# NO (the default), the class list will be sorted only by class name,
388# not including the namespace part. 445# not including the namespace part.
389# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. 446# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
390# Note: This option applies only to the class list, not to the 447# Note: This option applies only to the class list, not to the
391# alphabetical list. 448# alphabetical list.
392 449
393SORT_BY_SCOPE_NAME = NO 450SORT_BY_SCOPE_NAME = NO
394 451
395# The GENERATE_TODOLIST tag can be used to enable (YES) or 452# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper type resolution of all parameters of a function it will reject a
396# disable (NO) the todo list. This list is created by putting \todo 453# match between the prototype and the implementation of a member function even if there is only one candidate or it is obvious which candidate to choose by doing a simple string match. By disabling STRICT_PROTO_MATCHING doxygen
454# will still accept a match between prototype and implementation in such cases.
455
456STRICT_PROTO_MATCHING = NO
457
458# The GENERATE_TODOLIST tag can be used to enable (YES) or
459# disable (NO) the todo list. This list is created by putting \todo
397# commands in the documentation. 460# commands in the documentation.
398 461
399GENERATE_TODOLIST = YES 462GENERATE_TODOLIST = YES
400 463
401# The GENERATE_TESTLIST tag can be used to enable (YES) or 464# The GENERATE_TESTLIST tag can be used to enable (YES) or
402# disable (NO) the test list. This list is created by putting \test 465# disable (NO) the test list. This list is created by putting \test
403# commands in the documentation. 466# commands in the documentation.
404 467
405GENERATE_TESTLIST = YES 468GENERATE_TESTLIST = YES
406 469
407# The GENERATE_BUGLIST tag can be used to enable (YES) or 470# The GENERATE_BUGLIST tag can be used to enable (YES) or
408# disable (NO) the bug list. This list is created by putting \bug 471# disable (NO) the bug list. This list is created by putting \bug
409# commands in the documentation. 472# commands in the documentation.
410 473
411GENERATE_BUGLIST = YES 474GENERATE_BUGLIST = YES
412 475
413# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or 476# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or
414# disable (NO) the deprecated list. This list is created by putting 477# disable (NO) the deprecated list. This list is created by putting
415# \deprecated commands in the documentation. 478# \deprecated commands in the documentation.
416 479
417GENERATE_DEPRECATEDLIST= YES 480GENERATE_DEPRECATEDLIST= YES
418 481
419# The ENABLED_SECTIONS tag can be used to enable conditional 482# The ENABLED_SECTIONS tag can be used to enable conditional
420# documentation sections, marked by \if sectionname ... \endif. 483# documentation sections, marked by \if sectionname ... \endif.
421 484
422ENABLED_SECTIONS = 485ENABLED_SECTIONS =
423 486
424# The MAX_INITIALIZER_LINES tag determines the maximum number of lines 487# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
425# the initial value of a variable or define consists of for it to appear in 488# the initial value of a variable or macro consists of for it to appear in
426# the documentation. If the initializer consists of more lines than specified 489# the documentation. If the initializer consists of more lines than specified
427# here it will be hidden. Use a value of 0 to hide initializers completely. 490# here it will be hidden. Use a value of 0 to hide initializers completely.
428# The appearance of the initializer of individual variables and defines in the 491# The appearance of the initializer of individual variables and macros in the
429# documentation can be controlled using \showinitializer or \hideinitializer 492# documentation can be controlled using \showinitializer or \hideinitializer
430# command in the documentation regardless of this setting. 493# command in the documentation regardless of this setting.
431 494
432MAX_INITIALIZER_LINES = 30 495MAX_INITIALIZER_LINES = 30
433 496
434# Set the SHOW_USED_FILES tag to NO to disable the list of files generated 497# Set the SHOW_USED_FILES tag to NO to disable the list of files generated
435# at the bottom of the documentation of classes and structs. If set to YES the 498# at the bottom of the documentation of classes and structs. If set to YES the
436# list will mention the files that were used to generate the documentation. 499# list will mention the files that were used to generate the documentation.
437 500
438SHOW_USED_FILES = NO 501SHOW_USED_FILES = NO
439 502
440# If the sources in your project are distributed over multiple directories 503# If the sources in your project are distributed over multiple directories
441# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy 504# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy
442# in the documentation. The default is NO. 505# in the documentation. The default is NO.
443 506
444SHOW_DIRECTORIES = NO 507SHOW_DIRECTORIES = NO
445 508
446# The FILE_VERSION_FILTER tag can be used to specify a program or script that 509# Set the SHOW_FILES tag to NO to disable the generation of the Files page.
447# doxygen should invoke to get the current version for each file (typically from 510# This will remove the Files entry from the Quick Index and from the
448# the version control system). Doxygen will invoke the program by executing (via 511# Folder Tree View (if specified). The default is YES.
449# popen()) the command <command> <input-file>, where <command> is the value of 512
450# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file 513SHOW_FILES = YES
451# provided by doxygen. Whatever the program writes to standard output 514
515# Set the SHOW_NAMESPACES tag to NO to disable the generation of the
516# Namespaces page.
517# This will remove the Namespaces entry from the Quick Index
518# and from the Folder Tree View (if specified). The default is YES.
519
520SHOW_NAMESPACES = YES
521
522# The FILE_VERSION_FILTER tag can be used to specify a program or script that
523# doxygen should invoke to get the current version for each file (typically from
524# the version control system). Doxygen will invoke the program by executing (via
525# popen()) the command <command> <input-file>, where <command> is the value of
526# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file
527# provided by doxygen. Whatever the program writes to standard output
452# is used as the file version. See the manual for examples. 528# is used as the file version. See the manual for examples.
453 529
454FILE_VERSION_FILTER = 530FILE_VERSION_FILTER =
531
532# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
533# by doxygen. The layout file controls the global structure of the generated
534# output files in an output format independent way. The create the layout file
535# that represents doxygen's defaults, run doxygen with the -l option.
536# You can optionally specify a file name after the option, if omitted
537# DoxygenLayout.xml will be used as the name of the layout file.
538
539LAYOUT_FILE =
455 540
456#--------------------------------------------------------------------------- 541#---------------------------------------------------------------------------
457# configuration options related to warning and progress messages 542# configuration options related to warning and progress messages
458#--------------------------------------------------------------------------- 543#---------------------------------------------------------------------------
459 544
460# The QUIET tag can be used to turn on/off the messages that are generated 545# The QUIET tag can be used to turn on/off the messages that are generated
461# by doxygen. Possible values are YES and NO. If left blank NO is used. 546# by doxygen. Possible values are YES and NO. If left blank NO is used.
462 547
463QUIET = NO 548QUIET = NO
464 549
465# The WARNINGS tag can be used to turn on/off the warning messages that are 550# The WARNINGS tag can be used to turn on/off the warning messages that are
466# generated by doxygen. Possible values are YES and NO. If left blank 551# generated by doxygen. Possible values are YES and NO. If left blank
467# NO is used. 552# NO is used.
468 553
469WARNINGS = YES 554WARNINGS = YES
470 555
471# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings 556# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
472# for undocumented members. If EXTRACT_ALL is set to YES then this flag will 557# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
473# automatically be disabled. 558# automatically be disabled.
474 559
475WARN_IF_UNDOCUMENTED = YES 560WARN_IF_UNDOCUMENTED = YES
476 561
477# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for 562# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for
478# potential errors in the documentation, such as not documenting some 563# potential errors in the documentation, such as not documenting some
479# parameters in a documented function, or documenting parameters that 564# parameters in a documented function, or documenting parameters that
480# don't exist or using markup commands wrongly. 565# don't exist or using markup commands wrongly.
481 566
482WARN_IF_DOC_ERROR = YES 567WARN_IF_DOC_ERROR = YES
483 568
484# This WARN_NO_PARAMDOC option can be abled to get warnings for 569# The WARN_NO_PARAMDOC option can be enabled to get warnings for
485# functions that are documented, but have no documentation for their parameters 570# functions that are documented, but have no documentation for their parameters
486# or return value. If set to NO (the default) doxygen will only warn about 571# or return value. If set to NO (the default) doxygen will only warn about
487# wrong or incomplete parameter documentation, but not about the absence of 572# wrong or incomplete parameter documentation, but not about the absence of
488# documentation. 573# documentation.
489 574
490WARN_NO_PARAMDOC = YES 575WARN_NO_PARAMDOC = YES
491 576
492# The WARN_FORMAT tag determines the format of the warning messages that 577# The WARN_FORMAT tag determines the format of the warning messages that
493# doxygen can produce. The string should contain the $file, $line, and $text 578# doxygen can produce. The string should contain the $file, $line, and $text
494# tags, which will be replaced by the file and line number from which the 579# tags, which will be replaced by the file and line number from which the
495# warning originated and the warning text. Optionally the format may contain 580# warning originated and the warning text. Optionally the format may contain
496# $version, which will be replaced by the version of the file (if it could 581# $version, which will be replaced by the version of the file (if it could
497# be obtained via FILE_VERSION_FILTER) 582# be obtained via FILE_VERSION_FILTER)
498 583
499WARN_FORMAT = "$file:$line: $text" 584WARN_FORMAT = "$file:$line: $text"
500 585
501# The WARN_LOGFILE tag can be used to specify a file to which warning 586# The WARN_LOGFILE tag can be used to specify a file to which warning
502# and error messages should be written. If left blank the output is written 587# and error messages should be written. If left blank the output is written
503# to stderr. 588# to stderr.
504 589
505WARN_LOGFILE = 590WARN_LOGFILE =
506 591
507#--------------------------------------------------------------------------- 592#---------------------------------------------------------------------------
508# configuration options related to the input files 593# configuration options related to the input files
509#--------------------------------------------------------------------------- 594#---------------------------------------------------------------------------
510 595
511# The INPUT tag can be used to specify the files and/or directories that contain 596# The INPUT tag can be used to specify the files and/or directories that contain
512# documented source files. You may enter file names like "myfile.cpp" or 597# documented source files. You may enter file names like "myfile.cpp" or
513# directories like "/usr/src/myproject". Separate the files or directories 598# directories like "/usr/src/myproject". Separate the files or directories
514# with spaces. 599# with spaces.
515 600
516INPUT = @top_srcdir@/src/include @top_srcdir@/src/lib 601INPUT = @top_srcdir@/src/include \
602 @top_srcdir@/src/lib
517 603
518# This tag can be used to specify the character encoding of the source files 604# This tag can be used to specify the character encoding of the source files
519# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is 605# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
520# also the default input encoding. Doxygen uses libiconv (or the iconv built 606# also the default input encoding. Doxygen uses libiconv (or the iconv built
521# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for 607# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for
522# the list of possible encodings. 608# the list of possible encodings.
523 609
524INPUT_ENCODING = UTF-8 610INPUT_ENCODING = UTF-8
525 611
526# If the value of the INPUT tag contains directories, you can use the 612# If the value of the INPUT tag contains directories, you can use the
527# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 613# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
528# and *.h) to filter out the source-files in the directories. If left 614# and *.h) to filter out the source-files in the directories. If left
529# blank the following patterns are tested: 615# blank the following patterns are tested:
530# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx 616# *.c *.cc *.cxx *.cpp *.c++ *.d *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh
531# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90 617# *.hxx *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.dox *.py
618# *.f90 *.f *.for *.vhd *.vhdl
532 619
533FILE_PATTERNS = *.c *.h *.x 620FILE_PATTERNS = *.c \
621 *.h \
622 *.x
534 623
535# The RECURSIVE tag can be used to turn specify whether or not subdirectories 624# The RECURSIVE tag can be used to turn specify whether or not subdirectories
536# should be searched for input files as well. Possible values are YES and NO. 625# should be searched for input files as well. Possible values are YES and NO.
537# If left blank NO is used. 626# If left blank NO is used.
538 627
539RECURSIVE = YES 628RECURSIVE = YES
540 629
541# The EXCLUDE tag can be used to specify files and/or directories that should 630# The EXCLUDE tag can be used to specify files and/or directories that should
542# excluded from the INPUT source files. This way you can easily exclude a 631# excluded from the INPUT source files. This way you can easily exclude a
543# subdirectory from a directory tree whose root is specified with the INPUT tag. 632# subdirectory from a directory tree whose root is specified with the INPUT tag.
544 633
545EXCLUDE = @top_srcdir@/src/lib/eina_amalgamation.c 634EXCLUDE = @top_builddir@/src/lib/eina_amalgamation.c
546 635
547# The EXCLUDE_SYMLINKS tag can be used select whether or not files or 636# The EXCLUDE_SYMLINKS tag can be used select whether or not files or
548# directories that are symbolic links (a Unix filesystem feature) are excluded 637# directories that are symbolic links (a Unix file system feature) are excluded
549# from the input. 638# from the input.
550 639
551EXCLUDE_SYMLINKS = NO 640EXCLUDE_SYMLINKS = NO
552 641
553# If the value of the INPUT tag contains directories, you can use the 642# If the value of the INPUT tag contains directories, you can use the
554# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude 643# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
555# certain files from those directories. Note that the wildcards are matched 644# certain files from those directories. Note that the wildcards are matched
556# against the file with absolute path, so to exclude all test directories 645# against the file with absolute path, so to exclude all test directories
557# for example use the pattern */test/* 646# for example use the pattern */test/*
558 647
559EXCLUDE_PATTERNS = 648EXCLUDE_PATTERNS =
560 649
561# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names 650# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
562# (namespaces, classes, functions, etc.) that should be excluded from the 651# (namespaces, classes, functions, etc.) that should be excluded from the
563# output. The symbol name can be a fully qualified name, a word, or if the 652# output. The symbol name can be a fully qualified name, a word, or if the
564# wildcard * is used, a substring. Examples: ANamespace, AClass, 653# wildcard * is used, a substring. Examples: ANamespace, AClass,
565# AClass::ANamespace, ANamespace::*Test 654# AClass::ANamespace, ANamespace::*Test
566 655
567EXCLUDE_SYMBOLS = 656EXCLUDE_SYMBOLS =
568 657
569# The EXAMPLE_PATH tag can be used to specify one or more files or 658# The EXAMPLE_PATH tag can be used to specify one or more files or
570# directories that contain example code fragments that are included (see 659# directories that contain example code fragments that are included (see
571# the \include command). 660# the \include command).
572 661
573EXAMPLE_PATH = @top_srcdir@/src/examples 662EXAMPLE_PATH = @top_srcdir@/src/examples
574 663
575# If the value of the EXAMPLE_PATH tag contains directories, you can use the 664# If the value of the EXAMPLE_PATH tag contains directories, you can use the
576# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 665# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
577# and *.h) to filter out the source-files in the directories. If left 666# and *.h) to filter out the source-files in the directories. If left
578# blank all files are included. 667# blank all files are included.
579 668
580EXAMPLE_PATTERNS = *.c,*.h,*.x 669EXAMPLE_PATTERNS = *.c,*.h,*.x
581 670
582# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be 671# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
583# searched for input files to be used with the \include or \dontinclude 672# searched for input files to be used with the \include or \dontinclude
584# commands irrespective of the value of the RECURSIVE tag. 673# commands irrespective of the value of the RECURSIVE tag.
585# Possible values are YES and NO. If left blank NO is used. 674# Possible values are YES and NO. If left blank NO is used.
586 675
587EXAMPLE_RECURSIVE = NO 676EXAMPLE_RECURSIVE = NO
588 677
589# The IMAGE_PATH tag can be used to specify one or more files or 678# The IMAGE_PATH tag can be used to specify one or more files or
590# directories that contain image that are included in the documentation (see 679# directories that contain image that are included in the documentation (see
591# the \image command). 680# the \image command).
592 681
593IMAGE_PATH = doc/img doc/benchmark 682IMAGE_PATH = @top_srcdir@/doc/img \
683 @top_srcdir@/doc/benchmark
594 684
595# The INPUT_FILTER tag can be used to specify a program that doxygen should 685# The INPUT_FILTER tag can be used to specify a program that doxygen should
596# invoke to filter for each input file. Doxygen will invoke the filter program 686# invoke to filter for each input file. Doxygen will invoke the filter program
597# by executing (via popen()) the command <filter> <input-file>, where <filter> 687# by executing (via popen()) the command <filter> <input-file>, where <filter>
598# is the value of the INPUT_FILTER tag, and <input-file> is the name of an 688# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
599# input file. Doxygen will then use the output that the filter program writes 689# input file. Doxygen will then use the output that the filter program writes
600# to standard output. If FILTER_PATTERNS is specified, this tag will be 690# to standard output.
691# If FILTER_PATTERNS is specified, this tag will be
601# ignored. 692# ignored.
602 693
603INPUT_FILTER = 694INPUT_FILTER =
604 695
605# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern 696# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
606# basis. Doxygen will compare the file name with each pattern and apply the 697# basis.
607# filter if there is a match. The filters are a list of the form: 698# Doxygen will compare the file name with each pattern and apply the
608# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further 699# filter if there is a match.
609# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER 700# The filters are a list of the form:
610# is applied to all files. 701# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further
702# info on how filters are used. If FILTER_PATTERNS is empty or if
703# non of the patterns match the file name, INPUT_FILTER is applied.
611 704
612FILTER_PATTERNS = 705FILTER_PATTERNS =
613 706
614# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using 707# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
615# INPUT_FILTER) will be used to filter the input files when producing source 708# INPUT_FILTER) will be used to filter the input files when producing source
616# files to browse (i.e. when SOURCE_BROWSER is set to YES). 709# files to browse (i.e. when SOURCE_BROWSER is set to YES).
617 710
618FILTER_SOURCE_FILES = NO 711FILTER_SOURCE_FILES = NO
619 712
713# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file
714# pattern. A pattern will override the setting for FILTER_PATTERN (if any)
715# and it is also possible to disable source filtering for a specific pattern
716# using *.ext= (so without naming a filter). This option only has effect when
717# FILTER_SOURCE_FILES is enabled.
718
719FILTER_SOURCE_PATTERNS =
720
620#--------------------------------------------------------------------------- 721#---------------------------------------------------------------------------
621# configuration options related to source browsing 722# configuration options related to source browsing
622#--------------------------------------------------------------------------- 723#---------------------------------------------------------------------------
623 724
624# If the SOURCE_BROWSER tag is set to YES then a list of source files will 725# If the SOURCE_BROWSER tag is set to YES then a list of source files will
625# be generated. Documented entities will be cross-referenced with these sources. 726# be generated. Documented entities will be cross-referenced with these sources.
626# Note: To get rid of all source code in the generated output, make sure also 727# Note: To get rid of all source code in the generated output, make sure also
627# VERBATIM_HEADERS is set to NO. 728# VERBATIM_HEADERS is set to NO.
628 729
629SOURCE_BROWSER = NO 730SOURCE_BROWSER = NO
630 731
631# Setting the INLINE_SOURCES tag to YES will include the body 732# Setting the INLINE_SOURCES tag to YES will include the body
632# of functions and classes directly in the documentation. 733# of functions and classes directly in the documentation.
633 734
634INLINE_SOURCES = NO 735INLINE_SOURCES = NO
635 736
636# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct 737# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
637# doxygen to hide any special comment blocks from generated source code 738# doxygen to hide any special comment blocks from generated source code
638# fragments. Normal C and C++ comments will always remain visible. 739# fragments. Normal C and C++ comments will always remain visible.
639 740
640STRIP_CODE_COMMENTS = YES 741STRIP_CODE_COMMENTS = YES
641 742
642# If the REFERENCED_BY_RELATION tag is set to YES (the default) 743# If the REFERENCED_BY_RELATION tag is set to YES
643# then for each documented function all documented 744# then for each documented function all documented
644# functions referencing it will be listed. 745# functions referencing it will be listed.
645 746
646REFERENCED_BY_RELATION = YES 747REFERENCED_BY_RELATION = YES
647 748
648# If the REFERENCES_RELATION tag is set to YES (the default) 749# If the REFERENCES_RELATION tag is set to YES
649# then for each documented function all documented entities 750# then for each documented function all documented entities
650# called/used by that function will be listed. 751# called/used by that function will be listed.
651 752
652REFERENCES_RELATION = YES 753REFERENCES_RELATION = YES
@@ -654,20 +755,21 @@ REFERENCES_RELATION = YES
654# If the REFERENCES_LINK_SOURCE tag is set to YES (the default) 755# If the REFERENCES_LINK_SOURCE tag is set to YES (the default)
655# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from 756# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from
656# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will 757# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will
657# link to the source code. Otherwise they will link to the documentstion. 758# link to the source code.
759# Otherwise they will link to the documentation.
658 760
659REFERENCES_LINK_SOURCE = YES 761REFERENCES_LINK_SOURCE = YES
660 762
661# If the USE_HTAGS tag is set to YES then the references to source code 763# If the USE_HTAGS tag is set to YES then the references to source code
662# will point to the HTML generated by the htags(1) tool instead of doxygen 764# will point to the HTML generated by the htags(1) tool instead of doxygen
663# built-in source browser. The htags tool is part of GNU's global source 765# built-in source browser. The htags tool is part of GNU's global source
664# tagging system (see http://www.gnu.org/software/global/global.html). You 766# tagging system (see http://www.gnu.org/software/global/global.html). You
665# will need version 4.8.6 or higher. 767# will need version 4.8.6 or higher.
666 768
667USE_HTAGS = NO 769USE_HTAGS = NO
668 770
669# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen 771# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
670# will generate a verbatim copy of the header file for each class for 772# will generate a verbatim copy of the header file for each class for
671# which an include is specified. Set to NO to disable this. 773# which an include is specified. Set to NO to disable this.
672 774
673VERBATIM_HEADERS = NO 775VERBATIM_HEADERS = NO
@@ -676,312 +778,513 @@ VERBATIM_HEADERS = NO
676# configuration options related to the alphabetical class index 778# configuration options related to the alphabetical class index
677#--------------------------------------------------------------------------- 779#---------------------------------------------------------------------------
678 780
679# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index 781# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
680# of all compounds will be generated. Enable this if the project 782# of all compounds will be generated. Enable this if the project
681# contains a lot of classes, structs, unions or interfaces. 783# contains a lot of classes, structs, unions or interfaces.
682 784
683ALPHABETICAL_INDEX = YES 785ALPHABETICAL_INDEX = YES
684 786
685# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then 787# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
686# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns 788# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
687# in which this list will be split (can be a number in the range [1..20]) 789# in which this list will be split (can be a number in the range [1..20])
688 790
689COLS_IN_ALPHA_INDEX = 2 791COLS_IN_ALPHA_INDEX = 2
690 792
691# In case all classes in a project start with a common prefix, all 793# In case all classes in a project start with a common prefix, all
692# classes will be put under the same header in the alphabetical index. 794# classes will be put under the same header in the alphabetical index.
693# The IGNORE_PREFIX tag can be used to specify one or more prefixes that 795# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
694# should be ignored while generating the index headers. 796# should be ignored while generating the index headers.
695 797
696IGNORE_PREFIX = 798IGNORE_PREFIX = eina_ \
799 _eina_ \
800 Eina_ \
801 _Eina_ \
802 EINA_ \
803 _EINA_
697 804
698#--------------------------------------------------------------------------- 805#---------------------------------------------------------------------------
699# configuration options related to the HTML output 806# configuration options related to the HTML output
700#--------------------------------------------------------------------------- 807#---------------------------------------------------------------------------
701 808
702# If the GENERATE_HTML tag is set to YES (the default) Doxygen will 809# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
703# generate HTML output. 810# generate HTML output.
704 811
705GENERATE_HTML = YES 812GENERATE_HTML = YES
706 813
707# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. 814# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
708# If a relative path is entered the value of OUTPUT_DIRECTORY will be 815# If a relative path is entered the value of OUTPUT_DIRECTORY will be
709# put in front of it. If left blank `html' will be used as the default path. 816# put in front of it. If left blank `html' will be used as the default path.
710 817
711HTML_OUTPUT = html 818HTML_OUTPUT = html
712 819
713# The HTML_FILE_EXTENSION tag can be used to specify the file extension for 820# The HTML_FILE_EXTENSION tag can be used to specify the file extension for
714# each generated HTML page (for example: .htm,.php,.asp). If it is left blank 821# each generated HTML page (for example: .htm,.php,.asp). If it is left blank
715# doxygen will generate files with .html extension. 822# doxygen will generate files with .html extension.
716 823
717HTML_FILE_EXTENSION = .html 824HTML_FILE_EXTENSION = .html
718 825
719# The HTML_HEADER tag can be used to specify a personal HTML header for 826# The HTML_HEADER tag can be used to specify a personal HTML header for
720# each generated HTML page. If it is left blank doxygen will generate a 827# each generated HTML page. If it is left blank doxygen will generate a
721# standard header. 828# standard header.
722 829
723HTML_HEADER = @srcdir@/head.html 830HTML_HEADER = @srcdir@/head.html
724 831
725# The HTML_FOOTER tag can be used to specify a personal HTML footer for 832# The HTML_FOOTER tag can be used to specify a personal HTML footer for
726# each generated HTML page. If it is left blank doxygen will generate a 833# each generated HTML page. If it is left blank doxygen will generate a
727# standard footer. 834# standard footer.
728 835
729HTML_FOOTER = @srcdir@/foot.html 836HTML_FOOTER = @srcdir@/foot.html
730 837
731# The HTML_STYLESHEET tag can be used to specify a user-defined cascading 838# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
732# style sheet that is used by each HTML page. It can be used to 839# style sheet that is used by each HTML page. It can be used to
733# fine-tune the look of the HTML output. If the tag is left blank doxygen 840# fine-tune the look of the HTML output. If the tag is left blank doxygen
734# will generate a default style sheet. Note that doxygen will try to copy 841# will generate a default style sheet. Note that doxygen will try to copy
735# the style sheet file to the HTML output directory, so don't put your own 842# the style sheet file to the HTML output directory, so don't put your own
736# stylesheet in the HTML output directory as well, or it will be erased! 843# stylesheet in the HTML output directory as well, or it will be erased!
737 844
738HTML_STYLESHEET = @srcdir@/e.css 845HTML_STYLESHEET = @srcdir@/e.css
739 846
740# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, 847# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output.
741# files or namespaces will be aligned in HTML using tables. If set to 848# Doxygen will adjust the colors in the stylesheet and background images
849# according to this color. Hue is specified as an angle on a colorwheel,
850# see http://en.wikipedia.org/wiki/Hue for more information.
851# For instance the value 0 represents red, 60 is yellow, 120 is green,
852# 180 is cyan, 240 is blue, 300 purple, and 360 is red again.
853# The allowed range is 0 to 359.
854
855HTML_COLORSTYLE_HUE = 220
856
857# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of
858# the colors in the HTML output. For a value of 0 the output will use
859# grayscales only. A value of 255 will produce the most vivid colors.
860
861HTML_COLORSTYLE_SAT = 100
862
863# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to
864# the luminance component of the colors in the HTML output. Values below
865# 100 gradually make the output lighter, whereas values above 100 make
866# the output darker. The value divided by 100 is the actual gamma applied,
867# so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2,
868# and 100 does not change the gamma.
869
870HTML_COLORSTYLE_GAMMA = 80
871
872# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
873# page will contain the date and time when the page was generated. Setting
874# this to NO can help when comparing the output of multiple runs.
875
876HTML_TIMESTAMP = YES
877
878# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
879# files or namespaces will be aligned in HTML using tables. If set to
742# NO a bullet list will be used. 880# NO a bullet list will be used.
743 881
744HTML_ALIGN_MEMBERS = YES 882HTML_ALIGN_MEMBERS = YES
745 883
746# If the GENERATE_HTMLHELP tag is set to YES, additional index files 884# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
747# will be generated that can be used as input for tools like the 885# documentation will contain sections that can be hidden and shown after the
748# Microsoft HTML help workshop to generate a compiled HTML help file (.chm) 886# page has loaded. For this to work a browser that supports
749# of the generated HTML documentation. 887# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox
888# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari).
750 889
751GENERATE_HTMLHELP = NO 890HTML_DYNAMIC_SECTIONS = YES
752 891
753# If the GENERATE_DOCSET tag is set to YES, additional index files 892# If the GENERATE_DOCSET tag is set to YES, additional index files
754# will be generated that can be used as input for Apple's Xcode 3 893# will be generated that can be used as input for Apple's Xcode 3
755# integrated development environment, introduced with OSX 10.5 (Leopard). 894# integrated development environment, introduced with OSX 10.5 (Leopard).
756# To create a documentation set, doxygen will generate a Makefile in the 895# To create a documentation set, doxygen will generate a Makefile in the
757# HTML output directory. Running make will produce the docset in that 896# HTML output directory. Running make will produce the docset in that
758# directory and running "make install" will install the docset in 897# directory and running "make install" will install the docset in
759# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find 898# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find
760# it at startup. 899# it at startup.
900# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
901# for more information.
761 902
762GENERATE_DOCSET = NO 903GENERATE_DOCSET = YES
763 904
764# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the 905# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the
765# feed. A documentation feed provides an umbrella under which multiple 906# feed. A documentation feed provides an umbrella under which multiple
766# documentation sets from a single provider (such as a company or product suite) 907# documentation sets from a single provider (such as a company or product suite)
767# can be grouped. 908# can be grouped.
768 909
769DOCSET_FEEDNAME = "Doxygen generated docs" 910DOCSET_FEEDNAME = "Doxygen generated docs"
770 911
771# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that 912# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that
772# should uniquely identify the documentation set bundle. This should be a 913# should uniquely identify the documentation set bundle. This should be a
773# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen 914# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen
774# will append .docset to the name. 915# will append .docset to the name.
775 916
776DOCSET_BUNDLE_ID = org.enlightenment.Eina 917DOCSET_BUNDLE_ID = org.enlightenment.Eina
777 918
778# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML 919# When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely identify
779# documentation will contain sections that can be hidden and shown after the 920# the documentation publisher. This should be a reverse domain-name style
780# page has loaded. For this to work a browser that supports 921# string, e.g. com.mycompany.MyDocSet.documentation.
781# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox
782# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari).
783 922
784HTML_DYNAMIC_SECTIONS = NO 923DOCSET_PUBLISHER_ID = org.enlightenment.Eina
785 924
786# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can 925# The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher.
787# be used to specify the file name of the resulting .chm file. You 926
788# can add a path in front of the file if the result should not be 927DOCSET_PUBLISHER_NAME = Enlightenment
928
929# If the GENERATE_HTMLHELP tag is set to YES, additional index files
930# will be generated that can be used as input for tools like the
931# Microsoft HTML help workshop to generate a compiled HTML help file (.chm)
932# of the generated HTML documentation.
933
934GENERATE_HTMLHELP = YES
935
936# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can
937# be used to specify the file name of the resulting .chm file. You
938# can add a path in front of the file if the result should not be
789# written to the html output directory. 939# written to the html output directory.
790 940
791CHM_FILE = 941CHM_FILE =
792 942
793# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can 943# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can
794# be used to specify the location (absolute path including file name) of 944# be used to specify the location (absolute path including file name) of
795# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run 945# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run
796# the HTML help compiler on the generated index.hhp. 946# the HTML help compiler on the generated index.hhp.
797 947
798HHC_LOCATION = 948HHC_LOCATION =
799 949
800# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag 950# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
801# controls if a separate .chi index file is generated (YES) or that 951# controls if a separate .chi index file is generated (YES) or that
802# it should be included in the master .chm file (NO). 952# it should be included in the master .chm file (NO).
803 953
804GENERATE_CHI = NO 954GENERATE_CHI = NO
805 955
806# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag 956# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING
807# controls whether a binary table of contents is generated (YES) or a 957# is used to encode HtmlHelp index (hhk), content (hhc) and project file
958# content.
959
960CHM_INDEX_ENCODING =
961
962# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag
963# controls whether a binary table of contents is generated (YES) or a
808# normal table of contents (NO) in the .chm file. 964# normal table of contents (NO) in the .chm file.
809 965
810BINARY_TOC = NO 966BINARY_TOC = NO
811 967
812# The TOC_EXPAND flag can be set to YES to add extra items for group members 968# The TOC_EXPAND flag can be set to YES to add extra items for group members
813# to the contents of the HTML help documentation and to the tree view. 969# to the contents of the HTML help documentation and to the tree view.
814 970
815TOC_EXPAND = NO 971TOC_EXPAND = NO
816 972
817# The DISABLE_INDEX tag can be used to turn on/off the condensed index at 973# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
818# top of each HTML page. The value NO (the default) enables the index and 974# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated
975# that can be used as input for Qt's qhelpgenerator to generate a
976# Qt Compressed Help (.qch) of the generated HTML documentation.
977
978GENERATE_QHP = NO
979
980# If the QHG_LOCATION tag is specified, the QCH_FILE tag can
981# be used to specify the file name of the resulting .qch file.
982# The path specified is relative to the HTML output folder.
983
984QCH_FILE =
985
986# The QHP_NAMESPACE tag specifies the namespace to use when generating
987# Qt Help Project output. For more information please see
988# http://doc.trolltech.com/qthelpproject.html#namespace
989
990QHP_NAMESPACE = org.enlightenment.Eina
991
992# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating
993# Qt Help Project output. For more information please see
994# http://doc.trolltech.com/qthelpproject.html#virtual-folders
995
996QHP_VIRTUAL_FOLDER = doc
997
998# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to
999# add. For more information please see
1000# http://doc.trolltech.com/qthelpproject.html#custom-filters
1001
1002QHP_CUST_FILTER_NAME =
1003
1004# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the
1005# custom filter to add. For more information please see
1006# <a href="http://doc.trolltech.com/qthelpproject.html#custom-filters">
1007# Qt Help Project / Custom Filters</a>.
1008
1009QHP_CUST_FILTER_ATTRS =
1010
1011# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
1012# project's
1013# filter section matches.
1014# <a href="http://doc.trolltech.com/qthelpproject.html#filter-attributes">
1015# Qt Help Project / Filter Attributes</a>.
1016
1017QHP_SECT_FILTER_ATTRS =
1018
1019# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can
1020# be used to specify the location of Qt's qhelpgenerator.
1021# If non-empty doxygen will try to run qhelpgenerator on the generated
1022# .qhp file.
1023
1024QHG_LOCATION =
1025
1026# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files
1027# will be generated, which together with the HTML files, form an Eclipse help
1028# plugin. To install this plugin and make it available under the help contents
1029# menu in Eclipse, the contents of the directory containing the HTML and XML
1030# files needs to be copied into the plugins directory of eclipse. The name of
1031# the directory within the plugins directory should be the same as
1032# the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before
1033# the help appears.
1034
1035GENERATE_ECLIPSEHELP = NO
1036
1037# A unique identifier for the eclipse help plugin. When installing the plugin
1038# the directory name containing the HTML and XML files should also have
1039# this name.
1040
1041ECLIPSE_DOC_ID = org.enlightenment.Eina
1042
1043# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
1044# top of each HTML page. The value NO (the default) enables the index and
819# the value YES disables it. 1045# the value YES disables it.
820 1046
821DISABLE_INDEX = YES 1047DISABLE_INDEX = YES
822 1048
823# This tag can be used to set the number of enum values (range [1..20]) 1049# This tag can be used to set the number of enum values (range [0,1..20])
824# that doxygen will group on one line in the generated HTML documentation. 1050# that doxygen will group on one line in the generated HTML documentation.
1051# Note that a value of 0 will completely suppress the enum values from appearing in the overview section.
825 1052
826ENUM_VALUES_PER_LINE = 1 1053ENUM_VALUES_PER_LINE = 1
827 1054
828# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be 1055# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
829# generated containing a tree-like index structure (just like the one that 1056# structure should be generated to display hierarchical information.
830# is generated for HTML Help). For this to work a browser that supports 1057# If the tag value is set to YES, a side panel will be generated
831# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, 1058# containing a tree-like index structure (just like the one that
832# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are 1059# is generated for HTML Help). For this to work a browser that supports
833# probably better off using the HTML help feature. 1060# JavaScript, DHTML, CSS and frames is required (i.e. any modern browser).
1061# Windows users are probably better off using the HTML help feature.
834 1062
835GENERATE_TREEVIEW = NO 1063GENERATE_TREEVIEW = NO
836 1064
837# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be 1065# By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories,
838# used to set the initial width (in pixels) of the frame in which the tree 1066# and Class Hierarchy pages using a tree view instead of an ordered list.
1067
1068USE_INLINE_TREES = NO
1069
1070# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
1071# used to set the initial width (in pixels) of the frame in which the tree
839# is shown. 1072# is shown.
840 1073
841TREEVIEW_WIDTH = 250 1074TREEVIEW_WIDTH = 250
842 1075
1076# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open
1077# links to external symbols imported via tag files in a separate window.
1078
1079EXT_LINKS_IN_WINDOW = NO
1080
1081# Use this tag to change the font size of Latex formulas included
1082# as images in the HTML documentation. The default is 10. Note that
1083# when you change the font size after a successful doxygen run you need
1084# to manually remove any form_*.png images from the HTML output directory
1085# to force them to be regenerated.
1086
1087FORMULA_FONTSIZE = 10
1088
1089# Use the FORMULA_TRANPARENT tag to determine whether or not the images
1090# generated for formulas are transparent PNGs. Transparent PNGs are
1091# not supported properly for IE 6.0, but are supported on all modern browsers.
1092# Note that when changing this option you need to delete any form_*.png files
1093# in the HTML output before the changes have effect.
1094
1095FORMULA_TRANSPARENT = YES
1096
1097# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax
1098# (see http://www.mathjax.org) which uses client side Javascript for the
1099# rendering instead of using prerendered bitmaps. Use this if you do not
1100# have LaTeX installed or if you want to formulas look prettier in the HTML
1101# output. When enabled you also need to install MathJax separately and
1102# configure the path to it using the MATHJAX_RELPATH option.
1103
1104USE_MATHJAX = NO
1105
1106# When MathJax is enabled you need to specify the location relative to the
1107# HTML output directory using the MATHJAX_RELPATH option. The destination
1108# directory should contain the MathJax.js script. For instance, if the mathjax
1109# directory is located at the same level as the HTML output directory, then
1110# MATHJAX_RELPATH should be ../mathjax. The default value points to the mathjax.org site, so you can quickly see the result without installing
1111# MathJax, but it is strongly recommended to install a local copy of MathJax
1112# before deployment.
1113
1114MATHJAX_RELPATH = http://www.mathjax.org/mathjax
1115
1116# When the SEARCHENGINE tag is enabled doxygen will generate a search box
1117# for the HTML output. The underlying search engine uses javascript
1118# and DHTML and should work on any modern browser. Note that when using
1119# HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets
1120# (GENERATE_DOCSET) there is already a search function so this one should
1121# typically be disabled. For large projects the javascript based search engine
1122# can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution.
1123
1124SEARCHENGINE = NO
1125
1126# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
1127# implemented using a PHP enabled web server instead of at the web client
1128# using Javascript. Doxygen will generate the search PHP script and index
1129# file to put on the web server. The advantage of the server
1130# based approach is that it scales better to large projects and allows
1131# full text search. The disadvantages are that it is more difficult to setup
1132# and does not have live searching capabilities.
1133
1134SERVER_BASED_SEARCH = NO
1135
843#--------------------------------------------------------------------------- 1136#---------------------------------------------------------------------------
844# configuration options related to the LaTeX output 1137# configuration options related to the LaTeX output
845#--------------------------------------------------------------------------- 1138#---------------------------------------------------------------------------
846 1139
847# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will 1140# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
848# generate Latex output. 1141# generate Latex output.
849 1142
850GENERATE_LATEX = YES 1143GENERATE_LATEX = YES
851 1144
852# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. 1145# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
853# If a relative path is entered the value of OUTPUT_DIRECTORY will be 1146# If a relative path is entered the value of OUTPUT_DIRECTORY will be
854# put in front of it. If left blank `latex' will be used as the default path. 1147# put in front of it. If left blank `latex' will be used as the default path.
855 1148
856LATEX_OUTPUT = latex 1149LATEX_OUTPUT = latex
857 1150
858# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be 1151# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
859# invoked. If left blank `latex' will be used as the default command name. 1152# invoked. If left blank `latex' will be used as the default command name.
1153# Note that when enabling USE_PDFLATEX this option is only used for
1154# generating bitmaps for formulas in the HTML output, but not in the
1155# Makefile that is written to the output directory.
860 1156
861LATEX_CMD_NAME = latex 1157LATEX_CMD_NAME = latex
862 1158
863# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to 1159# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to
864# generate index for LaTeX. If left blank `makeindex' will be used as the 1160# generate index for LaTeX. If left blank `makeindex' will be used as the
865# default command name. 1161# default command name.
866 1162
867MAKEINDEX_CMD_NAME = makeindex 1163MAKEINDEX_CMD_NAME = makeindex
868 1164
869# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact 1165# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
870# LaTeX documents. This may be useful for small projects and may help to 1166# LaTeX documents. This may be useful for small projects and may help to
871# save some trees in general. 1167# save some trees in general.
872 1168
873COMPACT_LATEX = NO 1169COMPACT_LATEX = NO
874 1170
875# The PAPER_TYPE tag can be used to set the paper type that is used 1171# The PAPER_TYPE tag can be used to set the paper type that is used
876# by the printer. Possible values are: a4, a4wide, letter, legal and 1172# by the printer. Possible values are: a4, letter, legal and
877# executive. If left blank a4wide will be used. 1173# executive. If left blank a4wide will be used.
878 1174
879PAPER_TYPE = a4wide 1175PAPER_TYPE = a4wide
880 1176
881# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX 1177# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
882# packages that should be included in the LaTeX output. 1178# packages that should be included in the LaTeX output.
883 1179
884EXTRA_PACKAGES = 1180EXTRA_PACKAGES =
885 1181
886# The LATEX_HEADER tag can be used to specify a personal LaTeX header for 1182# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
887# the generated latex document. The header should contain everything until 1183# the generated latex document. The header should contain everything until
888# the first chapter. If it is left blank doxygen will generate a 1184# the first chapter. If it is left blank doxygen will generate a
889# standard header. Notice: only use this tag if you know what you are doing! 1185# standard header. Notice: only use this tag if you know what you are doing!
890 1186
891LATEX_HEADER = 1187LATEX_HEADER =
892 1188
893# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated 1189# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
894# is prepared for conversion to pdf (using ps2pdf). The pdf file will 1190# is prepared for conversion to pdf (using ps2pdf). The pdf file will
895# contain links (just like the HTML output) instead of page references 1191# contain links (just like the HTML output) instead of page references
896# This makes the output suitable for online browsing using a pdf viewer. 1192# This makes the output suitable for online browsing using a pdf viewer.
897 1193
898PDF_HYPERLINKS = YES 1194PDF_HYPERLINKS = YES
899 1195
900# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of 1196# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
901# plain latex in the generated Makefile. Set this option to YES to get a 1197# plain latex in the generated Makefile. Set this option to YES to get a
902# higher quality PDF documentation. 1198# higher quality PDF documentation.
903 1199
904USE_PDFLATEX = NO 1200USE_PDFLATEX = YES
905 1201
906# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. 1202# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
907# command to the generated LaTeX files. This will instruct LaTeX to keep 1203# command to the generated LaTeX files. This will instruct LaTeX to keep
908# running if errors occur, instead of asking the user for help. 1204# running if errors occur, instead of asking the user for help.
909# This option is also used when generating formulas in HTML. 1205# This option is also used when generating formulas in HTML.
910 1206
911LATEX_BATCHMODE = NO 1207LATEX_BATCHMODE = NO
912 1208
913# If LATEX_HIDE_INDICES is set to YES then doxygen will not 1209# If LATEX_HIDE_INDICES is set to YES then doxygen will not
914# include the index chapters (such as File Index, Compound Index, etc.) 1210# include the index chapters (such as File Index, Compound Index, etc.)
915# in the output. 1211# in the output.
916 1212
917LATEX_HIDE_INDICES = NO 1213LATEX_HIDE_INDICES = NO
918 1214
1215# If LATEX_SOURCE_CODE is set to YES then doxygen will include
1216# source code with syntax highlighting in the LaTeX output.
1217# Note that which sources are shown also depends on other settings
1218# such as SOURCE_BROWSER.
1219
1220LATEX_SOURCE_CODE = NO
1221
919#--------------------------------------------------------------------------- 1222#---------------------------------------------------------------------------
920# configuration options related to the RTF output 1223# configuration options related to the RTF output
921#--------------------------------------------------------------------------- 1224#---------------------------------------------------------------------------
922 1225
923# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output 1226# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
924# The RTF output is optimized for Word 97 and may not look very pretty with 1227# The RTF output is optimized for Word 97 and may not look very pretty with
925# other RTF readers or editors. 1228# other RTF readers or editors.
926 1229
927GENERATE_RTF = NO 1230GENERATE_RTF = NO
928 1231
929# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. 1232# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
930# If a relative path is entered the value of OUTPUT_DIRECTORY will be 1233# If a relative path is entered the value of OUTPUT_DIRECTORY will be
931# put in front of it. If left blank `rtf' will be used as the default path. 1234# put in front of it. If left blank `rtf' will be used as the default path.
932 1235
933RTF_OUTPUT = rtf 1236RTF_OUTPUT = rtf
934 1237
935# If the COMPACT_RTF tag is set to YES Doxygen generates more compact 1238# If the COMPACT_RTF tag is set to YES Doxygen generates more compact
936# RTF documents. This may be useful for small projects and may help to 1239# RTF documents. This may be useful for small projects and may help to
937# save some trees in general. 1240# save some trees in general.
938 1241
939COMPACT_RTF = NO 1242COMPACT_RTF = NO
940 1243
941# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated 1244# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
942# will contain hyperlink fields. The RTF file will 1245# will contain hyperlink fields. The RTF file will
943# contain links (just like the HTML output) instead of page references. 1246# contain links (just like the HTML output) instead of page references.
944# This makes the output suitable for online browsing using WORD or other 1247# This makes the output suitable for online browsing using WORD or other
945# programs which support those fields. 1248# programs which support those fields.
946# Note: wordpad (write) and others do not support links. 1249# Note: wordpad (write) and others do not support links.
947 1250
948RTF_HYPERLINKS = NO 1251RTF_HYPERLINKS = NO
949 1252
950# Load stylesheet definitions from file. Syntax is similar to doxygen's 1253# Load stylesheet definitions from file. Syntax is similar to doxygen's
951# config file, i.e. a series of assignments. You only have to provide 1254# config file, i.e. a series of assignments. You only have to provide
952# replacements, missing definitions are set to their default value. 1255# replacements, missing definitions are set to their default value.
953 1256
954RTF_STYLESHEET_FILE = 1257RTF_STYLESHEET_FILE =
955 1258
956# Set optional variables used in the generation of an rtf document. 1259# Set optional variables used in the generation of an rtf document.
957# Syntax is similar to doxygen's config file. 1260# Syntax is similar to doxygen's config file.
958 1261
959RTF_EXTENSIONS_FILE = 1262RTF_EXTENSIONS_FILE =
960 1263
961#--------------------------------------------------------------------------- 1264#---------------------------------------------------------------------------
962# configuration options related to the man page output 1265# configuration options related to the man page output
963#--------------------------------------------------------------------------- 1266#---------------------------------------------------------------------------
964 1267
965# If the GENERATE_MAN tag is set to YES (the default) Doxygen will 1268# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
966# generate man pages 1269# generate man pages
967 1270
968GENERATE_MAN = YES 1271GENERATE_MAN = YES
969 1272
970# The MAN_OUTPUT tag is used to specify where the man pages will be put. 1273# The MAN_OUTPUT tag is used to specify where the man pages will be put.
971# If a relative path is entered the value of OUTPUT_DIRECTORY will be 1274# If a relative path is entered the value of OUTPUT_DIRECTORY will be
972# put in front of it. If left blank `man' will be used as the default path. 1275# put in front of it. If left blank `man' will be used as the default path.
973 1276
974MAN_OUTPUT = man 1277MAN_OUTPUT = man
975 1278
976# The MAN_EXTENSION tag determines the extension that is added to 1279# The MAN_EXTENSION tag determines the extension that is added to
977# the generated man pages (default is the subroutine's section .3) 1280# the generated man pages (default is the subroutine's section .3)
978 1281
979MAN_EXTENSION = .3 1282MAN_EXTENSION = .3
980 1283
981# If the MAN_LINKS tag is set to YES and Doxygen generates man output, 1284# If the MAN_LINKS tag is set to YES and Doxygen generates man output,
982# then it will generate one additional man file for each entity 1285# then it will generate one additional man file for each entity
983# documented in the real man page(s). These additional files 1286# documented in the real man page(s). These additional files
984# only source the real man page, but without them the man command 1287# only source the real man page, but without them the man command
985# would be unable to find the correct page. The default is NO. 1288# would be unable to find the correct page. The default is NO.
986 1289
987MAN_LINKS = YES 1290MAN_LINKS = YES
@@ -990,33 +1293,33 @@ MAN_LINKS = YES
990# configuration options related to the XML output 1293# configuration options related to the XML output
991#--------------------------------------------------------------------------- 1294#---------------------------------------------------------------------------
992 1295
993# If the GENERATE_XML tag is set to YES Doxygen will 1296# If the GENERATE_XML tag is set to YES Doxygen will
994# generate an XML file that captures the structure of 1297# generate an XML file that captures the structure of
995# the code including all documentation. 1298# the code including all documentation.
996 1299
997GENERATE_XML = NO 1300GENERATE_XML = NO
998 1301
999# The XML_OUTPUT tag is used to specify where the XML pages will be put. 1302# The XML_OUTPUT tag is used to specify where the XML pages will be put.
1000# If a relative path is entered the value of OUTPUT_DIRECTORY will be 1303# If a relative path is entered the value of OUTPUT_DIRECTORY will be
1001# put in front of it. If left blank `xml' will be used as the default path. 1304# put in front of it. If left blank `xml' will be used as the default path.
1002 1305
1003XML_OUTPUT = xml 1306XML_OUTPUT = xml
1004 1307
1005# The XML_SCHEMA tag can be used to specify an XML schema, 1308# The XML_SCHEMA tag can be used to specify an XML schema,
1006# which can be used by a validating XML parser to check the 1309# which can be used by a validating XML parser to check the
1007# syntax of the XML files. 1310# syntax of the XML files.
1008 1311
1009XML_SCHEMA = 1312XML_SCHEMA =
1010 1313
1011# The XML_DTD tag can be used to specify an XML DTD, 1314# The XML_DTD tag can be used to specify an XML DTD,
1012# which can be used by a validating XML parser to check the 1315# which can be used by a validating XML parser to check the
1013# syntax of the XML files. 1316# syntax of the XML files.
1014 1317
1015XML_DTD = 1318XML_DTD =
1016 1319
1017# If the XML_PROGRAMLISTING tag is set to YES Doxygen will 1320# If the XML_PROGRAMLISTING tag is set to YES Doxygen will
1018# dump the program listings (including syntax highlighting 1321# dump the program listings (including syntax highlighting
1019# and cross-referencing information) to the XML output. Note that 1322# and cross-referencing information) to the XML output. Note that
1020# enabling this will significantly increase the size of the XML output. 1323# enabling this will significantly increase the size of the XML output.
1021 1324
1022XML_PROGRAMLISTING = YES 1325XML_PROGRAMLISTING = YES
@@ -1025,10 +1328,10 @@ XML_PROGRAMLISTING = YES
1025# configuration options for the AutoGen Definitions output 1328# configuration options for the AutoGen Definitions output
1026#--------------------------------------------------------------------------- 1329#---------------------------------------------------------------------------
1027 1330
1028# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will 1331# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will
1029# generate an AutoGen Definitions (see autogen.sf.net) file 1332# generate an AutoGen Definitions (see autogen.sf.net) file
1030# that captures the structure of the code including all 1333# that captures the structure of the code including all
1031# documentation. Note that this feature is still experimental 1334# documentation. Note that this feature is still experimental
1032# and incomplete at the moment. 1335# and incomplete at the moment.
1033 1336
1034GENERATE_AUTOGEN_DEF = NO 1337GENERATE_AUTOGEN_DEF = NO
@@ -1037,320 +1340,356 @@ GENERATE_AUTOGEN_DEF = NO
1037# configuration options related to the Perl module output 1340# configuration options related to the Perl module output
1038#--------------------------------------------------------------------------- 1341#---------------------------------------------------------------------------
1039 1342
1040# If the GENERATE_PERLMOD tag is set to YES Doxygen will 1343# If the GENERATE_PERLMOD tag is set to YES Doxygen will
1041# generate a Perl module file that captures the structure of 1344# generate a Perl module file that captures the structure of
1042# the code including all documentation. Note that this 1345# the code including all documentation. Note that this
1043# feature is still experimental and incomplete at the 1346# feature is still experimental and incomplete at the
1044# moment. 1347# moment.
1045 1348
1046GENERATE_PERLMOD = NO 1349GENERATE_PERLMOD = NO
1047 1350
1048# If the PERLMOD_LATEX tag is set to YES Doxygen will generate 1351# If the PERLMOD_LATEX tag is set to YES Doxygen will generate
1049# the necessary Makefile rules, Perl scripts and LaTeX code to be able 1352# the necessary Makefile rules, Perl scripts and LaTeX code to be able
1050# to generate PDF and DVI output from the Perl module output. 1353# to generate PDF and DVI output from the Perl module output.
1051 1354
1052PERLMOD_LATEX = NO 1355PERLMOD_LATEX = NO
1053 1356
1054# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be 1357# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be
1055# nicely formatted so it can be parsed by a human reader. This is useful 1358# nicely formatted so it can be parsed by a human reader.
1056# if you want to understand what is going on. On the other hand, if this 1359# This is useful
1057# tag is set to NO the size of the Perl module output will be much smaller 1360# if you want to understand what is going on.
1361# On the other hand, if this
1362# tag is set to NO the size of the Perl module output will be much smaller
1058# and Perl will parse it just the same. 1363# and Perl will parse it just the same.
1059 1364
1060PERLMOD_PRETTY = YES 1365PERLMOD_PRETTY = YES
1061 1366
1062# The names of the make variables in the generated doxyrules.make file 1367# The names of the make variables in the generated doxyrules.make file
1063# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. 1368# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX.
1064# This is useful so different doxyrules.make files included by the same 1369# This is useful so different doxyrules.make files included by the same
1065# Makefile don't overwrite each other's variables. 1370# Makefile don't overwrite each other's variables.
1066 1371
1067PERLMOD_MAKEVAR_PREFIX = 1372PERLMOD_MAKEVAR_PREFIX =
1068 1373
1069#--------------------------------------------------------------------------- 1374#---------------------------------------------------------------------------
1070# Configuration options related to the preprocessor 1375# Configuration options related to the preprocessor
1071#--------------------------------------------------------------------------- 1376#---------------------------------------------------------------------------
1072 1377
1073# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will 1378# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
1074# evaluate all C-preprocessor directives found in the sources and include 1379# evaluate all C-preprocessor directives found in the sources and include
1075# files. 1380# files.
1076 1381
1077ENABLE_PREPROCESSING = YES 1382ENABLE_PREPROCESSING = YES
1078 1383
1079# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro 1384# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
1080# names in the source code. If set to NO (the default) only conditional 1385# names in the source code. If set to NO (the default) only conditional
1081# compilation will be performed. Macro expansion can be done in a controlled 1386# compilation will be performed. Macro expansion can be done in a controlled
1082# way by setting EXPAND_ONLY_PREDEF to YES. 1387# way by setting EXPAND_ONLY_PREDEF to YES.
1083 1388
1084MACRO_EXPANSION = YES 1389MACRO_EXPANSION = YES
1085 1390
1086# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES 1391# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
1087# then the macro expansion is limited to the macros specified with the 1392# then the macro expansion is limited to the macros specified with the
1088# PREDEFINED and EXPAND_AS_DEFINED tags. 1393# PREDEFINED and EXPAND_AS_DEFINED tags.
1089 1394
1090EXPAND_ONLY_PREDEF = YES 1395EXPAND_ONLY_PREDEF = YES
1091 1396
1092# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files 1397# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
1093# in the INCLUDE_PATH (see below) will be search if a #include is found. 1398# in the INCLUDE_PATH (see below) will be search if a #include is found.
1094 1399
1095SEARCH_INCLUDES = NO 1400SEARCH_INCLUDES = NO
1096 1401
1097# The INCLUDE_PATH tag can be used to specify one or more directories that 1402# The INCLUDE_PATH tag can be used to specify one or more directories that
1098# contain include files that are not input files but should be processed by 1403# contain include files that are not input files but should be processed by
1099# the preprocessor. 1404# the preprocessor.
1100 1405
1101INCLUDE_PATH = 1406INCLUDE_PATH =
1102 1407
1103# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard 1408# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
1104# patterns (like *.h and *.hpp) to filter out the header-files in the 1409# patterns (like *.h and *.hpp) to filter out the header-files in the
1105# directories. If left blank, the patterns specified with FILE_PATTERNS will 1410# directories. If left blank, the patterns specified with FILE_PATTERNS will
1106# be used. 1411# be used.
1107 1412
1108INCLUDE_FILE_PATTERNS = 1413INCLUDE_FILE_PATTERNS =
1109 1414
1110# The PREDEFINED tag can be used to specify one or more macro names that 1415# The PREDEFINED tag can be used to specify one or more macro names that
1111# are defined before the preprocessor is started (similar to the -D option of 1416# are defined before the preprocessor is started (similar to the -D option of
1112# gcc). The argument of the tag is a list of macros of the form: name 1417# gcc). The argument of the tag is a list of macros of the form: name
1113# or name=definition (no spaces). If the definition and the = are 1418# or name=definition (no spaces). If the definition and the = are
1114# omitted =1 is assumed. To prevent a macro definition from being 1419# omitted =1 is assumed. To prevent a macro definition from being
1115# undefined via #undef or recursively expanded use the := operator 1420# undefined via #undef or recursively expanded use the := operator
1116# instead of the = operator. 1421# instead of the = operator.
1117 1422
1118PREDEFINED = EINA_MAGIC_DEBUG __UNUSED__= EINA_ARG_NONNULL()= EINA_MALLOC= EINA_WARN_UNUSED_RESULT= EAPI= 1423PREDEFINED = EINA_MAGIC_DEBUG \
1424 __UNUSED__= \
1425 EINA_ARG_NONNULL()= \
1426 EINA_MALLOC= \
1427 EINA_WARN_UNUSED_RESULT= \
1428 EAPI= \
1429 EINA_PURE= \
1430 EINA_CONST=
1119 1431
1120# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then 1432# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
1121# this tag can be used to specify a list of macro names that should be expanded. 1433# this tag can be used to specify a list of macro names that should be expanded.
1122# The macro definition that is found in the sources will be used. 1434# The macro definition that is found in the sources will be used.
1123# Use the PREDEFINED tag if you want to use a different macro definition. 1435# Use the PREDEFINED tag if you want to use a different macro definition that overrules the definition found in the source code.
1124 1436
1125EXPAND_AS_DEFINED = 1437EXPAND_AS_DEFINED =
1126 1438
1127# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then 1439# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
1128# doxygen's preprocessor will remove all function-like macros that are alone 1440# doxygen's preprocessor will remove all references to function-like macros
1129# on a line, have an all uppercase name, and do not end with a semicolon. Such 1441# that are alone on a line, have an all uppercase name, and do not end with a
1130# function macros are typically used for boiler-plate code, and will confuse 1442# semicolon, because these will confuse the parser if not removed.
1131# the parser if not removed.
1132 1443
1133SKIP_FUNCTION_MACROS = YES 1444SKIP_FUNCTION_MACROS = YES
1134 1445
1135#--------------------------------------------------------------------------- 1446#---------------------------------------------------------------------------
1136# Configuration::additions related to external references 1447# Configuration::additions related to external references
1137#--------------------------------------------------------------------------- 1448#---------------------------------------------------------------------------
1138 1449
1139# The TAGFILES option can be used to specify one or more tagfiles. 1450# The TAGFILES option can be used to specify one or more tagfiles.
1140# Optionally an initial location of the external documentation 1451# Optionally an initial location of the external documentation
1141# can be added for each tagfile. The format of a tag file without 1452# can be added for each tagfile. The format of a tag file without
1142# this location is as follows: 1453# this location is as follows:
1143# TAGFILES = file1 file2 ... 1454#
1144# Adding location for the tag files is done as follows: 1455# TAGFILES = file1 file2 ...
1145# TAGFILES = file1=loc1 "file2 = loc2" ... 1456# Adding location for the tag files is done as follows:
1146# where "loc1" and "loc2" can be relative or absolute paths or 1457#
1147# URLs. If a location is present for each tag, the installdox tool 1458# TAGFILES = file1=loc1 "file2 = loc2" ...
1459# where "loc1" and "loc2" can be relative or absolute paths or
1460# URLs. If a location is present for each tag, the installdox tool
1148# does not have to be run to correct the links. 1461# does not have to be run to correct the links.
1149# Note that each tag file must have a unique name 1462# Note that each tag file must have a unique name
1150# (where the name does NOT include the path) 1463# (where the name does NOT include the path)
1151# If a tag file is not located in the directory in which doxygen 1464# If a tag file is not located in the directory in which doxygen
1152# is run, you must also specify the path to the tagfile here. 1465# is run, you must also specify the path to the tagfile here.
1153 1466
1154TAGFILES = 1467TAGFILES =
1155 1468
1156# When a file name is specified after GENERATE_TAGFILE, doxygen will create 1469# When a file name is specified after GENERATE_TAGFILE, doxygen will create
1157# a tag file that is based on the input files it reads. 1470# a tag file that is based on the input files it reads.
1158 1471
1159GENERATE_TAGFILE = 1472GENERATE_TAGFILE =
1160 1473
1161# If the ALLEXTERNALS tag is set to YES all external classes will be listed 1474# If the ALLEXTERNALS tag is set to YES all external classes will be listed
1162# in the class index. If set to NO only the inherited external classes 1475# in the class index. If set to NO only the inherited external classes
1163# will be listed. 1476# will be listed.
1164 1477
1165ALLEXTERNALS = NO 1478ALLEXTERNALS = NO
1166 1479
1167# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed 1480# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed
1168# in the modules index. If set to NO, only the current project's groups will 1481# in the modules index. If set to NO, only the current project's groups will
1169# be listed. 1482# be listed.
1170 1483
1171EXTERNAL_GROUPS = YES 1484EXTERNAL_GROUPS = YES
1172 1485
1173# The PERL_PATH should be the absolute path and name of the perl script 1486# The PERL_PATH should be the absolute path and name of the perl script
1174# interpreter (i.e. the result of `which perl'). 1487# interpreter (i.e. the result of `which perl').
1175 1488
1176PERL_PATH = /usr/bin/perl 1489PERL_PATH = /usr/bin/perl
1177 1490
1178#--------------------------------------------------------------------------- 1491#---------------------------------------------------------------------------
1179# Configuration options related to the dot tool 1492# Configuration options related to the dot tool
1180#--------------------------------------------------------------------------- 1493#---------------------------------------------------------------------------
1181 1494
1182# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will 1495# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
1183# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base 1496# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base
1184# or super classes. Setting the tag to NO turns the diagrams off. Note that 1497# or super classes. Setting the tag to NO turns the diagrams off. Note that
1185# this option is superseded by the HAVE_DOT option below. This is only a 1498# this option also works with HAVE_DOT disabled, but it is recommended to
1186# fallback. It is recommended to install and use dot, since it yields more 1499# install and use dot, since it yields more powerful graphs.
1187# powerful graphs.
1188 1500
1189CLASS_DIAGRAMS = NO 1501CLASS_DIAGRAMS = NO
1190 1502
1191# You can define message sequence charts within doxygen comments using the \msc 1503# You can define message sequence charts within doxygen comments using the \msc
1192# command. Doxygen will then run the mscgen tool (see 1504# command. Doxygen will then run the mscgen tool (see
1193# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the 1505# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the
1194# documentation. The MSCGEN_PATH tag allows you to specify the directory where 1506# documentation. The MSCGEN_PATH tag allows you to specify the directory where
1195# the mscgen tool resides. If left empty the tool is assumed to be found in the 1507# the mscgen tool resides. If left empty the tool is assumed to be found in the
1196# default search path. 1508# default search path.
1197 1509
1198MSCGEN_PATH = 1510MSCGEN_PATH =
1199 1511
1200# If set to YES, the inheritance and collaboration graphs will hide 1512# If set to YES, the inheritance and collaboration graphs will hide
1201# inheritance and usage relations if the target is undocumented 1513# inheritance and usage relations if the target is undocumented
1202# or is not a class. 1514# or is not a class.
1203 1515
1204HIDE_UNDOC_RELATIONS = YES 1516HIDE_UNDOC_RELATIONS = YES
1205 1517
1206# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is 1518# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
1207# available from the path. This tool is part of Graphviz, a graph visualization 1519# available from the path. This tool is part of Graphviz, a graph visualization
1208# toolkit from AT&T and Lucent Bell Labs. The other options in this section 1520# toolkit from AT&T and Lucent Bell Labs. The other options in this section
1209# have no effect if this option is set to NO (the default) 1521# have no effect if this option is set to NO (the default)
1210 1522
1211HAVE_DOT = NO 1523HAVE_DOT = NO
1212 1524
1213# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen 1525# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is
1214# will generate a graph for each documented class showing the direct and 1526# allowed to run in parallel. When set to 0 (the default) doxygen will
1215# indirect inheritance relations. Setting this tag to YES will force the 1527# base this on the number of processors available in the system. You can set it
1528# explicitly to a value larger than 0 to get control over the balance
1529# between CPU load and processing speed.
1530
1531DOT_NUM_THREADS = 0
1532
1533# By default doxygen will write a font called Helvetica to the output
1534# directory and reference it in all dot files that doxygen generates.
1535# When you want a differently looking font you can specify the font name
1536# using DOT_FONTNAME. You need to make sure dot is able to find the font,
1537# which can be done by putting it in a standard location or by setting the
1538# DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory
1539# containing the font.
1540
1541DOT_FONTNAME = Helvetica
1542
1543# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs.
1544# The default size is 10pt.
1545
1546DOT_FONTSIZE = 10
1547
1548# By default doxygen will tell dot to use the output directory to look for the
1549# FreeSans.ttf font (which doxygen will put there itself). If you specify a
1550# different font using DOT_FONTNAME you can set the path where dot
1551# can find it using this tag.
1552
1553DOT_FONTPATH =
1554
1555# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
1556# will generate a graph for each documented class showing the direct and
1557# indirect inheritance relations. Setting this tag to YES will force the
1216# the CLASS_DIAGRAMS tag to NO. 1558# the CLASS_DIAGRAMS tag to NO.
1217 1559
1218CLASS_GRAPH = NO 1560CLASS_GRAPH = NO
1219 1561
1220# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen 1562# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
1221# will generate a graph for each documented class showing the direct and 1563# will generate a graph for each documented class showing the direct and
1222# indirect implementation dependencies (inheritance, containment, and 1564# indirect implementation dependencies (inheritance, containment, and
1223# class references variables) of the class with other documented classes. 1565# class references variables) of the class with other documented classes.
1224 1566
1225COLLABORATION_GRAPH = NO 1567COLLABORATION_GRAPH = NO
1226 1568
1227# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen 1569# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen
1228# will generate a graph for groups, showing the direct groups dependencies 1570# will generate a graph for groups, showing the direct groups dependencies
1229 1571
1230GROUP_GRAPHS = YES 1572GROUP_GRAPHS = YES
1231 1573
1232# If the UML_LOOK tag is set to YES doxygen will generate inheritance and 1574# If the UML_LOOK tag is set to YES doxygen will generate inheritance and
1233# collaboration diagrams in a style similar to the OMG's Unified Modeling 1575# collaboration diagrams in a style similar to the OMG's Unified Modeling
1234# Language. 1576# Language.
1235 1577
1236UML_LOOK = NO 1578UML_LOOK = NO
1237 1579
1238# If set to YES, the inheritance and collaboration graphs will show the 1580# If set to YES, the inheritance and collaboration graphs will show the
1239# relations between templates and their instances. 1581# relations between templates and their instances.
1240 1582
1241TEMPLATE_RELATIONS = NO 1583TEMPLATE_RELATIONS = NO
1242 1584
1243# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT 1585# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT
1244# tags are set to YES then doxygen will generate a graph for each documented 1586# tags are set to YES then doxygen will generate a graph for each documented
1245# file showing the direct and indirect include dependencies of the file with 1587# file showing the direct and indirect include dependencies of the file with
1246# other documented files. 1588# other documented files.
1247 1589
1248INCLUDE_GRAPH = NO 1590INCLUDE_GRAPH = NO
1249 1591
1250# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and 1592# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and
1251# HAVE_DOT tags are set to YES then doxygen will generate a graph for each 1593# HAVE_DOT tags are set to YES then doxygen will generate a graph for each
1252# documented header file showing the documented files that directly or 1594# documented header file showing the documented files that directly or
1253# indirectly include this file. 1595# indirectly include this file.
1254 1596
1255INCLUDED_BY_GRAPH = NO 1597INCLUDED_BY_GRAPH = NO
1256 1598
1257# If the CALL_GRAPH and HAVE_DOT options are set to YES then 1599# If the CALL_GRAPH and HAVE_DOT options are set to YES then
1258# doxygen will generate a call dependency graph for every global function 1600# doxygen will generate a call dependency graph for every global function
1259# or class method. Note that enabling this option will significantly increase 1601# or class method. Note that enabling this option will significantly increase
1260# the time of a run. So in most cases it will be better to enable call graphs 1602# the time of a run. So in most cases it will be better to enable call graphs
1261# for selected functions only using the \callgraph command. 1603# for selected functions only using the \callgraph command.
1262 1604
1263CALL_GRAPH = NO 1605CALL_GRAPH = NO
1264 1606
1265# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then 1607# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then
1266# doxygen will generate a caller dependency graph for every global function 1608# doxygen will generate a caller dependency graph for every global function
1267# or class method. Note that enabling this option will significantly increase 1609# or class method. Note that enabling this option will significantly increase
1268# the time of a run. So in most cases it will be better to enable caller 1610# the time of a run. So in most cases it will be better to enable caller
1269# graphs for selected functions only using the \callergraph command. 1611# graphs for selected functions only using the \callergraph command.
1270 1612
1271CALLER_GRAPH = NO 1613CALLER_GRAPH = NO
1272 1614
1273# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen 1615# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
1274# will graphical hierarchy of all classes instead of a textual one. 1616# will generate a graphical hierarchy of all classes instead of a textual one.
1275 1617
1276GRAPHICAL_HIERARCHY = NO 1618GRAPHICAL_HIERARCHY = NO
1277 1619
1278# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES 1620# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES
1279# then doxygen will show the dependencies a directory has on other directories 1621# then doxygen will show the dependencies a directory has on other directories
1280# in a graphical way. The dependency relations are determined by the #include 1622# in a graphical way. The dependency relations are determined by the #include
1281# relations between the files in the directories. 1623# relations between the files in the directories.
1282 1624
1283DIRECTORY_GRAPH = YES 1625DIRECTORY_GRAPH = YES
1284 1626
1285# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images 1627# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
1286# generated by dot. Possible values are png, jpg, or gif 1628# generated by dot. Possible values are png, svg, gif or svg.
1287# If left blank png will be used. 1629# If left blank png will be used.
1288 1630
1289DOT_IMAGE_FORMAT = png 1631DOT_IMAGE_FORMAT = png
1290 1632
1291# The tag DOT_PATH can be used to specify the path where the dot tool can be 1633# The tag DOT_PATH can be used to specify the path where the dot tool can be
1292# found. If left blank, it is assumed the dot tool can be found in the path. 1634# found. If left blank, it is assumed the dot tool can be found in the path.
1293 1635
1294DOT_PATH = 1636DOT_PATH =
1295 1637
1296# The DOTFILE_DIRS tag can be used to specify one or more directories that 1638# The DOTFILE_DIRS tag can be used to specify one or more directories that
1297# contain dot files that are included in the documentation (see the 1639# contain dot files that are included in the documentation (see the
1298# \dotfile command). 1640# \dotfile command).
1299 1641
1300DOTFILE_DIRS = 1642DOTFILE_DIRS =
1643
1644# The MSCFILE_DIRS tag can be used to specify one or more directories that
1645# contain msc files that are included in the documentation (see the
1646# \mscfile command).
1647
1648MSCFILE_DIRS =
1301 1649
1302# The MAX_DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of 1650# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of
1303# nodes that will be shown in the graph. If the number of nodes in a graph 1651# nodes that will be shown in the graph. If the number of nodes in a graph
1304# becomes larger than this value, doxygen will truncate the graph, which is 1652# becomes larger than this value, doxygen will truncate the graph, which is
1305# visualized by representing a node as a red box. Note that doxygen if the 1653# visualized by representing a node as a red box. Note that doxygen if the
1306# number of direct children of the root node in a graph is already larger than 1654# number of direct children of the root node in a graph is already larger than
1307# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note 1655# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note
1308# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. 1656# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
1309 1657
1310DOT_GRAPH_MAX_NODES = 50 1658DOT_GRAPH_MAX_NODES = 50
1311 1659
1312# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the 1660# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the
1313# graphs generated by dot. A depth value of 3 means that only nodes reachable 1661# graphs generated by dot. A depth value of 3 means that only nodes reachable
1314# from the root by following a path via at most 3 edges will be shown. Nodes 1662# from the root by following a path via at most 3 edges will be shown. Nodes
1315# that lay further from the root node will be omitted. Note that setting this 1663# that lay further from the root node will be omitted. Note that setting this
1316# option to 1 or 2 may greatly reduce the computation time needed for large 1664# option to 1 or 2 may greatly reduce the computation time needed for large
1317# code bases. Also note that the size of a graph can be further restricted by 1665# code bases. Also note that the size of a graph can be further restricted by
1318# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. 1666# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
1319 1667
1320MAX_DOT_GRAPH_DEPTH = 0 1668MAX_DOT_GRAPH_DEPTH = 0
1321 1669
1322# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent 1670# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
1323# background. This is enabled by default, which results in a transparent 1671# background. This is disabled by default, because dot on Windows does not
1324# background. Warning: Depending on the platform used, enabling this option 1672# seem to support this out of the box. Warning: Depending on the platform used,
1325# may lead to badly anti-aliased labels on the edges of a graph (i.e. they 1673# enabling this option may lead to badly anti-aliased labels on the edges of
1326# become hard to read). 1674# a graph (i.e. they become hard to read).
1327 1675
1328DOT_TRANSPARENT = YES 1676DOT_TRANSPARENT = YES
1329 1677
1330# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output 1678# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
1331# files in one run (i.e. multiple -o and -T options on the command line). This 1679# files in one run (i.e. multiple -o and -T options on the command line). This
1332# makes dot run faster, but since only newer versions of dot (>1.8.10) 1680# makes dot run faster, but since only newer versions of dot (>1.8.10)
1333# support this, this feature is disabled by default. 1681# support this, this feature is disabled by default.
1334 1682
1335DOT_MULTI_TARGETS = NO 1683DOT_MULTI_TARGETS = NO
1336 1684
1337# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will 1685# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
1338# generate a legend page explaining the meaning of the various boxes and 1686# generate a legend page explaining the meaning of the various boxes and
1339# arrows in the dot generated graphs. 1687# arrows in the dot generated graphs.
1340 1688
1341GENERATE_LEGEND = YES 1689GENERATE_LEGEND = YES
1342 1690
1343# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will 1691# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will
1344# remove the intermediate dot files that are used to generate 1692# remove the intermediate dot files that are used to generate
1345# the various graphs. 1693# the various graphs.
1346 1694
1347DOT_CLEANUP = YES 1695DOT_CLEANUP = YES
1348
1349#---------------------------------------------------------------------------
1350# Configuration::additions related to the search engine
1351#---------------------------------------------------------------------------
1352
1353# The SEARCHENGINE tag specifies whether or not a search engine should be
1354# used. If set to NO the values of all tags below this one will be ignored.
1355
1356SEARCHENGINE = NO
diff --git a/libraries/eina/doc/Makefile.am b/libraries/eina/doc/Makefile.am
index 6f31b96..7856c13 100644
--- a/libraries/eina/doc/Makefile.am
+++ b/libraries/eina/doc/Makefile.am
@@ -20,6 +20,7 @@ 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 24
24clean-local: doc-clean 25clean-local: doc-clean
25 26
diff --git a/libraries/eina/doc/Makefile.in b/libraries/eina/doc/Makefile.in
index e8e647a..7331cf1 100644
--- a/libraries/eina/doc/Makefile.in
+++ b/libraries/eina/doc/Makefile.in
@@ -108,7 +108,9 @@ EFL_SIMD_FLAGS = @EFL_SIMD_FLAGS@
108EGREP = @EGREP@ 108EGREP = @EGREP@
109EINA_CFLAGS = @EINA_CFLAGS@ 109EINA_CFLAGS = @EINA_CFLAGS@
110EINA_CONFIGURE_DEFAULT_MEMPOOL = @EINA_CONFIGURE_DEFAULT_MEMPOOL@ 110EINA_CONFIGURE_DEFAULT_MEMPOOL = @EINA_CONFIGURE_DEFAULT_MEMPOOL@
111EINA_CONFIGURE_ENABLE_LOG = @EINA_CONFIGURE_ENABLE_LOG@
111EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@ 112EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@
113EINA_CONFIGURE_HAVE_DIRENT_H = @EINA_CONFIGURE_HAVE_DIRENT_H@
112EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@ 114EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@
113EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@ 115EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@
114EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@ 116EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@
@@ -160,8 +162,6 @@ PACKAGE_URL = @PACKAGE_URL@
160PACKAGE_VERSION = @PACKAGE_VERSION@ 162PACKAGE_VERSION = @PACKAGE_VERSION@
161PATH_SEPARATOR = @PATH_SEPARATOR@ 163PATH_SEPARATOR = @PATH_SEPARATOR@
162PKG_CONFIG = @PKG_CONFIG@ 164PKG_CONFIG = @PKG_CONFIG@
163PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
164PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
165RANLIB = @RANLIB@ 165RANLIB = @RANLIB@
166SED = @SED@ 166SED = @SED@
167SET_MAKE = @SET_MAKE@ 167SET_MAKE = @SET_MAKE@
@@ -449,6 +449,7 @@ uninstall-am:
449@EFL_BUILD_DOC_TRUE@ bzip2 -9 $(PACKAGE_DOCNAME).tar 449@EFL_BUILD_DOC_TRUE@ bzip2 -9 $(PACKAGE_DOCNAME).tar
450@EFL_BUILD_DOC_TRUE@ rm -rf $(PACKAGE_DOCNAME)/ 450@EFL_BUILD_DOC_TRUE@ rm -rf $(PACKAGE_DOCNAME)/
451@EFL_BUILD_DOC_TRUE@ mv $(PACKAGE_DOCNAME).tar.bz2 $(top_builddir) 451@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"
452 453
453@EFL_BUILD_DOC_TRUE@clean-local: doc-clean 454@EFL_BUILD_DOC_TRUE@clean-local: doc-clean
454 455
diff --git a/libraries/eina/eina.pc b/libraries/eina/eina.pc
index 067d7c5..0ca596f 100644
--- a/libraries/eina/eina.pc
+++ b/libraries/eina/eina.pc
@@ -1,4 +1,4 @@
1prefix=/usr/local 1prefix=/opt/e17
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.0 9Version: 1.1.99.67344
10Libs: -L${libdir} -leina -pthread 10Libs: -L${libdir} -leina -pthread
11Libs.private: -pthread -lrt -ldl -lrt -lm 11Libs.private: -pthread -lrt -ldl -lrt -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 c325f06..0ad6732 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.0 6Version: 1.1.99.67344
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 fa4b1e1..7ed280b 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-2ubuntu3 68# $progname: (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
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-2ubuntu3" 76VERSION="2.2.6b Debian-2.2.6b-2ubuntu1"
77TIMESTAMP="" 77TIMESTAMP=""
78package_revision=1.3017 78package_revision=1.3017
79 79
diff --git a/libraries/eina/m4/libtool.m4 b/libraries/eina/m4/libtool.m4
index 6e86e5b..a3fee53 100644
--- a/libraries/eina/m4/libtool.m4
+++ b/libraries/eina/m4/libtool.m4
@@ -380,12 +380,12 @@ m4_define([lt_decl_dquote_varnames],
380# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) 380# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...])
381# --------------------------------------------------- 381# ---------------------------------------------------
382m4_define([lt_decl_varnames_tagged], 382m4_define([lt_decl_varnames_tagged],
383[_$0(m4_quote(m4_default([$1], [[, ]])), 383[m4_assert([$# <= 2])dnl
384 m4_quote(m4_if([$2], [], 384_$0(m4_quote(m4_default([$1], [[, ]])),
385 m4_quote(lt_decl_tag_varnames), 385 m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]),
386 m4_quote(m4_shift($@)))), 386 m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))])
387 m4_split(m4_normalize(m4_quote(_LT_TAGS))))]) 387m4_define([_lt_decl_varnames_tagged],
388m4_define([_lt_decl_varnames_tagged], [lt_combine([$1], [$2], [_], $3)]) 388[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])])
389 389
390 390
391# lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) 391# lt_decl_all_varnames([SEPARATOR], [VARNAME1...])
@@ -945,10 +945,10 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
945 _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; 945 _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
946 darwin1.*) 946 darwin1.*)
947 _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 947 _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
948 darwin*) # darwin 5.x on 948 darwin*) # darwin 5.x on
949 # if running on 10.5 or later, the deployment target defaults 949 # if running on 10.5 or later, the deployment target defaults
950 # to the OS version, if on x86, and 10.4, the deployment 950 # to the OS version, if on x86, and 10.4, the deployment
951 # target defaults to 10.4. Don't you love it? 951 # target defaults to 10.4. Don't you love it?
952 case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 952 case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
953 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) 953 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*)
954 _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; 954 _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
@@ -990,7 +990,11 @@ m4_defun([_LT_DARWIN_LINKER_FEATURES],
990 _LT_TAGVAR(whole_archive_flag_spec, $1)='' 990 _LT_TAGVAR(whole_archive_flag_spec, $1)=''
991 _LT_TAGVAR(link_all_deplibs, $1)=yes 991 _LT_TAGVAR(link_all_deplibs, $1)=yes
992 _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" 992 _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined"
993 if test "$GCC" = "yes"; then 993 case $cc_basename in
994 ifort*) _lt_dar_can_shared=yes ;;
995 *) _lt_dar_can_shared=$GCC ;;
996 esac
997 if test "$_lt_dar_can_shared" = "yes"; then
994 output_verbose_link_cmd=echo 998 output_verbose_link_cmd=echo
995 _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" 999 _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
996 _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" 1000 _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
@@ -1512,7 +1516,7 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
1512 lt_cv_sys_max_cmd_len=-1; 1516 lt_cv_sys_max_cmd_len=-1;
1513 ;; 1517 ;;
1514 1518
1515 cygwin* | mingw*) 1519 cygwin* | mingw* | cegcc*)
1516 # On Win9x/ME, this test blows up -- it succeeds, but takes 1520 # On Win9x/ME, this test blows up -- it succeeds, but takes
1517 # about 5 minutes as the teststring grows exponentially. 1521 # about 5 minutes as the teststring grows exponentially.
1518 # Worse, since 9x/ME are not pre-emptively multitasking, 1522 # Worse, since 9x/ME are not pre-emptively multitasking,
@@ -1680,10 +1684,6 @@ else
1680# endif 1684# endif
1681#endif 1685#endif
1682 1686
1683#ifdef __cplusplus
1684extern "C" void exit (int);
1685#endif
1686
1687void fnord() { int i=42;} 1687void fnord() { int i=42;}
1688int main () 1688int main ()
1689{ 1689{
@@ -1699,7 +1699,7 @@ int main ()
1699 else 1699 else
1700 puts (dlerror ()); 1700 puts (dlerror ());
1701 1701
1702 exit (status); 1702 return status;
1703}] 1703}]
1704_LT_EOF 1704_LT_EOF
1705 if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then 1705 if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then
@@ -1738,7 +1738,7 @@ else
1738 lt_cv_dlopen_self=yes 1738 lt_cv_dlopen_self=yes
1739 ;; 1739 ;;
1740 1740
1741 mingw* | pw32*) 1741 mingw* | pw32* | cegcc*)
1742 lt_cv_dlopen="LoadLibrary" 1742 lt_cv_dlopen="LoadLibrary"
1743 lt_cv_dlopen_libs= 1743 lt_cv_dlopen_libs=
1744 ;; 1744 ;;
@@ -2035,6 +2035,7 @@ m4_defun([_LT_SYS_DYNAMIC_LINKER],
2035[AC_REQUIRE([AC_CANONICAL_HOST])dnl 2035[AC_REQUIRE([AC_CANONICAL_HOST])dnl
2036m4_require([_LT_DECL_EGREP])dnl 2036m4_require([_LT_DECL_EGREP])dnl
2037m4_require([_LT_FILEUTILS_DEFAULTS])dnl 2037m4_require([_LT_FILEUTILS_DEFAULTS])dnl
2038m4_require([_LT_DECL_OBJDUMP])dnl
2038m4_require([_LT_DECL_SED])dnl 2039m4_require([_LT_DECL_SED])dnl
2039AC_MSG_CHECKING([dynamic linker characteristics]) 2040AC_MSG_CHECKING([dynamic linker characteristics])
2040m4_if([$1], 2041m4_if([$1],
@@ -2199,14 +2200,14 @@ bsdi[[45]]*)
2199 # libtool to hard-code these into programs 2200 # libtool to hard-code these into programs
2200 ;; 2201 ;;
2201 2202
2202cygwin* | mingw* | pw32*) 2203cygwin* | mingw* | pw32* | cegcc*)
2203 version_type=windows 2204 version_type=windows
2204 shrext_cmds=".dll" 2205 shrext_cmds=".dll"
2205 need_version=no 2206 need_version=no
2206 need_lib_prefix=no 2207 need_lib_prefix=no
2207 2208
2208 case $GCC,$host_os in 2209 case $GCC,$host_os in
2209 yes,cygwin* | yes,mingw* | yes,pw32*) 2210 yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
2210 library_names_spec='$libname.dll.a' 2211 library_names_spec='$libname.dll.a'
2211 # DLL is installed to $(libdir)/../bin by postinstall_cmds 2212 # DLL is installed to $(libdir)/../bin by postinstall_cmds
2212 postinstall_cmds='base_file=`basename \${file}`~ 2213 postinstall_cmds='base_file=`basename \${file}`~
@@ -2229,7 +2230,7 @@ cygwin* | mingw* | pw32*)
2229 soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' 2230 soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
2230 sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" 2231 sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
2231 ;; 2232 ;;
2232 mingw*) 2233 mingw* | cegcc*)
2233 # MinGW DLLs use traditional 'lib' prefix 2234 # MinGW DLLs use traditional 'lib' prefix
2234 soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' 2235 soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
2235 sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` 2236 sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
@@ -2444,7 +2445,7 @@ linux*oldld* | linux*aout* | linux*coff*)
2444 ;; 2445 ;;
2445 2446
2446# This must be Linux ELF. 2447# This must be Linux ELF.
2447linux* | k*bsd*-gnu) 2448linux* | k*bsd*-gnu | kopensolaris*-gnu)
2448 version_type=linux 2449 version_type=linux
2449 need_lib_prefix=no 2450 need_lib_prefix=no
2450 need_version=no 2451 need_version=no
@@ -2667,7 +2668,7 @@ tpf*)
2667 version_type=linux 2668 version_type=linux
2668 need_lib_prefix=no 2669 need_lib_prefix=no
2669 need_version=no 2670 need_version=no
2670 library_name_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' 2671 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
2671 shlibpath_var=LD_LIBRARY_PATH 2672 shlibpath_var=LD_LIBRARY_PATH
2672 shlibpath_overrides_runpath=no 2673 shlibpath_overrides_runpath=no
2673 hardcode_into_libs=yes 2674 hardcode_into_libs=yes
@@ -2691,7 +2692,7 @@ variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
2691if test "$GCC" = yes; then 2692if test "$GCC" = yes; then
2692 variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" 2693 variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
2693fi 2694fi
2694 2695
2695if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then 2696if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
2696 sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" 2697 sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
2697fi 2698fi
@@ -2968,6 +2969,7 @@ _LT_DECL([], [reload_cmds], [2])dnl
2968# -- PORTME fill in with the dynamic library characteristics 2969# -- PORTME fill in with the dynamic library characteristics
2969m4_defun([_LT_CHECK_MAGIC_METHOD], 2970m4_defun([_LT_CHECK_MAGIC_METHOD],
2970[m4_require([_LT_DECL_EGREP]) 2971[m4_require([_LT_DECL_EGREP])
2972m4_require([_LT_DECL_OBJDUMP])
2971AC_CACHE_CHECK([how to recognize dependent libraries], 2973AC_CACHE_CHECK([how to recognize dependent libraries],
2972lt_cv_deplibs_check_method, 2974lt_cv_deplibs_check_method,
2973[lt_cv_file_magic_cmd='$MAGIC_CMD' 2975[lt_cv_file_magic_cmd='$MAGIC_CMD'
@@ -3018,6 +3020,12 @@ mingw* | pw32*)
3018 fi 3020 fi
3019 ;; 3021 ;;
3020 3022
3023cegcc)
3024 # use the weaker test based on 'objdump'. See mingw*.
3025 lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
3026 lt_cv_file_magic_cmd='$OBJDUMP -f'
3027 ;;
3028
3021darwin* | rhapsody*) 3029darwin* | rhapsody*)
3022 lt_cv_deplibs_check_method=pass_all 3030 lt_cv_deplibs_check_method=pass_all
3023 ;; 3031 ;;
@@ -3076,7 +3084,7 @@ irix5* | irix6* | nonstopux*)
3076 ;; 3084 ;;
3077 3085
3078# This must be Linux ELF. 3086# This must be Linux ELF.
3079linux* | k*bsd*-gnu) 3087linux* | k*bsd*-gnu | kopensolaris*-gnu)
3080 lt_cv_deplibs_check_method=pass_all 3088 lt_cv_deplibs_check_method=pass_all
3081 ;; 3089 ;;
3082 3090
@@ -3329,7 +3337,7 @@ case $host_os in
3329aix*) 3337aix*)
3330 symcode='[[BCDT]]' 3338 symcode='[[BCDT]]'
3331 ;; 3339 ;;
3332cygwin* | mingw* | pw32*) 3340cygwin* | mingw* | pw32* | cegcc*)
3333 symcode='[[ABCDGISTW]]' 3341 symcode='[[ABCDGISTW]]'
3334 ;; 3342 ;;
3335hpux*) 3343hpux*)
@@ -3575,7 +3583,7 @@ m4_if([$1], [CXX], [
3575 beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) 3583 beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
3576 # PIC is the default for these OSes. 3584 # PIC is the default for these OSes.
3577 ;; 3585 ;;
3578 mingw* | cygwin* | os2* | pw32*) 3586 mingw* | cygwin* | os2* | pw32* | cegcc*)
3579 # This hack is so that the source file can tell whether it is being 3587 # This hack is so that the source file can tell whether it is being
3580 # built for inclusion in a dll (and should export symbols for example). 3588 # built for inclusion in a dll (and should export symbols for example).
3581 # Although the cygwin gcc ignores -fPIC, still need this for old-style 3589 # Although the cygwin gcc ignores -fPIC, still need this for old-style
@@ -3602,10 +3610,11 @@ m4_if([$1], [CXX], [
3602 fi 3610 fi
3603 ;; 3611 ;;
3604 hpux*) 3612 hpux*)
3605 # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but 3613 # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
3606 # not for PA HP-UX. 3614 # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
3615 # sets the default TLS model and affects inlining.
3607 case $host_cpu in 3616 case $host_cpu in
3608 hppa*64*|ia64*) 3617 hppa*64*)
3609 ;; 3618 ;;
3610 *) 3619 *)
3611 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' 3620 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
@@ -3696,19 +3705,26 @@ m4_if([$1], [CXX], [
3696 ;; 3705 ;;
3697 esac 3706 esac
3698 ;; 3707 ;;
3699 linux* | k*bsd*-gnu) 3708 linux* | k*bsd*-gnu | kopensolaris*-gnu)
3700 case $cc_basename in 3709 case $cc_basename in
3701 KCC*) 3710 KCC*)
3702 # KAI C++ Compiler 3711 # KAI C++ Compiler
3703 _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' 3712 _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
3704 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' 3713 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
3705 ;; 3714 ;;
3706 icpc* | ecpc* ) 3715 ecpc* )
3707 # Intel C++ 3716 # old Intel C++ for x86_64 which still supported -KPIC.
3708 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 3717 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
3709 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' 3718 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
3710 _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' 3719 _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
3711 ;; 3720 ;;
3721 icpc* )
3722 # Intel C++, used to be incompatible with GCC.
3723 # ICC 10 doesn't accept -KPIC any more.
3724 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
3725 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
3726 _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
3727 ;;
3712 pgCC* | pgcpp*) 3728 pgCC* | pgcpp*)
3713 # Portland Group C++ compiler 3729 # Portland Group C++ compiler
3714 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 3730 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
@@ -3874,7 +3890,7 @@ m4_if([$1], [CXX], [
3874 # PIC is the default for these OSes. 3890 # PIC is the default for these OSes.
3875 ;; 3891 ;;
3876 3892
3877 mingw* | cygwin* | pw32* | os2*) 3893 mingw* | cygwin* | pw32* | os2* | cegcc*)
3878 # This hack is so that the source file can tell whether it is being 3894 # This hack is so that the source file can tell whether it is being
3879 # built for inclusion in a dll (and should export symbols for example). 3895 # built for inclusion in a dll (and should export symbols for example).
3880 # Although the cygwin gcc ignores -fPIC, still need this for old-style 3896 # Although the cygwin gcc ignores -fPIC, still need this for old-style
@@ -3890,10 +3906,11 @@ m4_if([$1], [CXX], [
3890 ;; 3906 ;;
3891 3907
3892 hpux*) 3908 hpux*)
3893 # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but 3909 # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
3894 # not for PA HP-UX. 3910 # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
3911 # sets the default TLS model and affects inlining.
3895 case $host_cpu in 3912 case $host_cpu in
3896 hppa*64*|ia64*) 3913 hppa*64*)
3897 # +Z the default 3914 # +Z the default
3898 ;; 3915 ;;
3899 *) 3916 *)
@@ -3943,7 +3960,7 @@ m4_if([$1], [CXX], [
3943 fi 3960 fi
3944 ;; 3961 ;;
3945 3962
3946 mingw* | cygwin* | pw32* | os2*) 3963 mingw* | cygwin* | pw32* | os2* | cegcc*)
3947 # This hack is so that the source file can tell whether it is being 3964 # This hack is so that the source file can tell whether it is being
3948 # built for inclusion in a dll (and should export symbols for example). 3965 # built for inclusion in a dll (and should export symbols for example).
3949 m4_if([$1], [GCJ], [], 3966 m4_if([$1], [GCJ], [],
@@ -3972,13 +3989,27 @@ m4_if([$1], [CXX], [
3972 _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' 3989 _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
3973 ;; 3990 ;;
3974 3991
3975 linux* | k*bsd*-gnu) 3992 linux* | k*bsd*-gnu | kopensolaris*-gnu)
3976 case $cc_basename in 3993 case $cc_basename in
3977 icc* | ecc* | ifort*) 3994 # old Intel for x86_64 which still supported -KPIC.
3995 ecc*)
3978 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 3996 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
3979 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' 3997 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
3980 _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' 3998 _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
3981 ;; 3999 ;;
4000 # icc used to be incompatible with GCC.
4001 # ICC 10 doesn't accept -KPIC any more.
4002 icc* | ifort*)
4003 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4004 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
4005 _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
4006 ;;
4007 # Lahey Fortran 8.1.
4008 lf95*)
4009 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4010 _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared'
4011 _LT_TAGVAR(lt_prog_compiler_static, $1)='--static'
4012 ;;
3982 pgcc* | pgf77* | pgf90* | pgf95*) 4013 pgcc* | pgf77* | pgf90* | pgf95*)
3983 # Portland Group compilers (*not* the Pentium gcc compiler, 4014 # Portland Group compilers (*not* the Pentium gcc compiler,
3984 # which looks to be a dead project) 4015 # which looks to be a dead project)
@@ -4160,7 +4191,7 @@ m4_if([$1], [CXX], [
4160 pw32*) 4191 pw32*)
4161 _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" 4192 _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
4162 ;; 4193 ;;
4163 cygwin* | mingw*) 4194 cygwin* | mingw* | cegcc*)
4164 _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' 4195 _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
4165 ;; 4196 ;;
4166 linux* | k*bsd*-gnu) 4197 linux* | k*bsd*-gnu)
@@ -4215,7 +4246,7 @@ dnl Note also adjust exclude_expsyms for C++ above.
4215 extract_expsyms_cmds= 4246 extract_expsyms_cmds=
4216 4247
4217 case $host_os in 4248 case $host_os in
4218 cygwin* | mingw* | pw32*) 4249 cygwin* | mingw* | pw32* | cegcc*)
4219 # FIXME: the MSVC++ port hasn't been tested in a loooong time 4250 # FIXME: the MSVC++ port hasn't been tested in a loooong time
4220 # When not using gcc, we currently assume that we are using 4251 # When not using gcc, we currently assume that we are using
4221 # Microsoft Visual C++. 4252 # Microsoft Visual C++.
@@ -4230,6 +4261,9 @@ dnl Note also adjust exclude_expsyms for C++ above.
4230 openbsd*) 4261 openbsd*)
4231 with_gnu_ld=no 4262 with_gnu_ld=no
4232 ;; 4263 ;;
4264 linux* | k*bsd*-gnu)
4265 _LT_TAGVAR(link_all_deplibs, $1)=no
4266 ;;
4233 esac 4267 esac
4234 4268
4235 _LT_TAGVAR(ld_shlibs, $1)=yes 4269 _LT_TAGVAR(ld_shlibs, $1)=yes
@@ -4251,6 +4285,7 @@ dnl Note also adjust exclude_expsyms for C++ above.
4251 fi 4285 fi
4252 supports_anon_versioning=no 4286 supports_anon_versioning=no
4253 case `$LD -v 2>&1` in 4287 case `$LD -v 2>&1` in
4288 *GNU\ gold*) supports_anon_versioning=yes ;;
4254 *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 4289 *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11
4255 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... 4290 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
4256 *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... 4291 *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
@@ -4302,7 +4337,7 @@ _LT_EOF
4302 fi 4337 fi
4303 ;; 4338 ;;
4304 4339
4305 cygwin* | mingw* | pw32*) 4340 cygwin* | mingw* | pw32* | cegcc*)
4306 # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, 4341 # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
4307 # as there is no search path for DLLs. 4342 # as there is no search path for DLLs.
4308 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' 4343 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
@@ -4342,7 +4377,7 @@ _LT_EOF
4342 _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' 4377 _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
4343 ;; 4378 ;;
4344 4379
4345 gnu* | linux* | tpf* | k*bsd*-gnu) 4380 gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
4346 tmp_diet=no 4381 tmp_diet=no
4347 if test "$host_os" = linux-dietlibc; then 4382 if test "$host_os" = linux-dietlibc; then
4348 case $cc_basename in 4383 case $cc_basename in
@@ -4368,6 +4403,9 @@ _LT_EOF
4368 tmp_addflag=' -i_dynamic -nofor_main' ;; 4403 tmp_addflag=' -i_dynamic -nofor_main' ;;
4369 ifc* | ifort*) # Intel Fortran compiler 4404 ifc* | ifort*) # Intel Fortran compiler
4370 tmp_addflag=' -nofor_main' ;; 4405 tmp_addflag=' -nofor_main' ;;
4406 lf95*) # Lahey Fortran 8.1
4407 _LT_TAGVAR(whole_archive_flag_spec, $1)=
4408 tmp_sharedflag='--shared' ;;
4371 xl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) 4409 xl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below)
4372 tmp_sharedflag='-qmkshrobj' 4410 tmp_sharedflag='-qmkshrobj'
4373 tmp_addflag= ;; 4411 tmp_addflag= ;;
@@ -4600,6 +4638,7 @@ _LT_EOF
4600 fi 4638 fi
4601 fi 4639 fi
4602 4640
4641 _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall'
4603 # It seems that -bexpall does not export symbols beginning with 4642 # It seems that -bexpall does not export symbols beginning with
4604 # underscore (_), so it is better to generate a list of symbols to export. 4643 # underscore (_), so it is better to generate a list of symbols to export.
4605 _LT_TAGVAR(always_export_symbols, $1)=yes 4644 _LT_TAGVAR(always_export_symbols, $1)=yes
@@ -4654,7 +4693,7 @@ _LT_EOF
4654 _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic 4693 _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic
4655 ;; 4694 ;;
4656 4695
4657 cygwin* | mingw* | pw32*) 4696 cygwin* | mingw* | pw32* | cegcc*)
4658 # When not using gcc, we currently assume that we are using 4697 # When not using gcc, we currently assume that we are using
4659 # Microsoft Visual C++. 4698 # Microsoft Visual C++.
4660 # hardcode_libdir_flag_spec is actually meaningless, as there is 4699 # hardcode_libdir_flag_spec is actually meaningless, as there is
@@ -4758,7 +4797,7 @@ _LT_EOF
4758 _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' 4797 _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
4759 ;; 4798 ;;
4760 ia64*) 4799 ia64*)
4761 _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' 4800 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
4762 ;; 4801 ;;
4763 *) 4802 *)
4764 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' 4803 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
@@ -5543,6 +5582,7 @@ if test "$_lt_caught_CXX_error" != yes; then
5543 fi 5582 fi
5544 fi 5583 fi
5545 5584
5585 _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall'
5546 # It seems that -bexpall does not export symbols beginning with 5586 # It seems that -bexpall does not export symbols beginning with
5547 # underscore (_), so it is better to generate a list of symbols to 5587 # underscore (_), so it is better to generate a list of symbols to
5548 # export. 5588 # export.
@@ -5601,7 +5641,7 @@ if test "$_lt_caught_CXX_error" != yes; then
5601 esac 5641 esac
5602 ;; 5642 ;;
5603 5643
5604 cygwin* | mingw* | pw32*) 5644 cygwin* | mingw* | pw32* | cegcc*)
5605 # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, 5645 # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
5606 # as there is no search path for DLLs. 5646 # as there is no search path for DLLs.
5607 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' 5647 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
@@ -5821,7 +5861,7 @@ if test "$_lt_caught_CXX_error" != yes; then
5821 _LT_TAGVAR(inherit_rpath, $1)=yes 5861 _LT_TAGVAR(inherit_rpath, $1)=yes
5822 ;; 5862 ;;
5823 5863
5824 linux* | k*bsd*-gnu) 5864 linux* | k*bsd*-gnu | kopensolaris*-gnu)
5825 case $cc_basename in 5865 case $cc_basename in
5826 KCC*) 5866 KCC*)
5827 # Kuck and Associates, Inc. (KAI) C++ Compiler 5867 # Kuck and Associates, Inc. (KAI) C++ Compiler
@@ -6986,6 +7026,18 @@ AC_SUBST([GREP])
6986]) 7026])
6987 7027
6988 7028
7029# _LT_DECL_OBJDUMP
7030# --------------
7031# If we don't have a new enough Autoconf to choose the best objdump
7032# available, choose the one first in the user's PATH.
7033m4_defun([_LT_DECL_OBJDUMP],
7034[AC_CHECK_TOOL(OBJDUMP, objdump, false)
7035test -z "$OBJDUMP" && OBJDUMP=objdump
7036_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper])
7037AC_SUBST([OBJDUMP])
7038])
7039
7040
6989# _LT_DECL_SED 7041# _LT_DECL_SED
6990# ------------ 7042# ------------
6991# Check for a fully-functional sed program, that truncates 7043# Check for a fully-functional sed program, that truncates
diff --git a/libraries/eina/m4/ltoptions.m4 b/libraries/eina/m4/ltoptions.m4
index e970119..34151a3 100644
--- a/libraries/eina/m4/ltoptions.m4
+++ b/libraries/eina/m4/ltoptions.m4
@@ -125,7 +125,7 @@ LT_OPTION_DEFINE([LT_INIT], [win32-dll],
125[enable_win32_dll=yes 125[enable_win32_dll=yes
126 126
127case $host in 127case $host in
128*-*-cygwin* | *-*-mingw* | *-*-pw32*) 128*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*)
129 AC_CHECK_TOOL(AS, as, false) 129 AC_CHECK_TOOL(AS, as, false)
130 AC_CHECK_TOOL(DLLTOOL, dlltool, false) 130 AC_CHECK_TOOL(DLLTOOL, dlltool, false)
131 AC_CHECK_TOOL(OBJDUMP, objdump, false) 131 AC_CHECK_TOOL(OBJDUMP, objdump, false)
diff --git a/libraries/eina/sha1-for-source.txt b/libraries/eina/sha1-for-source.txt
deleted file mode 100644
index 0f5bce1..0000000
--- a/libraries/eina/sha1-for-source.txt
+++ /dev/null
@@ -1 +0,0 @@
1cbaf0e4752d2758ae79c353cb342eb8451a52be7
diff --git a/libraries/eina/src/Makefile.in b/libraries/eina/src/Makefile.in
index c954fc5..eb3a2c0 100644
--- a/libraries/eina/src/Makefile.in
+++ b/libraries/eina/src/Makefile.in
@@ -147,7 +147,9 @@ EFL_SIMD_FLAGS = @EFL_SIMD_FLAGS@
147EGREP = @EGREP@ 147EGREP = @EGREP@
148EINA_CFLAGS = @EINA_CFLAGS@ 148EINA_CFLAGS = @EINA_CFLAGS@
149EINA_CONFIGURE_DEFAULT_MEMPOOL = @EINA_CONFIGURE_DEFAULT_MEMPOOL@ 149EINA_CONFIGURE_DEFAULT_MEMPOOL = @EINA_CONFIGURE_DEFAULT_MEMPOOL@
150EINA_CONFIGURE_ENABLE_LOG = @EINA_CONFIGURE_ENABLE_LOG@
150EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@ 151EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@
152EINA_CONFIGURE_HAVE_DIRENT_H = @EINA_CONFIGURE_HAVE_DIRENT_H@
151EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@ 153EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@
152EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@ 154EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@
153EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@ 155EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@
@@ -199,8 +201,6 @@ PACKAGE_URL = @PACKAGE_URL@
199PACKAGE_VERSION = @PACKAGE_VERSION@ 201PACKAGE_VERSION = @PACKAGE_VERSION@
200PATH_SEPARATOR = @PATH_SEPARATOR@ 202PATH_SEPARATOR = @PATH_SEPARATOR@
201PKG_CONFIG = @PKG_CONFIG@ 203PKG_CONFIG = @PKG_CONFIG@
202PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
203PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
204RANLIB = @RANLIB@ 204RANLIB = @RANLIB@
205SED = @SED@ 205SED = @SED@
206SET_MAKE = @SET_MAKE@ 206SET_MAKE = @SET_MAKE@
diff --git a/libraries/eina/src/examples/Makefile.am b/libraries/eina/src/examples/Makefile.am
index ea5ca6a..45b72f0 100644
--- a/libraries/eina/src/examples/Makefile.am
+++ b/libraries/eina/src/examples/Makefile.am
@@ -1,6 +1,6 @@
1MAINTAINERCLEANFILES = Makefile.in 1MAINTAINERCLEANFILES = Makefile.in
2 2
3pkglibdir = $(datadir)/$(PACKAGE)/examples 3examplesdir = $(datadir)/$(PACKAGE)/examples
4 4
5AM_CPPFLAGS = \ 5AM_CPPFLAGS = \
6-I. \ 6-I. \
@@ -39,7 +39,7 @@ SRCS = \
39 eina_strbuf_01.c \ 39 eina_strbuf_01.c \
40 eina_tiler_01.c 40 eina_tiler_01.c
41 41
42pkglib_PROGRAMS = 42examples_PROGRAMS =
43 43
44if EFL_INSTALL_EXAMPLES 44if EFL_INSTALL_EXAMPLES
45filesdir = $(datadir)/$(PACKAGE)/examples 45filesdir = $(datadir)/$(PACKAGE)/examples
@@ -47,9 +47,9 @@ files_DATA = $(SRCS)
47endif 47endif
48 48
49if EFL_BUILD_EXAMPLES 49if EFL_BUILD_EXAMPLES
50pkglib_PROGRAMS += \ 50examples_PROGRAMS += \
51 eina_accessor_01 \ 51 eina_accessor_01 \
52 eina_array_01 \ 52 eina_array_01 \
53 eina_array_02 \ 53 eina_array_02 \
54 eina_error_01 \ 54 eina_error_01 \
55 eina_file_01 \ 55 eina_file_01 \
@@ -77,7 +77,7 @@ pkglib_PROGRAMS += \
77 77
78if BUILD_TILER_EXAMPLE 78if BUILD_TILER_EXAMPLE
79AM_CPPFLAGS += @ECORE_EVAS_CFLAGS@ 79AM_CPPFLAGS += @ECORE_EVAS_CFLAGS@
80pkglib_PROGRAMS += eina_tiler_01 80examples_PROGRAMS += eina_tiler_01
81eina_tiler_01_LDADD = $(top_builddir)/src/lib/libeina.la @ECORE_EVAS_LIBS@ 81eina_tiler_01_LDADD = $(top_builddir)/src/lib/libeina.la @ECORE_EVAS_LIBS@
82endif 82endif
83 83
diff --git a/libraries/eina/src/examples/Makefile.in b/libraries/eina/src/examples/Makefile.in
index 3379e55..6e432bb 100644
--- a/libraries/eina/src/examples/Makefile.in
+++ b/libraries/eina/src/examples/Makefile.in
@@ -19,6 +19,7 @@
19VPATH = @srcdir@ 19VPATH = @srcdir@
20pkgdatadir = $(datadir)/@PACKAGE@ 20pkgdatadir = $(datadir)/@PACKAGE@
21pkgincludedir = $(includedir)/@PACKAGE@ 21pkgincludedir = $(includedir)/@PACKAGE@
22pkglibdir = $(libdir)/@PACKAGE@
22pkglibexecdir = $(libexecdir)/@PACKAGE@ 23pkglibexecdir = $(libexecdir)/@PACKAGE@
23am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd 24am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
24install_sh_DATA = $(install_sh) -c -m 644 25install_sh_DATA = $(install_sh) -c -m 644
@@ -34,10 +35,10 @@ PRE_UNINSTALL = :
34POST_UNINSTALL = : 35POST_UNINSTALL = :
35build_triplet = @build@ 36build_triplet = @build@
36host_triplet = @host@ 37host_triplet = @host@
37pkglib_PROGRAMS = $(am__EXEEXT_1) $(am__EXEEXT_2) 38examples_PROGRAMS = $(am__EXEEXT_1) $(am__EXEEXT_2)
38@EFL_BUILD_EXAMPLES_TRUE@am__append_1 = \ 39@EFL_BUILD_EXAMPLES_TRUE@am__append_1 = \
39@EFL_BUILD_EXAMPLES_TRUE@ eina_accessor_01 \ 40@EFL_BUILD_EXAMPLES_TRUE@ eina_accessor_01 \
40@EFL_BUILD_EXAMPLES_TRUE@ eina_array_01 \ 41@EFL_BUILD_EXAMPLES_TRUE@ eina_array_01 \
41@EFL_BUILD_EXAMPLES_TRUE@ eina_array_02 \ 42@EFL_BUILD_EXAMPLES_TRUE@ eina_array_02 \
42@EFL_BUILD_EXAMPLES_TRUE@ eina_error_01 \ 43@EFL_BUILD_EXAMPLES_TRUE@ eina_error_01 \
43@EFL_BUILD_EXAMPLES_TRUE@ eina_file_01 \ 44@EFL_BUILD_EXAMPLES_TRUE@ eina_file_01 \
@@ -115,8 +116,8 @@ CONFIG_CLEAN_VPATH_FILES =
115@EFL_BUILD_EXAMPLES_TRUE@ eina_str_01$(EXEEXT) \ 116@EFL_BUILD_EXAMPLES_TRUE@ eina_str_01$(EXEEXT) \
116@EFL_BUILD_EXAMPLES_TRUE@ eina_strbuf_01$(EXEEXT) 117@EFL_BUILD_EXAMPLES_TRUE@ eina_strbuf_01$(EXEEXT)
117@BUILD_TILER_EXAMPLE_TRUE@@EFL_BUILD_EXAMPLES_TRUE@am__EXEEXT_2 = eina_tiler_01$(EXEEXT) 118@BUILD_TILER_EXAMPLE_TRUE@@EFL_BUILD_EXAMPLES_TRUE@am__EXEEXT_2 = eina_tiler_01$(EXEEXT)
118am__installdirs = "$(DESTDIR)$(pkglibdir)" "$(DESTDIR)$(filesdir)" 119am__installdirs = "$(DESTDIR)$(examplesdir)" "$(DESTDIR)$(filesdir)"
119PROGRAMS = $(pkglib_PROGRAMS) 120PROGRAMS = $(examples_PROGRAMS)
120eina_accessor_01_SOURCES = eina_accessor_01.c 121eina_accessor_01_SOURCES = eina_accessor_01.c
121eina_accessor_01_OBJECTS = eina_accessor_01.$(OBJEXT) 122eina_accessor_01_OBJECTS = eina_accessor_01.$(OBJEXT)
122eina_accessor_01_LDADD = $(LDADD) 123eina_accessor_01_LDADD = $(LDADD)
@@ -294,7 +295,6 @@ DATA = $(files_DATA)
294ETAGS = etags 295ETAGS = etags
295CTAGS = ctags 296CTAGS = ctags
296DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) 297DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
297pkglibdir = $(datadir)/$(PACKAGE)/examples
298ACLOCAL = @ACLOCAL@ 298ACLOCAL = @ACLOCAL@
299ALLOCA = @ALLOCA@ 299ALLOCA = @ALLOCA@
300AMTAR = @AMTAR@ 300AMTAR = @AMTAR@
@@ -337,7 +337,9 @@ EFL_SIMD_FLAGS = @EFL_SIMD_FLAGS@
337EGREP = @EGREP@ 337EGREP = @EGREP@
338EINA_CFLAGS = @EINA_CFLAGS@ 338EINA_CFLAGS = @EINA_CFLAGS@
339EINA_CONFIGURE_DEFAULT_MEMPOOL = @EINA_CONFIGURE_DEFAULT_MEMPOOL@ 339EINA_CONFIGURE_DEFAULT_MEMPOOL = @EINA_CONFIGURE_DEFAULT_MEMPOOL@
340EINA_CONFIGURE_ENABLE_LOG = @EINA_CONFIGURE_ENABLE_LOG@
340EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@ 341EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@
342EINA_CONFIGURE_HAVE_DIRENT_H = @EINA_CONFIGURE_HAVE_DIRENT_H@
341EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@ 343EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@
342EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@ 344EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@
343EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@ 345EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@
@@ -389,8 +391,6 @@ PACKAGE_URL = @PACKAGE_URL@
389PACKAGE_VERSION = @PACKAGE_VERSION@ 391PACKAGE_VERSION = @PACKAGE_VERSION@
390PATH_SEPARATOR = @PATH_SEPARATOR@ 392PATH_SEPARATOR = @PATH_SEPARATOR@
391PKG_CONFIG = @PKG_CONFIG@ 393PKG_CONFIG = @PKG_CONFIG@
392PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
393PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
394RANLIB = @RANLIB@ 394RANLIB = @RANLIB@
395SED = @SED@ 395SED = @SED@
396SET_MAKE = @SET_MAKE@ 396SET_MAKE = @SET_MAKE@
@@ -465,6 +465,7 @@ top_builddir = @top_builddir@
465top_srcdir = @top_srcdir@ 465top_srcdir = @top_srcdir@
466version_info = @version_info@ 466version_info = @version_info@
467MAINTAINERCLEANFILES = Makefile.in 467MAINTAINERCLEANFILES = Makefile.in
468examplesdir = $(datadir)/$(PACKAGE)/examples
468AM_CPPFLAGS = -I. -I$(top_srcdir)/src/include \ 469AM_CPPFLAGS = -I. -I$(top_srcdir)/src/include \
469 -I$(top_builddir)/src/include $(am__append_2) 470 -I$(top_builddir)/src/include $(am__append_2)
470LDADD = \ 471LDADD = \
@@ -536,10 +537,10 @@ $(top_srcdir)/configure: $(am__configure_deps)
536$(ACLOCAL_M4): $(am__aclocal_m4_deps) 537$(ACLOCAL_M4): $(am__aclocal_m4_deps)
537 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh 538 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
538$(am__aclocal_m4_deps): 539$(am__aclocal_m4_deps):
539install-pkglibPROGRAMS: $(pkglib_PROGRAMS) 540install-examplesPROGRAMS: $(examples_PROGRAMS)
540 @$(NORMAL_INSTALL) 541 @$(NORMAL_INSTALL)
541 test -z "$(pkglibdir)" || $(MKDIR_P) "$(DESTDIR)$(pkglibdir)" 542 test -z "$(examplesdir)" || $(MKDIR_P) "$(DESTDIR)$(examplesdir)"
542 @list='$(pkglib_PROGRAMS)'; test -n "$(pkglibdir)" || list=; \ 543 @list='$(examples_PROGRAMS)'; test -n "$(examplesdir)" || list=; \
543 for p in $$list; do echo "$$p $$p"; done | \ 544 for p in $$list; do echo "$$p $$p"; done | \
544 sed 's/$(EXEEXT)$$//' | \ 545 sed 's/$(EXEEXT)$$//' | \
545 while read p p1; do if test -f $$p || test -f $$p1; \ 546 while read p p1; do if test -f $$p || test -f $$p1; \
@@ -556,23 +557,23 @@ install-pkglibPROGRAMS: $(pkglib_PROGRAMS)
556 while read type dir files; do \ 557 while read type dir files; do \
557 if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ 558 if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
558 test -z "$$files" || { \ 559 test -z "$$files" || { \
559 echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(pkglibdir)$$dir'"; \ 560 echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(examplesdir)$$dir'"; \
560 $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(pkglibdir)$$dir" || exit $$?; \ 561 $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(examplesdir)$$dir" || exit $$?; \
561 } \ 562 } \
562 ; done 563 ; done
563 564
564uninstall-pkglibPROGRAMS: 565uninstall-examplesPROGRAMS:
565 @$(NORMAL_UNINSTALL) 566 @$(NORMAL_UNINSTALL)
566 @list='$(pkglib_PROGRAMS)'; test -n "$(pkglibdir)" || list=; \ 567 @list='$(examples_PROGRAMS)'; test -n "$(examplesdir)" || list=; \
567 files=`for p in $$list; do echo "$$p"; done | \ 568 files=`for p in $$list; do echo "$$p"; done | \
568 sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ 569 sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
569 -e 's/$$/$(EXEEXT)/' `; \ 570 -e 's/$$/$(EXEEXT)/' `; \
570 test -n "$$list" || exit 0; \ 571 test -n "$$list" || exit 0; \
571 echo " ( cd '$(DESTDIR)$(pkglibdir)' && rm -f" $$files ")"; \ 572 echo " ( cd '$(DESTDIR)$(examplesdir)' && rm -f" $$files ")"; \
572 cd "$(DESTDIR)$(pkglibdir)" && rm -f $$files 573 cd "$(DESTDIR)$(examplesdir)" && rm -f $$files
573 574
574clean-pkglibPROGRAMS: 575clean-examplesPROGRAMS:
575 @list='$(pkglib_PROGRAMS)'; test -n "$$list" || exit 0; \ 576 @list='$(examples_PROGRAMS)'; test -n "$$list" || exit 0; \
576 echo " rm -f" $$list; \ 577 echo " rm -f" $$list; \
577 rm -f $$list || exit $$?; \ 578 rm -f $$list || exit $$?; \
578 test -n "$(EXEEXT)" || exit 0; \ 579 test -n "$(EXEEXT)" || exit 0; \
@@ -831,7 +832,7 @@ check-am: all-am
831check: check-am 832check: check-am
832all-am: Makefile $(PROGRAMS) $(DATA) 833all-am: Makefile $(PROGRAMS) $(DATA)
833installdirs: 834installdirs:
834 for dir in "$(DESTDIR)$(pkglibdir)" "$(DESTDIR)$(filesdir)"; do \ 835 for dir in "$(DESTDIR)$(examplesdir)" "$(DESTDIR)$(filesdir)"; do \
835 test -z "$$dir" || $(MKDIR_P) "$$dir"; \ 836 test -z "$$dir" || $(MKDIR_P) "$$dir"; \
836 done 837 done
837install: install-am 838install: install-am
@@ -862,7 +863,7 @@ maintainer-clean-generic:
862 -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) 863 -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
863clean: clean-am 864clean: clean-am
864 865
865clean-am: clean-generic clean-libtool clean-pkglibPROGRAMS \ 866clean-am: clean-examplesPROGRAMS clean-generic clean-libtool \
866 mostlyclean-am 867 mostlyclean-am
867 868
868distclean: distclean-am 869distclean: distclean-am
@@ -883,13 +884,13 @@ info: info-am
883 884
884info-am: 885info-am:
885 886
886install-data-am: install-filesDATA 887install-data-am: install-examplesPROGRAMS install-filesDATA
887 888
888install-dvi: install-dvi-am 889install-dvi: install-dvi-am
889 890
890install-dvi-am: 891install-dvi-am:
891 892
892install-exec-am: install-pkglibPROGRAMS 893install-exec-am:
893 894
894install-html: install-html-am 895install-html: install-html-am
895 896
@@ -929,24 +930,25 @@ ps: ps-am
929 930
930ps-am: 931ps-am:
931 932
932uninstall-am: uninstall-filesDATA uninstall-pkglibPROGRAMS 933uninstall-am: uninstall-examplesPROGRAMS uninstall-filesDATA
933 934
934.MAKE: install-am install-strip 935.MAKE: install-am install-strip
935 936
936.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ 937.PHONY: CTAGS GTAGS all all-am check check-am clean \
937 clean-libtool clean-pkglibPROGRAMS ctags distclean \ 938 clean-examplesPROGRAMS clean-generic clean-libtool ctags \
938 distclean-compile distclean-generic distclean-libtool \ 939 distclean distclean-compile distclean-generic \
939 distclean-tags distdir dvi dvi-am html html-am info info-am \ 940 distclean-libtool distclean-tags distdir dvi dvi-am html \
940 install install-am install-data install-data-am install-dvi \ 941 html-am info info-am install install-am install-data \
941 install-dvi-am install-exec install-exec-am install-filesDATA \ 942 install-data-am install-dvi install-dvi-am \
942 install-html install-html-am install-info install-info-am \ 943 install-examplesPROGRAMS install-exec install-exec-am \
943 install-man install-pdf install-pdf-am install-pkglibPROGRAMS \ 944 install-filesDATA install-html install-html-am install-info \
945 install-info-am install-man install-pdf install-pdf-am \
944 install-ps install-ps-am install-strip installcheck \ 946 install-ps install-ps-am install-strip installcheck \
945 installcheck-am installdirs maintainer-clean \ 947 installcheck-am installdirs maintainer-clean \
946 maintainer-clean-generic mostlyclean mostlyclean-compile \ 948 maintainer-clean-generic mostlyclean mostlyclean-compile \
947 mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ 949 mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
948 tags uninstall uninstall-am uninstall-filesDATA \ 950 tags uninstall uninstall-am uninstall-examplesPROGRAMS \
949 uninstall-pkglibPROGRAMS 951 uninstall-filesDATA
950 952
951 953
952# Tell versions [3.59,3.63) of GNU make to not export all variables. 954# Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/libraries/eina/src/examples/eina_array_01.c b/libraries/eina/src/examples/eina_array_01.c
index 25e0944..d93eb35 100644
--- a/libraries/eina/src/examples/eina_array_01.c
+++ b/libraries/eina/src/examples/eina_array_01.c
@@ -35,12 +35,12 @@ main(int argc, char **argv)
35 for (i = 0; i < 20; i++) 35 for (i = 0; i < 20; i++)
36 eina_array_push(array, strdup(strings[i])); 36 eina_array_push(array, strdup(strings[i]));
37 37
38 printf("array count: %d\n", eina_array_count_get(array)); 38 printf("array count: %d\n", eina_array_count(array));
39 eina_array_foreach(array, _print, NULL); 39 eina_array_foreach(array, _print, NULL);
40 40
41 printf("Top gun: %s\n", (char*)eina_array_data_get(array, 2)); 41 printf("Top gun: %s\n", (char*)eina_array_data_get(array, 2));
42 42
43 while (eina_array_count_get(array)) 43 while (eina_array_count(array))
44 free(eina_array_pop(array)); 44 free(eina_array_pop(array));
45 45
46 eina_array_free(array); 46 eina_array_free(array);
diff --git a/libraries/eina/src/include/Eina.h b/libraries/eina/src/include/Eina.h
index 68c41f5..721a991 100644
--- a/libraries/eina/src/include/Eina.h
+++ b/libraries/eina/src/include/Eina.h
@@ -47,7 +47,7 @@
47 * 47 *
48 * @version 1.1 48 * @version 1.1
49 * @date 2008-2011 49 * @date 2008-2011
50 * 50 *
51 * @section eina_intro_sec Introduction 51 * @section eina_intro_sec Introduction
52 * 52 *
53 * The Eina library is a library that implements an API for data types 53 * The Eina library is a library that implements an API for data types
@@ -59,10 +59,11 @@
59 * Linux, BSD, Opensolaris and Windows (XP and CE). 59 * Linux, BSD, Opensolaris and Windows (XP and CE).
60 * 60 *
61 * The data types that are available are (see @ref Eina_Data_Types_Group): 61 * The data types that are available are (see @ref Eina_Data_Types_Group):
62 * @li @ref Eina_Inline_Array_Group standard array of inlined members.
62 * @li @ref Eina_Array_Group standard array of @c void* data. 63 * @li @ref Eina_Array_Group standard array of @c void* data.
63 * @li @ref Eina_Hash_Group standard hash of @c void* data. 64 * @li @ref Eina_Hash_Group standard hash of @c void* data.
64 * @li @ref Eina_Inline_List_Group list with nodes inlined into user type. 65 * @li @ref Eina_Inline_List_Group list with nodes inlined into user type.
65 * @li @ref Eina_CList_Group compact inlined list. 66 * @li @ref Eina_CList_Group Compact List.
66 * @li @ref Eina_List_Group standard list of @c void* data. 67 * @li @ref Eina_List_Group standard list of @c void* data.
67 * @li @ref Eina_Iterator_Group Iterator functions. 68 * @li @ref Eina_Iterator_Group Iterator functions.
68 * @li @ref Eina_Matrixsparse_Group sparse matrix of @c void* data. 69 * @li @ref Eina_Matrixsparse_Group sparse matrix of @c void* data.
@@ -89,7 +90,7 @@
89 * 90 *
90 * Please see the @ref authors page for contact details. 91 * Please see the @ref authors page for contact details.
91 * 92 *
92 * @defgroup Eina_Data_Types_Group Data types 93 * @defgroup Eina_Data_Types_Group Data Types
93 * 94 *
94 * Eina provide easy to use and optimized data types and structures. 95 * Eina provide easy to use and optimized data types and structures.
95 * 96 *
@@ -158,6 +159,7 @@ extern "C" {
158#include "eina_mempool.h" 159#include "eina_mempool.h"
159#include "eina_error.h" 160#include "eina_error.h"
160#include "eina_log.h" 161#include "eina_log.h"
162#include "eina_inarray.h"
161#include "eina_array.h" 163#include "eina_array.h"
162#include "eina_binshare.h" 164#include "eina_binshare.h"
163#include "eina_stringshare.h" 165#include "eina_stringshare.h"
@@ -186,6 +188,7 @@ extern "C" {
186#include "eina_refcount.h" 188#include "eina_refcount.h"
187#include "eina_mmap.h" 189#include "eina_mmap.h"
188#include "eina_xattr.h" 190#include "eina_xattr.h"
191#include "eina_value.h"
189 192
190#ifdef __cplusplus 193#ifdef __cplusplus
191} 194}
diff --git a/libraries/eina/src/include/Makefile.am b/libraries/eina/src/include/Makefile.am
index 41a37cb..a818d5f 100644
--- a/libraries/eina/src/include/Makefile.am
+++ b/libraries/eina/src/include/Makefile.am
@@ -14,6 +14,8 @@ eina_hash.h \
14eina_inline_hash.x \ 14eina_inline_hash.x \
15eina_lalloc.h \ 15eina_lalloc.h \
16eina_clist.h \ 16eina_clist.h \
17eina_inline_clist.x \
18eina_inarray.h \
17eina_inlist.h \ 19eina_inlist.h \
18eina_list.h \ 20eina_list.h \
19eina_file.h \ 21eina_file.h \
@@ -60,7 +62,9 @@ eina_lock.h \
60eina_prefix.h \ 62eina_prefix.h \
61eina_refcount.h \ 63eina_refcount.h \
62eina_mmap.h \ 64eina_mmap.h \
63eina_xattr.h 65eina_xattr.h \
66eina_value.h \
67eina_inline_value.x
64 68
65# Will be back for developper after 1.1. 69# Will be back for developper after 1.1.
66# eina_object.h 70# eina_object.h
diff --git a/libraries/eina/src/include/Makefile.in b/libraries/eina/src/include/Makefile.in
index f6e0074..ea922e5 100644
--- a/libraries/eina/src/include/Makefile.in
+++ b/libraries/eina/src/include/Makefile.in
@@ -78,23 +78,24 @@ am__dist_installed_headers_DATA_DIST = eina_safety_checks.h \
78 eina_error.h eina_log.h eina_inline_log.x eina_fp.h \ 78 eina_error.h eina_log.h eina_inline_log.x eina_fp.h \
79 eina_inline_f32p32.x eina_inline_f16p16.x eina_inline_f8p24.x \ 79 eina_inline_f32p32.x eina_inline_f16p16.x eina_inline_f8p24.x \
80 eina_inline_fp.x eina_hash.h eina_inline_hash.x eina_lalloc.h \ 80 eina_inline_fp.x eina_hash.h eina_inline_hash.x eina_lalloc.h \
81 eina_clist.h eina_inlist.h eina_list.h eina_file.h \ 81 eina_clist.h eina_inline_clist.x eina_inarray.h eina_inlist.h \
82 eina_mempool.h eina_module.h eina_rectangle.h eina_types.h \ 82 eina_list.h eina_file.h eina_mempool.h eina_module.h \
83 eina_array.h eina_counter.h eina_inline_array.x eina_magic.h \ 83 eina_rectangle.h eina_types.h eina_array.h eina_counter.h \
84 eina_stringshare.h eina_binshare.h eina_binbuf.h \ 84 eina_inline_array.x eina_magic.h eina_stringshare.h \
85 eina_ustringshare.h eina_inline_stringshare.x \ 85 eina_binshare.h eina_binbuf.h eina_ustringshare.h \
86 eina_inline_ustringshare.x eina_inline_list.x eina_accessor.h \ 86 eina_inline_stringshare.x eina_inline_ustringshare.x \
87 eina_convert.h eina_rbtree.h eina_benchmark.h \ 87 eina_inline_list.x eina_accessor.h eina_convert.h \
88 eina_inline_rbtree.x eina_inline_mempool.x \ 88 eina_rbtree.h eina_benchmark.h eina_inline_rbtree.x \
89 eina_inline_rectangle.x eina_inline_trash.x eina_trash.h \ 89 eina_inline_mempool.x eina_inline_rectangle.x \
90 eina_iterator.h eina_main.h eina_cpu.h eina_sched.h \ 90 eina_inline_trash.x eina_trash.h eina_iterator.h eina_main.h \
91 eina_tiler.h eina_hamster.h eina_matrixsparse.h \ 91 eina_cpu.h eina_sched.h eina_tiler.h eina_hamster.h \
92 eina_inline_tiler.x eina_str.h eina_inline_str.x eina_strbuf.h \ 92 eina_matrixsparse.h eina_inline_tiler.x eina_str.h \
93 eina_ustrbuf.h eina_unicode.h eina_quadtree.h \ 93 eina_inline_str.x eina_strbuf.h eina_ustrbuf.h eina_unicode.h \
94 eina_simple_xml_parser.h eina_lock.h eina_prefix.h \ 94 eina_quadtree.h eina_simple_xml_parser.h eina_lock.h \
95 eina_refcount.h eina_mmap.h eina_xattr.h \ 95 eina_prefix.h eina_refcount.h eina_mmap.h eina_xattr.h \
96 eina_inline_lock_wince.x eina_inline_lock_win32.x \ 96 eina_value.h eina_inline_value.x eina_inline_lock_wince.x \
97 eina_inline_lock_posix.x eina_inline_lock_void.x 97 eina_inline_lock_win32.x eina_inline_lock_posix.x \
98 eina_inline_lock_void.x
98am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; 99am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
99am__vpath_adj = case $$p in \ 100am__vpath_adj = case $$p in \
100 $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ 101 $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
@@ -163,7 +164,9 @@ EFL_SIMD_FLAGS = @EFL_SIMD_FLAGS@
163EGREP = @EGREP@ 164EGREP = @EGREP@
164EINA_CFLAGS = @EINA_CFLAGS@ 165EINA_CFLAGS = @EINA_CFLAGS@
165EINA_CONFIGURE_DEFAULT_MEMPOOL = @EINA_CONFIGURE_DEFAULT_MEMPOOL@ 166EINA_CONFIGURE_DEFAULT_MEMPOOL = @EINA_CONFIGURE_DEFAULT_MEMPOOL@
167EINA_CONFIGURE_ENABLE_LOG = @EINA_CONFIGURE_ENABLE_LOG@
166EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@ 168EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@
169EINA_CONFIGURE_HAVE_DIRENT_H = @EINA_CONFIGURE_HAVE_DIRENT_H@
167EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@ 170EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@
168EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@ 171EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@
169EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@ 172EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@
@@ -215,8 +218,6 @@ PACKAGE_URL = @PACKAGE_URL@
215PACKAGE_VERSION = @PACKAGE_VERSION@ 218PACKAGE_VERSION = @PACKAGE_VERSION@
216PATH_SEPARATOR = @PATH_SEPARATOR@ 219PATH_SEPARATOR = @PATH_SEPARATOR@
217PKG_CONFIG = @PKG_CONFIG@ 220PKG_CONFIG = @PKG_CONFIG@
218PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
219PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
220RANLIB = @RANLIB@ 221RANLIB = @RANLIB@
221SED = @SED@ 222SED = @SED@
222SET_MAKE = @SET_MAKE@ 223SET_MAKE = @SET_MAKE@
@@ -295,10 +296,10 @@ EINAHEADERS = eina_safety_checks.h eina_error.h eina_log.h \
295 eina_inline_log.x eina_fp.h eina_inline_f32p32.x \ 296 eina_inline_log.x eina_fp.h eina_inline_f32p32.x \
296 eina_inline_f16p16.x eina_inline_f8p24.x eina_inline_fp.x \ 297 eina_inline_f16p16.x eina_inline_f8p24.x eina_inline_fp.x \
297 eina_hash.h eina_inline_hash.x eina_lalloc.h eina_clist.h \ 298 eina_hash.h eina_inline_hash.x eina_lalloc.h eina_clist.h \
298 eina_inlist.h eina_list.h eina_file.h eina_mempool.h \ 299 eina_inline_clist.x eina_inarray.h eina_inlist.h eina_list.h \
299 eina_module.h eina_rectangle.h eina_types.h eina_array.h \ 300 eina_file.h eina_mempool.h eina_module.h eina_rectangle.h \
300 eina_counter.h eina_inline_array.x eina_magic.h \ 301 eina_types.h eina_array.h eina_counter.h eina_inline_array.x \
301 eina_stringshare.h eina_binshare.h eina_binbuf.h \ 302 eina_magic.h eina_stringshare.h eina_binshare.h eina_binbuf.h \
302 eina_ustringshare.h eina_inline_stringshare.x \ 303 eina_ustringshare.h eina_inline_stringshare.x \
303 eina_inline_ustringshare.x eina_inline_list.x eina_accessor.h \ 304 eina_inline_ustringshare.x eina_inline_list.x eina_accessor.h \
304 eina_convert.h eina_rbtree.h eina_benchmark.h \ 305 eina_convert.h eina_rbtree.h eina_benchmark.h \
@@ -309,8 +310,9 @@ EINAHEADERS = eina_safety_checks.h eina_error.h eina_log.h \
309 eina_inline_tiler.x eina_str.h eina_inline_str.x eina_strbuf.h \ 310 eina_inline_tiler.x eina_str.h eina_inline_str.x eina_strbuf.h \
310 eina_ustrbuf.h eina_unicode.h eina_quadtree.h \ 311 eina_ustrbuf.h eina_unicode.h eina_quadtree.h \
311 eina_simple_xml_parser.h eina_lock.h eina_prefix.h \ 312 eina_simple_xml_parser.h eina_lock.h eina_prefix.h \
312 eina_refcount.h eina_mmap.h eina_xattr.h $(am__append_1) \ 313 eina_refcount.h eina_mmap.h eina_xattr.h eina_value.h \
313 $(am__append_2) $(am__append_3) $(am__append_4) 314 eina_inline_value.x $(am__append_1) $(am__append_2) \
315 $(am__append_3) $(am__append_4)
314installed_mainheaderdir = $(includedir)/eina-@VMAJ@ 316installed_mainheaderdir = $(includedir)/eina-@VMAJ@
315dist_installed_mainheader_DATA = Eina.h eina_config.h 317dist_installed_mainheader_DATA = Eina.h eina_config.h
316installed_headersdir = $(includedir)/eina-@VMAJ@/eina 318installed_headersdir = $(includedir)/eina-@VMAJ@/eina
diff --git a/libraries/eina/src/include/eina_array.h b/libraries/eina/src/include/eina_array.h
index d33f5e9..53183b4 100644
--- a/libraries/eina/src/include/eina_array.h
+++ b/libraries/eina/src/include/eina_array.h
@@ -31,7 +31,7 @@
31 31
32 32
33/** 33/**
34 * @page array_01_example_page Basic array usage 34 * @page eina_array_01_example_page Basic array usage
35 * @dontinclude eina_array_01.c 35 * @dontinclude eina_array_01.c
36 * 36 *
37 * For this example we add stdlib.h, stdio.h and string.h for some 37 * For this example we add stdlib.h, stdio.h and string.h for some
@@ -94,7 +94,7 @@
94 */ 94 */
95 95
96/** 96/**
97 * @page array_02_example_page Removing array elements 97 * @page eina_array_02_example_page Removing array elements
98 * @dontinclude eina_array_02.c 98 * @dontinclude eina_array_02.c
99 * 99 *
100 * Just the usual includes: 100 * Just the usual includes:
@@ -169,7 +169,7 @@
169 * element, use eina_array_push() and to remove the last element, use 169 * element, use eina_array_push() and to remove the last element, use
170 * eina_array_pop(). To retrieve the element at a given position, use 170 * eina_array_pop(). To retrieve the element at a given position, use
171 * eina_array_data_get(). The number of elements can be retrieved with 171 * eina_array_data_get(). The number of elements can be retrieved with
172 * eina_array_count_get(). 172 * eina_array_count().
173 * 173 *
174 * Eina_Array is different from a conventional C array in a number of ways, most 174 * Eina_Array is different from a conventional C array in a number of ways, most
175 * importantly they grow and shrink dynamically, this means that if you add an 175 * importantly they grow and shrink dynamically, this means that if you add an
@@ -191,8 +191,8 @@
191 * of void pointers. 191 * of void pointers.
192 * 192 *
193 * See here some examples: 193 * See here some examples:
194 * @li @ref array_01_example_page 194 * @li @ref eina_array_01_example_page
195 * @li @ref array_02_example_page 195 * @li @ref eina_array_02_example_page
196 */ 196 */
197 197
198/** 198/**
@@ -351,7 +351,8 @@ 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); 354static inline unsigned int eina_array_count_get(const Eina_Array *array) EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT EINA_DEPRECATED;
355static inline unsigned int eina_array_count(const Eina_Array *array) EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT;
355 356
356/** 357/**
357 * @brief Returned a new iterator associated to an array. 358 * @brief Returned a new iterator associated to an array.
@@ -394,7 +395,7 @@ EAPI Eina_Accessor *eina_array_accessor_new(const Eina_Array *array) EINA
394 */ 395 */
395static inline Eina_Bool eina_array_foreach(Eina_Array *array, 396static inline Eina_Bool eina_array_foreach(Eina_Array *array,
396 Eina_Each_Cb cb, 397 Eina_Each_Cb cb,
397 void *data); 398 void *fdata);
398/** 399/**
399 * @def EINA_ARRAY_ITER_NEXT 400 * @def EINA_ARRAY_ITER_NEXT
400 * @brief Macro to iterate over an array easily. 401 * @brief Macro to iterate over an array easily.
@@ -429,7 +430,7 @@ static inline Eina_Bool eina_array_foreach(Eina_Array *array,
429 */ 430 */
430#define EINA_ARRAY_ITER_NEXT(array, index, item, iterator) \ 431#define EINA_ARRAY_ITER_NEXT(array, index, item, iterator) \
431 for (index = 0, iterator = (array)->data; \ 432 for (index = 0, iterator = (array)->data; \
432 (index < eina_array_count_get(array)) && ((item = *((iterator)++))); \ 433 (index < eina_array_count(array)) && ((item = *((iterator)++))); \
433 ++(index)) 434 ++(index))
434 435
435#include "eina_inline_array.x" 436#include "eina_inline_array.x"
diff --git a/libraries/eina/src/include/eina_benchmark.h b/libraries/eina/src/include/eina_benchmark.h
index 721e1c0..9e96d64 100644
--- a/libraries/eina/src/include/eina_benchmark.h
+++ b/libraries/eina/src/include/eina_benchmark.h
@@ -398,9 +398,9 @@ EAPI void eina_benchmark_free(Eina_Benchmark *bench);
398 * 398 *
399 * This function adds the test named @p name to @p benchmark. @p 399 * This function adds the test named @p name to @p benchmark. @p
400 * bench_cb is the function called when the test is executed. That 400 * bench_cb is the function called when the test is executed. That
401 * test can be executed a certain amount of time. @p start, @p end and 401 * test can be executed a certain amount of time. @p count_start, @p count_end and
402 * @p step define a loop with a step increment. The integer that is 402 * @p count_step define a loop with a step increment. The integer that is
403 * increasing by @p step from @p start to @p end is passed to @p 403 * increasing by @p count_step from @p count_start to @p count_end is passed to @p
404 * bench_cb when eina_benchmark_run() is called. 404 * bench_cb when eina_benchmark_run() is called.
405 * 405 *
406 * If @p bench is @c NULL, this function returns imediatly. If the 406 * If @p bench is @c NULL, this function returns imediatly. If the
@@ -413,7 +413,7 @@ EAPI Eina_Bool eina_benchmark_register(Eina_Benchmark *bench,
413 Eina_Benchmark_Specimens bench_cb, 413 Eina_Benchmark_Specimens bench_cb,
414 int count_start, 414 int count_start,
415 int count_end, 415 int count_end,
416 int count_set); 416 int count_step);
417 417
418/** 418/**
419 * @brief Run the benchmark tests that have been registered. 419 * @brief Run the benchmark tests that have been registered.
diff --git a/libraries/eina/src/include/eina_binbuf.h b/libraries/eina/src/include/eina_binbuf.h
index 92f788e..7c3524b 100644
--- a/libraries/eina/src/include/eina_binbuf.h
+++ b/libraries/eina/src/include/eina_binbuf.h
@@ -49,6 +49,24 @@ typedef struct _Eina_Strbuf Eina_Binbuf;
49EAPI Eina_Binbuf *eina_binbuf_new(void) EINA_MALLOC EINA_WARN_UNUSED_RESULT; 49EAPI Eina_Binbuf *eina_binbuf_new(void) EINA_MALLOC EINA_WARN_UNUSED_RESULT;
50 50
51/** 51/**
52 * @brief Create a new string buffer using the passed string. The passed
53 * string is used directly as the buffer, it's somehow the opposite function of
54 * @ref eina_binbuf_string_steal . The passed string must be malloced.
55 *
56 * @param str the string to manage
57 * @param length the length of the string.
58 * @return Newly allocated string buffer instance.
59 *
60 * This function creates a new string buffer. On error, @c NULL is
61 * returned and Eina error is set to #EINA_ERROR_OUT_OF_MEMORY. To
62 * free the resources, use eina_binbuf_free().
63 *
64 * @see eina_binbuf_manage_new()
65 * @since 1.2.0
66 */
67EAPI Eina_Binbuf *eina_binbuf_manage_new_length(unsigned char *str, size_t length) EINA_MALLOC EINA_WARN_UNUSED_RESULT;
68
69/**
52 * @brief Free a string buffer. 70 * @brief Free a string buffer.
53 * 71 *
54 * @param buf The string buffer to free. 72 * @param buf The string buffer to free.
diff --git a/libraries/eina/src/include/eina_clist.h b/libraries/eina/src/include/eina_clist.h
index 68f15df..096a4b7 100644
--- a/libraries/eina/src/include/eina_clist.h
+++ b/libraries/eina/src/include/eina_clist.h
@@ -23,7 +23,22 @@
23#define __EINA_CLIST_H__ 23#define __EINA_CLIST_H__
24 24
25/** 25/**
26 * @addtogroup Eina_CList_Group Compact inline list 26 * @addtogroup Eina_Data_Types_Group Data Types
27 *
28 * @{
29 */
30
31/**
32 * @addtogroup Eina_Containers_Group Containers
33 *
34 * @{
35 */
36
37/**
38 * @defgroup Eina_CList_Group Compact List
39 *
40 * @{
41 *
27 * @brief Eina_Clist is a compact (inline) list implementation 42 * @brief Eina_Clist is a compact (inline) list implementation
28 * 43 *
29 * Elements of this list are members of the structs stored in the list 44 * Elements of this list are members of the structs stored in the list
@@ -42,9 +57,8 @@
42 * @note There's no NULL at the end of the list, the last item points to the head. 57 * @note There's no NULL at the end of the list, the last item points to the head.
43 * 58 *
44 * @note List heads must be initialized with EINA_CLIST_INIT or by calling eina_clist_element_init 59 * @note List heads must be initialized with EINA_CLIST_INIT or by calling eina_clist_element_init
45 */ 60 *
46 61 * Define a list like so:
47/* Define a list like so:
48 * 62 *
49 * @code 63 * @code
50 * struct gadget 64 * struct gadget
@@ -88,24 +102,6 @@
88 */ 102 */
89 103
90/** 104/**
91 * @addtogroup Eina_Data_Types_Group Data Types
92 *
93 * @{
94 */
95
96/**
97 * @addtogroup Eina_Containers_Group Containers
98 *
99 * @{
100 */
101
102/**
103 * @defgroup Eina_CList_Group Compact list
104 *
105 * @{
106 */
107
108/**
109 * @typedef Eina_Clist 105 * @typedef Eina_Clist
110 * This is the list head and the list entry. 106 * This is the list head and the list entry.
111 * @since 1.1.0 107 * @since 1.1.0
@@ -135,13 +131,7 @@ struct _Eina_Clist
135 * @note There's no need to initialize an element before adding it to the list. 131 * @note There's no need to initialize an element before adding it to the list.
136 * @since 1.1.0 132 * @since 1.1.0
137 */ 133 */
138static inline void eina_clist_add_after(Eina_Clist *elem, Eina_Clist *to_add) 134static inline void eina_clist_add_after(Eina_Clist *elem, Eina_Clist *to_add);
139{
140 to_add->next = elem->next;
141 to_add->prev = elem;
142 elem->next->prev = to_add;
143 elem->next = to_add;
144}
145 135
146/** 136/**
147 * Add an element before the specified one. 137 * Add an element before the specified one.
@@ -154,13 +144,7 @@ static inline void eina_clist_add_after(Eina_Clist *elem, Eina_Clist *to_add)
154 * @note There's no need to initialize an element before adding it to the list. 144 * @note There's no need to initialize an element before adding it to the list.
155 * @since 1.1.0 145 * @since 1.1.0
156 */ 146 */
157static inline void eina_clist_add_before(Eina_Clist *elem, Eina_Clist *to_add) 147static inline void eina_clist_add_before(Eina_Clist *elem, Eina_Clist *to_add);
158{
159 to_add->next = elem;
160 to_add->prev = elem->prev;
161 elem->prev->next = to_add;
162 elem->prev = to_add;
163}
164 148
165/** 149/**
166 * Add element at the head of the list. 150 * Add element at the head of the list.
@@ -173,10 +157,7 @@ static inline void eina_clist_add_before(Eina_Clist *elem, Eina_Clist *to_add)
173 * @note There's no need to initialize an element before adding it to the list. 157 * @note There's no need to initialize an element before adding it to the list.
174 * @since 1.1.0 158 * @since 1.1.0
175 */ 159 */
176static inline void eina_clist_add_head(Eina_Clist *list, Eina_Clist *elem) 160static inline void eina_clist_add_head(Eina_Clist *list, Eina_Clist *elem);
177{
178 eina_clist_add_after(list, elem);
179}
180 161
181/** 162/**
182 * Add element at the tail of the list. 163 * Add element at the tail of the list.
@@ -189,10 +170,7 @@ static inline void eina_clist_add_head(Eina_Clist *list, Eina_Clist *elem)
189 * @note There's no need to initialize an element before adding it to the list. 170 * @note There's no need to initialize an element before adding it to the list.
190 * @since 1.1.0 171 * @since 1.1.0
191 */ 172 */
192static inline void eina_clist_add_tail(Eina_Clist *list, Eina_Clist *elem) 173static inline void eina_clist_add_tail(Eina_Clist *list, Eina_Clist *elem);
193{
194 eina_clist_add_before(list, elem);
195}
196 174
197/** 175/**
198 * Init an (unlinked) element. 176 * Init an (unlinked) element.
@@ -207,11 +185,7 @@ static inline void eina_clist_add_tail(Eina_Clist *list, Eina_Clist *elem)
207 * @note It is not necessary to call this before adding an element to this list. 185 * @note It is not necessary to call this before adding an element to this list.
208 * @since 1.1.0 186 * @since 1.1.0
209 */ 187 */
210static inline void eina_clist_element_init(Eina_Clist *elem) 188static inline void eina_clist_element_init(Eina_Clist *elem);
211{
212 elem->next = NULL;
213 elem->prev = NULL;
214}
215 189
216/** 190/**
217 * Check if an element is in a list or not. 191 * Check if an element is in a list or not.
@@ -222,10 +196,7 @@ static inline void eina_clist_element_init(Eina_Clist *elem)
222 * it has been added to a list or remove from a list. 196 * it has been added to a list or remove from a list.
223 * @since 1.1.0 197 * @since 1.1.0
224 */ 198 */
225static inline int eina_clist_element_is_linked(Eina_Clist *elem) 199static inline int eina_clist_element_is_linked(Eina_Clist *elem);
226{
227 return (elem->next != NULL && elem->prev != NULL);
228}
229 200
230/** 201/**
231 * Remove an element from its list. 202 * Remove an element from its list.
@@ -235,12 +206,7 @@ static inline int eina_clist_element_is_linked(Eina_Clist *elem)
235 * @post The element is marked as not being in any list 206 * @post The element is marked as not being in any list
236 * @since 1.1.0 207 * @since 1.1.0
237 */ 208 */
238static inline void eina_clist_remove(Eina_Clist *elem) 209static inline void eina_clist_remove(Eina_Clist *elem);
239{
240 elem->next->prev = elem->prev;
241 elem->prev->next = elem->next;
242 eina_clist_element_init(elem);
243}
244 210
245/** 211/**
246 * Get the next element. 212 * Get the next element.
@@ -248,15 +214,10 @@ static inline void eina_clist_remove(Eina_Clist *elem)
248 * @param list The list 214 * @param list The list
249 * @param elem An element 215 * @param elem An element
250 * @pre @a elem is in @a list 216 * @pre @a elem is in @a list
251 * @return The element after @elem in @list or NULL if @a elem is last in @a list 217 * @return The element after @a elem in @a list or @c NULL if @a elem is last in @a list
252 * @since 1.1.0 218 * @since 1.1.0
253 */ 219 */
254static inline Eina_Clist *eina_clist_next(const Eina_Clist *list, const Eina_Clist *elem) 220static inline Eina_Clist *eina_clist_next(const Eina_Clist *list, const Eina_Clist *elem);
255{
256 Eina_Clist *ret = elem->next;
257 if (elem->next == list) ret = NULL;
258 return ret;
259}
260 221
261/** 222/**
262 * Get the previous element. 223 * Get the previous element.
@@ -267,12 +228,7 @@ static inline Eina_Clist *eina_clist_next(const Eina_Clist *list, const Eina_Cli
267 * @return The element before @a elem or NULL if @a elem is the first in the list 228 * @return The element before @a elem or NULL if @a elem is the first in the list
268 * @since 1.1.0 229 * @since 1.1.0
269 */ 230 */
270static inline Eina_Clist *eina_clist_prev(const Eina_Clist *list, const Eina_Clist *elem) 231static inline Eina_Clist *eina_clist_prev(const Eina_Clist *list, const Eina_Clist *elem);
271{
272 Eina_Clist *ret = elem->prev;
273 if (elem->prev == list) ret = NULL;
274 return ret;
275}
276 232
277/** 233/**
278 * Get the first element. 234 * Get the first element.
@@ -281,22 +237,16 @@ static inline Eina_Clist *eina_clist_prev(const Eina_Clist *list, const Eina_Cli
281 * @returns The first element in @a list or NULL if @a list is empty 237 * @returns The first element in @a list or NULL if @a list is empty
282 * @since 1.1.0 238 * @since 1.1.0
283 */ 239 */
284static inline Eina_Clist *eina_clist_head(const Eina_Clist *list) 240static inline Eina_Clist *eina_clist_head(const Eina_Clist *list);
285{
286 return eina_clist_next(list, list);
287}
288 241
289/** 242/**
290 * Get the last element. 243 * Get the last element.
291 * 244 *
292 * @param list The list 245 * @param list The list
293 * @returns The last element in @a list or NULL if @list is empty 246 * @returns The last element in @a list or NULL if @a list is empty
294 * @since 1.1.0 247 * @since 1.1.0
295 */ 248 */
296static inline Eina_Clist *eina_clist_tail(const Eina_Clist *list) 249static inline Eina_Clist *eina_clist_tail(const Eina_Clist *list);
297{
298 return eina_clist_prev(list, list);
299}
300 250
301/** 251/**
302 * Check if a list is empty. 252 * Check if a list is empty.
@@ -305,10 +255,7 @@ static inline Eina_Clist *eina_clist_tail(const Eina_Clist *list)
305 * @returns non-zero if @a list is empty, zero if it is not 255 * @returns non-zero if @a list is empty, zero if it is not
306 * @since 1.1.0 256 * @since 1.1.0
307 */ 257 */
308static inline int eina_clist_empty(const Eina_Clist *list) 258static inline int eina_clist_empty(const Eina_Clist *list);
309{
310 return list->next == list;
311}
312 259
313/** 260/**
314 * Initialize a list 261 * Initialize a list
@@ -322,10 +269,7 @@ static inline int eina_clist_empty(const Eina_Clist *list)
322 * initialize the list by zero'ing out the list head. 269 * initialize the list by zero'ing out the list head.
323 * @since 1.1.0 270 * @since 1.1.0
324 */ 271 */
325static inline void eina_clist_init(Eina_Clist *list) 272static inline void eina_clist_init(Eina_Clist *list);
326{
327 list->next = list->prev = list;
328}
329 273
330/** 274/**
331 * Count the elements of a list 275 * Count the elements of a list
@@ -334,13 +278,7 @@ static inline void eina_clist_init(Eina_Clist *list)
334 * @returns The number of items in the list 278 * @returns The number of items in the list
335 * @since 1.1.0 279 * @since 1.1.0
336 */ 280 */
337static inline unsigned int eina_clist_count(const Eina_Clist *list) 281static inline unsigned int eina_clist_count(const Eina_Clist *list);
338{
339 unsigned count = 0;
340 const Eina_Clist *ptr;
341 for (ptr = list->next; ptr != list; ptr = ptr->next) count++;
342 return count;
343}
344 282
345/** 283/**
346 * Move all elements from src to the tail of dst 284 * Move all elements from src to the tail of dst
@@ -351,16 +289,7 @@ static inline unsigned int eina_clist_count(const Eina_Clist *list)
351 * @post @a src is initialized but empty after this operation 289 * @post @a src is initialized but empty after this operation
352 * @since 1.1.0 290 * @since 1.1.0
353 */ 291 */
354static inline void eina_clist_move_tail(Eina_Clist *dst, Eina_Clist *src) 292static inline void eina_clist_move_tail(Eina_Clist *dst, Eina_Clist *src);
355{
356 if (eina_clist_empty(src)) return;
357
358 dst->prev->next = src->next;
359 src->next->prev = dst->prev;
360 dst->prev = src->prev;
361 src->prev->next = dst;
362 eina_clist_init(src);
363}
364 293
365/** 294/**
366 * move all elements from src to the head of dst 295 * move all elements from src to the head of dst
@@ -371,16 +300,7 @@ static inline void eina_clist_move_tail(Eina_Clist *dst, Eina_Clist *src)
371 * @post @a src is initialized but empty after this operation 300 * @post @a src is initialized but empty after this operation
372 * @since 1.1.0 301 * @since 1.1.0
373 */ 302 */
374static inline void eina_clist_move_head(Eina_Clist *dst, Eina_Clist *src) 303static inline void eina_clist_move_head(Eina_Clist *dst, Eina_Clist *src);
375{
376 if (eina_clist_empty(src)) return;
377
378 dst->next->prev = src->prev;
379 src->prev->next = dst->next;
380 dst->next = src->next;
381 src->next->prev = dst;
382 eina_clist_init(src);
383}
384 304
385/** 305/**
386 * iterate through the list 306 * iterate through the list
@@ -441,15 +361,17 @@ static inline void eina_clist_move_head(Eina_Clist *dst, Eina_Clist *src)
441#define EINA_CLIST_ENTRY(elem, type, field) \ 361#define EINA_CLIST_ENTRY(elem, type, field) \
442 ((type *)((char *)(elem) - (unsigned long)(&((type *)0)->field))) 362 ((type *)((char *)(elem) - (unsigned long)(&((type *)0)->field)))
443 363
444/* 364#include "eina_inline_clist.x"
365
366/**
445 * @} 367 * @}
446 */ 368 */
447 369
448/* 370/**
449 * @} 371 * @}
450 */ 372 */
451 373
452/* 374/**
453 * @} 375 * @}
454 */ 376 */
455 377
diff --git a/libraries/eina/src/include/eina_config.h b/libraries/eina/src/include/eina_config.h
index 3341731..474edaa 100644
--- a/libraries/eina/src/include/eina_config.h
+++ b/libraries/eina/src/include/eina_config.h
@@ -64,4 +64,14 @@
64#endif 64#endif
65 65
66 66
67#ifdef EINA_CONFIGURE_HAVE_DIRENT_H
68# undef EINA_CONFIGURE_HAVE_DIRENT_H
69#endif
70#define EINA_HAVE_DIRENT_H
71
72#ifdef EINA_CONFIGURE_ENABLE_LOG
73# undef EINA_CONFIGURE_ENABLE_LOG
74#endif
75#define EINA_ENABLE_LOG
76
67#endif /* EINA_CONFIG_H_ */ 77#endif /* EINA_CONFIG_H_ */
diff --git a/libraries/eina/src/include/eina_config.h.in b/libraries/eina/src/include/eina_config.h.in
index be328cd..2459ace 100644
--- a/libraries/eina/src/include/eina_config.h.in
+++ b/libraries/eina/src/include/eina_config.h.in
@@ -64,4 +64,14 @@
64#endif 64#endif
65@EINA_CONFIGURE_HAVE_ON_OFF_THREADS@ 65@EINA_CONFIGURE_HAVE_ON_OFF_THREADS@
66 66
67#ifdef EINA_CONFIGURE_HAVE_DIRENT_H
68# undef EINA_CONFIGURE_HAVE_DIRENT_H
69#endif
70@EINA_CONFIGURE_HAVE_DIRENT_H@
71
72#ifdef EINA_CONFIGURE_ENABLE_LOG
73# undef EINA_CONFIGURE_ENABLE_LOG
74#endif
75@EINA_CONFIGURE_ENABLE_LOG@
76
67#endif /* EINA_CONFIG_H_ */ 77#endif /* EINA_CONFIG_H_ */
diff --git a/libraries/eina/src/include/eina_file.h b/libraries/eina/src/include/eina_file.h
index 01ef8f5..422fb65 100644
--- a/libraries/eina/src/include/eina_file.h
+++ b/libraries/eina/src/include/eina_file.h
@@ -94,6 +94,9 @@ typedef struct _Eina_File_Direct_Info Eina_File_Direct_Info;
94 * @typedef Eina_File_Dir_List_Cb 94 * @typedef Eina_File_Dir_List_Cb
95 * Type for a callback to be called when iterating over the files of a 95 * Type for a callback to be called when iterating over the files of a
96 * directory. 96 * directory.
97 * @param The file name EXCLUDING the path
98 * @param path The path passed to eina_file_dir_list()
99 * @param data The data passed to eina_file_dir_list()
97 */ 100 */
98typedef void (*Eina_File_Dir_List_Cb)(const char *name, const char *path, void *data); 101typedef void (*Eina_File_Dir_List_Cb)(const char *name, const char *path, void *data);
99 102
@@ -345,6 +348,33 @@ EAPI time_t eina_file_mtime_get(Eina_File *file);
345EAPI const char *eina_file_filename_get(Eina_File *file); 348EAPI const char *eina_file_filename_get(Eina_File *file);
346 349
347/** 350/**
351 * @brief Get the eXtended attribute of an open file.
352 *
353 * @param file The file handler to request the eXtended attribute from.
354 * @return an iterator.
355 *
356 * The iterator will list all eXtended attribute name without allocating
357 * them, so you need to copy them yourself if needed.
358 *
359 * @since 1.2
360 */
361EAPI Eina_Iterator *eina_file_xattr_get(Eina_File *file);
362
363/**
364 * @brief Get the eXtended attribute of an open file.
365 *
366 * @param file The file handler to request the eXtended attribute from.
367 * @return an iterator.
368 *
369 * The iterator will list all eXtended attribute without allocating
370 * them, so you need to copy them yourself if needed. It is returning
371 * Eina_Xattr structure.
372 *
373 * @since 1.2
374 */
375EAPI Eina_Iterator *eina_file_xattr_value_get(Eina_File *file);
376
377/**
348 * @brief Map all the file to a buffer. 378 * @brief Map all the file to a buffer.
349 * 379 *
350 * @param file The file handler to map in memory 380 * @param file The file handler to map in memory
@@ -382,6 +412,16 @@ EAPI void *eina_file_map_new(Eina_File *file, Eina_File_Populate rule,
382EAPI void eina_file_map_free(Eina_File *file, void *map); 412EAPI void eina_file_map_free(Eina_File *file, void *map);
383 413
384/** 414/**
415 * @brief Tell if their was an IO error during the life of a mmaped file
416 *
417 * @param file The file handler to the mmaped file.
418 * @param map Memory map to check if an error occured on it.
419 *
420 * @since 1.2
421 */
422EAPI Eina_Bool eina_file_map_faulted(Eina_File *file, void *map);
423
424/**
385 * @} 425 * @}
386 */ 426 */
387 427
diff --git a/libraries/eina/src/include/eina_hash.h b/libraries/eina/src/include/eina_hash.h
index c8eb048..57316b2 100644
--- a/libraries/eina/src/include/eina_hash.h
+++ b/libraries/eina/src/include/eina_hash.h
@@ -578,7 +578,7 @@ EAPI Eina_Bool eina_hash_del(Eina_Hash *hash,
578 * otherwise. 578 * otherwise.
579 */ 579 */
580EAPI void *eina_hash_find(const Eina_Hash *hash, 580EAPI void *eina_hash_find(const Eina_Hash *hash,
581 const void *key) EINA_ARG_NONNULL(1, 2); 581 const void *key) EINA_ARG_NONNULL(2);
582 582
583/** 583/**
584 * @brief Modify the entry pointer at the specified key and return the old 584 * @brief Modify the entry pointer at the specified key and return the old
@@ -1005,7 +1005,7 @@ EAPI Eina_Iterator *eina_hash_iterator_tuple_new(const Eina_Hash *hash) EINA_MAL
1005 * @endcode 1005 * @endcode
1006 */ 1006 */
1007EAPI void eina_hash_foreach(const Eina_Hash *hash, 1007EAPI void eina_hash_foreach(const Eina_Hash *hash,
1008 Eina_Hash_Foreach cb, 1008 Eina_Hash_Foreach func,
1009 const void *fdata) EINA_ARG_NONNULL(1, 2); 1009 const void *fdata) EINA_ARG_NONNULL(1, 2);
1010/* Paul Hsieh (http://www.azillionmonkeys.com/qed/hash.html) hash function used by WebCore (http://webkit.org/blog/8/hashtables-part-2/) */ 1010/* Paul Hsieh (http://www.azillionmonkeys.com/qed/hash.html) hash function used by WebCore (http://webkit.org/blog/8/hashtables-part-2/) */
1011EAPI int eina_hash_superfast(const char *key, 1011EAPI int eina_hash_superfast(const char *key,
diff --git a/libraries/eina/src/include/eina_inarray.h b/libraries/eina/src/include/eina_inarray.h
new file mode 100644
index 0000000..d37c76b
--- /dev/null
+++ b/libraries/eina/src/include/eina_inarray.h
@@ -0,0 +1,572 @@
1/* EINA - EFL data type library
2 * Copyright (C) 2012 ProFUSION embedded systems
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library;
16 * if not, see <http://www.gnu.org/licenses/>.
17 */
18
19#ifndef EINA_INARRAY_H_
20#define EINA_INARRAY_H_
21
22#include "eina_types.h"
23#include "eina_iterator.h"
24#include "eina_accessor.h"
25
26/**
27 * @addtogroup Eina_Data_Types_Group Data Types
28 *
29 * @since 1.2
30 *
31 * @{
32 */
33
34/**
35 * @addtogroup Eina_Containers_Group Containers
36 *
37 * @{
38 */
39
40/**
41 * @defgroup Eina_Inline_Array_Group Inline Array
42 *
43 * @{
44 */
45
46
47/**
48 * @typedef Eina_Inarray
49 * Inlined array type.
50 *
51 * @since 1.2
52 */
53typedef struct _Eina_Inarray Eina_Inarray;
54
55/**
56 * Inline array structure, use #Eina_Inarray typedef instead.
57 *
58 * Do not modify these fields directly, use eina_inarray_setup() or
59 * eina_inarray_new() instead.
60 *
61 * @since 1.2
62 */
63struct _Eina_Inarray
64{
65 unsigned int member_size; /**< byte size of each entry in members */
66 unsigned int len; /**< number of elements used in members */
67 unsigned int max; /**< number of elements allocated in members */
68 unsigned int step; /**< amount to grow number of members allocated */
69 void *members; /**< actual array of elements */
70 EINA_MAGIC
71};
72
73/**
74 * @brief Create new inline array.
75 *
76 * @param member_size size of each member in the array.
77 * @param step when resizing the array, do this using the following
78 * extra amount.
79 * @return The new inline array table or @c NULL on failure.
80 *
81 * Create a new array where members are inlined in a sequence. Each
82 * member has @a member_size bytes.
83 *
84 * If the @a step is 0, then a safe default is chosen.
85 *
86 * On failure, @c NULL is returned and #EINA_ERROR_OUT_OF_MEMORY is
87 * set. If @a member_size is zero, then @c NULL is returned.
88 *
89 * @see eina_inarray_free()
90 *
91 * @since 1.2
92 */
93EAPI Eina_Inarray *eina_inarray_new(unsigned int member_size,
94 unsigned int step) EINA_MALLOC EINA_WARN_UNUSED_RESULT;
95
96/**
97 * @brief Free array and its members.
98 * @param array array object
99 *
100 * @see eina_inarray_flush()
101 *
102 * @since 1.2
103 */
104EAPI void eina_inarray_free(Eina_Inarray *array) EINA_ARG_NONNULL(1);
105
106/**
107 * @brief Initialize inline array.
108 * @param array array object to initialize.
109 * @param member_size size of each member in the array.
110 * @param step when resizing the array, do this using the following
111 * extra amount.
112 *
113 * Initialize array. If the @a step is 0, then a safe default is
114 * chosen.
115 *
116 * This is useful for arrays inlined into other structures or
117 * allocated at stack.
118 *
119 * @see eina_inarray_flush()
120 *
121 * @since 1.2
122 */
123EAPI void eina_inarray_setup(Eina_Inarray *array,
124 unsigned int member_size,
125 unsigned int step) EINA_ARG_NONNULL(1);
126
127/**
128 * @brief Remove every member from array.
129 * @param array array object
130 *
131 * @since 1.2
132 */
133EAPI void eina_inarray_flush(Eina_Inarray *array) EINA_ARG_NONNULL(1);
134
135/**
136 * @brief Copy the data as the last member of the array.
137 * @param array array object
138 * @param data data to be copied at the end
139 * @return the index of the new member or -1 on errors.
140 *
141 * Copies the given pointer contents at the end of the array. The
142 * pointer is not referenced, instead it's contents is copied to the
143 * members array using the previously defined @c member_size.
144 *
145 * @see eina_inarray_insert_at().
146 *
147 * @since 1.2
148 */
149EAPI int eina_inarray_append(Eina_Inarray *array,
150 const void *data) EINA_ARG_NONNULL(1, 2);
151
152/**
153 * @brief Copy the data to array at position found by comparison function
154 * @param array array object
155 * @param data data to be copied
156 * @param compare compare function
157 * @return the index of the new member or -1 on errors.
158 *
159 * Copies the given pointer contents at the array position defined by
160 * given @a compare function. The pointer is not referenced, instead
161 * it's contents is copied to the members array using the previously
162 * defined @c member_size.
163 *
164 * The data given to @a compare function are the pointer to member
165 * memory itself, do no change it.
166 *
167 * @see eina_inarray_insert_sorted()
168 * @see eina_inarray_insert_at()
169 * @see eina_inarray_append()
170 *
171 * @since 1.2
172 */
173EAPI int eina_inarray_insert(Eina_Inarray *array,
174 const void *data,
175 Eina_Compare_Cb compare) EINA_ARG_NONNULL(1, 2, 3);
176
177/**
178 * @brief Copy the data to array at position found by comparison function
179 * @param array array object
180 * @param data data to be copied
181 * @param compare compare function
182 * @return the index of the new member or -1 on errors.
183 *
184 * Copies the given pointer contents at the array position defined by
185 * given @a compare function. The pointer is not referenced, instead
186 * it's contents is copied to the members array using the previously
187 * defined @c member_size.
188 *
189 * The data given to @a compare function are the pointer to member
190 * memory itself, do no change it.
191 *
192 * This variation will optimize insertion position assuming the array
193 * is already sorted by doing binary search.
194 *
195 * @see eina_inarray_sort()
196 *
197 * @since 1.2
198 */
199EAPI int eina_inarray_insert_sorted(Eina_Inarray *array,
200 const void *data,
201 Eina_Compare_Cb compare) EINA_ARG_NONNULL(1, 2, 3);
202
203/**
204 * @brief Find data and remove matching member
205 * @param array array object
206 * @param data data to be found and removed
207 * @return the index of the removed member or -1 on errors.
208 *
209 * Find data in the array and remove it. Data may be an existing
210 * member of array (then optimized) or the contents will be matched
211 * using memcmp().
212 *
213 * @see eina_inarray_pop()
214 * @see eina_inarray_remove_at()
215 *
216 * @since 1.2
217 */
218EAPI int eina_inarray_remove(Eina_Inarray *array,
219 const void *data) EINA_ARG_NONNULL(1, 2);
220
221/**
222 * @brief Removes the last member of the array
223 * @param array array object
224 * @return the index of the removed member or -1 on errors.
225 *
226 * @since 1.2
227 */
228EAPI int eina_inarray_pop(Eina_Inarray *array) EINA_ARG_NONNULL(1);
229
230/**
231 * @brief Get the member at given position
232 * @param array array object
233 * @param position member position
234 * @return pointer to current member memory.
235 *
236 * Gets the member given its position in the array. It is a pointer to
237 * its current memory, then it can be invalidated with functions that
238 * changes the array such as eina_inarray_append(),
239 * eina_inarray_insert_at() or eina_inarray_remove_at() or variants.
240 *
241 * See also eina_inarray_lookup() and eina_inarray_lookup_sorted().
242 *
243 * @since 1.2
244 */
245EAPI void *eina_inarray_nth(const Eina_Inarray *array,
246 unsigned int position) EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT;
247
248/**
249 * @brief Copy the data at given position in the array
250 * @param array array object
251 * @param position where to insert the member
252 * @param data data to be copied at position
253 * @return #EINA_TRUE on success, #EINA_FALSE on failure.
254 *
255 * Copies the given pointer contents at the given @a position in the
256 * array. The pointer is not referenced, instead it's contents is
257 * copied to the members array using the previously defined
258 * @c member_size.
259 *
260 * All the members from @a position to the end of the array are
261 * shifted to the end.
262 *
263 * If @a position is equal to the end of the array (equals to
264 * eina_inarray_count()), then the member is appended.
265 *
266 * If @a position is bigger than the array length, it will fail.
267 *
268 * @since 1.2
269 */
270EAPI Eina_Bool eina_inarray_insert_at(Eina_Inarray *array,
271 unsigned int position,
272 const void *data) EINA_ARG_NONNULL(1, 3);
273
274/**
275 * @brief Opens a space at given position, returning its pointer.
276 * @param array array object
277 * @param position where to insert first member (open/allocate space)
278 * @param member_count how many times member_size bytes will be allocated.
279 * @return pointer to first member memory allocated or @c NULL on errors.
280 *
281 * This is similar to eina_inarray_insert_at(), but useful if the
282 * members contents are still unknown or unallocated. It will make
283 * room for the required number of items and return the pointer to the
284 * first item, similar to malloc(member_count * member_size), with the
285 * guarantee all memory is within members array.
286 *
287 * The new member memory is undefined, it's not automatically zeroed.
288 *
289 * All the members from @a position to the end of the array are
290 * shifted to the end.
291 *
292 * If @a position is equal to the end of the array (equals to
293 * eina_inarray_count()), then the member is appended.
294 *
295 * If @a position is bigger than the array length, it will fail.
296 *
297 * @since 1.2
298 */
299EAPI void *eina_inarray_alloc_at(Eina_Inarray *array,
300 unsigned int position,
301 unsigned int member_count) EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT;
302
303/**
304 * @brief Copy the data over the given position.
305 * @param array array object
306 * @param position where to replace the member
307 * @param data data to be copied at position
308 * @return #EINA_TRUE on success, #EINA_FALSE on failure.
309 *
310 * Copies the given pointer contents at the given @a position in the
311 * array. The pointer is not referenced, instead it's contents is
312 * copied to the members array using the previously defined
313 * @c member_size.
314 *
315 * If @a position does not exist, it will fail.
316 *
317 * @since 1.2
318 */
319EAPI Eina_Bool eina_inarray_replace_at(Eina_Inarray *array,
320 unsigned int position,
321 const void *data) EINA_ARG_NONNULL(1, 3);
322
323/**
324 * @brief Remove member at given position
325 * @param array array object
326 * @param position position to be removed
327 * @return #EINA_TRUE on success, #EINA_FALSE on failure.
328 *
329 * The member is removed from array and any members after it are moved
330 * towards the array head.
331 *
332 * See also eina_inarray_pop() and eina_inarray_remove().
333 *
334 * @since 1.2
335 */
336EAPI Eina_Bool eina_inarray_remove_at(Eina_Inarray *array,
337 unsigned int position) EINA_ARG_NONNULL(1);
338
339/**
340 * @brief Reverse members in the array.
341 * @param array array object
342 *
343 * If you do not want to change the array, just walk its elements
344 * backwards, then use EINA_INARRAY_REVERSE_FOREACH() macro.
345 *
346 * @see EINA_INARRAY_REVERSE_FOREACH()
347 *
348 * @since 1.2
349 */
350EAPI void eina_inarray_reverse(Eina_Inarray *array) EINA_ARG_NONNULL(1);
351
352/**
353 * @brief Applies quick sort to array
354 * @param array array object
355 * @param compare compare function
356 *
357 * Applies quick sort to the @a array.
358 *
359 * The data given to @a compare function are the pointer to member
360 * memory itself, do no change it.
361 *
362 * @see eina_inarray_insert_sorted()
363 *
364 * @since 1.2
365 */
366EAPI void eina_inarray_sort(Eina_Inarray *array,
367 Eina_Compare_Cb compare) EINA_ARG_NONNULL(1, 2);
368
369/**
370 * @brief Search member (linear walk)
371 * @param array array object
372 * @param data member to search using @a compare function.
373 * @param compare compare function
374 * @return the member index or -1 if not found.
375 *
376 * Walks array linearly looking for given data as compared by
377 * @a compare function.
378 *
379 * The data given to @a compare function are the pointer to member
380 * memory itself, do no change it.
381 *
382 * See also eina_inarray_lookup_sorted().
383 *
384 * @since 1.2
385 */
386EAPI int eina_inarray_search(const Eina_Inarray *array,
387 const void *data,
388 Eina_Compare_Cb compare) EINA_ARG_NONNULL(1, 2, 3);
389
390/**
391 * @brief Search member (binary search walk)
392 * @param array array object
393 * @param data member to search using @a compare function.
394 * @param compare compare function
395 * @return the member index or -1 if not found.
396 *
397 * Uses binary search for given data as compared by @a compare function.
398 *
399 * The data given to @a compare function are the pointer to member
400 * memory itself, do no change it.
401 *
402 * @since 1.2
403 */
404EAPI int eina_inarray_search_sorted(const Eina_Inarray *array,
405 const void *data,
406 Eina_Compare_Cb compare) EINA_ARG_NONNULL(1, 2, 3);
407
408/**
409 * @brief Call function for each array member
410 * @param array array object
411 * @param function callback function
412 * @param user_data user data given to callback @a function
413 * @return #EINA_TRUE if it successfully iterate all items of the array.
414 *
415 * Call @a function for every given data in @a array.
416 *
417 * Safe way to iterate over an array. @p function should return
418 * #EINA_TRUE as long as you want the function to continue iterating,
419 * by returning #EINA_FALSE it will stop and return #EINA_FALSE as a
420 * result.
421 *
422 * The data given to @a function are the pointer to member memory
423 * itself.
424 *
425 * @see EINA_INARRAY_FOREACH()
426 *
427 * @since 1.2
428 */
429EAPI Eina_Bool eina_inarray_foreach(const Eina_Inarray *array,
430 Eina_Each_Cb function,
431 const void *user_data) EINA_ARG_NONNULL(1, 2);
432
433/**
434 * @brief Remove all members that matched.
435 * @param array array object
436 * @param match match function
437 * @param user_data user data given to callback @a match.
438 * @return number of removed entries or -1 on error.
439 *
440 * Remove all entries in the @a array where @a match function
441 * returns #EINA_TRUE.
442 *
443 * @since 1.2
444 */
445EAPI int eina_inarray_foreach_remove(Eina_Inarray *array,
446 Eina_Each_Cb match,
447 const void *user_data) EINA_ARG_NONNULL(1, 2);
448
449/**
450 * @brief number of members in array.
451 * @param array array object
452 * @return number of members in array.
453 *
454 * @since 1.2
455 */
456EAPI unsigned int eina_inarray_count(const Eina_Inarray *array) EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT;
457
458/**
459 * @brief Returned a new iterator associated to an array.
460 * @param array array object
461 * @return A new iterator.
462 *
463 * This function returns a newly allocated iterator associated to
464 * @p array.
465 *
466 * If the memory can not be allocated, NULL is returned and
467 * #EINA_ERROR_OUT_OF_MEMORY is set. Otherwise, a valid iterator is
468 * returned.
469 *
470 * @warning if the array structure changes then the iterator becomes
471 * invalid! That is, if you add or remove members this
472 * iterator behavior is undefined and your program may crash!
473 *
474 * @since 1.2
475 */
476EAPI Eina_Iterator *eina_inarray_iterator_new(const Eina_Inarray *array) EINA_MALLOC EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
477
478/**
479 * @brief Returned a new reversed iterator associated to an array.
480 * @param array array object
481 * @return A new iterator.
482 *
483 * This function returns a newly allocated iterator associated to
484 * @p array.
485 *
486 * Unlike eina_inarray_iterator_new(), this will walk the array backwards.
487 *
488 * If the memory can not be allocated, NULL is returned and
489 * #EINA_ERROR_OUT_OF_MEMORY is set. Otherwise, a valid iterator is
490 * returned.
491 *
492 * @warning if the array structure changes then the iterator becomes
493 * invalid! That is, if you add or remove nodes this iterator
494 * behavior is undefined and your program may crash!
495 *
496 * @since 1.2
497 */
498EAPI Eina_Iterator *eina_inarray_iterator_reversed_new(const Eina_Inarray *array) EINA_MALLOC EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
499
500/**
501 * @brief Returned a new accessor associated to an array.
502 * @param array array object
503 * @return A new accessor.
504 *
505 * This function returns a newly allocated accessor associated to
506 * @p array.
507 *
508 * If the memory can not be allocated, NULL is returned and
509 * #EINA_ERROR_OUT_OF_MEMORY is set. Otherwise, a valid accessor is
510 * returned.
511 *
512 * @since 1.2
513 */
514EAPI Eina_Accessor *eina_inarray_accessor_new(const Eina_Inarray *array) EINA_MALLOC EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
515
516/**
517 * @def EINA_INARRAY_FOREACH
518 * @brief walks array linearly from head to tail
519 * @param array array object
520 * @param itr the iterator pointer
521 *
522 * @a itr must be a pointer with sizeof(itr*) == array->member_size.
523 *
524 * @warning This is fast as it does direct pointer access, but it will
525 * not check for @c NULL pointers or invalid array object!
526 * See eina_inarray_foreach() to do that.
527 *
528 * @warning Do not modify array as you walk it! If that is desired,
529 * then use eina_inarray_foreach_remove()
530 *
531 * @since 1.2
532 */
533#define EINA_INARRAY_FOREACH(array, itr) \
534 for ((itr) = array->members; \
535 (itr) < (((typeof(*itr)*)array->members) + array->len); \
536 (itr)++)
537
538/**
539 * @def EINA_INARRAY_REVERSE_FOREACH
540 * @brief walks array linearly from tail to head
541 * @param array array object
542 * @param itr the iterator pointer
543 *
544 * @a itr must be a pointer with sizeof(itr*) == array->member_size.
545 *
546 * @warning This is fast as it does direct pointer access, but it will
547 * not check for @c NULL pointers or invalid array object!
548 *
549 * @warning Do not modify array as you walk it! If that is desired,
550 * then use eina_inarray_foreach_remove()
551 *
552 * @since 1.2
553 */
554#define EINA_INARRAY_REVERSE_FOREACH(array, itr) \
555 for ((itr) = ((((typeof(*(itr))*)array->members) + array->len) - 1); \
556 (((itr) >= (typeof(*(itr))*)array->members) \
557 && (array->members != NULL)); \
558 (itr)--)
559
560/**
561 * @}
562 */
563
564/**
565 * @}
566 */
567
568/**
569 * @}
570 */
571
572#endif /*EINA_INARRAY_H_*/
diff --git a/libraries/eina/src/include/eina_inline_array.x b/libraries/eina/src/include/eina_inline_array.x
index f9f6026..a635ee2 100644
--- a/libraries/eina/src/include/eina_inline_array.x
+++ b/libraries/eina/src/include/eina_inline_array.x
@@ -19,6 +19,8 @@
19#ifndef EINA_INLINE_ARRAY_X_ 19#ifndef EINA_INLINE_ARRAY_X_
20#define EINA_INLINE_ARRAY_X_ 20#define EINA_INLINE_ARRAY_X_
21 21
22#include <stddef.h>
23
22#include <stdio.h> 24#include <stdio.h>
23 25
24/** 26/**
@@ -126,6 +128,8 @@ eina_array_data_set(const Eina_Array *array, unsigned int idx, const void *data)
126 * This function returns the number of elements in @p array. For 128 * This function returns the number of elements in @p array. For
127 * performance reasons, there is no check of @p array. If it is 129 * performance reasons, there is no check of @p array. If it is
128 * @c NULL or invalid, the program may crash. 130 * @c NULL or invalid, the program may crash.
131 *
132 * @deprecated use eina_array_count()
129 */ 133 */
130static inline unsigned int 134static inline unsigned int
131eina_array_count_get(const Eina_Array *array) 135eina_array_count_get(const Eina_Array *array)
@@ -133,6 +137,22 @@ eina_array_count_get(const Eina_Array *array)
133 return array->count; 137 return array->count;
134} 138}
135 139
140/**
141 * @brief Return the number of elements in an array.
142 *
143 * @param array The array.
144 * @return The number of elements.
145 *
146 * This function returns the number of elements in @p array. For
147 * performance reasons, there is no check of @p array. If it is
148 * @c NULL or invalid, the program may crash.
149 */
150static inline unsigned int
151eina_array_count(const Eina_Array *array)
152{
153 return array->count;
154}
155
136static inline Eina_Bool 156static inline Eina_Bool
137eina_array_foreach(Eina_Array *array, Eina_Each_Cb cb, void *fdata) 157eina_array_foreach(Eina_Array *array, Eina_Each_Cb cb, void *fdata)
138{ 158{
diff --git a/libraries/eina/src/include/eina_inline_clist.x b/libraries/eina/src/include/eina_inline_clist.x
new file mode 100644
index 0000000..66223fe
--- /dev/null
+++ b/libraries/eina/src/include/eina_inline_clist.x
@@ -0,0 +1,135 @@
1/*
2 * Linked lists support
3 *
4 * Copyright (C) 2002 Alexandre Julliard
5 * Copyright (C) 2011 Mike McCormack (adapted for Eina)
6 *
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
10 * version 2.1 of the License, or (at your option) any later version.
11 *
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with this library; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
20 */
21
22#ifndef __EINA_CLIST_INLINE_H__
23#define __EINA_CLIST_INLINE_H__
24
25#include <stddef.h>
26
27static inline void eina_clist_add_after(Eina_Clist *elem, Eina_Clist *to_add)
28{
29 to_add->next = elem->next;
30 to_add->prev = elem;
31 elem->next->prev = to_add;
32 elem->next = to_add;
33}
34
35static inline void eina_clist_add_before(Eina_Clist *elem, Eina_Clist *to_add)
36{
37 to_add->next = elem;
38 to_add->prev = elem->prev;
39 elem->prev->next = to_add;
40 elem->prev = to_add;
41}
42
43static inline void eina_clist_add_head(Eina_Clist *list, Eina_Clist *elem)
44{
45 eina_clist_add_after(list, elem);
46}
47
48static inline void eina_clist_add_tail(Eina_Clist *list, Eina_Clist *elem)
49{
50 eina_clist_add_before(list, elem);
51}
52
53static inline void eina_clist_element_init(Eina_Clist *elem)
54{
55 elem->next = NULL;
56 elem->prev = NULL;
57}
58
59static inline int eina_clist_element_is_linked(Eina_Clist *elem)
60{
61 return (elem->next != NULL && elem->prev != NULL);
62}
63
64static inline void eina_clist_remove(Eina_Clist *elem)
65{
66 elem->next->prev = elem->prev;
67 elem->prev->next = elem->next;
68 eina_clist_element_init(elem);
69}
70
71static inline Eina_Clist *eina_clist_next(const Eina_Clist *list, const Eina_Clist *elem)
72{
73 Eina_Clist *ret = elem->next;
74 if (elem->next == list) ret = NULL;
75 return ret;
76}
77
78static inline Eina_Clist *eina_clist_prev(const Eina_Clist *list, const Eina_Clist *elem)
79{
80 Eina_Clist *ret = elem->prev;
81 if (elem->prev == list) ret = NULL;
82 return ret;
83}
84
85static inline Eina_Clist *eina_clist_head(const Eina_Clist *list)
86{
87 return eina_clist_next(list, list);
88}
89
90static inline Eina_Clist *eina_clist_tail(const Eina_Clist *list)
91{
92 return eina_clist_prev(list, list);
93}
94
95static inline int eina_clist_empty(const Eina_Clist *list)
96{
97 return list->next == list;
98}
99
100static inline void eina_clist_init(Eina_Clist *list)
101{
102 list->next = list->prev = list;
103}
104
105static inline unsigned int eina_clist_count(const Eina_Clist *list)
106{
107 unsigned count = 0;
108 const Eina_Clist *ptr;
109 for (ptr = list->next; ptr != list; ptr = ptr->next) count++;
110 return count;
111}
112
113static inline void eina_clist_move_tail(Eina_Clist *dst, Eina_Clist *src)
114{
115 if (eina_clist_empty(src)) return;
116
117 dst->prev->next = src->next;
118 src->next->prev = dst->prev;
119 dst->prev = src->prev;
120 src->prev->next = dst;
121 eina_clist_init(src);
122}
123
124static inline void eina_clist_move_head(Eina_Clist *dst, Eina_Clist *src)
125{
126 if (eina_clist_empty(src)) return;
127
128 dst->next->prev = src->prev;
129 src->prev->next = dst->next;
130 dst->next = src->next;
131 src->next->prev = dst;
132 eina_clist_init(src);
133}
134
135#endif
diff --git a/libraries/eina/src/include/eina_inline_hash.x b/libraries/eina/src/include/eina_inline_hash.x
index f27060f..be20e8f 100644
--- a/libraries/eina/src/include/eina_inline_hash.x
+++ b/libraries/eina/src/include/eina_inline_hash.x
@@ -101,7 +101,7 @@ static inline unsigned int _fmix32(unsigned int h)
101 return h; 101 return h;
102} 102}
103 103
104int 104static inline int
105eina_hash_murmur3(const char *key, int len) 105eina_hash_murmur3(const char *key, int len)
106{ 106{
107 const unsigned char * data = (const unsigned char*)key; 107 const unsigned char * data = (const unsigned char*)key;
diff --git a/libraries/eina/src/include/eina_inline_lock_posix.x b/libraries/eina/src/include/eina_inline_lock_posix.x
index 77f5b8b..64e049a 100644
--- a/libraries/eina/src/include/eina_inline_lock_posix.x
+++ b/libraries/eina/src/include/eina_inline_lock_posix.x
@@ -19,6 +19,15 @@
19#ifndef EINA_INLINE_LOCK_POSIX_X_ 19#ifndef EINA_INLINE_LOCK_POSIX_X_
20#define EINA_INLINE_LOCK_POSIX_X_ 20#define EINA_INLINE_LOCK_POSIX_X_
21 21
22#ifdef EINA_UNUSED
23# undef EINA_UNUSED
24#endif
25#ifdef __GNUC__
26# define EINA_UNUSED __attribute__((unused))
27#else
28# define EINA_UNUSED
29#endif
30
22#include <errno.h> 31#include <errno.h>
23#ifndef __USE_UNIX98 32#ifndef __USE_UNIX98
24# define __USE_UNIX98 33# define __USE_UNIX98
@@ -28,7 +37,10 @@
28# include <pthread.h> 37# include <pthread.h>
29#endif 38#endif
30 39
40#include <semaphore.h>
41
31#include <sys/time.h> 42#include <sys/time.h>
43#include <stdio.h>
32 44
33#ifdef EINA_HAVE_DEBUG_THREADS 45#ifdef EINA_HAVE_DEBUG_THREADS
34#include <stdlib.h> 46#include <stdlib.h>
@@ -45,6 +57,7 @@ typedef struct _Eina_Lock Eina_Lock;
45typedef struct _Eina_RWLock Eina_RWLock; 57typedef struct _Eina_RWLock Eina_RWLock;
46typedef struct _Eina_Condition Eina_Condition; 58typedef struct _Eina_Condition Eina_Condition;
47typedef pthread_key_t Eina_TLS; 59typedef pthread_key_t Eina_TLS;
60typedef sem_t Eina_Semaphore;
48 61
49struct _Eina_Lock 62struct _Eina_Lock
50{ 63{
@@ -77,8 +90,6 @@ struct _Eina_RWLock
77EAPI extern Eina_Bool _eina_threads_activated; 90EAPI extern Eina_Bool _eina_threads_activated;
78 91
79#ifdef EINA_HAVE_DEBUG_THREADS 92#ifdef EINA_HAVE_DEBUG_THREADS
80# include <sys/time.h>
81
82EAPI extern int _eina_threads_debug; 93EAPI extern int _eina_threads_debug;
83EAPI extern pthread_t _eina_main_loop; 94EAPI extern pthread_t _eina_main_loop;
84EAPI extern pthread_mutex_t _eina_tracking_lock; 95EAPI extern pthread_mutex_t _eina_tracking_lock;
@@ -506,4 +517,40 @@ eina_tls_set(Eina_TLS key, const void *data)
506 return EINA_TRUE; 517 return EINA_TRUE;
507} 518}
508 519
520static inline Eina_Bool
521eina_semaphore_new(Eina_Semaphore *sem, int count_init)
522{
523 if (!sem || (count_init <= 0))
524 return EINA_FALSE;
525
526 return (sem_init(sem, count_init, 1) == 0) ? EINA_TRUE : EINA_FALSE;
527}
528
529static inline Eina_Bool
530eina_semaphore_free(Eina_Semaphore *sem)
531{
532 if (!sem)
533 return EINA_FALSE;
534
535 return (sem_destroy(sem) == 0) ? EINA_TRUE : EINA_FALSE;
536}
537
538static inline Eina_Bool
539eina_semaphore_lock(Eina_Semaphore *sem)
540{
541 if (!sem)
542 return EINA_FALSE;
543
544 return (sem_wait(sem) == 0) ? EINA_TRUE : EINA_FALSE;
545}
546
547static inline Eina_Bool
548eina_semaphore_release(Eina_Semaphore *sem, int count_release EINA_UNUSED)
549{
550 if (!sem)
551 return EINA_FALSE;
552
553 return (sem_post(sem) == 0) ? EINA_TRUE : EINA_FALSE;
554}
555
509#endif 556#endif
diff --git a/libraries/eina/src/include/eina_inline_lock_void.x b/libraries/eina/src/include/eina_inline_lock_void.x
index 8cb9a49..2f5209f 100644
--- a/libraries/eina/src/include/eina_inline_lock_void.x
+++ b/libraries/eina/src/include/eina_inline_lock_void.x
@@ -47,6 +47,7 @@ typedef void *Eina_Lock;
47typedef void *Eina_RWLock; 47typedef void *Eina_RWLock;
48typedef void *Eina_Condition; 48typedef void *Eina_Condition;
49typedef void *Eina_TLS; 49typedef void *Eina_TLS;
50typedef void *Eina_Semaphore;
50 51
51/** 52/**
52 * @brief Create a new #Eina_Lock. 53 * @brief Create a new #Eina_Lock.
@@ -63,7 +64,7 @@ typedef void *Eina_TLS;
63static inline Eina_Bool 64static inline Eina_Bool
64eina_lock_new(Eina_Lock *mutex EINA_UNUSED) 65eina_lock_new(Eina_Lock *mutex EINA_UNUSED)
65{ 66{
66 return EINA_FALSE; 67 return EINA_TRUE;
67} 68}
68 69
69/** 70/**
@@ -94,7 +95,7 @@ eina_lock_free(Eina_Lock *mutex EINA_UNUSED)
94static inline Eina_Lock_Result 95static inline Eina_Lock_Result
95eina_lock_take(Eina_Lock *mutex EINA_UNUSED) 96eina_lock_take(Eina_Lock *mutex EINA_UNUSED)
96{ 97{
97 return EINA_LOCK_FAIL; 98 return EINA_LOCK_SUCCEED;
98} 99}
99 100
100/** 101/**
@@ -115,7 +116,7 @@ eina_lock_take(Eina_Lock *mutex EINA_UNUSED)
115static inline Eina_Lock_Result 116static inline Eina_Lock_Result
116eina_lock_take_try(Eina_Lock *mutex EINA_UNUSED) 117eina_lock_take_try(Eina_Lock *mutex EINA_UNUSED)
117{ 118{
118 return EINA_LOCK_FAIL; 119 return EINA_LOCK_SUCCEED;
119} 120}
120 121
121/** 122/**
@@ -132,7 +133,7 @@ eina_lock_take_try(Eina_Lock *mutex EINA_UNUSED)
132static inline Eina_Lock_Result 133static inline Eina_Lock_Result
133eina_lock_release(Eina_Lock *mutex EINA_UNUSED) 134eina_lock_release(Eina_Lock *mutex EINA_UNUSED)
134{ 135{
135 return EINA_LOCK_FAIL; 136 return EINA_LOCK_SUCCEED;
136} 137}
137 138
138static inline void 139static inline void
@@ -143,7 +144,7 @@ eina_lock_debug(const Eina_Lock *mutex EINA_UNUSED)
143static inline Eina_Bool 144static inline Eina_Bool
144eina_condition_new(Eina_Condition *cond EINA_UNUSED, Eina_Lock *mutex EINA_UNUSED) 145eina_condition_new(Eina_Condition *cond EINA_UNUSED, Eina_Lock *mutex EINA_UNUSED)
145{ 146{
146 return EINA_FALSE; 147 return EINA_TRUE;
147} 148}
148 149
149static inline void 150static inline void
@@ -154,72 +155,72 @@ eina_condition_free(Eina_Condition *cond EINA_UNUSED)
154static inline Eina_Bool 155static inline Eina_Bool
155eina_condition_wait(Eina_Condition *cond EINA_UNUSED) 156eina_condition_wait(Eina_Condition *cond EINA_UNUSED)
156{ 157{
157 return EINA_FALSE; 158 return EINA_TRUE;
158} 159}
159 160
160static inline Eina_Bool 161static inline Eina_Bool
161eina_condition_timedwait(Eina_Condition *cond EINA_UNUSED, double val EINA_UNUSED) 162eina_condition_timedwait(Eina_Condition *cond EINA_UNUSED, double val EINA_UNUSED)
162{ 163{
163 return EINA_FALSE; 164 return EINA_TRUE;
164} 165}
165 166
166static inline Eina_Bool 167static inline Eina_Bool
167eina_condition_broadcast(Eina_Condition *cond EINA_UNUSED) 168eina_condition_broadcast(Eina_Condition *cond EINA_UNUSED)
168{ 169{
169 return EINA_FALSE; 170 return EINA_TRUE;
170} 171}
171 172
172static inline Eina_Bool 173static inline Eina_Bool
173eina_condition_signal(Eina_Condition *cond EINA_UNUSED) 174eina_condition_signal(Eina_Condition *cond EINA_UNUSED)
174{ 175{
175 return EINA_FALSE; 176 return EINA_TRUE;
176} 177}
177 178
178static inline Eina_Bool 179static inline Eina_Bool
179eina_rwlock_new(Eina_RWLock *mutex EINA_UNUSED) 180eina_rwlock_new(Eina_RWLock *mutex EINA_UNUSED)
180{ 181{
181 return EINA_FALSE; 182 return EINA_TRUE;
182} 183}
183 184
184static inline void 185static inline void
185 eina_rwlock_free(Eina_RWLock *mutex EINA_UNUSED) 186eina_rwlock_free(Eina_RWLock *mutex EINA_UNUSED)
186{ 187{
187} 188}
188 189
189static inline Eina_Lock_Result 190static inline Eina_Lock_Result
190eina_rwlock_read_take(Eina_RWLock *mutex EINA_UNUSED) 191eina_rwlock_read_take(Eina_RWLock *mutex EINA_UNUSED)
191{ 192{
192 return EINA_LOCK_FAIL; 193 return EINA_LOCK_SUCCEED;
193} 194}
194 195
195static inline Eina_Lock_Result 196static inline Eina_Lock_Result
196eina_rwlock_write_take(Eina_RWLock *mutex EINA_UNUSED) 197eina_rwlock_write_take(Eina_RWLock *mutex EINA_UNUSED)
197{ 198{
198 return EINA_LOCK_FAIL; 199 return EINA_LOCK_SUCCEED;
199} 200}
200 201
201static inline Eina_Lock_Result 202static inline Eina_Lock_Result
202eina_rwlock_release(Eina_RWLock *mutex EINA_UNUSED) 203eina_rwlock_release(Eina_RWLock *mutex EINA_UNUSED)
203{ 204{
204 return EINA_LOCK_FAIL; 205 return EINA_LOCK_SUCCEED;
205} 206}
206 207
207static inline Eina_Lock_Result 208static inline Eina_Lock_Result
208eina_rwlock_take_read(Eina_RWLock *mutex EINA_UNUSED) 209eina_rwlock_take_read(Eina_RWLock *mutex EINA_UNUSED)
209{ 210{
210 return EINA_LOCK_FAIL; 211 return EINA_LOCK_SUCCEED;
211} 212}
212 213
213static inline Eina_Lock_Result 214static inline Eina_Lock_Result
214eina_rwlock_take_write(Eina_RWLock *mutex EINA_UNUSED) 215eina_rwlock_take_write(Eina_RWLock *mutex EINA_UNUSED)
215{ 216{
216 return EINA_LOCK_FAIL; 217 return EINA_LOCK_SUCCEED;
217} 218}
218 219
219static inline Eina_Bool 220static inline Eina_Bool
220eina_tls_new(Eina_TLS *key EINA_UNUSED) 221eina_tls_new(Eina_TLS *key EINA_UNUSED)
221{ 222{
222 return EINA_FALSE; 223 return EINA_TRUE;
223} 224}
224 225
225static inline void 226static inline void
@@ -236,9 +237,34 @@ eina_tls_get(Eina_TLS key EINA_UNUSED)
236static inline Eina_Bool 237static inline Eina_Bool
237eina_tls_set(Eina_TLS key EINA_UNUSED, const void *data EINA_UNUSED) 238eina_tls_set(Eina_TLS key EINA_UNUSED, const void *data EINA_UNUSED)
238{ 239{
239 return EINA_FALSE; 240 return EINA_TRUE;
240} 241}
241 242
243static inline Eina_Bool
244eina_semaphore_new(Eina_Semaphore *sem EINA_UNUSED,
245 int count_init EINA_UNUSED)
246{
247 return EINA_TRUE;
248}
249
250static inline Eina_Bool
251eina_semaphore_free(Eina_Semaphore *sem EINA_UNUSED)
252{
253 return EINA_TRUE;
254}
255
256static inline Eina_Bool
257eina_semaphore_lock(Eina_Semaphore *sem EINA_UNUSED)
258{
259 return EINA_TRUE;
260}
261
262static inline Eina_Bool
263eina_semaphore_release(Eina_Semaphore *sem EINA_UNUSED,
264 int count_release EINA_UNUSED)
265{
266 return EINA_TRUE;
267}
242 268
243/** 269/**
244 * @} 270 * @}
diff --git a/libraries/eina/src/include/eina_inline_lock_win32.x b/libraries/eina/src/include/eina_inline_lock_win32.x
index 072095c..e8363d5 100644
--- a/libraries/eina/src/include/eina_inline_lock_win32.x
+++ b/libraries/eina/src/include/eina_inline_lock_win32.x
@@ -58,6 +58,8 @@ struct _Eina_Win32_RWLock
58 58
59typedef DWORD Eina_TLS; 59typedef DWORD Eina_TLS;
60 60
61typedef HANDLE Eina_Semaphore;
62
61EAPI extern Eina_Bool _eina_threads_activated; 63EAPI extern Eina_Bool _eina_threads_activated;
62 64
63static inline Eina_Bool 65static inline Eina_Bool
@@ -463,4 +465,48 @@ eina_tls_set(Eina_TLS key, const void *data)
463 return EINA_TRUE; 465 return EINA_TRUE;
464} 466}
465 467
468static inline Eina_Bool
469eina_semaphore_new(Eina_Semaphore *sem, int count_init)
470{
471 if (!sem || (count_init <= 0))
472 return EINA_FALSE;
473
474 *sem = CreateSemaphore(NULL, count_init, 32767, NULL);
475 if (!*sem)
476 return EINA_FALSE;
477}
478
479static inline Eina_Bool
480eina_semaphore_free(Eina_Semaphore *sem)
481{
482 if (!sem)
483 return EINA_FALSE;
484
485 CloseHandle(*sem);
486}
487
488static inline Eina_Bool
489eina_semaphore_lock(Eina_Semaphore *sem)
490{
491 DWORD res;
492
493 if (!sem)
494 return EINA_FALSE;
495
496 res = WaitForSingleObject(*sem, 0L);
497 if (res == WAIT_OBJECT_0)
498 return EINA_TRUE;
499
500 return EINA_FALSE;
501}
502
503static inline Eina_Bool
504eina_semaphore_release(Eina_Semaphore *sem, int count_release)
505{
506 if (!sem)
507 return EINA_FALSE;
508
509 return ReleaseSemaphore(*sem, count_release, NULL) ? EINA_TRUE : EINA_FALSE;
510}
511
466#endif 512#endif
diff --git a/libraries/eina/src/include/eina_inline_lock_wince.x b/libraries/eina/src/include/eina_inline_lock_wince.x
index 965d475..1af1aac 100644
--- a/libraries/eina/src/include/eina_inline_lock_wince.x
+++ b/libraries/eina/src/include/eina_inline_lock_wince.x
@@ -19,6 +19,15 @@
19#ifndef EINA_INLINE_LOCK_WIN32_X_ 19#ifndef EINA_INLINE_LOCK_WIN32_X_
20#define EINA_INLINE_LOCK_WIN32_X_ 20#define EINA_INLINE_LOCK_WIN32_X_
21 21
22#ifdef EINA_UNUSED
23# undef EINA_UNUSED
24#endif
25#ifdef __GNUC__
26# define EINA_UNUSED __attribute__((unused))
27#else
28# define EINA_UNUSED
29#endif
30
22#include <windows.h> 31#include <windows.h>
23 32
24EAPI extern Eina_Bool _threads_activated; 33EAPI extern Eina_Bool _threads_activated;
@@ -26,6 +35,7 @@ EAPI extern Eina_Bool _threads_activated;
26typedef HANDLE Eina_Lock; 35typedef HANDLE Eina_Lock;
27typedef Eina_Lock Eina_RWLock; 36typedef Eina_Lock Eina_RWLock;
28typedef DWORD Eina_TLS; 37typedef DWORD Eina_TLS;
38typedef void * Eina_Semaphore;
29 39
30static inline Eina_Bool 40static inline Eina_Bool
31eina_lock_new(Eina_Lock *mutex) 41eina_lock_new(Eina_Lock *mutex)
@@ -173,6 +183,30 @@ eina_tls_set(Eina_TLS key, const void *data)
173 return EINA_TRUE; 183 return EINA_TRUE;
174} 184}
175 185
186static inline Eina_Bool
187eina_semaphore_new(Eina_Semaphore *sem EINA_UNUSED,
188 int count_init EINA_UNUSED)
189{
190 return EINA_FALSE;
191}
176 192
193static inline Eina_Bool
194eina_semaphore_free(Eina_Semaphore *sem EINA_UNUSED)
195{
196 return EINA_FALSE;
197}
198
199static inline Eina_Bool
200eina_semaphore_lock(Eina_Semaphore *sem EINA_UNUSED)
201{
202 return EINA_FALSE;
203}
204
205static inline Eina_Bool
206eina_semaphore_release(Eina_Semaphore *sem EINA_UNUSED,
207 int count_release EINA_UNUSED)
208{
209 return EINA_FALSE;
210}
177 211
178#endif 212#endif
diff --git a/libraries/eina/src/include/eina_inline_log.x b/libraries/eina/src/include/eina_inline_log.x
index 4cdd7d8..53d8afb 100644
--- a/libraries/eina/src/include/eina_inline_log.x
+++ b/libraries/eina/src/include/eina_inline_log.x
@@ -49,7 +49,7 @@
49static inline Eina_Bool 49static inline Eina_Bool
50eina_log_level_check(int level) 50eina_log_level_check(int level)
51{ 51{
52 return eina_log_level_get() <= level; 52 return eina_log_level_get() >= level;
53} 53}
54 54
55/** 55/**
@@ -81,7 +81,7 @@ eina_log_domain_level_check(int domain, int level)
81 int dom_level = eina_log_domain_registered_level_get(domain); 81 int dom_level = eina_log_domain_registered_level_get(domain);
82 if (EINA_UNLIKELY(dom_level == EINA_LOG_LEVEL_UNKNOWN)) 82 if (EINA_UNLIKELY(dom_level == EINA_LOG_LEVEL_UNKNOWN))
83 return EINA_FALSE; 83 return EINA_FALSE;
84 return dom_level <= level; 84 return dom_level >= level;
85} 85}
86 86
87/** 87/**
diff --git a/libraries/eina/src/include/eina_inline_mempool.x b/libraries/eina/src/include/eina_inline_mempool.x
index a67ec3d..729a669 100644
--- a/libraries/eina/src/include/eina_inline_mempool.x
+++ b/libraries/eina/src/include/eina_inline_mempool.x
@@ -19,6 +19,8 @@
19#ifndef EINA_INLINE_MEMPOOL_X_ 19#ifndef EINA_INLINE_MEMPOOL_X_
20#define EINA_INLINE_MEMPOOL_X_ 20#define EINA_INLINE_MEMPOOL_X_
21 21
22#include <string.h>
23
22/** 24/**
23 * @addtogroup Eina_Memory_Pool_Group Memory Pool 25 * @addtogroup Eina_Memory_Pool_Group Memory Pool
24 * 26 *
@@ -67,17 +69,16 @@ struct _Eina_Mempool
67}; 69};
68 70
69/** 71/**
70 * @brief Re-allocate a amount memory by the given mempool. 72 * @brief Re-allocate an amount memory by the given mempool.
71 * 73 *
72 * @param mp The mempool. 74 * @param mp The mempool.
73 * @param element The element to re-allocate. 75 * @param element The element to re-allocate.
74 * @param size The size in bytes to re-allocate. 76 * @param size The size in bytes to re-allocate.
75 * @return The newly re-allocated data. 77 * @return The newly re-allocated data.
76 * 78 *
77 * This function re-allocates @p element with @p size bytes, using the 79 * This function re-allocates and returns @p element with @p size bytes using the
78 * mempool @p mp and returns the allocated data. If not used anymore, 80 * mempool @p mp. If not used anymore, the data must be freed with eina_mempool_free().
79 * the data must be freed with eina_mempool_free(). No check is done 81 * @warning No checks are done for @p mp.
80 * on @p mp, so it must be a valid mempool.
81 */ 82 */
82static inline void * 83static inline void *
83eina_mempool_realloc(Eina_Mempool *mp, void *element, unsigned int size) 84eina_mempool_realloc(Eina_Mempool *mp, void *element, unsigned int size)
@@ -86,16 +87,15 @@ eina_mempool_realloc(Eina_Mempool *mp, void *element, unsigned int size)
86} 87}
87 88
88/** 89/**
89 * @brief Allocate a amount memory by the given mempool. 90 * @brief Allocate memory using the given mempool.
90 * 91 *
91 * @param mp The mempool. 92 * @param mp The mempool.
92 * @param size The size in bytes to allocate. 93 * @param size The size in bytes to allocate.
93 * @return The newly allocated data. 94 * @return The newly allocated data.
94 * 95 *
95 * This function allocates @p size bytes, using the mempool @p mp and 96 * This function allocates and returns @p size bytes using the mempool @p mp.
96 * returns the allocated data. If not used anymore, the data must be 97 * If not used anymore, the data must be freed with eina_mempool_free().
97 * freed with eina_mempool_free(). No check is done on @p mp, so it 98 * @warning No checks are done for @p mp.
98 * must be a valid mempool.
99 */ 99 */
100static inline void * 100static inline void *
101eina_mempool_malloc(Eina_Mempool *mp, unsigned int size) 101eina_mempool_malloc(Eina_Mempool *mp, unsigned int size)
@@ -104,15 +104,36 @@ eina_mempool_malloc(Eina_Mempool *mp, unsigned int size)
104} 104}
105 105
106/** 106/**
107 * @brief Free the allocated ressources by the given mempool. 107 * @brief Allocate and zero memory using the given mempool.
108 *
109 * @param mp The mempool.
110 * @param size The size in bytes to allocate.
111 * @return The newly allocated data.
112 *
113 * This function allocates, zeroes, and returns @p size bytes using the mempool @p mp.
114 * If not used anymore, the data must be freed with eina_mempool_free().
115 * @warning No checks are done for @p mp.
116 * @since 1.2
117 */
118static inline void *
119eina_mempool_calloc(Eina_Mempool *mp, unsigned int size)
120{
121 void *r = mp->backend.alloc(mp->backend_data, size);
122 if (!r) return NULL;
123 memset(r, 0, size);
124 return r;
125}
126
127/**
128 * @brief Free resources previously allocated by the given mempool.
108 * 129 *
109 * @param mp The mempool. 130 * @param mp The mempool.
110 * @param element The data to free. 131 * @param element The data to free.
111 * 132 *
112 * This function frees @p element allocated by @p mp. @p element must 133 * This function frees @p element allocated by @p mp. @p element must
113 * have been obtained by eina_mempool_malloc() or 134 * have been obtained from eina_mempool_malloc(), eina_mempool_calloc(), or
114 * eina_mempool_realloc(). No check is done on @p mp, so it must be a 135 * eina_mempool_realloc().
115 * valid mempool. 136 * @warning No checks are done for @p mp.
116 */ 137 */
117static inline void 138static inline void
118eina_mempool_free(Eina_Mempool *mp, void *element) 139eina_mempool_free(Eina_Mempool *mp, void *element)
diff --git a/libraries/eina/src/include/eina_inline_value.x b/libraries/eina/src/include/eina_inline_value.x
new file mode 100644
index 0000000..59ec315
--- /dev/null
+++ b/libraries/eina/src/include/eina_inline_value.x
@@ -0,0 +1,1705 @@
1/* Eina - EFL data type library
2 * Copyright (C) 2012 ProFUSION embedded systems
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library;
16 * if not, see <http://www.gnu.org/licenses/>.
17 */
18
19#ifndef EINA_INLINE_VALUE_X_
20#define EINA_INLINE_VALUE_X_
21
22#include <string.h>
23#include <alloca.h>
24
25#include "eina_stringshare.h"
26
27/* NOTE: most of value is implemented here for performance reasons */
28
29//#define EINA_VALUE_NO_OPTIMIZE 1
30#ifdef EINA_VALUE_NO_OPTIMIZE
31#define EINA_VALUE_TYPE_DEFAULT(type) (0)
32#else
33
34/**
35 * @var _EINA_VALUE_TYPE_BASICS_START
36 * pointer to the first basic type.
37 * @since 1.2
38 * @private
39 */
40EAPI extern const Eina_Value_Type *_EINA_VALUE_TYPE_BASICS_START;
41
42/**
43 * @var _EINA_VALUE_TYPE_BASICS_END
44 * pointer to the last (inclusive) basic type.
45 * @since 1.2
46 * @private
47 */
48EAPI extern const Eina_Value_Type *_EINA_VALUE_TYPE_BASICS_END;
49#define EINA_VALUE_TYPE_DEFAULT(type) \
50 ((_EINA_VALUE_TYPE_BASICS_START <= type) && \
51 (type <= _EINA_VALUE_TYPE_BASICS_END))
52#endif
53
54#define EINA_VALUE_TYPE_CHECK_RETURN(value) \
55 EINA_SAFETY_ON_NULL_RETURN(value); \
56 EINA_SAFETY_ON_FALSE_RETURN(eina_value_type_check(value->type))
57
58#define EINA_VALUE_TYPE_CHECK_RETURN_VAL(value, retval) \
59 EINA_SAFETY_ON_NULL_RETURN_VAL(value, retval); \
60 EINA_SAFETY_ON_FALSE_RETURN_VAL(eina_value_type_check(value->type), retval)
61
62#define EINA_VALUE_TYPE_DISPATCH(type, method, no_method_err, ...) \
63 do \
64 { \
65 if (type->method) \
66 type->method(type, ##__VA_ARGS__); \
67 else \
68 eina_error_set(no_method_err); \
69 } \
70 while (0)
71
72#define EINA_VALUE_TYPE_DISPATCH_RETURN(value, method, no_method_err, def_ret, ...) \
73 do \
74 { \
75 if (type->method) \
76 return type->method(type, ##__VA_ARGS__); \
77 eina_error_set(no_method_err); \
78 return def_ret; \
79 } \
80 while (0)
81
82/**
83 * @brief Get memory for given value (inline or allocated buffer).
84 * @since 1.2
85 * @private
86 */
87static inline void *
88eina_value_memory_get(const Eina_Value *value)
89{
90 if (value->type->value_size <= 8)
91 return (void *)value->value.buf;
92 return value->value.ptr;
93}
94
95/**
96 * @brief Allocate memory for internal value types.
97 * @since 1.2
98 * @private
99 */
100EAPI void *eina_value_inner_alloc(size_t size);
101/**
102 * @brief Releases memory for internal value types.
103 * @since 1.2
104 * @private
105 */
106EAPI void eina_value_inner_free(size_t size, void *mem);
107
108static inline Eina_Bool
109eina_value_setup(Eina_Value *value, const Eina_Value_Type *type)
110{
111 void *mem;
112
113 EINA_SAFETY_ON_FALSE_RETURN_VAL(eina_value_type_check(type), EINA_FALSE);
114 EINA_SAFETY_ON_FALSE_RETURN_VAL(type->value_size > 0, EINA_FALSE);
115
116 value->type = type;
117
118 if (type->value_size <= 8) mem = &value->value;
119 else
120 {
121 mem = value->value.ptr = eina_value_inner_alloc(type->value_size);
122 EINA_SAFETY_ON_NULL_RETURN_VAL(mem, EINA_FALSE);
123 }
124
125 memset(mem, 0, type->value_size);
126
127 if (EINA_VALUE_TYPE_DEFAULT(type))
128 {
129 eina_error_set(0);
130 return EINA_TRUE;
131 }
132
133 EINA_VALUE_TYPE_DISPATCH_RETURN(type, setup,
134 EINA_ERROR_VALUE_FAILED, EINA_FALSE, mem);
135}
136
137static inline void
138eina_value_flush(Eina_Value *value)
139{
140 const Eina_Value_Type *type;
141 void *mem;
142
143 EINA_VALUE_TYPE_CHECK_RETURN(value);
144
145 type = value->type;
146 mem = eina_value_memory_get(value);
147
148 if (EINA_VALUE_TYPE_DEFAULT(type))
149 {
150 if (type == EINA_VALUE_TYPE_STRINGSHARE)
151 {
152 if (value->value.ptr) eina_stringshare_del((const char*) value->value.ptr);
153 }
154 else if (type == EINA_VALUE_TYPE_STRING)
155 {
156 if (value->value.ptr) free(value->value.ptr);
157 }
158 else if (type->value_size > 8)
159 eina_value_inner_free(type->value_size, mem);
160 eina_error_set(0);
161 return;
162 }
163
164 EINA_VALUE_TYPE_DISPATCH(type, flush, EINA_ERROR_VALUE_FAILED, mem);
165 if (type->value_size > 8)
166 eina_value_inner_free(type->value_size, mem);
167 value->type = NULL;
168}
169
170static inline int
171eina_value_compare(const Eina_Value *a, const Eina_Value *b)
172{
173 const Eina_Value_Type *type;
174 void *pa, *pb;
175
176 EINA_VALUE_TYPE_CHECK_RETURN_VAL(a, -1);
177 EINA_SAFETY_ON_NULL_RETURN_VAL(b, -1);
178 EINA_SAFETY_ON_FALSE_RETURN_VAL(a->type == b->type, -1);
179
180 eina_error_set(0);
181 type = a->type;
182 pa = eina_value_memory_get(a);
183 pb = eina_value_memory_get(b);
184
185#ifndef EINA_VALUE_NO_OPTIMIZE
186 if (type == EINA_VALUE_TYPE_UCHAR)
187 {
188 unsigned char *ta = (unsigned char *) pa, *tb = (unsigned char *) pb;
189 if (*ta < *tb)
190 return -1;
191 else if (*ta > *tb)
192 return 1;
193 return 0;
194 }
195 else if (type == EINA_VALUE_TYPE_USHORT)
196 {
197 unsigned short *ta = (unsigned short *) pa, *tb = (unsigned short *) pb;
198 if (*ta < *tb)
199 return -1;
200 else if (*ta > *tb)
201 return 1;
202 return 0;
203 }
204 else if (type == EINA_VALUE_TYPE_UINT)
205 {
206 unsigned int *ta = (unsigned int *) pa, *tb = (unsigned int *) pb;
207 if (*ta < *tb)
208 return -1;
209 else if (*ta > *tb)
210 return 1;
211 return 0;
212 }
213 else if (type == EINA_VALUE_TYPE_ULONG)
214 {
215 unsigned long *ta = (unsigned long *) pa, *tb = (unsigned long *) pb;
216 if (*ta < *tb)
217 return -1;
218 else if (*ta > *tb)
219 return 1;
220 return 0;
221 }
222 else if (type == EINA_VALUE_TYPE_UINT64)
223 {
224 uint64_t *ta = (uint64_t *) pa, *tb = (uint64_t *) pb;
225 if (*ta < *tb)
226 return -1;
227 else if (*ta > *tb)
228 return 1;
229 return 0;
230 }
231 else if (type == EINA_VALUE_TYPE_CHAR)
232 {
233 char *ta = (char *) pa, *tb = (char *) pb;
234 if (*ta < *tb)
235 return -1;
236 else if (*ta > *tb)
237 return 1;
238 return 0;
239 }
240 else if (type == EINA_VALUE_TYPE_SHORT)
241 {
242 short *ta = (short *) pa, *tb = (short *) pb;
243 if (*ta < *tb)
244 return -1;
245 else if (*ta > *tb)
246 return 1;
247 return 0;
248 }
249 else if (type == EINA_VALUE_TYPE_INT)
250 {
251 int *ta = (int *) pa, *tb = (int *) pb;
252 if (*ta < *tb)
253 return -1;
254 else if (*ta > *tb)
255 return 1;
256 return 0;
257 }
258 else if (type == EINA_VALUE_TYPE_LONG)
259 {
260 long *ta = (long *) pa, *tb = (long *) pb;
261 if (*ta < *tb)
262 return -1;
263 else if (*ta > *tb)
264 return 1;
265 return 0;
266 }
267 else if (type == EINA_VALUE_TYPE_INT64)
268 {
269 int64_t *ta = (int64_t *) pa, *tb = (int64_t *) pb;
270 if (*ta < *tb)
271 return -1;
272 else if (*ta > *tb)
273 return 1;
274 return 0;
275 }
276 else if (type == EINA_VALUE_TYPE_FLOAT)
277 {
278 float *ta = (float *) pa, *tb = (float *) pb;
279 if (*ta < *tb)
280 return -1;
281 else if (*ta > *tb)
282 return 1;
283 return 0;
284 }
285 else if (type == EINA_VALUE_TYPE_DOUBLE)
286 {
287 double *ta = (double *) pa, *tb = (double *) pb;
288 if (*ta < *tb)
289 return -1;
290 else if (*ta > *tb)
291 return 1;
292 return 0;
293 }
294 else if (type == EINA_VALUE_TYPE_STRINGSHARE ||
295 type == EINA_VALUE_TYPE_STRING)
296 {
297 const char *sa = *(const char **)pa;
298 const char *sb = *(const char **)pb;
299 if (sa == sb)
300 return 0;
301 if (sa == NULL)
302 return -1;
303 if (sb == NULL)
304 return 1;
305 return strcmp(sa, sb);
306 }
307#endif
308
309 EINA_VALUE_TYPE_DISPATCH_RETURN(type, compare, EINA_ERROR_VALUE_FAILED,
310 EINA_FALSE, pa, pb);
311}
312
313static inline Eina_Bool
314eina_value_set(Eina_Value *value, ...)
315{
316 va_list args;
317 Eina_Bool ret;
318 va_start(args, value);
319 ret = eina_value_vset(value, args);
320 va_end(args);
321 return ret;
322}
323
324static inline Eina_Bool
325eina_value_get(const Eina_Value *value, ...)
326{
327 va_list args;
328 Eina_Bool ret;
329 va_start(args, value);
330 ret = eina_value_vget(value, args);
331 va_end(args);
332 return ret;
333}
334
335static inline Eina_Bool
336eina_value_vset(Eina_Value *value, va_list args)
337{
338 const Eina_Value_Type *type;
339 void *mem;
340
341 EINA_VALUE_TYPE_CHECK_RETURN_VAL(value, EINA_FALSE);
342
343 type = value->type;
344 mem = eina_value_memory_get(value);
345 eina_error_set(0);
346#ifndef EINA_VALUE_NO_OPTIMIZE
347 if (type == EINA_VALUE_TYPE_UCHAR)
348 {
349 unsigned char *tmem = (unsigned char *) mem;
350 *tmem = va_arg(args, unsigned int); /* promoted by va_arg */
351 return EINA_TRUE;
352 }
353 else if (type == EINA_VALUE_TYPE_USHORT)
354 {
355 unsigned short *tmem = (unsigned short *) mem;
356 *tmem = va_arg(args, unsigned int); /* promoted by va_arg */
357 return EINA_TRUE;
358 }
359 else if (type == EINA_VALUE_TYPE_UINT)
360 {
361 unsigned int *tmem = (unsigned int *) mem;
362 *tmem = va_arg(args, unsigned int);
363 return EINA_TRUE;
364 }
365 else if (type == EINA_VALUE_TYPE_ULONG)
366 {
367 unsigned long *tmem = (unsigned long *) mem;
368 *tmem = va_arg(args, unsigned long);
369 return EINA_TRUE;
370 }
371 else if (type == EINA_VALUE_TYPE_UINT64)
372 {
373 uint64_t *tmem = (uint64_t *) mem;
374 *tmem = va_arg(args, uint64_t);
375 return EINA_TRUE;
376 }
377 else if (type == EINA_VALUE_TYPE_CHAR)
378 {
379 char *tmem = (char *) mem;
380 *tmem = va_arg(args, int); /* promoted by va_arg */
381 return EINA_TRUE;
382 }
383 else if (type == EINA_VALUE_TYPE_SHORT)
384 {
385 short *tmem = (short *) mem;
386 *tmem = va_arg(args, int); /* promoted by va_arg */
387 return EINA_TRUE;
388 }
389 else if (type == EINA_VALUE_TYPE_INT)
390 {
391 int *tmem = (int *) mem;
392 *tmem = va_arg(args, int);
393 return EINA_TRUE;
394 }
395 else if (type == EINA_VALUE_TYPE_LONG)
396 {
397 long *tmem = (long *) mem;
398 *tmem = va_arg(args, long);
399 return EINA_TRUE;
400 }
401 else if (type == EINA_VALUE_TYPE_INT64)
402 {
403 int64_t *tmem = (int64_t *) mem;
404 *tmem = va_arg(args, int64_t);
405 return EINA_TRUE;
406 }
407 else if (type == EINA_VALUE_TYPE_FLOAT)
408 {
409 float *tmem = (float *) mem;
410 *tmem = va_arg(args, double); /* promoted by va_arg */
411 return EINA_TRUE;
412 }
413 else if (type == EINA_VALUE_TYPE_DOUBLE)
414 {
415 double *tmem = (double *) mem;
416 *tmem = va_arg(args, double);
417 return EINA_TRUE;
418 }
419 else if (type == EINA_VALUE_TYPE_STRINGSHARE)
420 {
421 const char *str = (const char *) va_arg(args, const char *);
422 return eina_stringshare_replace((const char **)&value->value.ptr, str);
423 }
424 else if (type == EINA_VALUE_TYPE_STRING)
425 {
426 const char *str = (const char *) va_arg(args, const char *);
427 free(value->value.ptr);
428 if (!str)
429 value->value.ptr = NULL;
430 else
431 {
432 value->value.ptr = strdup(str);
433 if (!value->value.ptr)
434 {
435 eina_error_set(EINA_ERROR_OUT_OF_MEMORY);
436 return EINA_FALSE;
437 }
438 }
439 return EINA_TRUE;
440 }
441#endif
442
443 EINA_VALUE_TYPE_DISPATCH_RETURN(value, vset, EINA_ERROR_VALUE_FAILED,
444 EINA_FALSE, mem, args);
445}
446
447static inline Eina_Bool
448eina_value_vget(const Eina_Value *value, va_list args)
449{
450 const Eina_Value_Type *type;
451 const void *mem;
452 void *ptr;
453
454 EINA_VALUE_TYPE_CHECK_RETURN_VAL(value, EINA_FALSE);
455
456 type = value->type;
457 mem = eina_value_memory_get(value);
458 ptr = va_arg(args, void *);
459 eina_error_set(0);
460 if (EINA_VALUE_TYPE_DEFAULT(type))
461 {
462 memcpy(ptr, mem, type->value_size);
463 return EINA_TRUE;
464 }
465
466 EINA_VALUE_TYPE_DISPATCH_RETURN(value, pget, EINA_ERROR_VALUE_FAILED,
467 EINA_FALSE, mem, ptr);
468}
469
470static inline Eina_Bool
471eina_value_pset(Eina_Value *value, const void *ptr)
472{
473 const Eina_Value_Type *type;
474 void *mem;
475
476 EINA_VALUE_TYPE_CHECK_RETURN_VAL(value, EINA_FALSE);
477 EINA_SAFETY_ON_NULL_RETURN_VAL(ptr, EINA_FALSE);
478
479 type = value->type;
480 mem = eina_value_memory_get(value);
481 eina_error_set(0);
482
483 if (EINA_VALUE_TYPE_DEFAULT(type))
484 {
485 if (type == EINA_VALUE_TYPE_STRINGSHARE)
486 {
487 const char * const *pstr = (const char * const *) ptr;
488 const char *str = *pstr;
489
490 return eina_stringshare_replace((const char **)&value->value.ptr,
491 str);
492 }
493 else if (type == EINA_VALUE_TYPE_STRING)
494 {
495 const char * const * pstr = (const char * const *) ptr;
496 const char *str = *pstr;
497
498 free(value->value.ptr);
499 if (!str)
500 value->value.ptr = NULL;
501 else
502 {
503 value->value.ptr = strdup(str);
504 if (!value->value.ptr)
505 {
506 eina_error_set(EINA_ERROR_OUT_OF_MEMORY);
507 return EINA_FALSE;
508 }
509 }
510 return EINA_TRUE;
511 }
512 else
513 memcpy(mem, ptr, type->value_size);
514 return EINA_TRUE;
515 }
516
517 EINA_VALUE_TYPE_DISPATCH_RETURN(value, pset, EINA_ERROR_VALUE_FAILED,
518 EINA_FALSE, mem, ptr);
519}
520
521static inline Eina_Bool
522eina_value_pget(const Eina_Value *value, void *ptr)
523{
524 const Eina_Value_Type *type;
525 const void *mem;
526
527 EINA_VALUE_TYPE_CHECK_RETURN_VAL(value, EINA_FALSE);
528 EINA_SAFETY_ON_NULL_RETURN_VAL(ptr, EINA_FALSE);
529
530 type = value->type;
531 mem = eina_value_memory_get(value);
532 eina_error_set(0);
533 if (EINA_VALUE_TYPE_DEFAULT(type))
534 {
535 memcpy(ptr, mem, type->value_size);
536 return EINA_TRUE;
537 }
538
539 EINA_VALUE_TYPE_DISPATCH_RETURN(value, pget, EINA_ERROR_VALUE_FAILED,
540 EINA_FALSE, mem, ptr);
541}
542
543static inline const Eina_Value_Type *
544eina_value_type_get(const Eina_Value *value)
545{
546 EINA_VALUE_TYPE_CHECK_RETURN_VAL(value, NULL);
547 return value->type;
548}
549
550#define EINA_VALUE_TYPE_ARRAY_CHECK_RETURN_VAL(value, retval) \
551 EINA_SAFETY_ON_NULL_RETURN_VAL(value, retval); \
552 EINA_SAFETY_ON_FALSE_RETURN_VAL(value->type == EINA_VALUE_TYPE_ARRAY, retval)
553
554static inline Eina_Bool
555eina_value_array_setup(Eina_Value *value, const Eina_Value_Type *subtype, unsigned int step)
556{
557 Eina_Value_Array desc = { subtype, step, NULL };
558 if (!eina_value_setup(value, EINA_VALUE_TYPE_ARRAY))
559 return EINA_FALSE;
560 if (!eina_value_pset(value, &desc))
561 {
562 eina_value_flush(value);
563 return EINA_FALSE;
564 }
565 return EINA_TRUE;
566}
567
568static inline unsigned int
569eina_value_array_count(const Eina_Value *value)
570{
571 Eina_Value_Array desc;
572 EINA_VALUE_TYPE_ARRAY_CHECK_RETURN_VAL(value, 0);
573 if (!eina_value_pget(value, &desc))
574 return 0;
575 return eina_inarray_count(desc.array);
576}
577
578static inline Eina_Bool
579eina_value_array_remove(Eina_Value *value, unsigned int position)
580{
581 Eina_Value_Array desc;
582 void *mem;
583
584 EINA_VALUE_TYPE_ARRAY_CHECK_RETURN_VAL(value, 0);
585 if (!eina_value_pget(value, &desc))
586 return EINA_FALSE;
587
588 mem = eina_inarray_nth(desc.array, position);
589 if (!mem)
590 return EINA_FALSE;
591
592 eina_value_type_flush(desc.subtype, mem);
593 return eina_inarray_remove_at(desc.array, position);
594}
595
596static inline Eina_Bool
597eina_value_array_vset(Eina_Value *value, unsigned int position, va_list args)
598{
599 Eina_Value_Array desc;
600 void *mem;
601
602 EINA_VALUE_TYPE_ARRAY_CHECK_RETURN_VAL(value, 0);
603 if (!eina_value_pget(value, &desc))
604 return EINA_FALSE;
605
606 mem = eina_inarray_nth(desc.array, position);
607 if (!mem)
608 return EINA_FALSE;
609
610 eina_value_type_flush(desc.subtype, mem);
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}
621
622static inline Eina_Bool
623eina_value_array_vget(const Eina_Value *value, unsigned int position, va_list args)
624{
625 Eina_Value_Array desc;
626 const void *mem;
627 void *ptr;
628 Eina_Bool ret;
629
630 EINA_VALUE_TYPE_ARRAY_CHECK_RETURN_VAL(value, 0);
631 if (!eina_value_pget(value, &desc))
632 return EINA_FALSE;
633
634 mem = eina_inarray_nth(desc.array, position);
635 if (!mem)
636 return EINA_FALSE;
637
638 ptr = va_arg(args, void *);
639 ret = eina_value_type_pget(desc.subtype, mem, ptr);
640 return ret;
641}
642
643static inline Eina_Bool
644eina_value_array_vinsert(Eina_Value *value, unsigned int position, va_list args)
645{
646 Eina_Value_Array desc;
647 void *mem;
648
649 EINA_VALUE_TYPE_ARRAY_CHECK_RETURN_VAL(value, 0);
650 if (!eina_value_pget(value, &desc))
651 return EINA_FALSE;
652
653 mem = eina_inarray_alloc_at(desc.array, position, 1);
654 if (!mem)
655 return EINA_FALSE;
656
657 if (!eina_value_type_setup(desc.subtype, mem)) goto error_setup;
658 if (!eina_value_type_vset(desc.subtype, mem, args)) goto error_set;
659 return EINA_TRUE;
660
661 error_set:
662 eina_value_type_flush(desc.subtype, mem);
663 error_setup:
664 eina_inarray_remove_at(desc.array, position);
665 return EINA_FALSE;
666}
667
668static inline Eina_Bool
669eina_value_array_vappend(Eina_Value *value, va_list args)
670{
671 Eina_Value_Array desc;
672 void *mem;
673 int position;
674
675 EINA_VALUE_TYPE_ARRAY_CHECK_RETURN_VAL(value, 0);
676 if (!eina_value_pget(value, &desc))
677 return EINA_FALSE;
678
679 position = eina_inarray_count(desc.array);
680 mem = eina_inarray_alloc_at(desc.array, position, 1);
681 if (!mem)
682 return EINA_FALSE;
683
684 if (!eina_value_type_setup(desc.subtype, mem)) goto error_setup;
685 if (!eina_value_type_vset(desc.subtype, mem, args)) goto error_set;
686 return EINA_TRUE;
687
688 error_set:
689 eina_value_type_flush(desc.subtype, mem);
690 error_setup:
691 eina_inarray_remove_at(desc.array, position);
692 return EINA_FALSE;
693}
694
695static inline Eina_Bool
696eina_value_array_set(Eina_Value *value, unsigned int position, ...)
697{
698 va_list args;
699 Eina_Bool ret;
700 va_start(args, position);
701 ret = eina_value_array_vset(value, position, args);
702 va_end(args);
703 return ret;
704}
705
706static inline Eina_Bool
707eina_value_array_get(const Eina_Value *value, unsigned int position, ...)
708{
709 va_list args;
710 Eina_Bool ret;
711 va_start(args, position);
712 ret = eina_value_array_vget(value, position, args);
713 va_end(args);
714 return ret;
715}
716
717static inline Eina_Bool
718eina_value_array_insert(Eina_Value *value, unsigned int position, ...)
719{
720 va_list args;
721 Eina_Bool ret;
722 va_start(args, position);
723 ret = eina_value_array_vinsert(value, position, args);
724 va_end(args);
725 return ret;
726}
727
728static inline Eina_Bool eina_value_array_append(Eina_Value *value, ...)
729{
730 va_list args;
731 Eina_Bool ret;
732 va_start(args, value);
733 ret = eina_value_array_vappend(value, args);
734 va_end(args);
735 return ret;
736}
737
738static inline Eina_Bool
739eina_value_array_pset(Eina_Value *value, unsigned int position, const void *ptr)
740{
741 Eina_Value_Array desc;
742 void *mem;
743
744 EINA_VALUE_TYPE_ARRAY_CHECK_RETURN_VAL(value, 0);
745 if (!eina_value_pget(value, &desc))
746 return EINA_FALSE;
747
748 mem = eina_inarray_nth(desc.array, position);
749 if (!mem)
750 return EINA_FALSE;
751
752 eina_value_type_flush(desc.subtype, mem);
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}
763
764static inline Eina_Bool
765eina_value_array_pget(const Eina_Value *value, unsigned int position, void *ptr)
766{
767 Eina_Value_Array desc;
768 const void *mem;
769 Eina_Bool ret;
770
771 EINA_VALUE_TYPE_ARRAY_CHECK_RETURN_VAL(value, 0);
772 if (!eina_value_pget(value, &desc))
773 return EINA_FALSE;
774
775 mem = eina_inarray_nth(desc.array, position);
776 if (!mem)
777 return EINA_FALSE;
778
779 ret = eina_value_type_pget(desc.subtype, mem, ptr);
780 return ret;
781}
782
783static inline Eina_Bool
784eina_value_array_pinsert(Eina_Value *value, unsigned int position, const void *ptr)
785{
786 Eina_Value_Array desc;
787 void *mem;
788
789 EINA_VALUE_TYPE_ARRAY_CHECK_RETURN_VAL(value, 0);
790 if (!eina_value_pget(value, &desc))
791 return EINA_FALSE;
792
793 mem = eina_inarray_alloc_at(desc.array, position, 1);
794 if (!mem)
795 return EINA_FALSE;
796
797 if (!eina_value_type_setup(desc.subtype, mem)) goto error_setup;
798 if (!eina_value_type_pset(desc.subtype, mem, ptr)) goto error_set;
799 return EINA_TRUE;
800
801 error_set:
802 eina_value_type_flush(desc.subtype, mem);
803 error_setup:
804 eina_inarray_remove_at(desc.array, position);
805 return EINA_FALSE;
806}
807
808static inline Eina_Bool
809eina_value_array_pappend(Eina_Value *value, const void *ptr)
810{
811 Eina_Value_Array desc;
812 void *mem;
813 int position;
814
815 EINA_VALUE_TYPE_ARRAY_CHECK_RETURN_VAL(value, 0);
816 if (!eina_value_pget(value, &desc))
817 return EINA_FALSE;
818
819 position = eina_inarray_count(desc.array);
820 mem = eina_inarray_alloc_at(desc.array, position, 1);
821 if (!mem)
822 return EINA_FALSE;
823
824 if (!eina_value_type_setup(desc.subtype, mem)) goto error_setup;
825 if (!eina_value_type_pset(desc.subtype, mem, ptr)) goto error_set;
826 return EINA_TRUE;
827
828 error_set:
829 eina_value_type_flush(desc.subtype, mem);
830 error_setup:
831 eina_inarray_remove_at(desc.array, position);
832 return EINA_FALSE;
833}
834
835#undef EINA_VALUE_TYPE_ARRAY_CHECK_RETURN_VAL
836
837#define EINA_VALUE_TYPE_LIST_CHECK_RETURN_VAL(value, retval) \
838 EINA_SAFETY_ON_NULL_RETURN_VAL(value, retval); \
839 EINA_SAFETY_ON_FALSE_RETURN_VAL(value->type == EINA_VALUE_TYPE_LIST, retval)
840
841static inline void *
842eina_value_list_node_memory_get(const Eina_Value_Type *type, const Eina_List *node)
843{
844 if (node == NULL) return NULL;
845 if (type->value_size <= sizeof(void*))
846 return (void *)&(node->data);
847 return node->data;
848}
849
850static inline void *
851eina_value_list_node_memory_setup(const Eina_Value_Type *type, Eina_List *node)
852{
853 if (type->value_size <= sizeof(void*))
854 return (void *)&(node->data);
855 node->data = malloc(type->value_size);
856 return node->data;
857}
858
859static inline void
860eina_value_list_node_memory_flush(const Eina_Value_Type *type, Eina_List *node)
861{
862 if (type->value_size <= sizeof(void*))
863 return;
864 free(node->data);
865}
866
867static inline Eina_Bool
868eina_value_list_setup(Eina_Value *value, const Eina_Value_Type *subtype)
869{
870 Eina_Value_List desc = { subtype, NULL };
871 if (!eina_value_setup(value, EINA_VALUE_TYPE_LIST))
872 return EINA_FALSE;
873 if (!eina_value_pset(value, &desc))
874 {
875 eina_value_flush(value);
876 return EINA_FALSE;
877 }
878 return EINA_TRUE;
879}
880
881static inline unsigned int
882eina_value_list_count(const Eina_Value *value)
883{
884 Eina_Value_List *desc;
885 EINA_VALUE_TYPE_LIST_CHECK_RETURN_VAL(value, 0);
886 desc = (Eina_Value_List *)eina_value_memory_get(value);
887 if (!desc)
888 return 0;
889 return eina_list_count(desc->list);
890}
891
892static inline Eina_Bool
893eina_value_list_remove(Eina_Value *value, unsigned int position)
894{
895 Eina_Value_List *desc;
896 Eina_List *node;
897 void *mem;
898
899 EINA_VALUE_TYPE_LIST_CHECK_RETURN_VAL(value, 0);
900 desc = (Eina_Value_List *)eina_value_memory_get(value);
901 if (!desc)
902 return EINA_FALSE;
903
904 node = eina_list_nth_list(desc->list, position);
905 mem = eina_value_list_node_memory_get(desc->subtype, node);
906 if (!mem)
907 return EINA_FALSE;
908
909 eina_value_type_flush(desc->subtype, mem);
910 eina_value_list_node_memory_flush(desc->subtype, node);
911 desc->list = eina_list_remove_list(desc->list, node);
912 return EINA_TRUE;
913}
914
915static inline Eina_Bool
916eina_value_list_vset(Eina_Value *value, unsigned int position, va_list args)
917{
918 Eina_Value_List *desc;
919 Eina_List *node;
920 void *mem;
921
922 EINA_VALUE_TYPE_LIST_CHECK_RETURN_VAL(value, 0);
923 desc = (Eina_Value_List *)eina_value_memory_get(value);
924 if (!desc)
925 return EINA_FALSE;
926
927 node = eina_list_nth_list(desc->list, position);
928 mem = eina_value_list_node_memory_get(desc->subtype, node);
929 if (!mem)
930 return EINA_FALSE;
931
932 eina_value_type_flush(desc->subtype, mem);
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}
943
944static inline Eina_Bool
945eina_value_list_vget(const Eina_Value *value, unsigned int position, va_list args)
946{
947 const Eina_Value_List *desc;
948 const Eina_List *node;
949 const void *mem;
950 void *ptr;
951 Eina_Bool ret;
952
953 EINA_VALUE_TYPE_LIST_CHECK_RETURN_VAL(value, 0);
954 desc = (const Eina_Value_List *)eina_value_memory_get(value);
955 if (!desc)
956 return EINA_FALSE;
957
958 node = eina_list_nth_list(desc->list, position);
959 mem = eina_value_list_node_memory_get(desc->subtype, node);
960 if (!mem)
961 return EINA_FALSE;
962
963 ptr = va_arg(args, void *);
964 ret = eina_value_type_pget(desc->subtype, mem, ptr);
965 return ret;
966}
967
968static inline Eina_Bool
969eina_value_list_vinsert(Eina_Value *value, unsigned int position, va_list args)
970{
971 Eina_Value_List *desc;
972 Eina_List *node;
973 void *mem;
974
975 EINA_VALUE_TYPE_LIST_CHECK_RETURN_VAL(value, 0);
976 desc = (Eina_Value_List *)eina_value_memory_get(value);
977 if (!desc)
978 return EINA_FALSE;
979
980 if (!desc->list)
981 node = desc->list = eina_list_append(NULL, (void*)1L);
982 else if (position == 0)
983 node = desc->list = eina_list_prepend(desc->list, (void*)1L);
984 else
985 {
986 Eina_List *rel = eina_list_nth_list(desc->list, position - 1);
987 desc->list = eina_list_append_relative_list(desc->list, (void*)1L, rel);
988 node = rel->next;
989 }
990 EINA_SAFETY_ON_NULL_RETURN_VAL(node, EINA_FALSE);
991 EINA_SAFETY_ON_FALSE_RETURN_VAL(node->data == (void*)1L, EINA_FALSE);
992
993 mem = eina_value_list_node_memory_setup(desc->subtype, node);
994 if (!mem)
995 {
996 desc->list = eina_list_remove_list(desc->list, node);
997 return EINA_FALSE;
998 }
999
1000 if (!eina_value_type_setup(desc->subtype, mem)) goto error_setup;
1001 if (!eina_value_type_vset(desc->subtype, mem, args)) goto error_set;
1002 return EINA_TRUE;
1003
1004 error_set:
1005 eina_value_type_flush(desc->subtype, mem);
1006 error_setup:
1007 eina_value_list_node_memory_flush(desc->subtype, node);
1008 desc->list = eina_list_remove_list(desc->list, node);
1009 return EINA_FALSE;
1010}
1011
1012static inline Eina_Bool
1013eina_value_list_vappend(Eina_Value *value, va_list args)
1014{
1015 Eina_Value_List *desc;
1016 Eina_List *node;
1017 void *mem;
1018
1019 EINA_VALUE_TYPE_LIST_CHECK_RETURN_VAL(value, 0);
1020 desc = (Eina_Value_List *)eina_value_memory_get(value);
1021 if (!desc)
1022 return EINA_FALSE;
1023
1024 desc->list = eina_list_append(desc->list, (void*)1L);
1025 node = eina_list_last(desc->list);
1026 EINA_SAFETY_ON_NULL_RETURN_VAL(node, EINA_FALSE);
1027 EINA_SAFETY_ON_FALSE_RETURN_VAL(node->data == (void*)1L, EINA_FALSE);
1028
1029 mem = eina_value_list_node_memory_setup(desc->subtype, node);
1030 if (!mem)
1031 {
1032 desc->list = eina_list_remove_list(desc->list, node);
1033 return EINA_FALSE;
1034 }
1035
1036 if (!eina_value_type_setup(desc->subtype, mem)) goto error_setup;
1037 if (!eina_value_type_vset(desc->subtype, mem, args)) goto error_set;
1038 return EINA_TRUE;
1039
1040 error_set:
1041 eina_value_type_flush(desc->subtype, mem);
1042 error_setup:
1043 eina_value_list_node_memory_flush(desc->subtype, node);
1044 desc->list = eina_list_remove_list(desc->list, node);
1045 return EINA_FALSE;
1046}
1047
1048static inline Eina_Bool
1049eina_value_list_set(Eina_Value *value, unsigned int position, ...)
1050{
1051 va_list args;
1052 Eina_Bool ret;
1053 va_start(args, position);
1054 ret = eina_value_list_vset(value, position, args);
1055 va_end(args);
1056 return ret;
1057}
1058
1059static inline Eina_Bool
1060eina_value_list_get(const Eina_Value *value, unsigned int position, ...)
1061{
1062 va_list args;
1063 Eina_Bool ret;
1064 va_start(args, position);
1065 ret = eina_value_list_vget(value, position, args);
1066 va_end(args);
1067 return ret;
1068}
1069
1070static inline Eina_Bool
1071eina_value_list_insert(Eina_Value *value, unsigned int position, ...)
1072{
1073 va_list args;
1074 Eina_Bool ret;
1075 va_start(args, position);
1076 ret = eina_value_list_vinsert(value, position, args);
1077 va_end(args);
1078 return ret;
1079}
1080
1081static inline Eina_Bool eina_value_list_append(Eina_Value *value, ...)
1082{
1083 va_list args;
1084 Eina_Bool ret;
1085 va_start(args, value);
1086 ret = eina_value_list_vappend(value, args);
1087 va_end(args);
1088 return ret;
1089}
1090
1091static inline Eina_Bool
1092eina_value_list_pset(Eina_Value *value, unsigned int position, const void *ptr)
1093{
1094 Eina_Value_List *desc;
1095 Eina_List *node;
1096 void *mem;
1097
1098 EINA_VALUE_TYPE_LIST_CHECK_RETURN_VAL(value, 0);
1099 desc = (Eina_Value_List *)eina_value_memory_get(value);
1100 if (!desc)
1101 return EINA_FALSE;
1102
1103 node = eina_list_nth_list(desc->list, position);
1104 mem = eina_value_list_node_memory_get(desc->subtype, node);
1105 if (!mem)
1106 return EINA_FALSE;
1107
1108 eina_value_type_flush(desc->subtype, mem);
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}
1119
1120static inline Eina_Bool
1121eina_value_list_pget(const Eina_Value *value, unsigned int position, void *ptr)
1122{
1123 const Eina_Value_List *desc;
1124 const Eina_List *node;
1125 const void *mem;
1126 Eina_Bool ret;
1127
1128 EINA_VALUE_TYPE_LIST_CHECK_RETURN_VAL(value, 0);
1129 desc = (const Eina_Value_List *)eina_value_memory_get(value);
1130 if (!desc)
1131 return EINA_FALSE;
1132
1133 node = eina_list_nth_list(desc->list, position);
1134 mem = eina_value_list_node_memory_get(desc->subtype, node);
1135 if (!mem)
1136 return EINA_FALSE;
1137
1138 ret = eina_value_type_pget(desc->subtype, mem, ptr);
1139 return ret;
1140}
1141
1142static inline Eina_Bool
1143eina_value_list_pinsert(Eina_Value *value, unsigned int position, const void *ptr)
1144{
1145 Eina_Value_List *desc;
1146 Eina_List *node;
1147 void *mem;
1148
1149 EINA_VALUE_TYPE_LIST_CHECK_RETURN_VAL(value, 0);
1150 desc = (Eina_Value_List *)eina_value_memory_get(value);
1151 if (!desc)
1152 return EINA_FALSE;
1153
1154 if (!desc->list)
1155 node = desc->list = eina_list_append(NULL, (void*)1L);
1156 else if (position == 0)
1157 node = desc->list = eina_list_prepend(desc->list, (void*)1L);
1158 else
1159 {
1160 Eina_List *rel = eina_list_nth_list(desc->list, position - 1);
1161 desc->list = eina_list_append_relative_list(desc->list, (void*)1L, rel);
1162 node = rel->next;
1163 }
1164 EINA_SAFETY_ON_NULL_RETURN_VAL(node, EINA_FALSE);
1165 EINA_SAFETY_ON_FALSE_RETURN_VAL(node->data == (void*)1L, EINA_FALSE);
1166
1167 mem = eina_value_list_node_memory_setup(desc->subtype, node);
1168 if (!mem)
1169 {
1170 desc->list = eina_list_remove_list(desc->list, node);
1171 return EINA_FALSE;
1172 }
1173
1174 if (!eina_value_type_setup(desc->subtype, mem)) goto error_setup;
1175 if (!eina_value_type_pset(desc->subtype, mem, ptr)) goto error_set;
1176 return EINA_TRUE;
1177
1178 error_set:
1179 eina_value_type_flush(desc->subtype, mem);
1180 error_setup:
1181 eina_value_list_node_memory_flush(desc->subtype, node);
1182 desc->list = eina_list_remove_list(desc->list, node);
1183 return EINA_FALSE;
1184}
1185
1186static inline Eina_Bool
1187eina_value_list_pappend(Eina_Value *value, const void *ptr)
1188{
1189 Eina_Value_List *desc;
1190 Eina_List *node;
1191 void *mem;
1192
1193 EINA_VALUE_TYPE_LIST_CHECK_RETURN_VAL(value, 0);
1194 desc = (Eina_Value_List *)eina_value_memory_get(value);
1195 if (!desc)
1196 return EINA_FALSE;
1197
1198 desc->list = eina_list_append(desc->list, (void*)1L);
1199 node = eina_list_last(desc->list);
1200 EINA_SAFETY_ON_NULL_RETURN_VAL(node, EINA_FALSE);
1201 EINA_SAFETY_ON_FALSE_RETURN_VAL(node->data == (void*)1L, EINA_FALSE);
1202
1203 mem = eina_value_list_node_memory_setup(desc->subtype, node);
1204 if (!mem)
1205 {
1206 desc->list = eina_list_remove_list(desc->list, node);
1207 return EINA_FALSE;
1208 }
1209
1210 if (!eina_value_type_setup(desc->subtype, mem)) goto error_setup;
1211 if (!eina_value_type_pset(desc->subtype, mem, ptr)) goto error_set;
1212 return EINA_TRUE;
1213
1214 error_set:
1215 eina_value_type_flush(desc->subtype, mem);
1216 error_setup:
1217 eina_value_list_node_memory_flush(desc->subtype, node);
1218 desc->list = eina_list_remove_list(desc->list, node);
1219 return EINA_FALSE;
1220}
1221#undef EINA_VALUE_TYPE_LIST_CHECK_RETURN_VAL
1222
1223#define EINA_VALUE_TYPE_HASH_CHECK_RETURN_VAL(value, retval) \
1224 EINA_SAFETY_ON_NULL_RETURN_VAL(value, retval); \
1225 EINA_SAFETY_ON_FALSE_RETURN_VAL(value->type == EINA_VALUE_TYPE_HASH, retval)
1226
1227static inline Eina_Bool
1228eina_value_hash_setup(Eina_Value *value, const Eina_Value_Type *subtype, unsigned int buckets_power_size)
1229{
1230 Eina_Value_Hash desc = { subtype, buckets_power_size, NULL };
1231 if (!eina_value_setup(value, EINA_VALUE_TYPE_HASH))
1232 return EINA_FALSE;
1233 if (!eina_value_pset(value, &desc))
1234 {
1235 eina_value_flush(value);
1236 return EINA_FALSE;
1237 }
1238 return EINA_TRUE;
1239}
1240
1241static inline unsigned int
1242eina_value_hash_population(const Eina_Value *value)
1243{
1244 Eina_Value_Hash *desc;
1245 EINA_VALUE_TYPE_HASH_CHECK_RETURN_VAL(value, 0);
1246 desc = (Eina_Value_Hash *)eina_value_memory_get(value);
1247 if (!desc)
1248 return 0;
1249 return eina_hash_population(desc->hash);
1250}
1251
1252static inline Eina_Bool
1253eina_value_hash_del(Eina_Value *value, const char *key)
1254{
1255 Eina_Value_Hash *desc;
1256 void *mem;
1257
1258 EINA_VALUE_TYPE_HASH_CHECK_RETURN_VAL(value, EINA_FALSE);
1259 EINA_SAFETY_ON_NULL_RETURN_VAL(key, EINA_FALSE);
1260 desc = (Eina_Value_Hash *)eina_value_memory_get(value);
1261 if (!desc)
1262 return EINA_FALSE;
1263
1264 mem = eina_hash_find(desc->hash, key);
1265 if (!mem)
1266 return EINA_FALSE;
1267
1268 eina_value_type_flush(desc->subtype, mem);
1269 free(mem);
1270 eina_hash_del_by_key(desc->hash, key);
1271 return EINA_TRUE;
1272}
1273
1274static inline Eina_Bool
1275eina_value_hash_vset(Eina_Value *value, const char *key, va_list args)
1276{
1277 Eina_Value_Hash *desc;
1278 void *mem;
1279
1280 EINA_VALUE_TYPE_HASH_CHECK_RETURN_VAL(value, EINA_FALSE);
1281 EINA_SAFETY_ON_NULL_RETURN_VAL(key, EINA_FALSE);
1282 desc = (Eina_Value_Hash *)eina_value_memory_get(value);
1283 if (!desc)
1284 return EINA_FALSE;
1285
1286 mem = eina_hash_find(desc->hash, key);
1287 if (mem)
1288 eina_value_type_flush(desc->subtype, mem);
1289 else
1290 {
1291 mem = malloc(desc->subtype->value_size);
1292 if (!mem)
1293 {
1294 eina_error_set(EINA_ERROR_OUT_OF_MEMORY);
1295 return EINA_FALSE;
1296 }
1297 if (!eina_hash_add(desc->hash, key, mem))
1298 {
1299 free(mem);
1300 return EINA_FALSE;
1301 }
1302 }
1303
1304 if (!eina_value_type_setup(desc->subtype, mem)) goto error_setup;
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}
1315
1316static inline Eina_Bool
1317eina_value_hash_vget(const Eina_Value *value, const char *key, va_list args)
1318{
1319 const Eina_Value_Hash *desc;
1320 const void *mem;
1321 void *ptr;
1322 Eina_Bool ret;
1323
1324 EINA_VALUE_TYPE_HASH_CHECK_RETURN_VAL(value, EINA_FALSE);
1325 EINA_SAFETY_ON_NULL_RETURN_VAL(key, EINA_FALSE);
1326 desc = (const Eina_Value_Hash *)eina_value_memory_get(value);
1327 if (!desc)
1328 return EINA_FALSE;
1329
1330 mem = eina_hash_find(desc->hash, key);
1331 if (!mem)
1332 return EINA_FALSE;
1333
1334 ptr = va_arg(args, void *);
1335 ret = eina_value_type_pget(desc->subtype, mem, ptr);
1336 return ret;
1337}
1338
1339static inline Eina_Bool
1340eina_value_hash_set(Eina_Value *value, const char *key, ...)
1341{
1342 va_list args;
1343 Eina_Bool ret;
1344 va_start(args, key);
1345 ret = eina_value_hash_vset(value, key, args);
1346 va_end(args);
1347 return ret;
1348}
1349
1350static inline Eina_Bool
1351eina_value_hash_get(const Eina_Value *value, const char *key, ...)
1352{
1353 va_list args;
1354 Eina_Bool ret;
1355 va_start(args, key);
1356 ret = eina_value_hash_vget(value, key, args);
1357 va_end(args);
1358 return ret;
1359}
1360
1361static inline Eina_Bool
1362eina_value_hash_pset(Eina_Value *value, const char *key, const void *ptr)
1363{
1364 Eina_Value_Hash *desc;
1365 void *mem;
1366
1367 EINA_VALUE_TYPE_HASH_CHECK_RETURN_VAL(value, 0);
1368 EINA_SAFETY_ON_NULL_RETURN_VAL(key, EINA_FALSE);
1369 desc = (Eina_Value_Hash *)eina_value_memory_get(value);
1370 if (!desc)
1371 return EINA_FALSE;
1372
1373 mem = eina_hash_find(desc->hash, key);
1374 if (mem)
1375 eina_value_type_flush(desc->subtype, mem);
1376 else
1377 {
1378 mem = malloc(desc->subtype->value_size);
1379 if (!mem)
1380 {
1381 eina_error_set(EINA_ERROR_OUT_OF_MEMORY);
1382 return EINA_FALSE;
1383 }
1384 if (!eina_hash_add(desc->hash, key, mem))
1385 {
1386 free(mem);
1387 return EINA_FALSE;
1388 }
1389 }
1390
1391 if (!eina_value_type_setup(desc->subtype, mem)) goto error_setup;
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}
1402
1403static inline Eina_Bool
1404eina_value_hash_pget(const Eina_Value *value, const char *key, void *ptr)
1405{
1406 const Eina_Value_Hash *desc;
1407 const void *mem;
1408 Eina_Bool ret;
1409
1410 EINA_VALUE_TYPE_HASH_CHECK_RETURN_VAL(value, 0);
1411 EINA_SAFETY_ON_NULL_RETURN_VAL(key, EINA_FALSE);
1412 desc = (const Eina_Value_Hash *)eina_value_memory_get(value);
1413 if (!desc)
1414 return EINA_FALSE;
1415
1416 mem = eina_hash_find(desc->hash, key);
1417 if (!mem)
1418 return EINA_FALSE;
1419
1420 ret = eina_value_type_pget(desc->subtype, mem, ptr);
1421 return ret;
1422}
1423#undef EINA_VALUE_TYPE_HASH_CHECK_RETURN_VAL
1424
1425#define EINA_VALUE_TYPE_STRUCT_CHECK_RETURN_VAL(value, retval) \
1426 EINA_SAFETY_ON_NULL_RETURN_VAL(value, retval); \
1427 EINA_SAFETY_ON_FALSE_RETURN_VAL(value->type == EINA_VALUE_TYPE_STRUCT, retval)
1428
1429/**
1430 * @brief Find member of struct
1431 * @since 1.2
1432 * @internal
1433 */
1434EAPI const Eina_Value_Struct_Member *eina_value_struct_member_find(const Eina_Value_Struct *st, const char *name) EINA_ARG_NONNULL(1, 2) EINA_WARN_UNUSED_RESULT;
1435
1436static inline Eina_Bool
1437eina_value_struct_setup(Eina_Value *value, const Eina_Value_Struct_Desc *sdesc)
1438{
1439 Eina_Value_Struct desc = {sdesc, NULL};
1440 if (!eina_value_setup(value, EINA_VALUE_TYPE_STRUCT))
1441 return EINA_FALSE;
1442 if (!eina_value_pset(value, &desc))
1443 {
1444 eina_value_flush(value);
1445 return EINA_FALSE;
1446 }
1447 return EINA_TRUE;
1448}
1449
1450static inline void *
1451eina_value_struct_member_memory_get(const Eina_Value_Struct *st, const Eina_Value_Struct_Member *member)
1452{
1453 unsigned char *base = (unsigned char *)st->memory;
1454 if (!base) return NULL;
1455 return base + member->offset;
1456}
1457
1458static inline Eina_Bool
1459eina_value_struct_vset(Eina_Value *value, const char *name, va_list args)
1460{
1461 const Eina_Value_Struct_Member *member;
1462 Eina_Value_Struct *st;
1463 void *mem;
1464
1465 EINA_VALUE_TYPE_STRUCT_CHECK_RETURN_VAL(value, EINA_FALSE);
1466 EINA_SAFETY_ON_NULL_RETURN_VAL(name, EINA_FALSE);
1467 st = (Eina_Value_Struct *)eina_value_memory_get(value);
1468 if (!st)
1469 return EINA_FALSE;
1470 member = eina_value_struct_member_find(st, name);
1471 if (!member)
1472 return EINA_FALSE;
1473 mem = eina_value_struct_member_memory_get(st, member);
1474 if (!mem)
1475 return EINA_FALSE;
1476
1477 eina_value_type_flush(member->type, mem);
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}
1487
1488static inline Eina_Bool
1489eina_value_struct_vget(const Eina_Value *value, const char *name, va_list args)
1490{
1491 const Eina_Value_Struct_Member *member;
1492 const Eina_Value_Struct *st;
1493 const void *mem;
1494 void *ptr;
1495 Eina_Bool ret;
1496
1497 EINA_VALUE_TYPE_STRUCT_CHECK_RETURN_VAL(value, EINA_FALSE);
1498 EINA_SAFETY_ON_NULL_RETURN_VAL(name, EINA_FALSE);
1499 st = (const Eina_Value_Struct *)eina_value_memory_get(value);
1500 if (!st)
1501 return EINA_FALSE;
1502 member = eina_value_struct_member_find(st, name);
1503 if (!member)
1504 return EINA_FALSE;
1505 mem = eina_value_struct_member_memory_get(st, member);
1506 if (!mem)
1507 return EINA_FALSE;
1508
1509 ptr = va_arg(args, void *);
1510 ret = eina_value_type_pget(member->type, mem, ptr);
1511 return ret;
1512}
1513
1514static inline Eina_Bool
1515eina_value_struct_set(Eina_Value *value, const char *name, ...)
1516{
1517 va_list args;
1518 Eina_Bool ret;
1519 va_start(args, name);
1520 ret = eina_value_struct_vset(value, name, args);
1521 va_end(args);
1522 return ret;
1523}
1524
1525static inline Eina_Bool
1526eina_value_struct_get(const Eina_Value *value, const char *name, ...)
1527{
1528 va_list args;
1529 Eina_Bool ret;
1530 va_start(args, name);
1531 ret = eina_value_struct_vget(value, name, args);
1532 va_end(args);
1533 return ret;
1534}
1535
1536static inline Eina_Bool
1537eina_value_struct_pset(Eina_Value *value, const char *name, const void *ptr)
1538{
1539 const Eina_Value_Struct_Member *member;
1540 Eina_Value_Struct *st;
1541 void *mem;
1542
1543 EINA_VALUE_TYPE_STRUCT_CHECK_RETURN_VAL(value, 0);
1544 EINA_SAFETY_ON_NULL_RETURN_VAL(name, EINA_FALSE);
1545 st = (Eina_Value_Struct *)eina_value_memory_get(value);
1546 if (!st)
1547 return EINA_FALSE;
1548 member = eina_value_struct_member_find(st, name);
1549 if (!member)
1550 return EINA_FALSE;
1551 mem = eina_value_struct_member_memory_get(st, member);
1552 if (!mem)
1553 return EINA_FALSE;
1554
1555 eina_value_type_flush(member->type, mem);
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}
1565
1566static inline Eina_Bool
1567eina_value_struct_pget(const Eina_Value *value, const char *name, void *ptr)
1568{
1569 const Eina_Value_Struct_Member *member;
1570 const Eina_Value_Struct *st;
1571 const void *mem;
1572 Eina_Bool ret;
1573
1574 EINA_VALUE_TYPE_STRUCT_CHECK_RETURN_VAL(value, 0);
1575 EINA_SAFETY_ON_NULL_RETURN_VAL(name, EINA_FALSE);
1576 st = (const Eina_Value_Struct *)eina_value_memory_get(value);
1577 if (!st)
1578 return EINA_FALSE;
1579 member = eina_value_struct_member_find(st, name);
1580 if (!member)
1581 return EINA_FALSE;
1582 mem = eina_value_struct_member_memory_get(st, member);
1583 if (!mem)
1584 return EINA_FALSE;
1585
1586 ret = eina_value_type_pget(member->type, mem, ptr);
1587 return ret;
1588}
1589#undef EINA_VALUE_TYPE_STRUCT_CHECK_RETURN_VAL
1590
1591
1592static inline Eina_Bool
1593eina_value_type_setup(const Eina_Value_Type *type, void *mem)
1594{
1595 EINA_SAFETY_ON_FALSE_RETURN_VAL(eina_value_type_check(type), EINA_FALSE);
1596 if (!type->setup)
1597 {
1598 eina_error_set(EINA_ERROR_VALUE_FAILED);
1599 return EINA_FALSE;
1600 }
1601 return type->setup(type, mem);
1602}
1603
1604static inline Eina_Bool
1605eina_value_type_flush(const Eina_Value_Type *type, void *mem)
1606{
1607 EINA_SAFETY_ON_FALSE_RETURN_VAL(eina_value_type_check(type), EINA_FALSE);
1608 if (!type->flush)
1609 {
1610 eina_error_set(EINA_ERROR_VALUE_FAILED);
1611 return EINA_FALSE;
1612 }
1613 return type->flush(type, mem);
1614}
1615
1616static inline Eina_Bool
1617eina_value_type_copy(const Eina_Value_Type *type, const void *src, void *dst)
1618{
1619 EINA_SAFETY_ON_FALSE_RETURN_VAL(eina_value_type_check(type), EINA_FALSE);
1620 if (!type->copy)
1621 {
1622 eina_error_set(EINA_ERROR_VALUE_FAILED);
1623 return EINA_FALSE;
1624 }
1625 return type->copy(type, src, dst);
1626}
1627
1628static inline int
1629eina_value_type_compare(const Eina_Value_Type *type, const void *a, const void *b)
1630{
1631 EINA_SAFETY_ON_FALSE_RETURN_VAL(eina_value_type_check(type), EINA_FALSE);
1632 if (!type->compare)
1633 {
1634 eina_error_set(EINA_ERROR_VALUE_FAILED);
1635 return EINA_FALSE;
1636 }
1637 return type->compare(type, a, b);
1638}
1639
1640static inline Eina_Bool
1641eina_value_type_convert_to(const Eina_Value_Type *type, const Eina_Value_Type *convert, const void *type_mem, void *convert_mem)
1642{
1643 EINA_SAFETY_ON_FALSE_RETURN_VAL(eina_value_type_check(type), EINA_FALSE);
1644 if (!type->convert_to)
1645 {
1646 eina_error_set(EINA_ERROR_VALUE_FAILED);
1647 return EINA_FALSE;
1648 }
1649 return type->convert_to(type, convert, type_mem, convert_mem);
1650}
1651
1652static inline Eina_Bool
1653eina_value_type_convert_from(const Eina_Value_Type *type, const Eina_Value_Type *convert, void *type_mem, const void *convert_mem)
1654{
1655 EINA_SAFETY_ON_FALSE_RETURN_VAL(eina_value_type_check(type), EINA_FALSE);
1656 if (!type->convert_from)
1657 {
1658 eina_error_set(EINA_ERROR_VALUE_FAILED);
1659 return EINA_FALSE;
1660 }
1661 return type->convert_from(type, convert, type_mem, convert_mem);
1662}
1663
1664static inline Eina_Bool
1665eina_value_type_vset(const Eina_Value_Type *type, void *mem, va_list args)
1666{
1667 EINA_SAFETY_ON_FALSE_RETURN_VAL(eina_value_type_check(type), EINA_FALSE);
1668 if (!type->vset)
1669 {
1670 eina_error_set(EINA_ERROR_VALUE_FAILED);
1671 return EINA_FALSE;
1672 }
1673 return type->vset(type, mem, args);
1674}
1675
1676static inline Eina_Bool
1677eina_value_type_pset(const Eina_Value_Type *type, void *mem, const void *ptr)
1678{
1679 EINA_SAFETY_ON_FALSE_RETURN_VAL(eina_value_type_check(type), EINA_FALSE);
1680 if (!type->pset)
1681 {
1682 eina_error_set(EINA_ERROR_VALUE_FAILED);
1683 return EINA_FALSE;
1684 }
1685 return type->pset(type, mem, ptr);
1686}
1687
1688static inline Eina_Bool
1689eina_value_type_pget(const Eina_Value_Type *type, const void *mem, void *ptr)
1690{
1691 EINA_SAFETY_ON_FALSE_RETURN_VAL(eina_value_type_check(type), EINA_FALSE);
1692 if (!type->pget)
1693 {
1694 eina_error_set(EINA_ERROR_VALUE_FAILED);
1695 return EINA_FALSE;
1696 }
1697 return type->pget(type, mem, ptr);
1698}
1699
1700#undef EINA_VALUE_TYPE_DEFAULT
1701#undef EINA_VALUE_TYPE_CHECK_RETURN
1702#undef EINA_VALUE_TYPE_CHECK_RETURN_VAL
1703#undef EINA_VALUE_TYPE_DISPATCH
1704#undef EINA_VALUE_TYPE_DISPATCH_RETURN
1705#endif
diff --git a/libraries/eina/src/include/eina_inlist.h b/libraries/eina/src/include/eina_inlist.h
index 1b3ab27..cfb3159 100644
--- a/libraries/eina/src/include/eina_inlist.h
+++ b/libraries/eina/src/include/eina_inlist.h
@@ -25,7 +25,7 @@
25#include <stddef.h> 25#include <stddef.h>
26 26
27/** 27/**
28 * @page inlist_01_example_page Eina_Inlist basic usage 28 * @page eina_inlist_01_example_page Eina_Inlist basic usage
29 * @dontinclude eina_inlist_01.c 29 * @dontinclude eina_inlist_01.c
30 * 30 *
31 * To see the full source for this example, click here: @ref 31 * To see the full source for this example, click here: @ref
@@ -111,7 +111,7 @@
111 */ 111 */
112 112
113/** 113/**
114 * @page inlist_02_example_page Eina_Inlist advanced usage - lists and inlists 114 * @page eina_inlist_02_example_page Eina_Inlist advanced usage - lists and inlists
115 * @dontinclude eina_inlist_02.c 115 * @dontinclude eina_inlist_02.c
116 * 116 *
117 * This example describes the usage of @ref Eina_Inlist mixed with @ref 117 * This example describes the usage of @ref Eina_Inlist mixed with @ref
@@ -120,7 +120,7 @@
120 * from this normal list. 120 * from this normal list.
121 * 121 *
122 * The struct that is going to be used is the same used in @ref 122 * The struct that is going to be used is the same used in @ref
123 * inlist_01_example_page , since we still need the @ref EINA_INLIST macro to 123 * eina_inlist_01_example_page , since we still need the @ref EINA_INLIST macro to
124 * declare the inlist node info: 124 * declare the inlist node info:
125 * 125 *
126 * @skip struct 126 * @skip struct
@@ -184,7 +184,7 @@
184 */ 184 */
185 185
186/** 186/**
187 * @page inlist_03_example_page Eina_Inlist advanced usage - multi-inlists 187 * @page eina_inlist_03_example_page Eina_Inlist advanced usage - multi-inlists
188 * @dontinclude eina_inlist_03.c 188 * @dontinclude eina_inlist_03.c
189 * 189 *
190 * This example describes the usage of multiple inlists storing the same data. 190 * This example describes the usage of multiple inlists storing the same data.
@@ -315,7 +315,7 @@
315 * exactly what type this list is. 315 * exactly what type this list is.
316 * 316 *
317 * A simple example demonstrating the basic usage of an inlist can be found 317 * A simple example demonstrating the basic usage of an inlist can be found
318 * here: @ref inlist_01_example_page 318 * here: @ref eina_inlist_01_example_page
319 * 319 *
320 * @section inlist_algo Algorithm 320 * @section inlist_algo Algorithm
321 * 321 *
@@ -368,9 +368,9 @@
368 * @ref inlist_03_example_page 368 * @ref inlist_03_example_page
369 * 369 *
370 * List of examples: 370 * List of examples:
371 * @li @ref inlist_01_example_page 371 * @li @ref eina_inlist_01_example_page
372 * @li @ref inlist_02_example_page 372 * @li @ref eina_inlist_02_example_page
373 * @li @ref inlist_03_example_page 373 * @li @ref eina_inlist_03_example_page
374 */ 374 */
375 375
376/** 376/**
@@ -428,17 +428,17 @@ struct _Eina_Inlist
428 * Add a new node to end of a list. 428 * Add a new node to end of a list.
429 * 429 *
430 * @note this code is meant to be fast: appends are O(1) and do not 430 * @note this code is meant to be fast: appends are O(1) and do not
431 * walk @a list. 431 * walk @a in_list.
432 * 432 *
433 * @note @a new_l is considered to be in no list. If it was in another 433 * @note @a in_item is considered to be in no list. If it was in another
434 * list before, eina_inlist_remove() it before adding. No 434 * list before, eina_inlist_remove() it before adding. No
435 * check of @a new_l prev and next pointers is done, so it's safe 435 * check of @a new_l prev and next pointers is done, so it's safe
436 * to have them uninitialized. 436 * to have them uninitialized.
437 * 437 *
438 * @param list existing list head or NULL to create a new list. 438 * @param in_list existing list head or NULL to create a new list.
439 * @param new_l new list node, must not be NULL. 439 * @param in_item new list node, must not be NULL.
440 * 440 *
441 * @return the new list head. Use it and not @a list anymore. 441 * @return the new list head. Use it and not @a in_list anymore.
442 */ 442 */
443EAPI Eina_Inlist *eina_inlist_append(Eina_Inlist *in_list, 443EAPI Eina_Inlist *eina_inlist_append(Eina_Inlist *in_list,
444 Eina_Inlist *in_item) EINA_ARG_NONNULL(2) EINA_WARN_UNUSED_RESULT; 444 Eina_Inlist *in_item) EINA_ARG_NONNULL(2) EINA_WARN_UNUSED_RESULT;
@@ -447,17 +447,17 @@ EAPI Eina_Inlist *eina_inlist_append(Eina_Inlist *in_list,
447 * Add a new node to beginning of list. 447 * Add a new node to beginning of list.
448 * 448 *
449 * @note this code is meant to be fast: appends are O(1) and do not 449 * @note this code is meant to be fast: appends are O(1) and do not
450 * walk @a list. 450 * walk @a in_list.
451 * 451 *
452 * @note @a new_l is considered to be in no list. If it was in another 452 * @note @a new_l is considered to be in no list. If it was in another
453 * list before, eina_inlist_remove() it before adding. No 453 * list before, eina_inlist_remove() it before adding. No
454 * check of @a new_l prev and next pointers is done, so it's safe 454 * check of @a new_l prev and next pointers is done, so it's safe
455 * to have them uninitialized. 455 * to have them uninitialized.
456 * 456 *
457 * @param list existing list head or NULL to create a new list. 457 * @param in_list existing list head or NULL to create a new list.
458 * @param new_l new list node, must not be NULL. 458 * @param in_item new list node, must not be NULL.
459 * 459 *
460 * @return the new list head. Use it and not @a list anymore. 460 * @return the new list head. Use it and not @a in_list anymore.
461 */ 461 */
462EAPI Eina_Inlist *eina_inlist_prepend(Eina_Inlist *in_list, 462EAPI Eina_Inlist *eina_inlist_prepend(Eina_Inlist *in_list,
463 Eina_Inlist *in_item) EINA_ARG_NONNULL(2) EINA_WARN_UNUSED_RESULT; 463 Eina_Inlist *in_item) EINA_ARG_NONNULL(2) EINA_WARN_UNUSED_RESULT;
@@ -466,21 +466,21 @@ EAPI Eina_Inlist *eina_inlist_prepend(Eina_Inlist *in_list,
466 * Add a new node after the given relative item in list. 466 * Add a new node after the given relative item in list.
467 * 467 *
468 * @note this code is meant to be fast: appends are O(1) and do not 468 * @note this code is meant to be fast: appends are O(1) and do not
469 * walk @a list. 469 * walk @a in_list.
470 * 470 *
471 * @note @a new_l is considered to be in no list. If it was in another 471 * @note @a in_item_l is considered to be in no list. If it was in another
472 * list before, eina_inlist_remove() it before adding. No 472 * list before, eina_inlist_remove() it before adding. No
473 * check of @a new_l prev and next pointers is done, so it's safe 473 * check of @a in_item prev and next pointers is done, so it's safe
474 * to have them uninitialized. 474 * to have them uninitialized.
475 * 475 *
476 * @note @a relative is considered to be inside @a list, no checks are 476 * @note @a in_relative is considered to be inside @a in_list, no checks are
477 * done to confirm that and giving nodes from different lists 477 * done to confirm that and giving nodes from different lists
478 * will lead to problems. Giving NULL @a relative is the same as 478 * will lead to problems. Giving NULL @a in_relative is the same as
479 * eina_list_append(). 479 * eina_list_append().
480 * 480 *
481 * @param list existing list head or NULL to create a new list. 481 * @param in_list existing list head or NULL to create a new list.
482 * @param new_l new list node, must not be NULL. 482 * @param in_item new list node, must not be NULL.
483 * @param relative reference node, @a new_l will be added after it. 483 * @param in_relative reference node, @a in_item will be added after it.
484 * 484 *
485 * @return the new list head. Use it and not @a list anymore. 485 * @return the new list head. Use it and not @a list anymore.
486 */ 486 */
@@ -492,23 +492,23 @@ EAPI Eina_Inlist *eina_inlist_append_relative(Eina_Inlist *in_list,
492 * Add a new node before the given relative item in list. 492 * Add a new node before the given relative item in list.
493 * 493 *
494 * @note this code is meant to be fast: appends are O(1) and do not 494 * @note this code is meant to be fast: appends are O(1) and do not
495 * walk @a list. 495 * walk @a in_list.
496 * 496 *
497 * @note @a new_l is considered to be in no list. If it was in another 497 * @note @a in_item is considered to be in no list. If it was in another
498 * list before, eina_inlist_remove() it before adding. No 498 * list before, eina_inlist_remove() it before adding. No
499 * check of @a new_l prev and next pointers is done, so it's safe 499 * check of @a in_item prev and next pointers is done, so it's safe
500 * to have them uninitialized. 500 * to have them uninitialized.
501 * 501 *
502 * @note @a relative is considered to be inside @a list, no checks are 502 * @note @a in_relative is considered to be inside @a in_list, no checks are
503 * done to confirm that and giving nodes from different lists 503 * done to confirm that and giving nodes from different lists
504 * will lead to problems. Giving NULL @a relative is the same as 504 * will lead to problems. Giving NULL @a in_relative is the same as
505 * eina_list_prepend(). 505 * eina_list_prepend().
506 * 506 *
507 * @param list existing list head or NULL to create a new list. 507 * @param in_list existing list head or NULL to create a new list.
508 * @param new_l new list node, must not be NULL. 508 * @param in_item new list node, must not be NULL.
509 * @param relative reference node, @a new_l will be added before it. 509 * @param in_relative reference node, @a in_item will be added before it.
510 * 510 *
511 * @return the new list head. Use it and not @a list anymore. 511 * @return the new list head. Use it and not @a in_list anymore.
512 */ 512 */
513EAPI Eina_Inlist *eina_inlist_prepend_relative(Eina_Inlist *in_list, 513EAPI Eina_Inlist *eina_inlist_prepend_relative(Eina_Inlist *in_list,
514 Eina_Inlist *in_item, 514 Eina_Inlist *in_item,
@@ -520,14 +520,14 @@ EAPI Eina_Inlist *eina_inlist_prepend_relative(Eina_Inlist *in_list,
520 * @note this code is meant to be fast: appends are O(1) and do not 520 * @note this code is meant to be fast: appends are O(1) and do not
521 * walk @a list. 521 * walk @a list.
522 * 522 *
523 * @note @a item is considered to be inside @a list, no checks are 523 * @note @a in_item is considered to be inside @a in_list, no checks are
524 * done to confirm that and giving nodes from different lists 524 * done to confirm that and giving nodes from different lists
525 * will lead to problems, especially if @a item is the head since 525 * will lead to problems, especially if @a in_item is the head since
526 * it will be different from @a list and the wrong new head will 526 * it will be different from @a list and the wrong new head will
527 * be returned. 527 * be returned.
528 * 528 *
529 * @param list existing list head, must not be NULL. 529 * @param in_list existing list head, must not be NULL.
530 * @param item existing list node, must not be NULL. 530 * @param in_item existing list node, must not be NULL.
531 * 531 *
532 * @return the new list head. Use it and not @a list anymore. 532 * @return the new list head. Use it and not @a list anymore.
533 */ 533 */
@@ -540,10 +540,10 @@ EAPI Eina_Inlist *eina_inlist_remove(Eina_Inlist *in_list,
540 * @warning this is an expensive call and has O(n) cost, possibly 540 * @warning this is an expensive call and has O(n) cost, possibly
541 * walking the whole list. 541 * walking the whole list.
542 * 542 *
543 * @param list existing list to search @a item in, must not be NULL. 543 * @param in_list existing list to search @a in_item in, must not be NULL.
544 * @param item what to search for, must not be NULL. 544 * @param in_item what to search for, must not be NULL.
545 * 545 *
546 * @return @a item if found, NULL if not. 546 * @return @a in_item if found, NULL if not.
547 */ 547 */
548EAPI Eina_Inlist *eina_inlist_find(Eina_Inlist *in_list, 548EAPI Eina_Inlist *eina_inlist_find(Eina_Inlist *in_list,
549 Eina_Inlist *in_item) EINA_ARG_NONNULL(2) EINA_WARN_UNUSED_RESULT; 549 Eina_Inlist *in_item) EINA_ARG_NONNULL(2) EINA_WARN_UNUSED_RESULT;
@@ -603,11 +603,11 @@ EAPI unsigned int eina_inlist_count(const Eina_Inlist *list) EINA_WARN_UNUSED_
603/** 603/**
604 * @brief Returns a new iterator associated to @a list. 604 * @brief Returns a new iterator associated to @a list.
605 * 605 *
606 * @param list The list. 606 * @param in_list The list.
607 * @return A new iterator. 607 * @return A new iterator.
608 * 608 *
609 * This function returns a newly allocated iterator associated to @p 609 * This function returns a newly allocated iterator associated to @p
610 * list. If @p list is @c NULL or the count member of @p list is less 610 * in_list. If @p in_list is @c NULL or the count member of @p in_list is less
611 * or equal than 0, this function still returns a valid iterator that 611 * or equal than 0, this function still returns a valid iterator that
612 * will always return false on eina_iterator_next(), thus keeping API 612 * will always return false on eina_iterator_next(), thus keeping API
613 * sane. 613 * sane.
@@ -625,13 +625,13 @@ EAPI Eina_Iterator *eina_inlist_iterator_new(const Eina_Inlist *in_list) EINA_MA
625/** 625/**
626 * @brief Returns a new accessor associated to a list. 626 * @brief Returns a new accessor associated to a list.
627 * 627 *
628 * @param list The list. 628 * @param in_list The list.
629 * @return A new accessor. 629 * @return A new accessor.
630 * 630 *
631 * This function returns a newly allocated accessor associated to 631 * This function returns a newly allocated accessor associated to
632 * @p list. If @p list is @c NULL or the count member of @p list is 632 * @p in_list. If @p in_list is @c NULL or the count member of @p in_list is
633 * less or equal than 0, this function returns NULL. If the memory can 633 * less or equal than 0, this function returns @c NULL. If the memory can
634 * not be allocated, NULL is returned and #EINA_ERROR_OUT_OF_MEMORY is 634 * not be allocated, @c NULL is returned and #EINA_ERROR_OUT_OF_MEMORY is
635 * set. Otherwise, a valid accessor is returned. 635 * set. Otherwise, a valid accessor is returned.
636 */ 636 */
637EAPI Eina_Accessor *eina_inlist_accessor_new(const Eina_Inlist *in_list) EINA_MALLOC EINA_WARN_UNUSED_RESULT; 637EAPI Eina_Accessor *eina_inlist_accessor_new(const Eina_Inlist *in_list) EINA_MALLOC EINA_WARN_UNUSED_RESULT;
@@ -728,13 +728,13 @@ EAPI Eina_Inlist *eina_inlist_sorted_state_insert(Eina_Inlist *list,
728/** 728/**
729 * @brief Sort a list according to the ordering func will return. 729 * @brief Sort a list according to the ordering func will return.
730 * 730 *
731 * @param list The list handle to sort. 731 * @param head The list handle to sort.
732 * @param func A function pointer that can handle comparing the list data 732 * @param func A function pointer that can handle comparing the list data
733 * nodes. 733 * nodes.
734 * @return the new head of list. 734 * @return the new head of list.
735 * 735 *
736 * This function sorts all the elements of @p list. @p func is used to 736 * This function sorts all the elements of @p head. @p func is used to
737 * compare two elements of @p list. If @p list or @p func are @c NULL, 737 * compare two elements of @p head. If @p head or @p func are @c NULL,
738 * this function returns @c NULL. 738 * this function returns @c NULL.
739 * 739 *
740 * @note @b in-place: this will change the given list, so you should 740 * @note @b in-place: this will change the given list, so you should
@@ -787,6 +787,7 @@ EAPI Eina_Inlist *eina_inlist_sort(Eina_Inlist *head, Eina_Compare_Cb func);
787 _EINA_INLIST_OFFSET(ref)) 787 _EINA_INLIST_OFFSET(ref))
788#endif 788#endif
789 789
790/** Macro to iterate over an inlist */
790#define EINA_INLIST_FOREACH(list, l) \ 791#define EINA_INLIST_FOREACH(list, l) \
791 for (l = NULL, l = (list ? _EINA_INLIST_CONTAINER(l, list) : NULL); l; \ 792 for (l = NULL, l = (list ? _EINA_INLIST_CONTAINER(l, list) : NULL); l; \
792 l = (EINA_INLIST_GET(l)->next ? _EINA_INLIST_CONTAINER(l, EINA_INLIST_GET(l)->next) : NULL)) 793 l = (EINA_INLIST_GET(l)->next ? _EINA_INLIST_CONTAINER(l, EINA_INLIST_GET(l)->next) : NULL))
diff --git a/libraries/eina/src/include/eina_iterator.h b/libraries/eina/src/include/eina_iterator.h
index 1c8e6ce..10a9ece 100644
--- a/libraries/eina/src/include/eina_iterator.h
+++ b/libraries/eina/src/include/eina_iterator.h
@@ -25,7 +25,7 @@
25#include "eina_magic.h" 25#include "eina_magic.h"
26 26
27/** 27/**
28 * @page eina_iterator_example Eina_Iterator usage 28 * @page eina_iterator_example_page Eina_Iterator usage
29 * @dontinclude eina_iterator_01.c 29 * @dontinclude eina_iterator_01.c
30 * 30 *
31 * As always when using eina we need to include it: 31 * As always when using eina we need to include it:
@@ -48,7 +48,7 @@
48 * @until eina_init 48 * @until eina_init
49 * 49 *
50 * Next we populate both an array and a list with our strings, for more details 50 * Next we populate both an array and a list with our strings, for more details
51 * see @ref eina_list_01_example and @ref eina_array_01_example: 51 * see @ref eina_list_01_example_page and @ref eina_array_01_example_page :
52 * @until } 52 * @until }
53 * 53 *
54 * And now we create an array and because the first element of the container 54 * And now we create an array and because the first element of the container
@@ -63,7 +63,7 @@
63 * iterator itself: 63 * iterator itself:
64 * @until eina_iterator_free 64 * @until eina_iterator_free
65 * 65 *
66 * But so far you're not impressed in @ref eina_array_01_example an array is 66 * But so far you're not impressed in @ref eina_array_01_example_page an array is
67 * also printed, so now we go to the cool stuff and use an iterator to do same 67 * also printed, so now we go to the cool stuff and use an iterator to do same
68 * stuff to a list: 68 * stuff to a list:
69 * @until eina_iterator_free 69 * @until eina_iterator_free
@@ -99,7 +99,7 @@
99 * eina_iterator_next(). To call a function on all the elements of a 99 * eina_iterator_next(). To call a function on all the elements of a
100 * container, use eina_iterator_foreach(). 100 * container, use eina_iterator_foreach().
101 * 101 *
102 * Here an @ref eina_iterator_example "example" 102 * Here an @ref eina_iterator_example_page "example"
103 */ 103 */
104 104
105/** 105/**
diff --git a/libraries/eina/src/include/eina_list.h b/libraries/eina/src/include/eina_list.h
index 8a8f25e..db65e17 100644
--- a/libraries/eina/src/include/eina_list.h
+++ b/libraries/eina/src/include/eina_list.h
@@ -29,7 +29,7 @@
29#include "eina_magic.h" 29#include "eina_magic.h"
30 30
31/** 31/**
32 * @page list_01_example_page Adding elements to Eina_List 32 * @page eina_list_01_example_page Adding elements to Eina_List
33 * @dontinclude eina_list_01.c 33 * @dontinclude eina_list_01.c
34 * 34 *
35 * Creating an @ref Eina_List and adding elements to it is very easy and can be 35 * Creating an @ref Eina_List and adding elements to it is very easy and can be
@@ -99,11 +99,11 @@
99 */ 99 */
100 100
101/** 101/**
102 * @page list_02_example_page Sorting Eina_List elements 102 * @page eina_list_02_example_page Sorting Eina_List elements
103 * @dontinclude eina_list_02.c 103 * @dontinclude eina_list_02.c
104 * 104 *
105 * If you don't know how to create lists see 105 * If you don't know how to create lists see
106 * @ref list_01_example_page. 106 * @ref eina_list_01_example_page.
107 * 107 *
108 * @skip #include 108 * @skip #include
109 * @until boomer 109 * @until boomer
@@ -151,11 +151,11 @@
151 */ 151 */
152 152
153/** 153/**
154 * @page list_03_example_page Reordering Eina_List elments 154 * @page eina_list_03_example_page Reordering Eina_List elments
155 * @dontinclude eina_list_03.c 155 * @dontinclude eina_list_03.c
156 * 156 *
157 * If you don't know how to create lists see 157 * If you don't know how to create lists see
158 * @ref list_01_example_page. 158 * @ref eina_list_01_example_page.
159 * 159 *
160 * We start out with code that should be familiar by now: 160 * We start out with code that should be familiar by now:
161 * @skip #include 161 * @skip #include
@@ -197,12 +197,12 @@
197 */ 197 */
198 198
199/** 199/**
200 * @page list_04_example_page Eina_List and memory allocation 200 * @page eina_list_04_example_page Eina_List and memory allocation
201 * @dontinclude eina_list_04.c 201 * @dontinclude eina_list_04.c
202 * 202 *
203 * If you don't know how to create lists see 203 * If you don't know how to create lists see
204 * @ref list_01_example_page. In this example we also use 204 * @ref eina_list_01_example_page. In this example we also use
205 * @ref eina_stringshare, however it should be possible to understand the code 205 * @ref Eina_Stringshare_Group, however it should be possible to understand the code
206 * regardless of previous knowledge about it. 206 * regardless of previous knowledge about it.
207 * 207 *
208 * Here we have the usual list creation code with a twist, now we are using as 208 * Here we have the usual list creation code with a twist, now we are using as
@@ -276,10 +276,10 @@
276 * list as the list! 276 * list as the list!
277 * 277 *
278 * Here are some examples of @ref Eina_List usage: 278 * Here are some examples of @ref Eina_List usage:
279 * @li @ref list_01_example_page 279 * @li @ref eina_list_01_example_page
280 * @li @ref list_02_example_page 280 * @li @ref eina_list_02_example_page
281 * @li @ref list_03_example_page 281 * @li @ref eina_list_03_example_page
282 * @li @ref list_04_example_page 282 * @li @ref eina_list_04_example_page
283 */ 283 */
284 284
285/** 285/**
@@ -582,7 +582,7 @@ EAPI Eina_List *eina_list_remove(Eina_List *list, const void *data) E
582 582
583 583
584/** 584/**
585 * @brief Remove the specified data. 585 * @brief Remove the specified list node.
586 * 586 *
587 * @param list The given linked list. 587 * @param list The given linked list.
588 * @param remove_list The list node which is to be removed. 588 * @param remove_list The list node which is to be removed.
diff --git a/libraries/eina/src/include/eina_lock.h b/libraries/eina/src/include/eina_lock.h
index 7c26dc0..16f4314 100644
--- a/libraries/eina/src/include/eina_lock.h
+++ b/libraries/eina/src/include/eina_lock.h
@@ -81,6 +81,10 @@ static inline void eina_tls_free(Eina_TLS key);
81static inline void *eina_tls_get(Eina_TLS key); 81static inline void *eina_tls_get(Eina_TLS key);
82static inline Eina_Bool eina_tls_set(Eina_TLS key, const void *data); 82static inline Eina_Bool eina_tls_set(Eina_TLS key, const void *data);
83 83
84static inline Eina_Bool eina_semaphore_new(Eina_Semaphore *sem, int count_init);
85static inline Eina_Bool eina_semaphore_free(Eina_Semaphore *sem);
86static inline Eina_Bool eina_semaphore_lock(Eina_Semaphore *sem);
87static inline Eina_Bool eina_semaphore_release(Eina_Semaphore *sem, int count_release);
84 88
85#ifdef EINA_HAVE_DEBUG_THREADS 89#ifdef EINA_HAVE_DEBUG_THREADS
86# define EINA_MAIN_LOOP_CHECK_RETURN_VAL(val) \ 90# define EINA_MAIN_LOOP_CHECK_RETURN_VAL(val) \
diff --git a/libraries/eina/src/include/eina_log.h b/libraries/eina/src/include/eina_log.h
index 5cd7c59..186397d 100644
--- a/libraries/eina/src/include/eina_log.h
+++ b/libraries/eina/src/include/eina_log.h
@@ -21,6 +21,7 @@
21 21
22#include <stdlib.h> 22#include <stdlib.h>
23#include <stdarg.h> 23#include <stdarg.h>
24#include <sys/types.h>
24 25
25#include "eina_types.h" 26#include "eina_types.h"
26 27
@@ -297,22 +298,27 @@ EAPI extern int EINA_LOG_DOMAIN_GLOBAL;
297 * paths. Never define @c EINA_LOG_LEVEL_MAXIMUM on public 298 * paths. Never define @c EINA_LOG_LEVEL_MAXIMUM on public
298 * header files. 299 * header files.
299 */ 300 */
300#ifdef EINA_LOG_LEVEL_MAXIMUM 301#ifdef EINA_ENABLE_LOG
301#define EINA_LOG(DOM, LEVEL, fmt, ...) \ 302# ifdef EINA_LOG_LEVEL_MAXIMUM
302 do { \ 303# define EINA_LOG(DOM, LEVEL, fmt, ...) \
303 if (LEVEL <= EINA_LOG_LEVEL_MAXIMUM) { \ 304 do { \
304 eina_log_print(DOM, LEVEL, __FILE__, __FUNCTION__, __LINE__, \ 305 if (LEVEL <= EINA_LOG_LEVEL_MAXIMUM) { \
305 fmt, ## __VA_ARGS__); } \ 306 eina_log_print(DOM, LEVEL, __FILE__, __FUNCTION__, __LINE__, \
306 } while (0) 307 fmt, ## __VA_ARGS__); } \
307#else 308 } while (0)
308#define EINA_LOG(DOM, LEVEL, fmt, ...) \ 309# else
309 eina_log_print(DOM, \ 310# define EINA_LOG(DOM, LEVEL, fmt, ...) \
310 LEVEL, \ 311 eina_log_print(DOM, \
311 __FILE__, \ 312 LEVEL, \
312 __FUNCTION__, \ 313 __FILE__, \
313 __LINE__, \ 314 __FUNCTION__, \
314 fmt, \ 315 __LINE__, \
316 fmt, \
315 ## __VA_ARGS__) 317 ## __VA_ARGS__)
318# endif
319#else
320#define EINA_LOG(DOM, LEVEL, fmt, ...) \
321 do { (void) DOM; (void) LEVEL; (void) fmt; } while (0)
316#endif 322#endif
317 323
318/** 324/**
@@ -726,7 +732,7 @@ EAPI void eina_log_domain_unregister(int domain);
726 * specified value (eina_log_level_set() or environment 732 * specified value (eina_log_level_set() or environment
727 * variables EINA_LOG_LEVEL, EINA_LOG_LEVELS) will be ignored. 733 * variables EINA_LOG_LEVEL, EINA_LOG_LEVELS) will be ignored.
728 * @param file filename that originated the call, must @b not be @c NULL. 734 * @param file filename that originated the call, must @b not be @c NULL.
729 * @param fnc function that originated the call, must @b not be @c NULL. 735 * @param function function that originated the call, must @b not be @c NULL.
730 * @param line originating line in @a file. 736 * @param line originating line in @a file.
731 * @param fmt printf-like format to use. Should not provide trailing 737 * @param fmt printf-like format to use. Should not provide trailing
732 * '\n' as it is automatically included. 738 * '\n' as it is automatically included.
@@ -780,7 +786,7 @@ EAPI void eina_log_vprint(int domain,
780 */ 786 */
781 787
782/** 788/**
783 * Alternative logging method, this will output to standard output stream. 789 * @brief Alternative logging method, this will output to standard output stream.
784 * 790 *
785 * @param d The domain. 791 * @param d The domain.
786 * @param level The level. 792 * @param level The level.
@@ -815,7 +821,16 @@ EAPI void eina_log_print_cb_stdout(const Eina_Log_Domain *d,
815 va_list args); 821 va_list args);
816 822
817/** 823/**
818 * Default logging method, this will output to standard error stream. 824 * @brief Default logging method, this will output to standard error stream.
825 *
826 * @param d The domain.
827 * @param level The level.
828 * @param file The file which is logged.
829 * @param fnc The function which is logged.
830 * @param line The line which is logged.
831 * @param fmt The ouptut format to use.
832 * @param data Not used.
833 * @param args The arguments needed by the format.
819 * 834 *
820 * This method will colorize output based on domain provided color and 835 * This method will colorize output based on domain provided color and
821 * message logging level. 836 * message logging level.
diff --git a/libraries/eina/src/include/eina_magic.h b/libraries/eina/src/include/eina_magic.h
index 44cd4e9..d4909d8 100644
--- a/libraries/eina/src/include/eina_magic.h
+++ b/libraries/eina/src/include/eina_magic.h
@@ -21,6 +21,7 @@
21 21
22#include "eina_config.h" 22#include "eina_config.h"
23#include "eina_types.h" 23#include "eina_types.h"
24#include "eina_error.h"
24 25
25/** 26/**
26 * @page eina_magic_example_01_page 27 * @page eina_magic_example_01_page
@@ -200,6 +201,13 @@ EAPI Eina_Bool eina_magic_string_static_set(Eina_Magic magic,
200 */ 201 */
201#define EINA_MAGIC_NONE 0x1234fedc 202#define EINA_MAGIC_NONE 0x1234fedc
202 203
204/**
205 * @var EINA_ERROR_MAGIC_FAILED
206 * Error identifier corresponding to magic check failure.
207 */
208EAPI extern Eina_Error EINA_ERROR_MAGIC_FAILED;
209
210
203#ifdef EINA_MAGIC_DEBUG 211#ifdef EINA_MAGIC_DEBUG
204 212
205/** 213/**
diff --git a/libraries/eina/src/include/eina_main.h b/libraries/eina/src/include/eina_main.h
index fa34d59..4baf40e 100644
--- a/libraries/eina/src/include/eina_main.h
+++ b/libraries/eina/src/include/eina_main.h
@@ -50,7 +50,7 @@
50 * @def EINA_VERSION_MINOR 50 * @def EINA_VERSION_MINOR
51 * @brief Minor version of Eina 51 * @brief Minor version of Eina
52 */ 52 */
53#define EINA_VERSION_MINOR 0 53#define EINA_VERSION_MINOR 2
54 54
55/** 55/**
56 * @typedef Eina_Version 56 * @typedef Eina_Version
@@ -134,6 +134,9 @@ EAPI int eina_threads_shutdown(void);
134 134
135/** 135/**
136 * @brief Check if you are calling this function from the same thread Eina was initialized or not 136 * @brief Check if you are calling this function from the same thread Eina was initialized or not
137 *
138 * @return #EINA_TRUE is the calling function is the same thread, #EINA_FALSE otherwise.
139 *
137 * @since 1.1.0 140 * @since 1.1.0
138 * 141 *
139 * Most EFL function are not thread safe and all the call need to happen in 142 * Most EFL function are not thread safe and all the call need to happen in
diff --git a/libraries/eina/src/include/eina_module.h b/libraries/eina/src/include/eina_module.h
index 58e38f9..178fa9a 100644
--- a/libraries/eina/src/include/eina_module.h
+++ b/libraries/eina/src/include/eina_module.h
@@ -67,6 +67,10 @@
67 */ 67 */
68typedef struct _Eina_Module Eina_Module; 68typedef struct _Eina_Module Eina_Module;
69 69
70/**
71 * @typedef Eina_Module_Cb
72 * Dynamic module loader callback.
73 */
70typedef Eina_Bool (*Eina_Module_Cb)(Eina_Module *m, void *data); 74typedef Eina_Bool (*Eina_Module_Cb)(Eina_Module *m, void *data);
71 75
72/** 76/**
@@ -135,21 +139,21 @@ EAPI Eina_Module *
135/** 139/**
136 * @brief Delete a module. 140 * @brief Delete a module.
137 * 141 *
138 * @param m The module to delete. 142 * @param module The module to delete.
139 * @return EINA_TRUE on success, EINA_FALSE otherwise. 143 * @return EINA_TRUE on success, EINA_FALSE otherwise.
140 * 144 *
141 * This function calls eina_module_unload() if @p m has been previously 145 * This function calls eina_module_unload() if @p module has been previously
142 * loaded and frees the allocated memory. On success this function 146 * loaded and frees the allocated memory. On success this function
143 * returns EINA_TRUE and EINA_FALSE otherwise. If @p m is @c NULL, the 147 * returns EINA_TRUE and EINA_FALSE otherwise. If @p module is @c NULL, the
144 * function returns immediately. 148 * function returns immediately.
145 */ 149 */
146EAPI Eina_Bool 150EAPI Eina_Bool
147 eina_module_free(Eina_Module *m) EINA_ARG_NONNULL(1); 151 eina_module_free(Eina_Module *module) EINA_ARG_NONNULL(1);
148 152
149/** 153/**
150 * @brief Load a module. 154 * @brief Load a module.
151 * 155 *
152 * @param m The module to load. 156 * @param module The module to load.
153 * @return EINA_TRUE on success, EINA_FALSE otherwise. 157 * @return EINA_TRUE on success, EINA_FALSE otherwise.
154 * 158 *
155 * This function load the shared file object passed in 159 * This function load the shared file object passed in
@@ -160,7 +164,7 @@ EAPI Eina_Bool
160 * module can not be initialized, the error 164 * module can not be initialized, the error
161 * #EINA_ERROR_MODULE_INIT_FAILED is set and #EINA_FALSE is 165 * #EINA_ERROR_MODULE_INIT_FAILED is set and #EINA_FALSE is
162 * returned. If the module has already been loaded, it's refeence 166 * returned. If the module has already been loaded, it's refeence
163 * counter is increased by one and #EINA_TRUE is returned. If @p m is 167 * counter is increased by one and #EINA_TRUE is returned. If @p module is
164 * @c NULL, the function returns immediately #EINA_FALSE. 168 * @c NULL, the function returns immediately #EINA_FALSE.
165 * 169 *
166 * When the symbols of the shared file objetcts are not needed 170 * When the symbols of the shared file objetcts are not needed
@@ -172,29 +176,29 @@ EAPI Eina_Bool
172/** 176/**
173 * @brief Unload a module. 177 * @brief Unload a module.
174 * 178 *
175 * @param m The module to load. 179 * @param module The module to load.
176 * @return EINA_TRUE on success, EINA_FALSE otherwise. 180 * @return EINA_TRUE on success, EINA_FALSE otherwise.
177 * 181 *
178 * This function unload the module @p m that has been previously 182 * This function unload the module @p module that has been previously
179 * loaded by eina_module_load(). If the reference counter of @p m is 183 * loaded by eina_module_load(). If the reference counter of @p module is
180 * strictly greater than @c 1, #EINA_FALSE is returned. Otherwise, the 184 * strictly greater than @c 1, #EINA_FALSE is returned. Otherwise, the
181 * shared object file is closed and if it is a internal Eina module, it 185 * shared object file is closed and if it is a internal Eina module, it
182 * is shutted down just before. In that case, #EINA_TRUE is 186 * is shutted down just before. In that case, #EINA_TRUE is
183 * returned. In all case, the reference counter is decreased. If @p m 187 * returned. In all case, the reference counter is decreased. If @p module
184 * is @c NULL, the function returns immediately #EINA_FALSE. 188 * is @c NULL, the function returns immediately #EINA_FALSE.
185 */ 189 */
186EAPI Eina_Bool 190EAPI Eina_Bool
187 eina_module_unload(Eina_Module *m) EINA_ARG_NONNULL(1); 191 eina_module_unload(Eina_Module *module) EINA_ARG_NONNULL(1);
188 192
189/** 193/**
190 * @brief Retrive the data associated to a symbol. 194 * @brief Retrive the data associated to a symbol.
191 * 195 *
192 * @param m The module. 196 * @param module The module.
193 * @param symbol The symbol. 197 * @param symbol The symbol.
194 * @return The data associated to the symbol, or @c NULL on failure. 198 * @return The data associated to the symbol, or @c NULL on failure.
195 * 199 *
196 * This function returns the data associated to @p symbol of @p m. @p 200 * This function returns the data associated to @p symbol of @p module. @p
197 * m must have been loaded before with eina_module_load(). If @p m 201 * module must have been loaded before with eina_module_load(). If @p module
198 * is @c NULL, or if it has not been correctly loaded before, the 202 * is @c NULL, or if it has not been correctly loaded before, the
199 * function returns immediately @c NULL. 203 * function returns immediately @c NULL.
200 */ 204 */
@@ -204,15 +208,15 @@ EAPI void *
204/** 208/**
205 * @brief Return the file name associated to the module. 209 * @brief Return the file name associated to the module.
206 * 210 *
207 * @param m The module. 211 * @param module The module.
208 * @return The file name. 212 * @return The file name.
209 * 213 *
210 * This function returns the file name passed in eina_module_new(). If 214 * This function returns the file name passed in eina_module_new(). If
211 * @p m is @c NULL, the function returns immediately @c NULL. The 215 * @p module is @c NULL, the function returns immediately @c NULL. The
212 * returned value must no be freed. 216 * returned value must no be freed.
213 */ 217 */
214EAPI const char * 218EAPI const char *
215 eina_module_file_get(const Eina_Module *m) EINA_PURE EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1); 219 eina_module_file_get(const Eina_Module *module) EINA_PURE EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
216 220
217 221
218/** 222/**
@@ -256,6 +260,7 @@ EAPI char *
256 * @param array The array that stores the list of the modules. 260 * @param array The array that stores the list of the modules.
257 * @param path The directory's path to search for modules. 261 * @param path The directory's path to search for modules.
258 * @param arch The architecture string. 262 * @param arch The architecture string.
263 * @return The array of modules found in @p path matching @p arch.
259 * 264 *
260 * This function adds to @p array the module names found in @p path 265 * This function adds to @p array the module names found in @p path
261 * which match the cpu architecture @p arch. If @p path or @p arch is 266 * which match the cpu architecture @p arch. If @p path or @p arch is
@@ -273,6 +278,7 @@ EAPI Eina_Array *
273 * @param recursive Iterate recursively on the path. 278 * @param recursive Iterate recursively on the path.
274 * @param cb Callback function to call on each module. 279 * @param cb Callback function to call on each module.
275 * @param data Data passed to the callback function. 280 * @param data Data passed to the callback function.
281 * @return The array of modules found in @p path.
276 * 282 *
277 * This function adds to @p array the list of modules found in 283 * This function adds to @p array the list of modules found in
278 * @p path. If @p recursive is #EINA_TRUE, then recursive search is 284 * @p path. If @p recursive is #EINA_TRUE, then recursive search is
@@ -295,7 +301,7 @@ EAPI Eina_Array *
295 * @p array. If @p array is @c NULL, this function does nothing. 301 * @p array. If @p array is @c NULL, this function does nothing.
296 */ 302 */
297EAPI void 303EAPI void
298 eina_module_list_load(Eina_Array *list) EINA_ARG_NONNULL(1); 304 eina_module_list_load(Eina_Array *array) EINA_ARG_NONNULL(1);
299 305
300/** 306/**
301 * @brief Unload every module on the list of modules. 307 * @brief Unload every module on the list of modules.
@@ -306,7 +312,7 @@ EAPI void
306 * @p array. If @p array is @c NULL, this function does nothing. 312 * @p array. If @p array is @c NULL, this function does nothing.
307 */ 313 */
308EAPI void 314EAPI void
309 eina_module_list_unload(Eina_Array *list) EINA_ARG_NONNULL(1); 315 eina_module_list_unload(Eina_Array *array) EINA_ARG_NONNULL(1);
310 316
311/** 317/**
312 * @p Free every module on the list of modules. 318 * @p Free every module on the list of modules.
@@ -317,13 +323,14 @@ EAPI void
317 * @p array. If @p array is @c NULL, this function does nothing. 323 * @p array. If @p array is @c NULL, this function does nothing.
318 */ 324 */
319EAPI void 325EAPI void
320 eina_module_list_free(Eina_Array *list) EINA_ARG_NONNULL(1); 326 eina_module_list_free(Eina_Array *array) EINA_ARG_NONNULL(1);
321 327
322/** 328/**
323 * @brief Find an module in array. 329 * @brief Find an module in array.
324 * 330 *
325 * @param array The array to find the module. 331 * @param array The array to find the module.
326 * @param module The name of module to be searched. 332 * @param module The name of module to be searched.
333 * @return The module to find on success, @c NULL otherwise.
327 * 334 *
328 * This function finds an @p module in @p array. 335 * This function finds an @p module in @p array.
329 * If the element is found the function returns the module, else 336 * If the element is found the function returns the module, else
diff --git a/libraries/eina/src/include/eina_simple_xml_parser.h b/libraries/eina/src/include/eina_simple_xml_parser.h
index db9a4e1..78660ef 100644
--- a/libraries/eina/src/include/eina_simple_xml_parser.h
+++ b/libraries/eina/src/include/eina_simple_xml_parser.h
@@ -119,16 +119,16 @@ struct _Eina_Simple_XML_Node_Data
119 119
120typedef enum _Eina_Simple_XML_Type 120typedef enum _Eina_Simple_XML_Type
121{ 121{
122 EINA_SIMPLE_XML_OPEN = 0, /* <tag attribute="value"> */ 122 EINA_SIMPLE_XML_OPEN = 0, /*!< <tag attribute="value"> */
123 EINA_SIMPLE_XML_OPEN_EMPTY, /* <tag attribute="value" /> */ 123 EINA_SIMPLE_XML_OPEN_EMPTY, /*!< <tag attribute="value" /> */
124 EINA_SIMPLE_XML_CLOSE, /* </tag> */ 124 EINA_SIMPLE_XML_CLOSE, /*!< </tag> */
125 EINA_SIMPLE_XML_DATA, /* tag text data */ 125 EINA_SIMPLE_XML_DATA, /*!< tag text data */
126 EINA_SIMPLE_XML_CDATA, /* <![CDATA[something]]> */ 126 EINA_SIMPLE_XML_CDATA, /*!< <![CDATA[something]]> */
127 EINA_SIMPLE_XML_ERROR, /* error contents */ 127 EINA_SIMPLE_XML_ERROR, /*!< error contents */
128 EINA_SIMPLE_XML_PROCESSING, /* <?xml ... ?> <?php .. ?> */ 128 EINA_SIMPLE_XML_PROCESSING, /*!< <?xml ... ?> <?php .. ?> */
129 EINA_SIMPLE_XML_DOCTYPE, /* <!DOCTYPE html */ 129 EINA_SIMPLE_XML_DOCTYPE, /*!< <!DOCTYPE html */
130 EINA_SIMPLE_XML_COMMENT, /* <!-- something --> */ 130 EINA_SIMPLE_XML_COMMENT, /*!< <!-- something --> */
131 EINA_SIMPLE_XML_IGNORED /* whatever is ignored by parser, like whitespace */ 131 EINA_SIMPLE_XML_IGNORED /*!< whatever is ignored by parser, like whitespace */
132} Eina_Simple_XML_Type; 132} Eina_Simple_XML_Type;
133 133
134typedef Eina_Bool (*Eina_Simple_XML_Cb)(void *data, Eina_Simple_XML_Type type, const char *content, unsigned offset, unsigned length); 134typedef Eina_Bool (*Eina_Simple_XML_Cb)(void *data, Eina_Simple_XML_Type type, const char *content, unsigned offset, unsigned length);
@@ -137,7 +137,7 @@ typedef Eina_Bool (*Eina_Simple_XML_Attribute_Cb)(void *data, const char *key, c
137 137
138/** 138/**
139 * Parse a section of XML string text 139 * Parse a section of XML string text
140 * 140 *
141 * @param buf the input string. May not contain \0 terminator. 141 * @param buf the input string. May not contain \0 terminator.
142 * @param buflen the input string size. 142 * @param buflen the input string size.
143 * @param strip whenever this parser should strip leading and trailing 143 * @param strip whenever this parser should strip leading and trailing
@@ -164,12 +164,15 @@ EAPI Eina_Bool eina_simple_xml_parse(const char *buf, unsigned buflen,
164/** 164/**
165 * Given the contents of a tag, find where the attributes start. 165 * Given the contents of a tag, find where the attributes start.
166 * 166 *
167 * The tag contents is returned by eina_simple_xml_parse() when 167 * @param buf the input string. May not contain \0 terminator.
168 * type is #EINA_SIMPLE_XML_OPEN or #EINA_SIMPLE_XML_OPEN_EMPTY. 168 * @param buflen the input string size.
169 *
170 * @return pointer to the start of attributes, it can be used 169 * @return pointer to the start of attributes, it can be used
171 * to feed eina_simple_xml_attributes_parse(). NULL is returned 170 * to feed eina_simple_xml_attributes_parse(). NULL is returned
172 * if no attributes were found. 171 * if no attributes were found.
172 *
173 * The tag contents is returned by eina_simple_xml_parse() when
174 * type is #EINA_SIMPLE_XML_OPEN or #EINA_SIMPLE_XML_OPEN_EMPTY.
175 *
173 */ 176 */
174EAPI const char * eina_simple_xml_tag_attributes_find(const char *buf, unsigned buflen); 177EAPI const char * eina_simple_xml_tag_attributes_find(const char *buf, unsigned buflen);
175 178
@@ -183,6 +186,7 @@ EAPI const char * eina_simple_xml_tag_attributes_find(const char *buf, unsigned
183 * key (null-terminated) and the last is the value (null 186 * key (null-terminated) and the last is the value (null
184 * terminated). These strings should not be modified and 187 * terminated). These strings should not be modified and
185 * reference is just valid until the function return. 188 * reference is just valid until the function return.
189 * @param data data to pass to the callback function.
186 * 190 *
187 * @return EINA_TRUE on success or EINA_FALSE if it was aborted by user or 191 * @return EINA_TRUE on success or EINA_FALSE if it was aborted by user or
188 * parsing error. 192 * parsing error.
@@ -238,8 +242,8 @@ EAPI void eina_simple_xml_node_tag_free(Eina_Simple_XML_Node_Tag *tag);
238 * 242 *
239 * @param parent if provided, will be set in the resulting structure 243 * @param parent if provided, will be set in the resulting structure
240 * as well as the data will be appended to children list. 244 * as well as the data will be appended to children list.
241 * @param content string to be used. Must not be NULL. 245 * @param contents string to be used. Must not be NULL.
242 * @param length size in bytes of @a content. 246 * @param length size in bytes of @a contents.
243 * 247 *
244 * @return newly allocated memory or NULL on error. This memory should be 248 * @return newly allocated memory or NULL on error. This memory should be
245 * released with eina_simple_xml_node_data_free() or indirectly 249 * released with eina_simple_xml_node_data_free() or indirectly
@@ -250,7 +254,7 @@ EAPI Eina_Simple_XML_Node_Data * eina_simple_xml_node_data_new(Eina_Simple_XML_N
250/** 254/**
251 * Remove data from parent and delete it. 255 * Remove data from parent and delete it.
252 * 256 *
253 * @param data to release memory. 257 * @param node to release memory.
254 */ 258 */
255EAPI void eina_simple_xml_node_data_free(Eina_Simple_XML_Node_Data *node); 259EAPI void eina_simple_xml_node_data_free(Eina_Simple_XML_Node_Data *node);
256 260
@@ -260,7 +264,7 @@ EAPI void eina_simple_xml_node_data_free(Eina_Simple_XML_Node_Data *node);
260 * 264 *
261 * @param parent if provided, will be set in the resulting structure 265 * @param parent if provided, will be set in the resulting structure
262 * as well as the cdata will be appended to children list. 266 * as well as the cdata will be appended to children list.
263 * @param content string to be used. Must not be NULL. 267 * @param contents string to be used. Must not be NULL.
264 * @param length size in bytes of @a content. 268 * @param length size in bytes of @a content.
265 * 269 *
266 * @return newly allocated memory or NULL on error. This memory should be 270 * @return newly allocated memory or NULL on error. This memory should be
@@ -272,7 +276,7 @@ EAPI Eina_Simple_XML_Node_CData * eina_simple_xml_node_cdata_new(Eina_Simple_XML
272/** 276/**
273 * Remove cdata from parent and delete it. 277 * Remove cdata from parent and delete it.
274 * 278 *
275 * @param cdata to release memory. 279 * @param node to release memory.
276 */ 280 */
277EAPI void eina_simple_xml_node_cdata_free(Eina_Simple_XML_Node_Data *node); 281EAPI void eina_simple_xml_node_cdata_free(Eina_Simple_XML_Node_Data *node);
278 282
@@ -282,8 +286,8 @@ EAPI void eina_simple_xml_node_cdata_free(Eina_Simple_XML_Node_Data *node);
282 * 286 *
283 * @param parent if provided, will be set in the resulting structure 287 * @param parent if provided, will be set in the resulting structure
284 * as well as the processing will be appended to children list. 288 * as well as the processing will be appended to children list.
285 * @param content string to be used. Must not be NULL. 289 * @param contents string to be used. Must not be NULL.
286 * @param length size in bytes of @a content. 290 * @param length size in bytes of @a contents.
287 * 291 *
288 * @return newly allocated memory or NULL on error. This memory should be 292 * @return newly allocated memory or NULL on error. This memory should be
289 * released with eina_simple_xml_node_processing_free() or indirectly 293 * released with eina_simple_xml_node_processing_free() or indirectly
@@ -294,7 +298,7 @@ EAPI Eina_Simple_XML_Node_Processing * eina_simple_xml_node_processing_new(Eina_
294/** 298/**
295 * Remove processing from parent and delete it. 299 * Remove processing from parent and delete it.
296 * 300 *
297 * @param processing to release memory. 301 * @param node processing to release memory.
298 */ 302 */
299EAPI void eina_simple_xml_node_processing_free(Eina_Simple_XML_Node_Data *node); 303EAPI void eina_simple_xml_node_processing_free(Eina_Simple_XML_Node_Data *node);
300 304
@@ -304,8 +308,8 @@ EAPI void eina_simple_xml_node_processing_free(Eina_Simple_XML_Node_Data *node);
304 * 308 *
305 * @param parent if provided, will be set in the resulting structure 309 * @param parent if provided, will be set in the resulting structure
306 * as well as the doctype will be appended to children list. 310 * as well as the doctype will be appended to children list.
307 * @param content string to be used. Must not be NULL. 311 * @param contents string to be used. Must not be NULL.
308 * @param length size in bytes of @a content. 312 * @param length size in bytes of @a contents.
309 * 313 *
310 * @return newly allocated memory or NULL on error. This memory should be 314 * @return newly allocated memory or NULL on error. This memory should be
311 * released with eina_simple_xml_node_doctype_free() or indirectly 315 * released with eina_simple_xml_node_doctype_free() or indirectly
@@ -316,7 +320,7 @@ EAPI Eina_Simple_XML_Node_Doctype * eina_simple_xml_node_doctype_new(Eina_Simple
316/** 320/**
317 * Remove doctype from parent and delete it. 321 * Remove doctype from parent and delete it.
318 * 322 *
319 * @param doctype to release memory. 323 * @param node doctype to release memory.
320 */ 324 */
321EAPI void eina_simple_xml_node_doctype_free(Eina_Simple_XML_Node_Data *node); 325EAPI void eina_simple_xml_node_doctype_free(Eina_Simple_XML_Node_Data *node);
322 326
@@ -326,8 +330,8 @@ EAPI void eina_simple_xml_node_doctype_free(Eina_Simple_XML_Node_Data *node);
326 * 330 *
327 * @param parent if provided, will be set in the resulting structure 331 * @param parent if provided, will be set in the resulting structure
328 * as well as the comment will be appended to children list. 332 * as well as the comment will be appended to children list.
329 * @param content string to be used. Must not be NULL. 333 * @param contents string to be used. Must not be NULL.
330 * @param length size in bytes of @a content. 334 * @param length size in bytes of @a contents.
331 * 335 *
332 * @return newly allocated memory or NULL on error. This memory should be 336 * @return newly allocated memory or NULL on error. This memory should be
333 * released with eina_simple_xml_node_comment_free() or indirectly 337 * released with eina_simple_xml_node_comment_free() or indirectly
@@ -338,7 +342,7 @@ EAPI Eina_Simple_XML_Node_Comment * eina_simple_xml_node_comment_new(Eina_Simple
338/** 342/**
339 * Remove comment from parent and delete it. 343 * Remove comment from parent and delete it.
340 * 344 *
341 * @param comment to release memory. 345 * @param node comment to release memory.
342 */ 346 */
343EAPI void eina_simple_xml_node_comment_free(Eina_Simple_XML_Node_Data *node); 347EAPI void eina_simple_xml_node_comment_free(Eina_Simple_XML_Node_Data *node);
344 348
@@ -370,7 +374,7 @@ EAPI void eina_simple_xml_node_root_free(Eina_Simple_XML_Node_Root *root);
370 * @param node the base node to convert. 374 * @param node the base node to convert.
371 * @param indent indentation string, or NULL to disable it. 375 * @param indent indentation string, or NULL to disable it.
372 * 376 *
373 * @param NULL on errors or a newly allocated string on success. 377 * @return NULL on errors or a newly allocated string on success.
374 */ 378 */
375EAPI char * eina_simple_xml_node_dump(Eina_Simple_XML_Node *node, const char *indent); 379EAPI char * eina_simple_xml_node_dump(Eina_Simple_XML_Node *node, const char *indent);
376 380
diff --git a/libraries/eina/src/include/eina_str.h b/libraries/eina/src/include/eina_str.h
index 8b52ab2..2913fbf 100644
--- a/libraries/eina/src/include/eina_str.h
+++ b/libraries/eina/src/include/eina_str.h
@@ -161,14 +161,14 @@ EAPI Eina_Bool eina_str_has_extension(const char *str, const char *ext) EI
161/** 161/**
162 * @brief Split a string using a delimiter. 162 * @brief Split a string using a delimiter.
163 * 163 *
164 * @param str The string to split. 164 * @param string The string to split.
165 * @param delim The string which specifies the places at which to split the string. 165 * @param delimiter The string which specifies the places at which to split the string.
166 * @param max_tokens The maximum number of strings to split string into. 166 * @param max_tokens The maximum number of strings to split string into.
167 * @return A newly-allocated NULL-terminated array of strings or NULL if it 167 * @return A newly-allocated NULL-terminated array of strings or NULL if it
168 * fails to allocate the array. 168 * fails to allocate the array.
169 * 169 *
170 * This functin splits @p str into a maximum of @p max_tokens pieces, 170 * This functin splits @p string into a maximum of @p max_tokens pieces,
171 * using the given delimiter @p delim. @p delim is not included in any 171 * using the given delimiter @p delimiter. @p delimiter is not included in any
172 * of the resulting strings, unless @p max_tokens is reached. If 172 * of the resulting strings, unless @p max_tokens is reached. If
173 * @p max_tokens is less than @c 1, the string is splitted completely. If 173 * @p max_tokens is less than @c 1, the string is splitted completely. If
174 * @p max_tokens is reached, the last string in the returned string 174 * @p max_tokens is reached, the last string in the returned string
@@ -185,16 +185,16 @@ EAPI char **eina_str_split(const char *string, const char *delimiter, i
185/** 185/**
186 * @brief Split a string using a delimiter and returns number of elements. 186 * @brief Split a string using a delimiter and returns number of elements.
187 * 187 *
188 * @param str The string to split. 188 * @param string The string to split.
189 * @param delim The string which specifies the places at which to split the string. 189 * @param delimiter The string which specifies the places at which to split the string.
190 * @param max_tokens The maximum number of strings to split string into. 190 * @param max_tokens The maximum number of strings to split string into.
191 * @param elements Where to return the number of elements in returned 191 * @param elements Where to return the number of elements in returned
192 * array (not counting the terminating @c NULL). May be @c NULL. 192 * array (not counting the terminating @c NULL). May be @c NULL.
193 * @return A newly-allocated NULL-terminated array of strings or NULL if it 193 * @return A newly-allocated NULL-terminated array of strings or NULL if it
194 * fails to allocate the array. 194 * fails to allocate the array.
195 * 195 *
196 * This functin splits @p str into a maximum of @p max_tokens pieces, 196 * This function splits @p string into a maximum of @p max_tokens pieces,
197 * using the given delimiter @p delim. @p delim is not included in any 197 * using the given delimiter @p delimiter. @p delimiter is not included in any
198 * of the resulting strings, unless @p max_tokens is reached. If 198 * of the resulting strings, unless @p max_tokens is reached. If
199 * @p max_tokens is less than @c 1, the string is splitted completely. If 199 * @p max_tokens is less than @c 1, the string is splitted completely. If
200 * @p max_tokens is reached, the last string in the returned string 200 * @p max_tokens is reached, the last string in the returned string
diff --git a/libraries/eina/src/include/eina_strbuf.h b/libraries/eina/src/include/eina_strbuf.h
index 7043575..34c200f 100644
--- a/libraries/eina/src/include/eina_strbuf.h
+++ b/libraries/eina/src/include/eina_strbuf.h
@@ -99,6 +99,24 @@ EAPI Eina_Strbuf *eina_strbuf_new(void) EINA_MALLOC EINA_WARN_UNUSED_RESULT;
99EAPI Eina_Strbuf *eina_strbuf_manage_new(char *str) EINA_MALLOC EINA_WARN_UNUSED_RESULT; 99EAPI Eina_Strbuf *eina_strbuf_manage_new(char *str) EINA_MALLOC EINA_WARN_UNUSED_RESULT;
100 100
101/** 101/**
102 * @brief Create a new string buffer using the passed string. The passed
103 * string is used directly as the buffer, it's somehow the opposite function of
104 * @ref eina_strbuf_string_steal . The passed string must be malloced.
105 *
106 * @param str the string to manage
107 * @param length the length of the string.
108 * @return Newly allocated string buffer instance.
109 *
110 * This function creates a new string buffer. On error, @c NULL is
111 * returned and Eina error is set to #EINA_ERROR_OUT_OF_MEMORY. To
112 * free the resources, use eina_strbuf_free().
113 *
114 * @see eina_strbuf_manage_new()
115 * @since 1.2.0
116 */
117EAPI Eina_Strbuf *eina_strbuf_manage_new_length(char *str, size_t length) EINA_MALLOC EINA_WARN_UNUSED_RESULT;
118
119/**
102 * @brief Free a string buffer. 120 * @brief Free a string buffer.
103 * 121 *
104 * @param buf The string buffer to free. 122 * @param buf The string buffer to free.
diff --git a/libraries/eina/src/include/eina_stringshare.h b/libraries/eina/src/include/eina_stringshare.h
index af58add..862b2b2 100644
--- a/libraries/eina/src/include/eina_stringshare.h
+++ b/libraries/eina/src/include/eina_stringshare.h
@@ -289,6 +289,7 @@ EAPI void eina_stringshare_del(const char *str);
289 * 289 *
290 * @param str the shared string to know the length. It is safe to 290 * @param str the shared string to know the length. It is safe to
291 * give NULL, in that case -1 is returned. 291 * give NULL, in that case -1 is returned.
292 * @return The length of a shared string.
292 * 293 *
293 * This function is a cheap way to known the length of a shared 294 * This function is a cheap way to known the length of a shared
294 * string. Note that if the given pointer is not shared, bad 295 * string. Note that if the given pointer is not shared, bad
diff --git a/libraries/eina/src/include/eina_types.h b/libraries/eina/src/include/eina_types.h
index 8c77cdf..1653949 100644
--- a/libraries/eina/src/include/eina_types.h
+++ b/libraries/eina/src/include/eina_types.h
@@ -251,6 +251,10 @@ typedef int (*Eina_Compare_Cb)(const void *data1, const void *data2);
251 */ 251 */
252#define EINA_COMPARE_CB(function) ((Eina_Compare_Cb)function) 252#define EINA_COMPARE_CB(function) ((Eina_Compare_Cb)function)
253 253
254/**
255 * @typedef Eina_Each_Cb
256 * A callback type used when iterating over a container.
257 */
254typedef Eina_Bool (*Eina_Each_Cb)(const void *container, void *data, void *fdata); 258typedef Eina_Bool (*Eina_Each_Cb)(const void *container, void *data, void *fdata);
255 259
256/** 260/**
diff --git a/libraries/eina/src/include/eina_unicode.h b/libraries/eina/src/include/eina_unicode.h
index aed59af..2bbfe45 100644
--- a/libraries/eina/src/include/eina_unicode.h
+++ b/libraries/eina/src/include/eina_unicode.h
@@ -68,7 +68,16 @@ EAPI Eina_Unicode *eina_unicode_strdup(const Eina_Unicode *text) EINA_WARN_UNUSE
68 68
69 69
70/** 70/**
71 * @brief Same as strdup but cuts on n. Assumes n < len 71 * @brief Same as strdup but cuts on the given size. Assumes n < len
72 *
73 * @param text The text to duplicate.
74 * @param n The maximum size of the text to duplicate.
75 * @return The duplicated string.
76 *
77 * This function duplicates @p text. The resuting string is cut on @p
78 * n. @p n is assumed to be lesser (<) than the length of @p
79 * text. When not needed anymore, the returned string must be freed.
80 *
72 * @since 1.1.0 81 * @since 1.1.0
73 */ 82 */
74EAPI Eina_Unicode *eina_unicode_strndup(const Eina_Unicode *text, size_t n) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_MALLOC; 83EAPI Eina_Unicode *eina_unicode_strndup(const Eina_Unicode *text, size_t n) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_MALLOC;
@@ -107,9 +116,9 @@ EAPI Eina_Unicode *eina_unicode_escape(const Eina_Unicode *str) EINA_ARG_NONNULL
107 116
108 117
109/** 118/**
110 * Reads UTF8 bytes from @buf, starting at *@index and returns 119 * Reads UTF8 bytes from @p buf, starting at @p iindex and returns
111 * the decoded code point at iindex offset, and advances iindex 120 * the decoded code point at @p iindex offset, and advances @p iindex
112 * to the next code point after this. iindex is always advanced, 121 * to the next code point after this. @p iindex is always advanced,
113 * unless if the advancement is after the NULL. 122 * unless if the advancement is after the NULL.
114 * On error: return a codepoint between DC80 to DCFF where the low 8 bits 123 * On error: return a codepoint between DC80 to DCFF where the low 8 bits
115 * are the byte's value. 124 * are the byte's value.
@@ -122,9 +131,9 @@ EAPI Eina_Unicode *eina_unicode_escape(const Eina_Unicode *str) EINA_ARG_NONNULL
122EAPI Eina_Unicode eina_unicode_utf8_get_next(const char *buf, int *iindex) EINA_ARG_NONNULL(1, 2); 131EAPI Eina_Unicode eina_unicode_utf8_get_next(const char *buf, int *iindex) EINA_ARG_NONNULL(1, 2);
123 132
124/** 133/**
125 * Reads UTF8 bytes from @buf, starting at *@iindex and returns 134 * Reads UTF8 bytes from @p buf, starting at @p iindex and returns
126 * the decoded code point at iindex offset, and moves iindex 135 * the decoded code point at @p iindex offset, and moves àp iindex
127 * to the previous code point. iindex is always moved, as long 136 * to the previous code point. @p iindex is always moved, as long
128 * as it's not past the start of the string. 137 * as it's not past the start of the string.
129 * On error: return a codepoint between DC80 to DCFF where the low 8 bits 138 * On error: return a codepoint between DC80 to DCFF where the low 8 bits
130 * are the byte's value. 139 * are the byte's value.
diff --git a/libraries/eina/src/include/eina_ustrbuf.h b/libraries/eina/src/include/eina_ustrbuf.h
index f68cb7b..9710c42 100644
--- a/libraries/eina/src/include/eina_ustrbuf.h
+++ b/libraries/eina/src/include/eina_ustrbuf.h
@@ -65,7 +65,25 @@ EAPI Eina_UStrbuf *eina_ustrbuf_new(void) EINA_MALLOC EINA_WARN_UNUSED_RESULT;
65 * @see eina_ustrbuf_string_get() 65 * @see eina_ustrbuf_string_get()
66 * @since 1.1.0 66 * @since 1.1.0
67 */ 67 */
68EAPI Eina_Strbuf *eina_ustrbuf_manage_new(Eina_Unicode *str) EINA_MALLOC EINA_WARN_UNUSED_RESULT; 68EAPI Eina_UStrbuf *eina_ustrbuf_manage_new(Eina_Unicode *str) EINA_MALLOC EINA_WARN_UNUSED_RESULT;
69
70/**
71 * @brief Create a new string buffer using the passed string. The passed
72 * string is used directly as the buffer, it's somehow the opposite function of
73 * @ref eina_ustrbuf_string_steal . The passed string must be malloced.
74 *
75 * @param str the string to manage
76 * @param length the length of the string.
77 * @return Newly allocated string buffer instance.
78 *
79 * This function creates a new string buffer. On error, @c NULL is
80 * returned and Eina error is set to #EINA_ERROR_OUT_OF_MEMORY. To
81 * free the resources, use eina_ustrbuf_free().
82 *
83 * @see eina_ustrbuf_manage_new()
84 * @since 1.2.0
85 */
86EAPI Eina_UStrbuf *eina_ustrbuf_manage_new_length(Eina_Unicode *str, size_t length) EINA_MALLOC EINA_WARN_UNUSED_RESULT;
69 87
70/** 88/**
71 * @brief Free a string buffer. 89 * @brief Free a string buffer.
diff --git a/libraries/eina/src/include/eina_value.h b/libraries/eina/src/include/eina_value.h
new file mode 100644
index 0000000..846c4ef
--- /dev/null
+++ b/libraries/eina/src/include/eina_value.h
@@ -0,0 +1,3114 @@
1/* EINA - EFL data type library
2 * Copyright (C) 2012 ProFUSION embedded systems
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library;
16 * if not, see <http://www.gnu.org/licenses/>.
17 */
18
19#ifndef EINA_VALUE_H_
20#define EINA_VALUE_H_
21
22#include "eina_types.h"
23#include "eina_fp.h" /* defines int64_t and uint64_t */
24#include "eina_inarray.h"
25#include "eina_list.h"
26#include "eina_hash.h"
27#include <stdarg.h>
28
29/**
30 * @addtogroup Eina_Data_Types_Group Data Types
31 *
32 * @since 1.2
33 *
34 * @{
35 */
36
37/**
38 * @addtogroup Eina_Containers_Group Containers
39 *
40 * @{
41 */
42
43/**
44 * @defgroup Eina_Value_Group Generic Value Storage
45 *
46 * @{
47 */
48
49
50/**
51 * @typedef Eina_Value
52 * Store generic values.
53 *
54 * @since 1.2
55 */
56typedef struct _Eina_Value Eina_Value;
57
58/**
59 * @typedef Eina_Value_Type
60 * Describes the data contained by the value
61 *
62 * @since 1.2
63 */
64typedef struct _Eina_Value_Type Eina_Value_Type;
65
66/**
67 * @typedef Eina_Value_Union
68 * Union of all known value types.
69 *
70 * @since 1.2
71 */
72typedef union _Eina_Value_Union Eina_Value_Union;
73
74/**
75 * @union _Eina_Value_Union
76 * All possible value types.
77 *
78 * @since 1.2
79 */
80union _Eina_Value_Union
81{
82 unsigned char buf[8]; /**< just hold 8-bytes, more goes into ptr */
83 void *ptr; /**< used as generic pointer */
84 uint64_t _guarantee; /**< guarantees 8-byte alignment */
85};
86
87/**
88 * @var EINA_VALUE_TYPE_UCHAR
89 * manages unsigned char type.
90 *
91 * @since 1.2
92 */
93EAPI extern const Eina_Value_Type *EINA_VALUE_TYPE_UCHAR;
94
95/**
96 * @var EINA_VALUE_TYPE_USHORT
97 * manages unsigned short type.
98 *
99 * @since 1.2
100 */
101EAPI extern const Eina_Value_Type *EINA_VALUE_TYPE_USHORT;
102
103/**
104 * @var EINA_VALUE_TYPE_UINT
105 * manages unsigned int type.
106 *
107 * @since 1.2
108 */
109EAPI extern const Eina_Value_Type *EINA_VALUE_TYPE_UINT;
110
111/**
112 * @var EINA_VALUE_TYPE_ULONG
113 * manages unsigned long type.
114 *
115 * @since 1.2
116 */
117EAPI extern const Eina_Value_Type *EINA_VALUE_TYPE_ULONG;
118
119/**
120 * @var EINA_VALUE_TYPE_UINT64
121 * manages unsigned integer of 64 bits type.
122 *
123 * @since 1.2
124 */
125EAPI extern const Eina_Value_Type *EINA_VALUE_TYPE_UINT64;
126
127/**
128 * @var EINA_VALUE_TYPE_CHAR
129 * manages char type.
130 *
131 * @since 1.2
132 */
133EAPI extern const Eina_Value_Type *EINA_VALUE_TYPE_CHAR;
134
135/**
136 * @var EINA_VALUE_TYPE_SHORT
137 * manages short type.
138 *
139 * @since 1.2
140 */
141EAPI extern const Eina_Value_Type *EINA_VALUE_TYPE_SHORT;
142
143/**
144 * @var EINA_VALUE_TYPE_INT
145 * manages int type.
146 *
147 * @since 1.2
148 */
149EAPI extern const Eina_Value_Type *EINA_VALUE_TYPE_INT;
150
151/**
152 * @var EINA_VALUE_TYPE_LONG
153 * manages long type.
154 *
155 * @since 1.2
156 */
157EAPI extern const Eina_Value_Type *EINA_VALUE_TYPE_LONG;
158
159/**
160 * @var EINA_VALUE_TYPE_INT64
161 * manages integer of 64 bits type.
162 *
163 * @since 1.2
164 */
165EAPI extern const Eina_Value_Type *EINA_VALUE_TYPE_INT64;
166
167/**
168 * @var EINA_VALUE_TYPE_FLOAT
169 * manages float type.
170 *
171 * @since 1.2
172 */
173EAPI extern const Eina_Value_Type *EINA_VALUE_TYPE_FLOAT;
174
175/**
176 * @var EINA_VALUE_TYPE_DOUBLE
177 * manages double type.
178 *
179 * @since 1.2
180 */
181EAPI extern const Eina_Value_Type *EINA_VALUE_TYPE_DOUBLE;
182
183/**
184 * @var EINA_VALUE_TYPE_STRINGSHARE
185 * manages stringshared string type.
186 *
187 * @since 1.2
188 */
189EAPI extern const Eina_Value_Type *EINA_VALUE_TYPE_STRINGSHARE;
190
191/**
192 * @var EINA_VALUE_TYPE_STRING
193 * manages string type.
194 *
195 * @since 1.2
196 */
197EAPI extern const Eina_Value_Type *EINA_VALUE_TYPE_STRING;
198
199
200/**
201 * @var EINA_VALUE_TYPE_ARRAY
202 *
203 * manages array type. Use the value get/set for arrays:
204 * @li eina_value_array_get() and eina_value_array_set()
205 * @li eina_value_array_vget() and eina_value_array_vset()
206 * @li eina_value_array_pget() and eina_value_array_pset()
207 *
208 * 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
210 * and its contents must be properly configurable as @c subtype
211 * expects. eina_value_pset() takes a pointer to an #Eina_Value_Array.
212 * For your convenience, use eina_value_array_setup().
213 *
214 * 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
216 * use by value, no copies are done.
217 *
218 * @since 1.2
219 */
220EAPI extern const Eina_Value_Type *EINA_VALUE_TYPE_ARRAY;
221
222/**
223 * @var EINA_VALUE_TYPE_LIST
224 *
225 * manages list type. Use the value get/set for lists:
226 * @li eina_value_list_get() and eina_value_list_set()
227 * @li eina_value_list_vget() and eina_value_list_vset()
228 * @li eina_value_list_pget() and eina_value_list_pset()
229 *
230 * 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
232 * must be properly configurable as @c subtype
233 * expects. eina_value_pset() takes a pointer to an #Eina_Value_List.
234 * For your convenience, use eina_value_list_setup().
235 *
236 * 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
238 * use by value, no copies are done.
239 *
240 * @since 1.2
241 */
242EAPI extern const Eina_Value_Type *EINA_VALUE_TYPE_LIST;
243
244/**
245 * @var EINA_VALUE_TYPE_HASH
246 *
247 * manages hash type. Use the value get/set for hashes:
248 * @li eina_value_hash_get() and eina_value_hash_set()
249 * @li eina_value_hash_vget() and eina_value_hash_vset()
250 * @li eina_value_hash_pget() and eina_value_hash_pset()
251 *
252 * 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
254 * be adopted and its contents must be properly configurable as @c
255 * subtype expects. eina_value_pset() takes a pointer to an
256 * #Eina_Value_Hash. For your convenience, use
257 * eina_value_hash_setup().
258 *
259 * eina_value_get() and eina_value_pget() takes a pointer to
260 * #Eina_Value_Hash, it's an exact copy of the current structure in
261 * use by value, no copies are done.
262 *
263 * @note be aware that hash data is always an allocated memory of size
264 * defined by @c subtype->value_size. If your @c subtype is an
265 * integer, add as data malloc(sizeof(int)). If your @c subtype
266 * is an string, add as data malloc(sizeof(char*)) and this data
267 * value must point to strdup(string)!
268 *
269 * @since 1.2
270 */
271EAPI extern const Eina_Value_Type *EINA_VALUE_TYPE_HASH;
272
273/**
274 * @var EINA_VALUE_TYPE_TIMEVAL
275 * manages 'struct timeval' type
276 *
277 * eina_value_set() takes a "struct timeval" from sys/time.h.
278 * eina_value_pset() takes a pointer to "struct timeval".
279 *
280 * eina_value_get() and eina_value_pget() takes a pointer to "struct
281 * timeval" and it's an exact copy of value.
282 *
283 * @since 1.2
284 */
285EAPI extern const Eina_Value_Type *EINA_VALUE_TYPE_TIMEVAL;
286
287/**
288 * @var EINA_VALUE_TYPE_BLOB
289 * manages blob of bytes type, see @ref Eina_Value_Blob
290 *
291 * eina_value_set() takes an #Eina_Value_Blob
292 * eina_value_pset() takes a pointer to #Eina_Value_Blob.
293 *
294 * eina_value_get() and eina_value_pget() takes a pointer to
295 * #Eina_Value_Blob and it's an exact copy of value, no allocations
296 * are made.
297 *
298 * Memory is untouched unless you provide @c ops (operations) pointer.
299 *
300 * @since 1.2
301 */
302EAPI extern const Eina_Value_Type *EINA_VALUE_TYPE_BLOB;
303
304/**
305 * @var EINA_VALUE_TYPE_STRUCT
306 *
307 * manages struct type. Use the value get/set for structs:
308 * @li eina_value_struct_get() and eina_value_struct_set()
309 * @li eina_value_struct_vget() and eina_value_struct_vset()
310 * @li eina_value_struct_pget() and eina_value_struct_pset()
311 *
312 * 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
314 * must be properly configurable as @c desc expects. eina_value_pset()
315 * takes a pointer to an #Eina_Value_Struct. For your convenience, use
316 * eina_value_struct_setup().
317 *
318 * eina_value_get() and eina_value_pget() takes a pointer to
319 * #Eina_Value_Struct, it's an exact copy of the current structure in
320 * use by value, no copies are done.
321 *
322 * @since 1.2
323 */
324EAPI extern const Eina_Value_Type *EINA_VALUE_TYPE_STRUCT;
325
326/**
327 * @var EINA_ERROR_VALUE_FAILED
328 * Error identifier corresponding to value check failure.
329 *
330 * @since 1.2
331 */
332EAPI extern int EINA_ERROR_VALUE_FAILED;
333
334/**
335 * @defgroup Eina_Value_Value_Group Generic Value management
336 *
337 * @{
338 */
339
340/**
341 * @struct _Eina_Value
342 * defines the contents of a value
343 *
344 * @since 1.2
345 */
346struct _Eina_Value
347{
348 const Eina_Value_Type *type; /**< how to access values */
349 Eina_Value_Union value; /**< to be accessed with type descriptor */
350};
351
352/**
353 * @brief Create generic value storage.
354 * @param type how to manage this value.
355 * @return The new value or @c NULL on failure.
356 *
357 * Create a new generic value storage. The members are managed using
358 * the description specified by @a type.
359 *
360 * Some types may specify more operations:
361 * eg. #EINA_VALUE_TYPE_ARRAY uses eina_value_array_set(),
362 * eina_value_array_get() and so on.
363 *
364 * On failure, @c NULL is returned and either #EINA_ERROR_OUT_OF_MEMORY or
365 * #EINA_ERROR_VALUE_FAILED is set.
366 *
367 * @note this calls creates from mempool and then uses
368 * eina_value_setup(). Consider using eina_value_flush() and
369 * eina_value_setup() instead to avoid memory allocations.
370 *
371 * @see eina_value_free()
372 *
373 * @since 1.2
374 */
375EAPI Eina_Value *eina_value_new(const Eina_Value_Type *type) EINA_ARG_NONNULL(1) EINA_MALLOC EINA_WARN_UNUSED_RESULT;
376
377/**
378 * @brief Free value and its data.
379 * @param value value object
380 *
381 * @see eina_value_flush()
382 *
383 * @since 1.2
384 */
385EAPI void eina_value_free(Eina_Value *value) EINA_ARG_NONNULL(1);
386
387
388/**
389 * @brief Initialize generic value storage.
390 * @param value value object
391 * @param type how to manage this value.
392 * @return #EINA_TRUE on success, #EINA_FALSE otherwise.
393 *
394 * Initializes existing generic value storage. The members are managed using the
395 * description specified by @a type.
396 *
397 * Some types may specify more operations, as an example
398 * #EINA_VALUE_TYPE_ARRAY uses eina_value_array_set(),
399 * eina_value_array_get() and so on.
400 *
401 * @note Existing contents are ignored! If the value was previously used, then
402 * use eina_value_flush() first.
403 *
404 * On failure, #EINA_FALSE is returned and #EINA_ERROR_OUT_OF_MEMORY
405 * or #EINA_ERROR_VALUE_FAILED is set.
406 *
407 * @see eina_value_flush()
408 *
409 * @since 1.2
410 */
411static inline Eina_Bool eina_value_setup(Eina_Value *value,
412 const Eina_Value_Type *type) EINA_ARG_NONNULL(1, 2);
413
414/**
415 * @brief Create generic value storage.
416 * @param value value object
417 *
418 * Releases all the resources associated with an #Eina_Value. The
419 * value must be already set with eina_value_setup() or
420 * eina_value_new().
421 *
422 * After this call returns, the contents of the value are undefined,
423 * but the value can be reused by calling eina_value_setup() again.
424 *
425 * @see eina_value_setup()
426 * @see eina_value_free()
427 *
428 * @since 1.2
429 */
430static inline void eina_value_flush(Eina_Value *value) EINA_ARG_NONNULL(1);
431
432/**
433 * @brief Copy generic value storage.
434 * @param value source value object
435 * @param copy destination value object
436 * @return #EINA_TRUE on success, #EINA_FALSE otherwise.
437 *
438 * The @a copy object is considered internalized and its existing
439 * contents are overwritten (just as if eina_value_flush() was called on
440 * it).
441 *
442 * The copy happens by calling eina_value_setup() on @a copy, followed
443 * by getting the contents of @a value and setting it to @a copy.
444 *
445 * @since 1.2
446 */
447EAPI Eina_Bool eina_value_copy(const Eina_Value *value,
448 Eina_Value *copy) EINA_ARG_NONNULL(1, 2);
449
450/**
451 * @brief Compare generic value storage.
452 * @param a left side of comparison
453 * @param b right side of comparison
454 * @return less than zero if a < b, greater than zero if a > b, zero
455 * if a == b
456 *
457 * @since 1.2
458 */
459static inline int eina_value_compare(const Eina_Value *a,
460 const Eina_Value *b) EINA_ARG_NONNULL(1, 2);
461
462/**
463 * @brief Set the generic value.
464 * @param value source value object
465 * @return #EINA_TRUE on success, #EINA_FALSE otherwise.
466 *
467 * The variable argument is dependent on chosen type. The list for
468 * basic types:
469 *
470 * @li EINA_VALUE_TYPE_UCHAR: unsigned char
471 * @li EINA_VALUE_TYPE_USHORT: unsigned short
472 * @li EINA_VALUE_TYPE_UINT: unsigned int
473 * @li EINA_VALUE_TYPE_ULONG: unsigned long
474 * @li EINA_VALUE_TYPE_UINT64: uint64_t
475 * @li EINA_VALUE_TYPE_CHAR: char
476 * @li EINA_VALUE_TYPE_SHORT: short
477 * @li EINA_VALUE_TYPE_INT: int
478 * @li EINA_VALUE_TYPE_LONG: long
479 * @li EINA_VALUE_TYPE_INT64: int64_t
480 * @li EINA_VALUE_TYPE_FLOAT: float
481 * @li EINA_VALUE_TYPE_DOUBLE: double
482 * @li EINA_VALUE_TYPE_STRINGSHARE: const char *
483 * @li EINA_VALUE_TYPE_STRING: const char *
484 * @li EINA_VALUE_TYPE_ARRAY: Eina_Value_Array
485 * @li EINA_VALUE_TYPE_LIST: Eina_Value_List
486 * @li EINA_VALUE_TYPE_HASH: Eina_Value_Hash
487 * @li EINA_VALUE_TYPE_TIMEVAL: struct timeval
488 * @li EINA_VALUE_TYPE_BLOB: Eina_Value_Blob
489 * @li EINA_VALUE_TYPE_STRUCT: Eina_Value_Struct
490 *
491 * @code
492 * Eina_Value *value = eina_value_new(EINA_VALUE_TYPE_INT);
493 * int x = 567;
494 * eina_value_set(value, 1234);
495 * eina_value_set(value, x);
496 *
497 * eina_value_flush(value);
498 *
499 * eina_value_setup(value, EINA_VALUE_TYPE_STRING);
500 * eina_value_set(value, "hello world!");
501 *
502 * eina_value_free(value);
503 * @endcode
504 *
505 * @note for array member see eina_value_array_set()
506 * @note for list member see eina_value_list_set()
507 * @note for hash member see eina_value_hash_set()
508 *
509 * @see eina_value_get()
510 * @see eina_value_vset()
511 * @see eina_value_pset()
512 *
513 * @since 1.2
514 */
515static inline Eina_Bool eina_value_set(Eina_Value *value,
516 ...) EINA_ARG_NONNULL(1);
517
518/**
519 * @brief Get the generic value.
520 * @param value source value object
521 * @return #EINA_TRUE on success, #EINA_FALSE otherwise.
522 *
523 * The value is returned in the variable argument parameter, the
524 * actual value is type-dependent, but usually it will be what is
525 * stored inside the object. There shouldn't be any memory allocation,
526 * thus the contents should @b not be freed.
527 *
528 * The variable argument is dependent on chosen type. The list for
529 * basic types:
530 *
531 * @li EINA_VALUE_TYPE_UCHAR: unsigned char*
532 * @li EINA_VALUE_TYPE_USHORT: unsigned short*
533 * @li EINA_VALUE_TYPE_UINT: unsigned int*
534 * @li EINA_VALUE_TYPE_ULONG: unsigned long*
535 * @li EINA_VALUE_TYPE_UINT64: uint64_t*
536 * @li EINA_VALUE_TYPE_CHAR: char*
537 * @li EINA_VALUE_TYPE_SHORT: short*
538 * @li EINA_VALUE_TYPE_INT: int*
539 * @li EINA_VALUE_TYPE_LONG: long*
540 * @li EINA_VALUE_TYPE_INT64: int64_t*
541 * @li EINA_VALUE_TYPE_FLOAT: float*
542 * @li EINA_VALUE_TYPE_DOUBLE: double*
543 * @li EINA_VALUE_TYPE_STRINGSHARE: const char **
544 * @li EINA_VALUE_TYPE_STRING: const char **
545 * @li EINA_VALUE_TYPE_ARRAY: Eina_Value_Array*
546 * @li EINA_VALUE_TYPE_LIST: Eina_Value_List*
547 * @li EINA_VALUE_TYPE_HASH: Eina_Value_Hash*
548 * @li EINA_VALUE_TYPE_TIMEVAL: struct timeval*
549 * @li EINA_VALUE_TYPE_BLOB: Eina_Value_Blob*
550 * @li EINA_VALUE_TYPE_STRUCT: Eina_Value_Struct*
551 *
552 * @code
553 * Eina_Value *value = eina_value_new(EINA_VALUE_TYPE_INT);
554 * int x;
555 * const char *s;
556 *
557 * eina_value_set(value, 1234);
558 * eina_value_get(value, &x);
559 *
560 * eina_value_flush(value);
561 *
562 * eina_value_setup(value, EINA_VALUE_TYPE_STRING);
563 * eina_value_set(value, "hello world!");
564 * eina_value_get(value, &s);
565 *
566 * eina_value_free(value);
567 * @endcode
568 *
569 * @note for array member see eina_value_array_get()
570 * @note for list member see eina_value_list_get()
571 * @note for hash member see eina_value_hash_get()
572 *
573 * @see eina_value_set()
574 * @see eina_value_vset()
575 * @see eina_value_pset()
576 *
577 * @since 1.2
578 */
579static inline Eina_Bool eina_value_get(const Eina_Value *value,
580 ...) EINA_ARG_NONNULL(1);
581
582/**
583 * @brief Set the generic value.
584 * @param value source value object
585 * @param args variable argument
586 * @return #EINA_TRUE on success, #EINA_FALSE otherwise.
587 *
588 * @note for array member see eina_value_array_vset()
589 * @note for list member see eina_value_list_vset()
590 * @note for hash member see eina_value_hash_vset()
591 *
592 * @see eina_value_vget()
593 * @see eina_value_set()
594 * @see eina_value_pset()
595 *
596 * @since 1.2
597 */
598static inline Eina_Bool eina_value_vset(Eina_Value *value,
599 va_list args) EINA_ARG_NONNULL(1);
600
601/**
602 * @brief Get the generic value.
603 * @param value source value object
604 * @param args variable argument
605 * @return #EINA_TRUE on success, #EINA_FALSE otherwise.
606 *
607 * The value is returned in the variable argument parameter, the
608 * actual value is type-dependent, but usually it will be what is
609 * stored inside the object. There shouldn't be any memory allocation,
610 * thus the contents should @b not be freed.
611 *
612 * @note for array member see eina_value_array_vget()
613 * @note for list member see eina_value_list_vget()
614 * @note for hash member see eina_value_hash_vget()
615 *
616 * @see eina_value_vset()
617 * @see eina_value_get()
618 * @see eina_value_pget()
619 *
620 * @since 1.2
621 */
622static inline Eina_Bool eina_value_vget(const Eina_Value *value,
623 va_list args) EINA_ARG_NONNULL(1);
624
625/**
626 * @brief Set the generic value from pointer.
627 * @param value source value object
628 * @param ptr pointer to specify the contents.
629 * @return #EINA_TRUE on success, #EINA_FALSE otherwise.
630 *
631 * The pointer type is dependent on chosen value type. The list for
632 * basic types:
633 *
634 * @li EINA_VALUE_TYPE_UCHAR: unsigned char*
635 * @li EINA_VALUE_TYPE_USHORT: unsigned short*
636 * @li EINA_VALUE_TYPE_UINT: unsigned int*
637 * @li EINA_VALUE_TYPE_ULONG: unsigned long*
638 * @li EINA_VALUE_TYPE_UINT64: uint64_t*
639 * @li EINA_VALUE_TYPE_CHAR: char*
640 * @li EINA_VALUE_TYPE_SHORT: short*
641 * @li EINA_VALUE_TYPE_INT: int*
642 * @li EINA_VALUE_TYPE_LONG: long*
643 * @li EINA_VALUE_TYPE_INT64: int64_t*
644 * @li EINA_VALUE_TYPE_FLOAT: float*
645 * @li EINA_VALUE_TYPE_DOUBLE: double*
646 * @li EINA_VALUE_TYPE_STRINGSHARE: const char **
647 * @li EINA_VALUE_TYPE_STRING: const char **
648 * @li EINA_VALUE_TYPE_ARRAY: Eina_Value_Array*
649 * @li EINA_VALUE_TYPE_LIST: Eina_Value_List*
650 * @li EINA_VALUE_TYPE_HASH: Eina_Value_Hash*
651 * @li EINA_VALUE_TYPE_TIMEVAL: struct timeval*
652 * @li EINA_VALUE_TYPE_BLOB: Eina_Value_Blob*
653 * @li EINA_VALUE_TYPE_STRUCT: Eina_Value_Struct*
654 *
655 * @note the pointer contents are written using the size defined by
656 * type. It can be larger than void* or uint64_t.
657 *
658 * @code
659 * Eina_Value *value = eina_value_new(EINA_VALUE_TYPE_INT);
660 * int x = 567;
661 * const char *s = "hello world!";
662 *
663 * eina_value_pset(value, &x);
664 *
665 * eina_value_flush(value);
666 *
667 * eina_value_setup(value, EINA_VALUE_TYPE_STRING);
668 * eina_value_pset(value, &s);
669 *
670 * eina_value_free(value);
671 * @endcode
672 *
673 * @note for array member see eina_value_array_pset()
674 * @note for list member see eina_value_list_pset()
675 * @note for hash member see eina_value_hash_pset()
676 *
677 * @see eina_value_pget()
678 * @see eina_value_set()
679 * @see eina_value_vset()
680 *
681 * @since 1.2
682 */
683static inline Eina_Bool eina_value_pset(Eina_Value *value,
684 const void *ptr) EINA_ARG_NONNULL(1, 2);
685
686/**
687 * @brief Get the generic value to pointer.
688 * @param value source value object
689 * @param ptr pointer to receive the contents.
690 * @return #EINA_TRUE on success, #EINA_FALSE otherwise.
691 *
692 * The value is returned in pointer contents, the actual value is
693 * type-dependent, but usually it will be what is stored inside the
694 * object. There shouldn't be any memory allocation, thus the contents
695 * should @b not be freed.
696 *
697 * The pointer type is dependent on chosen value type. The list for
698 * basic types:
699 *
700 * @li EINA_VALUE_TYPE_UCHAR: unsigned char*
701 * @li EINA_VALUE_TYPE_USHORT: unsigned short*
702 * @li EINA_VALUE_TYPE_UINT: unsigned int*
703 * @li EINA_VALUE_TYPE_ULONG: unsigned long*
704 * @li EINA_VALUE_TYPE_UINT64: uint64_t*
705 * @li EINA_VALUE_TYPE_CHAR: char*
706 * @li EINA_VALUE_TYPE_SHORT: short*
707 * @li EINA_VALUE_TYPE_INT: int*
708 * @li EINA_VALUE_TYPE_LONG: long*
709 * @li EINA_VALUE_TYPE_INT64: int64_t*
710 * @li EINA_VALUE_TYPE_FLOAT: float*
711 * @li EINA_VALUE_TYPE_DOUBLE: double*
712 * @li EINA_VALUE_TYPE_STRINGSHARE: const char **
713 * @li EINA_VALUE_TYPE_STRING: const char **
714 * @li EINA_VALUE_TYPE_ARRAY: Eina_Value_Array*
715 * @li EINA_VALUE_TYPE_LIST: Eina_Value_List*
716 * @li EINA_VALUE_TYPE_HASH: Eina_Value_Hash*
717 * @li EINA_VALUE_TYPE_TIMEVAL: struct timeval*
718 * @li EINA_VALUE_TYPE_BLOB: Eina_Value_Blob*
719 * @li EINA_VALUE_TYPE_BLOB: Eina_Value_Blob*
720 *
721 * @code
722 * Eina_Value *value = eina_value_new(EINA_VALUE_TYPE_INT);
723 * int x;
724 * const char *s;
725 *
726 * eina_value_set(value, 1234);
727 * eina_value_pget(value, &x);
728 *
729 * eina_value_flush(value);
730 *
731 * eina_value_setup(value, EINA_VALUE_TYPE_STRING);
732 * eina_value_set(value, "hello world!");
733 * eina_value_pget(value, &s);
734 *
735 * eina_value_free(value);
736 * @endcode
737 *
738 * @note for array member see eina_value_array_get()
739 * @note for list member see eina_value_list_get()
740 * @note for hash member see eina_value_hash_get()
741 *
742 * @see eina_value_set()
743 * @see eina_value_vset()
744 * @see eina_value_pset()
745 *
746 * @since 1.2
747 */
748static inline Eina_Bool eina_value_pget(const Eina_Value *value,
749 void *ptr) EINA_ARG_NONNULL(1, 2);
750
751/**
752 * @brief Convert one value to another type.
753 * @param value source value object.
754 * @param convert destination value object.
755 * @return #EINA_TRUE if converted, #EINA_FALSE otherwise.
756 *
757 * Converts one value to another trying first @a value type
758 * @c convert_to() function. If unsuccessful, tries using @c convert_from()
759 * function in @a convert.
760 *
761 * Conversion functions are type defined, and the basic types can convert
762 * between themselves, but conversion is strict! That is, if
763 * converting from negative value to unsigned type, it will fail. It
764 * also fails on value overflow.
765 *
766 * It is recommended that all types implement at least convert to
767 * string, used by eina_value_to_string().
768 *
769 * @note Both objects must have eina_value_setup() called on them beforehand!
770 *
771 * @since 1.2
772 */
773EAPI Eina_Bool eina_value_convert(const Eina_Value *value,
774 Eina_Value *convert) EINA_ARG_NONNULL(1, 2);
775
776
777/**
778 * @brief Convert value to string.
779 * @param value value object.
780 * @return newly allocated memory or @c NULL on failure.
781 *
782 * @see eina_value_convert()
783 * @since 1.2
784 */
785EAPI char *eina_value_to_string(const Eina_Value *value) EINA_ARG_NONNULL(1);
786
787/**
788 * @brief Query value type.
789 * @param value value object.
790 * @return type instance or @c NULL if type is invalid.
791 *
792 * Check if value type is valid and returns it. A type is invalid if
793 * it does not exist or if it is using a different version field.
794 *
795 * @see eina_value_type_check()
796 *
797 * @since 1.2
798 */
799static inline const Eina_Value_Type *eina_value_type_get(const Eina_Value *value) EINA_PURE EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT;
800
801/**
802 * @}
803 */
804
805
806/**
807 * @defgroup Eina_Value_Array_Group Generic Value Array management
808 *
809 * @{
810 */
811
812
813/**
814 * @typedef Eina_Value_Array
815 * Value type for #EINA_VALUE_TYPE_ARRAY
816 *
817 * @since 1.2
818 */
819typedef struct _Eina_Value_Array Eina_Value_Array;
820
821/**
822 * @struct _Eina_Value_Array
823 * Used to store the array and its subtype.
824 */
825struct _Eina_Value_Array
826{
827 const Eina_Value_Type *subtype; /**< how to allocate and access items */
828 unsigned int step; /**< how to grow the members array */
829 Eina_Inarray *array; /**< the array that holds data, members are of subtype->value_size bytes. */
830};
831
832/**
833 * @brief Create generic value storage of type array.
834 * @param subtype how to manage this array members.
835 * @param step how to grow the members array.
836 * @return The new value or @c NULL on failure.
837 *
838 * Create a new generic value storage of type array. The members are
839 * managed using the description specified by @a subtype.
840 *
841 * On failure, @c NULL is returned and #EINA_ERROR_OUT_OF_MEMORY or
842 * #EINA_ERROR_VALUE_FAILED is set.
843 *
844 * @note this creates from mempool and then uses
845 * eina_value_array_setup(). @see eina_value_free() @see
846 * eina_value_array_setup()
847 *
848 * @since 1.2
849 */
850EAPI Eina_Value *eina_value_array_new(const Eina_Value_Type *subtype,
851 unsigned int step) EINA_ARG_NONNULL(1);
852
853/**
854 * @brief Initialize generic value storage of type array.
855 * @param value value object
856 * @param subtype how to manage array members.
857 * @param step how to grow the members array.
858 * @return #EINA_TRUE on success, #EINA_FALSE otherwise.
859 *
860 * Initializes new generic value storage of type array with the given
861 * @a subtype.
862 *
863 * This is the same as calling eina_value_set() with
864 * #EINA_VALUE_TYPE_ARRAY followed by eina_value_pset() with the
865 * #Eina_Value_Array description configured.
866 *
867 * @note Existing contents are ignored! If the value was previously used, then
868 * use eina_value_flush() first.
869 *
870 * On failure, #EINA_FALSE is returned and #EINA_ERROR_OUT_OF_MEMORY
871 * or #EINA_ERROR_VALUE_FAILED is set.
872 *
873 * @see eina_value_flush()
874 *
875 * @since 1.2
876 */
877static inline Eina_Bool eina_value_array_setup(Eina_Value *value,
878 const Eina_Value_Type *subtype,
879 unsigned int step) EINA_ARG_NONNULL(1, 2);
880
881/**
882 * @brief Query number of elements in value of array type.
883 * @param value value object.
884 * @return number of child elements.
885 * @since 1.2
886 */
887static inline unsigned int eina_value_array_count(const Eina_Value *value);
888
889/**
890 * @brief Remove element at given position in value of array type.
891 * @param value value object.
892 * @param position index of the member
893 * @return #EINA_TRUE on success, #EINA_FALSE otherwise.
894 * @since 1.2
895 */
896static inline Eina_Bool eina_value_array_remove(Eina_Value *value,
897 unsigned int position) EINA_ARG_NONNULL(1);
898
899/**
900 * @brief Set the generic value in an array member.
901 * @param value source value object
902 * @param position index of the member
903 * @return #EINA_TRUE on success, #EINA_FALSE otherwise.
904 *
905 * The variable argument is dependent on chosen subtype. The list for
906 * basic types:
907 *
908 * @li EINA_VALUE_TYPE_UCHAR: unsigned char
909 * @li EINA_VALUE_TYPE_USHORT: unsigned short
910 * @li EINA_VALUE_TYPE_UINT: unsigned int
911 * @li EINA_VALUE_TYPE_ULONG: unsigned long
912 * @li EINA_VALUE_TYPE_UINT64: uint64_t
913 * @li EINA_VALUE_TYPE_CHAR: char
914 * @li EINA_VALUE_TYPE_SHORT: short
915 * @li EINA_VALUE_TYPE_INT: int
916 * @li EINA_VALUE_TYPE_LONG: long
917 * @li EINA_VALUE_TYPE_INT64: int64_t
918 * @li EINA_VALUE_TYPE_FLOAT: float
919 * @li EINA_VALUE_TYPE_DOUBLE: double
920 * @li EINA_VALUE_TYPE_STRINGSHARE: const char *
921 * @li EINA_VALUE_TYPE_STRING: const char *
922 * @li EINA_VALUE_TYPE_ARRAY: Eina_Value_Array
923 * @li EINA_VALUE_TYPE_LIST: Eina_Value_List
924 * @li EINA_VALUE_TYPE_HASH: Eina_Value_Hash
925 * @li EINA_VALUE_TYPE_TIMEVAL: struct timeval
926 * @li EINA_VALUE_TYPE_BLOB: Eina_Value_Blob
927 * @li EINA_VALUE_TYPE_STRUCT: Eina_Value_Struct
928 *
929 * @code
930 * Eina_Value *value = eina_value_array_new(EINA_VALUE_TYPE_INT, 0);
931 * int x;
932 *
933 * eina_value_array_append(value, 1234);
934 * eina_value_array_set(value, 0, 5678);
935 * eina_value_array_get(value, 0, &x);
936 * eina_value_free(value);
937 * @endcode
938 *
939 * @see eina_value_array_get()
940 * @see eina_value_array_vset()
941 * @see eina_value_array_pset()
942 * @see eina_value_array_insert()
943 * @see eina_value_array_vinsert()
944 * @see eina_value_array_pinsert()
945 * @see eina_value_array_append()
946 * @see eina_value_array_vappend()
947 * @see eina_value_array_pappend()
948 *
949 * @since 1.2
950 */
951static inline Eina_Bool eina_value_array_set(Eina_Value *value,
952 unsigned int position,
953 ...) EINA_ARG_NONNULL(1);
954
955/**
956 * @brief Get the generic value from an array member.
957 * @param value source value object
958 * @param position index of the member
959 * @return #EINA_TRUE on success, #EINA_FALSE otherwise.
960 *
961 * The value is returned in the variable argument parameter, and the
962 * actual value is type-dependent, but usually it will be what is
963 * stored inside the object. There shouldn't be any memory allocation;
964 * thus the contents should @b not be freed.
965 *
966 * The variable argument is dependent on chosen subtype. The list for
967 * basic types:
968 *
969 * @li EINA_VALUE_TYPE_UCHAR: unsigned char*
970 * @li EINA_VALUE_TYPE_USHORT: unsigned short*
971 * @li EINA_VALUE_TYPE_UINT: unsigned int*
972 * @li EINA_VALUE_TYPE_ULONG: unsigned long*
973 * @li EINA_VALUE_TYPE_UINT64: uint64_t*
974 * @li EINA_VALUE_TYPE_CHAR: char*
975 * @li EINA_VALUE_TYPE_SHORT: short*
976 * @li EINA_VALUE_TYPE_INT: int*
977 * @li EINA_VALUE_TYPE_LONG: long*
978 * @li EINA_VALUE_TYPE_INT64: int64_t*
979 * @li EINA_VALUE_TYPE_FLOAT: float*
980 * @li EINA_VALUE_TYPE_DOUBLE: double*
981 * @li EINA_VALUE_TYPE_STRINGSHARE: const char **
982 * @li EINA_VALUE_TYPE_STRING: const char **
983 * @li EINA_VALUE_TYPE_ARRAY: Eina_Value_Array*
984 * @li EINA_VALUE_TYPE_LIST: Eina_Value_List*
985 * @li EINA_VALUE_TYPE_HASH: Eina_Value_Hash*
986 * @li EINA_VALUE_TYPE_TIMEVAL: struct timeval*
987 * @li EINA_VALUE_TYPE_BLOB: Eina_Value_Blob*
988 * @li EINA_VALUE_TYPE_STRUCT: Eina_Value_Struct*
989 *
990 * @code
991 * Eina_Value *value = eina_value_array_new(EINA_VALUE_TYPE_INT, 0);
992 * int x;
993 *
994 * eina_value_array_append(value, 1234);
995 * eina_value_array_get(value, 0, &x);
996 * eina_value_free(value);
997 * @endcode
998 *
999 * @see eina_value_array_set()
1000 * @see eina_value_array_vset()
1001 * @see eina_value_array_pset()
1002 *
1003 * @since 1.2
1004 */
1005static inline Eina_Bool eina_value_array_get(const Eina_Value *value,
1006 unsigned int position,
1007 ...) EINA_ARG_NONNULL(1);
1008
1009/**
1010 * @brief Insert a generic value in an array member position.
1011 * @param value source value object
1012 * @param position index of the member
1013 * @return #EINA_TRUE on success, #EINA_FALSE otherwise.
1014 *
1015 * The variable argument is dependent on chosen subtype. The list for
1016 * basic types:
1017 *
1018 * @li EINA_VALUE_TYPE_UCHAR: unsigned char
1019 * @li EINA_VALUE_TYPE_USHORT: unsigned short
1020 * @li EINA_VALUE_TYPE_UINT: unsigned int
1021 * @li EINA_VALUE_TYPE_ULONG: unsigned long
1022 * @li EINA_VALUE_TYPE_UINT64: uint64_t
1023 * @li EINA_VALUE_TYPE_CHAR: char
1024 * @li EINA_VALUE_TYPE_SHORT: short
1025 * @li EINA_VALUE_TYPE_INT: int
1026 * @li EINA_VALUE_TYPE_LONG: long
1027 * @li EINA_VALUE_TYPE_INT64: int64_t
1028 * @li EINA_VALUE_TYPE_FLOAT: float
1029 * @li EINA_VALUE_TYPE_DOUBLE: double
1030 * @li EINA_VALUE_TYPE_STRINGSHARE: const char *
1031 * @li EINA_VALUE_TYPE_STRING: const char *
1032 * @li EINA_VALUE_TYPE_ARRAY: Eina_Value_Array
1033 * @li EINA_VALUE_TYPE_LIST: Eina_Value_List
1034 * @li EINA_VALUE_TYPE_HASH: Eina_Value_Hash
1035 * @li EINA_VALUE_TYPE_TIMEVAL: struct timeval
1036 * @li EINA_VALUE_TYPE_BLOB: Eina_Value_Blob
1037 * @li EINA_VALUE_TYPE_STRUCT: Eina_Value_Struct
1038 *
1039 * @code
1040 * Eina_Value *value = eina_value_array_new(EINA_VALUE_TYPE_INT, 0);
1041 * int x;
1042 *
1043 * eina_value_array_insert(value, 0, 1234);
1044 * eina_value_array_get(value, 0, &x);
1045 * eina_value_free(value);
1046 * @endcode
1047 *
1048 * @see eina_value_array_set()
1049 * @see eina_value_array_get()
1050 * @see eina_value_array_vset()
1051 * @see eina_value_array_pset()
1052 * @see eina_value_array_vinsert()
1053 * @see eina_value_array_pinsert()
1054 * @see eina_value_array_append()
1055 * @see eina_value_array_vappend()
1056 * @see eina_value_array_pappend()
1057 *
1058 * @since 1.2
1059 */
1060static inline Eina_Bool eina_value_array_insert(Eina_Value *value,
1061 unsigned int position,
1062 ...) EINA_ARG_NONNULL(1);
1063
1064
1065/**
1066 * @brief Append a generic value in an array.
1067 * @param value source value object
1068 * @return #EINA_TRUE on success, #EINA_FALSE otherwise.
1069 *
1070 * The variable argument is dependent on chosen subtype. The list for
1071 * basic types:
1072 *
1073 * @li EINA_VALUE_TYPE_UCHAR: unsigned char
1074 * @li EINA_VALUE_TYPE_USHORT: unsigned short
1075 * @li EINA_VALUE_TYPE_UINT: unsigned int
1076 * @li EINA_VALUE_TYPE_ULONG: unsigned long
1077 * @li EINA_VALUE_TYPE_UINT64: uint64_t
1078 * @li EINA_VALUE_TYPE_CHAR: char
1079 * @li EINA_VALUE_TYPE_SHORT: short
1080 * @li EINA_VALUE_TYPE_INT: int
1081 * @li EINA_VALUE_TYPE_LONG: long
1082 * @li EINA_VALUE_TYPE_INT64: int64_t
1083 * @li EINA_VALUE_TYPE_FLOAT: float
1084 * @li EINA_VALUE_TYPE_DOUBLE: double
1085 * @li EINA_VALUE_TYPE_STRINGSHARE: const char *
1086 * @li EINA_VALUE_TYPE_STRING: const char *
1087 * @li EINA_VALUE_TYPE_ARRAY: Eina_Value_Array
1088 * @li EINA_VALUE_TYPE_LIST: Eina_Value_List
1089 * @li EINA_VALUE_TYPE_HASH: Eina_Value_Hash
1090 * @li EINA_VALUE_TYPE_TIMEVAL: struct timeval
1091 * @li EINA_VALUE_TYPE_BLOB: Eina_Value_Blob
1092 * @li EINA_VALUE_TYPE_STRUCT: Eina_Value_Struct
1093 *
1094 * @code
1095 * Eina_Value *value = eina_value_array_new(EINA_VALUE_TYPE_INT, 0);
1096 * int x;
1097 *
1098 * eina_value_array_append(value, 1234);
1099 * eina_value_array_get(value, 0, &x);
1100 * eina_value_free(value);
1101 * @endcode
1102 *
1103 * @see eina_value_array_set()
1104 * @see eina_value_array_get()
1105 * @see eina_value_array_vset()
1106 * @see eina_value_array_pset()
1107 * @see eina_value_array_vinsert()
1108 * @see eina_value_array_pinsert()
1109 * @see eina_value_array_append()
1110 * @see eina_value_array_vappend()
1111 * @see eina_value_array_pappend()
1112 *
1113 * @since 1.2
1114 */
1115static inline Eina_Bool eina_value_array_append(Eina_Value *value,
1116 ...) EINA_ARG_NONNULL(1);
1117
1118/**
1119 * @brief Set a generic value to an array member.
1120 * @param value source value object
1121 * @param position index of the member
1122 * @param args variable argument
1123 * @return #EINA_TRUE on success, #EINA_FALSE otherwise.
1124 * @see eina_value_array_set()
1125 * @see eina_value_array_get()
1126 * @see eina_value_array_pset()
1127 * @see eina_value_array_insert()
1128 * @see eina_value_array_vinsert()
1129 * @see eina_value_array_pinsert()
1130 * @see eina_value_array_append()
1131 * @see eina_value_array_vappend()
1132 * @see eina_value_array_pappend()
1133 *
1134 * @since 1.2
1135 */
1136static inline Eina_Bool eina_value_array_vset(Eina_Value *value,
1137 unsigned int position,
1138 va_list args) EINA_ARG_NONNULL(1);
1139
1140/**
1141 * @brief Get the generic value from an array member.
1142 * @param value source value object
1143 * @param position index of the member
1144 * @param args variable argument
1145 * @return #EINA_TRUE on success, #EINA_FALSE otherwise.
1146 *
1147 * The value is returned in the variable argument parameter, the
1148 * actual value is type-dependent, but usually it will be what is
1149 * stored inside the object. There shouldn't be any memory allocation,
1150 * thus the contents should @b not be freed.
1151 *
1152 * @see eina_value_array_vset()
1153 * @see eina_value_array_get()
1154 * @see eina_value_array_pget()
1155 *
1156 * @since 1.2
1157 */
1158static inline Eina_Bool eina_value_array_vget(const Eina_Value *value,
1159 unsigned int position,
1160 va_list args) EINA_ARG_NONNULL(1);
1161/**
1162 * @brief Insert a generic value to an array member position.
1163 * @param value source value object
1164 * @param position index of the member
1165 * @param args variable argument
1166 * @return #EINA_TRUE on success, #EINA_FALSE otherwise.
1167 * @see eina_value_array_set()
1168 * @see eina_value_array_get()
1169 * @see eina_value_array_vset()
1170 * @see eina_value_array_pset()
1171 * @see eina_value_array_insert()
1172 * @see eina_value_array_pinsert()
1173 * @see eina_value_array_append()
1174 * @see eina_value_array_vappend()
1175 * @see eina_value_array_pappend()
1176 *
1177 * @since 1.2
1178 */
1179static inline Eina_Bool eina_value_array_vinsert(Eina_Value *value,
1180 unsigned int position,
1181 va_list args) EINA_ARG_NONNULL(1);
1182
1183/**
1184 * @brief Append a generic value to an array.
1185 * @param value source value object
1186 * @param args variable argument
1187 * @return #EINA_TRUE on success, #EINA_FALSE otherwise.
1188 * @see eina_value_array_set()
1189 * @see eina_value_array_get()
1190 * @see eina_value_array_vget()
1191 * @see eina_value_array_pset()
1192 * @see eina_value_array_insert()
1193 * @see eina_value_array_vinsert()
1194 * @see eina_value_array_pinsert()
1195 * @see eina_value_array_append()
1196 * @see eina_value_array_pappend()
1197 *
1198 * @since 1.2
1199 */
1200static inline Eina_Bool eina_value_array_vappend(Eina_Value *value,
1201 va_list args) EINA_ARG_NONNULL(1);
1202
1203
1204/**
1205 * @brief Set a generic value to an array member from a pointer.
1206 * @param value source value object
1207 * @param position index of the member
1208 * @param ptr pointer to specify the contents.
1209 * @return #EINA_TRUE on success, #EINA_FALSE otherwise.
1210 *
1211 * The pointer type is dependent on chosen value type. The list for
1212 * basic types:
1213 *
1214 * @li EINA_VALUE_TYPE_UCHAR: unsigned char*
1215 * @li EINA_VALUE_TYPE_USHORT: unsigned short*
1216 * @li EINA_VALUE_TYPE_UINT: unsigned int*
1217 * @li EINA_VALUE_TYPE_ULONG: unsigned long*
1218 * @li EINA_VALUE_TYPE_UINT64: uint64_t*
1219 * @li EINA_VALUE_TYPE_CHAR: char*
1220 * @li EINA_VALUE_TYPE_SHORT: short*
1221 * @li EINA_VALUE_TYPE_INT: int*
1222 * @li EINA_VALUE_TYPE_LONG: long*
1223 * @li EINA_VALUE_TYPE_INT64: int64_t*
1224 * @li EINA_VALUE_TYPE_FLOAT: float*
1225 * @li EINA_VALUE_TYPE_DOUBLE: double*
1226 * @li EINA_VALUE_TYPE_STRINGSHARE: const char **
1227 * @li EINA_VALUE_TYPE_STRING: const char **
1228 * @li EINA_VALUE_TYPE_ARRAY: Eina_Value_Array*
1229 * @li EINA_VALUE_TYPE_LIST: Eina_Value_List*
1230 * @li EINA_VALUE_TYPE_HASH: Eina_Value_Hash*
1231 * @li EINA_VALUE_TYPE_TIMEVAL: struct timeval*
1232 * @li EINA_VALUE_TYPE_BLOB: Eina_Value_Blob*
1233 * @li EINA_VALUE_TYPE_STRUCT: Eina_Value_Struct*
1234 *
1235 * @note the pointer contents are written using the size defined by
1236 * type. It can be larger than void* or uint64_t.
1237 *
1238 * @code
1239 * Eina_Value *value = eina_value_array_new(EINA_VALUE_TYPE_INT, 0);
1240 * int x = 1234;
1241 *
1242 * eina_value_array_append(value, 1234);
1243 * eina_value_array_pset(value, 0, &x);
1244 * eina_value_array_pget(value, 0, &x);
1245 * eina_value_free(value);
1246 * @endcode
1247 *
1248 * @see eina_value_array_set()
1249 * @see eina_value_array_get()
1250 * @see eina_value_array_vset()
1251 * @see eina_value_array_insert()
1252 * @see eina_value_array_vinsert()
1253 * @see eina_value_array_pinsert()
1254 * @see eina_value_array_append()
1255 * @see eina_value_array_vappend()
1256 * @see eina_value_array_pappend()
1257 *
1258 * @since 1.2
1259 */
1260static inline Eina_Bool eina_value_array_pset(Eina_Value *value,
1261 unsigned int position,
1262 const void *ptr) EINA_ARG_NONNULL(1, 3);
1263
1264/**
1265 * @brief Retrieve a generic value into a pointer from an array member.
1266 * @param value source value object
1267 * @param position index of the member
1268 * @param ptr pointer to receive the contents.
1269 * @return #EINA_TRUE on success, #EINA_FALSE otherwise.
1270 *
1271 * The value is returned in pointer contents, the actual value is
1272 * type-dependent, but usually it will be what is stored inside the
1273 * object. There shouldn't be any memory allocation, thus the contents
1274 * should @b not be freed.
1275 *
1276 * The pointer type is dependent on chosen value type. The list for
1277 * basic types:
1278 *
1279 * @li EINA_VALUE_TYPE_UCHAR: unsigned char*
1280 * @li EINA_VALUE_TYPE_USHORT: unsigned short*
1281 * @li EINA_VALUE_TYPE_UINT: unsigned int*
1282 * @li EINA_VALUE_TYPE_ULONG: unsigned long*
1283 * @li EINA_VALUE_TYPE_UINT64: uint64_t*
1284 * @li EINA_VALUE_TYPE_CHAR: char*
1285 * @li EINA_VALUE_TYPE_SHORT: short*
1286 * @li EINA_VALUE_TYPE_INT: int*
1287 * @li EINA_VALUE_TYPE_LONG: long*
1288 * @li EINA_VALUE_TYPE_INT64: int64_t*
1289 * @li EINA_VALUE_TYPE_FLOAT: float*
1290 * @li EINA_VALUE_TYPE_DOUBLE: double*
1291 * @li EINA_VALUE_TYPE_STRINGSHARE: const char **
1292 * @li EINA_VALUE_TYPE_STRING: const char **
1293 * @li EINA_VALUE_TYPE_ARRAY: Eina_Value_Array*
1294 * @li EINA_VALUE_TYPE_LIST: Eina_Value_List*
1295 * @li EINA_VALUE_TYPE_HASH: Eina_Value_Hash*
1296 * @li EINA_VALUE_TYPE_TIMEVAL: struct timeval*
1297 * @li EINA_VALUE_TYPE_BLOB: Eina_Value_Blob*
1298 * @li EINA_VALUE_TYPE_STRUCT: Eina_Value_Struct*
1299 *
1300 * @code
1301 * Eina_Value *value = eina_value_array_new(EINA_VALUE_TYPE_INT, 0);
1302 * int x;
1303 *
1304 * eina_value_array_append(value, 1234);
1305 * eina_value_array_pget(value, 0, &x);
1306 * eina_value_free(value);
1307 * @endcode
1308 *
1309 * @see eina_value_array_set()
1310 * @see eina_value_array_vset()
1311 * @see eina_value_array_pset()
1312 *
1313 * @since 1.2
1314 */
1315static inline Eina_Bool eina_value_array_pget(const Eina_Value *value,
1316 unsigned int position,
1317 void *ptr) EINA_ARG_NONNULL(1, 3);
1318
1319/**
1320 * @brief Insert a generic value to an array member position from a pointer.
1321 * @param value source value object
1322 * @param position index of the member
1323 * @param ptr pointer to specify the contents.
1324 * @return #EINA_TRUE on success, #EINA_FALSE otherwise.
1325 *
1326 * The pointer type is dependent on chosen value type. The list for
1327 * basic types:
1328 *
1329 * @li EINA_VALUE_TYPE_UCHAR: unsigned char*
1330 * @li EINA_VALUE_TYPE_USHORT: unsigned short*
1331 * @li EINA_VALUE_TYPE_UINT: unsigned int*
1332 * @li EINA_VALUE_TYPE_ULONG: unsigned long*
1333 * @li EINA_VALUE_TYPE_UINT64: uint64_t*
1334 * @li EINA_VALUE_TYPE_CHAR: char*
1335 * @li EINA_VALUE_TYPE_SHORT: short*
1336 * @li EINA_VALUE_TYPE_INT: int*
1337 * @li EINA_VALUE_TYPE_LONG: long*
1338 * @li EINA_VALUE_TYPE_INT64: int64_t*
1339 * @li EINA_VALUE_TYPE_FLOAT: float*
1340 * @li EINA_VALUE_TYPE_DOUBLE: double*
1341 * @li EINA_VALUE_TYPE_STRINGSHARE: const char **
1342 * @li EINA_VALUE_TYPE_STRING: const char **
1343 * @li EINA_VALUE_TYPE_ARRAY: Eina_Value_Array*
1344 * @li EINA_VALUE_TYPE_LIST: Eina_Value_List*
1345 * @li EINA_VALUE_TYPE_HASH: Eina_Value_Hash*
1346 * @li EINA_VALUE_TYPE_TIMEVAL: struct timeval*
1347 * @li EINA_VALUE_TYPE_BLOB: Eina_Value_Blob*
1348 * @li EINA_VALUE_TYPE_STRUCT: Eina_Value_Struct*
1349 *
1350 * @note the pointer contents are written using the size defined by
1351 * type. It can be larger than void* or uint64_t.
1352 *
1353 * @code
1354 * Eina_Value *value = eina_value_array_new(EINA_VALUE_TYPE_INT, 0);
1355 * int x = 1234;
1356 *
1357 * eina_value_array_pinsert(value, 0, &x);
1358 * eina_value_array_pget(value, 0, &x);
1359 * eina_value_free(value);
1360 * @endcode
1361 *
1362 * @see eina_value_array_set()
1363 * @see eina_value_array_get()
1364 * @see eina_value_array_vset()
1365 * @see eina_value_array_insert()
1366 * @see eina_value_array_vinsert()
1367 * @see eina_value_array_pinsert()
1368 * @see eina_value_array_append()
1369 * @see eina_value_array_vappend()
1370 * @see eina_value_array_pappend()
1371 *
1372 * @since 1.2
1373 */
1374static inline Eina_Bool eina_value_array_pinsert(Eina_Value *value,
1375 unsigned int position,
1376 const void *ptr) EINA_ARG_NONNULL(1);
1377
1378/**
1379 * @brief Append a generic value to an array from a pointer.
1380 * @param value source value object
1381 * @param ptr pointer to specify the contents.
1382 * @return #EINA_TRUE on success, #EINA_FALSE otherwise.
1383 *
1384 * The pointer type is dependent on chosen value type. The list for
1385 * basic types:
1386 *
1387 * @li EINA_VALUE_TYPE_UCHAR: unsigned char*
1388 * @li EINA_VALUE_TYPE_USHORT: unsigned short*
1389 * @li EINA_VALUE_TYPE_UINT: unsigned int*
1390 * @li EINA_VALUE_TYPE_ULONG: unsigned long*
1391 * @li EINA_VALUE_TYPE_UINT64: uint64_t*
1392 * @li EINA_VALUE_TYPE_CHAR: char*
1393 * @li EINA_VALUE_TYPE_SHORT: short*
1394 * @li EINA_VALUE_TYPE_INT: int*
1395 * @li EINA_VALUE_TYPE_LONG: long*
1396 * @li EINA_VALUE_TYPE_INT64: int64_t*
1397 * @li EINA_VALUE_TYPE_FLOAT: float*
1398 * @li EINA_VALUE_TYPE_DOUBLE: double*
1399 * @li EINA_VALUE_TYPE_STRINGSHARE: const char **
1400 * @li EINA_VALUE_TYPE_STRING: const char **
1401 * @li EINA_VALUE_TYPE_ARRAY: Eina_Value_Array*
1402 * @li EINA_VALUE_TYPE_LIST: Eina_Value_List*
1403 * @li EINA_VALUE_TYPE_HASH: Eina_Value_Hash*
1404 * @li EINA_VALUE_TYPE_TIMEVAL: struct timeval*
1405 * @li EINA_VALUE_TYPE_BLOB: Eina_Value_Blob*
1406 * @li EINA_VALUE_TYPE_STRUCT: Eina_Value_Struct*
1407 *
1408 * @note the pointer contents are written using the size defined by
1409 * type. It can be larger than void* or uint64_t.
1410 *
1411 * @code
1412 * Eina_Value *value = eina_value_array_new(EINA_VALUE_TYPE_INT, 0);
1413 * int x = 1234;
1414 *
1415 * eina_value_array_pappend(value, &x);
1416 * eina_value_array_pget(value, 0, &x);
1417 * eina_value_free(value);
1418 * @endcode
1419 *
1420 * @see eina_value_array_set()
1421 * @see eina_value_array_get()
1422 * @see eina_value_array_vset()
1423 * @see eina_value_array_insert()
1424 * @see eina_value_array_vinsert()
1425 * @see eina_value_array_pinsert()
1426 * @see eina_value_array_append()
1427 * @see eina_value_array_vappend()
1428 * @see eina_value_array_pappend()
1429 *
1430 * @since 1.2
1431 */
1432static inline Eina_Bool eina_value_array_pappend(Eina_Value *value,
1433 const void *ptr) EINA_ARG_NONNULL(1);
1434
1435/**
1436 * @}
1437 */
1438
1439
1440/**
1441 * @defgroup Eina_Value_List_Group Generic Value List management
1442 *
1443 * @{
1444 */
1445
1446
1447/**
1448 * @typedef Eina_Value_List
1449 * Value type for #EINA_VALUE_TYPE_LIST
1450 *
1451 * @since 1.2
1452 */
1453typedef struct _Eina_Value_List Eina_Value_List;
1454
1455/**
1456 * @struct _Eina_Value_List
1457 * Used to store the list and its subtype.
1458 */
1459struct _Eina_Value_List
1460{
1461 const Eina_Value_Type *subtype; /**< how to allocate and access items */
1462 Eina_List *list; /**< the list that holds data, members are of subtype->value_size bytes. */
1463};
1464
1465/**
1466 * @brief Create generic value storage of type list.
1467 * @param subtype how to manage this list members.
1468 * @return The new value or @c NULL on failure.
1469 *
1470 * Create a new generic value storage of type list. The members are
1471 * managed using the description specified by @a subtype.
1472 *
1473 * On failure, @c NULL is returned and #EINA_ERROR_OUT_OF_MEMORY or
1474 * #EINA_ERROR_VALUE_FAILED is set.
1475 *
1476 * @note this creates from mempool and then uses
1477 * eina_value_list_setup().
1478 *
1479 * @see eina_value_free()
1480 * @see eina_value_list_setup()
1481 *
1482 * @since 1.2
1483 */
1484EAPI Eina_Value *eina_value_list_new(const Eina_Value_Type *subtype) EINA_ARG_NONNULL(1);
1485
1486/**
1487 * @brief Initialize generic value storage of type list.
1488 * @param value value object
1489 * @param subtype how to manage this list members.
1490 * @return #EINA_TRUE on success, #EINA_FALSE otherwise.
1491 *
1492 * Initializes new generic value storage of type list with the given
1493 * @a subtype.
1494 *
1495 * This is the same as calling eina_value_set() with
1496 * #EINA_VALUE_TYPE_LIST followed by eina_value_pset() with the
1497 * #Eina_Value_List description configured.
1498 *
1499 * @note Existing contents are ignored! If the value was previously used, then
1500 * use eina_value_flush() first.
1501 *
1502 * On failure, #EINA_FALSE is returned and #EINA_ERROR_OUT_OF_MEMORY
1503 * or #EINA_ERROR_VALUE_FAILED is set.
1504 *
1505 * @see eina_value_flush()
1506 *
1507 * @since 1.2
1508 */
1509static inline Eina_Bool eina_value_list_setup(Eina_Value *value,
1510 const Eina_Value_Type *subtype) EINA_ARG_NONNULL(1, 2);
1511
1512/**
1513 * @brief Query number of elements in value of list type.
1514 * @param value value object.
1515 * @return number of child elements.
1516 * @since 1.2
1517 */
1518static inline unsigned int eina_value_list_count(const Eina_Value *value);
1519
1520/**
1521 * @brief Remove element at given position in value of list type.
1522 * @param value value object.
1523 * @param position index of the member
1524 * @return #EINA_TRUE on success, #EINA_FALSE otherwise.
1525 * @since 1.2
1526 */
1527static inline Eina_Bool eina_value_list_remove(Eina_Value *value,
1528 unsigned int position) EINA_ARG_NONNULL(1);
1529
1530/**
1531 * @brief Set the generic value in an list member.
1532 * @param value source value object
1533 * @param position index of the member
1534 * @return #EINA_TRUE on success, #EINA_FALSE otherwise.
1535 *
1536 * The variable argument is dependent on chosen subtype. The list for
1537 * basic types:
1538 *
1539 * @li EINA_VALUE_TYPE_UCHAR: unsigned char
1540 * @li EINA_VALUE_TYPE_USHORT: unsigned short
1541 * @li EINA_VALUE_TYPE_UINT: unsigned int
1542 * @li EINA_VALUE_TYPE_ULONG: unsigned long
1543 * @li EINA_VALUE_TYPE_UINT64: uint64_t
1544 * @li EINA_VALUE_TYPE_CHAR: char
1545 * @li EINA_VALUE_TYPE_SHORT: short
1546 * @li EINA_VALUE_TYPE_INT: int
1547 * @li EINA_VALUE_TYPE_LONG: long
1548 * @li EINA_VALUE_TYPE_INT64: int64_t
1549 * @li EINA_VALUE_TYPE_FLOAT: float
1550 * @li EINA_VALUE_TYPE_DOUBLE: double
1551 * @li EINA_VALUE_TYPE_STRINGSHARE: const char *
1552 * @li EINA_VALUE_TYPE_STRING: const char *
1553 * @li EINA_VALUE_TYPE_LIST: Eina_Value_List
1554 * @li EINA_VALUE_TYPE_HASH: Eina_Value_Hash
1555 * @li EINA_VALUE_TYPE_TIMEVAL: struct timeval
1556 * @li EINA_VALUE_TYPE_BLOB: Eina_Value_Blob
1557 * @li EINA_VALUE_TYPE_STRUCT: Eina_Value_Struct
1558 *
1559 * @code
1560 * Eina_Value *value = eina_value_list_new(EINA_VALUE_TYPE_INT);
1561 * int x;
1562 *
1563 * eina_value_list_append(value, 1234);
1564 * eina_value_list_set(value, 0, 5678);
1565 * eina_value_list_get(value, 0, &x);
1566 * eina_value_free(value);
1567 * @endcode
1568 *
1569 * @see eina_value_list_get()
1570 * @see eina_value_list_vset()
1571 * @see eina_value_list_pset()
1572 * @see eina_value_list_insert()
1573 * @see eina_value_list_vinsert()
1574 * @see eina_value_list_pinsert()
1575 * @see eina_value_list_append()
1576 * @see eina_value_list_vappend()
1577 * @see eina_value_list_pappend()
1578 *
1579 * @since 1.2
1580 */
1581static inline Eina_Bool eina_value_list_set(Eina_Value *value,
1582 unsigned int position,
1583 ...) EINA_ARG_NONNULL(1);
1584
1585/**
1586 * @brief Get the generic value from an list member.
1587 * @param value source value object
1588 * @param position index of the member
1589 * @return #EINA_TRUE on success, #EINA_FALSE otherwise.
1590 *
1591 * The value is returned in the variable argument parameter, the
1592 * actual value is type-dependent, but usually it will be what is
1593 * stored inside the object. There shouldn't be any memory allocation,
1594 * thus the contents should @b not be freed.
1595 *
1596 * The variable argument is dependent on chosen subtype. The list for
1597 * basic types:
1598 *
1599 * @li EINA_VALUE_TYPE_UCHAR: unsigned char*
1600 * @li EINA_VALUE_TYPE_USHORT: unsigned short*
1601 * @li EINA_VALUE_TYPE_UINT: unsigned int*
1602 * @li EINA_VALUE_TYPE_ULONG: unsigned long*
1603 * @li EINA_VALUE_TYPE_UINT64: uint64_t*
1604 * @li EINA_VALUE_TYPE_CHAR: char*
1605 * @li EINA_VALUE_TYPE_SHORT: short*
1606 * @li EINA_VALUE_TYPE_INT: int*
1607 * @li EINA_VALUE_TYPE_LONG: long*
1608 * @li EINA_VALUE_TYPE_INT64: int64_t*
1609 * @li EINA_VALUE_TYPE_FLOAT: float*
1610 * @li EINA_VALUE_TYPE_DOUBLE: double*
1611 * @li EINA_VALUE_TYPE_STRINGSHARE: const char **
1612 * @li EINA_VALUE_TYPE_STRING: const char **
1613 * @li EINA_VALUE_TYPE_LIST: Eina_Value_List*
1614 * @li EINA_VALUE_TYPE_HASH: Eina_Value_Hash*
1615 * @li EINA_VALUE_TYPE_TIMEVAL: struct timeval*
1616 * @li EINA_VALUE_TYPE_BLOB: Eina_Value_Blob*
1617 * @li EINA_VALUE_TYPE_STRUCT: Eina_Value_Struct*
1618 *
1619 * @code
1620 * Eina_Value *value = eina_value_list_new(EINA_VALUE_TYPE_INT);
1621 * int x;
1622 *
1623 * eina_value_list_append(value, 1234);
1624 * eina_value_list_get(value, 0, &x);
1625 * eina_value_free(value);
1626 * @endcode
1627 *
1628 * @see eina_value_list_set()
1629 * @see eina_value_list_vset()
1630 * @see eina_value_list_pset()
1631 *
1632 * @since 1.2
1633 */
1634static inline Eina_Bool eina_value_list_get(const Eina_Value *value,
1635 unsigned int position,
1636 ...) EINA_ARG_NONNULL(1);
1637
1638/**
1639 * @brief Insert the generic value in an list member position.
1640 * @param value source value object
1641 * @param position index of the member
1642 * @return #EINA_TRUE on success, #EINA_FALSE otherwise.
1643 *
1644 * The variable argument is dependent on chosen subtype. The list for
1645 * basic types:
1646 *
1647 * @li EINA_VALUE_TYPE_UCHAR: unsigned char
1648 * @li EINA_VALUE_TYPE_USHORT: unsigned short
1649 * @li EINA_VALUE_TYPE_UINT: unsigned int
1650 * @li EINA_VALUE_TYPE_ULONG: unsigned long
1651 * @li EINA_VALUE_TYPE_UINT64: uint64_t
1652 * @li EINA_VALUE_TYPE_CHAR: char
1653 * @li EINA_VALUE_TYPE_SHORT: short
1654 * @li EINA_VALUE_TYPE_INT: int
1655 * @li EINA_VALUE_TYPE_LONG: long
1656 * @li EINA_VALUE_TYPE_INT64: int64_t
1657 * @li EINA_VALUE_TYPE_FLOAT: float
1658 * @li EINA_VALUE_TYPE_DOUBLE: double
1659 * @li EINA_VALUE_TYPE_STRINGSHARE: const char *
1660 * @li EINA_VALUE_TYPE_STRING: const char *
1661 * @li EINA_VALUE_TYPE_LIST: Eina_Value_List
1662 * @li EINA_VALUE_TYPE_HASH: Eina_Value_Hash
1663 * @li EINA_VALUE_TYPE_TIMEVAL: struct timeval
1664 * @li EINA_VALUE_TYPE_BLOB: Eina_Value_Blob
1665 * @li EINA_VALUE_TYPE_STRUCT: Eina_Value_Struct
1666 *
1667 * @code
1668 * Eina_Value *value = eina_value_list_new(EINA_VALUE_TYPE_INT);
1669 * int x;
1670 *
1671 * eina_value_list_insert(value, 0, 1234);
1672 * eina_value_list_get(value, 0, &x);
1673 * eina_value_free(value);
1674 * @endcode
1675 *
1676 * @see eina_value_list_set()
1677 * @see eina_value_list_get()
1678 * @see eina_value_list_vset()
1679 * @see eina_value_list_pset()
1680 * @see eina_value_list_vinsert()
1681 * @see eina_value_list_pinsert()
1682 * @see eina_value_list_append()
1683 * @see eina_value_list_vappend()
1684 * @see eina_value_list_pappend()
1685 *
1686 * @since 1.2
1687 */
1688static inline Eina_Bool eina_value_list_insert(Eina_Value *value,
1689 unsigned int position,
1690 ...) EINA_ARG_NONNULL(1);
1691
1692
1693/**
1694 * @brief Append the generic value in an list.
1695 * @param value source value object
1696 * @return #EINA_TRUE on success, #EINA_FALSE otherwise.
1697 *
1698 * The variable argument is dependent on chosen subtype. The list for
1699 * basic types:
1700 *
1701 * @li EINA_VALUE_TYPE_UCHAR: unsigned char
1702 * @li EINA_VALUE_TYPE_USHORT: unsigned short
1703 * @li EINA_VALUE_TYPE_UINT: unsigned int
1704 * @li EINA_VALUE_TYPE_ULONG: unsigned long
1705 * @li EINA_VALUE_TYPE_UINT64: uint64_t
1706 * @li EINA_VALUE_TYPE_CHAR: char
1707 * @li EINA_VALUE_TYPE_SHORT: short
1708 * @li EINA_VALUE_TYPE_INT: int
1709 * @li EINA_VALUE_TYPE_LONG: long
1710 * @li EINA_VALUE_TYPE_INT64: int64_t
1711 * @li EINA_VALUE_TYPE_FLOAT: float
1712 * @li EINA_VALUE_TYPE_DOUBLE: double
1713 * @li EINA_VALUE_TYPE_STRINGSHARE: const char *
1714 * @li EINA_VALUE_TYPE_STRING: const char *
1715 * @li EINA_VALUE_TYPE_LIST: Eina_Value_List
1716 * @li EINA_VALUE_TYPE_HASH: Eina_Value_Hash
1717 * @li EINA_VALUE_TYPE_TIMEVAL: struct timeval
1718 * @li EINA_VALUE_TYPE_BLOB: Eina_Value_Blob
1719 * @li EINA_VALUE_TYPE_STRUCT: Eina_Value_Struct
1720 *
1721 * @code
1722 * Eina_Value *value = eina_value_list_new(EINA_VALUE_TYPE_INT);
1723 * int x;
1724 *
1725 * eina_value_list_append(value, 1234);
1726 * eina_value_list_get(value, 0, &x);
1727 * eina_value_free(value);
1728 * @endcode
1729 *
1730 * @see eina_value_list_set()
1731 * @see eina_value_list_get()
1732 * @see eina_value_list_vset()
1733 * @see eina_value_list_pset()
1734 * @see eina_value_list_vinsert()
1735 * @see eina_value_list_pinsert()
1736 * @see eina_value_list_append()
1737 * @see eina_value_list_vappend()
1738 * @see eina_value_list_pappend()
1739 *
1740 * @since 1.2
1741 */
1742static inline Eina_Bool eina_value_list_append(Eina_Value *value,
1743 ...) EINA_ARG_NONNULL(1);
1744
1745/**
1746 * @brief Set the generic value in an list member.
1747 * @param value source value object
1748 * @param position index of the member
1749 * @param args variable argument
1750 * @return #EINA_TRUE on success, #EINA_FALSE otherwise.
1751 * @see eina_value_list_set()
1752 * @see eina_value_list_get()
1753 * @see eina_value_list_pset()
1754 * @see eina_value_list_insert()
1755 * @see eina_value_list_vinsert()
1756 * @see eina_value_list_pinsert()
1757 * @see eina_value_list_append()
1758 * @see eina_value_list_vappend()
1759 * @see eina_value_list_pappend()
1760 *
1761 * @since 1.2
1762 */
1763static inline Eina_Bool eina_value_list_vset(Eina_Value *value,
1764 unsigned int position,
1765 va_list args) EINA_ARG_NONNULL(1);
1766
1767/**
1768 * @brief Get the generic value from an list member.
1769 * @param value source value object
1770 * @param position index of the member
1771 * @param args variable argument
1772 * @return #EINA_TRUE on success, #EINA_FALSE otherwise.
1773 *
1774 * The value is returned in the variable argument parameter, the
1775 * actual value is type-dependent, but usually it will be what is
1776 * stored inside the object. There shouldn't be any memory allocation,
1777 * thus the contents should @b not be freed.
1778 *
1779 * @see eina_value_list_vset()
1780 * @see eina_value_list_get()
1781 * @see eina_value_list_pget()
1782 *
1783 * @since 1.2
1784 */
1785static inline Eina_Bool eina_value_list_vget(const Eina_Value *value,
1786 unsigned int position,
1787 va_list args) EINA_ARG_NONNULL(1);
1788/**
1789 * @brief Insert the generic value in an list member position.
1790 * @param value source value object
1791 * @param position index of the member
1792 * @param args variable argument
1793 * @return #EINA_TRUE on success, #EINA_FALSE otherwise.
1794 * @see eina_value_list_set()
1795 * @see eina_value_list_get()
1796 * @see eina_value_list_vset()
1797 * @see eina_value_list_pset()
1798 * @see eina_value_list_insert()
1799 * @see eina_value_list_pinsert()
1800 * @see eina_value_list_append()
1801 * @see eina_value_list_vappend()
1802 * @see eina_value_list_pappend()
1803 *
1804 * @since 1.2
1805 */
1806static inline Eina_Bool eina_value_list_vinsert(Eina_Value *value,
1807 unsigned int position,
1808 va_list args) EINA_ARG_NONNULL(1);
1809
1810/**
1811 * @brief Append the generic value in an list.
1812 * @param value source value object
1813 * @param args variable argument
1814 * @return #EINA_TRUE on success, #EINA_FALSE otherwise.
1815 * @see eina_value_list_set()
1816 * @see eina_value_list_get()
1817 * @see eina_value_list_vget()
1818 * @see eina_value_list_pset()
1819 * @see eina_value_list_insert()
1820 * @see eina_value_list_vinsert()
1821 * @see eina_value_list_pinsert()
1822 * @see eina_value_list_append()
1823 * @see eina_value_list_pappend()
1824 *
1825 * @since 1.2
1826 */
1827static inline Eina_Bool eina_value_list_vappend(Eina_Value *value,
1828 va_list args) EINA_ARG_NONNULL(1);
1829
1830
1831/**
1832 * @brief Set the generic value in an list member from pointer.
1833 * @param value source value object
1834 * @param position index of the member
1835 * @param ptr pointer to specify the contents.
1836 * @return #EINA_TRUE on success, #EINA_FALSE otherwise.
1837 *
1838 * The pointer type is dependent on chosen value type. The list for
1839 * basic types:
1840 *
1841 * @li EINA_VALUE_TYPE_UCHAR: unsigned char*
1842 * @li EINA_VALUE_TYPE_USHORT: unsigned short*
1843 * @li EINA_VALUE_TYPE_UINT: unsigned int*
1844 * @li EINA_VALUE_TYPE_ULONG: unsigned long*
1845 * @li EINA_VALUE_TYPE_UINT64: uint64_t*
1846 * @li EINA_VALUE_TYPE_CHAR: char*
1847 * @li EINA_VALUE_TYPE_SHORT: short*
1848 * @li EINA_VALUE_TYPE_INT: int*
1849 * @li EINA_VALUE_TYPE_LONG: long*
1850 * @li EINA_VALUE_TYPE_INT64: int64_t*
1851 * @li EINA_VALUE_TYPE_FLOAT: float*
1852 * @li EINA_VALUE_TYPE_DOUBLE: double*
1853 * @li EINA_VALUE_TYPE_STRINGSHARE: const char **
1854 * @li EINA_VALUE_TYPE_STRING: const char **
1855 * @li EINA_VALUE_TYPE_LIST: Eina_Value_List*
1856 * @li EINA_VALUE_TYPE_HASH: Eina_Value_Hash*
1857 * @li EINA_VALUE_TYPE_TIMEVAL: struct timeval*
1858 * @li EINA_VALUE_TYPE_BLOB: Eina_Value_Blob*
1859 * @li EINA_VALUE_TYPE_STRUCT: Eina_Value_Struct*
1860 *
1861 * @note the pointer contents are written using the size defined by
1862 * type. It can be larger than void* or uint64_t.
1863 *
1864 * @code
1865 * Eina_Value *value = eina_value_list_new(EINA_VALUE_TYPE_INT);
1866 * int x = 1234;
1867 *
1868 * eina_value_list_append(value, 1234);
1869 * eina_value_list_pset(value, 0, &x);
1870 * eina_value_list_pget(value, 0, &x);
1871 * eina_value_free(value);
1872 * @endcode
1873 *
1874 * @see eina_value_list_set()
1875 * @see eina_value_list_get()
1876 * @see eina_value_list_vset()
1877 * @see eina_value_list_insert()
1878 * @see eina_value_list_vinsert()
1879 * @see eina_value_list_pinsert()
1880 * @see eina_value_list_append()
1881 * @see eina_value_list_vappend()
1882 * @see eina_value_list_pappend()
1883 *
1884 * @since 1.2
1885 */
1886static inline Eina_Bool eina_value_list_pset(Eina_Value *value,
1887 unsigned int position,
1888 const void *ptr) EINA_ARG_NONNULL(1, 3);
1889
1890/**
1891 * @brief Get the generic value to pointer from an list member.
1892 * @param value source value object
1893 * @param position index of the member
1894 * @param ptr pointer to receive the contents.
1895 * @return #EINA_TRUE on success, #EINA_FALSE otherwise.
1896 *
1897 * The value is returned in pointer contents, the actual value is
1898 * type-dependent, but usually it will be what is stored inside the
1899 * object. There shouldn't be any memory allocation, thus the contents
1900 * should @b not be freed.
1901 *
1902 * The pointer type is dependent on chosen value type. The list for
1903 * basic types:
1904 *
1905 * @li EINA_VALUE_TYPE_UCHAR: unsigned char*
1906 * @li EINA_VALUE_TYPE_USHORT: unsigned short*
1907 * @li EINA_VALUE_TYPE_UINT: unsigned int*
1908 * @li EINA_VALUE_TYPE_ULONG: unsigned long*
1909 * @li EINA_VALUE_TYPE_UINT64: uint64_t*
1910 * @li EINA_VALUE_TYPE_CHAR: char*
1911 * @li EINA_VALUE_TYPE_SHORT: short*
1912 * @li EINA_VALUE_TYPE_INT: int*
1913 * @li EINA_VALUE_TYPE_LONG: long*
1914 * @li EINA_VALUE_TYPE_INT64: int64_t*
1915 * @li EINA_VALUE_TYPE_FLOAT: float*
1916 * @li EINA_VALUE_TYPE_DOUBLE: double*
1917 * @li EINA_VALUE_TYPE_STRINGSHARE: const char **
1918 * @li EINA_VALUE_TYPE_STRING: const char **
1919 * @li EINA_VALUE_TYPE_LIST: Eina_Value_List*
1920 * @li EINA_VALUE_TYPE_HASH: Eina_Value_Hash*
1921 * @li EINA_VALUE_TYPE_TIMEVAL: struct timeval*
1922 * @li EINA_VALUE_TYPE_BLOB: Eina_Value_Blob*
1923 * @li EINA_VALUE_TYPE_STRUCT: Eina_Value_Struct*
1924 *
1925 * @code
1926 * Eina_Value *value = eina_value_list_new(EINA_VALUE_TYPE_INT);
1927 * int x;
1928 *
1929 * eina_value_list_append(value, 1234);
1930 * eina_value_list_pget(value, 0, &x);
1931 * eina_value_free(value);
1932 * @endcode
1933 *
1934 * @see eina_value_list_set()
1935 * @see eina_value_list_vset()
1936 * @see eina_value_list_pset()
1937 *
1938 * @since 1.2
1939 */
1940static inline Eina_Bool eina_value_list_pget(const Eina_Value *value,
1941 unsigned int position,
1942 void *ptr) EINA_ARG_NONNULL(1, 3);
1943
1944/**
1945 * @brief Insert the generic value in an list member position from pointer.
1946 * @param value source value object
1947 * @param position index of the member
1948 * @param ptr pointer to specify the contents.
1949 * @return #EINA_TRUE on success, #EINA_FALSE otherwise.
1950 *
1951 * The pointer type is dependent on chosen value type. The list for
1952 * basic types:
1953 *
1954 * @li EINA_VALUE_TYPE_UCHAR: unsigned char*
1955 * @li EINA_VALUE_TYPE_USHORT: unsigned short*
1956 * @li EINA_VALUE_TYPE_UINT: unsigned int*
1957 * @li EINA_VALUE_TYPE_ULONG: unsigned long*
1958 * @li EINA_VALUE_TYPE_UINT64: uint64_t*
1959 * @li EINA_VALUE_TYPE_CHAR: char*
1960 * @li EINA_VALUE_TYPE_SHORT: short*
1961 * @li EINA_VALUE_TYPE_INT: int*
1962 * @li EINA_VALUE_TYPE_LONG: long*
1963 * @li EINA_VALUE_TYPE_INT64: int64_t*
1964 * @li EINA_VALUE_TYPE_FLOAT: float*
1965 * @li EINA_VALUE_TYPE_DOUBLE: double*
1966 * @li EINA_VALUE_TYPE_STRINGSHARE: const char **
1967 * @li EINA_VALUE_TYPE_STRING: const char **
1968 * @li EINA_VALUE_TYPE_LIST: Eina_Value_List*
1969 * @li EINA_VALUE_TYPE_HASH: Eina_Value_Hash*
1970 * @li EINA_VALUE_TYPE_TIMEVAL: struct timeval*
1971 * @li EINA_VALUE_TYPE_BLOB: Eina_Value_Blob*
1972 * @li EINA_VALUE_TYPE_STRUCT: Eina_Value_Struct*
1973 *
1974 * @note the pointer contents are written using the size defined by
1975 * type. It can be larger than void* or uint64_t.
1976 *
1977 * @code
1978 * Eina_Value *value = eina_value_list_new(EINA_VALUE_TYPE_INT);
1979 * int x = 1234;
1980 *
1981 * eina_value_list_pinsert(value, 0, &x);
1982 * eina_value_list_pget(value, 0, &x);
1983 * eina_value_free(value);
1984 * @endcode
1985 *
1986 * @see eina_value_list_set()
1987 * @see eina_value_list_get()
1988 * @see eina_value_list_vset()
1989 * @see eina_value_list_insert()
1990 * @see eina_value_list_vinsert()
1991 * @see eina_value_list_pinsert()
1992 * @see eina_value_list_append()
1993 * @see eina_value_list_vappend()
1994 * @see eina_value_list_pappend()
1995 *
1996 * @since 1.2
1997 */
1998static inline Eina_Bool eina_value_list_pinsert(Eina_Value *value,
1999 unsigned int position,
2000 const void *ptr) EINA_ARG_NONNULL(1);
2001
2002/**
2003 * @brief Append the generic value in an list from pointer.
2004 * @param value source value object
2005 * @param ptr pointer to specify the contents.
2006 * @return #EINA_TRUE on success, #EINA_FALSE otherwise.
2007 *
2008 * The pointer type is dependent on chosen value type. The list for
2009 * basic types:
2010 *
2011 * @li EINA_VALUE_TYPE_UCHAR: unsigned char*
2012 * @li EINA_VALUE_TYPE_USHORT: unsigned short*
2013 * @li EINA_VALUE_TYPE_UINT: unsigned int*
2014 * @li EINA_VALUE_TYPE_ULONG: unsigned long*
2015 * @li EINA_VALUE_TYPE_UINT64: uint64_t*
2016 * @li EINA_VALUE_TYPE_CHAR: char*
2017 * @li EINA_VALUE_TYPE_SHORT: short*
2018 * @li EINA_VALUE_TYPE_INT: int*
2019 * @li EINA_VALUE_TYPE_LONG: long*
2020 * @li EINA_VALUE_TYPE_INT64: int64_t*
2021 * @li EINA_VALUE_TYPE_FLOAT: float*
2022 * @li EINA_VALUE_TYPE_DOUBLE: double*
2023 * @li EINA_VALUE_TYPE_STRINGSHARE: const char **
2024 * @li EINA_VALUE_TYPE_STRING: const char **
2025 * @li EINA_VALUE_TYPE_LIST: Eina_Value_List*
2026 * @li EINA_VALUE_TYPE_HASH: Eina_Value_Hash*
2027 * @li EINA_VALUE_TYPE_TIMEVAL: struct timeval*
2028 * @li EINA_VALUE_TYPE_BLOB: Eina_Value_Blob*
2029 * @li EINA_VALUE_TYPE_STRUCT: Eina_Value_Struct*
2030 *
2031 * @note the pointer contents are written using the size defined by
2032 * type. It can be larger than void* or uint64_t.
2033 *
2034 * @code
2035 * Eina_Value *value = eina_value_list_new(EINA_VALUE_TYPE_INT);
2036 * int x = 1234;
2037 *
2038 * eina_value_list_pappend(value, &x);
2039 * eina_value_list_pget(value, 0, &x);
2040 * eina_value_free(value);
2041 * @endcode
2042 *
2043 * @see eina_value_list_set()
2044 * @see eina_value_list_get()
2045 * @see eina_value_list_vset()
2046 * @see eina_value_list_insert()
2047 * @see eina_value_list_vinsert()
2048 * @see eina_value_list_pinsert()
2049 * @see eina_value_list_append()
2050 * @see eina_value_list_vappend()
2051 * @see eina_value_list_pappend()
2052 *
2053 * @since 1.2
2054 */
2055static inline Eina_Bool eina_value_list_pappend(Eina_Value *value,
2056 const void *ptr) EINA_ARG_NONNULL(1);
2057
2058/**
2059 * @}
2060 */
2061
2062/**
2063 * @defgroup Eina_Value_Hash_Group Generic Value Hash management
2064 *
2065 * @{
2066 */
2067
2068/**
2069 * @typedef Eina_Value_Hash
2070 * Value type for #EINA_VALUE_TYPE_HASH
2071 *
2072 * @since 1.2
2073 */
2074typedef struct _Eina_Value_Hash Eina_Value_Hash;
2075
2076/**
2077 * @struct _Eina_Value_Hash
2078 * Used to store the hash and its subtype.
2079 */
2080struct _Eina_Value_Hash
2081{
2082 const Eina_Value_Type *subtype; /**< how to allocate and access items */
2083 unsigned int buckets_power_size; /**< how to allocate hash buckets, if zero a sane default is chosen. */
2084 Eina_Hash *hash; /**< the hash that holds data, members are of subtype->value_size bytes. */
2085};
2086
2087/**
2088 * @brief Create generic value storage of type hash.
2089 * @param subtype how to manage this hash members.
2090 * @param buckets_power_size how to allocate hash buckets (2 ^
2091 * buckets_power_size), if zero then a sane value is chosen.
2092 * @return The new value or @c NULL on failure.
2093 *
2094 * Create a new generic value storage of type hash. The members are
2095 * managed using the description specified by @a subtype.
2096 *
2097 * On failure, @c NULL is returned and #EINA_ERROR_OUT_OF_MEMORY or
2098 * #EINA_ERROR_VALUE_FAILED is set.
2099 *
2100 * @note this creates from mempool and then uses
2101 * eina_value_hash_setup().
2102 *
2103 * @see eina_value_free()
2104 * @see eina_value_hash_setup()
2105 *
2106 * @since 1.2
2107 */
2108EAPI Eina_Value *eina_value_hash_new(const Eina_Value_Type *subtype, unsigned int buckets_power_size) EINA_ARG_NONNULL(1);
2109
2110/**
2111 * @brief Initialize generic value storage of type hash.
2112 * @param value value object
2113 * @param subtype how to manage this hash members.
2114 * @param buckets_power_size how to allocate hash buckets (2 ^
2115 * buckets_power_size), if zero then a sane value is chosen.
2116 * @return #EINA_TRUE on success, #EINA_FALSE otherwise.
2117 *
2118 * Initializes new generic value storage of type hash with the given
2119 * @a subtype.
2120 *
2121 * This is the same as calling eina_value_set() with
2122 * #EINA_VALUE_TYPE_HASH followed by eina_value_pset() with the
2123 * #Eina_Value_Hash description configured.
2124 *
2125 * @note Existing contents are ignored! If the value was previously used, then
2126 * use eina_value_flush() first.
2127 *
2128 * On failure, #EINA_FALSE is returned and #EINA_ERROR_OUT_OF_MEMORY
2129 * or #EINA_ERROR_VALUE_FAILED is set.
2130 *
2131 * @see eina_value_flush()
2132 *
2133 * @since 1.2
2134 */
2135static inline Eina_Bool eina_value_hash_setup(Eina_Value *value,
2136 const Eina_Value_Type *subtype,
2137 unsigned int buckets_power_size) EINA_ARG_NONNULL(1, 2);
2138
2139/**
2140 * @brief Query number of elements in value of hash type.
2141 * @param value value object.
2142 * @return number of child elements.
2143 * @since 1.2
2144 */
2145static inline unsigned int eina_value_hash_population(const Eina_Value *value);
2146
2147/**
2148 * @brief Remove element at given position in value of hash type.
2149 * @param value value object.
2150 * @param key key to find the member
2151 * @return #EINA_TRUE on success, #EINA_FALSE otherwise.
2152 * @since 1.2
2153 */
2154static inline Eina_Bool eina_value_hash_del(Eina_Value *value,
2155 const char *key) EINA_ARG_NONNULL(1);
2156
2157/**
2158 * @brief Set the generic value in an hash member.
2159 * @param value source value object
2160 * @param key key to find the member
2161 * @return #EINA_TRUE on success, #EINA_FALSE otherwise.
2162 *
2163 * The variable argument is dependent on chosen subtype. The list for
2164 * basic types:
2165 *
2166 * @li EINA_VALUE_TYPE_UCHAR: unsigned char
2167 * @li EINA_VALUE_TYPE_USHORT: unsigned short
2168 * @li EINA_VALUE_TYPE_UINT: unsigned int
2169 * @li EINA_VALUE_TYPE_ULONG: unsigned long
2170 * @li EINA_VALUE_TYPE_UINT64: uint64_t
2171 * @li EINA_VALUE_TYPE_CHAR: char
2172 * @li EINA_VALUE_TYPE_SHORT: short
2173 * @li EINA_VALUE_TYPE_INT: int
2174 * @li EINA_VALUE_TYPE_LONG: long
2175 * @li EINA_VALUE_TYPE_INT64: int64_t
2176 * @li EINA_VALUE_TYPE_FLOAT: float
2177 * @li EINA_VALUE_TYPE_DOUBLE: double
2178 * @li EINA_VALUE_TYPE_STRINGSHARE: const char *
2179 * @li EINA_VALUE_TYPE_STRING: const char *
2180 * @li EINA_VALUE_TYPE_HASH: Eina_Value_Hash
2181 * @li EINA_VALUE_TYPE_TIMEVAL: struct timeval*
2182 * @li EINA_VALUE_TYPE_BLOB: Eina_Value_Blob*
2183 * @li EINA_VALUE_TYPE_STRUCT: Eina_Value_Struct*
2184 *
2185 * @code
2186 * Eina_Value *value = eina_value_hash_new(EINA_VALUE_TYPE_INT, 0);
2187 * int x;
2188 *
2189 * eina_value_hash_set(value, "abc", 5678);
2190 * eina_value_hash_get(value, "abc", &x);
2191 * eina_value_free(value);
2192 * @endcode
2193 *
2194 * @see eina_value_hash_get()
2195 * @see eina_value_hash_vset()
2196 * @see eina_value_hash_pset()
2197 * @see eina_value_hash_del()
2198 *
2199 * @since 1.2
2200 */
2201static inline Eina_Bool eina_value_hash_set(Eina_Value *value,
2202 const char *key,
2203 ...) EINA_ARG_NONNULL(1);
2204
2205/**
2206 * @brief Get the generic value from an hash member.
2207 * @param value source value object
2208 * @param key key to find the member
2209 * @return #EINA_TRUE on success, #EINA_FALSE otherwise.
2210 *
2211 * The value is returned in the variable argument parameter, the
2212 * actual value is type-dependent, but usually it will be what is
2213 * stored inside the object. There shouldn't be any memory allocation,
2214 * thus the contents should @b not be freed.
2215 *
2216 * The variable argument is dependent on chosen subtype. The list for
2217 * basic types:
2218 *
2219 * @li EINA_VALUE_TYPE_UCHAR: unsigned char*
2220 * @li EINA_VALUE_TYPE_USHORT: unsigned short*
2221 * @li EINA_VALUE_TYPE_UINT: unsigned int*
2222 * @li EINA_VALUE_TYPE_ULONG: unsigned long*
2223 * @li EINA_VALUE_TYPE_UINT64: uint64_t*
2224 * @li EINA_VALUE_TYPE_CHAR: char*
2225 * @li EINA_VALUE_TYPE_SHORT: short*
2226 * @li EINA_VALUE_TYPE_INT: int*
2227 * @li EINA_VALUE_TYPE_LONG: long*
2228 * @li EINA_VALUE_TYPE_INT64: int64_t*
2229 * @li EINA_VALUE_TYPE_FLOAT: float*
2230 * @li EINA_VALUE_TYPE_DOUBLE: double*
2231 * @li EINA_VALUE_TYPE_STRINGSHARE: const char **
2232 * @li EINA_VALUE_TYPE_STRING: const char **
2233 * @li EINA_VALUE_TYPE_HASH: Eina_Value_Hash*
2234 * @li EINA_VALUE_TYPE_TIMEVAL: struct timeval*
2235 * @li EINA_VALUE_TYPE_BLOB: Eina_Value_Blob*
2236 * @li EINA_VALUE_TYPE_STRUCT: Eina_Value_Struct*
2237 *
2238 * @code
2239 * Eina_Value *value = eina_value_hash_new(EINA_VALUE_TYPE_INT, 0);
2240 * int x;
2241 *
2242 * eina_value_hash_set(value, "abc", 1234);
2243 * eina_value_hash_get(value, "abc", &x);
2244 * eina_value_free(value);
2245 * @endcode
2246 *
2247 * @see eina_value_hash_set()
2248 * @see eina_value_hash_vset()
2249 * @see eina_value_hash_pset()
2250 *
2251 * @since 1.2
2252 */
2253static inline Eina_Bool eina_value_hash_get(const Eina_Value *value,
2254 const char *key,
2255 ...) EINA_ARG_NONNULL(1);
2256
2257/**
2258 * @brief Set the generic value in an hash member.
2259 * @param value source value object
2260 * @param key key to find the member
2261 * @param args variable argument
2262 * @return #EINA_TRUE on success, #EINA_FALSE otherwise.
2263 * @see eina_value_hash_set()
2264 * @see eina_value_hash_get()
2265 * @see eina_value_hash_pset()
2266 *
2267 * @since 1.2
2268 */
2269static inline Eina_Bool eina_value_hash_vset(Eina_Value *value,
2270 const char *key,
2271 va_list args) EINA_ARG_NONNULL(1);
2272
2273/**
2274 * @brief Get the generic value from an hash member.
2275 * @param value source value object
2276 * @param key key to find the member
2277 * @param args variable argument
2278 * @return #EINA_TRUE on success, #EINA_FALSE otherwise.
2279 *
2280 * The value is returned in the variable argument parameter, the
2281 * actual value is type-dependent, but usually it will be what is
2282 * stored inside the object. There shouldn't be any memory allocation,
2283 * thus the contents should @b not be freed.
2284 *
2285 * @see eina_value_hash_vset()
2286 * @see eina_value_hash_get()
2287 * @see eina_value_hash_pget()
2288 *
2289 * @since 1.2
2290 */
2291static inline Eina_Bool eina_value_hash_vget(const Eina_Value *value,
2292 const char *key,
2293 va_list args) EINA_ARG_NONNULL(1);
2294
2295/**
2296 * @brief Set the generic value in an hash member from pointer.
2297 * @param value source value object
2298 * @param key key to find the member
2299 * @param ptr pointer to specify the contents.
2300 * @return #EINA_TRUE on success, #EINA_FALSE otherwise.
2301 *
2302 * The pointer type is dependent on chosen value type. The list for
2303 * basic types:
2304 *
2305 * @li EINA_VALUE_TYPE_UCHAR: unsigned char*
2306 * @li EINA_VALUE_TYPE_USHORT: unsigned short*
2307 * @li EINA_VALUE_TYPE_UINT: unsigned int*
2308 * @li EINA_VALUE_TYPE_ULONG: unsigned long*
2309 * @li EINA_VALUE_TYPE_UINT64: uint64_t*
2310 * @li EINA_VALUE_TYPE_CHAR: char*
2311 * @li EINA_VALUE_TYPE_SHORT: short*
2312 * @li EINA_VALUE_TYPE_INT: int*
2313 * @li EINA_VALUE_TYPE_LONG: long*
2314 * @li EINA_VALUE_TYPE_INT64: int64_t*
2315 * @li EINA_VALUE_TYPE_FLOAT: float*
2316 * @li EINA_VALUE_TYPE_DOUBLE: double*
2317 * @li EINA_VALUE_TYPE_STRINGSHARE: const char **
2318 * @li EINA_VALUE_TYPE_STRING: const char **
2319 * @li EINA_VALUE_TYPE_HASH: Eina_Value_Hash*
2320 * @li EINA_VALUE_TYPE_TIMEVAL: struct timeval*
2321 * @li EINA_VALUE_TYPE_BLOB: Eina_Value_Blob*
2322 * @li EINA_VALUE_TYPE_STRUCT: Eina_Value_Struct*
2323 *
2324 * @note the pointer contents are written using the size defined by
2325 * type. It can be larger than void* or uint64_t.
2326 *
2327 * @code
2328 * Eina_Value *value = eina_value_hash_new(EINA_VALUE_TYPE_INT, 0);
2329 * int x = 1234;
2330 *
2331 * eina_value_hash_pset(value, "abc", &x);
2332 * eina_value_hash_pget(value, "abc", &x);
2333 * eina_value_free(value);
2334 * @endcode
2335 *
2336 * @see eina_value_hash_set()
2337 * @see eina_value_hash_get()
2338 * @see eina_value_hash_vset()
2339 *
2340 * @since 1.2
2341 */
2342static inline Eina_Bool eina_value_hash_pset(Eina_Value *value,
2343 const char *key,
2344 const void *ptr) EINA_ARG_NONNULL(1, 3);
2345
2346/**
2347 * @brief Get the generic value to pointer from an hash member.
2348 * @param value source value object
2349 * @param key key to find the member
2350 * @param ptr pointer to receive the contents.
2351 * @return #EINA_TRUE on success, #EINA_FALSE otherwise.
2352 *
2353 * The value is returned in pointer contents, the actual value is
2354 * type-dependent, but usually it will be what is stored inside the
2355 * object. There shouldn't be any memory allocation, thus the contents
2356 * should @b not be freed.
2357 *
2358 * The pointer type is dependent on chosen value type. The list for
2359 * basic types:
2360 *
2361 * @li EINA_VALUE_TYPE_UCHAR: unsigned char*
2362 * @li EINA_VALUE_TYPE_USHORT: unsigned short*
2363 * @li EINA_VALUE_TYPE_UINT: unsigned int*
2364 * @li EINA_VALUE_TYPE_ULONG: unsigned long*
2365 * @li EINA_VALUE_TYPE_UINT64: uint64_t*
2366 * @li EINA_VALUE_TYPE_CHAR: char*
2367 * @li EINA_VALUE_TYPE_SHORT: short*
2368 * @li EINA_VALUE_TYPE_INT: int*
2369 * @li EINA_VALUE_TYPE_LONG: long*
2370 * @li EINA_VALUE_TYPE_INT64: int64_t*
2371 * @li EINA_VALUE_TYPE_FLOAT: float*
2372 * @li EINA_VALUE_TYPE_DOUBLE: double*
2373 * @li EINA_VALUE_TYPE_STRINGSHARE: const char **
2374 * @li EINA_VALUE_TYPE_STRING: const char **
2375 * @li EINA_VALUE_TYPE_HASH: Eina_Value_Hash*
2376 * @li EINA_VALUE_TYPE_TIMEVAL: struct timeval*
2377 * @li EINA_VALUE_TYPE_BLOB: Eina_Value_Blob*
2378 * @li EINA_VALUE_TYPE_STRUCT: Eina_Value_Struct*
2379 *
2380 * @code
2381 * Eina_Value *value = eina_value_hash_new(EINA_VALUE_TYPE_INT, 0);
2382 * int x;
2383 *
2384 * eina_value_hash_set(value, "abc", 1234);
2385 * eina_value_hash_pget(value, "abc", &x);
2386 * eina_value_free(value);
2387 * @endcode
2388 *
2389 * @see eina_value_hash_set()
2390 * @see eina_value_hash_vset()
2391 * @see eina_value_hash_pset()
2392 *
2393 * @since 1.2
2394 */
2395static inline Eina_Bool eina_value_hash_pget(const Eina_Value *value,
2396 const char *key,
2397 void *ptr) EINA_ARG_NONNULL(1, 3);
2398
2399/**
2400 * @}
2401 */
2402
2403/**
2404 * @defgroup Eina_Value_Blob_Group Generic Value Blob management
2405 *
2406 * @{
2407 */
2408
2409/**
2410 * @typedef Eina_Value_Blob_Operations
2411 * How to manage blob. Any @c NULL callback is ignored.
2412 * @since 1.2
2413 */
2414typedef struct _Eina_Value_Blob_Operations Eina_Value_Blob_Operations;
2415
2416/**
2417 * @struct _Eina_Value_Blob_Operations
2418 * How to manage blob. Any @c NULL callback is ignored.
2419 * @since 1.2
2420 */
2421struct _Eina_Value_Blob_Operations
2422{
2423#define EINA_VALUE_BLOB_OPERATIONS_VERSION (1)
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);
2426 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);
2428 char *(*to_string)(const Eina_Value_Blob_Operations *ops, const void *memory, size_t size);
2429};
2430
2431/**
2432 * @var EINA_VALUE_BLOB_OPERATIONS_MALLOC
2433 *
2434 * Assumes @c memory was create with malloc() and applies free() to it
2435 * during flush (Eina_Value_Blob_Operations::free). Copy is done with
2436 * malloc() as well.
2437 *
2438 * No compare or to_string are provided, defaults will be used.
2439 */
2440EAPI extern const Eina_Value_Blob_Operations *EINA_VALUE_BLOB_OPERATIONS_MALLOC;
2441
2442/**
2443 * @typedef Eina_Value_Blob
2444 * @since 1.2
2445 */
2446typedef struct _Eina_Value_Blob Eina_Value_Blob;
2447
2448/**
2449 * @struct _Eina_Value_Blob
2450 * @since 1.2
2451 */
2452struct _Eina_Value_Blob
2453{
2454 const Eina_Value_Blob_Operations *ops; /**< if @c NULL, nothing is freed, copy will just copy the memory pointer, not its value. */
2455 const void *memory;
2456 unsigned int size;
2457};
2458
2459/**
2460 * @}
2461 */
2462
2463/**
2464 * @defgroup Eina_Value_Struct_Group Generic Value Struct management
2465 *
2466 * @{
2467 */
2468
2469/**
2470 * @typedef Eina_Value_Struct_Operations
2471 * How to manage struct. Any @c NULL callback is ignored.
2472 * @since 1.2
2473 */
2474typedef struct _Eina_Value_Struct_Operations Eina_Value_Struct_Operations;
2475
2476/**
2477 * @typedef Eina_Value_Struct_Member
2478 * Describes a single member of struct.
2479 * @since 1.2
2480 */
2481typedef struct _Eina_Value_Struct_Member Eina_Value_Struct_Member;
2482
2483/**
2484 * @typedef Eina_Value_Struct_Desc
2485 * Describes the struct by listing its size, members and operations.
2486 * @since 1.2
2487 */
2488typedef struct _Eina_Value_Struct_Desc Eina_Value_Struct_Desc;
2489
2490/**
2491 * @typedef Eina_Value_Struct
2492 * @since 1.2
2493 */
2494typedef struct _Eina_Value_Struct Eina_Value_Struct;
2495
2496/**
2497 * @struct _Eina_Value_Struct_Operations
2498 * How to manage struct. Any @c NULL callback is ignored.
2499 * @since 1.2
2500 */
2501struct _Eina_Value_Struct_Operations
2502{
2503#define EINA_VALUE_STRUCT_OPERATIONS_VERSION (1)
2504 unsigned int version; /**< must be EINA_VALUE_STRUCT_OPERATIONS_VERSION */
2505 void *(*alloc)(const Eina_Value_Struct_Operations *ops, const Eina_Value_Struct_Desc *desc);
2506 void (*free)(const Eina_Value_Struct_Operations *ops, const Eina_Value_Struct_Desc *desc, void *memory);
2507 void *(*copy)(const Eina_Value_Struct_Operations *ops, const Eina_Value_Struct_Desc *desc, const void *memory);
2508 int (*compare)(const Eina_Value_Struct_Operations *ops, const Eina_Value_Struct_Desc *desc, const void *data1, const void *data2);
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};
2511
2512/**
2513 * @var EINA_VALUE_STRUCT_OPERATIONS_BINSEARCH
2514 *
2515 * Assumes @c members is sorted by name and applies binary search for
2516 * names.
2517 *
2518 * Ideally the @c member_count field is set to speed it up.
2519 *
2520 * No other methods are set (alloc, free, copy, compare), then it uses
2521 * the default operations.
2522 */
2523EAPI extern const Eina_Value_Struct_Operations *EINA_VALUE_STRUCT_OPERATIONS_BINSEARCH;
2524
2525/**
2526 * @var EINA_VALUE_STRUCT_OPERATIONS_STRINGSHARE
2527 *
2528 * Assumes @c members name are stringshared and can be compared for
2529 * equality without using its contents (simple pointer comparison).
2530 *
2531 * Ideally the search @c name will be stringshared as well, but it
2532 * will do a second loop with a forced stringshare if it did not find
2533 * the member.
2534 *
2535 * No other methods are set (alloc, free, copy, compare), then it uses
2536 * the default operations.
2537 */
2538EAPI extern const Eina_Value_Struct_Operations *EINA_VALUE_STRUCT_OPERATIONS_STRINGSHARE;
2539
2540/**
2541 * @struct _Eina_Value_Struct_Member
2542 * @since 1.2
2543 */
2544struct _Eina_Value_Struct_Member
2545{
2546 const char *name;
2547 const Eina_Value_Type *type;
2548 unsigned int offset;
2549};
2550
2551/**
2552 * @struct _Eina_Value_Struct_Desc
2553 * @since 1.2
2554 */
2555struct _Eina_Value_Struct_Desc
2556{
2557#define EINA_VALUE_STRUCT_DESC_VERSION (1)
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. */
2560 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. */
2562 unsigned int size; /**< byte size to allocate, may be bigger than sum of members */
2563};
2564
2565/**
2566 * @def EINA_VALUE_STRUCT_MEMBER
2567 *
2568 * Helper to define Eina_Value_Struct_Member fields, uses offsetof()
2569 * with type and member.
2570 *
2571 * @since 1.2
2572 */
2573#define EINA_VALUE_STRUCT_MEMBER(eina_value_type, type, member) \
2574 {#member, eina_value_type, offsetof(type, member)}
2575
2576/**
2577 * @def EINA_VALUE_STRUCT_MEMBER_SENTINEL
2578 *
2579 * Helper to define Eina_Value_Struct_Member fields for sentinel (last
2580 * item), useful if you did not define @c member_count.
2581 *
2582 * @since 1.2
2583 */
2584#define EINA_VALUE_STRUCT_MEMBER_SENTINEL {NULL, NULL, 0}
2585
2586
2587/**
2588 * @struct _Eina_Value_Struct
2589 * @since 1.2
2590 */
2591struct _Eina_Value_Struct
2592{
2593 const Eina_Value_Struct_Desc *desc;
2594 void *memory;
2595};
2596
2597/**
2598 * @brief Create generic value storage of type struct.
2599 * @param desc how to manage this struct members.
2600 * @return The new value or @c NULL on failure.
2601 *
2602 * Create a new generic value storage of type struct. The members are
2603 * managed using the description specified by @a desc.
2604 *
2605 * On failure, @c NULL is returned and #EINA_ERROR_OUT_OF_MEMORY or
2606 * #EINA_ERROR_VALUE_FAILED is set.
2607 *
2608 * @note this creates from mempool and then uses
2609 * eina_value_struct_setup().
2610 *
2611 * @see eina_value_free()
2612 * @see eina_value_struct_setup()
2613 *
2614 * @since 1.2
2615 */
2616EAPI Eina_Value *eina_value_struct_new(const Eina_Value_Struct_Desc *desc) EINA_ARG_NONNULL(1);
2617
2618/**
2619 * @brief Initialize generic value storage of type struct.
2620 * @param value value object
2621 * @param desc how to manage this struct members.
2622 * @return #EINA_TRUE on success, #EINA_FALSE otherwise.
2623 *
2624 * Initializes new generic value storage of type struct with the given
2625 * @a desc.
2626 *
2627 * This is the same as calling eina_value_set() with
2628 * #EINA_VALUE_TYPE_STRUCT followed by eina_value_pset() with the
2629 * #Eina_Value_Struct description configured.
2630 *
2631 * @note Existing contents are ignored! If the value was previously used, then
2632 * use eina_value_flush() first.
2633 *
2634 * On failure, #EINA_FALSE is returned and #EINA_ERROR_OUT_OF_MEMORY
2635 * or #EINA_ERROR_VALUE_FAILED is set.
2636 *
2637 * @see eina_value_flush()
2638 *
2639 * @since 1.2
2640 */
2641static inline Eina_Bool eina_value_struct_setup(Eina_Value *value,
2642 const Eina_Value_Struct_Desc *desc) EINA_ARG_NONNULL(1, 2);
2643
2644/**
2645 * @brief Set the generic value in an struct member.
2646 * @param value source value object
2647 * @param name name to find the member
2648 * @return #EINA_TRUE on success, #EINA_FALSE otherwise.
2649 *
2650 * The variable argument is dependent on chosen member type. The list
2651 * for basic types:
2652 *
2653 * @li EINA_VALUE_TYPE_UCHAR: unsigned char
2654 * @li EINA_VALUE_TYPE_USHORT: unsigned short
2655 * @li EINA_VALUE_TYPE_UINT: unsigned int
2656 * @li EINA_VALUE_TYPE_ULONG: unsigned long
2657 * @li EINA_VALUE_TYPE_UINT64: uint64_t
2658 * @li EINA_VALUE_TYPE_CHAR: char
2659 * @li EINA_VALUE_TYPE_SHORT: short
2660 * @li EINA_VALUE_TYPE_INT: int
2661 * @li EINA_VALUE_TYPE_LONG: long
2662 * @li EINA_VALUE_TYPE_INT64: int64_t
2663 * @li EINA_VALUE_TYPE_FLOAT: float
2664 * @li EINA_VALUE_TYPE_DOUBLE: double
2665 * @li EINA_VALUE_TYPE_STRINGSHARE: const char *
2666 * @li EINA_VALUE_TYPE_STRING: const char *
2667 * @li EINA_VALUE_TYPE_HASH: Eina_Value_Hash
2668 * @li EINA_VALUE_TYPE_TIMEVAL: struct timeval*
2669 * @li EINA_VALUE_TYPE_BLOB: Eina_Value_Blob*
2670 * @li EINA_VALUE_TYPE_STRUCT: Eina_Value_Struct*
2671 *
2672 * @code
2673 * struct myst {
2674 * int i;
2675 * char c;
2676 * };
2677 * const Eina_Value_Struct_Member myst_members[] = {
2678 * {"i", EINA_VALUE_TYPE_INT, 0},
2679 * {"c", EINA_VALUE_TYPE_CHAR, 4},
2680 * {NULL, NULL, 0}
2681 * };
2682 * const Eina_Value_Struct_Desc myst_desc = {
2683 * EINA_VALUE_STRUCT_DESC_VERSION,
2684 * NULL, myst_members, 2, sizeof(struct myst)
2685 * };
2686 * Eina_Value *value = eina_value_struct_new(&my_desc);
2687 * int x;
2688 * char y;
2689 *
2690 * eina_value_struct_set(value, "i", 5678);
2691 * eina_value_struct_get(value, "i", &x);
2692 * eina_value_struct_set(value, "c", 0xf);
2693 * eina_value_struct_get(value, "c", &y);
2694 * eina_value_free(value);
2695 * @endcode
2696 *
2697 * @see eina_value_struct_get()
2698 * @see eina_value_struct_vset()
2699 * @see eina_value_struct_pset()
2700 *
2701 * @since 1.2
2702 */
2703static inline Eina_Bool eina_value_struct_set(Eina_Value *value,
2704 const char *name,
2705 ...) EINA_ARG_NONNULL(1);
2706
2707/**
2708 * @brief Get the generic value from an struct member.
2709 * @param value source value object
2710 * @param name name to find the member
2711 * @return #EINA_TRUE on success, #EINA_FALSE otherwise.
2712 *
2713 * The value is returned in the variable argument parameter, the
2714 * actual value is type-dependent, but usually it will be what is
2715 * stored inside the object. There shouldn't be any memory allocation,
2716 * thus the contents should @b not be freed.
2717 *
2718 * The variable argument is dependent on chosen member type. The list
2719 * for basic types:
2720 *
2721 * @li EINA_VALUE_TYPE_UCHAR: unsigned char*
2722 * @li EINA_VALUE_TYPE_USHORT: unsigned short*
2723 * @li EINA_VALUE_TYPE_UINT: unsigned int*
2724 * @li EINA_VALUE_TYPE_ULONG: unsigned long*
2725 * @li EINA_VALUE_TYPE_UINT64: uint64_t*
2726 * @li EINA_VALUE_TYPE_CHAR: char*
2727 * @li EINA_VALUE_TYPE_SHORT: short*
2728 * @li EINA_VALUE_TYPE_INT: int*
2729 * @li EINA_VALUE_TYPE_LONG: long*
2730 * @li EINA_VALUE_TYPE_INT64: int64_t*
2731 * @li EINA_VALUE_TYPE_FLOAT: float*
2732 * @li EINA_VALUE_TYPE_DOUBLE: double*
2733 * @li EINA_VALUE_TYPE_STRINGSHARE: const char **
2734 * @li EINA_VALUE_TYPE_STRING: const char **
2735 * @li EINA_VALUE_TYPE_HASH: Eina_Value_Hash*
2736 * @li EINA_VALUE_TYPE_TIMEVAL: struct timeval*
2737 * @li EINA_VALUE_TYPE_BLOB: Eina_Value_Blob*
2738 * @li EINA_VALUE_TYPE_STRUCT: Eina_Value_Struct*
2739 *
2740 * @code
2741 * struct myst {
2742 * int i;
2743 * char c;
2744 * };
2745 * const Eina_Value_Struct_Member myst_members[] = {
2746 * {"i", EINA_VALUE_TYPE_INT, 0},
2747 * {"c", EINA_VALUE_TYPE_CHAR, 4},
2748 * {NULL, NULL, 0}
2749 * };
2750 * const Eina_Value_Struct_Desc myst_desc = {
2751 * EINA_VALUE_STRUCT_DESC_VERSION,
2752 * NULL, myst_members, 2, sizeof(struct myst)
2753 * };
2754 * Eina_Value *value = eina_value_struct_new(&my_desc);
2755 * int x;
2756 * char y;
2757 *
2758 * eina_value_struct_set(value, "i", 5678);
2759 * eina_value_struct_get(value, "i", &x);
2760 * eina_value_struct_set(value, "c", 0xf);
2761 * eina_value_struct_get(value, "c", &y);
2762 * eina_value_free(value);
2763 * @endcode
2764 *
2765 * @see eina_value_struct_set()
2766 * @see eina_value_struct_vset()
2767 * @see eina_value_struct_pset()
2768 *
2769 * @since 1.2
2770 */
2771static inline Eina_Bool eina_value_struct_get(const Eina_Value *value,
2772 const char *name,
2773 ...) EINA_ARG_NONNULL(1);
2774
2775/**
2776 * @brief Set the generic value in an struct member.
2777 * @param value source value object
2778 * @param name name to find the member
2779 * @param args variable argument
2780 * @return #EINA_TRUE on success, #EINA_FALSE otherwise.
2781 * @see eina_value_struct_set()
2782 * @see eina_value_struct_get()
2783 * @see eina_value_struct_pset()
2784 *
2785 * @since 1.2
2786 */
2787static inline Eina_Bool eina_value_struct_vset(Eina_Value *value,
2788 const char *name,
2789 va_list args) EINA_ARG_NONNULL(1);
2790
2791/**
2792 * @brief Get the generic value from an struct member.
2793 * @param value source value object
2794 * @param name name to find the member
2795 * @param args variable argument
2796 * @return #EINA_TRUE on success, #EINA_FALSE otherwise.
2797 *
2798 * The value is returned in the variable argument parameter, the
2799 * actual value is type-dependent, but usually it will be what is
2800 * stored inside the object. There shouldn't be any memory allocation,
2801 * thus the contents should @b not be freed.
2802 *
2803 * @see eina_value_struct_vset()
2804 * @see eina_value_struct_get()
2805 * @see eina_value_struct_pget()
2806 *
2807 * @since 1.2
2808 */
2809static inline Eina_Bool eina_value_struct_vget(const Eina_Value *value,
2810 const char *name,
2811 va_list args) EINA_ARG_NONNULL(1);
2812
2813/**
2814 * @brief Set the generic value in an struct member from pointer.
2815 * @param value source value object
2816 * @param name name to find the member
2817 * @param ptr pointer to specify the contents.
2818 * @return #EINA_TRUE on success, #EINA_FALSE otherwise.
2819 *
2820 * The pointer type is dependent on chosen value type. The list for
2821 * basic types:
2822 *
2823 * @li EINA_VALUE_TYPE_UCHAR: unsigned char*
2824 * @li EINA_VALUE_TYPE_USHORT: unsigned short*
2825 * @li EINA_VALUE_TYPE_UINT: unsigned int*
2826 * @li EINA_VALUE_TYPE_ULONG: unsigned long*
2827 * @li EINA_VALUE_TYPE_UINT64: uint64_t*
2828 * @li EINA_VALUE_TYPE_CHAR: char*
2829 * @li EINA_VALUE_TYPE_SHORT: short*
2830 * @li EINA_VALUE_TYPE_INT: int*
2831 * @li EINA_VALUE_TYPE_LONG: long*
2832 * @li EINA_VALUE_TYPE_INT64: int64_t*
2833 * @li EINA_VALUE_TYPE_FLOAT: float*
2834 * @li EINA_VALUE_TYPE_DOUBLE: double*
2835 * @li EINA_VALUE_TYPE_STRINGSHARE: const char **
2836 * @li EINA_VALUE_TYPE_STRING: const char **
2837 * @li EINA_VALUE_TYPE_HASH: Eina_Value_Hash*
2838 * @li EINA_VALUE_TYPE_TIMEVAL: struct timeval*
2839 * @li EINA_VALUE_TYPE_BLOB: Eina_Value_Blob*
2840 * @li EINA_VALUE_TYPE_STRUCT: Eina_Value_Struct*
2841 *
2842 * @note the pointer contents are written using the size defined by
2843 * type. It can be larger than void* or uint64_t.
2844 *
2845 * @code
2846 * struct myst {
2847 * int i;
2848 * char c;
2849 * };
2850 * const Eina_Value_Struct_Member myst_members[] = {
2851 * {"i", EINA_VALUE_TYPE_INT, 0},
2852 * {"c", EINA_VALUE_TYPE_CHAR, 4},
2853 * {NULL, NULL, 0}
2854 * };
2855 * const Eina_Value_Struct_Desc myst_desc = {
2856 * EINA_VALUE_STRUCT_DESC_VERSION,
2857 * NULL, myst_members, 2, sizeof(struct myst)
2858 * };
2859 * Eina_Value *value = eina_value_struct_new(&my_desc);
2860 * int x = 5678;
2861 * char y = 0xf;
2862 *
2863 * eina_value_struct_pset(value, "i", &);
2864 * eina_value_struct_pget(value, "i", &x);
2865 * eina_value_struct_pset(value, "c", &y);
2866 * eina_value_struct_pget(value, "c", &y);
2867 * eina_value_free(value);
2868 * @endcode
2869 *
2870 * @see eina_value_struct_set()
2871 * @see eina_value_struct_get()
2872 * @see eina_value_struct_vset()
2873 *
2874 * @since 1.2
2875 */
2876static inline Eina_Bool eina_value_struct_pset(Eina_Value *value,
2877 const char *name,
2878 const void *ptr) EINA_ARG_NONNULL(1, 3);
2879
2880/**
2881 * @brief Get the generic value to pointer from an struct member.
2882 * @param value source value object
2883 * @param name name to find the member
2884 * @param ptr pointer to receive the contents.
2885 * @return #EINA_TRUE on success, #EINA_FALSE otherwise.
2886 *
2887 * The value is returned in pointer contents, the actual value is
2888 * type-dependent, but usually it will be what is stored inside the
2889 * object. There shouldn't be any memory allocation, thus the contents
2890 * should @b not be freed.
2891 *
2892 * The pointer type is dependent on chosen value type. The list for
2893 * basic types:
2894 *
2895 * @li EINA_VALUE_TYPE_UCHAR: unsigned char*
2896 * @li EINA_VALUE_TYPE_USHORT: unsigned short*
2897 * @li EINA_VALUE_TYPE_UINT: unsigned int*
2898 * @li EINA_VALUE_TYPE_ULONG: unsigned long*
2899 * @li EINA_VALUE_TYPE_UINT64: uint64_t*
2900 * @li EINA_VALUE_TYPE_CHAR: char*
2901 * @li EINA_VALUE_TYPE_SHORT: short*
2902 * @li EINA_VALUE_TYPE_INT: int*
2903 * @li EINA_VALUE_TYPE_LONG: long*
2904 * @li EINA_VALUE_TYPE_INT64: int64_t*
2905 * @li EINA_VALUE_TYPE_FLOAT: float*
2906 * @li EINA_VALUE_TYPE_DOUBLE: double*
2907 * @li EINA_VALUE_TYPE_STRINGSHARE: const char **
2908 * @li EINA_VALUE_TYPE_STRING: const char **
2909 * @li EINA_VALUE_TYPE_HASH: Eina_Value_Hash*
2910 * @li EINA_VALUE_TYPE_TIMEVAL: struct timeval*
2911 * @li EINA_VALUE_TYPE_BLOB: Eina_Value_Blob*
2912 * @li EINA_VALUE_TYPE_STRUCT: Eina_Value_Struct*
2913 *
2914 * @code
2915 * struct myst {
2916 * int i;
2917 * char c;
2918 * };
2919 * const Eina_Value_Struct_Member myst_members[] = {
2920 * {"i", EINA_VALUE_TYPE_INT, 0},
2921 * {"c", EINA_VALUE_TYPE_CHAR, 4},
2922 * {NULL, NULL, 0}
2923 * };
2924 * const Eina_Value_Struct_Desc myst_desc = {
2925 * EINA_VALUE_STRUCT_DESC_VERSION,
2926 * NULL, myst_members, 2, sizeof(struct myst)
2927 * };
2928 * Eina_Value *value = eina_value_struct_new(&my_desc);
2929 * int x = 5678;
2930 * char y = 0xf;
2931 *
2932 * eina_value_struct_pset(value, "i", &);
2933 * eina_value_struct_pget(value, "i", &x);
2934 * eina_value_struct_pset(value, "c", &y);
2935 * eina_value_struct_pget(value, "c", &y);
2936 * eina_value_free(value);
2937 * @endcode
2938 *
2939 * @see eina_value_struct_set()
2940 * @see eina_value_struct_vset()
2941 * @see eina_value_struct_pset()
2942 *
2943 * @since 1.2
2944 */
2945static inline Eina_Bool eina_value_struct_pget(const Eina_Value *value,
2946 const char *name,
2947 void *ptr) EINA_ARG_NONNULL(1, 3);
2948
2949/**
2950 * @}
2951 */
2952
2953
2954/**
2955 * @defgroup Eina_Value_Type_Group Generic Value Type management
2956 *
2957 * @{
2958 */
2959
2960/**
2961 * @struct _Eina_Value_Type
2962 * API to access values.
2963 *
2964 * @since 1.2
2965 */
2966struct _Eina_Value_Type
2967{
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 */
2974 unsigned int value_size; /**< byte size of value */
2975 const char *name; /**< name for debug and introspection */
2976 Eina_Bool (*setup)(const Eina_Value_Type *type, void *mem); /**< mem will be malloc(value_size) and should be configured */
2977 Eina_Bool (*flush)(const Eina_Value_Type *type, void *mem); /**< clear any values from mem */
2978 Eina_Bool (*copy)(const Eina_Value_Type *type, const void *src, void *dst); /**< how to copy values, both memory are @c value_size */
2979 int (*compare)(const Eina_Value_Type *type, const void *a, const void *b); /**< how to compare values, both memory are @c value_size */
2980 Eina_Bool (*convert_to)(const Eina_Value_Type *type, const Eina_Value_Type *convert, const void *type_mem, void *convert_mem); /**< how to convert values, both memory are @c value_size */
2981 Eina_Bool (*convert_from)(const Eina_Value_Type *type, const Eina_Value_Type *convert, void *type_mem, const void *convert_mem); /**< how to convert values, both memory are @c value_size */
2982 Eina_Bool (*vset)(const Eina_Value_Type *type, void *mem, va_list args); /**< how to set memory from variable argument */
2983 Eina_Bool (*pset)(const Eina_Value_Type *type, void *mem, const void *ptr); /**< how to set memory from pointer */
2984 Eina_Bool (*pget)(const Eina_Value_Type *type, const void *mem, void *ptr); /**< how to read memory */
2985};
2986
2987/**
2988 * @brief Query type name.
2989 * @param type type reference.
2990 * @return string or @c NULL if type is invalid.
2991 * @since 1.2
2992 */
2993EAPI const char *eina_value_type_name_get(const Eina_Value_Type *type) EINA_PURE EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT;
2994
2995/**
2996 * @brief Check if type is valid.
2997 * @param type type reference.
2998 * @return #EINA_TRUE if valid, #EINA_FALSE otherwise.
2999 *
3000 * A type is invalid if it's NULL or if version field is not the same
3001 * as runtime #EINA_VALUE_TYPE_VERSION.
3002 *
3003 * @since 1.2
3004 */
3005EAPI Eina_Bool eina_value_type_check(const Eina_Value_Type *type) EINA_PURE EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT;
3006
3007/**
3008 * @brief Initialize memory using type descriptor.
3009 * @param type type reference.
3010 * @param mem memory to operate, must be of size @c type->value_size.
3011 * @return #EINA_TRUE on success, #EINA_FALSE otherwise.
3012 * @since 1.2
3013 */
3014static inline Eina_Bool eina_value_type_setup(const Eina_Value_Type *type, void *mem);
3015
3016/**
3017 * @brief Flush (clear) memory using type descriptor.
3018 * @param type type reference.
3019 * @param mem memory to operate, must be of size @c type->value_size.
3020 * @return #EINA_TRUE on success, #EINA_FALSE otherwise.
3021 * @since 1.2
3022 */
3023static inline Eina_Bool eina_value_type_flush(const Eina_Value_Type *type, void *mem);
3024
3025/**
3026 * @brief Copy memory using type descriptor.
3027 * @param type type reference.
3028 * @param src memory to operate, must be of size @c type->value_size.
3029 * @param dst memory to operate, must be of size @c type->value_size.
3030 * @return #EINA_TRUE on success, #EINA_FALSE otherwise.
3031 * @since 1.2
3032 */
3033static inline Eina_Bool eina_value_type_copy(const Eina_Value_Type *type, const void *src, void *dst);
3034
3035/**
3036 * @brief Compare memory using type descriptor.
3037 * @param type type reference.
3038 * @param a memory to operate, must be of size @c type->value_size.
3039 * @param b memory to operate, must be of size @c type->value_size.
3040 * @return less than zero if a < b, greater than zero if a > b, zero if equal.
3041 * @since 1.2
3042 */
3043static inline int eina_value_type_compare(const Eina_Value_Type *type, const void *a, const void *b);
3044
3045/**
3046 * @brief Convert memory using type descriptor.
3047 * @param type type reference of the source.
3048 * @param convert type reference of the destination.
3049 * @param type_mem memory to operate, must be of size @c type->value_size.
3050 * @param convert_mem memory to operate, must be of size @c convert->value_size.
3051 * @return #EINA_TRUE on success, #EINA_FALSE otherwise.
3052 * @since 1.2
3053 */
3054static inline Eina_Bool eina_value_type_convert_to(const Eina_Value_Type *type, const Eina_Value_Type *convert, const void *type_mem, void *convert_mem);
3055
3056/**
3057 * @brief Convert memory using type descriptor.
3058 * @param type type reference of the destination.
3059 * @param convert type reference of the source.
3060 * @param type_mem memory to operate, must be of size @c type->value_size.
3061 * @param convert_mem memory to operate, must be of size @c convert->value_size.
3062 * @return #EINA_TRUE on success, #EINA_FALSE otherwise.
3063 * @since 1.2
3064 */
3065static inline Eina_Bool eina_value_type_convert_from(const Eina_Value_Type *type, const Eina_Value_Type *convert, void *type_mem, const void *convert_mem);
3066
3067/**
3068 * @brief Set memory using type descriptor and variable argument.
3069 * @param type type reference of the source.
3070 * @param mem memory to operate, must be of size @c type->value_size.
3071 * @param args input value.
3072 * @return #EINA_TRUE on success, #EINA_FALSE otherwise.
3073 * @since 1.2
3074 */
3075static inline Eina_Bool eina_value_type_vset(const Eina_Value_Type *type, void *mem, va_list args);
3076
3077/**
3078 * @brief Set memory using type descriptor and pointer.
3079 * @param type type reference of the source.
3080 * @param mem memory to operate, must be of size @c type->value_size.
3081 * @param ptr pointer to input value.
3082 * @return #EINA_TRUE on success, #EINA_FALSE otherwise.
3083 * @since 1.2
3084 */
3085static inline Eina_Bool eina_value_type_pset(const Eina_Value_Type *type, void *mem, const void *ptr);
3086
3087/**
3088 * @brief Get memory using type descriptor.
3089 * @param type type reference of the source.
3090 * @param mem memory to operate, must be of size @c type->value_size.
3091 * @param ptr pointer to output.
3092 * @return #EINA_TRUE on success, #EINA_FALSE otherwise.
3093 * @since 1.2
3094 */
3095static inline Eina_Bool eina_value_type_pget(const Eina_Value_Type *type, const void *mem, void *ptr);
3096
3097/**
3098 * @}
3099 */
3100
3101#include "eina_inline_value.x"
3102
3103/**
3104 * @}
3105 */
3106
3107/**
3108 * @}
3109 */
3110
3111/**
3112 * @}
3113 */
3114#endif
diff --git a/libraries/eina/src/include/eina_xattr.h b/libraries/eina/src/include/eina_xattr.h
index 8ddb30a..0f89cc3 100644
--- a/libraries/eina/src/include/eina_xattr.h
+++ b/libraries/eina/src/include/eina_xattr.h
@@ -39,6 +39,14 @@ typedef enum {
39 EINA_XATTR_CREATED /**< This will only succeed if the extended attribute wasn't previously set */ 39 EINA_XATTR_CREATED /**< This will only succeed if the extended attribute wasn't previously set */
40} Eina_Xattr_Flags; 40} Eina_Xattr_Flags;
41 41
42typedef struct _Eina_Xattr Eina_Xattr;
43struct _Eina_Xattr
44{
45 const char *name; /**< The eXtended attribute name @since 1.2 */
46 const char *value; /**< The eXtended attribute value @since 1.2 */
47
48 size_t length; /**< The length of the eXtended attribute value @since 1.2 */
49};
42 50
43/** 51/**
44 * @brief Get an iterator that list all extended attribute of a file. 52 * @brief Get an iterator that list all extended attribute of a file.
@@ -54,10 +62,49 @@ typedef enum {
54EAPI Eina_Iterator *eina_xattr_ls(const char *file); 62EAPI Eina_Iterator *eina_xattr_ls(const char *file);
55 63
56/** 64/**
65 * @brief Get an iterator that list all extended attribute value related to a fd.
66 *
67 * @param file The filename to retrieve the extended attribute list from.
68 * @return an iterator.
69 *
70 * The iterator will not allocate any data during the iteration step, so you need to copy them yourself
71 * if you need. The iterator will provide an Eina_Xattr structure.
72 *
73 * @since 1.2
74 */
75EAPI Eina_Iterator *eina_xattr_value_ls(const char *file);
76
77/**
78 * @brief Get an iterator that list all extended attribute related to a fd.
79 *
80 * @param fd The file descriptor to retrieve the extended attribute list from.
81 * @return an iterator.
82 *
83 * The iterator will not allocate any data during the iteration step, so you need to copy them yourself
84 * if you need.
85 *
86 * @since 1.2
87 */
88EAPI Eina_Iterator *eina_xattr_fd_ls(int fd);
89
90/**
91 * @brief Get an iterator that list all extended attribute value related to a fd.
92 *
93 * @param fd The file descriptor to retrieve the extended attribute list from.
94 * @return an iterator.
95 *
96 * The iterator will not allocate any data during the iteration step, so you need to copy them yourself
97 * if you need. The iterator will provide an Eina_Xattr structure.
98 *
99 * @since 1.2
100 */
101EAPI Eina_Iterator *eina_xattr_value_fd_ls(int fd);
102
103/**
57 * @brief Retrieve an extended attribute from a file. 104 * @brief Retrieve an extended attribute from a file.
58 * 105 *
59 * @param file The file to retrieve the extended attribute from. 106 * @param file The file to retrieve the extended attribute from.
60 * @param atttribute The extended attribute name to retrieve. 107 * @param attribute The extended attribute name to retrieve.
61 * @param size The size of the retrieved extended attribute. 108 * @param size The size of the retrieved extended attribute.
62 * @return the allocated data that hold the extended attribute value. 109 * @return the allocated data that hold the extended attribute value.
63 * 110 *
@@ -112,7 +159,7 @@ EAPI char *eina_xattr_string_get(const char *file, const char *attribute);
112 * 159 *
113 * @param file The file to set the double to. 160 * @param file The file to set the double to.
114 * @param attribute The attribute to set. 161 * @param attribute The attribute to set.
115 * @param data The NULL terminated double to set. 162 * @param value The NULL terminated double to set.
116 * @param flags Define the set policy. 163 * @param flags Define the set policy.
117 * @return EINA_TRUE on success, EINA_FALSE otherwise. 164 * @return EINA_TRUE on success, EINA_FALSE otherwise.
118 * 165 *
@@ -139,7 +186,7 @@ EAPI Eina_Bool eina_xattr_double_get(const char *file, const char *attribute, do
139 * 186 *
140 * @param file The file to set the int to. 187 * @param file The file to set the int to.
141 * @param attribute The attribute to set. 188 * @param attribute The attribute to set.
142 * @param data The NULL terminated int to set. 189 * @param value The NULL terminated int to set.
143 * @param flags Define the set policy. 190 * @param flags Define the set policy.
144 * @return EINA_TRUE on success, EINA_FALSE otherwise. 191 * @return EINA_TRUE on success, EINA_FALSE otherwise.
145 * 192 *
diff --git a/libraries/eina/src/lib/Makefile.am b/libraries/eina/src/lib/Makefile.am
index 0537a61..d8c9d20 100644
--- a/libraries/eina/src/lib/Makefile.am
+++ b/libraries/eina/src/lib/Makefile.am
@@ -22,6 +22,7 @@ eina_error.c \
22eina_fp.c \ 22eina_fp.c \
23eina_hamster.c \ 23eina_hamster.c \
24eina_hash.c \ 24eina_hash.c \
25eina_inarray.c \
25eina_inlist.c \ 26eina_inlist.c \
26eina_iterator.c \ 27eina_iterator.c \
27eina_lalloc.c \ 28eina_lalloc.c \
@@ -130,12 +131,17 @@ eina_amalgamation.c: $(base_sources) Makefile
130 @echo "#include <stdio.h>" >> eina_amalgamation.c 131 @echo "#include <stdio.h>" >> eina_amalgamation.c
131 @echo "#include <stdlib.h>" >> eina_amalgamation.c 132 @echo "#include <stdlib.h>" >> eina_amalgamation.c
132 @echo "#include <string.h>" >> eina_amalgamation.c 133 @echo "#include <string.h>" >> eina_amalgamation.c
133 @echo "#include <dlfcn.h>" >> eina_amalgamation.c 134 @echo "#ifdef HAVE_DLOPEN" >> eina_amalgamation.c
135 @echo "# include <dlfcn.h>" >> eina_amalgamation.c
136 @echo "#endif" >> eina_amalgamation.c
134 @echo "#include <sys/types.h>" >> eina_amalgamation.c 137 @echo "#include <sys/types.h>" >> eina_amalgamation.c
135 @echo "#include <dirent.h>" >> eina_amalgamation.c 138 @echo "#ifdef HAVE_DIRENT_H" >> eina_amalgamation.c
139 @echo "# include <dirent.h>" >> eina_amalgamation.c
140 @echo "#endif" >> eina_amalgamation.c
136 @echo "#include <assert.h>" >> eina_amalgamation.c 141 @echo "#include <assert.h>" >> eina_amalgamation.c
137 @echo "#include <errno.h>" >> eina_amalgamation.c 142 @echo "#include <errno.h>" >> eina_amalgamation.c
138 @echo "#include <fnmatch.h>" >> eina_amalgamation.c 143 @echo "#include <fnmatch.h>" >> eina_amalgamation.c
144 @echo "#include <fcntl.h>" >> eina_amalgamation.c
139 145
140 @echo "#ifdef HAVE_EVIL" >> eina_amalgamation.c 146 @echo "#ifdef HAVE_EVIL" >> eina_amalgamation.c
141 @echo "# include <Evil.h>" >> eina_amalgamation.c 147 @echo "# include <Evil.h>" >> eina_amalgamation.c
diff --git a/libraries/eina/src/lib/Makefile.in b/libraries/eina/src/lib/Makefile.in
index 359aba0..878bcbe 100644
--- a/libraries/eina/src/lib/Makefile.in
+++ b/libraries/eina/src/lib/Makefile.in
@@ -96,15 +96,16 @@ libeina_la_DEPENDENCIES =
96am__libeina_la_SOURCES_DIST = eina_accessor.c eina_array.c \ 96am__libeina_la_SOURCES_DIST = eina_accessor.c eina_array.c \
97 eina_benchmark.c eina_binbuf.c eina_binshare.c eina_convert.c \ 97 eina_benchmark.c eina_binbuf.c eina_binshare.c eina_convert.c \
98 eina_counter.c eina_cpu.c eina_error.c eina_fp.c \ 98 eina_counter.c eina_cpu.c eina_error.c eina_fp.c \
99 eina_hamster.c eina_hash.c eina_inlist.c eina_iterator.c \ 99 eina_hamster.c eina_hash.c eina_inarray.c eina_inlist.c \
100 eina_lalloc.c eina_list.c eina_log.c eina_magic.c eina_main.c \ 100 eina_iterator.c eina_lalloc.c eina_list.c eina_log.c \
101 eina_matrixsparse.c eina_mempool.c eina_mmap.c eina_module.c \ 101 eina_magic.c eina_main.c eina_matrixsparse.c eina_mempool.c \
102 eina_prefix.c eina_quadtree.c eina_rbtree.c eina_rectangle.c \ 102 eina_mmap.c eina_module.c eina_prefix.c eina_quadtree.c \
103 eina_safety_checks.c eina_sched.c eina_share_common.c \ 103 eina_rbtree.c eina_rectangle.c eina_safety_checks.c \
104 eina_simple_xml_parser.c eina_str.c eina_strbuf.c \ 104 eina_sched.c eina_share_common.c eina_simple_xml_parser.c \
105 eina_strbuf_common.c eina_stringshare.c eina_tiler.c \ 105 eina_str.c eina_strbuf.c eina_strbuf_common.c \
106 eina_unicode.c eina_ustrbuf.c eina_ustringshare.c eina_value.c \ 106 eina_stringshare.c eina_tiler.c eina_unicode.c eina_ustrbuf.c \
107 eina_xattr.c eina_file_win32.c eina_file.c \ 107 eina_ustringshare.c eina_value.c eina_xattr.c \
108 eina_file_win32.c eina_file.c \
108 $(top_srcdir)/src/modules/mp/buddy/eina_buddy.c \ 109 $(top_srcdir)/src/modules/mp/buddy/eina_buddy.c \
109 $(top_srcdir)/src/modules/mp/chained_pool/eina_chained_mempool.c \ 110 $(top_srcdir)/src/modules/mp/chained_pool/eina_chained_mempool.c \
110 $(top_srcdir)/src/modules/mp/ememoa_fixed/eina_ememoa_fixed.c \ 111 $(top_srcdir)/src/modules/mp/ememoa_fixed/eina_ememoa_fixed.c \
@@ -129,15 +130,16 @@ am__objects_10 = libeina_la-eina_accessor.lo libeina_la-eina_array.lo \
129 libeina_la-eina_counter.lo libeina_la-eina_cpu.lo \ 130 libeina_la-eina_counter.lo libeina_la-eina_cpu.lo \
130 libeina_la-eina_error.lo libeina_la-eina_fp.lo \ 131 libeina_la-eina_error.lo libeina_la-eina_fp.lo \
131 libeina_la-eina_hamster.lo libeina_la-eina_hash.lo \ 132 libeina_la-eina_hamster.lo libeina_la-eina_hash.lo \
132 libeina_la-eina_inlist.lo libeina_la-eina_iterator.lo \ 133 libeina_la-eina_inarray.lo libeina_la-eina_inlist.lo \
133 libeina_la-eina_lalloc.lo libeina_la-eina_list.lo \ 134 libeina_la-eina_iterator.lo libeina_la-eina_lalloc.lo \
134 libeina_la-eina_log.lo libeina_la-eina_magic.lo \ 135 libeina_la-eina_list.lo libeina_la-eina_log.lo \
135 libeina_la-eina_main.lo libeina_la-eina_matrixsparse.lo \ 136 libeina_la-eina_magic.lo libeina_la-eina_main.lo \
136 libeina_la-eina_mempool.lo libeina_la-eina_mmap.lo \ 137 libeina_la-eina_matrixsparse.lo libeina_la-eina_mempool.lo \
137 libeina_la-eina_module.lo libeina_la-eina_prefix.lo \ 138 libeina_la-eina_mmap.lo libeina_la-eina_module.lo \
138 libeina_la-eina_quadtree.lo libeina_la-eina_rbtree.lo \ 139 libeina_la-eina_prefix.lo libeina_la-eina_quadtree.lo \
139 libeina_la-eina_rectangle.lo libeina_la-eina_safety_checks.lo \ 140 libeina_la-eina_rbtree.lo libeina_la-eina_rectangle.lo \
140 libeina_la-eina_sched.lo libeina_la-eina_share_common.lo \ 141 libeina_la-eina_safety_checks.lo libeina_la-eina_sched.lo \
142 libeina_la-eina_share_common.lo \
141 libeina_la-eina_simple_xml_parser.lo libeina_la-eina_str.lo \ 143 libeina_la-eina_simple_xml_parser.lo libeina_la-eina_str.lo \
142 libeina_la-eina_strbuf.lo libeina_la-eina_strbuf_common.lo \ 144 libeina_la-eina_strbuf.lo libeina_la-eina_strbuf_common.lo \
143 libeina_la-eina_stringshare.lo libeina_la-eina_tiler.lo \ 145 libeina_la-eina_stringshare.lo libeina_la-eina_tiler.lo \
@@ -231,7 +233,9 @@ EFL_SIMD_FLAGS = @EFL_SIMD_FLAGS@
231EGREP = @EGREP@ 233EGREP = @EGREP@
232EINA_CFLAGS = @EINA_CFLAGS@ 234EINA_CFLAGS = @EINA_CFLAGS@
233EINA_CONFIGURE_DEFAULT_MEMPOOL = @EINA_CONFIGURE_DEFAULT_MEMPOOL@ 235EINA_CONFIGURE_DEFAULT_MEMPOOL = @EINA_CONFIGURE_DEFAULT_MEMPOOL@
236EINA_CONFIGURE_ENABLE_LOG = @EINA_CONFIGURE_ENABLE_LOG@
234EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@ 237EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@
238EINA_CONFIGURE_HAVE_DIRENT_H = @EINA_CONFIGURE_HAVE_DIRENT_H@
235EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@ 239EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@
236EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@ 240EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@
237EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@ 241EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@
@@ -283,8 +287,6 @@ PACKAGE_URL = @PACKAGE_URL@
283PACKAGE_VERSION = @PACKAGE_VERSION@ 287PACKAGE_VERSION = @PACKAGE_VERSION@
284PATH_SEPARATOR = @PATH_SEPARATOR@ 288PATH_SEPARATOR = @PATH_SEPARATOR@
285PKG_CONFIG = @PKG_CONFIG@ 289PKG_CONFIG = @PKG_CONFIG@
286PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
287PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
288RANLIB = @RANLIB@ 290RANLIB = @RANLIB@
289SED = @SED@ 291SED = @SED@
290SET_MAKE = @SET_MAKE@ 292SET_MAKE = @SET_MAKE@
@@ -371,10 +373,10 @@ AM_CPPFLAGS = \
371base_sources = eina_accessor.c eina_array.c eina_benchmark.c \ 373base_sources = eina_accessor.c eina_array.c eina_benchmark.c \
372 eina_binbuf.c eina_binshare.c eina_convert.c eina_counter.c \ 374 eina_binbuf.c eina_binshare.c eina_convert.c eina_counter.c \
373 eina_cpu.c eina_error.c eina_fp.c eina_hamster.c eina_hash.c \ 375 eina_cpu.c eina_error.c eina_fp.c eina_hamster.c eina_hash.c \
374 eina_inlist.c eina_iterator.c eina_lalloc.c eina_list.c \ 376 eina_inarray.c eina_inlist.c eina_iterator.c eina_lalloc.c \
375 eina_log.c eina_magic.c eina_main.c eina_matrixsparse.c \ 377 eina_list.c eina_log.c eina_magic.c eina_main.c \
376 eina_mempool.c eina_mmap.c eina_module.c eina_prefix.c \ 378 eina_matrixsparse.c eina_mempool.c eina_mmap.c eina_module.c \
377 eina_quadtree.c eina_rbtree.c eina_rectangle.c \ 379 eina_prefix.c eina_quadtree.c eina_rbtree.c eina_rectangle.c \
378 eina_safety_checks.c eina_sched.c eina_share_common.c \ 380 eina_safety_checks.c eina_sched.c eina_share_common.c \
379 eina_simple_xml_parser.c eina_str.c eina_strbuf.c \ 381 eina_simple_xml_parser.c eina_str.c eina_strbuf.c \
380 eina_strbuf_common.c eina_stringshare.c eina_tiler.c \ 382 eina_strbuf_common.c eina_stringshare.c eina_tiler.c \
@@ -489,6 +491,7 @@ distclean-compile:
489@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libeina_la-eina_fp.Plo@am__quote@ 491@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libeina_la-eina_fp.Plo@am__quote@
490@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libeina_la-eina_hamster.Plo@am__quote@ 492@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libeina_la-eina_hamster.Plo@am__quote@
491@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libeina_la-eina_hash.Plo@am__quote@ 493@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libeina_la-eina_hash.Plo@am__quote@
494@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libeina_la-eina_inarray.Plo@am__quote@
492@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libeina_la-eina_inlist.Plo@am__quote@ 495@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libeina_la-eina_inlist.Plo@am__quote@
493@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libeina_la-eina_iterator.Plo@am__quote@ 496@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libeina_la-eina_iterator.Plo@am__quote@
494@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libeina_la-eina_lalloc.Plo@am__quote@ 497@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libeina_la-eina_lalloc.Plo@am__quote@
@@ -641,6 +644,14 @@ libeina_la-eina_hash.lo: eina_hash.c
641@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 644@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
642@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_hash.lo `test -f 'eina_hash.c' || echo '$(srcdir)/'`eina_hash.c 645@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_hash.lo `test -f 'eina_hash.c' || echo '$(srcdir)/'`eina_hash.c
643 646
647libeina_la-eina_inarray.lo: eina_inarray.c
648@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_inarray.lo -MD -MP -MF $(DEPDIR)/libeina_la-eina_inarray.Tpo -c -o libeina_la-eina_inarray.lo `test -f 'eina_inarray.c' || echo '$(srcdir)/'`eina_inarray.c
649@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libeina_la-eina_inarray.Tpo $(DEPDIR)/libeina_la-eina_inarray.Plo
650@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
651@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='eina_inarray.c' object='libeina_la-eina_inarray.lo' libtool=yes @AMDEPBACKSLASH@
652@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
653@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_inarray.lo `test -f 'eina_inarray.c' || echo '$(srcdir)/'`eina_inarray.c
654
644libeina_la-eina_inlist.lo: eina_inlist.c 655libeina_la-eina_inlist.lo: eina_inlist.c
645@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_inlist.lo -MD -MP -MF $(DEPDIR)/libeina_la-eina_inlist.Tpo -c -o libeina_la-eina_inlist.lo `test -f 'eina_inlist.c' || echo '$(srcdir)/'`eina_inlist.c 656@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_inlist.lo -MD -MP -MF $(DEPDIR)/libeina_la-eina_inlist.Tpo -c -o libeina_la-eina_inlist.lo `test -f 'eina_inlist.c' || echo '$(srcdir)/'`eina_inlist.c
646@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libeina_la-eina_inlist.Tpo $(DEPDIR)/libeina_la-eina_inlist.Plo 657@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libeina_la-eina_inlist.Tpo $(DEPDIR)/libeina_la-eina_inlist.Plo
@@ -1189,12 +1200,17 @@ uninstall-am: uninstall-libLTLIBRARIES
1189@EINA_AMALGAMATION_TRUE@ @echo "#include <stdio.h>" >> eina_amalgamation.c 1200@EINA_AMALGAMATION_TRUE@ @echo "#include <stdio.h>" >> eina_amalgamation.c
1190@EINA_AMALGAMATION_TRUE@ @echo "#include <stdlib.h>" >> eina_amalgamation.c 1201@EINA_AMALGAMATION_TRUE@ @echo "#include <stdlib.h>" >> eina_amalgamation.c
1191@EINA_AMALGAMATION_TRUE@ @echo "#include <string.h>" >> eina_amalgamation.c 1202@EINA_AMALGAMATION_TRUE@ @echo "#include <string.h>" >> eina_amalgamation.c
1192@EINA_AMALGAMATION_TRUE@ @echo "#include <dlfcn.h>" >> eina_amalgamation.c 1203@EINA_AMALGAMATION_TRUE@ @echo "#ifdef HAVE_DLOPEN" >> eina_amalgamation.c
1204@EINA_AMALGAMATION_TRUE@ @echo "# include <dlfcn.h>" >> eina_amalgamation.c
1205@EINA_AMALGAMATION_TRUE@ @echo "#endif" >> eina_amalgamation.c
1193@EINA_AMALGAMATION_TRUE@ @echo "#include <sys/types.h>" >> eina_amalgamation.c 1206@EINA_AMALGAMATION_TRUE@ @echo "#include <sys/types.h>" >> eina_amalgamation.c
1194@EINA_AMALGAMATION_TRUE@ @echo "#include <dirent.h>" >> eina_amalgamation.c 1207@EINA_AMALGAMATION_TRUE@ @echo "#ifdef HAVE_DIRENT_H" >> eina_amalgamation.c
1208@EINA_AMALGAMATION_TRUE@ @echo "# include <dirent.h>" >> eina_amalgamation.c
1209@EINA_AMALGAMATION_TRUE@ @echo "#endif" >> eina_amalgamation.c
1195@EINA_AMALGAMATION_TRUE@ @echo "#include <assert.h>" >> eina_amalgamation.c 1210@EINA_AMALGAMATION_TRUE@ @echo "#include <assert.h>" >> eina_amalgamation.c
1196@EINA_AMALGAMATION_TRUE@ @echo "#include <errno.h>" >> eina_amalgamation.c 1211@EINA_AMALGAMATION_TRUE@ @echo "#include <errno.h>" >> eina_amalgamation.c
1197@EINA_AMALGAMATION_TRUE@ @echo "#include <fnmatch.h>" >> eina_amalgamation.c 1212@EINA_AMALGAMATION_TRUE@ @echo "#include <fnmatch.h>" >> eina_amalgamation.c
1213@EINA_AMALGAMATION_TRUE@ @echo "#include <fcntl.h>" >> eina_amalgamation.c
1198 1214
1199@EINA_AMALGAMATION_TRUE@ @echo "#ifdef HAVE_EVIL" >> eina_amalgamation.c 1215@EINA_AMALGAMATION_TRUE@ @echo "#ifdef HAVE_EVIL" >> eina_amalgamation.c
1200@EINA_AMALGAMATION_TRUE@ @echo "# include <Evil.h>" >> eina_amalgamation.c 1216@EINA_AMALGAMATION_TRUE@ @echo "# include <Evil.h>" >> eina_amalgamation.c
diff --git a/libraries/eina/src/lib/eina_array.c b/libraries/eina/src/lib/eina_array.c
index 5a850ac..4bcab61 100644
--- a/libraries/eina/src/lib/eina_array.c
+++ b/libraries/eina/src/lib/eina_array.c
@@ -119,7 +119,7 @@ eina_array_iterator_next(Eina_Iterator_Array *it, void **data)
119{ 119{
120 EINA_MAGIC_CHECK_ARRAY_ITERATOR(it, EINA_FALSE); 120 EINA_MAGIC_CHECK_ARRAY_ITERATOR(it, EINA_FALSE);
121 121
122 if (!(it->index < eina_array_count_get(it->array))) 122 if (!(it->index < eina_array_count(it->array)))
123 return EINA_FALSE; 123 return EINA_FALSE;
124 124
125 if (data) 125 if (data)
@@ -150,7 +150,7 @@ eina_array_accessor_get_at(Eina_Accessor_Array *it,
150{ 150{
151 EINA_MAGIC_CHECK_ARRAY_ACCESSOR(it, EINA_FALSE); 151 EINA_MAGIC_CHECK_ARRAY_ACCESSOR(it, EINA_FALSE);
152 152
153 if (!(idx < eina_array_count_get(it->array))) 153 if (!(idx < eina_array_count(it->array)))
154 return EINA_FALSE; 154 return EINA_FALSE;
155 155
156 if (data) 156 if (data)
diff --git a/libraries/eina/src/lib/eina_binbuf_template_c.x b/libraries/eina/src/lib/eina_binbuf_template_c.x
index 613a715..7e0c539 100644
--- a/libraries/eina/src/lib/eina_binbuf_template_c.x
+++ b/libraries/eina/src/lib/eina_binbuf_template_c.x
@@ -65,6 +65,15 @@ _FUNC_EXPAND(new)(void)
65 return buf; 65 return buf;
66} 66}
67 67
68EAPI _STRBUF_STRUCT_NAME *
69_FUNC_EXPAND(manage_new_length)(_STRBUF_DATA_TYPE *str, size_t length)
70{
71 _STRBUF_STRUCT_NAME *buf =
72 eina_strbuf_common_manage_new(_STRBUF_CSIZE, (void *) str, length);
73 EINA_MAGIC_SET(buf, _STRBUF_MAGIC);
74 return buf;
75}
76
68EAPI void 77EAPI void
69_FUNC_EXPAND(free)(_STRBUF_STRUCT_NAME *buf) 78_FUNC_EXPAND(free)(_STRBUF_STRUCT_NAME *buf)
70{ 79{
diff --git a/libraries/eina/src/lib/eina_cpu.c b/libraries/eina/src/lib/eina_cpu.c
index 8af550d..5b190e4 100644
--- a/libraries/eina/src/lib/eina_cpu.c
+++ b/libraries/eina/src/lib/eina_cpu.c
@@ -24,7 +24,7 @@
24# ifdef _WIN32 24# ifdef _WIN32
25# define WIN32_LEAN_AND_MEAN 25# define WIN32_LEAN_AND_MEAN
26# include <windows.h> 26# include <windows.h>
27# elif defined (__SUNPRO_C) || defined(__GNU__) 27# elif defined (__sun) || defined(__GNU__)
28# include <unistd.h> 28# include <unistd.h>
29# elif defined (__FreeBSD__) || defined (__OpenBSD__) || \ 29# elif defined (__FreeBSD__) || defined (__OpenBSD__) || \
30 defined (__NetBSD__) || defined (__DragonFly__) || defined (__MacOSX__) || \ 30 defined (__NetBSD__) || defined (__DragonFly__) || defined (__MacOSX__) || \
@@ -140,7 +140,7 @@ EAPI int eina_cpu_count(void)
140 GetSystemInfo(&sysinfo); 140 GetSystemInfo(&sysinfo);
141 return sysinfo.dwNumberOfProcessors; 141 return sysinfo.dwNumberOfProcessors;
142 142
143# elif defined (__SUNPRO_C) || defined(__GNU__) 143# elif defined (__sun) || defined(__GNU__)
144 /* 144 /*
145 * _SC_NPROCESSORS_ONLN: number of processors that are online, that 145 * _SC_NPROCESSORS_ONLN: number of processors that are online, that
146 is available when sysconf is called. The number 146 is available when sysconf is called. The number
diff --git a/libraries/eina/src/lib/eina_file.c b/libraries/eina/src/lib/eina_file.c
index 84b9e78..0b836b3 100644
--- a/libraries/eina/src/lib/eina_file.c
+++ b/libraries/eina/src/lib/eina_file.c
@@ -38,13 +38,18 @@ extern "C"
38void *alloca (size_t); 38void *alloca (size_t);
39#endif 39#endif
40 40
41#include <stdlib.h>
41#include <string.h> 42#include <string.h>
42#include <stddef.h> 43#include <stddef.h>
43#include <dirent.h> 44#ifdef HAVE_DIRENT_H
45# include <dirent.h>
46#endif
44#include <sys/types.h> 47#include <sys/types.h>
45#include <sys/stat.h> 48#include <sys/stat.h>
46#include <unistd.h> 49#include <unistd.h>
47#include <sys/mman.h> 50#ifdef HAVE_SYS_MMAN_H
51# include <sys/mman.h>
52#endif
48#include <fcntl.h> 53#include <fcntl.h>
49 54
50#define PATH_DELIM '/' 55#define PATH_DELIM '/'
@@ -60,6 +65,8 @@ void *alloca (size_t);
60#include "eina_list.h" 65#include "eina_list.h"
61#include "eina_lock.h" 66#include "eina_lock.h"
62#include "eina_mmap.h" 67#include "eina_mmap.h"
68#include "eina_log.h"
69#include "eina_xattr.h"
63 70
64#ifdef HAVE_ESCAPE_H 71#ifdef HAVE_ESCAPE_H
65# include <Escape.h> 72# include <Escape.h>
@@ -95,9 +102,8 @@ void *alloca (size_t);
95#define EINA_SMALL_PAGE 4096 102#define EINA_SMALL_PAGE 4096
96# define EINA_HUGE_PAGE 16 * 1024 * 1024 103# define EINA_HUGE_PAGE 16 * 1024 * 1024
97 104
105#ifdef HAVE_DIRENT_H
98typedef struct _Eina_File_Iterator Eina_File_Iterator; 106typedef struct _Eina_File_Iterator Eina_File_Iterator;
99typedef struct _Eina_File_Map Eina_File_Map;
100
101struct _Eina_File_Iterator 107struct _Eina_File_Iterator
102{ 108{
103 Eina_Iterator iterator; 109 Eina_Iterator iterator;
@@ -107,6 +113,7 @@ struct _Eina_File_Iterator
107 113
108 char dir[1]; 114 char dir[1];
109}; 115};
116#endif
110 117
111struct _Eina_File 118struct _Eina_File
112{ 119{
@@ -132,8 +139,10 @@ struct _Eina_File
132 139
133 Eina_Bool shared : 1; 140 Eina_Bool shared : 1;
134 Eina_Bool delete_me : 1; 141 Eina_Bool delete_me : 1;
142 Eina_Bool global_faulty : 1;
135}; 143};
136 144
145typedef struct _Eina_File_Map Eina_File_Map;
137struct _Eina_File_Map 146struct _Eina_File_Map
138{ 147{
139 void *map; 148 void *map;
@@ -144,6 +153,7 @@ struct _Eina_File_Map
144 int refcount; 153 int refcount;
145 154
146 Eina_Bool hugetlb : 1; 155 Eina_Bool hugetlb : 1;
156 Eina_Bool faulty : 1;
147}; 157};
148 158
149static Eina_Hash *_eina_file_cache = NULL; 159static Eina_Hash *_eina_file_cache = NULL;
@@ -156,6 +166,7 @@ static int _eina_file_log_dom = -1;
156 * The code and description of the issue can be found at : 166 * The code and description of the issue can be found at :
157 * http://womble.decadent.org.uk/readdir_r-advisory.html 167 * http://womble.decadent.org.uk/readdir_r-advisory.html
158 */ 168 */
169#ifdef HAVE_DIRENT_H
159static long 170static long
160_eina_name_max(DIR *dirp) 171_eina_name_max(DIR *dirp)
161{ 172{
@@ -390,6 +401,7 @@ _eina_file_stat_ls_iterator_next(Eina_File_Direct_Iterator *it, void **data)
390 401
391 return EINA_TRUE; 402 return EINA_TRUE;
392} 403}
404#endif
393 405
394static void 406static void
395_eina_file_real_close(Eina_File *file) 407_eina_file_real_close(Eina_File *file)
@@ -511,8 +523,8 @@ slprintf(char *str, size_t size, const char *format, ...)
511 va_end(ap); 523 va_end(ap);
512} 524}
513 525
514static char* 526static char *
515_eina_file_escape(const char* path, int* length) 527_eina_file_escape(const char *path, int *length)
516{ 528{
517 char *result = strdup(path ? path : ""); 529 char *result = strdup(path ? path : "");
518 char *p = result; 530 char *p = result;
@@ -738,6 +750,7 @@ eina_file_split(char *path)
738EAPI Eina_Iterator * 750EAPI Eina_Iterator *
739eina_file_ls(const char *dir) 751eina_file_ls(const char *dir)
740{ 752{
753#ifdef HAVE_DIRENT_H
741 Eina_File_Iterator *it; 754 Eina_File_Iterator *it;
742 size_t length; 755 size_t length;
743 756
@@ -773,11 +786,16 @@ eina_file_ls(const char *dir)
773 it->iterator.free = FUNC_ITERATOR_FREE(_eina_file_ls_iterator_free); 786 it->iterator.free = FUNC_ITERATOR_FREE(_eina_file_ls_iterator_free);
774 787
775 return &it->iterator; 788 return &it->iterator;
789#else
790 (void) dir;
791 return NULL;
792#endif
776} 793}
777 794
778EAPI Eina_Iterator * 795EAPI Eina_Iterator *
779eina_file_direct_ls(const char *dir) 796eina_file_direct_ls(const char *dir)
780{ 797{
798#ifdef HAVE_DIRENT_H
781 Eina_File_Direct_Iterator *it; 799 Eina_File_Direct_Iterator *it;
782 size_t length; 800 size_t length;
783 801
@@ -825,11 +843,16 @@ eina_file_direct_ls(const char *dir)
825 it->iterator.free = FUNC_ITERATOR_FREE(_eina_file_direct_ls_iterator_free); 843 it->iterator.free = FUNC_ITERATOR_FREE(_eina_file_direct_ls_iterator_free);
826 844
827 return &it->iterator; 845 return &it->iterator;
846#else
847 (void) dir;
848 return NULL;
849#endif
828} 850}
829 851
830EAPI Eina_Iterator * 852EAPI Eina_Iterator *
831eina_file_stat_ls(const char *dir) 853eina_file_stat_ls(const char *dir)
832{ 854{
855#ifdef HAVE_DIRENT_H
833 Eina_File_Direct_Iterator *it; 856 Eina_File_Direct_Iterator *it;
834 size_t length; 857 size_t length;
835 858
@@ -877,6 +900,10 @@ eina_file_stat_ls(const char *dir)
877 it->iterator.free = FUNC_ITERATOR_FREE(_eina_file_direct_ls_iterator_free); 900 it->iterator.free = FUNC_ITERATOR_FREE(_eina_file_direct_ls_iterator_free);
878 901
879 return &it->iterator; 902 return &it->iterator;
903#else
904 (void) dir;
905 return NULL;
906#endif
880} 907}
881 908
882EAPI Eina_File * 909EAPI Eina_File *
@@ -887,7 +914,9 @@ eina_file_open(const char *path, Eina_Bool shared)
887 char *filename; 914 char *filename;
888 struct stat file_stat; 915 struct stat file_stat;
889 int fd = -1; 916 int fd = -1;
917#ifdef HAVE_EXECVP
890 int flags; 918 int flags;
919#endif
891 920
892 EINA_SAFETY_ON_NULL_RETURN_VAL(path, NULL); 921 EINA_SAFETY_ON_NULL_RETURN_VAL(path, NULL);
893 922
@@ -1184,4 +1213,91 @@ eina_file_map_free(Eina_File *file, void *map)
1184 eina_lock_release(&file->lock); 1213 eina_lock_release(&file->lock);
1185} 1214}
1186 1215
1216EAPI Eina_Bool
1217eina_file_map_faulted(Eina_File *file, void *map)
1218{
1219 Eina_File_Map *em;
1220
1221 EINA_SAFETY_ON_NULL_RETURN_VAL(file, EINA_FALSE);
1222
1223 eina_lock_take(&file->lock);
1224
1225 if (file->global_map == map) return file->global_faulty;
1226
1227 em = eina_hash_find(file->rmap, &map);
1228 if (!em) return EINA_FALSE;
1229
1230 return em->faulty;
1231}
1232
1233EAPI Eina_Iterator *
1234eina_file_xattr_get(Eina_File *file)
1235{
1236 EINA_SAFETY_ON_NULL_RETURN_VAL(file, NULL);
1237
1238 return eina_xattr_fd_ls(file->fd);
1239}
1240
1241EAPI Eina_Iterator *
1242eina_file_xattr_value_get(Eina_File *file)
1243{
1244 EINA_SAFETY_ON_NULL_RETURN_VAL(file, NULL);
1245
1246 return eina_xattr_value_fd_ls(file->fd);
1247}
1248
1249void
1250eina_file_mmap_faulty(void *addr, long page_size)
1251{
1252 Eina_File_Map *m;
1253 Eina_File *f;
1254 Eina_Iterator *itf;
1255 Eina_Iterator *itm;
1256
1257 /* NOTE: I actually don't know if other thread are running, I will try to take the lock.
1258 It may be possible that if other thread are not running and they were in the middle of
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
1262 itf = eina_hash_iterator_data_new(_eina_file_cache);
1263 EINA_ITERATOR_FOREACH(itf, f)
1264 {
1265 Eina_Bool faulty = EINA_FALSE;
1266
1267 eina_lock_take(&f->lock);
1268
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
1297 if (faulty) break;
1298 }
1299 eina_iterator_free(itf);
1300
1301 eina_lock_release(&_eina_file_lock_cache);
1302}
1187 1303
diff --git a/libraries/eina/src/lib/eina_hash.c b/libraries/eina/src/lib/eina_hash.c
index 5df20aa..5196894 100644
--- a/libraries/eina/src/lib/eina_hash.c
+++ b/libraries/eina/src/lib/eina_hash.c
@@ -854,8 +854,9 @@ eina_hash_free(Eina_Hash *hash)
854{ 854{
855 int i; 855 int i;
856 856
857 if (!hash) return ;
858
857 EINA_MAGIC_CHECK_HASH(hash); 859 EINA_MAGIC_CHECK_HASH(hash);
858 EINA_SAFETY_ON_NULL_RETURN(hash);
859 860
860 if (hash->buckets) 861 if (hash->buckets)
861 { 862 {
@@ -871,8 +872,9 @@ eina_hash_free_buckets(Eina_Hash *hash)
871{ 872{
872 int i; 873 int i;
873 874
875 if (!hash) return ;
876
874 EINA_MAGIC_CHECK_HASH(hash); 877 EINA_MAGIC_CHECK_HASH(hash);
875 EINA_SAFETY_ON_NULL_RETURN(hash);
876 878
877 if (hash->buckets) 879 if (hash->buckets)
878 { 880 {
diff --git a/libraries/eina/src/lib/eina_inarray.c b/libraries/eina/src/lib/eina_inarray.c
new file mode 100644
index 0000000..dc95bc6
--- /dev/null
+++ b/libraries/eina/src/lib/eina_inarray.c
@@ -0,0 +1,777 @@
1/* EINA - EFL data type library
2 * Copyright (C) 2012 - ProFUSION embedded systems
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library;
16 * if not, see <http://www.gnu.org/licenses/>.
17 */
18
19#ifdef HAVE_CONFIG_H
20# include "config.h"
21#endif
22
23#include <stdlib.h>
24#include <string.h>
25
26#include "eina_config.h"
27#include "eina_private.h"
28#include "eina_error.h"
29#include "eina_log.h"
30
31/* undefs EINA_ARG_NONULL() so NULL checks are not compiled out! */
32#include "eina_safety_checks.h"
33#include "eina_inarray.h"
34
35/*============================================================================*
36* Local *
37*============================================================================*/
38
39/**
40 * @cond LOCAL
41 */
42
43static const char EINA_MAGIC_INARRAY_STR[] = "Eina Inline Array";
44static const char EINA_MAGIC_INARRAY_ITERATOR_STR[] = "Eina Inline Array Iterator";
45static const char EINA_MAGIC_INARRAY_ACCESSOR_STR[] = "Eina Inline Array Accessor";
46
47typedef struct _Eina_Iterator_Inarray Eina_Iterator_Inarray;
48typedef struct _Eina_Accessor_Inarray Eina_Accessor_Inarray;
49
50struct _Eina_Iterator_Inarray
51{
52 Eina_Iterator iterator;
53 const Eina_Inarray *array;
54 unsigned int pos;
55 EINA_MAGIC
56};
57
58struct _Eina_Accessor_Inarray
59{
60 Eina_Accessor accessor;
61 const Eina_Inarray *array;
62 EINA_MAGIC
63};
64
65static int _eina_inarray_log_dom = -1;
66
67#ifdef ERR
68#undef ERR
69#endif
70#define ERR(...) EINA_LOG_DOM_ERR(_eina_inarray_log_dom, __VA_ARGS__)
71
72#ifdef DBG
73#undef DBG
74#endif
75#define DBG(...) EINA_LOG_DOM_DBG(_eina_inarray_log_dom, __VA_ARGS__)
76
77#define EINA_MAGIC_CHECK_INARRAY(d, ...) \
78 do \
79 { \
80 if (!EINA_MAGIC_CHECK(d, EINA_MAGIC_INARRAY)) \
81 { \
82 EINA_MAGIC_FAIL(d, EINA_MAGIC_INARRAY); \
83 return __VA_ARGS__; \
84 } \
85 eina_error_set(0); \
86 } \
87 while(0)
88
89#define EINA_MAGIC_CHECK_INARRAY_ITERATOR(d, ...) \
90 do \
91 { \
92 if (!EINA_MAGIC_CHECK(d, EINA_MAGIC_INARRAY_ITERATOR)) \
93 { \
94 EINA_MAGIC_FAIL(d, EINA_MAGIC_INARRAY_ITERATOR); \
95 return __VA_ARGS__; \
96 } \
97 eina_error_set(0); \
98 } \
99 while(0)
100
101#define EINA_MAGIC_CHECK_INARRAY_ACCESSOR(d, ...) \
102 do \
103 { \
104 if (!EINA_MAGIC_CHECK(d, EINA_MAGIC_INARRAY_ACCESSOR)) \
105 { \
106 EINA_MAGIC_FAIL(d, EINA_MAGIC_INARRAY_ACCESSOR); \
107 return __VA_ARGS__; \
108 } \
109 eina_error_set(0); \
110 } \
111 while(0)
112
113static void
114_eina_inarray_setup(Eina_Inarray *array, unsigned int member_size, unsigned int step)
115{
116 EINA_MAGIC_SET(array, EINA_MAGIC_INARRAY);
117 array->member_size = member_size;
118 array->len = 0;
119 array->max = 0;
120 array->step = (step > 0) ? step : 32;
121 array->members = NULL;
122}
123
124static Eina_Bool
125_eina_inarray_resize(Eina_Inarray *array, unsigned int new_size)
126{
127 unsigned int new_max;
128 void *tmp;
129
130 if (new_size < array->max)
131 return EINA_TRUE;
132
133 if (new_size % array->step == 0)
134 new_max = new_size;
135 else
136 new_max = ((new_size / array->step) + 1) * array->step;
137
138 tmp = realloc(array->members, new_max * array->member_size);
139 if ((!tmp) && (new_max > 0))
140 {
141 eina_error_set(EINA_ERROR_OUT_OF_MEMORY);
142 return EINA_FALSE;
143 }
144
145 array->members = tmp;
146 array->max = new_max;
147 return EINA_TRUE;
148}
149
150static inline void *
151_eina_inarray_get(const Eina_Inarray *array, unsigned int position)
152{
153 unsigned int offset = position * array->member_size;
154 return (unsigned char *)array->members + offset;
155}
156
157static int
158_eina_inarray_search(const Eina_Inarray *array, const void *data, Eina_Compare_Cb compare)
159{
160 const unsigned char *start, *found;
161 start = array->members;
162 found = bsearch(data, start, array->len, array->member_size, compare);
163 if (!found)
164 return -1;
165 return (found - start) / array->member_size;
166}
167
168static unsigned int
169_eina_inarray_search_sorted_near(const Eina_Inarray *array, const void *data, Eina_Compare_Cb compare, int *cmp)
170{
171 unsigned int start, last, middle;
172
173 if (array->len == 0)
174 {
175 *cmp = -1;
176 return 0;
177 }
178 else if (array->len == 1)
179 {
180 *cmp = compare(data, array->members);
181 return 0;
182 }
183
184 start = 0;
185 last = array->len - 1; /* inclusive */
186 do
187 {
188 void *p;
189 middle = start + (last - start) / 2; /* avoid overflow */
190 p = _eina_inarray_get(array, middle);
191 *cmp = compare(data, p);
192 if (*cmp == 0)
193 return middle;
194 else if (*cmp > 0)
195 start = middle + 1;
196 else if (middle > 0)
197 last = middle - 1;
198 else
199 break;
200 }
201 while (start <= last);
202 return middle;
203}
204
205
206static Eina_Bool
207_eina_inarray_iterator_next(Eina_Iterator_Inarray *it, void **data)
208{
209 EINA_MAGIC_CHECK_INARRAY_ITERATOR(it, EINA_FALSE);
210
211 if (it->pos >= it->array->len)
212 return EINA_FALSE;
213
214 *data = _eina_inarray_get(it->array, it->pos);
215 it->pos++;
216
217 return EINA_TRUE;
218}
219
220static Eina_Bool
221_eina_inarray_iterator_prev(Eina_Iterator_Inarray *it, void **data)
222{
223 EINA_MAGIC_CHECK_INARRAY_ITERATOR(it, EINA_FALSE);
224
225 if (it->pos == 0)
226 return EINA_FALSE;
227
228 it->pos--;
229 *data = _eina_inarray_get(it->array, it->pos);
230
231 return EINA_TRUE;
232}
233
234static Eina_Inarray *
235_eina_inarray_iterator_get_container(Eina_Iterator_Inarray *it)
236{
237 EINA_MAGIC_CHECK_INARRAY_ITERATOR(it, NULL);
238 return (Eina_Inarray *)it->array;
239}
240
241static void
242_eina_inarray_iterator_free(Eina_Iterator_Inarray *it)
243{
244 EINA_MAGIC_CHECK_INARRAY_ITERATOR(it);
245 MAGIC_FREE(it);
246}
247
248static Eina_Bool
249_eina_inarray_accessor_get_at(Eina_Accessor_Inarray *it, unsigned int pos, void **data)
250{
251 EINA_MAGIC_CHECK_INARRAY_ACCESSOR(it, EINA_FALSE);
252
253 if (pos >= it->array->len)
254 return EINA_FALSE;
255
256 *data = _eina_inarray_get(it->array, pos);
257 return EINA_TRUE;
258}
259
260static Eina_Inarray *
261_eina_inarray_accessor_get_container(Eina_Accessor_Inarray *it)
262{
263 EINA_MAGIC_CHECK_INARRAY_ACCESSOR(it, NULL);
264 return (Eina_Inarray *)it->array;
265}
266
267static void
268_eina_inarray_accessor_free(Eina_Accessor_Inarray *it)
269{
270 EINA_MAGIC_CHECK_INARRAY_ACCESSOR(it);
271 MAGIC_FREE(it);
272}
273
274/**
275 * @endcond
276 */
277
278
279/*============================================================================*
280* Global *
281*============================================================================*/
282
283/**
284 * @internal
285 * @brief Initialize the inline array module.
286 *
287 * @return #EINA_TRUE on success, #EINA_FALSE on failure.
288 *
289 * This function sets up the inline array module of Eina. It is called
290 * by eina_init().
291 *
292 * @see eina_init()
293 */
294Eina_Bool
295eina_inarray_init(void)
296{
297 _eina_inarray_log_dom = eina_log_domain_register("eina_inarray",
298 EINA_LOG_COLOR_DEFAULT);
299 if (_eina_inarray_log_dom < 0)
300 {
301 EINA_LOG_ERR("Could not register log domain: eina_inarray");
302 return EINA_FALSE;
303 }
304
305#define EMS(n) eina_magic_string_static_set(n, n ## _STR)
306 EMS(EINA_MAGIC_INARRAY);
307 EMS(EINA_MAGIC_INARRAY_ITERATOR);
308 EMS(EINA_MAGIC_INARRAY_ACCESSOR);
309#undef EMS
310
311 return EINA_TRUE;
312}
313
314/**
315 * @internal
316 * @brief Shut down the inline array module.
317 *
318 * @return #EINA_TRUE on success, #EINA_FALSE on failure.
319 *
320 * This function shuts down the inline array module set up by
321 * eina_inarray_init(). It is called by eina_shutdown().
322 *
323 * @see eina_shutdown()
324 */
325Eina_Bool
326eina_inarray_shutdown(void)
327{
328 eina_log_domain_unregister(_eina_inarray_log_dom);
329 _eina_inarray_log_dom = -1;
330 return EINA_TRUE;
331}
332
333/*============================================================================*
334* API *
335*============================================================================*/
336EAPI Eina_Inarray *
337eina_inarray_new(unsigned int member_size, unsigned int step)
338{
339 Eina_Inarray *ret;
340
341 EINA_SAFETY_ON_TRUE_RETURN_VAL(member_size == 0, NULL);
342
343 ret = malloc(sizeof(*ret));
344 if (!ret)
345 {
346 eina_error_set(EINA_ERROR_OUT_OF_MEMORY);
347 return NULL;
348 }
349 eina_error_set(0);
350 _eina_inarray_setup(ret, member_size, step);
351 return ret;
352}
353
354EAPI void
355eina_inarray_free(Eina_Inarray *array)
356{
357 EINA_MAGIC_CHECK_INARRAY(array);
358 free(array->members);
359 free(array);
360}
361
362EAPI void
363eina_inarray_setup(Eina_Inarray *array, unsigned int member_size, unsigned int step)
364{
365 EINA_SAFETY_ON_NULL_RETURN(array);
366 EINA_SAFETY_ON_TRUE_RETURN(member_size == 0);
367 _eina_inarray_setup(array, member_size, step);
368}
369
370EAPI void
371eina_inarray_flush(Eina_Inarray *array)
372{
373 EINA_MAGIC_CHECK_INARRAY(array);
374 free(array->members);
375 array->len = 0;
376 array->max = 0;
377 array->members = NULL;
378}
379
380EAPI int
381eina_inarray_append(Eina_Inarray *array, const void *data)
382{
383 void *p;
384
385 EINA_MAGIC_CHECK_INARRAY(array, -1);
386 EINA_SAFETY_ON_NULL_RETURN_VAL(data, -1);
387
388 if (!_eina_inarray_resize(array, array->len + 1))
389 return -1;
390
391 p = _eina_inarray_get(array, array->len);
392 memcpy(p, data, array->member_size);
393
394 array->len++;
395 return array->len - 1;
396}
397
398EAPI int
399eina_inarray_insert(Eina_Inarray *array, const void *data, Eina_Compare_Cb compare)
400{
401 const unsigned char *itr, *itr_end;
402 unsigned int sz;
403
404 EINA_MAGIC_CHECK_INARRAY(array, -1);
405 EINA_SAFETY_ON_NULL_RETURN_VAL(data, -1);
406 EINA_SAFETY_ON_NULL_RETURN_VAL(compare, -1);
407
408 sz = array->member_size;
409 itr = array->members;
410 itr_end = itr + array->len * sz;
411 for (; itr < itr_end; itr += sz)
412 {
413 unsigned int offset, position;
414 int cmp = compare(itr, data);
415 if (cmp <= 0)
416 continue;
417
418 offset = itr - (unsigned char *)array->members;
419 position = offset / sz;
420 if (!eina_inarray_insert_at(array, position, data))
421 return -1;
422 return position;
423 }
424 return eina_inarray_append(array, data);
425}
426
427EAPI int
428eina_inarray_insert_sorted(Eina_Inarray *array, const void *data, Eina_Compare_Cb compare)
429{
430 unsigned int pos;
431 int cmp;
432
433 EINA_MAGIC_CHECK_INARRAY(array, -1);
434 EINA_SAFETY_ON_NULL_RETURN_VAL(data, -1);
435 EINA_SAFETY_ON_NULL_RETURN_VAL(compare, -1);
436
437 pos = _eina_inarray_search_sorted_near(array, data, compare, &cmp);
438 if (cmp > 0)
439 pos++;
440
441 if (!eina_inarray_insert_at(array, pos, data))
442 return -1;
443 return pos;
444}
445
446EAPI int
447eina_inarray_remove(Eina_Inarray *array, const void *data)
448{
449 const unsigned char *itr, *itr_end;
450 unsigned int position, sz;
451
452 EINA_MAGIC_CHECK_INARRAY(array, -1);
453 EINA_SAFETY_ON_NULL_RETURN_VAL(data, -1);
454
455 sz = array->member_size;
456 if ((data >= array->members) &&
457 (data < _eina_inarray_get(array, array->len)))
458 {
459 unsigned int offset = ((unsigned char *)data -
460 (unsigned char *)array->members);
461 position = offset / sz;
462 goto found;
463 }
464
465 itr = array->members;
466 itr_end = itr + array->len * sz;
467 for (; itr < itr_end; itr += sz)
468 {
469 if (memcmp(data, itr, sz) == 0)
470 {
471 unsigned int offset = itr - (unsigned char *)array->members;
472 position = offset / sz;
473 goto found;
474 }
475 }
476 return -1;
477
478found:
479 if (!eina_inarray_remove_at(array, position))
480 return -1;
481 return position;
482}
483
484EAPI int
485eina_inarray_pop(Eina_Inarray *array)
486{
487 EINA_MAGIC_CHECK_INARRAY(array, -1);
488 EINA_SAFETY_ON_TRUE_RETURN_VAL(array->len == 0, -1);
489 if (!_eina_inarray_resize(array, array->len - 1))
490 return -1;
491 array->len--;
492 return array->len + 1;
493}
494
495EAPI void *
496eina_inarray_nth(const Eina_Inarray *array, unsigned int position)
497{
498 EINA_MAGIC_CHECK_INARRAY(array, NULL);
499 EINA_SAFETY_ON_TRUE_RETURN_VAL(position >= array->len, NULL);
500 return _eina_inarray_get(array, position);
501}
502
503EAPI Eina_Bool
504eina_inarray_insert_at(Eina_Inarray *array, unsigned int position, const void *data)
505{
506 unsigned int sz;
507 unsigned char *p;
508
509 EINA_MAGIC_CHECK_INARRAY(array, EINA_FALSE);
510 EINA_SAFETY_ON_TRUE_RETURN_VAL(position > array->len, EINA_FALSE);
511
512 if (!_eina_inarray_resize(array, array->len + 1))
513 return EINA_FALSE;
514
515 p = _eina_inarray_get(array, position);
516 sz = array->member_size;
517 if (array->len > position)
518 memmove(p + sz, p, (array->len - position) * sz);
519 memcpy(p, data, sz);
520
521 array->len++;
522 return EINA_TRUE;
523}
524
525EAPI void *
526eina_inarray_alloc_at(Eina_Inarray *array, unsigned int position, unsigned int member_count)
527{
528 unsigned int sz;
529 unsigned char *p;
530
531 EINA_MAGIC_CHECK_INARRAY(array, NULL);
532 EINA_SAFETY_ON_TRUE_RETURN_VAL(position > array->len, NULL);
533 EINA_SAFETY_ON_TRUE_RETURN_VAL(member_count == 0, NULL);
534
535 if (!_eina_inarray_resize(array, array->len + member_count))
536 return NULL;
537
538 p = _eina_inarray_get(array, position);
539 sz = array->member_size;
540 if (array->len > position)
541 memmove(p + member_count * sz, p, (array->len - position) * sz);
542
543 array->len += member_count;
544 return p;
545}
546
547EAPI Eina_Bool
548eina_inarray_replace_at(Eina_Inarray *array, unsigned int position, const void *data)
549{
550 unsigned char *p;
551
552 EINA_MAGIC_CHECK_INARRAY(array, EINA_FALSE);
553 EINA_SAFETY_ON_TRUE_RETURN_VAL(position >= array->len, EINA_FALSE);
554
555 p = _eina_inarray_get(array, position);
556 memcpy(p, data, array->member_size);
557
558 return EINA_TRUE;
559}
560
561EAPI Eina_Bool
562eina_inarray_remove_at(Eina_Inarray *array, unsigned int position)
563{
564 EINA_MAGIC_CHECK_INARRAY(array, EINA_FALSE);
565 EINA_SAFETY_ON_TRUE_RETURN_VAL(position >= array->len, EINA_FALSE);
566
567 if (position + 1 < array->len)
568 {
569 unsigned int sz = array->member_size;
570 unsigned char *p = _eina_inarray_get(array, position);
571 memmove(p, p + sz, (array->len - position - 1) * sz);
572 }
573
574 _eina_inarray_resize(array, array->len - 1);
575 array->len--;
576 return EINA_TRUE;
577}
578
579EAPI void
580eina_inarray_reverse(Eina_Inarray *array)
581{
582 size_t sz;
583 unsigned char *fwd, *rev, *fwd_end;
584 void *tmp;
585
586 EINA_MAGIC_CHECK_INARRAY(array);
587
588 if (array->len < 2)
589 return;
590
591 sz = array->member_size;
592
593 tmp = alloca(sz);
594 EINA_SAFETY_ON_NULL_RETURN(tmp);
595
596 fwd = array->members;
597 fwd_end = fwd + (array->len / 2) * sz;
598
599 rev = fwd + (array->len - 1) * sz;
600
601 for (; fwd < fwd_end; fwd += sz, rev -= sz)
602 {
603 memcpy(tmp, fwd, sz);
604 memcpy(fwd, rev, sz);
605 memcpy(rev, tmp, sz);
606 }
607}
608
609EAPI void
610eina_inarray_sort(Eina_Inarray *array, Eina_Compare_Cb compare)
611{
612 EINA_MAGIC_CHECK_INARRAY(array);
613 EINA_SAFETY_ON_NULL_RETURN(compare);
614 qsort(array->members, array->len, array->member_size, compare);
615}
616
617EAPI int
618eina_inarray_search(const Eina_Inarray *array, const void *data, Eina_Compare_Cb compare)
619{
620 EINA_MAGIC_CHECK_INARRAY(array, -1);
621 EINA_SAFETY_ON_NULL_RETURN_VAL(data, -1);
622 EINA_SAFETY_ON_NULL_RETURN_VAL(compare, -1);
623 return _eina_inarray_search(array, data, compare);
624}
625
626EAPI int
627eina_inarray_search_sorted(const Eina_Inarray *array, const void *data, Eina_Compare_Cb compare)
628{
629 unsigned int pos;
630 int cmp;
631
632 EINA_MAGIC_CHECK_INARRAY(array, -1);
633 EINA_SAFETY_ON_NULL_RETURN_VAL(data, -1);
634 EINA_SAFETY_ON_NULL_RETURN_VAL(compare, -1);
635
636 pos = _eina_inarray_search_sorted_near(array, data, compare, &cmp);
637 if (cmp == 0)
638 return pos;
639 return -1;
640}
641
642EAPI Eina_Bool
643eina_inarray_foreach(const Eina_Inarray *array, Eina_Each_Cb function, const void *user_data)
644{
645 unsigned char *itr, *itr_end;
646 unsigned int sz;
647 Eina_Bool ret = EINA_TRUE;
648
649 EINA_MAGIC_CHECK_INARRAY(array, EINA_FALSE);
650 EINA_SAFETY_ON_NULL_RETURN_VAL(function, EINA_FALSE);
651
652 sz = array->member_size;
653 itr = array->members;
654 itr_end = itr + array->len * sz;
655 for (; (itr < itr_end) && (ret); itr += sz)
656 ret = function(array, itr, (void *)user_data);
657 return ret;
658}
659
660EAPI int
661eina_inarray_foreach_remove(Eina_Inarray *array, Eina_Each_Cb match, const void *user_data)
662{
663 unsigned int i = 0, count = 0;
664
665 EINA_MAGIC_CHECK_INARRAY(array, -1);
666 EINA_SAFETY_ON_NULL_RETURN_VAL(match, -1);
667
668 while (i < array->len)
669 {
670 void *p = _eina_inarray_get(array, i);
671 if (match(array, p, (void *)user_data) == EINA_FALSE)
672 {
673 i++;
674 continue;
675 }
676
677 eina_inarray_remove_at(array, i);
678 count++;
679 }
680
681 return count;
682}
683
684EAPI unsigned int
685eina_inarray_count(const Eina_Inarray *array)
686{
687 EINA_MAGIC_CHECK_INARRAY(array, 0);
688 return array->len;
689}
690
691EAPI Eina_Iterator *
692eina_inarray_iterator_new(const Eina_Inarray *array)
693{
694 Eina_Iterator_Inarray *it;
695
696 EINA_MAGIC_CHECK_INARRAY(array, NULL);
697
698 eina_error_set(0);
699 it = calloc(1, sizeof(Eina_Iterator_Inarray));
700 if (!it)
701 {
702 eina_error_set(EINA_ERROR_OUT_OF_MEMORY);
703 return NULL;
704 }
705
706 EINA_MAGIC_SET(it, EINA_MAGIC_INARRAY_ITERATOR);
707 EINA_MAGIC_SET(&it->iterator, EINA_MAGIC_ITERATOR);
708
709 it->array = array;
710
711 it->iterator.version = EINA_ITERATOR_VERSION;
712 it->iterator.next = FUNC_ITERATOR_NEXT(_eina_inarray_iterator_next);
713 it->iterator.get_container = FUNC_ITERATOR_GET_CONTAINER
714 (_eina_inarray_iterator_get_container);
715 it->iterator.free = FUNC_ITERATOR_FREE(_eina_inarray_iterator_free);
716
717 return &it->iterator;
718}
719
720EAPI Eina_Iterator *
721eina_inarray_iterator_reversed_new(const Eina_Inarray *array)
722{
723 Eina_Iterator_Inarray *it;
724
725 EINA_MAGIC_CHECK_INARRAY(array, NULL);
726
727 eina_error_set(0);
728 it = calloc(1, sizeof(Eina_Iterator_Inarray));
729 if (!it)
730 {
731 eina_error_set(EINA_ERROR_OUT_OF_MEMORY);
732 return NULL;
733 }
734
735 EINA_MAGIC_SET(it, EINA_MAGIC_INARRAY_ITERATOR);
736 EINA_MAGIC_SET(&it->iterator, EINA_MAGIC_ITERATOR);
737
738 it->array = array;
739 it->pos = array->len;
740
741 it->iterator.version = EINA_ITERATOR_VERSION;
742 it->iterator.next = FUNC_ITERATOR_NEXT(_eina_inarray_iterator_prev);
743 it->iterator.get_container = FUNC_ITERATOR_GET_CONTAINER
744 (_eina_inarray_iterator_get_container);
745 it->iterator.free = FUNC_ITERATOR_FREE(_eina_inarray_iterator_free);
746
747 return &it->iterator;
748}
749
750EAPI Eina_Accessor *
751eina_inarray_accessor_new(const Eina_Inarray *array)
752{
753 Eina_Accessor_Inarray *ac;
754
755 EINA_MAGIC_CHECK_INARRAY(array, NULL);
756
757 eina_error_set(0);
758 ac = calloc(1, sizeof(Eina_Accessor_Inarray));
759 if (!ac)
760 {
761 eina_error_set(EINA_ERROR_OUT_OF_MEMORY);
762 return NULL;
763 }
764
765 EINA_MAGIC_SET(ac, EINA_MAGIC_INARRAY_ACCESSOR);
766 EINA_MAGIC_SET(&ac->accessor, EINA_MAGIC_ACCESSOR);
767
768 ac->array = array;
769
770 ac->accessor.version = EINA_ACCESSOR_VERSION;
771 ac->accessor.get_at = FUNC_ACCESSOR_GET_AT(_eina_inarray_accessor_get_at);
772 ac->accessor.get_container = FUNC_ACCESSOR_GET_CONTAINER
773 (_eina_inarray_accessor_get_container);
774 ac->accessor.free = FUNC_ACCESSOR_FREE(_eina_inarray_accessor_free);
775
776 return &ac->accessor;
777}
diff --git a/libraries/eina/src/lib/eina_log.c b/libraries/eina/src/lib/eina_log.c
index dd772d2..4e2bb6d 100644
--- a/libraries/eina/src/lib/eina_log.c
+++ b/libraries/eina/src/lib/eina_log.c
@@ -71,6 +71,7 @@
71#define EINA_LOG_ENV_FILE_DISABLE "EINA_LOG_FILE_DISABLE" 71#define EINA_LOG_ENV_FILE_DISABLE "EINA_LOG_FILE_DISABLE"
72#define EINA_LOG_ENV_FUNCTION_DISABLE "EINA_LOG_FUNCTION_DISABLE" 72#define EINA_LOG_ENV_FUNCTION_DISABLE "EINA_LOG_FUNCTION_DISABLE"
73 73
74#ifdef EINA_ENABLE_LOG
74 75
75// Structure for storing domain level settings passed from the command line 76// Structure for storing domain level settings passed from the command line
76// that will be matched with application-defined domains. 77// that will be matched with application-defined domains.
@@ -1294,6 +1295,8 @@ eina_log_print_unlocked(int domain,
1294 abort(); 1295 abort();
1295} 1296}
1296 1297
1298#endif
1299
1297/** 1300/**
1298 * @endcond 1301 * @endcond
1299 */ 1302 */
@@ -1321,6 +1324,7 @@ eina_log_print_unlocked(int domain,
1321Eina_Bool 1324Eina_Bool
1322eina_log_init(void) 1325eina_log_init(void)
1323{ 1326{
1327#ifdef EINA_ENABLE_LOG
1324 const char *level, *tmp; 1328 const char *level, *tmp;
1325 int color_disable; 1329 int color_disable;
1326 1330
@@ -1392,6 +1396,7 @@ eina_log_init(void)
1392 // Parse pending domains passed through EINA_LOG_LEVELS 1396 // Parse pending domains passed through EINA_LOG_LEVELS
1393 eina_log_domain_parse_pendings(); 1397 eina_log_domain_parse_pendings();
1394 1398
1399#endif
1395 return EINA_TRUE; 1400 return EINA_TRUE;
1396} 1401}
1397 1402
@@ -1413,6 +1418,7 @@ eina_log_init(void)
1413Eina_Bool 1418Eina_Bool
1414eina_log_shutdown(void) 1419eina_log_shutdown(void)
1415{ 1420{
1421#ifdef EINA_ENABLE_LOG
1416 Eina_Inlist *tmp; 1422 Eina_Inlist *tmp;
1417 1423
1418 while (_log_domains_count--) 1424 while (_log_domains_count--)
@@ -1443,6 +1449,7 @@ eina_log_shutdown(void)
1443 free(tmp); 1449 free(tmp);
1444 } 1450 }
1445 1451
1452#endif
1446 return EINA_TRUE; 1453 return EINA_TRUE;
1447} 1454}
1448 1455
@@ -1460,10 +1467,12 @@ eina_log_shutdown(void)
1460void 1467void
1461eina_log_threads_init(void) 1468eina_log_threads_init(void)
1462{ 1469{
1470#ifdef EINA_ENABLE_LOG
1463 if (_threads_inited) return; 1471 if (_threads_inited) return;
1464 _main_thread = SELF(); 1472 _main_thread = SELF();
1465 if (!INIT()) return; 1473 if (!INIT()) return;
1466 _threads_inited = EINA_TRUE; 1474 _threads_inited = EINA_TRUE;
1475#endif
1467} 1476}
1468 1477
1469/** 1478/**
@@ -1478,11 +1487,13 @@ eina_log_threads_init(void)
1478void 1487void
1479eina_log_threads_shutdown(void) 1488eina_log_threads_shutdown(void)
1480{ 1489{
1490#ifdef EINA_ENABLE_LOG
1481 if (!_threads_inited) return; 1491 if (!_threads_inited) return;
1482 CHECK_MAIN(); 1492 CHECK_MAIN();
1483 SHUTDOWN(); 1493 SHUTDOWN();
1484 _threads_enabled = EINA_FALSE; 1494 _threads_enabled = EINA_FALSE;
1485 _threads_inited = EINA_FALSE; 1495 _threads_inited = EINA_FALSE;
1496#endif
1486} 1497}
1487 1498
1488#endif 1499#endif
@@ -1504,7 +1515,7 @@ EAPI int EINA_LOG_DOMAIN_GLOBAL = 0;
1504EAPI void 1515EAPI void
1505eina_log_threads_enable(void) 1516eina_log_threads_enable(void)
1506{ 1517{
1507#ifdef EFL_HAVE_THREADS 1518#if defined (EFL_HAVE_THREADS) && defined (EINA_ENABLE_LOG)
1508 if (_threads_enabled) return; 1519 if (_threads_enabled) return;
1509 if (!_threads_inited) eina_log_threads_init(); 1520 if (!_threads_inited) eina_log_threads_init();
1510 _threads_enabled = EINA_TRUE; 1521 _threads_enabled = EINA_TRUE;
@@ -1515,32 +1526,45 @@ eina_log_threads_enable(void)
1515EAPI void 1526EAPI void
1516eina_log_print_cb_set(Eina_Log_Print_Cb cb, void *data) 1527eina_log_print_cb_set(Eina_Log_Print_Cb cb, void *data)
1517{ 1528{
1529#ifdef EINA_ENABLE_LOG
1518 LOG_LOCK(); 1530 LOG_LOCK();
1519 _print_cb = cb; 1531 _print_cb = cb;
1520 _print_cb_data = data; 1532 _print_cb_data = data;
1521 eina_log_print_prefix_update(); 1533 eina_log_print_prefix_update();
1522 LOG_UNLOCK(); 1534 LOG_UNLOCK();
1535#else
1536 (void) cb;
1537 (void) data;
1538#endif
1523} 1539}
1524 1540
1525EAPI void 1541EAPI void
1526eina_log_level_set(int level) 1542eina_log_level_set(int level)
1527{ 1543{
1544#ifdef EINA_ENABLE_LOG
1528 _log_level = level; 1545 _log_level = level;
1529 if (EINA_LIKELY((EINA_LOG_DOMAIN_GLOBAL >= 0) && 1546 if (EINA_LIKELY((EINA_LOG_DOMAIN_GLOBAL >= 0) &&
1530 ((unsigned int)EINA_LOG_DOMAIN_GLOBAL < _log_domains_count))) 1547 ((unsigned int)EINA_LOG_DOMAIN_GLOBAL < _log_domains_count)))
1531 _log_domains[EINA_LOG_DOMAIN_GLOBAL].level = level; 1548 _log_domains[EINA_LOG_DOMAIN_GLOBAL].level = level;
1549#else
1550 (void) level;
1551#endif
1532} 1552}
1533 1553
1534EAPI int 1554EAPI int
1535eina_log_level_get(void) 1555eina_log_level_get(void)
1536{ 1556{
1557#ifdef EINA_ENABLE_LOG
1537 return _log_level; 1558 return _log_level;
1559#else
1560 return 0;
1561#endif
1538} 1562}
1539 1563
1540EAPI Eina_Bool 1564EAPI Eina_Bool
1541eina_log_main_thread_check(void) 1565eina_log_main_thread_check(void)
1542{ 1566{
1543#ifdef EFL_HAVE_THREADS 1567#if defined (EFL_HAVE_THREADS) && defined (EINA_ENABLE_LOG)
1544 return ((!_threads_enabled) || IS_MAIN(SELF())); 1568 return ((!_threads_enabled) || IS_MAIN(SELF()));
1545#else 1569#else
1546 return EINA_TRUE; 1570 return EINA_TRUE;
@@ -1550,66 +1574,107 @@ eina_log_main_thread_check(void)
1550EAPI void 1574EAPI void
1551eina_log_color_disable_set(Eina_Bool disabled) 1575eina_log_color_disable_set(Eina_Bool disabled)
1552{ 1576{
1577#ifdef EINA_ENABLE_LOG
1553 _disable_color = disabled; 1578 _disable_color = disabled;
1579#else
1580 (void) disabled;
1581#endif
1554} 1582}
1555 1583
1556EAPI Eina_Bool 1584EAPI Eina_Bool
1557eina_log_color_disable_get(void) 1585eina_log_color_disable_get(void)
1558{ 1586{
1587#ifdef EINA_ENABLE_LOG
1559 return _disable_color; 1588 return _disable_color;
1589#else
1590 return EINA_TRUE;
1591#endif
1560} 1592}
1561 1593
1562EAPI void 1594EAPI void
1563eina_log_file_disable_set(Eina_Bool disabled) 1595eina_log_file_disable_set(Eina_Bool disabled)
1564{ 1596{
1597#ifdef EINA_ENABLE_LOG
1565 _disable_file = disabled; 1598 _disable_file = disabled;
1599#else
1600 (void) disabled;
1601#endif
1566} 1602}
1567 1603
1568EAPI Eina_Bool 1604EAPI Eina_Bool
1569eina_log_file_disable_get(void) 1605eina_log_file_disable_get(void)
1570{ 1606{
1607#ifdef EINA_ENABLE_LOG
1571 return _disable_file; 1608 return _disable_file;
1609#else
1610 return EINA_TRUE;
1611#endif
1572} 1612}
1573 1613
1574EAPI void 1614EAPI void
1575eina_log_function_disable_set(Eina_Bool disabled) 1615eina_log_function_disable_set(Eina_Bool disabled)
1576{ 1616{
1617#ifdef EINA_ENABLE_LOG
1577 _disable_function = disabled; 1618 _disable_function = disabled;
1619#else
1620 (void) disabled;
1621#endif
1578} 1622}
1579 1623
1580EAPI Eina_Bool 1624EAPI Eina_Bool
1581eina_log_function_disable_get(void) 1625eina_log_function_disable_get(void)
1582{ 1626{
1627#ifdef EINA_ENABLE_LOG
1583 return _disable_function; 1628 return _disable_function;
1629#else
1630 return EINA_TRUE;
1631#endif
1584} 1632}
1585 1633
1586EAPI void 1634EAPI void
1587eina_log_abort_on_critical_set(Eina_Bool abort_on_critical) 1635eina_log_abort_on_critical_set(Eina_Bool abort_on_critical)
1588{ 1636{
1637#ifdef EINA_ENABLE_LOG
1589 _abort_on_critical = abort_on_critical; 1638 _abort_on_critical = abort_on_critical;
1639#else
1640 (void) abort_on_critical;
1641#endif
1590} 1642}
1591 1643
1592EAPI Eina_Bool 1644EAPI Eina_Bool
1593eina_log_abort_on_critical_get(void) 1645eina_log_abort_on_critical_get(void)
1594{ 1646{
1647#ifdef EINA_ENABLE_LOG
1595 return _abort_on_critical; 1648 return _abort_on_critical;
1649#else
1650 return EINA_FALSE;
1651#endif
1596} 1652}
1597 1653
1598EAPI void 1654EAPI void
1599eina_log_abort_on_critical_level_set(int critical_level) 1655eina_log_abort_on_critical_level_set(int critical_level)
1600{ 1656{
1657#ifdef EINA_ENABLE_LOG
1601 _abort_level_on_critical = critical_level; 1658 _abort_level_on_critical = critical_level;
1659#else
1660 (void) critical_level;
1661#endif
1602} 1662}
1603 1663
1604EAPI int 1664EAPI int
1605eina_log_abort_on_critical_level_get(void) 1665eina_log_abort_on_critical_level_get(void)
1606{ 1666{
1667#ifdef EINA_ENABLE_LOG
1607 return _abort_level_on_critical; 1668 return _abort_level_on_critical;
1669#else
1670 return 0;
1671#endif
1608} 1672}
1609 1673
1610EAPI int 1674EAPI int
1611eina_log_domain_register(const char *name, const char *color) 1675eina_log_domain_register(const char *name, const char *color)
1612{ 1676{
1677#ifdef EINA_ENABLE_LOG
1613 int r; 1678 int r;
1614 1679
1615 EINA_SAFETY_ON_NULL_RETURN_VAL(name, -1); 1680 EINA_SAFETY_ON_NULL_RETURN_VAL(name, -1);
@@ -1618,20 +1683,30 @@ eina_log_domain_register(const char *name, const char *color)
1618 r = eina_log_domain_register_unlocked(name, color); 1683 r = eina_log_domain_register_unlocked(name, color);
1619 LOG_UNLOCK(); 1684 LOG_UNLOCK();
1620 return r; 1685 return r;
1686#else
1687 (void) name;
1688 (void) color;
1689 return 0;
1690#endif
1621} 1691}
1622 1692
1623EAPI void 1693EAPI void
1624eina_log_domain_unregister(int domain) 1694eina_log_domain_unregister(int domain)
1625{ 1695{
1696#ifdef EINA_ENABLE_LOG
1626 EINA_SAFETY_ON_FALSE_RETURN(domain >= 0); 1697 EINA_SAFETY_ON_FALSE_RETURN(domain >= 0);
1627 LOG_LOCK(); 1698 LOG_LOCK();
1628 eina_log_domain_unregister_unlocked(domain); 1699 eina_log_domain_unregister_unlocked(domain);
1629 LOG_UNLOCK(); 1700 LOG_UNLOCK();
1701#else
1702 (void) domain;
1703#endif
1630} 1704}
1631 1705
1632EAPI void 1706EAPI void
1633eina_log_domain_level_set(const char *domain_name, int level) 1707eina_log_domain_level_set(const char *domain_name, int level)
1634{ 1708{
1709#ifdef EINA_ENABLE_LOG
1635 Eina_Log_Domain_Level_Pending *pending; 1710 Eina_Log_Domain_Level_Pending *pending;
1636 size_t namelen; 1711 size_t namelen;
1637 unsigned int i; 1712 unsigned int i;
@@ -1672,11 +1747,16 @@ eina_log_domain_level_set(const char *domain_name, int level)
1672 memcpy(pending->name, domain_name, namelen + 1); 1747 memcpy(pending->name, domain_name, namelen + 1);
1673 1748
1674 _pending_list = eina_inlist_append(_pending_list, EINA_INLIST_GET(pending)); 1749 _pending_list = eina_inlist_append(_pending_list, EINA_INLIST_GET(pending));
1750#else
1751 (void) domain_name;
1752 (void) level;
1753#endif
1675} 1754}
1676 1755
1677EAPI int 1756EAPI int
1678eina_log_domain_level_get(const char *domain_name) 1757eina_log_domain_level_get(const char *domain_name)
1679{ 1758{
1759#ifdef EINA_ENABLE_LOG
1680 Eina_Log_Domain_Level_Pending *pending; 1760 Eina_Log_Domain_Level_Pending *pending;
1681 size_t namelen; 1761 size_t namelen;
1682 unsigned int i; 1762 unsigned int i;
@@ -1711,17 +1791,26 @@ eina_log_domain_level_get(const char *domain_name)
1711 } 1791 }
1712 1792
1713 return _log_level; 1793 return _log_level;
1794#else
1795 (void) domain_name;
1796 return 0;
1797#endif
1714} 1798}
1715 1799
1716EAPI int 1800EAPI int
1717eina_log_domain_registered_level_get(int domain) 1801eina_log_domain_registered_level_get(int domain)
1718{ 1802{
1803#ifdef EINA_ENABLE_LOG
1719 EINA_SAFETY_ON_FALSE_RETURN_VAL(domain >= 0, EINA_LOG_LEVEL_UNKNOWN); 1804 EINA_SAFETY_ON_FALSE_RETURN_VAL(domain >= 0, EINA_LOG_LEVEL_UNKNOWN);
1720 EINA_SAFETY_ON_FALSE_RETURN_VAL((unsigned int)domain < _log_domains_count, 1805 EINA_SAFETY_ON_FALSE_RETURN_VAL((unsigned int)domain < _log_domains_count,
1721 EINA_LOG_LEVEL_UNKNOWN); 1806 EINA_LOG_LEVEL_UNKNOWN);
1722 EINA_SAFETY_ON_TRUE_RETURN_VAL(_log_domains[domain].deleted, 1807 EINA_SAFETY_ON_TRUE_RETURN_VAL(_log_domains[domain].deleted,
1723 EINA_LOG_LEVEL_UNKNOWN); 1808 EINA_LOG_LEVEL_UNKNOWN);
1724 return _log_domains[domain].level; 1809 return _log_domains[domain].level;
1810#else
1811 (void) domain;
1812 return 0;
1813#endif
1725} 1814}
1726 1815
1727EAPI void 1816EAPI void
@@ -1734,9 +1823,20 @@ eina_log_print_cb_stderr(const Eina_Log_Domain *d,
1734 __UNUSED__ void *data, 1823 __UNUSED__ void *data,
1735 va_list args) 1824 va_list args)
1736{ 1825{
1826#ifdef EINA_ENABLE_LOG
1737 _eina_log_print_prefix(stderr, d, level, file, fnc, line); 1827 _eina_log_print_prefix(stderr, d, level, file, fnc, line);
1738 vfprintf(stderr, fmt, args); 1828 vfprintf(stderr, fmt, args);
1739 putc('\n', stderr); 1829 putc('\n', stderr);
1830#else
1831 (void) d;
1832 (void) level;
1833 (void) file;
1834 (void) fnc;
1835 (void) line;
1836 (void) fmt;
1837 (void) data;
1838 (void) args;
1839#endif
1740} 1840}
1741 1841
1742EAPI void 1842EAPI void
@@ -1749,9 +1849,20 @@ eina_log_print_cb_stdout(const Eina_Log_Domain *d,
1749 __UNUSED__ void *data, 1849 __UNUSED__ void *data,
1750 va_list args) 1850 va_list args)
1751{ 1851{
1852#ifdef EINA_ENABLE_LOG
1752 _eina_log_print_prefix(stdout, d, level, file, fnc, line); 1853 _eina_log_print_prefix(stdout, d, level, file, fnc, line);
1753 vprintf(fmt, args); 1854 vprintf(fmt, args);
1754 putchar('\n'); 1855 putchar('\n');
1856#else
1857 (void) d;
1858 (void) level;
1859 (void) file;
1860 (void) fnc;
1861 (void) line;
1862 (void) fmt;
1863 (void) data;
1864 (void) args;
1865#endif
1755} 1866}
1756 1867
1757EAPI void 1868EAPI void
@@ -1764,6 +1875,7 @@ eina_log_print_cb_file(const Eina_Log_Domain *d,
1764 void *data, 1875 void *data,
1765 va_list args) 1876 va_list args)
1766{ 1877{
1878#ifdef EINA_ENABLE_LOG
1767 FILE *f = data; 1879 FILE *f = data;
1768#ifdef EFL_HAVE_THREADS 1880#ifdef EFL_HAVE_THREADS
1769 if (_threads_enabled) 1881 if (_threads_enabled)
@@ -1787,12 +1899,22 @@ end:
1787#endif 1899#endif
1788 vfprintf(f, fmt, args); 1900 vfprintf(f, fmt, args);
1789 putc('\n', f); 1901 putc('\n', f);
1902#else
1903 (void) d;
1904 (void) file;
1905 (void) fnc;
1906 (void) line;
1907 (void) fmt;
1908 (void) data;
1909 (void) args;
1910#endif
1790} 1911}
1791 1912
1792EAPI void 1913EAPI void
1793eina_log_print(int domain, Eina_Log_Level level, const char *file, 1914eina_log_print(int domain, Eina_Log_Level level, const char *file,
1794 const char *fnc, int line, const char *fmt, ...) 1915 const char *fnc, int line, const char *fmt, ...)
1795{ 1916{
1917#ifdef EINA_ENABLE_LOG
1796 va_list args; 1918 va_list args;
1797 1919
1798#ifdef EINA_SAFETY_CHECKS 1920#ifdef EINA_SAFETY_CHECKS
@@ -1820,12 +1942,22 @@ eina_log_print(int domain, Eina_Log_Level level, const char *file,
1820 eina_log_print_unlocked(domain, level, file, fnc, line, fmt, args); 1942 eina_log_print_unlocked(domain, level, file, fnc, line, fmt, args);
1821 LOG_UNLOCK(); 1943 LOG_UNLOCK();
1822 va_end(args); 1944 va_end(args);
1945#else
1946 (void) domain;
1947 (void) level;
1948 (void) file;
1949 (void) fnc;
1950 (void) line;
1951 (void) fmt;
1952#endif
1823} 1953}
1824 1954
1825EAPI void 1955EAPI void
1826eina_log_vprint(int domain, Eina_Log_Level level, const char *file, 1956eina_log_vprint(int domain, Eina_Log_Level level, const char *file,
1827 const char *fnc, int line, const char *fmt, va_list args) 1957 const char *fnc, int line, const char *fmt, va_list args)
1828{ 1958{
1959#ifdef EINA_ENABLE_LOG
1960
1829#ifdef EINA_SAFETY_CHECKS 1961#ifdef EINA_SAFETY_CHECKS
1830 if (EINA_UNLIKELY(!file)) 1962 if (EINA_UNLIKELY(!file))
1831 { 1963 {
@@ -1849,4 +1981,13 @@ eina_log_vprint(int domain, Eina_Log_Level level, const char *file,
1849 LOG_LOCK(); 1981 LOG_LOCK();
1850 eina_log_print_unlocked(domain, level, file, fnc, line, fmt, args); 1982 eina_log_print_unlocked(domain, level, file, fnc, line, fmt, args);
1851 LOG_UNLOCK(); 1983 LOG_UNLOCK();
1984#else
1985 (void) domain;
1986 (void) level;
1987 (void) file;
1988 (void) fnc;
1989 (void) line;
1990 (void) fmt;
1991 (void) args;
1992#endif
1852} 1993}
diff --git a/libraries/eina/src/lib/eina_magic.c b/libraries/eina/src/lib/eina_magic.c
index 1adde92..d1f71cc 100644
--- a/libraries/eina/src/lib/eina_magic.c
+++ b/libraries/eina/src/lib/eina_magic.c
@@ -79,7 +79,7 @@ _eina_magic_strings_sort_cmp(const void *p1, const void *p2)
79static int 79static int
80_eina_magic_strings_find_cmp(const void *p1, const void *p2) 80_eina_magic_strings_find_cmp(const void *p1, const void *p2)
81{ 81{
82 Eina_Magic a = (Eina_Magic)p1; 82 Eina_Magic a = (Eina_Magic)(size_t)p1;
83 const Eina_Magic_String *b = p2; 83 const Eina_Magic_String *b = p2;
84 return a - b->magic; 84 return a - b->magic;
85} 85}
@@ -129,6 +129,10 @@ _eina_magic_strings_alloc(void)
129* Global * 129* Global *
130*============================================================================*/ 130*============================================================================*/
131 131
132EAPI Eina_Error EINA_ERROR_MAGIC_FAILED = 0;
133
134static const char EINA_ERROR_MAGIC_FAILED_STR[] = "Magic check failed.";
135
132/** 136/**
133 * @internal 137 * @internal
134 * @brief Initialize the magic string module. 138 * @brief Initialize the magic string module.
@@ -150,6 +154,8 @@ eina_magic_string_init(void)
150 EINA_LOG_ERR("Could not register log domain: eina_magic_string"); 154 EINA_LOG_ERR("Could not register log domain: eina_magic_string");
151 return EINA_FALSE; 155 return EINA_FALSE;
152 } 156 }
157 EINA_ERROR_MAGIC_FAILED = eina_error_msg_static_register(
158 EINA_ERROR_MAGIC_FAILED_STR);
153 159
154 return EINA_TRUE; 160 return EINA_TRUE;
155} 161}
@@ -206,7 +212,7 @@ eina_magic_string_get(Eina_Magic magic)
206 _eina_magic_strings_dirty = 0; 212 _eina_magic_strings_dirty = 0;
207 } 213 }
208 214
209 ems = bsearch((void *)magic, _eina_magic_strings, 215 ems = bsearch((void *)(size_t)magic, _eina_magic_strings,
210 _eina_magic_strings_count, sizeof(Eina_Magic_String), 216 _eina_magic_strings_count, sizeof(Eina_Magic_String),
211 _eina_magic_strings_find_cmp); 217 _eina_magic_strings_find_cmp);
212 if (ems) 218 if (ems)
@@ -271,6 +277,7 @@ eina_magic_fail(void *d,
271 const char *fnc, 277 const char *fnc,
272 int line) 278 int line)
273{ 279{
280 eina_error_set(EINA_ERROR_MAGIC_FAILED);
274 if (!d) 281 if (!d)
275 eina_log_print(EINA_LOG_DOMAIN_GLOBAL, EINA_LOG_LEVEL_CRITICAL, 282 eina_log_print(EINA_LOG_DOMAIN_GLOBAL, EINA_LOG_LEVEL_CRITICAL,
276 file, fnc, line, 283 file, fnc, line,
diff --git a/libraries/eina/src/lib/eina_main.c b/libraries/eina/src/lib/eina_main.c
index 8727f83..79f8a36 100644
--- a/libraries/eina/src/lib/eina_main.c
+++ b/libraries/eina/src/lib/eina_main.c
@@ -67,6 +67,8 @@
67#include "eina_rectangle.h" 67#include "eina_rectangle.h"
68#include "eina_safety_checks.h" 68#include "eina_safety_checks.h"
69#include "eina_inlist.h" 69#include "eina_inlist.h"
70#include "eina_inarray.h"
71#include "eina_value.h"
70 72
71/*============================================================================* 73/*============================================================================*
72* Local * 74* Local *
@@ -131,6 +133,7 @@ EAPI Eina_Inlist *_eina_tracking = NULL;
131 S(magic_string); 133 S(magic_string);
132 S(iterator); 134 S(iterator);
133 S(accessor); 135 S(accessor);
136 S(inarray);
134 S(array); 137 S(array);
135 S(module); 138 S(module);
136 S(mempool); 139 S(mempool);
@@ -149,6 +152,7 @@ EAPI Eina_Inlist *_eina_tracking = NULL;
149 S(simple_xml); 152 S(simple_xml);
150 S(file); 153 S(file);
151 S(prefix); 154 S(prefix);
155 S(value);
152#undef S 156#undef S
153 157
154struct eina_desc_setup 158struct eina_desc_setup
@@ -161,17 +165,18 @@ struct eina_desc_setup
161static const struct eina_desc_setup _eina_desc_setup[] = { 165static const struct eina_desc_setup _eina_desc_setup[] = {
162#define S(x) {# x, eina_ ## x ## _init, eina_ ## x ## _shutdown} 166#define S(x) {# x, eina_ ## x ## _init, eina_ ## x ## _shutdown}
163 /* log is a special case as it needs printf */ 167 /* log is a special case as it needs printf */
168 S(stringshare),
164 S(error), 169 S(error),
165 S(safety_checks), 170 S(safety_checks),
166 S(magic_string), 171 S(magic_string),
167 S(iterator), 172 S(iterator),
168 S(accessor), 173 S(accessor),
174 S(inarray),
169 S(array), 175 S(array),
170 S(module), 176 S(module),
171 S(mempool), 177 S(mempool),
172 S(list), 178 S(list),
173 S(binshare), 179 S(binshare),
174 S(stringshare),
175 S(ustringshare), 180 S(ustringshare),
176 S(matrixsparse), 181 S(matrixsparse),
177 S(convert), 182 S(convert),
@@ -183,7 +188,8 @@ static const struct eina_desc_setup _eina_desc_setup[] = {
183 S(quadtree), 188 S(quadtree),
184 S(simple_xml), 189 S(simple_xml),
185 S(file), 190 S(file),
186 S(prefix) 191 S(prefix),
192 S(value)
187#undef S 193#undef S
188}; 194};
189static const size_t _eina_desc_setup_len = sizeof(_eina_desc_setup) / 195static const size_t _eina_desc_setup_len = sizeof(_eina_desc_setup) /
@@ -236,8 +242,8 @@ eina_init(void)
236 _mt_enabled = 1; 242 _mt_enabled = 1;
237 mtrace(); 243 mtrace();
238 } 244 }
239#endif 245#endif
240 246
241 if (!eina_log_init()) 247 if (!eina_log_init())
242 { 248 {
243 fprintf(stderr, "Could not initialize eina logging system.\n"); 249 fprintf(stderr, "Could not initialize eina logging system.\n");
@@ -304,7 +310,7 @@ eina_shutdown(void)
304 muntrace(); 310 muntrace();
305 _mt_enabled = 0; 311 _mt_enabled = 0;
306 } 312 }
307#endif 313#endif
308 } 314 }
309 315
310 return _eina_main_count; 316 return _eina_main_count;
diff --git a/libraries/eina/src/lib/eina_mmap.c b/libraries/eina/src/lib/eina_mmap.c
index fb27bd7..7929f0e 100644
--- a/libraries/eina/src/lib/eina_mmap.c
+++ b/libraries/eina/src/lib/eina_mmap.c
@@ -110,6 +110,8 @@ _eina_mmap_safe_sigbus(int sig __UNUSED__,
110 errno = perrno; 110 errno = perrno;
111 abort(); 111 abort();
112 } 112 }
113 /* Look into mmaped Eina_File if it was one of them, just to remember for later request */
114 eina_file_mmap_faulty(addr, _eina_mmap_pagesize);
113 /* restore previous errno */ 115 /* restore previous errno */
114 errno = perrno; 116 errno = perrno;
115} 117}
@@ -162,6 +164,9 @@ eina_mmap_safety_enabled_set(Eina_Bool enabled)
162 sa.sa_sigaction = _eina_mmap_safe_sigbus; 164 sa.sa_sigaction = _eina_mmap_safe_sigbus;
163 sa.sa_flags = SA_RESTART | SA_SIGINFO; 165 sa.sa_flags = SA_RESTART | SA_SIGINFO;
164 sigemptyset(&sa.sa_mask); 166 sigemptyset(&sa.sa_mask);
167 /* FIXME: This is rubbish. We return EINA_FALSE whether sigaction
168 * fails or not. And we never set mmap_safe, so we always hit this
169 * code path. */
165 if (sigaction(SIGBUS, &sa, NULL) == 0) return EINA_FALSE; 170 if (sigaction(SIGBUS, &sa, NULL) == 0) return EINA_FALSE;
166 /* setup of SIGBUS handler failed, lets close zero page dev and fail */ 171 /* setup of SIGBUS handler failed, lets close zero page dev and fail */
167 close(_eina_mmap_zero_fd); 172 close(_eina_mmap_zero_fd);
diff --git a/libraries/eina/src/lib/eina_module.c b/libraries/eina/src/lib/eina_module.c
index 0dd19a6..26df980 100644
--- a/libraries/eina/src/lib/eina_module.c
+++ b/libraries/eina/src/lib/eina_module.c
@@ -37,6 +37,7 @@ extern "C"
37void *alloca (size_t); 37void *alloca (size_t);
38#endif 38#endif
39 39
40#include <stdlib.h>
40#include <stdio.h> 41#include <stdio.h>
41#include <sys/types.h> 42#include <sys/types.h>
42#include <string.h> 43#include <string.h>
diff --git a/libraries/eina/src/lib/eina_prefix.c b/libraries/eina/src/lib/eina_prefix.c
index 9445222..5b4b0c0 100644
--- a/libraries/eina/src/lib/eina_prefix.c
+++ b/libraries/eina/src/lib/eina_prefix.c
@@ -150,25 +150,24 @@ _fallback(Eina_Prefix *pfx, const char *pkg_bin, const char *pkg_lib,
150 STRDUP_REP(pfx->prefix_path_lib, pkg_lib); 150 STRDUP_REP(pfx->prefix_path_lib, pkg_lib);
151 STRDUP_REP(pfx->prefix_path_data, pkg_data); 151 STRDUP_REP(pfx->prefix_path_data, pkg_data);
152 STRDUP_REP(pfx->prefix_path_locale, pkg_locale); 152 STRDUP_REP(pfx->prefix_path_locale, pkg_locale);
153 fprintf(stderr, 153 WRN("Could not determine its installed prefix for '%s'\n"
154 "WARNING: Could not determine its installed prefix for '%s'\n" 154 " so am falling back on the compiled in default:\n"
155 " so am falling back on the compiled in default:\n" 155 " %s\n"
156 " %s\n" 156 " implied by the following:\n"
157 " implied by the following:\n" 157 " bindir = %s\n"
158 " bindir = %s\n" 158 " libdir = %s\n"
159 " libdir = %s\n" 159 " datadir = %s\n"
160 " datadir = %s\n" 160 " localedir = %s\n"
161 " localedir = %s\n" 161 " Try setting the following environment variables:\n"
162 " Try setting the following environment variables:\n" 162 " %s_PREFIX - points to the base prefix of install\n"
163 " %s_PREFIX - points to the base prefix of install\n" 163 " or the next 4 variables\n"
164 " or the next 4 variables\n" 164 " %s_BIN_DIR - provide a specific binary directory\n"
165 " %s_BIN_DIR - provide a specific binary directory\n" 165 " %s_LIB_DIR - provide a specific library directory\n"
166 " %s_LIB_DIR - provide a specific library directory\n" 166 " %s_DATA_DIR - provide a specific data directory\n"
167 " %s_DATA_DIR - provide a specific data directory\n" 167 " %s_LOCALE_DIR - provide a specific locale directory",
168 " %s_LOCALE_DIR - provide a specific locale directory\n" 168 envprefix,
169 , envprefix, 169 pfx->prefix_path, pkg_bin, pkg_lib, pkg_data, pkg_locale,
170 pfx->prefix_path, pkg_bin, pkg_lib, pkg_data, pkg_locale, 170 envprefix, envprefix, envprefix, envprefix, envprefix);
171 envprefix, envprefix, envprefix, envprefix, envprefix);
172 pfx->fallback = 1; 171 pfx->fallback = 1;
173 return 1; 172 return 1;
174} 173}
diff --git a/libraries/eina/src/lib/eina_private.h b/libraries/eina/src/lib/eina_private.h
index d390397..e31ab47 100644
--- a/libraries/eina/src/lib/eina_private.h
+++ b/libraries/eina/src/lib/eina_private.h
@@ -91,6 +91,10 @@
91#define EINA_MAGIC_SIMPLE_XML_DATA 0x98761261 91#define EINA_MAGIC_SIMPLE_XML_DATA 0x98761261
92#define EINA_MAGIC_SIMPLE_XML_ATTRIBUTE 0x98761262 92#define EINA_MAGIC_SIMPLE_XML_ATTRIBUTE 0x98761262
93 93
94#define EINA_MAGIC_INARRAY 0x98761270
95#define EINA_MAGIC_INARRAY_ITERATOR 0x98761271
96#define EINA_MAGIC_INARRAY_ACCESSOR 0x98761272
97
94#define EINA_MAGIC_CLASS 0x9877CB30 98#define EINA_MAGIC_CLASS 0x9877CB30
95 99
96/* undef the following, we want out version */ 100/* undef the following, we want out version */
@@ -136,5 +140,7 @@ void eina_log_threads_init(void);
136void eina_log_threads_shutdown(void); 140void eina_log_threads_shutdown(void);
137#endif 141#endif
138 142
143void eina_file_mmap_faulty(void *addr, long page_size);
144
139#endif /* EINA_PRIVATE_H_ */ 145#endif /* EINA_PRIVATE_H_ */
140 146
diff --git a/libraries/eina/src/lib/eina_rbtree.c b/libraries/eina/src/lib/eina_rbtree.c
index c0c9f9e..5f1232c 100644
--- a/libraries/eina/src/lib/eina_rbtree.c
+++ b/libraries/eina/src/lib/eina_rbtree.c
@@ -83,7 +83,7 @@ _eina_rbtree_iterator_list_new(const Eina_Rbtree *tree)
83static Eina_Rbtree * 83static Eina_Rbtree *
84_eina_rbtree_iterator_get_content(Eina_Iterator_Rbtree *it) 84_eina_rbtree_iterator_get_content(Eina_Iterator_Rbtree *it)
85{ 85{
86 if (eina_array_count_get(it->stack) <= 0) 86 if (eina_array_count(it->stack) <= 0)
87 return NULL; 87 return NULL;
88 88
89 return eina_array_data_get(it->stack, 0); 89 return eina_array_data_get(it->stack, 0);
@@ -110,10 +110,10 @@ _eina_rbtree_iterator_next(Eina_Iterator_Rbtree *it, void **data)
110 Eina_Iterator_Rbtree_List *new; 110 Eina_Iterator_Rbtree_List *new;
111 Eina_Rbtree *tree; 111 Eina_Rbtree *tree;
112 112
113 if (eina_array_count_get(it->stack) <= 0) 113 if (eina_array_count(it->stack) <= 0)
114 return EINA_FALSE; 114 return EINA_FALSE;
115 115
116 last = eina_array_data_get(it->stack, eina_array_count_get(it->stack) - 1); 116 last = eina_array_data_get(it->stack, eina_array_count(it->stack) - 1);
117 tree = last->tree; 117 tree = last->tree;
118 118
119 if (!last->tree || last->up == EINA_TRUE) 119 if (!last->tree || last->up == EINA_TRUE)
@@ -128,10 +128,10 @@ _eina_rbtree_iterator_next(Eina_Iterator_Rbtree *it, void **data)
128 { 128 {
129 free(last); 129 free(last);
130 130
131 if (eina_array_count_get(it->stack) > 0) 131 if (eina_array_count(it->stack) > 0)
132 { 132 {
133 last = eina_array_data_get(it->stack, 133 last = eina_array_data_get(it->stack,
134 eina_array_count_get( 134 eina_array_count(
135 it-> 135 it->
136 stack) 136 stack)
137 - 1); 137 - 1);
diff --git a/libraries/eina/src/lib/eina_simple_xml_parser.c b/libraries/eina/src/lib/eina_simple_xml_parser.c
index 08a8259..4e357ba 100644
--- a/libraries/eina/src/lib/eina_simple_xml_parser.c
+++ b/libraries/eina/src/lib/eina_simple_xml_parser.c
@@ -38,7 +38,10 @@ extern "C"
38void *alloca (size_t); 38void *alloca (size_t);
39#endif 39#endif
40 40
41#include <strings.h> 41#ifdef HAVE_STRINGS_H
42# include <strings.h>
43#endif
44#include <stdlib.h>
42#include <string.h> 45#include <string.h>
43#include <ctype.h> 46#include <ctype.h>
44 47
@@ -121,7 +124,7 @@ static inline const char *
121_eina_simple_xml_whitespace_find(const char *itr, const char *itr_end) 124_eina_simple_xml_whitespace_find(const char *itr, const char *itr_end)
122{ 125{
123 for (; itr < itr_end; itr++) 126 for (; itr < itr_end; itr++)
124 if (isspace(*itr)) break; 127 if (isspace((unsigned char)*itr)) break;
125 return itr; 128 return itr;
126} 129}
127 130
@@ -129,7 +132,7 @@ static inline const char *
129_eina_simple_xml_whitespace_skip(const char *itr, const char *itr_end) 132_eina_simple_xml_whitespace_skip(const char *itr, const char *itr_end)
130{ 133{
131 for (; itr < itr_end; itr++) 134 for (; itr < itr_end; itr++)
132 if (!isspace(*itr)) break; 135 if (!isspace((unsigned char)*itr)) break;
133 return itr; 136 return itr;
134} 137}
135 138
@@ -137,7 +140,7 @@ static inline const char *
137_eina_simple_xml_whitespace_unskip(const char *itr, const char *itr_start) 140_eina_simple_xml_whitespace_unskip(const char *itr, const char *itr_start)
138{ 141{
139 for (itr--; itr > itr_start; itr--) 142 for (itr--; itr > itr_start; itr--)
140 if (!isspace(*itr)) break; 143 if (!isspace((unsigned char)*itr)) break;
141 return itr + 1; 144 return itr + 1;
142} 145}
143 146
@@ -309,7 +312,7 @@ eina_simple_xml_parse(const char *buf, unsigned buflen, Eina_Bool strip, Eina_Si
309 (!memcmp(itr + 2, "DOCTYPE", 312 (!memcmp(itr + 2, "DOCTYPE",
310 sizeof("DOCTYPE") - 1)) && 313 sizeof("DOCTYPE") - 1)) &&
311 ((itr[2 + sizeof("DOCTYPE") - 1] == '>') || 314 ((itr[2 + sizeof("DOCTYPE") - 1] == '>') ||
312 (isspace(itr[2 + sizeof("DOCTYPE") - 1])))) 315 (isspace((unsigned char)itr[2 + sizeof("DOCTYPE") - 1]))))
313 { 316 {
314 type = EINA_SIMPLE_XML_DOCTYPE; 317 type = EINA_SIMPLE_XML_DOCTYPE;
315 toff = sizeof("!DOCTYPE") - 1; 318 toff = sizeof("!DOCTYPE") - 1;
@@ -455,7 +458,7 @@ eina_simple_xml_tag_attributes_find(const char *buf, unsigned buflen)
455 458
456 for (; itr < itr_end; itr++) 459 for (; itr < itr_end; itr++)
457 { 460 {
458 if (!isspace(*itr)) 461 if (!isspace((unsigned char)*itr))
459 { 462 {
460 /* user skip tagname and already gave it the attributes */ 463 /* user skip tagname and already gave it the attributes */
461 if (*itr == '=') 464 if (*itr == '=')
@@ -492,7 +495,7 @@ eina_simple_xml_attributes_parse(const char *buf, unsigned buflen, Eina_Simple_X
492 495
493 key = p; 496 key = p;
494 for (key_end = key; key_end < itr_end; key_end++) 497 for (key_end = key; key_end < itr_end; key_end++)
495 if ((*key_end == '=') || (isspace(*key_end))) break; 498 if ((*key_end == '=') || (isspace((unsigned char)*key_end))) break;
496 if (key_end == itr_end) return EINA_FALSE; 499 if (key_end == itr_end) return EINA_FALSE;
497 if (key_end == key) continue; 500 if (key_end == key) continue;
498 501
@@ -504,7 +507,7 @@ eina_simple_xml_attributes_parse(const char *buf, unsigned buflen, Eina_Simple_X
504 value++; 507 value++;
505 } 508 }
506 for (; value < itr_end; value++) 509 for (; value < itr_end; value++)
507 if (!isspace(*value)) break; 510 if (!isspace((unsigned char)*value)) break;
508 if (value == itr_end) return EINA_FALSE; 511 if (value == itr_end) return EINA_FALSE;
509 512
510 if ((*value == '"') || (*value == '\'')) 513 if ((*value == '"') || (*value == '\''))
diff --git a/libraries/eina/src/lib/eina_strbuf.c b/libraries/eina/src/lib/eina_strbuf.c
index 74b1eb9..828d842 100644
--- a/libraries/eina/src/lib/eina_strbuf.c
+++ b/libraries/eina/src/lib/eina_strbuf.c
@@ -162,9 +162,9 @@ eina_strbuf_insert_vprintf(Eina_Strbuf *buf,
162EAPI void 162EAPI void
163eina_strbuf_trim(Eina_Strbuf *buf) 163eina_strbuf_trim(Eina_Strbuf *buf)
164{ 164{
165 char *c = buf->buf; 165 unsigned char *c = buf->buf;
166 166
167 while (buf->len > 0 && isspace(((unsigned char*)(buf->buf))[buf->len - 1])) 167 while (buf->len > 0 && isspace(c[buf->len - 1]))
168 buf->len--; 168 buf->len--;
169 while (buf->len > 0 && isspace(*c)) 169 while (buf->len > 0 && isspace(*c))
170 { 170 {
@@ -178,7 +178,7 @@ eina_strbuf_trim(Eina_Strbuf *buf)
178EAPI void 178EAPI void
179eina_strbuf_ltrim(Eina_Strbuf *buf) 179eina_strbuf_ltrim(Eina_Strbuf *buf)
180{ 180{
181 char *c = buf->buf; 181 unsigned char *c = buf->buf;
182 182
183 while (buf->len > 0 && isspace(*c)) 183 while (buf->len > 0 && isspace(*c))
184 { 184 {
diff --git a/libraries/eina/src/lib/eina_value.c b/libraries/eina/src/lib/eina_value.c
index 554f907..ba8af52 100644
--- a/libraries/eina/src/lib/eina_value.c
+++ b/libraries/eina/src/lib/eina_value.c
@@ -28,8 +28,4762 @@
28# include "config.h" 28# include "config.h"
29#endif 29#endif
30 30
31#ifdef HAVE_ALLOCA_H
32# include <alloca.h>
33#elif defined __GNUC__
34# define alloca __builtin_alloca
35#elif defined _AIX
36# define alloca __alloca
37#elif defined _MSC_VER
38# include <malloc.h>
39# define alloca _alloca
40#else
41# include <stddef.h>
42# ifdef __cplusplus
43extern "C"
44# endif
45void *alloca (size_t);
46#endif
47
48#include <stdio.h> /* asprintf() */
49#include <inttypes.h> /* PRId64 and PRIu64 */
50#include <sys/time.h> /* struct timeval */
51
31#include "eina_config.h" 52#include "eina_config.h"
32#include "eina_private.h" 53#include "eina_private.h"
54#include "eina_error.h"
55#include "eina_log.h"
56#include "eina_strbuf.h"
57#include "eina_mempool.h"
58#include "eina_lock.h"
59
60/* undefs EINA_ARG_NONULL() so NULL checks are not compiled out! */
61#include "eina_safety_checks.h"
62#include "eina_value.h"
63
64/*============================================================================*
65* Local *
66*============================================================================*/
67
68/**
69 * @cond LOCAL
70 */
71
72static Eina_Mempool *_eina_value_mp = NULL;
73static Eina_Hash *_eina_value_inner_mps = NULL;
74static Eina_Lock _eina_value_inner_mps_lock;
75static char *_eina_value_mp_choice = NULL;
76static int _eina_value_log_dom = -1;
77
78#ifdef ERR
79#undef ERR
80#endif
81#define ERR(...) EINA_LOG_DOM_ERR(_eina_value_log_dom, __VA_ARGS__)
82
83#ifdef DBG
84#undef DBG
85#endif
86#define DBG(...) EINA_LOG_DOM_DBG(_eina_value_log_dom, __VA_ARGS__)
87
88static const unsigned char eina_value_uchar_max = 255U;
89static const char eina_value_char_max = 127;
90static const char eina_value_char_min = -127 - 1;
91
92static const unsigned short eina_value_ushort_max = 65535U;
93static const short eina_value_short_max = 32767;
94static const short eina_value_short_min = -32767 - 1;
95
96static const unsigned int eina_value_uint_max = 4294967295U;
97static const int eina_value_int_max = 2147483647;
98static const int eina_value_int_min = -2147483647 - 1;
99
100static const uint64_t eina_value_uint64_max = 18446744073709551615ULL;
101static const int64_t eina_value_int64_max = 9223372036854775807LL;
102static const int64_t eina_value_int64_min = -9223372036854775807LL - 1LL;
103
104#if __WORDSIZE == 64
105static const unsigned long eina_value_ulong_max = 18446744073709551615ULL;
106static const long eina_value_long_max = 9223372036854775807LL;
107static const long eina_value_long_min = -9223372036854775807LL - 1LL;
108#else
109static const unsigned long eina_value_ulong_max = 4294967295U;
110static const long eina_value_long_max = 2147483647;
111static const long eina_value_long_min = -2147483647 - 1;
112#endif
113
114
115static Eina_Bool
116_eina_value_type_uchar_setup(const Eina_Value_Type *type __UNUSED__, void *mem)
117{
118 unsigned char *tmem = mem;
119 *tmem = 0;
120 return EINA_TRUE;
121}
122
123static Eina_Bool
124_eina_value_type_uchar_flush(const Eina_Value_Type *type __UNUSED__, void *mem __UNUSED__)
125{
126 return EINA_TRUE;
127}
128
129static Eina_Bool
130_eina_value_type_uchar_copy(const Eina_Value_Type *type __UNUSED__, const void *src, void *dst)
131{
132 const unsigned char *s = src;
133 unsigned char *d = dst;
134 *d = *s;
135 return EINA_TRUE;
136}
137
138static int
139_eina_value_type_uchar_compare(const Eina_Value_Type *type __UNUSED__, const void *a, const void *b)
140{
141 const unsigned char *ta = a, *tb = b;
142 if (*ta < *tb)
143 return -1;
144 else if (*ta > *tb)
145 return 1;
146 return 0;
147}
148
149static Eina_Bool
150_eina_value_type_uchar_convert_to(const Eina_Value_Type *type __UNUSED__, const Eina_Value_Type *convert, const void *type_mem, void *convert_mem)
151{
152 const unsigned char v = *(const unsigned char *)type_mem;
153
154 eina_error_set(0);
155
156 if (convert == EINA_VALUE_TYPE_UCHAR)
157 {
158 unsigned char other_mem = v;
159 return eina_value_type_pset(convert, convert_mem, &other_mem);
160 }
161 else if (convert == EINA_VALUE_TYPE_USHORT)
162 {
163 unsigned short other_mem = v;
164 return eina_value_type_pset(convert, convert_mem, &other_mem);
165 }
166 else if (convert == EINA_VALUE_TYPE_UINT)
167 {
168 unsigned int other_mem = v;
169 return eina_value_type_pset(convert, convert_mem, &other_mem);
170 }
171 else if (convert == EINA_VALUE_TYPE_ULONG)
172 {
173 unsigned long other_mem = v;
174 return eina_value_type_pset(convert, convert_mem, &other_mem);
175 }
176 else if (convert == EINA_VALUE_TYPE_UINT64)
177 {
178 uint64_t other_mem = v;
179 return eina_value_type_pset(convert, convert_mem, &other_mem);
180 }
181 else if (convert == EINA_VALUE_TYPE_CHAR)
182 {
183 char other_mem = v;
184 if (EINA_UNLIKELY(v > (unsigned char)eina_value_char_max))
185 return EINA_FALSE;
186 return eina_value_type_pset(convert, convert_mem, &other_mem);
187 }
188 else if (convert == EINA_VALUE_TYPE_SHORT)
189 {
190 short other_mem = v;
191 return eina_value_type_pset(convert, convert_mem, &other_mem);
192 }
193 else if (convert == EINA_VALUE_TYPE_INT)
194 {
195 int other_mem = v;
196 return eina_value_type_pset(convert, convert_mem, &other_mem);
197 }
198 else if (convert == EINA_VALUE_TYPE_LONG)
199 {
200 long other_mem = v;
201 return eina_value_type_pset(convert, convert_mem, &other_mem);
202 }
203 else if (convert == EINA_VALUE_TYPE_INT64)
204 {
205 int64_t other_mem = v;
206 return eina_value_type_pset(convert, convert_mem, &other_mem);
207 }
208 else if (convert == EINA_VALUE_TYPE_FLOAT)
209 {
210 float other_mem = v;
211 return eina_value_type_pset(convert, convert_mem, &other_mem);
212 }
213 else if (convert == EINA_VALUE_TYPE_DOUBLE)
214 {
215 double other_mem = v;
216 return eina_value_type_pset(convert, convert_mem, &other_mem);
217 }
218 else if (convert == EINA_VALUE_TYPE_STRINGSHARE ||
219 convert == EINA_VALUE_TYPE_STRING)
220 {
221 const char *other_mem;
222 char buf[64];
223 snprintf(buf, sizeof(buf), "%hhu", v);
224 other_mem = buf; /* required due &buf == buf */
225 return eina_value_type_pset(convert, convert_mem, &other_mem);
226 }
227 else
228 {
229 eina_error_set(EINA_ERROR_VALUE_FAILED);
230 return EINA_FALSE;
231 }
232
233 return EINA_TRUE;
234}
235
236static Eina_Bool
237_eina_value_type_uchar_vset(const Eina_Value_Type *type __UNUSED__, void *mem, va_list args)
238{
239 unsigned char *tmem = mem;
240 *tmem = va_arg(args, unsigned int); /* char is promoted to int for va_arg */
241 return EINA_TRUE;
242}
243
244static Eina_Bool
245_eina_value_type_uchar_pset(const Eina_Value_Type *type __UNUSED__, void *mem, const void *ptr)
246{
247 unsigned char *tmem = mem;
248 const unsigned char *p = ptr;
249 *tmem = *p;
250 return EINA_TRUE;
251}
252
253static Eina_Bool
254_eina_value_type_uchar_pget(const Eina_Value_Type *type __UNUSED__, const void *mem, void *ptr)
255{
256 const unsigned char *tmem = mem;
257 unsigned char *p = ptr;
258 *p = *tmem;
259 return EINA_TRUE;
260}
261
262static Eina_Bool
263_eina_value_type_ushort_setup(const Eina_Value_Type *type __UNUSED__, void *mem)
264{
265 unsigned short *tmem = mem;
266 *tmem = 0;
267 return EINA_TRUE;
268}
269
270static Eina_Bool
271_eina_value_type_ushort_flush(const Eina_Value_Type *type __UNUSED__, void *mem __UNUSED__)
272{
273 return EINA_TRUE;
274}
275
276static Eina_Bool
277_eina_value_type_ushort_copy(const Eina_Value_Type *type __UNUSED__, const void *src, void *dst)
278{
279 const unsigned short *s = src;
280 unsigned short *d = dst;
281 *d = *s;
282 return EINA_TRUE;
283}
284
285static int
286_eina_value_type_ushort_compare(const Eina_Value_Type *type __UNUSED__, const void *a, const void *b)
287{
288 const unsigned short *ta = a, *tb = b;
289 if (*ta < *tb)
290 return -1;
291 else if (*ta > *tb)
292 return 1;
293 return 0;
294}
295
296static Eina_Bool
297_eina_value_type_ushort_convert_to(const Eina_Value_Type *type __UNUSED__, const Eina_Value_Type *convert, const void *type_mem, void *convert_mem)
298{
299 const unsigned short v = *(const unsigned short *)type_mem;
300
301 eina_error_set(0);
302
303 if (convert == EINA_VALUE_TYPE_UCHAR)
304 {
305 unsigned char other_mem = v;
306 if (EINA_UNLIKELY(v > eina_value_uchar_max))
307 return EINA_FALSE;
308 return eina_value_type_pset(convert, convert_mem, &other_mem);
309 }
310 else if (convert == EINA_VALUE_TYPE_USHORT)
311 {
312 unsigned short other_mem = v;
313 return eina_value_type_pset(convert, convert_mem, &other_mem);
314 }
315 else if (convert == EINA_VALUE_TYPE_UINT)
316 {
317 unsigned int other_mem = v;
318 return eina_value_type_pset(convert, convert_mem, &other_mem);
319 }
320 else if (convert == EINA_VALUE_TYPE_ULONG)
321 {
322 unsigned long other_mem = v;
323 return eina_value_type_pset(convert, convert_mem, &other_mem);
324 }
325 else if (convert == EINA_VALUE_TYPE_UINT64)
326 {
327 uint64_t other_mem = v;
328 return eina_value_type_pset(convert, convert_mem, &other_mem);
329 }
330 else if (convert == EINA_VALUE_TYPE_CHAR)
331 {
332 char other_mem = v;
333 if (EINA_UNLIKELY(v > (unsigned char)eina_value_char_max))
334 return EINA_FALSE;
335 return eina_value_type_pset(convert, convert_mem, &other_mem);
336 }
337 else if (convert == EINA_VALUE_TYPE_SHORT)
338 {
339 short other_mem = v;
340 if (EINA_UNLIKELY(v > (unsigned short)eina_value_short_max))
341 return EINA_FALSE;
342 return eina_value_type_pset(convert, convert_mem, &other_mem);
343 }
344 else if (convert == EINA_VALUE_TYPE_INT)
345 {
346 int other_mem = v;
347 return eina_value_type_pset(convert, convert_mem, &other_mem);
348 }
349 else if (convert == EINA_VALUE_TYPE_LONG)
350 {
351 long other_mem = v;
352 return eina_value_type_pset(convert, convert_mem, &other_mem);
353 }
354 else if (convert == EINA_VALUE_TYPE_INT64)
355 {
356 int64_t other_mem = v;
357 return eina_value_type_pset(convert, convert_mem, &other_mem);
358 }
359 else if (convert == EINA_VALUE_TYPE_FLOAT)
360 {
361 float other_mem = v;
362 return eina_value_type_pset(convert, convert_mem, &other_mem);
363 }
364 else if (convert == EINA_VALUE_TYPE_DOUBLE)
365 {
366 double other_mem = v;
367 return eina_value_type_pset(convert, convert_mem, &other_mem);
368 }
369 else if (convert == EINA_VALUE_TYPE_STRINGSHARE ||
370 convert == EINA_VALUE_TYPE_STRING)
371 {
372 const char *other_mem;
373 char buf[64];
374 snprintf(buf, sizeof(buf), "%hu", v);
375 other_mem = buf; /* required due &buf == buf */
376 return eina_value_type_pset(convert, convert_mem, &other_mem);
377 }
378 else
379 {
380 eina_error_set(EINA_ERROR_VALUE_FAILED);
381 return EINA_FALSE;
382 }
383
384 return EINA_TRUE;
385}
386
387static Eina_Bool
388_eina_value_type_ushort_vset(const Eina_Value_Type *type __UNUSED__, void *mem, va_list args)
389{
390 unsigned short *tmem = mem;
391 *tmem = va_arg(args, unsigned int); /* short is promoted to int for va_arg */
392 return EINA_TRUE;
393}
394
395static Eina_Bool
396_eina_value_type_ushort_pset(const Eina_Value_Type *type __UNUSED__, void *mem, const void *ptr)
397{
398 unsigned short *tmem = mem;
399 const unsigned short *p = ptr;
400 *tmem = *p;
401 return EINA_TRUE;
402}
403
404static Eina_Bool
405_eina_value_type_ushort_pget(const Eina_Value_Type *type __UNUSED__, const void *mem, void *ptr)
406{
407 const unsigned short *tmem = mem;
408 unsigned short *p = ptr;
409 *p = *tmem;
410 return EINA_TRUE;
411}
412
413static Eina_Bool
414_eina_value_type_uint_setup(const Eina_Value_Type *type __UNUSED__, void *mem)
415{
416 unsigned int *tmem = mem;
417 *tmem = 0;
418 return EINA_TRUE;
419}
420
421static Eina_Bool
422_eina_value_type_uint_flush(const Eina_Value_Type *type __UNUSED__, void *mem __UNUSED__)
423{
424 return EINA_TRUE;
425}
426
427static Eina_Bool
428_eina_value_type_uint_copy(const Eina_Value_Type *type __UNUSED__, const void *src, void *dst)
429{
430 const unsigned int *s = src;
431 unsigned int *d = dst;
432 *d = *s;
433 return EINA_TRUE;
434}
435
436static int
437_eina_value_type_uint_compare(const Eina_Value_Type *type __UNUSED__, const void *a, const void *b)
438{
439 const unsigned int *ta = a, *tb = b;
440 if (*ta < *tb)
441 return -1;
442 else if (*ta > *tb)
443 return 1;
444 return 0;
445}
446
447static Eina_Bool
448_eina_value_type_uint_convert_to(const Eina_Value_Type *type __UNUSED__, const Eina_Value_Type *convert, const void *type_mem, void *convert_mem)
449{
450 const unsigned int v = *(const unsigned int *)type_mem;
451
452 eina_error_set(0);
453
454 if (convert == EINA_VALUE_TYPE_UCHAR)
455 {
456 unsigned char other_mem = v;
457 if (EINA_UNLIKELY(v > eina_value_uchar_max))
458 return EINA_FALSE;
459 return eina_value_type_pset(convert, convert_mem, &other_mem);
460 }
461 else if (convert == EINA_VALUE_TYPE_USHORT)
462 {
463 unsigned short other_mem = v;
464 if (EINA_UNLIKELY(v > eina_value_ushort_max))
465 return EINA_FALSE;
466 return eina_value_type_pset(convert, convert_mem, &other_mem);
467 }
468 else if (convert == EINA_VALUE_TYPE_UINT)
469 {
470 unsigned int other_mem = v;
471 return eina_value_type_pset(convert, convert_mem, &other_mem);
472 }
473 else if (convert == EINA_VALUE_TYPE_ULONG)
474 {
475 unsigned long other_mem = v;
476 return eina_value_type_pset(convert, convert_mem, &other_mem);
477 }
478 else if (convert == EINA_VALUE_TYPE_UINT64)
479 {
480 uint64_t other_mem = v;
481 return eina_value_type_pset(convert, convert_mem, &other_mem);
482 }
483 else if (convert == EINA_VALUE_TYPE_CHAR)
484 {
485 char other_mem = v;
486 if (EINA_UNLIKELY(v > (unsigned char)eina_value_char_max))
487 return EINA_FALSE;
488 return eina_value_type_pset(convert, convert_mem, &other_mem);
489 }
490 else if (convert == EINA_VALUE_TYPE_SHORT)
491 {
492 short other_mem = v;
493 if (EINA_UNLIKELY(v > (unsigned short)eina_value_short_max))
494 return EINA_FALSE;
495 return eina_value_type_pset(convert, convert_mem, &other_mem);
496 }
497 else if (convert == EINA_VALUE_TYPE_INT)
498 {
499 int other_mem = v;
500 if (EINA_UNLIKELY(v > (unsigned int)eina_value_int_max))
501 return EINA_FALSE;
502 return eina_value_type_pset(convert, convert_mem, &other_mem);
503 }
504 else if (convert == EINA_VALUE_TYPE_LONG)
505 {
506 long other_mem = v;
507 return eina_value_type_pset(convert, convert_mem, &other_mem);
508 }
509 else if (convert == EINA_VALUE_TYPE_INT64)
510 {
511 int64_t other_mem = v;
512 return eina_value_type_pset(convert, convert_mem, &other_mem);
513 }
514 else if (convert == EINA_VALUE_TYPE_FLOAT)
515 {
516 float other_mem = v;
517 return eina_value_type_pset(convert, convert_mem, &other_mem);
518 }
519 else if (convert == EINA_VALUE_TYPE_DOUBLE)
520 {
521 double other_mem = v;
522 return eina_value_type_pset(convert, convert_mem, &other_mem);
523 }
524 else if (convert == EINA_VALUE_TYPE_STRINGSHARE ||
525 convert == EINA_VALUE_TYPE_STRING)
526 {
527 const char *other_mem;
528 char buf[64];
529 snprintf(buf, sizeof(buf), "%u", v);
530 other_mem = buf; /* required due &buf == buf */
531 return eina_value_type_pset(convert, convert_mem, &other_mem);
532 }
533 else
534 {
535 eina_error_set(EINA_ERROR_VALUE_FAILED);
536 return EINA_FALSE;
537 }
538
539 return EINA_TRUE;
540}
541
542static Eina_Bool
543_eina_value_type_uint_vset(const Eina_Value_Type *type __UNUSED__, void *mem, va_list args)
544{
545 unsigned int *tmem = mem;
546 *tmem = va_arg(args, unsigned int);
547 return EINA_TRUE;
548}
549
550static Eina_Bool
551_eina_value_type_uint_pset(const Eina_Value_Type *type __UNUSED__, void *mem, const void *ptr)
552{
553 unsigned int *tmem = mem;
554 const unsigned int *p = ptr;
555 *tmem = *p;
556 return EINA_TRUE;
557}
558
559static Eina_Bool
560_eina_value_type_uint_pget(const Eina_Value_Type *type __UNUSED__, const void *mem, void *ptr)
561{
562 const unsigned int *tmem = mem;
563 unsigned int *p = ptr;
564 *p = *tmem;
565 return EINA_TRUE;
566}
567
568static Eina_Bool
569_eina_value_type_ulong_setup(const Eina_Value_Type *type __UNUSED__, void *mem)
570{
571 unsigned long *tmem = mem;
572 *tmem = 0;
573 return EINA_TRUE;
574}
575
576static Eina_Bool
577_eina_value_type_ulong_flush(const Eina_Value_Type *type __UNUSED__, void *mem __UNUSED__)
578{
579 return EINA_TRUE;
580}
581
582static Eina_Bool
583_eina_value_type_ulong_copy(const Eina_Value_Type *type __UNUSED__, const void *src, void *dst)
584{
585 const unsigned long *s = src;
586 unsigned long *d = dst;
587 *d = *s;
588 return EINA_TRUE;
589}
590
591static int
592_eina_value_type_ulong_compare(const Eina_Value_Type *type __UNUSED__, const void *a, const void *b)
593{
594 const unsigned long *ta = a, *tb = b;
595 if (*ta < *tb)
596 return -1;
597 else if (*ta > *tb)
598 return 1;
599 return 0;
600}
601
602static Eina_Bool
603_eina_value_type_ulong_convert_to(const Eina_Value_Type *type __UNUSED__, const Eina_Value_Type *convert, const void *type_mem, void *convert_mem)
604{
605 const unsigned long v = *(const unsigned long *)type_mem;
606
607 eina_error_set(0);
608
609 if (convert == EINA_VALUE_TYPE_UCHAR)
610 {
611 unsigned char other_mem = v;
612 if (EINA_UNLIKELY(v > eina_value_uchar_max))
613 return EINA_FALSE;
614 return eina_value_type_pset(convert, convert_mem, &other_mem);
615 }
616 else if (convert == EINA_VALUE_TYPE_USHORT)
617 {
618 unsigned short other_mem = v;
619 if (EINA_UNLIKELY(v > eina_value_ushort_max))
620 return EINA_FALSE;
621 return eina_value_type_pset(convert, convert_mem, &other_mem);
622 }
623 else if (convert == EINA_VALUE_TYPE_UINT)
624 {
625 unsigned int other_mem = v;
626 if (EINA_UNLIKELY(v > eina_value_uint_max))
627 return EINA_FALSE;
628 return eina_value_type_pset(convert, convert_mem, &other_mem);
629 }
630 else if (convert == EINA_VALUE_TYPE_ULONG)
631 {
632 unsigned long other_mem = v;
633 return eina_value_type_pset(convert, convert_mem, &other_mem);
634 }
635 else if (convert == EINA_VALUE_TYPE_UINT64)
636 {
637 uint64_t other_mem = v;
638 return eina_value_type_pset(convert, convert_mem, &other_mem);
639 }
640 else if (convert == EINA_VALUE_TYPE_CHAR)
641 {
642 char other_mem = v;
643 if (EINA_UNLIKELY(v > (unsigned char)eina_value_char_max))
644 return EINA_FALSE;
645 return eina_value_type_pset(convert, convert_mem, &other_mem);
646 }
647 else if (convert == EINA_VALUE_TYPE_SHORT)
648 {
649 short other_mem = v;
650 if (EINA_UNLIKELY(v > (unsigned short)eina_value_short_max))
651 return EINA_FALSE;
652 return eina_value_type_pset(convert, convert_mem, &other_mem);
653 }
654 else if (convert == EINA_VALUE_TYPE_INT)
655 {
656 int other_mem = v;
657 if (EINA_UNLIKELY(v > (unsigned int)eina_value_int_max))
658 return EINA_FALSE;
659 return eina_value_type_pset(convert, convert_mem, &other_mem);
660 }
661 else if (convert == EINA_VALUE_TYPE_LONG)
662 {
663 long other_mem = v;
664 if (EINA_UNLIKELY(v > (unsigned long)eina_value_long_max))
665 return EINA_FALSE;
666 return eina_value_type_pset(convert, convert_mem, &other_mem);
667 }
668 else if (convert == EINA_VALUE_TYPE_INT64)
669 {
670 int64_t other_mem = v;
671 return eina_value_type_pset(convert, convert_mem, &other_mem);
672 }
673 else if (convert == EINA_VALUE_TYPE_FLOAT)
674 {
675 float other_mem = v;
676 return eina_value_type_pset(convert, convert_mem, &other_mem);
677 }
678 else if (convert == EINA_VALUE_TYPE_DOUBLE)
679 {
680 double other_mem = v;
681 return eina_value_type_pset(convert, convert_mem, &other_mem);
682 }
683 else if (convert == EINA_VALUE_TYPE_STRINGSHARE ||
684 convert == EINA_VALUE_TYPE_STRING)
685 {
686 const char *other_mem;
687 char buf[64];
688 snprintf(buf, sizeof(buf), "%lu", v);
689 other_mem = buf; /* required due &buf == buf */
690 return eina_value_type_pset(convert, convert_mem, &other_mem);
691 }
692 else
693 {
694 eina_error_set(EINA_ERROR_VALUE_FAILED);
695 return EINA_FALSE;
696 }
697
698 return EINA_TRUE;
699}
700
701static Eina_Bool
702_eina_value_type_ulong_vset(const Eina_Value_Type *type __UNUSED__, void *mem, va_list args)
703{
704 unsigned long *tmem = mem;
705 *tmem = va_arg(args, unsigned long);
706 return EINA_TRUE;
707}
708
709static Eina_Bool
710_eina_value_type_ulong_pset(const Eina_Value_Type *type __UNUSED__, void *mem, const void *ptr)
711{
712 unsigned long *tmem = mem;
713 const unsigned long *p = ptr;
714 *tmem = *p;
715 return EINA_TRUE;
716}
717
718static Eina_Bool
719_eina_value_type_ulong_pget(const Eina_Value_Type *type __UNUSED__, const void *mem, void *ptr)
720{
721 const unsigned long *tmem = mem;
722 unsigned long *p = ptr;
723 *p = *tmem;
724 return EINA_TRUE;
725}
726
727static Eina_Bool
728_eina_value_type_uint64_setup(const Eina_Value_Type *type __UNUSED__, void *mem)
729{
730 uint64_t *tmem = mem;
731 *tmem = 0;
732 return EINA_TRUE;
733}
734
735static Eina_Bool
736_eina_value_type_uint64_flush(const Eina_Value_Type *type __UNUSED__, void *mem __UNUSED__)
737{
738 return EINA_TRUE;
739}
740
741static Eina_Bool
742_eina_value_type_uint64_copy(const Eina_Value_Type *type __UNUSED__, const void *src, void *dst)
743{
744 const uint64_t *s = src;
745 uint64_t *d = dst;
746 *d = *s;
747 return EINA_TRUE;
748}
749
750static int
751_eina_value_type_uint64_compare(const Eina_Value_Type *type __UNUSED__, const void *a, const void *b)
752{
753 const uint64_t *ta = a, *tb = b;
754 if (*ta < *tb)
755 return -1;
756 else if (*ta > *tb)
757 return 1;
758 return 0;
759}
760
761static Eina_Bool
762_eina_value_type_uint64_convert_to(const Eina_Value_Type *type __UNUSED__, const Eina_Value_Type *convert, const void *type_mem, void *convert_mem)
763{
764 const uint64_t v = *(const uint64_t *)type_mem;
765
766 eina_error_set(0);
767
768 if (convert == EINA_VALUE_TYPE_UCHAR)
769 {
770 unsigned char other_mem = v;
771 if (EINA_UNLIKELY(v > eina_value_uchar_max))
772 return EINA_FALSE;
773 return eina_value_type_pset(convert, convert_mem, &other_mem);
774 }
775 else if (convert == EINA_VALUE_TYPE_USHORT)
776 {
777 unsigned short other_mem = v;
778 if (EINA_UNLIKELY(v > eina_value_ushort_max))
779 return EINA_FALSE;
780 return eina_value_type_pset(convert, convert_mem, &other_mem);
781 }
782 else if (convert == EINA_VALUE_TYPE_UINT)
783 {
784 unsigned int other_mem = v;
785 if (EINA_UNLIKELY(v > eina_value_uint_max))
786 return EINA_FALSE;
787 return eina_value_type_pset(convert, convert_mem, &other_mem);
788 }
789 else if (convert == EINA_VALUE_TYPE_ULONG)
790 {
791 unsigned long other_mem = v;
792 if (EINA_UNLIKELY((sizeof(other_mem) != sizeof(v)) &&
793 (v > eina_value_ulong_max)))
794 return EINA_FALSE;
795 return eina_value_type_pset(convert, convert_mem, &other_mem);
796 }
797 else if (convert == EINA_VALUE_TYPE_UINT64)
798 {
799 uint64_t other_mem = v;
800 return eina_value_type_pset(convert, convert_mem, &other_mem);
801 }
802 else if (convert == EINA_VALUE_TYPE_CHAR)
803 {
804 char other_mem = v;
805 if (EINA_UNLIKELY(v > (unsigned char)eina_value_char_max))
806 return EINA_FALSE;
807 return eina_value_type_pset(convert, convert_mem, &other_mem);
808 }
809 else if (convert == EINA_VALUE_TYPE_SHORT)
810 {
811 short other_mem = v;
812 if (EINA_UNLIKELY(v > (unsigned short)eina_value_short_max))
813 return EINA_FALSE;
814 return eina_value_type_pset(convert, convert_mem, &other_mem);
815 }
816 else if (convert == EINA_VALUE_TYPE_INT)
817 {
818 int other_mem = v;
819 if (EINA_UNLIKELY(v > (unsigned int)eina_value_int_max))
820 return EINA_FALSE;
821 return eina_value_type_pset(convert, convert_mem, &other_mem);
822 }
823 else if (convert == EINA_VALUE_TYPE_LONG)
824 {
825 long other_mem = v;
826 if (EINA_UNLIKELY(v > (unsigned long)eina_value_long_max))
827 return EINA_FALSE;
828 return eina_value_type_pset(convert, convert_mem, &other_mem);
829 }
830 else if (convert == EINA_VALUE_TYPE_INT64)
831 {
832 int64_t other_mem = v;
833 if (EINA_UNLIKELY(v > (uint64_t)eina_value_int64_max))
834 return EINA_FALSE;
835 return eina_value_type_pset(convert, convert_mem, &other_mem);
836 }
837 else if (convert == EINA_VALUE_TYPE_FLOAT)
838 {
839 float other_mem = v;
840 return eina_value_type_pset(convert, convert_mem, &other_mem);
841 }
842 else if (convert == EINA_VALUE_TYPE_DOUBLE)
843 {
844 double other_mem = v;
845 return eina_value_type_pset(convert, convert_mem, &other_mem);
846 }
847 else if (convert == EINA_VALUE_TYPE_STRINGSHARE ||
848 convert == EINA_VALUE_TYPE_STRING)
849 {
850 const char *other_mem;
851 char buf[64];
852 snprintf(buf, sizeof(buf), "%"PRIu64, v);
853 other_mem = buf; /* required due &buf == buf */
854 return eina_value_type_pset(convert, convert_mem, &other_mem);
855 }
856 else
857 {
858 eina_error_set(EINA_ERROR_VALUE_FAILED);
859 return EINA_FALSE;
860 }
861
862 return EINA_TRUE;
863}
864
865static Eina_Bool
866_eina_value_type_uint64_vset(const Eina_Value_Type *type __UNUSED__, void *mem, va_list args)
867{
868 uint64_t *tmem = mem;
869 *tmem = va_arg(args, uint64_t);
870 return EINA_TRUE;
871}
872
873static Eina_Bool
874_eina_value_type_uint64_pset(const Eina_Value_Type *type __UNUSED__, void *mem, const void *ptr)
875{
876 uint64_t *tmem = mem;
877 const uint64_t *p = ptr;
878 *tmem = *p;
879 return EINA_TRUE;
880}
881
882static Eina_Bool
883_eina_value_type_uint64_pget(const Eina_Value_Type *type __UNUSED__, const void *mem, void *ptr)
884{
885 const uint64_t *tmem = mem;
886 uint64_t *p = ptr;
887 *p = *tmem;
888 return EINA_TRUE;
889}
890
891static Eina_Bool
892_eina_value_type_char_setup(const Eina_Value_Type *type __UNUSED__, void *mem)
893{
894 char *tmem = mem;
895 *tmem = 0;
896 return EINA_TRUE;
897}
898
899static Eina_Bool
900_eina_value_type_char_flush(const Eina_Value_Type *type __UNUSED__, void *mem __UNUSED__)
901{
902 return EINA_TRUE;
903}
904
905static Eina_Bool
906_eina_value_type_char_copy(const Eina_Value_Type *type __UNUSED__, const void *src, void *dst)
907{
908 const char *s = src;
909 char *d = dst;
910 *d = *s;
911 return EINA_TRUE;
912}
913
914static int
915_eina_value_type_char_compare(const Eina_Value_Type *type __UNUSED__, const void *a, const void *b)
916{
917 const char *ta = a, *tb = b;
918 if (*ta < *tb)
919 return -1;
920 else if (*ta > *tb)
921 return 1;
922 return 0;
923}
924
925static Eina_Bool
926_eina_value_type_char_convert_to(const Eina_Value_Type *type __UNUSED__, const Eina_Value_Type *convert, const void *type_mem, void *convert_mem)
927{
928 const signed char v = *(const signed char *)type_mem;
929
930 eina_error_set(0);
931
932 if (convert == EINA_VALUE_TYPE_UCHAR)
933 {
934 unsigned char other_mem = v;
935 if (EINA_UNLIKELY(v < 0))
936 return EINA_FALSE;
937 return eina_value_type_pset(convert, convert_mem, &other_mem);
938 }
939 else if (convert == EINA_VALUE_TYPE_USHORT)
940 {
941 unsigned short other_mem = v;
942 if (EINA_UNLIKELY(v < 0))
943 return EINA_FALSE;
944 return eina_value_type_pset(convert, convert_mem, &other_mem);
945 }
946 else if (convert == EINA_VALUE_TYPE_UINT)
947 {
948 unsigned int other_mem = v;
949 if (EINA_UNLIKELY(v < 0))
950 return EINA_FALSE;
951 return eina_value_type_pset(convert, convert_mem, &other_mem);
952 }
953 else if (convert == EINA_VALUE_TYPE_ULONG)
954 {
955 unsigned long other_mem = v;
956 if (EINA_UNLIKELY(v < 0))
957 return EINA_FALSE;
958 return eina_value_type_pset(convert, convert_mem, &other_mem);
959 }
960 else if (convert == EINA_VALUE_TYPE_UINT64)
961 {
962 uint64_t other_mem = v;
963 if (EINA_UNLIKELY(v < 0))
964 return EINA_FALSE;
965 return eina_value_type_pset(convert, convert_mem, &other_mem);
966 }
967 else if (convert == EINA_VALUE_TYPE_CHAR)
968 {
969 char other_mem = v;
970 return eina_value_type_pset(convert, convert_mem, &other_mem);
971 }
972 else if (convert == EINA_VALUE_TYPE_SHORT)
973 {
974 short other_mem = v;
975 return eina_value_type_pset(convert, convert_mem, &other_mem);
976 }
977 else if (convert == EINA_VALUE_TYPE_INT)
978 {
979 int other_mem = v;
980 return eina_value_type_pset(convert, convert_mem, &other_mem);
981 }
982 else if (convert == EINA_VALUE_TYPE_LONG)
983 {
984 long other_mem = v;
985 return eina_value_type_pset(convert, convert_mem, &other_mem);
986 }
987 else if (convert == EINA_VALUE_TYPE_INT64)
988 {
989 int64_t other_mem = v;
990 return eina_value_type_pset(convert, convert_mem, &other_mem);
991 }
992 else if (convert == EINA_VALUE_TYPE_FLOAT)
993 {
994 float other_mem = v;
995 return eina_value_type_pset(convert, convert_mem, &other_mem);
996 }
997 else if (convert == EINA_VALUE_TYPE_DOUBLE)
998 {
999 double other_mem = v;
1000 return eina_value_type_pset(convert, convert_mem, &other_mem);
1001 }
1002 else if (convert == EINA_VALUE_TYPE_STRINGSHARE ||
1003 convert == EINA_VALUE_TYPE_STRING)
1004 {
1005 const char *other_mem;
1006 char buf[64];
1007 snprintf(buf, sizeof(buf), "%hhd", v);
1008 other_mem = buf; /* required due &buf == buf */
1009 return eina_value_type_pset(convert, convert_mem, &other_mem);
1010 }
1011 else
1012 {
1013 eina_error_set(EINA_ERROR_VALUE_FAILED);
1014 return EINA_FALSE;
1015 }
1016
1017 return EINA_TRUE;
1018}
1019
1020static Eina_Bool
1021_eina_value_type_char_vset(const Eina_Value_Type *type __UNUSED__, void *mem, va_list args)
1022{
1023 char *tmem = mem;
1024 *tmem = va_arg(args, int); /* char is promoted to int for va_arg */
1025 return EINA_TRUE;
1026}
1027
1028static Eina_Bool
1029_eina_value_type_char_pset(const Eina_Value_Type *type __UNUSED__, void *mem, const void *ptr)
1030{
1031 char *tmem = mem;
1032 const char *p = ptr;
1033 *tmem = *p;
1034 return EINA_TRUE;
1035}
1036
1037static Eina_Bool
1038_eina_value_type_char_pget(const Eina_Value_Type *type __UNUSED__, const void *mem, void *ptr)
1039{
1040 const char *tmem = mem;
1041 char *p = ptr;
1042 *p = *tmem;
1043 return EINA_TRUE;
1044}
1045
1046static Eina_Bool
1047_eina_value_type_short_setup(const Eina_Value_Type *type __UNUSED__, void *mem)
1048{
1049 short *tmem = mem;
1050 *tmem = 0;
1051 return EINA_TRUE;
1052}
1053
1054static Eina_Bool
1055_eina_value_type_short_flush(const Eina_Value_Type *type __UNUSED__, void *mem __UNUSED__)
1056{
1057 return EINA_TRUE;
1058}
1059
1060static Eina_Bool
1061_eina_value_type_short_copy(const Eina_Value_Type *type __UNUSED__, const void *src, void *dst)
1062{
1063 const short *s = src;
1064 short *d = dst;
1065 *d = *s;
1066 return EINA_TRUE;
1067}
1068
1069static int
1070_eina_value_type_short_compare(const Eina_Value_Type *type __UNUSED__, const void *a, const void *b)
1071{
1072 const short *ta = a, *tb = b;
1073 if (*ta < *tb)
1074 return -1;
1075 else if (*ta > *tb)
1076 return 1;
1077 return 0;
1078}
1079
1080static Eina_Bool
1081_eina_value_type_short_convert_to(const Eina_Value_Type *type __UNUSED__, const Eina_Value_Type *convert, const void *type_mem, void *convert_mem)
1082{
1083 const short v = *(const short *)type_mem;
1084
1085 eina_error_set(0);
1086
1087 if (convert == EINA_VALUE_TYPE_UCHAR)
1088 {
1089 unsigned char other_mem = v;
1090 if (EINA_UNLIKELY(v < 0))
1091 return EINA_FALSE;
1092 if (EINA_UNLIKELY(v > eina_value_uchar_max))
1093 return EINA_FALSE;
1094 return eina_value_type_pset(convert, convert_mem, &other_mem);
1095 }
1096 else if (convert == EINA_VALUE_TYPE_USHORT)
1097 {
1098 unsigned short other_mem = v;
1099 if (EINA_UNLIKELY(v < 0))
1100 return EINA_FALSE;
1101 return eina_value_type_pset(convert, convert_mem, &other_mem);
1102 }
1103 else if (convert == EINA_VALUE_TYPE_UINT)
1104 {
1105 unsigned int other_mem = v;
1106 if (EINA_UNLIKELY(v < 0))
1107 return EINA_FALSE;
1108 return eina_value_type_pset(convert, convert_mem, &other_mem);
1109 }
1110 else if (convert == EINA_VALUE_TYPE_ULONG)
1111 {
1112 unsigned long other_mem = v;
1113 if (EINA_UNLIKELY(v < 0))
1114 return EINA_FALSE;
1115 return eina_value_type_pset(convert, convert_mem, &other_mem);
1116 }
1117 else if (convert == EINA_VALUE_TYPE_UINT64)
1118 {
1119 uint64_t other_mem = v;
1120 if (EINA_UNLIKELY(v < 0))
1121 return EINA_FALSE;
1122 return eina_value_type_pset(convert, convert_mem, &other_mem);
1123 }
1124 else if (convert == EINA_VALUE_TYPE_CHAR)
1125 {
1126 char other_mem = v;
1127 if (EINA_UNLIKELY(v < eina_value_char_min))
1128 return EINA_FALSE;
1129 if (EINA_UNLIKELY(v > eina_value_char_max))
1130 return EINA_FALSE;
1131 return eina_value_type_pset(convert, convert_mem, &other_mem);
1132 }
1133 else if (convert == EINA_VALUE_TYPE_SHORT)
1134 {
1135 short other_mem = v;
1136 return eina_value_type_pset(convert, convert_mem, &other_mem);
1137 }
1138 else if (convert == EINA_VALUE_TYPE_INT)
1139 {
1140 int other_mem = v;
1141 return eina_value_type_pset(convert, convert_mem, &other_mem);
1142 }
1143 else if (convert == EINA_VALUE_TYPE_LONG)
1144 {
1145 long other_mem = v;
1146 return eina_value_type_pset(convert, convert_mem, &other_mem);
1147 }
1148 else if (convert == EINA_VALUE_TYPE_INT64)
1149 {
1150 int64_t other_mem = v;
1151 return eina_value_type_pset(convert, convert_mem, &other_mem);
1152 }
1153 else if (convert == EINA_VALUE_TYPE_FLOAT)
1154 {
1155 float other_mem = v;
1156 return eina_value_type_pset(convert, convert_mem, &other_mem);
1157 }
1158 else if (convert == EINA_VALUE_TYPE_DOUBLE)
1159 {
1160 double other_mem = v;
1161 return eina_value_type_pset(convert, convert_mem, &other_mem);
1162 }
1163 else if (convert == EINA_VALUE_TYPE_STRINGSHARE ||
1164 convert == EINA_VALUE_TYPE_STRING)
1165 {
1166 const char *other_mem;
1167 char buf[64];
1168 snprintf(buf, sizeof(buf), "%hd", v);
1169 other_mem = buf; /* required due &buf == buf */
1170 return eina_value_type_pset(convert, convert_mem, &other_mem);
1171 }
1172 else
1173 {
1174 eina_error_set(EINA_ERROR_VALUE_FAILED);
1175 return EINA_FALSE;
1176 }
1177
1178 return EINA_TRUE;
1179}
1180
1181static Eina_Bool
1182_eina_value_type_short_vset(const Eina_Value_Type *type __UNUSED__, void *mem, va_list args)
1183{
1184 short *tmem = mem;
1185 *tmem = va_arg(args, int); /* short int is promoted to int for va_arg */
1186 return EINA_TRUE;
1187}
1188
1189static Eina_Bool
1190_eina_value_type_short_pset(const Eina_Value_Type *type __UNUSED__, void *mem, const void *ptr)
1191{
1192 short *tmem = mem;
1193 const short *p = ptr;
1194 *tmem = *p;
1195 return EINA_TRUE;
1196}
1197
1198static Eina_Bool
1199_eina_value_type_short_pget(const Eina_Value_Type *type __UNUSED__, const void *mem, void *ptr)
1200{
1201 const short *tmem = mem;
1202 short *p = ptr;
1203 *p = *tmem;
1204 return EINA_TRUE;
1205}
1206
1207static Eina_Bool
1208_eina_value_type_int_setup(const Eina_Value_Type *type __UNUSED__, void *mem)
1209{
1210 int *tmem = mem;
1211 *tmem = 0;
1212 return EINA_TRUE;
1213}
1214
1215static Eina_Bool
1216_eina_value_type_int_flush(const Eina_Value_Type *type __UNUSED__, void *mem __UNUSED__)
1217{
1218 return EINA_TRUE;
1219}
1220
1221static Eina_Bool
1222_eina_value_type_int_copy(const Eina_Value_Type *type __UNUSED__, const void *src, void *dst)
1223{
1224 const int *s = src;
1225 int *d = dst;
1226 *d = *s;
1227 return EINA_TRUE;
1228}
1229
1230static int
1231_eina_value_type_int_compare(const Eina_Value_Type *type __UNUSED__, const void *a, const void *b)
1232{
1233 const int *ta = a, *tb = b;
1234 if (*ta < *tb)
1235 return -1;
1236 else if (*ta > *tb)
1237 return 1;
1238 return 0;
1239}
1240
1241static Eina_Bool
1242_eina_value_type_int_convert_to(const Eina_Value_Type *type __UNUSED__, const Eina_Value_Type *convert, const void *type_mem, void *convert_mem)
1243{
1244 const int v = *(const int *)type_mem;
1245
1246 eina_error_set(0);
1247
1248 if (convert == EINA_VALUE_TYPE_UCHAR)
1249 {
1250 unsigned char other_mem = v;
1251 if (EINA_UNLIKELY(v < 0))
1252 return EINA_FALSE;
1253 if (EINA_UNLIKELY(v > eina_value_uchar_max))
1254 return EINA_FALSE;
1255 return eina_value_type_pset(convert, convert_mem, &other_mem);
1256 }
1257 else if (convert == EINA_VALUE_TYPE_USHORT)
1258 {
1259 unsigned short other_mem = v;
1260 if (EINA_UNLIKELY(v < 0))
1261 return EINA_FALSE;
1262 if (EINA_UNLIKELY(v > eina_value_ushort_max))
1263 return EINA_FALSE;
1264 return eina_value_type_pset(convert, convert_mem, &other_mem);
1265 }
1266 else if (convert == EINA_VALUE_TYPE_UINT)
1267 {
1268 unsigned int other_mem = v;
1269 if (EINA_UNLIKELY(v < 0))
1270 return EINA_FALSE;
1271 return eina_value_type_pset(convert, convert_mem, &other_mem);
1272 }
1273 else if (convert == EINA_VALUE_TYPE_ULONG)
1274 {
1275 unsigned long other_mem = v;
1276 if (EINA_UNLIKELY(v < 0))
1277 return EINA_FALSE;
1278 return eina_value_type_pset(convert, convert_mem, &other_mem);
1279 }
1280 else if (convert == EINA_VALUE_TYPE_UINT64)
1281 {
1282 uint64_t other_mem = v;
1283 if (EINA_UNLIKELY(v < 0))
1284 return EINA_FALSE;
1285 return eina_value_type_pset(convert, convert_mem, &other_mem);
1286 }
1287 else if (convert == EINA_VALUE_TYPE_CHAR)
1288 {
1289 char other_mem = v;
1290 if (EINA_UNLIKELY(v < eina_value_char_min))
1291 return EINA_FALSE;
1292 if (EINA_UNLIKELY(v > eina_value_char_max))
1293 return EINA_FALSE;
1294 return eina_value_type_pset(convert, convert_mem, &other_mem);
1295 }
1296 else if (convert == EINA_VALUE_TYPE_SHORT)
1297 {
1298 short other_mem = v;
1299 if (EINA_UNLIKELY(v < eina_value_short_min))
1300 return EINA_FALSE;
1301 if (EINA_UNLIKELY(v > eina_value_short_max))
1302 return EINA_FALSE;
1303 return eina_value_type_pset(convert, convert_mem, &other_mem);
1304 }
1305 else if (convert == EINA_VALUE_TYPE_INT)
1306 {
1307 int other_mem = v;
1308 return eina_value_type_pset(convert, convert_mem, &other_mem);
1309 }
1310 else if (convert == EINA_VALUE_TYPE_LONG)
1311 {
1312 long other_mem = v;
1313 return eina_value_type_pset(convert, convert_mem, &other_mem);
1314 }
1315 else if (convert == EINA_VALUE_TYPE_INT64)
1316 {
1317 int64_t other_mem = v;
1318 return eina_value_type_pset(convert, convert_mem, &other_mem);
1319 }
1320 else if (convert == EINA_VALUE_TYPE_FLOAT)
1321 {
1322 float other_mem = v;
1323 return eina_value_type_pset(convert, convert_mem, &other_mem);
1324 }
1325 else if (convert == EINA_VALUE_TYPE_DOUBLE)
1326 {
1327 double other_mem = v;
1328 return eina_value_type_pset(convert, convert_mem, &other_mem);
1329 }
1330 else if (convert == EINA_VALUE_TYPE_STRINGSHARE ||
1331 convert == EINA_VALUE_TYPE_STRING)
1332 {
1333 const char *other_mem;
1334 char buf[64];
1335 snprintf(buf, sizeof(buf), "%d", v);
1336 other_mem = buf; /* required due &buf == buf */
1337 return eina_value_type_pset(convert, convert_mem, &other_mem);
1338 }
1339 else
1340 {
1341 eina_error_set(EINA_ERROR_VALUE_FAILED);
1342 return EINA_FALSE;
1343 }
1344
1345 return EINA_TRUE;
1346}
1347
1348static Eina_Bool
1349_eina_value_type_int_vset(const Eina_Value_Type *type __UNUSED__, void *mem, va_list args)
1350{
1351 int *tmem = mem;
1352 *tmem = va_arg(args, int);
1353 return EINA_TRUE;
1354}
1355
1356static Eina_Bool
1357_eina_value_type_int_pset(const Eina_Value_Type *type __UNUSED__, void *mem, const void *ptr)
1358{
1359 int *tmem = mem;
1360 const int *p = ptr;
1361 *tmem = *p;
1362 return EINA_TRUE;
1363}
1364
1365static Eina_Bool
1366_eina_value_type_int_pget(const Eina_Value_Type *type __UNUSED__, const void *mem, void *ptr)
1367{
1368 const int *tmem = mem;
1369 int *p = ptr;
1370 *p = *tmem;
1371 return EINA_TRUE;
1372}
1373
1374static Eina_Bool
1375_eina_value_type_long_setup(const Eina_Value_Type *type __UNUSED__, void *mem)
1376{
1377 long *tmem = mem;
1378 *tmem = 0;
1379 return EINA_TRUE;
1380}
1381
1382static Eina_Bool
1383_eina_value_type_long_flush(const Eina_Value_Type *type __UNUSED__, void *mem __UNUSED__)
1384{
1385 return EINA_TRUE;
1386}
1387
1388static Eina_Bool
1389_eina_value_type_long_copy(const Eina_Value_Type *type __UNUSED__, const void *src, void *dst)
1390{
1391 const long *s = src;
1392 long *d = dst;
1393 *d = *s;
1394 return EINA_TRUE;
1395}
1396
1397static int
1398_eina_value_type_long_compare(const Eina_Value_Type *type __UNUSED__, const void *a, const void *b)
1399{
1400 const long *ta = a, *tb = b;
1401 if (*ta < *tb)
1402 return -1;
1403 else if (*ta > *tb)
1404 return 1;
1405 return 0;
1406}
1407
1408static Eina_Bool
1409_eina_value_type_long_convert_to(const Eina_Value_Type *type __UNUSED__, const Eina_Value_Type *convert, const void *type_mem, void *convert_mem)
1410{
1411 const long v = *(const long *)type_mem;
1412
1413 eina_error_set(0);
1414
1415 if (convert == EINA_VALUE_TYPE_UCHAR)
1416 {
1417 unsigned char other_mem = v;
1418 if (EINA_UNLIKELY(v < 0))
1419 return EINA_FALSE;
1420 if (EINA_UNLIKELY((unsigned long) v > eina_value_uchar_max))
1421 return EINA_FALSE;
1422 return eina_value_type_pset(convert, convert_mem, &other_mem);
1423 }
1424 else if (convert == EINA_VALUE_TYPE_USHORT)
1425 {
1426 unsigned short other_mem = v;
1427 if (EINA_UNLIKELY(v < 0))
1428 return EINA_FALSE;
1429 if (EINA_UNLIKELY((unsigned long) v > eina_value_ushort_max))
1430 return EINA_FALSE;
1431 return eina_value_type_pset(convert, convert_mem, &other_mem);
1432 }
1433 else if (convert == EINA_VALUE_TYPE_UINT)
1434 {
1435 unsigned int other_mem = v;
1436 if (EINA_UNLIKELY(v < 0))
1437 return EINA_FALSE;
1438 if (EINA_UNLIKELY((unsigned long) v > eina_value_uint_max))
1439 return EINA_FALSE;
1440 return eina_value_type_pset(convert, convert_mem, &other_mem);
1441 }
1442 else if (convert == EINA_VALUE_TYPE_ULONG)
1443 {
1444 unsigned long other_mem = v;
1445 if (EINA_UNLIKELY(v < 0))
1446 return EINA_FALSE;
1447 return eina_value_type_pset(convert, convert_mem, &other_mem);
1448 }
1449 else if (convert == EINA_VALUE_TYPE_UINT64)
1450 {
1451 uint64_t other_mem = v;
1452 if (EINA_UNLIKELY(v < 0))
1453 return EINA_FALSE;
1454 return eina_value_type_pset(convert, convert_mem, &other_mem);
1455 }
1456 else if (convert == EINA_VALUE_TYPE_CHAR)
1457 {
1458 char other_mem = v;
1459 if (EINA_UNLIKELY(v < eina_value_char_min))
1460 return EINA_FALSE;
1461 if (EINA_UNLIKELY(v > eina_value_char_max))
1462 return EINA_FALSE;
1463 return eina_value_type_pset(convert, convert_mem, &other_mem);
1464 }
1465 else if (convert == EINA_VALUE_TYPE_SHORT)
1466 {
1467 short other_mem = v;
1468 if (EINA_UNLIKELY(v < eina_value_short_min))
1469 return EINA_FALSE;
1470 if (EINA_UNLIKELY(v > eina_value_short_max))
1471 return EINA_FALSE;
1472 return eina_value_type_pset(convert, convert_mem, &other_mem);
1473 }
1474 else if (convert == EINA_VALUE_TYPE_INT)
1475 {
1476 int other_mem = v;
1477 if (EINA_UNLIKELY(v < eina_value_int_min))
1478 return EINA_FALSE;
1479 if (EINA_UNLIKELY(v > eina_value_int_max))
1480 return EINA_FALSE;
1481 return eina_value_type_pset(convert, convert_mem, &other_mem);
1482 }
1483 else if (convert == EINA_VALUE_TYPE_LONG)
1484 {
1485 long other_mem = v;
1486 return eina_value_type_pset(convert, convert_mem, &other_mem);
1487 }
1488 else if (convert == EINA_VALUE_TYPE_INT64)
1489 {
1490 int64_t other_mem = v;
1491 return eina_value_type_pset(convert, convert_mem, &other_mem);
1492 }
1493 else if (convert == EINA_VALUE_TYPE_FLOAT)
1494 {
1495 float other_mem = v;
1496 return eina_value_type_pset(convert, convert_mem, &other_mem);
1497 }
1498 else if (convert == EINA_VALUE_TYPE_DOUBLE)
1499 {
1500 double other_mem = v;
1501 return eina_value_type_pset(convert, convert_mem, &other_mem);
1502 }
1503 else if (convert == EINA_VALUE_TYPE_STRINGSHARE ||
1504 convert == EINA_VALUE_TYPE_STRING)
1505 {
1506 const char *other_mem;
1507 char buf[64];
1508 snprintf(buf, sizeof(buf), "%ld", v);
1509 other_mem = buf; /* required due &buf == buf */
1510 return eina_value_type_pset(convert, convert_mem, &other_mem);
1511 }
1512 else
1513 {
1514 eina_error_set(EINA_ERROR_VALUE_FAILED);
1515 return EINA_FALSE;
1516 }
1517
1518 return EINA_TRUE;
1519}
1520
1521static Eina_Bool
1522_eina_value_type_long_vset(const Eina_Value_Type *type __UNUSED__, void *mem, va_list args)
1523{
1524 long *tmem = mem;
1525 *tmem = va_arg(args, long);
1526 return EINA_TRUE;
1527}
1528
1529static Eina_Bool
1530_eina_value_type_long_pset(const Eina_Value_Type *type __UNUSED__, void *mem, const void *ptr)
1531{
1532 long *tmem = mem;
1533 const long *p = ptr;
1534 *tmem = *p;
1535 return EINA_TRUE;
1536}
1537
1538static Eina_Bool
1539_eina_value_type_long_pget(const Eina_Value_Type *type __UNUSED__, const void *mem, void *ptr)
1540{
1541 const long *tmem = mem;
1542 long *p = ptr;
1543 *p = *tmem;
1544 return EINA_TRUE;
1545}
1546
1547static Eina_Bool
1548_eina_value_type_int64_setup(const Eina_Value_Type *type __UNUSED__, void *mem)
1549{
1550 int64_t *tmem = mem;
1551 *tmem = 0;
1552 return EINA_TRUE;
1553}
1554
1555static Eina_Bool
1556_eina_value_type_int64_flush(const Eina_Value_Type *type __UNUSED__, void *mem __UNUSED__)
1557{
1558 return EINA_TRUE;
1559}
1560
1561static Eina_Bool
1562_eina_value_type_int64_copy(const Eina_Value_Type *type __UNUSED__, const void *src, void *dst)
1563{
1564 const int64_t *s = src;
1565 int64_t *d = dst;
1566 *d = *s;
1567 return EINA_TRUE;
1568}
1569
1570static int
1571_eina_value_type_int64_compare(const Eina_Value_Type *type __UNUSED__, const void *a, const void *b)
1572{
1573 const int64_t *ta = a, *tb = b;
1574 if (*ta < *tb)
1575 return -1;
1576 else if (*ta > *tb)
1577 return 1;
1578 return 0;
1579}
1580
1581static Eina_Bool
1582_eina_value_type_int64_convert_to(const Eina_Value_Type *type __UNUSED__, const Eina_Value_Type *convert, const void *type_mem, void *convert_mem)
1583{
1584 const int64_t v = *(const int64_t *)type_mem;
1585
1586 eina_error_set(0);
1587
1588 if (convert == EINA_VALUE_TYPE_UCHAR)
1589 {
1590 unsigned char other_mem = v;
1591 if (EINA_UNLIKELY(v < 0))
1592 return EINA_FALSE;
1593 if (EINA_UNLIKELY(v > eina_value_uchar_max))
1594 return EINA_FALSE;
1595 return eina_value_type_pset(convert, convert_mem, &other_mem);
1596 }
1597 else if (convert == EINA_VALUE_TYPE_USHORT)
1598 {
1599 unsigned short other_mem = v;
1600 if (EINA_UNLIKELY(v < 0))
1601 return EINA_FALSE;
1602 if (EINA_UNLIKELY(v > eina_value_ushort_max))
1603 return EINA_FALSE;
1604 return eina_value_type_pset(convert, convert_mem, &other_mem);
1605 }
1606 else if (convert == EINA_VALUE_TYPE_UINT)
1607 {
1608 unsigned int other_mem = v;
1609 if (EINA_UNLIKELY(v < 0))
1610 return EINA_FALSE;
1611 if (EINA_UNLIKELY(v > eina_value_uint_max))
1612 return EINA_FALSE;
1613 return eina_value_type_pset(convert, convert_mem, &other_mem);
1614 }
1615 else if (convert == EINA_VALUE_TYPE_ULONG)
1616 {
1617 unsigned long other_mem = v;
1618 if (EINA_UNLIKELY(v < 0))
1619 return EINA_FALSE;
1620 if (EINA_UNLIKELY((sizeof(other_mem) != sizeof(v)) &&
1621 (v > eina_value_ulong_max)))
1622 return EINA_FALSE;
1623 return eina_value_type_pset(convert, convert_mem, &other_mem);
1624 }
1625 else if (convert == EINA_VALUE_TYPE_UINT64)
1626 {
1627 uint64_t other_mem = v;
1628 if (EINA_UNLIKELY(v < 0))
1629 return EINA_FALSE;
1630 return eina_value_type_pset(convert, convert_mem, &other_mem);
1631 }
1632 else if (convert == EINA_VALUE_TYPE_CHAR)
1633 {
1634 char other_mem = v;
1635 if (EINA_UNLIKELY(v < eina_value_char_min))
1636 return EINA_FALSE;
1637 if (EINA_UNLIKELY(v > eina_value_char_max))
1638 return EINA_FALSE;
1639 return eina_value_type_pset(convert, convert_mem, &other_mem);
1640 }
1641 else if (convert == EINA_VALUE_TYPE_SHORT)
1642 {
1643 short other_mem = v;
1644 if (EINA_UNLIKELY(v < eina_value_short_min))
1645 return EINA_FALSE;
1646 if (EINA_UNLIKELY(v > eina_value_short_max))
1647 return EINA_FALSE;
1648 return eina_value_type_pset(convert, convert_mem, &other_mem);
1649 }
1650 else if (convert == EINA_VALUE_TYPE_INT)
1651 {
1652 int other_mem = v;
1653 if (EINA_UNLIKELY(v < eina_value_int_min))
1654 return EINA_FALSE;
1655 if (EINA_UNLIKELY(v > eina_value_int_max))
1656 return EINA_FALSE;
1657 return eina_value_type_pset(convert, convert_mem, &other_mem);
1658 }
1659 else if (convert == EINA_VALUE_TYPE_LONG)
1660 {
1661 long other_mem = v;
1662 if (EINA_UNLIKELY(v < eina_value_long_min))
1663 return EINA_FALSE;
1664 if (EINA_UNLIKELY(v > eina_value_long_max))
1665 return EINA_FALSE;
1666 return eina_value_type_pset(convert, convert_mem, &other_mem);
1667 }
1668 else if (convert == EINA_VALUE_TYPE_INT64)
1669 {
1670 int64_t other_mem = v;
1671 return eina_value_type_pset(convert, convert_mem, &other_mem);
1672 }
1673 else if (convert == EINA_VALUE_TYPE_FLOAT)
1674 {
1675 float other_mem = v;
1676 return eina_value_type_pset(convert, convert_mem, &other_mem);
1677 }
1678 else if (convert == EINA_VALUE_TYPE_DOUBLE)
1679 {
1680 double other_mem = v;
1681 return eina_value_type_pset(convert, convert_mem, &other_mem);
1682 }
1683 else if (convert == EINA_VALUE_TYPE_STRINGSHARE ||
1684 convert == EINA_VALUE_TYPE_STRING)
1685 {
1686 const char *other_mem;
1687 char buf[64];
1688 snprintf(buf, sizeof(buf), "%"PRId64, v);
1689 other_mem = buf; /* required due &buf == buf */
1690 return eina_value_type_pset(convert, convert_mem, &other_mem);
1691 }
1692 else
1693 {
1694 eina_error_set(EINA_ERROR_VALUE_FAILED);
1695 return EINA_FALSE;
1696 }
1697
1698 return EINA_TRUE;
1699}
1700
1701static Eina_Bool
1702_eina_value_type_int64_vset(const Eina_Value_Type *type __UNUSED__, void *mem, va_list args)
1703{
1704 int64_t *tmem = mem;
1705 *tmem = va_arg(args, int64_t);
1706 return EINA_TRUE;
1707}
1708
1709static Eina_Bool
1710_eina_value_type_int64_pset(const Eina_Value_Type *type __UNUSED__, void *mem, const void *ptr)
1711{
1712 int64_t *tmem = mem;
1713 const int64_t *p = ptr;
1714 *tmem = *p;
1715 return EINA_TRUE;
1716}
1717
1718static Eina_Bool
1719_eina_value_type_int64_pget(const Eina_Value_Type *type __UNUSED__, const void *mem, void *ptr)
1720{
1721 const int64_t *tmem = mem;
1722 int64_t *p = ptr;
1723 *p = *tmem;
1724 return EINA_TRUE;
1725}
1726
1727static Eina_Bool
1728_eina_value_type_float_setup(const Eina_Value_Type *type __UNUSED__, void *mem)
1729{
1730 float *tmem = mem;
1731 *tmem = 0;
1732 return EINA_TRUE;
1733}
1734
1735static Eina_Bool
1736_eina_value_type_float_flush(const Eina_Value_Type *type __UNUSED__, void *mem __UNUSED__)
1737{
1738 return EINA_TRUE;
1739}
1740
1741static Eina_Bool
1742_eina_value_type_float_copy(const Eina_Value_Type *type __UNUSED__, const void *src, void *dst)
1743{
1744 const float *s = src;
1745 float *d = dst;
1746 *d = *s;
1747 return EINA_TRUE;
1748}
1749
1750static int
1751_eina_value_type_float_compare(const Eina_Value_Type *type __UNUSED__, const void *a, const void *b)
1752{
1753 const float *ta = a, *tb = b;
1754 if (*ta < *tb)
1755 return -1;
1756 else if (*ta > *tb)
1757 return 1;
1758 return 0;
1759}
1760
1761static Eina_Bool
1762_eina_value_type_float_convert_to(const Eina_Value_Type *type __UNUSED__, const Eina_Value_Type *convert, const void *type_mem, void *convert_mem)
1763{
1764 const float v = *(const float *)type_mem;
1765
1766 eina_error_set(0);
1767
1768 if (convert == EINA_VALUE_TYPE_UCHAR)
1769 {
1770 unsigned char other_mem = v;
1771 if (EINA_UNLIKELY(v < 0))
1772 return EINA_FALSE;
1773 if (EINA_UNLIKELY(v > eina_value_uchar_max))
1774 return EINA_FALSE;
1775 return eina_value_type_pset(convert, convert_mem, &other_mem);
1776 }
1777 else if (convert == EINA_VALUE_TYPE_USHORT)
1778 {
1779 unsigned short other_mem = v;
1780 if (EINA_UNLIKELY(v < 0))
1781 return EINA_FALSE;
1782 if (EINA_UNLIKELY(v > eina_value_ushort_max))
1783 return EINA_FALSE;
1784 return eina_value_type_pset(convert, convert_mem, &other_mem);
1785 }
1786 else if (convert == EINA_VALUE_TYPE_UINT)
1787 {
1788 unsigned int other_mem = v;
1789 if (EINA_UNLIKELY(v < 0))
1790 return EINA_FALSE;
1791 if (EINA_UNLIKELY(v > eina_value_uint_max))
1792 return EINA_FALSE;
1793 return eina_value_type_pset(convert, convert_mem, &other_mem);
1794 }
1795 else if (convert == EINA_VALUE_TYPE_ULONG)
1796 {
1797 unsigned long other_mem = v;
1798 if (EINA_UNLIKELY(v < 0))
1799 return EINA_FALSE;
1800 if (EINA_UNLIKELY((sizeof(other_mem) != sizeof(v)) &&
1801 (v > eina_value_ulong_max)))
1802 return EINA_FALSE;
1803 return eina_value_type_pset(convert, convert_mem, &other_mem);
1804 }
1805 else if (convert == EINA_VALUE_TYPE_UINT64)
1806 {
1807 uint64_t other_mem = v;
1808 if (EINA_UNLIKELY(v < 0))
1809 return EINA_FALSE;
1810 if (EINA_UNLIKELY(v > eina_value_uint64_max))
1811 return EINA_FALSE;
1812 return eina_value_type_pset(convert, convert_mem, &other_mem);
1813 }
1814 else if (convert == EINA_VALUE_TYPE_CHAR)
1815 {
1816 char other_mem = v;
1817 if (EINA_UNLIKELY(v < eina_value_char_min))
1818 return EINA_FALSE;
1819 if (EINA_UNLIKELY(v > eina_value_char_max))
1820 return EINA_FALSE;
1821 return eina_value_type_pset(convert, convert_mem, &other_mem);
1822 }
1823 else if (convert == EINA_VALUE_TYPE_SHORT)
1824 {
1825 short other_mem = v;
1826 if (EINA_UNLIKELY(v < eina_value_short_min))
1827 return EINA_FALSE;
1828 if (EINA_UNLIKELY(v > eina_value_short_max))
1829 return EINA_FALSE;
1830 return eina_value_type_pset(convert, convert_mem, &other_mem);
1831 }
1832 else if (convert == EINA_VALUE_TYPE_INT)
1833 {
1834 int other_mem = v;
1835 if (EINA_UNLIKELY(v < eina_value_int_min))
1836 return EINA_FALSE;
1837 if (EINA_UNLIKELY(v > eina_value_int_max))
1838 return EINA_FALSE;
1839 return eina_value_type_pset(convert, convert_mem, &other_mem);
1840 }
1841 else if (convert == EINA_VALUE_TYPE_LONG)
1842 {
1843 long other_mem = v;
1844 if (EINA_UNLIKELY(v < eina_value_long_min))
1845 return EINA_FALSE;
1846 if (EINA_UNLIKELY(v > eina_value_long_max))
1847 return EINA_FALSE;
1848 return eina_value_type_pset(convert, convert_mem, &other_mem);
1849 }
1850 else if (convert == EINA_VALUE_TYPE_INT64)
1851 {
1852 int64_t other_mem = v;
1853 if (EINA_UNLIKELY(v < eina_value_int64_min))
1854 return EINA_FALSE;
1855 if (EINA_UNLIKELY(v > eina_value_int64_max))
1856 return EINA_FALSE;
1857 return eina_value_type_pset(convert, convert_mem, &other_mem);
1858 }
1859 else if (convert == EINA_VALUE_TYPE_FLOAT)
1860 {
1861 float other_mem = v;
1862 return eina_value_type_pset(convert, convert_mem, &other_mem);
1863 }
1864 else if (convert == EINA_VALUE_TYPE_DOUBLE)
1865 {
1866 double other_mem = v;
1867 return eina_value_type_pset(convert, convert_mem, &other_mem);
1868 }
1869 else if (convert == EINA_VALUE_TYPE_STRINGSHARE ||
1870 convert == EINA_VALUE_TYPE_STRING)
1871 {
1872 const char *other_mem;
1873 char buf[64];
1874 snprintf(buf, sizeof(buf), "%f", v);
1875 other_mem = buf; /* required due &buf == buf */
1876 return eina_value_type_pset(convert, convert_mem, &other_mem);
1877 }
1878 else
1879 {
1880 eina_error_set(EINA_ERROR_VALUE_FAILED);
1881 return EINA_FALSE;
1882 }
1883
1884 return EINA_TRUE;
1885}
1886
1887static Eina_Bool
1888_eina_value_type_float_vset(const Eina_Value_Type *type __UNUSED__, void *mem, va_list args)
1889{
1890 float *tmem = mem;
1891 *tmem = va_arg(args, double); /* float is promoted to double for va_args */
1892 return EINA_TRUE;
1893}
1894
1895static Eina_Bool
1896_eina_value_type_float_pset(const Eina_Value_Type *type __UNUSED__, void *mem, const void *ptr)
1897{
1898 float *tmem = mem;
1899 const float *p = ptr;
1900 *tmem = *p;
1901 return EINA_TRUE;
1902}
1903
1904static Eina_Bool
1905_eina_value_type_float_pget(const Eina_Value_Type *type __UNUSED__, const void *mem, void *ptr)
1906{
1907 const float *tmem = mem;
1908 float *p = ptr;
1909 *p = *tmem;
1910 return EINA_TRUE;
1911}
1912
1913static Eina_Bool
1914_eina_value_type_double_setup(const Eina_Value_Type *type __UNUSED__, void *mem)
1915{
1916 double *tmem = mem;
1917 *tmem = 0;
1918 return EINA_TRUE;
1919}
1920
1921static Eina_Bool
1922_eina_value_type_double_flush(const Eina_Value_Type *type __UNUSED__, void *mem __UNUSED__)
1923{
1924 return EINA_TRUE;
1925}
1926
1927static Eina_Bool
1928_eina_value_type_double_copy(const Eina_Value_Type *type __UNUSED__, const void *src, void *dst)
1929{
1930 const double *s = src;
1931 double *d = dst;
1932 *d = *s;
1933 return EINA_TRUE;
1934}
1935
1936static int
1937_eina_value_type_double_compare(const Eina_Value_Type *type __UNUSED__, const void *a, const void *b)
1938{
1939 const double *ta = a, *tb = b;
1940 if (*ta < *tb)
1941 return -1;
1942 else if (*ta > *tb)
1943 return 1;
1944 return 0;
1945}
1946
1947static Eina_Bool
1948_eina_value_type_double_convert_to(const Eina_Value_Type *type __UNUSED__, const Eina_Value_Type *convert, const void *type_mem, void *convert_mem)
1949{
1950 const double v = *(const double *)type_mem;
1951
1952 eina_error_set(0);
1953
1954 if (convert == EINA_VALUE_TYPE_UCHAR)
1955 {
1956 unsigned char other_mem = v;
1957 if (EINA_UNLIKELY(v < 0))
1958 return EINA_FALSE;
1959 if (EINA_UNLIKELY(v > eina_value_uchar_max))
1960 return EINA_FALSE;
1961 return eina_value_type_pset(convert, convert_mem, &other_mem);
1962 }
1963 else if (convert == EINA_VALUE_TYPE_USHORT)
1964 {
1965 unsigned short other_mem = v;
1966 if (EINA_UNLIKELY(v < 0))
1967 return EINA_FALSE;
1968 if (EINA_UNLIKELY(v > eina_value_ushort_max))
1969 return EINA_FALSE;
1970 return eina_value_type_pset(convert, convert_mem, &other_mem);
1971 }
1972 else if (convert == EINA_VALUE_TYPE_UINT)
1973 {
1974 unsigned int other_mem = v;
1975 if (EINA_UNLIKELY(v < 0))
1976 return EINA_FALSE;
1977 if (EINA_UNLIKELY(v > eina_value_uint_max))
1978 return EINA_FALSE;
1979 return eina_value_type_pset(convert, convert_mem, &other_mem);
1980 }
1981 else if (convert == EINA_VALUE_TYPE_ULONG)
1982 {
1983 unsigned long other_mem = v;
1984 if (EINA_UNLIKELY(v < 0))
1985 return EINA_FALSE;
1986 if (EINA_UNLIKELY((sizeof(other_mem) != sizeof(v)) &&
1987 (v > eina_value_ulong_max)))
1988 return EINA_FALSE;
1989 return eina_value_type_pset(convert, convert_mem, &other_mem);
1990 }
1991 else if (convert == EINA_VALUE_TYPE_UINT64)
1992 {
1993 uint64_t other_mem = v;
1994 if (EINA_UNLIKELY(v < 0))
1995 return EINA_FALSE;
1996 return eina_value_type_pset(convert, convert_mem, &other_mem);
1997 }
1998 else if (convert == EINA_VALUE_TYPE_CHAR)
1999 {
2000 char other_mem = v;
2001 if (EINA_UNLIKELY(v < eina_value_char_min))
2002 return EINA_FALSE;
2003 if (EINA_UNLIKELY(v > eina_value_char_max))
2004 return EINA_FALSE;
2005 return eina_value_type_pset(convert, convert_mem, &other_mem);
2006 }
2007 else if (convert == EINA_VALUE_TYPE_SHORT)
2008 {
2009 short other_mem = v;
2010 if (EINA_UNLIKELY(v < eina_value_short_min))
2011 return EINA_FALSE;
2012 if (EINA_UNLIKELY(v > eina_value_short_max))
2013 return EINA_FALSE;
2014 return eina_value_type_pset(convert, convert_mem, &other_mem);
2015 }
2016 else if (convert == EINA_VALUE_TYPE_INT)
2017 {
2018 int other_mem = v;
2019 if (EINA_UNLIKELY(v < eina_value_int_min))
2020 return EINA_FALSE;
2021 if (EINA_UNLIKELY(v > eina_value_int_max))
2022 return EINA_FALSE;
2023 return eina_value_type_pset(convert, convert_mem, &other_mem);
2024 }
2025 else if (convert == EINA_VALUE_TYPE_LONG)
2026 {
2027 long other_mem = v;
2028 if (EINA_UNLIKELY(v < eina_value_long_min))
2029 return EINA_FALSE;
2030 if (EINA_UNLIKELY(v > eina_value_long_max))
2031 return EINA_FALSE;
2032 return eina_value_type_pset(convert, convert_mem, &other_mem);
2033 }
2034 else if (convert == EINA_VALUE_TYPE_INT64)
2035 {
2036 int64_t other_mem = v;
2037 return eina_value_type_pset(convert, convert_mem, &other_mem);
2038 }
2039 else if (convert == EINA_VALUE_TYPE_FLOAT)
2040 {
2041 float other_mem = v;
2042 return eina_value_type_pset(convert, convert_mem, &other_mem);
2043 }
2044 else if (convert == EINA_VALUE_TYPE_DOUBLE)
2045 {
2046 double other_mem = v;
2047 return eina_value_type_pset(convert, convert_mem, &other_mem);
2048 }
2049 else if (convert == EINA_VALUE_TYPE_STRINGSHARE ||
2050 convert == EINA_VALUE_TYPE_STRING)
2051 {
2052 const char *other_mem;
2053 char buf[64];
2054 snprintf(buf, sizeof(buf), "%g", (double)v);
2055 other_mem = buf; /* required due &buf == buf */
2056 return eina_value_type_pset(convert, convert_mem, &other_mem);
2057 }
2058 else
2059 {
2060 eina_error_set(EINA_ERROR_VALUE_FAILED);
2061 return EINA_FALSE;
2062 }
2063
2064 return EINA_TRUE;
2065}
2066
2067static Eina_Bool
2068_eina_value_type_double_vset(const Eina_Value_Type *type __UNUSED__, void *mem, va_list args)
2069{
2070 double *tmem = mem;
2071 *tmem = va_arg(args, double);
2072 return EINA_TRUE;
2073}
2074
2075static Eina_Bool
2076_eina_value_type_double_pset(const Eina_Value_Type *type __UNUSED__, void *mem, const void *ptr)
2077{
2078 double *tmem = mem;
2079 const double *p = ptr;
2080 *tmem = *p;
2081 return EINA_TRUE;
2082}
2083
2084static Eina_Bool
2085_eina_value_type_double_pget(const Eina_Value_Type *type __UNUSED__, const void *mem, void *ptr)
2086{
2087 const double *tmem = mem;
2088 double *p = ptr;
2089 *p = *tmem;
2090 return EINA_TRUE;
2091}
2092
2093static Eina_Bool
2094_eina_value_type_string_common_setup(const Eina_Value_Type *type __UNUSED__, void *mem)
2095{
2096 const char **tmem = mem;
2097 *tmem = NULL;
2098 return EINA_TRUE;
2099}
2100
2101static int
2102_eina_value_type_string_common_compare(const Eina_Value_Type *type __UNUSED__, const void *a, const void *b)
2103{
2104 const char *sa = *(const char **)a;
2105 const char *sb = *(const char **)b;
2106 if (sa == sb)
2107 return 0;
2108 if (sa == NULL)
2109 return -1;
2110 if (sb == NULL)
2111 return 1;
2112 return strcmp(sa, sb);
2113}
2114
2115static Eina_Bool
2116_eina_value_type_string_common_convert_to(const Eina_Value_Type *type __UNUSED__, const Eina_Value_Type *convert, const void *type_mem, void *convert_mem)
2117{
2118 const char *v = *(const char **)type_mem;
2119
2120 eina_error_set(0);
2121
2122 if (convert == EINA_VALUE_TYPE_UCHAR)
2123 {
2124 unsigned char other_mem;
2125 if ((sscanf(v, "%hhu", &other_mem) != 1) &&
2126 (sscanf(v, "%hhx", &other_mem) != 1) &&
2127 (sscanf(v, "%hho", &other_mem) != 1))
2128 return EINA_FALSE;
2129 return eina_value_type_pset(convert, convert_mem, &other_mem);
2130 }
2131 else if (convert == EINA_VALUE_TYPE_USHORT)
2132 {
2133 unsigned short other_mem;
2134 if ((sscanf(v, "%hu", &other_mem) != 1) &&
2135 (sscanf(v, "%hx", &other_mem) != 1) &&
2136 (sscanf(v, "%ho", &other_mem) != 1))
2137 return EINA_FALSE;
2138 return eina_value_type_pset(convert, convert_mem, &other_mem);
2139 }
2140 else if (convert == EINA_VALUE_TYPE_UINT)
2141 {
2142 unsigned int other_mem;
2143 if ((sscanf(v, "%u", &other_mem) != 1) &&
2144 (sscanf(v, "%x", &other_mem) != 1) &&
2145 (sscanf(v, "%o", &other_mem) != 1))
2146 return EINA_FALSE;
2147 return eina_value_type_pset(convert, convert_mem, &other_mem);
2148 }
2149 else if (convert == EINA_VALUE_TYPE_ULONG)
2150 {
2151 unsigned long other_mem;
2152 if ((sscanf(v, "%lu", &other_mem) != 1) &&
2153 (sscanf(v, "%lx", &other_mem) != 1) &&
2154 (sscanf(v, "%lo", &other_mem) != 1))
2155 return EINA_FALSE;
2156 return eina_value_type_pset(convert, convert_mem, &other_mem);
2157 }
2158 else if (convert == EINA_VALUE_TYPE_UINT64)
2159 {
2160 uint64_t other_mem;
2161 if ((sscanf(v, "%"SCNu64, &other_mem) != 1) &&
2162 (sscanf(v, "%"SCNx64, &other_mem) != 1) &&
2163 (sscanf(v, "%"SCNo64, &other_mem) != 1))
2164 return EINA_FALSE;
2165 return eina_value_type_pset(convert, convert_mem, &other_mem);
2166 }
2167 else if (convert == EINA_VALUE_TYPE_CHAR)
2168 {
2169 char other_mem;
2170 if ((sscanf(v, "%hhd", &other_mem) != 1) &&
2171 (sscanf(v, "%hhx", &other_mem) != 1) &&
2172 (sscanf(v, "%hho", &other_mem) != 1))
2173 return EINA_FALSE;
2174 return eina_value_type_pset(convert, convert_mem, &other_mem);
2175 }
2176 else if (convert == EINA_VALUE_TYPE_SHORT)
2177 {
2178 short other_mem;
2179 if ((sscanf(v, "%hd", &other_mem) != 1) &&
2180 (sscanf(v, "%hx", &other_mem) != 1) &&
2181 (sscanf(v, "%ho", &other_mem) != 1))
2182 return EINA_FALSE;
2183 return eina_value_type_pset(convert, convert_mem, &other_mem);
2184 }
2185 else if (convert == EINA_VALUE_TYPE_INT)
2186 {
2187 int other_mem;
2188 if ((sscanf(v, "%d", &other_mem) != 1) &&
2189 (sscanf(v, "%x", &other_mem) != 1) &&
2190 (sscanf(v, "%o", &other_mem) != 1))
2191 return EINA_FALSE;
2192 return eina_value_type_pset(convert, convert_mem, &other_mem);
2193 }
2194 else if (convert == EINA_VALUE_TYPE_LONG)
2195 {
2196 long other_mem;
2197 if ((sscanf(v, "%ld", &other_mem) != 1) &&
2198 (sscanf(v, "%lx", &other_mem) != 1) &&
2199 (sscanf(v, "%lo", &other_mem) != 1))
2200 return EINA_FALSE;
2201 return eina_value_type_pset(convert, convert_mem, &other_mem);
2202 }
2203 else if (convert == EINA_VALUE_TYPE_INT64)
2204 {
2205 int64_t other_mem;
2206 if ((sscanf(v, "%"SCNd64, &other_mem) != 1) &&
2207 (sscanf(v, "%"SCNx64, &other_mem) != 1) &&
2208 (sscanf(v, "%"SCNo64, &other_mem) != 1))
2209 return EINA_FALSE;
2210 return eina_value_type_pset(convert, convert_mem, &other_mem);
2211 }
2212 else if (convert == EINA_VALUE_TYPE_FLOAT)
2213 {
2214 float other_mem;
2215 if (sscanf(v, "%f", &other_mem) != 1)
2216 return EINA_FALSE;
2217 return eina_value_type_pset(convert, convert_mem, &other_mem);
2218 }
2219 else if (convert == EINA_VALUE_TYPE_DOUBLE)
2220 {
2221 double other_mem;
2222 if (sscanf(v, "%lf", &other_mem) != 1)
2223 return EINA_FALSE;
2224 return eina_value_type_pset(convert, convert_mem, &other_mem);
2225 }
2226 else if (convert == EINA_VALUE_TYPE_STRINGSHARE ||
2227 convert == EINA_VALUE_TYPE_STRING)
2228 {
2229 return eina_value_type_pset(convert, convert_mem, &v);
2230 }
2231 else
2232 {
2233 eina_error_set(EINA_ERROR_VALUE_FAILED);
2234 return EINA_FALSE;
2235 }
2236
2237 return EINA_TRUE;
2238}
2239
2240static Eina_Bool
2241_eina_value_type_string_common_pget(const Eina_Value_Type *type __UNUSED__, const void *mem, void *ptr)
2242{
2243 memcpy(ptr, mem, sizeof(const char *));
2244 return EINA_TRUE;
2245}
2246
2247static Eina_Bool
2248_eina_value_type_stringshare_flush(const Eina_Value_Type *type __UNUSED__, void *mem)
2249{
2250 const char **tmem = mem;
2251 if (*tmem) eina_stringshare_del(*tmem);
2252 return EINA_TRUE;
2253}
2254
2255static Eina_Bool
2256_eina_value_type_stringshare_copy(const Eina_Value_Type *type __UNUSED__, const void *src, void *dst)
2257{
2258 const char * const*s = src;
2259 const char **d = dst;
2260 *d = *s;
2261 eina_stringshare_ref(*d);
2262 return EINA_TRUE;
2263}
2264
2265static Eina_Bool
2266_eina_value_type_stringshare_vset(const Eina_Value_Type *type __UNUSED__, void *mem, va_list args)
2267{
2268 const char *str = va_arg(args, const char *);
2269 return eina_stringshare_replace((const char **)mem, str);
2270}
2271
2272static Eina_Bool
2273_eina_value_type_stringshare_pset(const Eina_Value_Type *type __UNUSED__, void *mem, const void *ptr)
2274{
2275 const char * const *str = ptr;
2276 return eina_stringshare_replace((const char **)mem, *str);
2277}
2278
2279static Eina_Bool
2280_eina_value_type_string_flush(const Eina_Value_Type *type __UNUSED__, void *mem)
2281{
2282 char **tmem = mem;
2283 if (*tmem) free(*tmem);
2284 return EINA_TRUE;
2285}
2286
2287static Eina_Bool
2288_eina_value_type_string_copy(const Eina_Value_Type *type __UNUSED__, const void *src, void *dst)
2289{
2290 const char * const *s = src;
2291 char **d = dst;
2292 if (*s == NULL)
2293 *d = NULL;
2294 else
2295 {
2296 *d = strdup(*s);
2297 if (*d == NULL)
2298 {
2299 eina_error_set(EINA_ERROR_OUT_OF_MEMORY);
2300 return EINA_FALSE;
2301 }
2302 }
2303 return EINA_TRUE;
2304}
2305
2306static Eina_Bool
2307_eina_value_type_string_vset(const Eina_Value_Type *type __UNUSED__, void *mem, va_list args)
2308{
2309 char **tmem = mem;
2310 const char *str = va_arg(args, const char *);
2311 free(*tmem);
2312 if (str == NULL)
2313 *tmem = NULL;
2314 else
2315 {
2316 *tmem = strdup(str);
2317 if (*tmem == NULL)
2318 {
2319 eina_error_set(EINA_ERROR_OUT_OF_MEMORY);
2320 return EINA_FALSE;
2321 }
2322 }
2323 eina_error_set(0);
2324 return EINA_TRUE;
2325}
2326
2327static Eina_Bool
2328_eina_value_type_string_pset(const Eina_Value_Type *type __UNUSED__, void *mem, const void *ptr)
2329{
2330 char **tmem = mem;
2331 const char * const *str = ptr;
2332 free(*tmem);
2333 if (*str == NULL)
2334 *tmem = NULL;
2335 else
2336 {
2337 *tmem = strdup(*str);
2338 if (*tmem == NULL)
2339 {
2340 eina_error_set(EINA_ERROR_OUT_OF_MEMORY);
2341 return EINA_FALSE;
2342 }
2343 }
2344 eina_error_set(0);
2345 return EINA_TRUE;
2346}
2347
2348static Eina_Bool
2349_eina_value_type_array_setup(const Eina_Value_Type *type __UNUSED__, void *mem)
2350{
2351 memset(mem, 0, sizeof(Eina_Value_Array));
2352 return EINA_TRUE;
2353}
2354
2355static Eina_Bool
2356_eina_value_type_array_flush_elements(Eina_Value_Array *tmem)
2357{
2358 const Eina_Value_Type *subtype = tmem->subtype;
2359 Eina_Bool ret = EINA_TRUE;
2360 unsigned char sz;
2361 char *ptr, *ptr_end;
2362
2363 if (!tmem->array) return EINA_TRUE;
2364
2365 sz = tmem->array->member_size;
2366 ptr = tmem->array->members;
2367 ptr_end = ptr + tmem->array->len * sz;
2368
2369 for (; ptr < ptr_end; ptr += sz)
2370 ret &= eina_value_type_flush(subtype, ptr);
2371
2372 eina_inarray_flush(tmem->array);
2373 return ret;
2374}
2375
2376static Eina_Bool
2377_eina_value_type_array_flush(const Eina_Value_Type *type __UNUSED__, void *mem)
2378{
2379 Eina_Value_Array *tmem = mem;
2380 Eina_Bool ret =_eina_value_type_array_flush_elements(tmem);
2381
2382 if (tmem->array) eina_inarray_free(tmem->array);
2383 tmem->array = NULL;
2384 tmem->subtype = NULL;
2385 return ret;
2386}
2387
2388static Eina_Bool
2389_eina_value_type_array_copy(const Eina_Value_Type *type __UNUSED__, const void *src, void *dst)
2390{
2391 const Eina_Value_Type *subtype;
2392 const Eina_Value_Array *s = src;
2393 Eina_Value_Array *d = dst;
2394 unsigned int i, count, sz;
2395 char *ptr, *ptr_end;
2396
2397 d->subtype = subtype = s->subtype;
2398 d->step = s->step;
2399
2400 if ((!s->array) || (!s->subtype))
2401 {
2402 d->array = NULL;
2403 return EINA_TRUE;
2404 }
2405
2406 if (!subtype->copy)
2407 {
2408 eina_error_set(EINA_ERROR_VALUE_FAILED);
2409 return EINA_FALSE;
2410 }
2411
2412 d->array = eina_inarray_new(subtype->value_size, s->step);
2413 if (!d->array)
2414 return EINA_FALSE;
2415
2416 sz = s->array->member_size;
2417
2418 count = eina_inarray_count(s->array);
2419 ptr = s->array->members;
2420 ptr_end = ptr + (count * sz);
2421
2422 for (i = 0; ptr < ptr_end; ptr += sz, i++)
2423 {
2424 void *imem = eina_inarray_alloc_at(d->array, i, 1);
2425 if (!imem) goto error;
2426 if (!subtype->copy(subtype, ptr, imem))
2427 {
2428 eina_inarray_pop(d->array);
2429 goto error;
2430 }
2431 }
2432
2433 return EINA_TRUE;
2434
2435 error:
2436 _eina_value_type_array_flush_elements(d);
2437 return EINA_FALSE;
2438}
2439
2440static int
2441_eina_value_type_array_compare(const Eina_Value_Type *type __UNUSED__, const void *a, const void *b)
2442{
2443 const Eina_Value_Type *subtype;
2444 const Eina_Value_Array *eva_a = a, *eva_b = b;
2445 const char *a_ptr, *a_ptr_end, *b_ptr;
2446 unsigned int count_a, count_b, count, sz;
2447 int cmp = 0;
2448
2449 if (eva_a->subtype != eva_b->subtype)
2450 {
2451 eina_error_set(EINA_ERROR_VALUE_FAILED);
2452 return -1;
2453 }
2454
2455 subtype = eva_a->subtype;
2456 if (!subtype->compare)
2457 {
2458 eina_error_set(EINA_ERROR_VALUE_FAILED);
2459 return 0;
2460 }
2461
2462 if ((!eva_a->array) && (!eva_b->array))
2463 return 0;
2464 else if (!eva_a->array)
2465 return -1;
2466 else if (!eva_b->array)
2467 return 1;
2468
2469 count_a = eina_inarray_count(eva_a->array);
2470 count_b = eina_inarray_count(eva_b->array);
2471
2472 if (count_a <= count_b)
2473 count = count_a;
2474 else
2475 count = count_b;
2476
2477 sz = eva_a->array->member_size;
2478
2479 a_ptr = eva_a->array->members;
2480 a_ptr_end = a_ptr + (count * sz);
2481 b_ptr = eva_b->array->members;
2482
2483 for (; (cmp == 0) && (a_ptr < a_ptr_end); a_ptr += sz, b_ptr += sz)
2484 cmp = subtype->compare(subtype, a_ptr, b_ptr);
2485
2486 if (cmp == 0)
2487 {
2488 if (count_a < count_b)
2489 return -1;
2490 else if (count_a > count_b)
2491 return 1;
2492 return 0;
2493 }
2494
2495 return cmp;
2496}
2497
2498static Eina_Bool
2499_eina_value_type_array_convert_to(const Eina_Value_Type *type __UNUSED__, const Eina_Value_Type *convert, const void *type_mem, void *convert_mem)
2500{
2501 const Eina_Value_Array *tmem = type_mem;
2502 Eina_Bool ret = EINA_FALSE;
2503
2504 if ((convert == EINA_VALUE_TYPE_STRING) ||
2505 (convert == EINA_VALUE_TYPE_STRINGSHARE))
2506 {
2507 Eina_Strbuf *str = eina_strbuf_new();
2508 if (!tmem->array) eina_strbuf_append(str, "[]");
2509 else
2510 {
2511 const Eina_Value_Type *subtype = tmem->subtype;
2512 unsigned char sz;
2513 const char *ptr, *ptr_end;
2514 Eina_Value tmp;
2515 Eina_Bool first = EINA_TRUE;
2516
2517 eina_value_setup(&tmp, EINA_VALUE_TYPE_STRING);
2518
2519 eina_strbuf_append_char(str, '[');
2520
2521 sz = tmem->array->member_size;
2522 ptr = tmem->array->members;
2523 ptr_end = ptr + tmem->array->len * sz;
2524 for (; ptr < ptr_end; ptr += sz)
2525 {
2526 Eina_Bool r = EINA_FALSE;
2527 if (subtype->convert_to)
2528 {
2529 r = subtype->convert_to(subtype, EINA_VALUE_TYPE_STRING,
2530 ptr, tmp.value.buf);
2531 if (r)
2532 {
2533 if (first) first = EINA_FALSE;
2534 else eina_strbuf_append_length(str, ", ", 2);
2535 eina_strbuf_append(str, tmp.value.ptr);
2536 free(tmp.value.ptr);
2537 tmp.value.ptr = NULL;
2538 }
2539 }
2540
2541 if (!r)
2542 {
2543 if (first)
2544 {
2545 first = EINA_FALSE;
2546 eina_strbuf_append_char(str, '?');
2547 }
2548 else
2549 eina_strbuf_append_length(str, ", ?", 3);
2550 }
2551 }
2552
2553 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 }
2558 }
2559 else if ((tmem->array) && (tmem->array->len == 1))
2560 {
2561 const Eina_Value_Type *subtype = tmem->subtype;
2562 void *imem = tmem->array->members;
2563
2564 if (subtype->convert_to)
2565 ret = subtype->convert_to(subtype, convert, imem, convert_mem);
2566 if ((!ret) && (convert->convert_from))
2567 ret = convert->convert_from(convert, subtype, convert_mem, imem);
2568 }
2569
2570 if (!ret)
2571 {
2572 eina_error_set(EINA_ERROR_VALUE_FAILED);
2573 return EINA_FALSE;
2574 }
2575 return EINA_TRUE;
2576}
2577
2578static Eina_Bool
2579_eina_value_type_array_convert_from(const Eina_Value_Type *type, const Eina_Value_Type *convert, void *type_mem, const void *convert_mem)
2580{
2581 Eina_Value_Array *tmem = type_mem;
2582 Eina_Value_Array desc = {convert, tmem->step, NULL};
2583 char *buf;
2584 void *imem;
2585
2586 if (!eina_value_type_pset(type, tmem, &desc))
2587 return EINA_FALSE;
2588
2589 buf = alloca(convert->value_size);
2590 if (!eina_value_type_pget(convert, convert_mem, &buf))
2591 return EINA_FALSE;
2592
2593 imem = eina_inarray_alloc_at(tmem->array, 0, 1);
2594 if (!imem)
2595 return EINA_FALSE;
2596
2597 if (!eina_value_type_setup(convert, imem)) goto error_setup;
2598 if (!eina_value_type_pset(convert, imem, &buf)) goto error_set;
2599 return EINA_TRUE;
2600
2601 error_set:
2602 eina_value_type_flush(convert, imem);
2603 error_setup:
2604 eina_inarray_remove_at(tmem->array, 0);
2605 return EINA_FALSE;
2606}
2607
2608static Eina_Bool
2609_eina_value_type_array_pset(const Eina_Value_Type *type __UNUSED__, void *mem, const void *ptr)
2610{
2611 Eina_Value_Array *tmem = mem;
2612 const Eina_Value_Array *desc = ptr;
2613 Eina_Inarray *desc_array;
2614
2615 if ((!tmem->subtype) && (!desc->subtype))
2616 return EINA_TRUE;
2617
2618 desc_array = desc->array;
2619 if (desc_array)
2620 {
2621 EINA_SAFETY_ON_FALSE_RETURN_VAL
2622 (desc_array->member_size == desc->subtype->value_size, EINA_FALSE);
2623 }
2624
2625 if (tmem->array)
2626 {
2627 _eina_value_type_array_flush_elements(tmem);
2628 if (desc_array)
2629 eina_inarray_free(tmem->array);
2630 else
2631 eina_inarray_setup(tmem->array, desc->subtype->value_size,
2632 desc->step);
2633 }
2634 else if (!desc_array)
2635 {
2636 tmem->array = eina_inarray_new(desc->subtype->value_size, desc->step);
2637 if (!tmem->array)
2638 return EINA_FALSE;
2639 }
2640
2641 if (desc_array)
2642 tmem->array = desc_array;
2643
2644 tmem->subtype = desc->subtype;
2645
2646 return EINA_TRUE;
2647}
2648
2649static Eina_Bool
2650_eina_value_type_array_vset(const Eina_Value_Type *type, void *mem, va_list args)
2651{
2652 const Eina_Value_Array desc = va_arg(args, Eina_Value_Array);
2653 _eina_value_type_array_pset(type, mem, &desc);
2654 return EINA_TRUE;
2655}
2656
2657static Eina_Bool
2658_eina_value_type_array_pget(const Eina_Value_Type *type __UNUSED__, const void *mem, void *ptr)
2659{
2660 memcpy(ptr, mem, sizeof(Eina_Value_Array));
2661 return EINA_TRUE;
2662}
2663
2664static const Eina_Value_Type _EINA_VALUE_TYPE_ARRAY = {
2665 EINA_VALUE_TYPE_VERSION,
2666 sizeof(Eina_Value_Array),
2667 "Eina_Value_Array",
2668 _eina_value_type_array_setup,
2669 _eina_value_type_array_flush,
2670 _eina_value_type_array_copy,
2671 _eina_value_type_array_compare,
2672 _eina_value_type_array_convert_to,
2673 _eina_value_type_array_convert_from,
2674 _eina_value_type_array_vset,
2675 _eina_value_type_array_pset,
2676 _eina_value_type_array_pget
2677};
2678
2679static Eina_Bool
2680_eina_value_type_list_setup(const Eina_Value_Type *type __UNUSED__, void *mem)
2681{
2682 memset(mem, 0, sizeof(Eina_Value_List));
2683 return EINA_TRUE;
2684}
2685
2686static Eina_Bool
2687_eina_value_type_list_flush_elements(Eina_Value_List *tmem)
2688{
2689 const Eina_Value_Type *subtype = tmem->subtype;
2690 Eina_Bool ret = EINA_TRUE;
2691
2692 if (!tmem->list) return EINA_TRUE;
2693
2694 while (tmem->list)
2695 {
2696 void *mem = eina_value_list_node_memory_get(tmem->subtype, tmem->list);
2697 ret &= eina_value_type_flush(subtype, mem);
2698 eina_value_list_node_memory_flush(tmem->subtype, tmem->list);
2699 tmem->list = eina_list_remove_list(tmem->list, tmem->list);
2700 }
2701
2702 return ret;
2703}
2704
2705static Eina_Bool
2706_eina_value_type_list_flush(const Eina_Value_Type *type __UNUSED__, void *mem)
2707{
2708 Eina_Value_List *tmem = mem;
2709 Eina_Bool ret =_eina_value_type_list_flush_elements(tmem);
2710
2711 if (tmem->list) eina_list_free(tmem->list);
2712 tmem->list = NULL;
2713 tmem->subtype = NULL;
2714 return ret;
2715}
2716
2717static Eina_Bool
2718_eina_value_type_list_copy(const Eina_Value_Type *type __UNUSED__, const void *src, void *dst)
2719{
2720 const Eina_Value_Type *subtype;
2721 const Eina_Value_List *s = src;
2722 Eina_Value_List *d = dst;
2723 const Eina_List *snode;
2724
2725 d->subtype = subtype = s->subtype;
2726 if ((!s->list) || (!s->subtype))
2727 {
2728 d->list = NULL;
2729 return EINA_TRUE;
2730 }
2731
2732 if (!subtype->copy)
2733 {
2734 eina_error_set(EINA_ERROR_VALUE_FAILED);
2735 return EINA_FALSE;
2736 }
2737
2738 d->list = NULL;
2739 for (snode = s->list; snode != NULL; snode = snode->next)
2740 {
2741 const void *ptr = eina_value_list_node_memory_get(subtype, snode);
2742 Eina_List *dnode;
2743 void *imem;
2744
2745 d->list = eina_list_append(d->list, (void*)1L);
2746 dnode = eina_list_last(d->list);
2747 EINA_SAFETY_ON_NULL_GOTO(dnode, error);
2748 EINA_SAFETY_ON_FALSE_GOTO(dnode->data == (void*)1L, error);
2749
2750 imem = eina_value_list_node_memory_setup(subtype, dnode);
2751 if (!subtype->copy(subtype, ptr, imem))
2752 {
2753 eina_value_list_node_memory_flush(subtype, dnode);
2754 d->list = eina_list_remove_list(d->list, dnode);
2755 goto error;
2756 }
2757 }
2758 return EINA_TRUE;
2759
2760 error:
2761 _eina_value_type_list_flush_elements(d);
2762 return EINA_FALSE;
2763}
2764
2765static int
2766_eina_value_type_list_compare(const Eina_Value_Type *type __UNUSED__, const void *a, const void *b)
2767{
2768 const Eina_Value_Type *subtype;
2769 const Eina_Value_List *eva_a = a, *eva_b = b;
2770 const Eina_List *anode, *bnode;
2771 int cmp = 0;
2772
2773 if (eva_a->subtype != eva_b->subtype)
2774 {
2775 eina_error_set(EINA_ERROR_VALUE_FAILED);
2776 return -1;
2777 }
2778
2779 subtype = eva_a->subtype;
2780 if (!subtype->compare)
2781 {
2782 eina_error_set(EINA_ERROR_VALUE_FAILED);
2783 return 0;
2784 }
2785
2786 if ((!eva_a->list) && (!eva_b->list))
2787 return 0;
2788 else if (!eva_a->list)
2789 return -1;
2790 else if (!eva_b->list)
2791 return 1;
2792
2793 for (anode = eva_a->list, bnode = eva_b->list;
2794 (cmp == 0) && (anode) && (bnode);
2795 anode = anode->next, bnode = bnode->next)
2796 {
2797 const void *amem = eina_value_list_node_memory_get(subtype, anode);
2798 const void *bmem = eina_value_list_node_memory_get(subtype, bnode);
2799 cmp = subtype->compare(subtype, amem, bmem);
2800 }
2801
2802 if (cmp == 0)
2803 {
2804 if ((!anode) && (bnode))
2805 return -1;
2806 else if ((anode) && (!bnode))
2807 return 1;
2808 return 0;
2809 }
2810
2811 return cmp;
2812}
2813
2814static Eina_Bool
2815_eina_value_type_list_convert_to(const Eina_Value_Type *type __UNUSED__, const Eina_Value_Type *convert, const void *type_mem, void *convert_mem)
2816{
2817 const Eina_Value_List *tmem = type_mem;
2818 Eina_Bool ret = EINA_FALSE;
2819
2820 if ((convert == EINA_VALUE_TYPE_STRING) ||
2821 (convert == EINA_VALUE_TYPE_STRINGSHARE))
2822 {
2823 Eina_Strbuf *str = eina_strbuf_new();
2824 if (!tmem->list) eina_strbuf_append(str, "[]");
2825 else
2826 {
2827 const Eina_Value_Type *subtype = tmem->subtype;
2828 const Eina_List *node;
2829 Eina_Value tmp;
2830 const char *s;
2831 Eina_Bool first = EINA_TRUE;
2832
2833 eina_value_setup(&tmp, EINA_VALUE_TYPE_STRING);
2834
2835 eina_strbuf_append_char(str, '[');
2836
2837 for (node = tmem->list; node != NULL; node = node->next)
2838 {
2839 Eina_Bool r = EINA_FALSE;
2840
2841 if (subtype->convert_to)
2842 {
2843 const void *ptr;
2844 ptr = eina_value_list_node_memory_get(subtype, node);
2845 r = subtype->convert_to(subtype, EINA_VALUE_TYPE_STRING,
2846 ptr, tmp.value.buf);
2847 if (r)
2848 {
2849 if (first) first = EINA_FALSE;
2850 else eina_strbuf_append_length(str, ", ", 2);
2851 eina_strbuf_append(str, tmp.value.ptr);
2852 free(tmp.value.ptr);
2853 tmp.value.ptr = NULL;
2854 }
2855 }
2856
2857 if (!r)
2858 {
2859 if (first)
2860 {
2861 first = EINA_FALSE;
2862 eina_strbuf_append_char(str, '?');
2863 }
2864 else
2865 eina_strbuf_append_length(str, ", ?", 3);
2866 }
2867 }
2868
2869 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 }
2874 }
2875 else if ((tmem->list) && (tmem->list->next == NULL))
2876 {
2877 const Eina_Value_Type *subtype = tmem->subtype;
2878 void *imem = eina_value_list_node_memory_get(subtype, tmem->list);
2879
2880 if (subtype->convert_to)
2881 ret = subtype->convert_to(subtype, convert, imem, convert_mem);
2882 if ((!ret) && (convert->convert_from))
2883 ret = convert->convert_from(convert, subtype, convert_mem, imem);
2884 }
2885
2886 if (!ret)
2887 {
2888 eina_error_set(EINA_ERROR_VALUE_FAILED);
2889 return EINA_FALSE;
2890 }
2891 return EINA_TRUE;
2892}
2893
2894static Eina_Bool
2895_eina_value_type_list_convert_from(const Eina_Value_Type *type, const Eina_Value_Type *convert, void *type_mem, const void *convert_mem)
2896{
2897 Eina_Value_List *tmem = type_mem;
2898 Eina_Value_List desc = {convert, NULL};
2899 Eina_List *node;
2900 char *buf;
2901 void *imem;
2902
2903 if (!eina_value_type_pset(type, tmem, &desc))
2904 return EINA_FALSE;
2905
2906 buf = alloca(convert->value_size);
2907 if (!eina_value_type_pget(convert, convert_mem, &buf))
2908 return EINA_FALSE;
2909
2910 tmem->list = eina_list_append(tmem->list, (void*)1L);
2911 node = eina_list_last(tmem->list);
2912 EINA_SAFETY_ON_NULL_RETURN_VAL(node, EINA_FALSE);
2913 EINA_SAFETY_ON_FALSE_RETURN_VAL(node->data == (void*)1L, EINA_FALSE);
2914
2915 imem = eina_value_list_node_memory_setup(tmem->subtype, node);
2916 if (!imem)
2917 {
2918 tmem->list = eina_list_remove_list(tmem->list, node);
2919 return EINA_FALSE;
2920 }
2921
2922 if (!eina_value_type_setup(tmem->subtype, imem)) goto error_setup;
2923 if (!eina_value_type_pset(tmem->subtype, imem, &buf)) goto error_set;
2924 return EINA_TRUE;
2925
2926 error_set:
2927 eina_value_type_flush(tmem->subtype, imem);
2928 error_setup:
2929 eina_value_list_node_memory_flush(tmem->subtype, node);
2930 tmem->list = eina_list_remove_list(tmem->list, node);
2931 return EINA_FALSE;
2932}
2933
2934static Eina_Bool
2935_eina_value_type_list_pset(const Eina_Value_Type *type __UNUSED__, void *mem, const void *ptr)
2936{
2937 Eina_Value_List *tmem = mem;
2938 const Eina_Value_List *desc = ptr;
2939
2940 if ((!tmem->subtype) && (!desc->subtype))
2941 return EINA_TRUE;
2942
2943 _eina_value_type_list_flush_elements(tmem);
2944 tmem->subtype = desc->subtype;
2945 tmem->list = desc->list;
2946
2947 return EINA_TRUE;
2948}
2949
2950static Eina_Bool
2951_eina_value_type_list_vset(const Eina_Value_Type *type, void *mem, va_list args)
2952{
2953 const Eina_Value_List desc = va_arg(args, Eina_Value_List);
2954 _eina_value_type_list_pset(type, mem, &desc);
2955 return EINA_TRUE;
2956}
2957
2958static Eina_Bool
2959_eina_value_type_list_pget(const Eina_Value_Type *type __UNUSED__, const void *mem, void *ptr)
2960{
2961 memcpy(ptr, mem, sizeof(Eina_Value_List));
2962 return EINA_TRUE;
2963}
2964
2965static const Eina_Value_Type _EINA_VALUE_TYPE_LIST = {
2966 EINA_VALUE_TYPE_VERSION,
2967 sizeof(Eina_Value_List),
2968 "Eina_Value_List",
2969 _eina_value_type_list_setup,
2970 _eina_value_type_list_flush,
2971 _eina_value_type_list_copy,
2972 _eina_value_type_list_compare,
2973 _eina_value_type_list_convert_to,
2974 _eina_value_type_list_convert_from,
2975 _eina_value_type_list_vset,
2976 _eina_value_type_list_pset,
2977 _eina_value_type_list_pget
2978};
2979
2980static Eina_Bool
2981_eina_value_type_hash_setup(const Eina_Value_Type *type __UNUSED__, void *mem)
2982{
2983 memset(mem, 0, sizeof(Eina_Value_Hash));
2984 return EINA_TRUE;
2985}
2986
2987struct _eina_value_type_hash_flush_each_ctx
2988{
2989 const Eina_Value_Type *subtype;
2990 Eina_Bool ret;
2991};
2992
2993static Eina_Bool
2994_eina_value_type_hash_flush_each(const Eina_Hash *hash __UNUSED__, const void *key __UNUSED__, void *mem, void *user_data)
2995{
2996 struct _eina_value_type_hash_flush_each_ctx *ctx = user_data;
2997 ctx->ret &= eina_value_type_flush(ctx->subtype, mem);
2998 return EINA_TRUE;
2999}
3000
3001static Eina_Bool
3002_eina_value_type_hash_flush_elements(Eina_Value_Hash *tmem)
3003{
3004 struct _eina_value_type_hash_flush_each_ctx ctx = {
3005 tmem->subtype,
3006 EINA_TRUE
3007 };
3008
3009 if (!tmem->hash) return EINA_TRUE;
3010
3011 eina_hash_foreach(tmem->hash, _eina_value_type_hash_flush_each, &ctx);
3012 eina_hash_free(tmem->hash);
3013 tmem->hash = NULL;
3014 return ctx.ret;
3015}
3016
3017static Eina_Bool
3018_eina_value_type_hash_flush(const Eina_Value_Type *type __UNUSED__, void *mem)
3019{
3020 Eina_Value_Hash *tmem = mem;
3021 Eina_Bool ret =_eina_value_type_hash_flush_elements(tmem);
3022 tmem->subtype = NULL;
3023 return ret;
3024}
3025
3026static unsigned int
3027_eina_value_hash_key_length(const void *key)
3028{
3029 if (!key)
3030 return 0;
3031 return (int)strlen(key) + 1;
3032}
3033
3034static int
3035_eina_value_hash_key_cmp(const void *key1, int key1_len, const void *key2, int key2_len)
3036{
3037 int r = key1_len - key2_len;
3038 if (r != 0)
3039 return r;
3040 return strcmp(key1, key2);
3041}
3042
3043static Eina_Bool
3044_eina_value_type_hash_create(Eina_Value_Hash *desc)
3045{
3046 if (!desc->buckets_power_size)
3047 desc->buckets_power_size = 5;
3048
3049 desc->hash = eina_hash_new(_eina_value_hash_key_length,
3050 _eina_value_hash_key_cmp,
3051 EINA_KEY_HASH(eina_hash_superfast),
3052 NULL, desc->buckets_power_size);
3053 return !!desc->hash;
3054}
3055
3056struct _eina_value_type_hash_copy_each_ctx
3057{
3058 const Eina_Value_Type *subtype;
3059 Eina_Value_Hash *dest;
3060 Eina_Bool ret;
3061};
3062
3063static Eina_Bool
3064_eina_value_type_hash_copy_each(const Eina_Hash *hash __UNUSED__, const void *key, void *_ptr, void *user_data)
3065{
3066 struct _eina_value_type_hash_copy_each_ctx *ctx = user_data;
3067 const void *ptr = _ptr;
3068 void *imem = malloc(ctx->subtype->value_size);
3069 if (!imem)
3070 {
3071 ctx->ret = EINA_FALSE;
3072 return EINA_FALSE;
3073 }
3074 if (!ctx->subtype->copy(ctx->subtype, ptr, imem))
3075 {
3076 free(imem);
3077 ctx->ret = EINA_FALSE;
3078 return EINA_FALSE;
3079 }
3080 if (!eina_hash_add(ctx->dest->hash, key, imem))
3081 {
3082 eina_value_type_flush(ctx->subtype, imem);
3083 free(imem);
3084 ctx->ret = EINA_FALSE;
3085 return EINA_FALSE;
3086 }
3087 return EINA_TRUE;
3088}
3089
3090static Eina_Bool
3091_eina_value_type_hash_copy(const Eina_Value_Type *type __UNUSED__, const void *src, void *dst)
3092{
3093 const Eina_Value_Hash *s = src;
3094 Eina_Value_Hash *d = dst;
3095 struct _eina_value_type_hash_copy_each_ctx ctx = {s->subtype, d, EINA_TRUE};
3096
3097 d->subtype = s->subtype;
3098 d->buckets_power_size = s->buckets_power_size;
3099
3100 if ((!s->hash) || (!s->subtype))
3101 {
3102 d->hash = NULL;
3103 return EINA_TRUE;
3104 }
3105
3106 if (!s->subtype->copy)
3107 {
3108 eina_error_set(EINA_ERROR_VALUE_FAILED);
3109 return EINA_FALSE;
3110 }
3111
3112 if (!_eina_value_type_hash_create(d))
3113 return EINA_FALSE;
3114
3115 eina_hash_foreach(s->hash, _eina_value_type_hash_copy_each, &ctx);
3116 if (!ctx.ret)
3117 {
3118 _eina_value_type_hash_flush_elements(d);
3119 return EINA_FALSE;
3120 }
3121 return EINA_TRUE;
3122}
3123
3124struct _eina_value_type_hash_compare_each_ctx
3125{
3126 const Eina_Value_Type *subtype;
3127 const Eina_Hash *other;
3128 int cmp;
3129};
3130
3131static Eina_Bool
3132_eina_value_type_hash_compare_each(const Eina_Hash *hash __UNUSED__, const void *key, void *_ptr, void *user_data)
3133{
3134 struct _eina_value_type_hash_compare_each_ctx *ctx = user_data;
3135 const void *self_ptr = _ptr;
3136 const void *other_ptr = eina_hash_find(ctx->other, key);
3137 if (!other_ptr) return EINA_TRUE;
3138 ctx->cmp = ctx->subtype->compare(ctx->subtype, self_ptr, other_ptr);
3139 return ctx->cmp == 0;
3140}
3141
3142static int
3143_eina_value_type_hash_compare(const Eina_Value_Type *type __UNUSED__, const void *a, const void *b)
3144{
3145 const Eina_Value_Hash *eva_a = a, *eva_b = b;
3146 struct _eina_value_type_hash_compare_each_ctx ctx = {
3147 eva_a->subtype, eva_b->hash, 0
3148 };
3149
3150 if (eva_a->subtype != eva_b->subtype)
3151 {
3152 eina_error_set(EINA_ERROR_VALUE_FAILED);
3153 return -1;
3154 }
3155
3156 if (!eva_a->subtype->compare)
3157 {
3158 eina_error_set(EINA_ERROR_VALUE_FAILED);
3159 return 0;
3160 }
3161
3162 if ((!eva_a->hash) && (!eva_b->hash))
3163 return 0;
3164 else if (!eva_a->hash)
3165 return -1;
3166 else if (!eva_b->hash)
3167 return 1;
3168
3169 eina_hash_foreach(eva_a->hash, _eina_value_type_hash_compare_each, &ctx);
3170 if (ctx.cmp == 0)
3171 {
3172 unsigned int count_a = eina_hash_population(eva_a->hash);
3173 unsigned int count_b = eina_hash_population(eva_b->hash);
3174 if (count_a < count_b)
3175 return -1;
3176 else if (count_a > count_b)
3177 return 1;
3178 return 0;
3179 }
3180
3181 return ctx.cmp;
3182}
3183
3184static Eina_Bool
3185_eina_value_type_hash_find_first(const Eina_Hash *hash __UNUSED__, const void *key __UNUSED__, void *ptr, void *user_data)
3186{
3187 void **ret = user_data;
3188 *ret = ptr;
3189 return EINA_FALSE;
3190}
3191
3192struct _eina_value_type_hash_convert_to_string_each_ctx
3193{
3194 const Eina_Value_Type *subtype;
3195 Eina_Strbuf *str;
3196 Eina_Value tmp;
3197 Eina_Bool first;
3198};
3199
3200static Eina_Bool
3201_eina_value_type_hash_convert_to_string_each(const Eina_Hash *hash __UNUSED__, const void *_key, void *_ptr, void *user_data)
3202{
3203 struct _eina_value_type_hash_convert_to_string_each_ctx *ctx = user_data;
3204 const char *key = _key;
3205 const void *ptr = _ptr;
3206 Eina_Bool r = EINA_FALSE;
3207
3208 if (ctx->first) ctx->first = EINA_FALSE;
3209 else eina_strbuf_append_length(ctx->str, ", ", 2);
3210
3211 eina_strbuf_append(ctx->str, key);
3212 eina_strbuf_append_length(ctx->str, ": ", 2);
3213
3214 if (ctx->subtype->convert_to)
3215 {
3216 r = ctx->subtype->convert_to(ctx->subtype, EINA_VALUE_TYPE_STRING,
3217 ptr, ctx->tmp.value.buf);
3218 if (r)
3219 {
3220 eina_strbuf_append(ctx->str, ctx->tmp.value.ptr);
3221 free(ctx->tmp.value.ptr);
3222 ctx->tmp.value.ptr = NULL;
3223 }
3224 }
3225
3226 if (!r)
3227 eina_strbuf_append_char(ctx->str, '?');
3228
3229 return EINA_TRUE;
3230}
3231
3232static Eina_Bool
3233_eina_value_type_hash_convert_to(const Eina_Value_Type *type __UNUSED__, const Eina_Value_Type *convert, const void *type_mem, void *convert_mem)
3234{
3235 const Eina_Value_Hash *tmem = type_mem;
3236 Eina_Bool ret = EINA_FALSE;
3237
3238 if ((convert == EINA_VALUE_TYPE_STRING) ||
3239 (convert == EINA_VALUE_TYPE_STRINGSHARE))
3240 {
3241 Eina_Strbuf *str = eina_strbuf_new();
3242 if (!tmem->hash) eina_strbuf_append(str, "{}");
3243 else
3244 {
3245 struct _eina_value_type_hash_convert_to_string_each_ctx ctx;
3246 const char *s;
3247
3248 ctx.subtype = tmem->subtype;
3249 ctx.str = str;
3250 ctx.first = EINA_TRUE;
3251 eina_value_setup(&ctx.tmp, EINA_VALUE_TYPE_STRING);
3252
3253 eina_strbuf_append_char(str, '{');
3254
3255 eina_hash_foreach(tmem->hash,
3256 _eina_value_type_hash_convert_to_string_each,
3257 &ctx);
3258
3259 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 }
3264 }
3265 else if ((tmem->hash) && (eina_hash_population(tmem->hash) == 1))
3266 {
3267 const Eina_Value_Type *subtype = tmem->subtype;
3268 void *imem = NULL;
3269
3270 eina_hash_foreach(tmem->hash, _eina_value_type_hash_find_first, &imem);
3271 if (!imem) /* shouldn't happen... */
3272 ret = EINA_FALSE;
3273 else
3274 {
3275 if (subtype->convert_to)
3276 ret = subtype->convert_to(subtype, convert, imem, convert_mem);
3277 if ((!ret) && (convert->convert_from))
3278 ret = convert->convert_from(convert, subtype, convert_mem, imem);
3279 }
3280 }
3281
3282 if (!ret)
3283 {
3284 eina_error_set(EINA_ERROR_VALUE_FAILED);
3285 return EINA_FALSE;
3286 }
3287 return EINA_TRUE;
3288}
3289
3290static Eina_Bool
3291_eina_value_type_hash_pset(const Eina_Value_Type *type __UNUSED__, void *mem, const void *ptr)
3292{
3293 Eina_Value_Hash *tmem = mem;
3294 const Eina_Value_Hash *desc = ptr;
3295
3296 if ((!tmem->subtype) && (!desc->subtype))
3297 return EINA_TRUE;
3298
3299 if (tmem->hash) _eina_value_type_hash_flush_elements(tmem);
3300
3301 if (desc->hash)
3302 tmem->hash = desc->hash;
3303 else if (!_eina_value_type_hash_create(tmem))
3304 return EINA_FALSE;
3305
3306 tmem->subtype = desc->subtype;
3307
3308 return EINA_TRUE;
3309}
3310
3311static Eina_Bool
3312_eina_value_type_hash_vset(const Eina_Value_Type *type, void *mem, va_list args)
3313{
3314 const Eina_Value_Hash desc = va_arg(args, Eina_Value_Hash);
3315 _eina_value_type_hash_pset(type, mem, &desc);
3316 return EINA_TRUE;
3317}
3318
3319static Eina_Bool
3320_eina_value_type_hash_pget(const Eina_Value_Type *type __UNUSED__, const void *mem, void *ptr)
3321{
3322 memcpy(ptr, mem, sizeof(Eina_Value_Hash));
3323 return EINA_TRUE;
3324}
3325
3326static const Eina_Value_Type _EINA_VALUE_TYPE_HASH = {
3327 EINA_VALUE_TYPE_VERSION,
3328 sizeof(Eina_Value_Hash),
3329 "Eina_Value_Hash",
3330 _eina_value_type_hash_setup,
3331 _eina_value_type_hash_flush,
3332 _eina_value_type_hash_copy,
3333 _eina_value_type_hash_compare,
3334 _eina_value_type_hash_convert_to,
3335 NULL, /* no convert from */
3336 _eina_value_type_hash_vset,
3337 _eina_value_type_hash_pset,
3338 _eina_value_type_hash_pget
3339};
3340
3341static Eina_Bool
3342_eina_value_type_timeval_setup(const Eina_Value_Type *type __UNUSED__, void *mem)
3343{
3344 memset(mem, 0, sizeof(struct timeval));
3345 return EINA_TRUE;
3346}
3347
3348static Eina_Bool
3349_eina_value_type_timeval_flush(const Eina_Value_Type *type __UNUSED__, void *mem __UNUSED__)
3350{
3351 return EINA_TRUE;
3352}
3353
3354static Eina_Bool
3355_eina_value_type_timeval_copy(const Eina_Value_Type *type __UNUSED__, const void *src, void *dst)
3356{
3357 const struct timeval *s = src;
3358 struct timeval *d = dst;
3359 *d = *s;
3360 return EINA_TRUE;
3361}
3362
3363static inline struct timeval _eina_value_type_timeval_fix(const struct timeval *input)
3364{
3365 struct timeval ret = *input;
3366 if (EINA_UNLIKELY(ret.tv_usec < 0))
3367 {
3368 ret.tv_sec -= 1;
3369 ret.tv_usec += 1e6;
3370 }
3371 return ret;
3372}
3373
3374static int
3375_eina_value_type_timeval_compare(const Eina_Value_Type *type __UNUSED__, const void *a, const void *b)
3376{
3377 struct timeval va = _eina_value_type_timeval_fix(a);
3378 struct timeval vb = _eina_value_type_timeval_fix(b);
3379
3380 if (va.tv_sec < vb.tv_sec)
3381 return -1;
3382 else if (va.tv_sec > vb.tv_sec)
3383 return 1;
3384
3385 if (va.tv_usec < vb.tv_usec)
3386 return -1;
3387 else if (va.tv_usec > vb.tv_usec)
3388 return 1;
3389
3390 return 0;
3391}
3392
3393static Eina_Bool
3394_eina_value_type_timeval_convert_to(const Eina_Value_Type *type __UNUSED__, const Eina_Value_Type *convert, const void *type_mem, void *convert_mem)
3395{
3396 struct timeval v = _eina_value_type_timeval_fix(type_mem);
3397
3398 eina_error_set(0);
3399
3400 if (convert == EINA_VALUE_TYPE_UCHAR)
3401 {
3402 unsigned char other_mem = v.tv_sec;
3403 if (EINA_UNLIKELY(v.tv_sec < 0))
3404 return EINA_FALSE;
3405 if (EINA_UNLIKELY(v.tv_sec > eina_value_uchar_max))
3406 return EINA_FALSE;
3407 return eina_value_type_pset(convert, convert_mem, &other_mem);
3408 }
3409 else if (convert == EINA_VALUE_TYPE_USHORT)
3410 {
3411 unsigned short other_mem = v.tv_sec;
3412 if (EINA_UNLIKELY(v.tv_sec < 0))
3413 return EINA_FALSE;
3414 if (EINA_UNLIKELY(v.tv_sec > eina_value_ushort_max))
3415 return EINA_FALSE;
3416 return eina_value_type_pset(convert, convert_mem, &other_mem);
3417 }
3418 else if (convert == EINA_VALUE_TYPE_UINT)
3419 {
3420 unsigned int other_mem = v.tv_sec;
3421 if (EINA_UNLIKELY(v.tv_sec < 0))
3422 return EINA_FALSE;
3423 if (EINA_UNLIKELY((unsigned long) v.tv_sec > eina_value_uint_max))
3424 return EINA_FALSE;
3425 return eina_value_type_pset(convert, convert_mem, &other_mem);
3426 }
3427 else if (convert == EINA_VALUE_TYPE_ULONG)
3428 {
3429 unsigned long other_mem = v.tv_sec;
3430 if (EINA_UNLIKELY(v.tv_sec < 0))
3431 return EINA_FALSE;
3432 if (EINA_UNLIKELY((sizeof(other_mem) != sizeof(v)) &&
3433 ((unsigned long)v.tv_sec > eina_value_ulong_max)))
3434 return EINA_FALSE;
3435 return eina_value_type_pset(convert, convert_mem, &other_mem);
3436 }
3437 else if (convert == EINA_VALUE_TYPE_UINT64)
3438 {
3439 uint64_t other_mem = v.tv_sec;
3440 if (EINA_UNLIKELY(v.tv_sec < 0))
3441 return EINA_FALSE;
3442 return eina_value_type_pset(convert, convert_mem, &other_mem);
3443 }
3444 else if (convert == EINA_VALUE_TYPE_CHAR)
3445 {
3446 char other_mem = v.tv_sec;
3447 if (EINA_UNLIKELY(v.tv_sec < eina_value_char_min))
3448 return EINA_FALSE;
3449 if (EINA_UNLIKELY(v.tv_sec > eina_value_char_max))
3450 return EINA_FALSE;
3451 return eina_value_type_pset(convert, convert_mem, &other_mem);
3452 }
3453 else if (convert == EINA_VALUE_TYPE_SHORT)
3454 {
3455 short other_mem = v.tv_sec;
3456 if (EINA_UNLIKELY(v.tv_sec < eina_value_short_min))
3457 return EINA_FALSE;
3458 if (EINA_UNLIKELY(v.tv_sec > eina_value_short_max))
3459 return EINA_FALSE;
3460 return eina_value_type_pset(convert, convert_mem, &other_mem);
3461 }
3462 else if (convert == EINA_VALUE_TYPE_INT)
3463 {
3464 int other_mem = v.tv_sec;
3465 if (EINA_UNLIKELY(v.tv_sec < eina_value_int_min))
3466 return EINA_FALSE;
3467 if (EINA_UNLIKELY(v.tv_sec > eina_value_int_max))
3468 return EINA_FALSE;
3469 return eina_value_type_pset(convert, convert_mem, &other_mem);
3470 }
3471 else if (convert == EINA_VALUE_TYPE_LONG)
3472 {
3473 long other_mem = v.tv_sec;
3474 if (EINA_UNLIKELY(v.tv_sec < eina_value_long_min))
3475 return EINA_FALSE;
3476 if (EINA_UNLIKELY(v.tv_sec > eina_value_long_max))
3477 return EINA_FALSE;
3478 return eina_value_type_pset(convert, convert_mem, &other_mem);
3479 }
3480 else if (convert == EINA_VALUE_TYPE_INT64)
3481 {
3482 int64_t other_mem = v.tv_sec;
3483 return eina_value_type_pset(convert, convert_mem, &other_mem);
3484 }
3485 else if (convert == EINA_VALUE_TYPE_FLOAT)
3486 {
3487 float other_mem = (float)v.tv_sec + (float)v.tv_usec / 1.0e6;
3488 return eina_value_type_pset(convert, convert_mem, &other_mem);
3489 }
3490 else if (convert == EINA_VALUE_TYPE_DOUBLE)
3491 {
3492 double other_mem = (double)v.tv_sec + (double)v.tv_usec / 1.0e6;
3493 return eina_value_type_pset(convert, convert_mem, &other_mem);
3494 }
3495 else if (convert == EINA_VALUE_TYPE_STRINGSHARE ||
3496 convert == EINA_VALUE_TYPE_STRING)
3497 {
3498 const char *other_mem;
3499 char buf[64];
3500 snprintf(buf, sizeof(buf), "%ld.%06ld", v.tv_sec, v.tv_usec);
3501 other_mem = buf; /* required due &buf == buf */
3502 return eina_value_type_pset(convert, convert_mem, &other_mem);
3503 }
3504 else
3505 {
3506 eina_error_set(EINA_ERROR_VALUE_FAILED);
3507 return EINA_FALSE;
3508 }
3509}
3510
3511static Eina_Bool
3512_eina_value_type_timeval_pset(const Eina_Value_Type *type __UNUSED__, void *mem, const void *ptr)
3513{
3514 struct timeval *tmem = mem;
3515 *tmem = _eina_value_type_timeval_fix(ptr);
3516 return EINA_TRUE;
3517}
3518
3519static Eina_Bool
3520_eina_value_type_timeval_vset(const Eina_Value_Type *type, void *mem, va_list args)
3521{
3522 const struct timeval desc = va_arg(args, struct timeval);
3523 _eina_value_type_timeval_pset(type, mem, &desc);
3524 return EINA_TRUE;
3525}
3526
3527static Eina_Bool
3528_eina_value_type_timeval_pget(const Eina_Value_Type *type __UNUSED__, const void *mem, void *ptr)
3529{
3530 memcpy(ptr, mem, sizeof(struct timeval));
3531 return EINA_TRUE;
3532}
3533
3534static const Eina_Value_Type _EINA_VALUE_TYPE_TIMEVAL = {
3535 EINA_VALUE_TYPE_VERSION,
3536 sizeof(struct timeval),
3537 "struct timeval",
3538 _eina_value_type_timeval_setup,
3539 _eina_value_type_timeval_flush,
3540 _eina_value_type_timeval_copy,
3541 _eina_value_type_timeval_compare,
3542 _eina_value_type_timeval_convert_to,
3543 NULL, /* no convert from */
3544 _eina_value_type_timeval_vset,
3545 _eina_value_type_timeval_pset,
3546 _eina_value_type_timeval_pget
3547};
3548
3549static Eina_Bool
3550_eina_value_type_blob_setup(const Eina_Value_Type *type __UNUSED__, void *mem)
3551{
3552 memset(mem, 0, sizeof(Eina_Value_Blob));
3553 return EINA_TRUE;
3554}
3555
3556static inline const Eina_Value_Blob_Operations *
3557_eina_value_type_blob_ops_get(const Eina_Value_Blob *blob)
3558{
3559 if (!blob) return NULL;
3560 if (!blob->ops) return NULL;
3561 EINA_SAFETY_ON_FALSE_RETURN_VAL
3562 (blob->ops->version == EINA_VALUE_BLOB_OPERATIONS_VERSION, NULL);
3563 return blob->ops;
3564}
3565
3566static Eina_Bool
3567_eina_value_type_blob_flush(const Eina_Value_Type *type __UNUSED__, void *mem)
3568{
3569 const Eina_Value_Blob_Operations *ops = _eina_value_type_blob_ops_get(mem);
3570 Eina_Value_Blob *tmem = mem;
3571 if ((ops) && (ops->free))
3572 ops->free(ops, (void *)tmem->memory, tmem->size);
3573 return EINA_TRUE;
3574}
3575
3576static Eina_Bool
3577_eina_value_type_blob_copy(const Eina_Value_Type *type __UNUSED__, const void *src, void *dst)
3578{
3579 const Eina_Value_Blob_Operations *ops = _eina_value_type_blob_ops_get(src);
3580 const Eina_Value_Blob *s = src;
3581 Eina_Value_Blob *d = dst;
3582
3583 *d = *s;
3584
3585 if ((ops) && (ops->copy))
3586 {
3587 d->memory = ops->copy(ops, s->memory, s->size);
3588 if ((d->memory == NULL) && (s->size > 0))
3589 return EINA_FALSE;
3590 }
3591
3592 return EINA_TRUE;
3593}
3594
3595static int
3596_eina_value_type_blob_compare(const Eina_Value_Type *type __UNUSED__, const void *a, const void *b)
3597{
3598 const Eina_Value_Blob_Operations *ops = _eina_value_type_blob_ops_get(a);
3599 const Eina_Value_Blob *ta = a, *tb = b;
3600 size_t minsize;
3601 if (ta->ops != tb->ops)
3602 {
3603 eina_error_set(EINA_ERROR_VALUE_FAILED);
3604 return -1;
3605 }
3606 if ((ops) && (ops->compare))
3607 return ops->compare(ops, ta->memory, ta->size, tb->memory, tb->size);
3608
3609 if (ta->size < tb->size)
3610 minsize = ta->size;
3611 else
3612 minsize = tb->size;
3613
3614 return memcmp(ta->memory, tb->memory, minsize);
3615}
3616
3617static Eina_Bool
3618_eina_value_type_blob_convert_to(const Eina_Value_Type *type __UNUSED__, const Eina_Value_Type *convert, const void *type_mem, void *convert_mem)
3619{
3620 const Eina_Value_Blob *tmem = type_mem;
3621
3622 eina_error_set(0);
3623 if (convert == EINA_VALUE_TYPE_STRINGSHARE ||
3624 convert == EINA_VALUE_TYPE_STRING)
3625 {
3626 const Eina_Value_Blob_Operations *ops;
3627 Eina_Strbuf *str;
3628 const char *other_mem;
3629 Eina_Bool ret = EINA_FALSE, first = EINA_TRUE;
3630 const unsigned char *ptr, *ptr_end;
3631
3632 ops = _eina_value_type_blob_ops_get(tmem);
3633 if ((ops) && (ops->to_string))
3634 {
3635 char *x = ops->to_string(ops, tmem->memory, tmem->size);
3636 if (x)
3637 {
3638 ret = eina_value_type_pset(convert, convert_mem, &x);
3639 free(x);
3640 }
3641 return ret;
3642 }
3643
3644 str = eina_strbuf_new();
3645 if (!str)
3646 return EINA_FALSE;
3647
3648 if (!eina_strbuf_append_printf(str, "BLOB(%u, [", tmem->size))
3649 goto error;
3650
3651 ptr = tmem->memory;
3652 ptr_end = ptr + tmem->size;
3653 for (; ptr < ptr_end; ptr++)
3654 {
3655 if (first)
3656 {
3657 first = EINA_FALSE;
3658 if (!eina_strbuf_append_printf(str, "%02hhx", *ptr))
3659 goto error;
3660 }
3661 else
3662 {
3663 if (!eina_strbuf_append_printf(str, " %02hhx", *ptr))
3664 goto error;
3665 }
3666 }
3667
3668 if (!eina_strbuf_append(str, "])"))
3669 goto error;
3670
3671 other_mem = eina_strbuf_string_get(str);
3672 ret = eina_value_type_pset(convert, convert_mem, &other_mem);
3673
3674 error:
3675 eina_strbuf_free(str);
3676 return ret;
3677 }
3678 else
3679 {
3680 eina_error_set(EINA_ERROR_VALUE_FAILED);
3681 return EINA_FALSE;
3682 }
3683}
3684
3685static Eina_Bool
3686_eina_value_type_blob_convert_from(const Eina_Value_Type *type, const Eina_Value_Type *convert, void *type_mem, const void *convert_mem)
3687{
3688 Eina_Value_Blob desc;
3689 char *buf;
3690
3691 desc.ops = EINA_VALUE_BLOB_OPERATIONS_MALLOC;
3692
3693 if ((convert == EINA_VALUE_TYPE_STRING) ||
3694 (convert == EINA_VALUE_TYPE_STRINGSHARE))
3695 {
3696 const char *str = *(const char **)convert_mem;
3697 if (!str)
3698 {
3699 desc.size = 0;
3700 desc.memory = NULL;
3701 }
3702 else
3703 {
3704 desc.size = strlen(str) + 1;
3705 desc.memory = buf = malloc(desc.size);
3706 if (!desc.memory)
3707 {
3708 eina_error_set(EINA_ERROR_OUT_OF_MEMORY);
3709 return EINA_FALSE;
3710 }
3711 memcpy(buf, str, desc.size);
3712 }
3713 }
3714 else if (convert == EINA_VALUE_TYPE_ARRAY)
3715 {
3716 const Eina_Value_Array *a = convert_mem;
3717 if ((!a->array) || (a->array->len == 0))
3718 {
3719 desc.size = 0;
3720 desc.memory = NULL;
3721 }
3722 else
3723 {
3724 desc.size = a->array->len * a->array->member_size;
3725 desc.memory = buf = malloc(desc.size);
3726 if (!desc.memory)
3727 {
3728 eina_error_set(EINA_ERROR_OUT_OF_MEMORY);
3729 return EINA_FALSE;
3730 }
3731 memcpy(buf, a->array->members, desc.size);
3732 }
3733 }
3734 else if (convert == EINA_VALUE_TYPE_BLOB)
3735 {
3736 const Eina_Value_Blob *b = convert_mem;
3737 if (b->size == 0)
3738 {
3739 desc.size = 0;
3740 desc.memory = NULL;
3741 }
3742 else
3743 {
3744 desc.size = b->size;
3745 desc.memory = buf = malloc(desc.size);
3746 if (!desc.memory)
3747 {
3748 eina_error_set(EINA_ERROR_OUT_OF_MEMORY);
3749 return EINA_FALSE;
3750 }
3751 memcpy(buf, b->memory, desc.size);
3752 }
3753 }
3754 else
3755 {
3756 desc.size = convert->value_size;
3757 desc.memory = buf = malloc(convert->value_size);
3758 if (!desc.memory)
3759 {
3760 eina_error_set(EINA_ERROR_OUT_OF_MEMORY);
3761 return EINA_FALSE;
3762 }
3763 if (!eina_value_type_pget(convert, convert_mem, buf))
3764 {
3765 free(buf);
3766 return EINA_FALSE;
3767 }
3768 }
3769 return eina_value_type_pset(type, type_mem, &desc);
3770}
3771
3772static Eina_Bool
3773_eina_value_type_blob_pset(const Eina_Value_Type *type __UNUSED__, void *mem, const void *ptr)
3774{
3775 const Eina_Value_Blob_Operations *ops = _eina_value_type_blob_ops_get(mem);
3776 Eina_Value_Blob *tmem = mem;
3777 const Eina_Value_Blob *desc = ptr;
3778
3779 if ((ops) && (ops->free))
3780 ops->free(ops, (void *)tmem->memory, tmem->size);
3781
3782 *tmem = *desc;
3783 return EINA_TRUE;
3784}
3785
3786static Eina_Bool
3787_eina_value_type_blob_vset(const Eina_Value_Type *type, void *mem, va_list args)
3788{
3789 const Eina_Value_Blob desc = va_arg(args, Eina_Value_Blob);
3790 _eina_value_type_blob_pset(type, mem, &desc);
3791 return EINA_TRUE;
3792}
3793
3794static Eina_Bool
3795_eina_value_type_blob_pget(const Eina_Value_Type *type __UNUSED__, const void *mem, void *ptr)
3796{
3797 memcpy(ptr, mem, sizeof(Eina_Value_Blob));
3798 return EINA_TRUE;
3799}
3800
3801static const Eina_Value_Type _EINA_VALUE_TYPE_BLOB = {
3802 EINA_VALUE_TYPE_VERSION,
3803 sizeof(Eina_Value_Blob),
3804 "Eina_Value_Blob",
3805 _eina_value_type_blob_setup,
3806 _eina_value_type_blob_flush,
3807 _eina_value_type_blob_copy,
3808 _eina_value_type_blob_compare,
3809 _eina_value_type_blob_convert_to,
3810 _eina_value_type_blob_convert_from,
3811 _eina_value_type_blob_vset,
3812 _eina_value_type_blob_pset,
3813 _eina_value_type_blob_pget
3814};
3815
3816static int
3817_eina_value_struct_operations_binsearch_cmp(const void *pa, const void *pb)
3818{
3819 const Eina_Value_Struct_Member *a = pa, *b = pb;
3820 return strcmp(a->name, b->name);
3821}
3822
3823static const Eina_Value_Struct_Member *
3824_eina_value_struct_operations_binsearch_find_member(const Eina_Value_Struct_Operations *ops __UNUSED__, const Eina_Value_Struct_Desc *desc, const char *name)
3825{
3826 unsigned int count = desc->member_count;
3827 Eina_Value_Struct_Member search;
3828 if (count == 0)
3829 {
3830 const Eina_Value_Struct_Member *itr = desc->members;
3831 for (; itr->name != NULL; itr++)
3832 count++;
3833 }
3834
3835 search.name = name;
3836 return bsearch(&search, desc->members, count,
3837 sizeof(Eina_Value_Struct_Member),
3838 _eina_value_struct_operations_binsearch_cmp);
3839}
3840
3841static Eina_Value_Struct_Operations _EINA_VALUE_STRUCT_OPERATIONS_BINSEARCH = {
3842 EINA_VALUE_STRUCT_OPERATIONS_VERSION,
3843 NULL, /* default alloc */
3844 NULL, /* default free */
3845 NULL, /* default copy */
3846 NULL, /* default compare */
3847 _eina_value_struct_operations_binsearch_find_member
3848};
3849
3850static const Eina_Value_Struct_Member *
3851_eina_value_struct_operations_stringshare_find_member(const Eina_Value_Struct_Operations *ops __UNUSED__, const Eina_Value_Struct_Desc *desc, const char *name)
3852{
3853 const Eina_Value_Struct_Member *itr = desc->members;
3854
3855 /* assumes name is stringshared.
3856 *
3857 * we do this because it's the recommended usage pattern, moreover
3858 * we expect to find the member, as users shouldn't look for
3859 * non-existent members!
3860 */
3861 if (desc->member_count > 0)
3862 {
3863 const Eina_Value_Struct_Member *itr_end = itr + desc->member_count;
3864 for (; itr < itr_end; itr++)
3865 if (itr->name == name)
3866 return itr;
3867 }
3868 else
3869 {
3870 for (; itr->name != NULL; itr++)
3871 if (itr->name == name)
3872 return itr;
3873 }
3874
3875 name = eina_stringshare_add(name);
3876 eina_stringshare_del(name); /* we'll not use the contents, this is fine */
3877 /* stringshare and look again */
3878 if (desc->member_count > 0)
3879 {
3880 const Eina_Value_Struct_Member *itr_end = itr + desc->member_count;
3881 for (; itr < itr_end; itr++)
3882 if (itr->name == name)
3883 return itr;
3884 }
3885 else
3886 {
3887 for (; itr->name != NULL; itr++)
3888 if (itr->name == name)
3889 return itr;
3890 }
3891
3892 return NULL;
3893}
3894
3895static Eina_Value_Struct_Operations _EINA_VALUE_STRUCT_OPERATIONS_STRINGSHARE = {
3896 EINA_VALUE_STRUCT_OPERATIONS_VERSION,
3897 NULL, /* default alloc */
3898 NULL, /* default free */
3899 NULL, /* default copy */
3900 NULL, /* default compare */
3901 _eina_value_struct_operations_stringshare_find_member
3902};
3903
3904static inline const Eina_Value_Struct_Operations *
3905_eina_value_type_struct_ops_get(const Eina_Value_Struct *st)
3906{
3907 if (!st) return NULL;
3908 if (!st->desc) return NULL;
3909 if (!st->desc->ops) return NULL;
3910 EINA_SAFETY_ON_FALSE_RETURN_VAL
3911 (st->desc->ops->version == EINA_VALUE_STRUCT_OPERATIONS_VERSION, NULL);
3912 return st->desc->ops;
3913}
3914
3915EAPI const Eina_Value_Struct_Member *
3916eina_value_struct_member_find(const Eina_Value_Struct *st, const char *name)
3917{
3918 const Eina_Value_Struct_Operations *ops;
3919 const Eina_Value_Struct_Member *itr;
3920
3921 EINA_SAFETY_ON_NULL_RETURN_VAL(st, NULL);
3922 EINA_SAFETY_ON_NULL_RETURN_VAL(st->desc, NULL);
3923
3924 ops = _eina_value_type_struct_ops_get(st);
3925 if ((ops) && (ops->find_member))
3926 return ops->find_member(ops, st->desc, name);
3927
3928 itr = st->desc->members;
3929 if (st->desc->member_count)
3930 {
3931 const Eina_Value_Struct_Member *itr_end = itr + st->desc->member_count;
3932 for (; itr < itr_end; itr++)
3933 {
3934 if (strcmp(name, itr->name) == 0)
3935 return itr;
3936 }
3937 return NULL;
3938 }
3939 else
3940 {
3941 for (; itr->name != NULL; itr++)
3942 {
3943 if (strcmp(name, itr->name) == 0)
3944 return itr;
3945 }
3946 return NULL;
3947 }
3948}
3949
3950static Eina_Bool
3951_eina_value_type_struct_setup(const Eina_Value_Type *type __UNUSED__, void *mem)
3952{
3953 memset(mem, 0, sizeof(Eina_Value_Struct));
3954 return EINA_TRUE;
3955}
3956
3957static Eina_Bool
3958_eina_value_type_struct_flush_member(const Eina_Value_Struct_Member *member, Eina_Value_Struct *st)
3959{
3960 unsigned char *base = st->memory;
3961 return eina_value_type_flush(member->type, base + member->offset);
3962}
3963
3964static Eina_Bool
3965_eina_value_type_struct_flush(const Eina_Value_Type *type __UNUSED__, void *mem)
3966{
3967 const Eina_Value_Struct_Operations *ops;
3968 const Eina_Value_Struct_Member *itr;
3969 Eina_Value_Struct *tmem = mem;
3970 Eina_Bool ret = EINA_TRUE;
3971
3972 itr = tmem->desc->members;
3973 if (tmem->desc->member_count > 0)
3974 {
3975 const Eina_Value_Struct_Member *itr_end;
3976 itr_end = itr + tmem->desc->member_count;
3977 for (; itr < itr_end; itr++)
3978 ret &= _eina_value_type_struct_flush_member(itr, tmem);
3979 }
3980 else
3981 {
3982 for (; itr->name != NULL; itr++)
3983 ret &= _eina_value_type_struct_flush_member(itr, tmem);
3984 }
3985
3986 ops = _eina_value_type_struct_ops_get(mem);
3987 if ((ops) && (ops->free))
3988 ops->free(ops, tmem->desc, tmem->memory);
3989 else
3990 free(tmem->memory);
3991
3992 return ret;
3993}
3994
3995static Eina_Bool
3996_eina_value_type_struct_copy_member(const Eina_Value_Struct_Member *member, const Eina_Value_Struct *s, Eina_Value_Struct *d)
3997{
3998 const unsigned char *base_s = s->memory;
3999 unsigned char *base_d = d->memory;
4000 return eina_value_type_copy(member->type,
4001 base_s + member->offset,
4002 base_d + member->offset);
4003}
4004
4005static Eina_Bool
4006_eina_value_type_struct_copy(const Eina_Value_Type *type __UNUSED__, const void *src, void *dst)
4007{
4008 const Eina_Value_Struct_Operations *ops;
4009 const Eina_Value_Struct_Member *itr;
4010 const Eina_Value_Struct *s = src;
4011 Eina_Value_Struct *d = dst;
4012
4013 *d = *s;
4014
4015 ops = _eina_value_type_struct_ops_get(src);
4016 if ((ops) && (ops->copy))
4017 {
4018 d->memory = ops->copy(ops, s->desc, s->memory);
4019 if (d->memory == NULL)
4020 return EINA_FALSE;
4021 return EINA_TRUE;
4022 }
4023
4024 d->memory = malloc(s->desc->size);
4025 if (!d->memory)
4026 {
4027 eina_error_set(EINA_ERROR_OUT_OF_MEMORY);
4028 return EINA_FALSE;
4029 }
4030
4031 itr = s->desc->members;
4032 if (s->desc->member_count > 0)
4033 {
4034 const Eina_Value_Struct_Member *itr_end = itr + s->desc->member_count;
4035 for (; itr < itr_end; itr++)
4036 if (!_eina_value_type_struct_copy_member(itr, s, d))
4037 goto error;
4038 }
4039 else
4040 {
4041 for (; itr->name != NULL; itr++)
4042 if (!_eina_value_type_struct_copy_member(itr, s, d))
4043 goto error;
4044 }
4045
4046
4047 return EINA_TRUE;
4048
4049 error:
4050 itr--;
4051 for (; itr >= s->desc->members; itr--)
4052 _eina_value_type_struct_flush_member(itr, d);
4053 free(d->memory);
4054 return EINA_FALSE;
4055}
4056
4057static inline int
4058_eina_value_type_struct_compare_member(const Eina_Value_Struct_Member *member, const Eina_Value_Struct *ta, const Eina_Value_Struct *tb)
4059{
4060 const unsigned char *base_a = ta->memory;
4061 const unsigned char *base_b = tb->memory;
4062 return eina_value_type_compare(member->type,
4063 base_a + member->offset,
4064 base_b + member->offset);
4065}
4066
4067static int
4068_eina_value_type_struct_compare(const Eina_Value_Type *type __UNUSED__, const void *a, const void *b)
4069{
4070 const Eina_Value_Struct_Operations *ops = _eina_value_type_struct_ops_get(a);
4071 const Eina_Value_Struct *ta = a, *tb = b;
4072 const Eina_Value_Struct_Member *itr;
4073 int cmp = 0;
4074
4075 if (ta->desc != tb->desc)
4076 {
4077 eina_error_set(EINA_ERROR_VALUE_FAILED);
4078 return -1;
4079 }
4080 if (ta->desc->ops != tb->desc->ops)
4081 {
4082 eina_error_set(EINA_ERROR_VALUE_FAILED);
4083 return -1;
4084 }
4085 if ((!ta->memory) && (!tb->memory))
4086 return 0;
4087 else if (!ta->memory)
4088 return -1;
4089 else if (!tb->memory)
4090 return 1;
4091
4092 if ((ops) && (ops->compare))
4093 return ops->compare(ops, ta->desc, ta->memory, tb->memory);
4094
4095 itr = ta->desc->members;
4096 if (ta->desc->member_count > 0)
4097 {
4098 const Eina_Value_Struct_Member *itr_end = itr + ta->desc->member_count;
4099 for (; (cmp == 0) && (itr < itr_end); itr++)
4100 cmp = _eina_value_type_struct_compare_member(itr, ta, tb);
4101 }
4102 else
4103 {
4104 for (; (cmp == 0) && (itr->name != NULL); itr++)
4105 cmp = _eina_value_type_struct_compare_member(itr, ta, tb);
4106 }
4107 return cmp;
4108}
4109
4110static void
4111_eina_value_type_struct_convert_to_string_member(const Eina_Value_Struct *st, const Eina_Value_Struct_Member *member, Eina_Strbuf *str)
4112{
4113 const unsigned char *p = st->memory;
4114 Eina_Bool first = st->desc->members == member;
4115 Eina_Bool r = EINA_FALSE;
4116
4117 if (first) eina_strbuf_append_printf(str, "%s: ", member->name);
4118 else eina_strbuf_append_printf(str, ", %s: ", member->name);
4119
4120 if ((member->type) && (member->type->convert_to))
4121 {
4122 const Eina_Value_Type *type = member->type;
4123 char *conv = NULL;
4124
4125 r = eina_value_type_convert_to(type, EINA_VALUE_TYPE_STRING,
4126 p + member->offset, &conv);
4127 if (r)
4128 {
4129 eina_strbuf_append(str, conv);
4130 free(conv);
4131 }
4132 }
4133
4134 if (!r)
4135 eina_strbuf_append_char(str, '?');
4136}
4137
4138static Eina_Bool
4139_eina_value_type_struct_convert_to(const Eina_Value_Type *type __UNUSED__, const Eina_Value_Type *convert, const void *type_mem, void *convert_mem)
4140{
4141 const Eina_Value_Struct *tmem = type_mem;
4142
4143 eina_error_set(0);
4144 if (convert == EINA_VALUE_TYPE_STRINGSHARE ||
4145 convert == EINA_VALUE_TYPE_STRING)
4146 {
4147 Eina_Strbuf *str = eina_strbuf_new();
4148 const char *s;
4149 Eina_Bool ret;
4150
4151 if (!tmem->memory) eina_strbuf_append(str, "{}");
4152 else
4153 {
4154 const Eina_Value_Struct_Member *itr = tmem->desc->members;
4155
4156 eina_strbuf_append_char(str, '{');
4157
4158 if (tmem->desc->member_count > 0)
4159 {
4160 const Eina_Value_Struct_Member *itr_end;
4161
4162 itr_end = itr + tmem->desc->member_count;
4163 for (; itr < itr_end; itr++)
4164 _eina_value_type_struct_convert_to_string_member
4165 (tmem, itr, str);
4166 }
4167 else
4168 {
4169 for (; itr->name != NULL; itr++)
4170 _eina_value_type_struct_convert_to_string_member
4171 (tmem, itr, str);
4172 }
4173
4174 eina_strbuf_append_char(str, '}');
4175 }
4176 s = eina_strbuf_string_get(str);
4177 ret = eina_value_type_pset(convert, convert_mem, &s);
4178 eina_strbuf_free(str);
4179 return ret;
4180 }
4181 else
4182 {
4183 eina_error_set(EINA_ERROR_VALUE_FAILED);
4184 return EINA_FALSE;
4185 }
4186}
4187
4188static Eina_Bool
4189_eina_value_type_struct_desc_check(const Eina_Value_Struct_Desc *desc)
4190{
4191 unsigned int minsize = 0;
4192 const Eina_Value_Struct_Member *itr;
4193
4194 EINA_SAFETY_ON_NULL_RETURN_VAL(desc, EINA_FALSE);
4195 EINA_SAFETY_ON_FALSE_RETURN_VAL
4196 (desc->version == EINA_VALUE_STRUCT_DESC_VERSION, EINA_FALSE);
4197
4198 itr = desc->members;
4199 if (desc->member_count > 0)
4200 {
4201 const Eina_Value_Struct_Member *itr_end = itr + desc->member_count;
4202 for (; itr < itr_end; itr++)
4203 {
4204 unsigned int member_end;
4205
4206 EINA_SAFETY_ON_FALSE_RETURN_VAL
4207 (eina_value_type_check(itr->type), EINA_FALSE);
4208 EINA_SAFETY_ON_FALSE_RETURN_VAL
4209 (itr->type->value_size > 0, EINA_FALSE);
4210
4211 member_end = itr->offset + itr->type->value_size;
4212 if (minsize < member_end)
4213 minsize = member_end;
4214 }
4215 }
4216 else
4217 {
4218 for (; itr->name != NULL; itr++)
4219 {
4220 unsigned int member_end;
4221
4222 EINA_SAFETY_ON_FALSE_RETURN_VAL
4223 (eina_value_type_check(itr->type), EINA_FALSE);
4224 EINA_SAFETY_ON_FALSE_RETURN_VAL
4225 (itr->type->value_size > 0, EINA_FALSE);
4226
4227 member_end = itr->offset + itr->type->value_size;
4228 if (minsize < member_end)
4229 minsize = member_end;
4230 }
4231 }
4232
4233 EINA_SAFETY_ON_FALSE_RETURN_VAL(minsize > 0, EINA_FALSE);
4234 EINA_SAFETY_ON_FALSE_RETURN_VAL(desc->size >= minsize, EINA_FALSE);
4235 return EINA_TRUE;
4236}
4237
4238static Eina_Bool
4239_eina_value_type_struct_pset(const Eina_Value_Type *type __UNUSED__, void *mem, const void *ptr)
4240{
4241 const Eina_Value_Struct_Operations *ops = _eina_value_type_struct_ops_get(mem);
4242 Eina_Value_Struct *tmem = mem;
4243 const Eina_Value_Struct *desc = ptr;
4244
4245 if (!_eina_value_type_struct_desc_check(desc->desc))
4246 {
4247 eina_error_set(EINA_ERROR_VALUE_FAILED);
4248 return EINA_FALSE;
4249 }
4250
4251 if ((ops) && (ops->free))
4252 ops->free(ops, tmem->desc, tmem->memory);
4253 else
4254 free(tmem->memory);
4255
4256 *tmem = *desc;
4257
4258 ops = _eina_value_type_struct_ops_get(desc);
4259 if (!tmem->memory)
4260 {
4261 if ((ops) && (ops->alloc))
4262 tmem->memory = ops->alloc(ops, tmem->desc);
4263 else
4264 tmem->memory = malloc(tmem->desc->size);
4265
4266 if (!tmem->memory)
4267 {
4268 eina_error_set(EINA_ERROR_OUT_OF_MEMORY);
4269 return EINA_FALSE;
4270 }
4271 }
4272
4273 eina_error_set(0);
4274 return EINA_TRUE;
4275}
4276
4277static Eina_Bool
4278_eina_value_type_struct_vset(const Eina_Value_Type *type, void *mem, va_list args)
4279{
4280 const Eina_Value_Struct desc = va_arg(args, Eina_Value_Struct);
4281 _eina_value_type_struct_pset(type, mem, &desc);
4282 return EINA_TRUE;
4283}
4284
4285static Eina_Bool
4286_eina_value_type_struct_pget(const Eina_Value_Type *type __UNUSED__, const void *mem, void *ptr)
4287{
4288 memcpy(ptr, mem, sizeof(Eina_Value_Struct));
4289 return EINA_TRUE;
4290}
4291
4292static const Eina_Value_Type _EINA_VALUE_TYPE_STRUCT = {
4293 EINA_VALUE_TYPE_VERSION,
4294 sizeof(Eina_Value_Struct),
4295 "Eina_Value_Struct",
4296 _eina_value_type_struct_setup,
4297 _eina_value_type_struct_flush,
4298 _eina_value_type_struct_copy,
4299 _eina_value_type_struct_compare,
4300 _eina_value_type_struct_convert_to,
4301 NULL, /* no convert from */
4302 _eina_value_type_struct_vset,
4303 _eina_value_type_struct_pset,
4304 _eina_value_type_struct_pget
4305};
4306
4307/* keep all basic types inlined in an array so we can compare if it's
4308 * a basic type using pointer arithmetic.
4309 *
4310 * NOTE-1: JUST BASIC TYPES, DO NOT ADD MORE TYPES HERE!!!
4311 * NOTE-2: KEEP ORDER, see eina_value_init()
4312 */
4313static const Eina_Value_Type _EINA_VALUE_TYPE_BASICS[] = {
4314 {
4315 EINA_VALUE_TYPE_VERSION,
4316 sizeof(unsigned char),
4317 "unsigned char",
4318 _eina_value_type_uchar_setup,
4319 _eina_value_type_uchar_flush,
4320 _eina_value_type_uchar_copy,
4321 _eina_value_type_uchar_compare,
4322 _eina_value_type_uchar_convert_to,
4323 NULL, /* no convert from */
4324 _eina_value_type_uchar_vset,
4325 _eina_value_type_uchar_pset,
4326 _eina_value_type_uchar_pget
4327 },
4328 {
4329 EINA_VALUE_TYPE_VERSION,
4330 sizeof(unsigned short),
4331 "unsigned short",
4332 _eina_value_type_ushort_setup,
4333 _eina_value_type_ushort_flush,
4334 _eina_value_type_ushort_copy,
4335 _eina_value_type_ushort_compare,
4336 _eina_value_type_ushort_convert_to,
4337 NULL, /* no convert from */
4338 _eina_value_type_ushort_vset,
4339 _eina_value_type_ushort_pset,
4340 _eina_value_type_ushort_pget
4341 },
4342 {
4343 EINA_VALUE_TYPE_VERSION,
4344 sizeof(unsigned int),
4345 "unsigned int",
4346 _eina_value_type_uint_setup,
4347 _eina_value_type_uint_flush,
4348 _eina_value_type_uint_copy,
4349 _eina_value_type_uint_compare,
4350 _eina_value_type_uint_convert_to,
4351 NULL, /* no convert from */
4352 _eina_value_type_uint_vset,
4353 _eina_value_type_uint_pset,
4354 _eina_value_type_uint_pget
4355 },
4356 {
4357 EINA_VALUE_TYPE_VERSION,
4358 sizeof(unsigned long),
4359 "unsigned long",
4360 _eina_value_type_ulong_setup,
4361 _eina_value_type_ulong_flush,
4362 _eina_value_type_ulong_copy,
4363 _eina_value_type_ulong_compare,
4364 _eina_value_type_ulong_convert_to,
4365 NULL, /* no convert from */
4366 _eina_value_type_ulong_vset,
4367 _eina_value_type_ulong_pset,
4368 _eina_value_type_ulong_pget
4369 },
4370 {
4371 EINA_VALUE_TYPE_VERSION,
4372 sizeof(uint64_t),
4373 "uint64_t",
4374 _eina_value_type_uint64_setup,
4375 _eina_value_type_uint64_flush,
4376 _eina_value_type_uint64_copy,
4377 _eina_value_type_uint64_compare,
4378 _eina_value_type_uint64_convert_to,
4379 NULL, /* no convert from */
4380 _eina_value_type_uint64_vset,
4381 _eina_value_type_uint64_pset,
4382 _eina_value_type_uint64_pget
4383 },
4384 {
4385 EINA_VALUE_TYPE_VERSION,
4386 sizeof(char),
4387 "char",
4388 _eina_value_type_char_setup,
4389 _eina_value_type_char_flush,
4390 _eina_value_type_char_copy,
4391 _eina_value_type_char_compare,
4392 _eina_value_type_char_convert_to,
4393 NULL, /* no convert from */
4394 _eina_value_type_char_vset,
4395 _eina_value_type_char_pset,
4396 _eina_value_type_char_pget
4397 },
4398 {
4399 EINA_VALUE_TYPE_VERSION,
4400 sizeof(short),
4401 "short",
4402 _eina_value_type_short_setup,
4403 _eina_value_type_short_flush,
4404 _eina_value_type_short_copy,
4405 _eina_value_type_short_compare,
4406 _eina_value_type_short_convert_to,
4407 NULL, /* no convert from */
4408 _eina_value_type_short_vset,
4409 _eina_value_type_short_pset,
4410 _eina_value_type_short_pget
4411 },
4412 {
4413 EINA_VALUE_TYPE_VERSION,
4414 sizeof(int),
4415 "int",
4416 _eina_value_type_int_setup,
4417 _eina_value_type_int_flush,
4418 _eina_value_type_int_copy,
4419 _eina_value_type_int_compare,
4420 _eina_value_type_int_convert_to,
4421 NULL, /* no convert from */
4422 _eina_value_type_int_vset,
4423 _eina_value_type_int_pset,
4424 _eina_value_type_int_pget
4425 },
4426 {
4427 EINA_VALUE_TYPE_VERSION,
4428 sizeof(long),
4429 "long",
4430 _eina_value_type_long_setup,
4431 _eina_value_type_long_flush,
4432 _eina_value_type_long_copy,
4433 _eina_value_type_long_compare,
4434 _eina_value_type_long_convert_to,
4435 NULL, /* no convert from */
4436 _eina_value_type_long_vset,
4437 _eina_value_type_long_pset,
4438 _eina_value_type_long_pget
4439 },
4440 {
4441 EINA_VALUE_TYPE_VERSION,
4442 sizeof(int64_t),
4443 "int64_t",
4444 _eina_value_type_int64_setup,
4445 _eina_value_type_int64_flush,
4446 _eina_value_type_int64_copy,
4447 _eina_value_type_int64_compare,
4448 _eina_value_type_int64_convert_to,
4449 NULL, /* no convert from */
4450 _eina_value_type_int64_vset,
4451 _eina_value_type_int64_pset,
4452 _eina_value_type_int64_pget
4453 },
4454 {
4455 EINA_VALUE_TYPE_VERSION,
4456 sizeof(float),
4457 "float",
4458 _eina_value_type_float_setup,
4459 _eina_value_type_float_flush,
4460 _eina_value_type_float_copy,
4461 _eina_value_type_float_compare,
4462 _eina_value_type_float_convert_to,
4463 NULL, /* no convert from */
4464 _eina_value_type_float_vset,
4465 _eina_value_type_float_pset,
4466 _eina_value_type_float_pget
4467 },
4468 {
4469 EINA_VALUE_TYPE_VERSION,
4470 sizeof(double),
4471 "double",
4472 _eina_value_type_double_setup,
4473 _eina_value_type_double_flush,
4474 _eina_value_type_double_copy,
4475 _eina_value_type_double_compare,
4476 _eina_value_type_double_convert_to,
4477 NULL, /* no convert from */
4478 _eina_value_type_double_vset,
4479 _eina_value_type_double_pset,
4480 _eina_value_type_double_pget
4481 },
4482 {
4483 EINA_VALUE_TYPE_VERSION,
4484 sizeof(const char *),
4485 "stringshare",
4486 _eina_value_type_string_common_setup,
4487 _eina_value_type_stringshare_flush,
4488 _eina_value_type_stringshare_copy,
4489 _eina_value_type_string_common_compare,
4490 _eina_value_type_string_common_convert_to,
4491 NULL, /* no convert from */
4492 _eina_value_type_stringshare_vset,
4493 _eina_value_type_stringshare_pset,
4494 _eina_value_type_string_common_pget
4495 },
4496 {
4497 EINA_VALUE_TYPE_VERSION,
4498 sizeof(char *),
4499 "string",
4500 _eina_value_type_string_common_setup,
4501 _eina_value_type_string_flush,
4502 _eina_value_type_string_copy,
4503 _eina_value_type_string_common_compare,
4504 _eina_value_type_string_common_convert_to,
4505 NULL, /* no convert from */
4506 _eina_value_type_string_vset,
4507 _eina_value_type_string_pset,
4508 _eina_value_type_string_common_pget
4509 }
4510};
4511
4512static void
4513_eina_value_blob_operations_malloc_free(const Eina_Value_Blob_Operations *ops __UNUSED__, void *memory, size_t size __UNUSED__)
4514{
4515 free(memory);
4516}
4517
4518static void *
4519_eina_value_blob_operations_malloc_copy(const Eina_Value_Blob_Operations *ops __UNUSED__, const void *memory, size_t size)
4520{
4521 void *ret = malloc(size);
4522 if (!ret)
4523 {
4524 eina_error_set(EINA_ERROR_OUT_OF_MEMORY);
4525 return NULL;
4526 }
4527 memcpy(ret, memory, size);
4528 return ret;
4529}
4530
4531static const Eina_Value_Blob_Operations _EINA_VALUE_BLOB_OPERATIONS_MALLOC = {
4532 EINA_VALUE_BLOB_OPERATIONS_VERSION,
4533 _eina_value_blob_operations_malloc_free,
4534 _eina_value_blob_operations_malloc_copy,
4535 NULL,
4536 NULL
4537};
4538
4539typedef struct _Eina_Value_Inner_Mp Eina_Value_Inner_Mp;
4540struct _Eina_Value_Inner_Mp
4541{
4542 Eina_Mempool *mempool;
4543 int references;
4544};
4545
4546/**
4547 * @endcond
4548 */
4549
4550static const char EINA_ERROR_VALUE_FAILED_STR[] = "Value check failed.";
4551
4552/**
4553 */
4554
4555static inline void
4556_eina_value_inner_mp_dispose(int size, Eina_Value_Inner_Mp *imp)
4557{
4558 EINA_SAFETY_ON_FALSE_RETURN(imp->references == 0);
4559
4560 eina_hash_del_by_key(_eina_value_inner_mps, &size);
4561 eina_mempool_del(imp->mempool);
4562 free(imp);
4563}
4564
4565static inline Eina_Value_Inner_Mp *
4566_eina_value_inner_mp_get(int size)
4567{
4568 Eina_Value_Inner_Mp *imp = eina_hash_find(_eina_value_inner_mps, &size);
4569 if (imp) return imp;
4570
4571 imp = malloc(sizeof(Eina_Value_Inner_Mp));
4572 if (!imp)
4573 return NULL;
4574
4575 imp->references = 0;
4576
4577 imp->mempool = eina_mempool_add(_eina_value_mp_choice,
4578 "Eina_Value_Inner_Mp", NULL, size, 128);
4579 if (!imp->mempool)
4580 {
4581 free(imp);
4582 return NULL;
4583 }
4584
4585 if (!eina_hash_add(_eina_value_inner_mps, &size, imp))
4586 {
4587 eina_mempool_del(imp->mempool);
4588 free(imp);
4589 return NULL;
4590 }
4591
4592 return imp;
4593}
4594
4595static inline void *
4596_eina_value_inner_alloc_internal(int size)
4597{
4598 Eina_Value_Inner_Mp *imp;
4599 void *mem;
4600
4601 imp = _eina_value_inner_mp_get(size);
4602 if (!imp) return NULL;
4603
4604 mem = eina_mempool_malloc(imp->mempool, size);
4605 if (mem) imp->references++;
4606 else if (imp->references == 0) _eina_value_inner_mp_dispose(size, imp);
4607
4608 return mem;
4609}
4610
4611static inline void
4612_eina_value_inner_free_internal(int size, void *mem)
4613{
4614 Eina_Value_Inner_Mp *imp = eina_hash_find(_eina_value_inner_mps, &size);
4615 EINA_SAFETY_ON_NULL_RETURN(imp);
4616
4617 eina_mempool_free(imp->mempool, mem);
4618
4619 imp->references--;
4620 if (imp->references > 0) return;
4621 _eina_value_inner_mp_dispose(size, imp);
4622}
4623
4624EAPI void *
4625eina_value_inner_alloc(size_t size)
4626{
4627 void *mem;
4628
4629 if (size > 256) return malloc(size);
4630
4631 eina_lock_take(&_eina_value_inner_mps_lock);
4632 mem = _eina_value_inner_alloc_internal(size);
4633 eina_lock_release(&_eina_value_inner_mps_lock);
4634
4635 return mem;
4636}
4637
4638EAPI void
4639eina_value_inner_free(size_t size, void *mem)
4640{
4641 if (size > 256)
4642 {
4643 free(mem);
4644 return;
4645 }
4646
4647 eina_lock_take(&_eina_value_inner_mps_lock);
4648 _eina_value_inner_free_internal(size, mem);
4649 eina_lock_release(&_eina_value_inner_mps_lock);
4650}
4651
4652/**
4653 * @internal
4654 * @brief Initialize the value module.
4655 *
4656 * @return #EINA_TRUE on success, #EINA_FALSE on failure.
4657 *
4658 * This function sets up the value module of Eina. It is called
4659 * by eina_init().
4660 *
4661 * @see eina_init()
4662 */
4663Eina_Bool
4664eina_value_init(void)
4665{
4666 const char *choice, *tmp;
4667
4668 _eina_value_log_dom = eina_log_domain_register("eina_value",
4669 EINA_LOG_COLOR_DEFAULT);
4670 if (_eina_value_log_dom < 0)
4671 {
4672 EINA_LOG_ERR("Could not register log domain: eina_value");
4673 return EINA_FALSE;
4674 }
4675
4676#ifdef EINA_DEFAULT_MEMPOOL
4677 choice = "pass_through";
4678#else
4679 choice = "chained_mempool";
4680#endif
4681 tmp = getenv("EINA_MEMPOOL");
4682 if (tmp && tmp[0])
4683 choice = tmp;
4684
4685 if (choice)
4686 _eina_value_mp_choice = strdup(choice);
4687
4688 _eina_value_mp = eina_mempool_add
4689 (_eina_value_mp_choice, "value", NULL, sizeof(Eina_Value), 320);
4690 if (!_eina_value_mp)
4691 {
4692 ERR("Mempool for value cannot be allocated in value init.");
4693 goto on_init_fail_mp;
4694 }
4695
4696 if (!eina_lock_new(&_eina_value_inner_mps_lock))
4697 {
4698 ERR("Cannot create lock in value init.");
4699 goto on_init_fail_lock;
4700 }
4701 _eina_value_inner_mps = eina_hash_int32_new(NULL);
4702 if (!_eina_value_inner_mps)
4703 {
4704 ERR("Cannot create hash for inner mempools in value init.");
4705 goto on_init_fail_hash;
4706 }
4707
4708 EINA_ERROR_VALUE_FAILED = eina_error_msg_static_register(
4709 EINA_ERROR_VALUE_FAILED_STR);
4710
4711 EINA_VALUE_TYPE_UCHAR = _EINA_VALUE_TYPE_BASICS + 0;
4712 EINA_VALUE_TYPE_USHORT = _EINA_VALUE_TYPE_BASICS + 1;
4713 EINA_VALUE_TYPE_UINT = _EINA_VALUE_TYPE_BASICS + 2;
4714 EINA_VALUE_TYPE_ULONG = _EINA_VALUE_TYPE_BASICS + 3;
4715 EINA_VALUE_TYPE_UINT64 = _EINA_VALUE_TYPE_BASICS + 4;
4716 EINA_VALUE_TYPE_CHAR = _EINA_VALUE_TYPE_BASICS + 5;
4717 EINA_VALUE_TYPE_SHORT = _EINA_VALUE_TYPE_BASICS + 6;
4718 EINA_VALUE_TYPE_INT = _EINA_VALUE_TYPE_BASICS + 7;
4719 EINA_VALUE_TYPE_LONG = _EINA_VALUE_TYPE_BASICS + 8;
4720 EINA_VALUE_TYPE_INT64 = _EINA_VALUE_TYPE_BASICS + 9;
4721 EINA_VALUE_TYPE_FLOAT = _EINA_VALUE_TYPE_BASICS + 10;
4722 EINA_VALUE_TYPE_DOUBLE = _EINA_VALUE_TYPE_BASICS + 11;
4723 EINA_VALUE_TYPE_STRINGSHARE = _EINA_VALUE_TYPE_BASICS + 12;
4724 EINA_VALUE_TYPE_STRING = _EINA_VALUE_TYPE_BASICS + 13;
4725
4726 _EINA_VALUE_TYPE_BASICS_START = _EINA_VALUE_TYPE_BASICS + 0;
4727 _EINA_VALUE_TYPE_BASICS_END = _EINA_VALUE_TYPE_BASICS + 13;
4728
4729 EINA_SAFETY_ON_FALSE_RETURN_VAL((sizeof(_EINA_VALUE_TYPE_BASICS)/sizeof(_EINA_VALUE_TYPE_BASICS[0])) == 14, EINA_FALSE);
4730
4731
4732 EINA_VALUE_TYPE_ARRAY = &_EINA_VALUE_TYPE_ARRAY;
4733 EINA_VALUE_TYPE_LIST = &_EINA_VALUE_TYPE_LIST;
4734 EINA_VALUE_TYPE_HASH = &_EINA_VALUE_TYPE_HASH;
4735 EINA_VALUE_TYPE_TIMEVAL = &_EINA_VALUE_TYPE_TIMEVAL;
4736 EINA_VALUE_TYPE_BLOB = &_EINA_VALUE_TYPE_BLOB;
4737 EINA_VALUE_TYPE_STRUCT = &_EINA_VALUE_TYPE_STRUCT;
4738
4739 EINA_VALUE_BLOB_OPERATIONS_MALLOC = &_EINA_VALUE_BLOB_OPERATIONS_MALLOC;
4740
4741 EINA_VALUE_STRUCT_OPERATIONS_BINSEARCH = &_EINA_VALUE_STRUCT_OPERATIONS_BINSEARCH;
4742 EINA_VALUE_STRUCT_OPERATIONS_STRINGSHARE = &_EINA_VALUE_STRUCT_OPERATIONS_STRINGSHARE;
4743
4744 return EINA_TRUE;
4745
4746 on_init_fail_hash:
4747 eina_lock_free(&_eina_value_inner_mps_lock);
4748 on_init_fail_lock:
4749 eina_mempool_del(_eina_value_mp);
4750 on_init_fail_mp:
4751 free(_eina_value_mp_choice);
4752 _eina_value_mp_choice = NULL;
4753 eina_log_domain_unregister(_eina_value_log_dom);
4754 _eina_value_log_dom = -1;
4755 return EINA_FALSE;
4756}
4757
4758/**
4759 * @internal
4760 * @brief Shut down the value module.
4761 *
4762 * @return #EINA_TRUE on success, #EINA_FALSE on failure.
4763 *
4764 * This function shuts down the value module set up by
4765 * eina_value_init(). It is called by eina_shutdown().
4766 *
4767 * @see eina_shutdown()
4768 */
4769Eina_Bool
4770eina_value_shutdown(void)
4771{
4772 eina_lock_take(&_eina_value_inner_mps_lock);
4773 if (eina_hash_population(_eina_value_inner_mps) != 0)
4774 ERR("Cannot free eina_value internal memory pools -- still in use!");
4775 else
4776 eina_hash_free(_eina_value_inner_mps);
4777 eina_lock_release(&_eina_value_inner_mps_lock);
4778 eina_lock_free(&_eina_value_inner_mps_lock);
4779
4780 free(_eina_value_mp_choice);
4781 _eina_value_mp_choice = NULL;
4782 eina_mempool_del(_eina_value_mp);
4783 eina_log_domain_unregister(_eina_value_log_dom);
4784 _eina_value_log_dom = -1;
4785 return EINA_TRUE;
4786}
33 4787
34/*============================================================================* 4788/*============================================================================*
35* Global * 4789* Global *
@@ -39,9 +4793,232 @@
39* API * 4793* API *
40*============================================================================*/ 4794*============================================================================*/
41 4795
4796EAPI const Eina_Value_Type *_EINA_VALUE_TYPE_BASICS_START = NULL;
4797EAPI const Eina_Value_Type *_EINA_VALUE_TYPE_BASICS_END = NULL;
4798
4799EAPI const Eina_Value_Type *EINA_VALUE_TYPE_UCHAR = NULL;
4800EAPI const Eina_Value_Type *EINA_VALUE_TYPE_USHORT = NULL;
4801EAPI const Eina_Value_Type *EINA_VALUE_TYPE_UINT = NULL;
4802EAPI const Eina_Value_Type *EINA_VALUE_TYPE_ULONG = NULL;
4803EAPI const Eina_Value_Type *EINA_VALUE_TYPE_UINT64 = NULL;
4804EAPI const Eina_Value_Type *EINA_VALUE_TYPE_CHAR = NULL;
4805EAPI const Eina_Value_Type *EINA_VALUE_TYPE_SHORT = NULL;
4806EAPI const Eina_Value_Type *EINA_VALUE_TYPE_INT = NULL;
4807EAPI const Eina_Value_Type *EINA_VALUE_TYPE_LONG = NULL;
4808EAPI const Eina_Value_Type *EINA_VALUE_TYPE_INT64 = NULL;
4809EAPI const Eina_Value_Type *EINA_VALUE_TYPE_FLOAT = NULL;
4810EAPI const Eina_Value_Type *EINA_VALUE_TYPE_DOUBLE = NULL;
4811EAPI const Eina_Value_Type *EINA_VALUE_TYPE_STRINGSHARE = NULL;
4812EAPI const Eina_Value_Type *EINA_VALUE_TYPE_STRING = NULL;
4813EAPI const Eina_Value_Type *EINA_VALUE_TYPE_ARRAY = NULL;
4814EAPI const Eina_Value_Type *EINA_VALUE_TYPE_LIST = NULL;
4815EAPI const Eina_Value_Type *EINA_VALUE_TYPE_HASH = NULL;
4816EAPI const Eina_Value_Type *EINA_VALUE_TYPE_TIMEVAL = NULL;
4817EAPI const Eina_Value_Type *EINA_VALUE_TYPE_BLOB = NULL;
4818EAPI const Eina_Value_Type *EINA_VALUE_TYPE_STRUCT = NULL;
4819
4820EAPI const Eina_Value_Blob_Operations *EINA_VALUE_BLOB_OPERATIONS_MALLOC = NULL;
4821
4822EAPI const Eina_Value_Struct_Operations *EINA_VALUE_STRUCT_OPERATIONS_BINSEARCH = NULL;
4823EAPI const Eina_Value_Struct_Operations *EINA_VALUE_STRUCT_OPERATIONS_STRINGSHARE = NULL;
4824
4825EAPI Eina_Error EINA_ERROR_VALUE_FAILED = 0;
4826
42EAPI const unsigned int eina_prime_table[] = 4827EAPI const unsigned int eina_prime_table[] =
43{ 4828{
44 17, 31, 61, 127, 257, 509, 1021, 4829 17, 31, 61, 127, 257, 509, 1021,
45 2053, 4093, 8191, 16381, 32771, 65537, 131071, 262147, 524287, 1048573, 4830 2053, 4093, 8191, 16381, 32771, 65537, 131071, 262147, 524287, 1048573,
46 2097143, 4194301, 8388617, 16777213 4831 2097143, 4194301, 8388617, 16777213
47}; 4832};
4833
4834EAPI Eina_Value *
4835eina_value_new(const Eina_Value_Type *type)
4836{
4837 Eina_Value *value = eina_mempool_malloc(_eina_value_mp, sizeof(Eina_Value));;
4838 if (!value)
4839 {
4840 eina_error_set(EINA_ERROR_OUT_OF_MEMORY);
4841 return NULL;
4842 }
4843 if (!eina_value_setup(value, type))
4844 {
4845 free(value);
4846 return NULL;
4847 }
4848 return value;
4849}
4850
4851EAPI void
4852eina_value_free(Eina_Value *value)
4853{
4854 EINA_SAFETY_ON_NULL_RETURN(value);
4855 eina_value_flush(value);
4856 eina_mempool_free(_eina_value_mp, value);
4857}
4858
4859
4860EAPI Eina_Bool
4861eina_value_copy(const Eina_Value *value, Eina_Value *copy)
4862{
4863 const Eina_Value_Type *type;
4864 const void *src;
4865 void *dst;
4866 Eina_Bool ret;
4867
4868 EINA_SAFETY_ON_NULL_RETURN_VAL(value, EINA_FALSE);
4869 EINA_SAFETY_ON_FALSE_RETURN_VAL(eina_value_type_check(value->type),
4870 EINA_FALSE);
4871 EINA_SAFETY_ON_NULL_RETURN_VAL(copy, EINA_FALSE);
4872 EINA_SAFETY_ON_NULL_RETURN_VAL(value->type->copy, EINA_FALSE);
4873
4874 type = value->type;
4875 if (!eina_value_setup(copy, type))
4876 return EINA_FALSE;
4877
4878 src = eina_value_memory_get(value);
4879 dst = eina_value_memory_get(copy);
4880 ret = type->copy(type, src, dst);
4881 if (!ret)
4882 eina_value_flush(copy);
4883
4884 return ret;
4885}
4886
4887EAPI Eina_Bool
4888eina_value_convert(const Eina_Value *value, Eina_Value *convert)
4889{
4890 Eina_Bool ret = EINA_FALSE;
4891 const Eina_Value_Type *type, *convert_type;
4892 const void *type_mem;
4893 void *convert_mem;
4894
4895 EINA_SAFETY_ON_NULL_RETURN_VAL(value, EINA_FALSE);
4896 EINA_SAFETY_ON_NULL_RETURN_VAL(convert, EINA_FALSE);
4897 EINA_SAFETY_ON_FALSE_RETURN_VAL(eina_value_type_check(value->type),
4898 EINA_FALSE);
4899 EINA_SAFETY_ON_FALSE_RETURN_VAL(eina_value_type_check(convert->type),
4900 EINA_FALSE);
4901
4902 type = value->type;
4903 convert_type = convert->type;
4904
4905 type_mem = eina_value_memory_get(value);
4906 convert_mem = eina_value_memory_get(convert);
4907
4908 if (type->convert_to)
4909 ret = type->convert_to(type, convert_type, type_mem, convert_mem);
4910
4911 if ((!ret) && (convert_type->convert_from))
4912 ret = convert_type->convert_from(convert_type, type, convert_mem,
4913 type_mem);
4914
4915 return ret;
4916}
4917
4918EAPI char *
4919eina_value_to_string(const Eina_Value *value)
4920{
4921 Eina_Value tmp;
4922
4923 EINA_SAFETY_ON_NULL_RETURN_VAL(value, NULL);
4924 EINA_SAFETY_ON_FALSE_RETURN_VAL(eina_value_type_check(value->type), NULL);
4925
4926 if (!eina_value_setup(&tmp, EINA_VALUE_TYPE_STRING))
4927 return NULL;
4928 if (!eina_value_convert(value, &tmp))
4929 return NULL;
4930
4931 return tmp.value.ptr; /* steal value */
4932}
4933
4934EAPI Eina_Value *
4935eina_value_array_new(const Eina_Value_Type *subtype, unsigned int step)
4936{
4937 Eina_Value *value;
4938
4939 EINA_SAFETY_ON_FALSE_RETURN_VAL(eina_value_type_check(subtype), EINA_FALSE);
4940
4941 value = eina_mempool_malloc(_eina_value_mp, sizeof(Eina_Value));;
4942 if (!value)
4943 return NULL;
4944
4945 if (!eina_value_array_setup(value, subtype, step))
4946 {
4947 eina_mempool_free(_eina_value_mp, value);
4948 return NULL;
4949 }
4950
4951 return value;
4952}
4953
4954EAPI Eina_Value *
4955eina_value_list_new(const Eina_Value_Type *subtype)
4956{
4957 Eina_Value *value;
4958
4959 EINA_SAFETY_ON_FALSE_RETURN_VAL(eina_value_type_check(subtype), EINA_FALSE);
4960
4961 value = eina_mempool_malloc(_eina_value_mp, sizeof(Eina_Value));;
4962 if (!value)
4963 return NULL;
4964
4965 if (!eina_value_list_setup(value, subtype))
4966 {
4967 eina_mempool_free(_eina_value_mp, value);
4968 return NULL;
4969 }
4970
4971 return value;
4972}
4973
4974EAPI Eina_Value *
4975eina_value_hash_new(const Eina_Value_Type *subtype, unsigned int buckets_power_size)
4976{
4977 Eina_Value *value;
4978
4979 EINA_SAFETY_ON_FALSE_RETURN_VAL(eina_value_type_check(subtype), EINA_FALSE);
4980
4981 value = eina_mempool_malloc(_eina_value_mp, sizeof(Eina_Value));;
4982 if (!value)
4983 return NULL;
4984
4985 if (!eina_value_hash_setup(value, subtype, buckets_power_size))
4986 {
4987 eina_mempool_free(_eina_value_mp, value);
4988 return NULL;
4989 }
4990
4991 return value;
4992}
4993
4994EAPI Eina_Value *
4995eina_value_struct_new(const Eina_Value_Struct_Desc *desc)
4996{
4997 Eina_Value *value;
4998
4999 value = eina_mempool_malloc(_eina_value_mp, sizeof(Eina_Value));;
5000 if (!value)
5001 return NULL;
5002
5003 if (!eina_value_struct_setup(value, desc))
5004 {
5005 eina_mempool_free(_eina_value_mp, value);
5006 return NULL;
5007 }
5008
5009 return value;
5010}
5011
5012EAPI Eina_Bool
5013eina_value_type_check(const Eina_Value_Type *type)
5014{
5015 EINA_SAFETY_ON_NULL_RETURN_VAL(type, EINA_FALSE);
5016 return type->version == EINA_VALUE_TYPE_VERSION;
5017}
5018
5019EAPI const char *
5020eina_value_type_name_get(const Eina_Value_Type *type)
5021{
5022 EINA_SAFETY_ON_FALSE_RETURN_VAL(eina_value_type_check(type), NULL);
5023 return type->name;
5024}
diff --git a/libraries/eina/src/lib/eina_xattr.c b/libraries/eina/src/lib/eina_xattr.c
index bd5b98e..d4ed139 100644
--- a/libraries/eina/src/lib/eina_xattr.c
+++ b/libraries/eina/src/lib/eina_xattr.c
@@ -20,6 +20,7 @@
20# include "config.h" 20# include "config.h"
21#endif 21#endif
22 22
23#include <stdlib.h>
23#include <sys/types.h> 24#include <sys/types.h>
24#include <string.h> 25#include <string.h>
25#include <math.h> 26#include <math.h>
@@ -34,6 +35,7 @@
34#include "eina_safety_checks.h" 35#include "eina_safety_checks.h"
35#include "eina_xattr.h" 36#include "eina_xattr.h"
36#include "eina_convert.h" 37#include "eina_convert.h"
38#include "eina_stringshare.h"
37 39
38/*============================================================================* 40/*============================================================================*
39 * Local * 41 * Local *
@@ -49,14 +51,83 @@ struct _Eina_Xattr_Iterator
49{ 51{
50 Eina_Iterator iterator; 52 Eina_Iterator iterator;
51 53
54 const char *file;
55 Eina_Xattr *attr;
56
52 ssize_t length; 57 ssize_t length;
53 ssize_t offset; 58 ssize_t offset;
54 59
60 int fd;
61
55 char xattr[1]; 62 char xattr[1];
56}; 63};
57 64
58#ifdef HAVE_XATTR 65#ifdef HAVE_XATTR
59static Eina_Bool 66static Eina_Bool
67_eina_xattr_value_ls_fd_iterator_next(Eina_Xattr_Iterator *it, void **data)
68{
69 char *tmp;
70
71 if (it->offset >= it->length)
72 return EINA_FALSE;
73
74 *data = it->attr;
75 it->attr->name = it->xattr + it->offset;
76
77 it->attr->length = fgetxattr(it->fd, it->attr->name, NULL, 0);
78 if (it->attr->length)
79 {
80 tmp = realloc((void*) it->attr->value, it->attr->length);
81 if (!tmp)
82 {
83 free((void*) it->attr->value);
84 it->attr->value = NULL;
85 it->attr->length = 0;
86 }
87 else
88 {
89 it->attr->length = fgetxattr(it->fd, it->attr->name,
90 (void *) it->attr->value,
91 it->attr->length);
92 }
93 }
94
95 return EINA_TRUE;
96}
97
98static Eina_Bool
99_eina_xattr_value_ls_iterator_next(Eina_Xattr_Iterator *it, void **data)
100{
101 char *tmp;
102
103 if (it->offset >= it->length)
104 return EINA_FALSE;
105
106 *data = it->attr;
107 it->attr->name = it->xattr + it->offset;
108
109 it->attr->length = getxattr(it->file, it->attr->name, NULL, 0);
110 if (it->attr->length)
111 {
112 tmp = realloc((void*) it->attr->value, it->attr->length);
113 if (!tmp)
114 {
115 free((void*) it->attr->value);
116 it->attr->value = NULL;
117 it->attr->length = 0;
118 }
119 else
120 {
121 it->attr->length = getxattr(it->file, it->attr->name,
122 (void*) it->attr->value,
123 it->attr->length);
124 }
125 }
126
127 return EINA_TRUE;
128}
129
130static Eina_Bool
60_eina_xattr_ls_iterator_next(Eina_Xattr_Iterator *it, void **data) 131_eina_xattr_ls_iterator_next(Eina_Xattr_Iterator *it, void **data)
61{ 132{
62 if (it->offset >= it->length) 133 if (it->offset >= it->length)
@@ -78,6 +149,9 @@ static void
78_eina_xattr_ls_iterator_free(Eina_Xattr_Iterator *it) 149_eina_xattr_ls_iterator_free(Eina_Xattr_Iterator *it)
79{ 150{
80 EINA_MAGIC_SET(&it->iterator, 0); 151 EINA_MAGIC_SET(&it->iterator, 0);
152 if (it->attr) free((void *) it->attr->value);
153 eina_stringshare_del(it->file);
154 free(it->attr);
81 free(it); 155 free(it);
82} 156}
83#endif 157#endif
@@ -96,6 +170,85 @@ _eina_xattr_ls_iterator_free(Eina_Xattr_Iterator *it)
96 * API * 170 * API *
97 *============================================================================*/ 171 *============================================================================*/
98 172
173EAPI Eina_Iterator *
174eina_xattr_value_fd_ls(int fd)
175{
176#ifdef HAVE_XATTR
177 Eina_Xattr_Iterator *it;
178 ssize_t length;
179
180 if (fd < 0) return NULL;
181
182 length = flistxattr(fd, NULL, 0);
183 if (length <= 0) return NULL;
184
185 it = calloc(1, sizeof (Eina_Xattr_Iterator) + length - 1);
186 if (!it) return NULL;
187
188 it->attr = calloc(1, sizeof (Eina_Xattr));
189 if (!it->attr)
190 {
191 free(it);
192 return NULL;
193 }
194
195 EINA_MAGIC_SET(&it->iterator, EINA_MAGIC_ITERATOR);
196
197 it->fd = fd;
198 it->length = flistxattr(fd, it->xattr, length);
199 if (it->length != length)
200 {
201 free(it);
202 return NULL;
203 }
204
205 it->iterator.version = EINA_ITERATOR_VERSION;
206 it->iterator.next = FUNC_ITERATOR_NEXT(_eina_xattr_value_ls_fd_iterator_next);
207 it->iterator.get_container = FUNC_ITERATOR_GET_CONTAINER(_eina_xattr_ls_iterator_container);
208 it->iterator.free = FUNC_ITERATOR_FREE(_eina_xattr_ls_iterator_free);
209
210 return &it->iterator;
211#else
212 return NULL;
213 (void)fd;
214#endif
215}
216
217EAPI Eina_Iterator *
218eina_xattr_fd_ls(int fd)
219{
220#ifdef HAVE_XATTR
221 Eina_Xattr_Iterator *it;
222 ssize_t length;
223
224 if (fd < 0) return NULL;
225
226 length = flistxattr(fd, NULL, 0);
227 if (length <= 0) return NULL;
228
229 it = calloc(1, sizeof (Eina_Xattr_Iterator) + length - 1);
230 if (!it) return NULL;
231
232 EINA_MAGIC_SET(&it->iterator, EINA_MAGIC_ITERATOR);
233
234 it->length = flistxattr(fd, it->xattr, length);
235 if (it->length != length)
236 {
237 free(it);
238 return NULL;
239 }
240
241 it->iterator.version = EINA_ITERATOR_VERSION;
242 it->iterator.next = FUNC_ITERATOR_NEXT(_eina_xattr_ls_iterator_next);
243 it->iterator.get_container = FUNC_ITERATOR_GET_CONTAINER(_eina_xattr_ls_iterator_container);
244 it->iterator.free = FUNC_ITERATOR_FREE(_eina_xattr_ls_iterator_free);
245
246 return &it->iterator;
247#else
248 return NULL;
249 (void)fd;
250#endif
251}
99 252
100EAPI Eina_Iterator * 253EAPI Eina_Iterator *
101eina_xattr_ls(const char *file) 254eina_xattr_ls(const char *file)
@@ -133,6 +286,44 @@ eina_xattr_ls(const char *file)
133#endif 286#endif
134} 287}
135 288
289EAPI Eina_Iterator *
290eina_xattr_value_ls(const char *file)
291{
292#ifdef HAVE_XATTR
293 Eina_Xattr_Iterator *it;
294 ssize_t length;
295
296 EINA_SAFETY_ON_NULL_RETURN_VAL(file, NULL);
297
298 length = listxattr(file, NULL, 0);
299 if (length <= 0) return NULL;
300
301 it = calloc(1, sizeof (Eina_Xattr_Iterator) + length - 1);
302 if (!it) return NULL;
303
304 EINA_MAGIC_SET(&it->iterator, EINA_MAGIC_ITERATOR);
305
306 it->length = listxattr(file, it->xattr, length);
307 if (it->length != length)
308 {
309 free(it);
310 return NULL;
311 }
312
313 it->file = eina_stringshare_add(file);
314
315 it->iterator.version = EINA_ITERATOR_VERSION;
316 it->iterator.next = FUNC_ITERATOR_NEXT(_eina_xattr_value_ls_iterator_next);
317 it->iterator.get_container = FUNC_ITERATOR_GET_CONTAINER(_eina_xattr_ls_iterator_container);
318 it->iterator.free = FUNC_ITERATOR_FREE(_eina_xattr_ls_iterator_free);
319
320 return &it->iterator;
321#else
322 return NULL;
323 (void)file;
324#endif
325}
326
136EAPI void * 327EAPI void *
137eina_xattr_get(const char *file, const char *attribute, ssize_t *size) 328eina_xattr_get(const char *file, const char *attribute, ssize_t *size)
138{ 329{
diff --git a/libraries/eina/src/modules/Makefile.in b/libraries/eina/src/modules/Makefile.in
index f3385f1..1ee8386 100644
--- a/libraries/eina/src/modules/Makefile.in
+++ b/libraries/eina/src/modules/Makefile.in
@@ -147,7 +147,9 @@ EFL_SIMD_FLAGS = @EFL_SIMD_FLAGS@
147EGREP = @EGREP@ 147EGREP = @EGREP@
148EINA_CFLAGS = @EINA_CFLAGS@ 148EINA_CFLAGS = @EINA_CFLAGS@
149EINA_CONFIGURE_DEFAULT_MEMPOOL = @EINA_CONFIGURE_DEFAULT_MEMPOOL@ 149EINA_CONFIGURE_DEFAULT_MEMPOOL = @EINA_CONFIGURE_DEFAULT_MEMPOOL@
150EINA_CONFIGURE_ENABLE_LOG = @EINA_CONFIGURE_ENABLE_LOG@
150EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@ 151EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@
152EINA_CONFIGURE_HAVE_DIRENT_H = @EINA_CONFIGURE_HAVE_DIRENT_H@
151EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@ 153EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@
152EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@ 154EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@
153EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@ 155EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@
@@ -199,8 +201,6 @@ PACKAGE_URL = @PACKAGE_URL@
199PACKAGE_VERSION = @PACKAGE_VERSION@ 201PACKAGE_VERSION = @PACKAGE_VERSION@
200PATH_SEPARATOR = @PATH_SEPARATOR@ 202PATH_SEPARATOR = @PATH_SEPARATOR@
201PKG_CONFIG = @PKG_CONFIG@ 203PKG_CONFIG = @PKG_CONFIG@
202PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
203PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
204RANLIB = @RANLIB@ 204RANLIB = @RANLIB@
205SED = @SED@ 205SED = @SED@
206SET_MAKE = @SET_MAKE@ 206SET_MAKE = @SET_MAKE@
diff --git a/libraries/eina/src/modules/mp/Makefile.in b/libraries/eina/src/modules/mp/Makefile.in
index d7e67ad..d3a6dd9 100644
--- a/libraries/eina/src/modules/mp/Makefile.in
+++ b/libraries/eina/src/modules/mp/Makefile.in
@@ -155,7 +155,9 @@ EFL_SIMD_FLAGS = @EFL_SIMD_FLAGS@
155EGREP = @EGREP@ 155EGREP = @EGREP@
156EINA_CFLAGS = @EINA_CFLAGS@ 156EINA_CFLAGS = @EINA_CFLAGS@
157EINA_CONFIGURE_DEFAULT_MEMPOOL = @EINA_CONFIGURE_DEFAULT_MEMPOOL@ 157EINA_CONFIGURE_DEFAULT_MEMPOOL = @EINA_CONFIGURE_DEFAULT_MEMPOOL@
158EINA_CONFIGURE_ENABLE_LOG = @EINA_CONFIGURE_ENABLE_LOG@
158EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@ 159EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@
160EINA_CONFIGURE_HAVE_DIRENT_H = @EINA_CONFIGURE_HAVE_DIRENT_H@
159EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@ 161EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@
160EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@ 162EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@
161EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@ 163EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@
@@ -207,8 +209,6 @@ PACKAGE_URL = @PACKAGE_URL@
207PACKAGE_VERSION = @PACKAGE_VERSION@ 209PACKAGE_VERSION = @PACKAGE_VERSION@
208PATH_SEPARATOR = @PATH_SEPARATOR@ 210PATH_SEPARATOR = @PATH_SEPARATOR@
209PKG_CONFIG = @PKG_CONFIG@ 211PKG_CONFIG = @PKG_CONFIG@
210PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
211PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
212RANLIB = @RANLIB@ 212RANLIB = @RANLIB@
213SED = @SED@ 213SED = @SED@
214SET_MAKE = @SET_MAKE@ 214SET_MAKE = @SET_MAKE@
diff --git a/libraries/eina/src/modules/mp/buddy/Makefile.in b/libraries/eina/src/modules/mp/buddy/Makefile.in
index 64d7fc7..5619b2c 100644
--- a/libraries/eina/src/modules/mp/buddy/Makefile.in
+++ b/libraries/eina/src/modules/mp/buddy/Makefile.in
@@ -163,7 +163,9 @@ EFL_SIMD_FLAGS = @EFL_SIMD_FLAGS@
163EGREP = @EGREP@ 163EGREP = @EGREP@
164EINA_CFLAGS = @EINA_CFLAGS@ 164EINA_CFLAGS = @EINA_CFLAGS@
165EINA_CONFIGURE_DEFAULT_MEMPOOL = @EINA_CONFIGURE_DEFAULT_MEMPOOL@ 165EINA_CONFIGURE_DEFAULT_MEMPOOL = @EINA_CONFIGURE_DEFAULT_MEMPOOL@
166EINA_CONFIGURE_ENABLE_LOG = @EINA_CONFIGURE_ENABLE_LOG@
166EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@ 167EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@
168EINA_CONFIGURE_HAVE_DIRENT_H = @EINA_CONFIGURE_HAVE_DIRENT_H@
167EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@ 169EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@
168EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@ 170EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@
169EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@ 171EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@
@@ -215,8 +217,6 @@ PACKAGE_URL = @PACKAGE_URL@
215PACKAGE_VERSION = @PACKAGE_VERSION@ 217PACKAGE_VERSION = @PACKAGE_VERSION@
216PATH_SEPARATOR = @PATH_SEPARATOR@ 218PATH_SEPARATOR = @PATH_SEPARATOR@
217PKG_CONFIG = @PKG_CONFIG@ 219PKG_CONFIG = @PKG_CONFIG@
218PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
219PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
220RANLIB = @RANLIB@ 220RANLIB = @RANLIB@
221SED = @SED@ 221SED = @SED@
222SET_MAKE = @SET_MAKE@ 222SET_MAKE = @SET_MAKE@
diff --git a/libraries/eina/src/modules/mp/buddy/eina_buddy.c b/libraries/eina/src/modules/mp/buddy/eina_buddy.c
index f402c6f..7d830db 100644
--- a/libraries/eina/src/modules/mp/buddy/eina_buddy.c
+++ b/libraries/eina/src/modules/mp/buddy/eina_buddy.c
@@ -133,23 +133,23 @@ static void _free(void *data, void *element)
133 Buddy *b = data; 133 Buddy *b = data;
134 Block *block, *buddy; 134 Block *block, *buddy;
135 size_t offset; 135 size_t offset;
136 size_t index; 136 size_t idx;
137 137
138 offset = (unsigned char *)element - (unsigned char *)b->heap; 138 offset = (unsigned char *)element - (unsigned char *)b->heap;
139 if (offset > b->size) 139 if (offset > b->size)
140 return; 140 return;
141 141
142 index = offset >> b->min_order; 142 idx = offset >> b->min_order;
143 block = &b->blocks[index]; 143 block = &b->blocks[idx];
144 144
145 //printf("free %x index = %d order = %d buddy = %d\n", offset, index, block->order, index ^ (1 << block->order)); 145 //printf("free %x idx = %d order = %d buddy = %d\n", offset, idx, block->order, idx ^ (1 << block->order));
146 /* we should always work with the buddy at right */ 146 /* we should always work with the buddy at right */
147 if (index & (1 << block->order)) 147 if (idx & (1 << block->order))
148 { 148 {
149 Block *left; 149 Block *left;
150 150
151 index = index ^ (1 << block->order); 151 idx = idx ^ (1 << block->order);
152 left = &b->blocks[index]; 152 left = &b->blocks[idx];
153 if (!left->available) 153 if (!left->available)
154 goto end; 154 goto end;
155 else 155 else
@@ -170,7 +170,7 @@ check:
170 170
171 } 171 }
172 172
173 buddy = &b->blocks[index ^ (1 << block->order)]; 173 buddy = &b->blocks[idx ^ (1 << block->order)];
174 if (!buddy->available) 174 if (!buddy->available)
175 { 175 {
176 goto end; /* merge two blocks */ 176 goto end; /* merge two blocks */
@@ -239,7 +239,7 @@ static void _statistics(void *data)
239 239
240 printf("Information:\n"); 240 printf("Information:\n");
241 printf( 241 printf(
242 "size = %li, min_order = %d, max_order = %d, num_order = %d, num_blocks = %d (%luKB)\n", 242 "size = %zu, min_order = %d, max_order = %d, num_order = %d, num_blocks = %d (%uKB)\n",
243 b->size, 243 b->size,
244 b->min_order, 244 b->min_order,
245 b->max_order, 245 b->max_order,
@@ -255,7 +255,7 @@ static void _statistics(void *data)
255 printf("\n2^%d:", b->min_order + i); 255 printf("\n2^%d:", b->min_order + i);
256 EINA_INLIST_FOREACH(b->areas[i], block) 256 EINA_INLIST_FOREACH(b->areas[i], block)
257 { 257 {
258 printf(" %li", (block - &b->blocks[0])); 258 printf(" %d", (block - &b->blocks[0]));
259 } 259 }
260 } 260 }
261 printf("\nBlocks dumping:\n"); 261 printf("\nBlocks dumping:\n");
diff --git a/libraries/eina/src/modules/mp/chained_pool/Makefile.in b/libraries/eina/src/modules/mp/chained_pool/Makefile.in
index b728672..03b639f 100644
--- a/libraries/eina/src/modules/mp/chained_pool/Makefile.in
+++ b/libraries/eina/src/modules/mp/chained_pool/Makefile.in
@@ -163,7 +163,9 @@ EFL_SIMD_FLAGS = @EFL_SIMD_FLAGS@
163EGREP = @EGREP@ 163EGREP = @EGREP@
164EINA_CFLAGS = @EINA_CFLAGS@ 164EINA_CFLAGS = @EINA_CFLAGS@
165EINA_CONFIGURE_DEFAULT_MEMPOOL = @EINA_CONFIGURE_DEFAULT_MEMPOOL@ 165EINA_CONFIGURE_DEFAULT_MEMPOOL = @EINA_CONFIGURE_DEFAULT_MEMPOOL@
166EINA_CONFIGURE_ENABLE_LOG = @EINA_CONFIGURE_ENABLE_LOG@
166EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@ 167EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@
168EINA_CONFIGURE_HAVE_DIRENT_H = @EINA_CONFIGURE_HAVE_DIRENT_H@
167EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@ 169EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@
168EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@ 170EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@
169EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@ 171EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@
@@ -215,8 +217,6 @@ PACKAGE_URL = @PACKAGE_URL@
215PACKAGE_VERSION = @PACKAGE_VERSION@ 217PACKAGE_VERSION = @PACKAGE_VERSION@
216PATH_SEPARATOR = @PATH_SEPARATOR@ 218PATH_SEPARATOR = @PATH_SEPARATOR@
217PKG_CONFIG = @PKG_CONFIG@ 219PKG_CONFIG = @PKG_CONFIG@
218PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
219PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
220RANLIB = @RANLIB@ 220RANLIB = @RANLIB@
221SED = @SED@ 221SED = @SED@
222SET_MAKE = @SET_MAKE@ 222SET_MAKE = @SET_MAKE@
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 009b62b..020d0ad 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
@@ -31,6 +31,10 @@
31# endif 31# endif
32#endif 32#endif
33 33
34#ifdef EINA_DEBUG_MALLOC
35# include <malloc.h>
36#endif
37
34#ifdef EFL_HAVE_WIN32_THREADS 38#ifdef EFL_HAVE_WIN32_THREADS
35# define WIN32_LEAN_AND_MEAN 39# define WIN32_LEAN_AND_MEAN
36# include <windows.h> 40# include <windows.h>
@@ -51,7 +55,7 @@
51# include <valgrind/memcheck.h> 55# include <valgrind/memcheck.h>
52#endif 56#endif
53 57
54#ifdef DEBUG 58#if defined DEBUG || defined EINA_DEBUG_MALLOC
55#include <assert.h> 59#include <assert.h>
56#include "eina_log.h" 60#include "eina_log.h"
57 61
@@ -74,6 +78,9 @@ struct _Chained_Mempool
74 int alloc_size; 78 int alloc_size;
75 int group_size; 79 int group_size;
76 int usage; 80 int usage;
81#ifdef EINA_DEBUG_MALLOC
82 int minimal_size;
83#endif
77#ifdef EFL_DEBUG_THREADS 84#ifdef EFL_DEBUG_THREADS
78 pthread_t self; 85 pthread_t self;
79#endif 86#endif
@@ -125,6 +132,20 @@ _eina_chained_mp_pool_new(Chained_Mempool *pool)
125 return NULL; 132 return NULL;
126 } 133 }
127 134
135#ifdef EINA_DEBUG_MALLOC
136 {
137 size_t sz;
138
139 sz = malloc_usable_size(p);
140 if (sz - pool->minimal_size > 0)
141 INF("Just allocated %0.2f%% to much memory in '%s' for one block of size %i that means %i bytes to much.",
142 ((float)(sz - pool->minimal_size) * 100) / (float) (pool->alloc_size),
143 pool->name,
144 pool->alloc_size,
145 sz - pool->minimal_size);
146 }
147#endif
148
128 alignof = eina_mempool_alignof(sizeof(Chained_Pool)); 149 alignof = eina_mempool_alignof(sizeof(Chained_Pool));
129 ptr = (unsigned char *)p + alignof; 150 ptr = (unsigned char *)p + alignof;
130 p->usage = 0; 151 p->usage = 0;
@@ -444,6 +465,10 @@ eina_chained_mempool_init(const char *context,
444 memcpy((char *)mp->name, context, length); 465 memcpy((char *)mp->name, context, length);
445 } 466 }
446 467
468#ifdef EINA_DEBUG_MALLOC
469 mp->minimal_size = item_size * mp->pool_size + sizeof(Chained_Pool);
470#endif
471
447 mp->item_alloc = eina_mempool_alignof(item_size); 472 mp->item_alloc = eina_mempool_alignof(item_size);
448 mp->group_size = mp->item_alloc * mp->pool_size; 473 mp->group_size = mp->item_alloc * mp->pool_size;
449 mp->alloc_size = mp->group_size + eina_mempool_alignof(sizeof(Chained_Pool)); 474 mp->alloc_size = mp->group_size + eina_mempool_alignof(sizeof(Chained_Pool));
@@ -517,7 +542,7 @@ static Eina_Mempool_Backend _eina_chained_mp_backend = {
517 542
518Eina_Bool chained_init(void) 543Eina_Bool chained_init(void)
519{ 544{
520#ifdef DEBUG 545#if defined DEBUG || defined EINA_DEBUG_MALLOC
521 _eina_chained_mp_log_dom = eina_log_domain_register("eina_mempool", 546 _eina_chained_mp_log_dom = eina_log_domain_register("eina_mempool",
522 EINA_LOG_COLOR_DEFAULT); 547 EINA_LOG_COLOR_DEFAULT);
523 if (_eina_chained_mp_log_dom < 0) 548 if (_eina_chained_mp_log_dom < 0)
@@ -533,7 +558,7 @@ Eina_Bool chained_init(void)
533void chained_shutdown(void) 558void chained_shutdown(void)
534{ 559{
535 eina_mempool_unregister(&_eina_chained_mp_backend); 560 eina_mempool_unregister(&_eina_chained_mp_backend);
536#ifdef DEBUG 561#if defined DEBUG || defined EINA_DEBUG_MALLOC
537 eina_log_domain_unregister(_eina_chained_mp_log_dom); 562 eina_log_domain_unregister(_eina_chained_mp_log_dom);
538 _eina_chained_mp_log_dom = -1; 563 _eina_chained_mp_log_dom = -1;
539#endif 564#endif
diff --git a/libraries/eina/src/modules/mp/ememoa_fixed/Makefile.in b/libraries/eina/src/modules/mp/ememoa_fixed/Makefile.in
index ec97bb1..ccc4f1a 100644
--- a/libraries/eina/src/modules/mp/ememoa_fixed/Makefile.in
+++ b/libraries/eina/src/modules/mp/ememoa_fixed/Makefile.in
@@ -163,7 +163,9 @@ EFL_SIMD_FLAGS = @EFL_SIMD_FLAGS@
163EGREP = @EGREP@ 163EGREP = @EGREP@
164EINA_CFLAGS = @EINA_CFLAGS@ 164EINA_CFLAGS = @EINA_CFLAGS@
165EINA_CONFIGURE_DEFAULT_MEMPOOL = @EINA_CONFIGURE_DEFAULT_MEMPOOL@ 165EINA_CONFIGURE_DEFAULT_MEMPOOL = @EINA_CONFIGURE_DEFAULT_MEMPOOL@
166EINA_CONFIGURE_ENABLE_LOG = @EINA_CONFIGURE_ENABLE_LOG@
166EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@ 167EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@
168EINA_CONFIGURE_HAVE_DIRENT_H = @EINA_CONFIGURE_HAVE_DIRENT_H@
167EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@ 169EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@
168EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@ 170EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@
169EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@ 171EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@
@@ -215,8 +217,6 @@ PACKAGE_URL = @PACKAGE_URL@
215PACKAGE_VERSION = @PACKAGE_VERSION@ 217PACKAGE_VERSION = @PACKAGE_VERSION@
216PATH_SEPARATOR = @PATH_SEPARATOR@ 218PATH_SEPARATOR = @PATH_SEPARATOR@
217PKG_CONFIG = @PKG_CONFIG@ 219PKG_CONFIG = @PKG_CONFIG@
218PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
219PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
220RANLIB = @RANLIB@ 220RANLIB = @RANLIB@
221SED = @SED@ 221SED = @SED@
222SET_MAKE = @SET_MAKE@ 222SET_MAKE = @SET_MAKE@
diff --git a/libraries/eina/src/modules/mp/ememoa_unknown/Makefile.in b/libraries/eina/src/modules/mp/ememoa_unknown/Makefile.in
index b295c64..8b0ec6e 100644
--- a/libraries/eina/src/modules/mp/ememoa_unknown/Makefile.in
+++ b/libraries/eina/src/modules/mp/ememoa_unknown/Makefile.in
@@ -163,7 +163,9 @@ EFL_SIMD_FLAGS = @EFL_SIMD_FLAGS@
163EGREP = @EGREP@ 163EGREP = @EGREP@
164EINA_CFLAGS = @EINA_CFLAGS@ 164EINA_CFLAGS = @EINA_CFLAGS@
165EINA_CONFIGURE_DEFAULT_MEMPOOL = @EINA_CONFIGURE_DEFAULT_MEMPOOL@ 165EINA_CONFIGURE_DEFAULT_MEMPOOL = @EINA_CONFIGURE_DEFAULT_MEMPOOL@
166EINA_CONFIGURE_ENABLE_LOG = @EINA_CONFIGURE_ENABLE_LOG@
166EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@ 167EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@
168EINA_CONFIGURE_HAVE_DIRENT_H = @EINA_CONFIGURE_HAVE_DIRENT_H@
167EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@ 169EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@
168EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@ 170EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@
169EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@ 171EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@
@@ -215,8 +217,6 @@ PACKAGE_URL = @PACKAGE_URL@
215PACKAGE_VERSION = @PACKAGE_VERSION@ 217PACKAGE_VERSION = @PACKAGE_VERSION@
216PATH_SEPARATOR = @PATH_SEPARATOR@ 218PATH_SEPARATOR = @PATH_SEPARATOR@
217PKG_CONFIG = @PKG_CONFIG@ 219PKG_CONFIG = @PKG_CONFIG@
218PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
219PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
220RANLIB = @RANLIB@ 220RANLIB = @RANLIB@
221SED = @SED@ 221SED = @SED@
222SET_MAKE = @SET_MAKE@ 222SET_MAKE = @SET_MAKE@
diff --git a/libraries/eina/src/modules/mp/fixed_bitmap/Makefile.in b/libraries/eina/src/modules/mp/fixed_bitmap/Makefile.in
index c1541fc..337f820 100644
--- a/libraries/eina/src/modules/mp/fixed_bitmap/Makefile.in
+++ b/libraries/eina/src/modules/mp/fixed_bitmap/Makefile.in
@@ -163,7 +163,9 @@ EFL_SIMD_FLAGS = @EFL_SIMD_FLAGS@
163EGREP = @EGREP@ 163EGREP = @EGREP@
164EINA_CFLAGS = @EINA_CFLAGS@ 164EINA_CFLAGS = @EINA_CFLAGS@
165EINA_CONFIGURE_DEFAULT_MEMPOOL = @EINA_CONFIGURE_DEFAULT_MEMPOOL@ 165EINA_CONFIGURE_DEFAULT_MEMPOOL = @EINA_CONFIGURE_DEFAULT_MEMPOOL@
166EINA_CONFIGURE_ENABLE_LOG = @EINA_CONFIGURE_ENABLE_LOG@
166EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@ 167EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@
168EINA_CONFIGURE_HAVE_DIRENT_H = @EINA_CONFIGURE_HAVE_DIRENT_H@
167EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@ 169EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@
168EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@ 170EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@
169EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@ 171EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@
@@ -215,8 +217,6 @@ PACKAGE_URL = @PACKAGE_URL@
215PACKAGE_VERSION = @PACKAGE_VERSION@ 217PACKAGE_VERSION = @PACKAGE_VERSION@
216PATH_SEPARATOR = @PATH_SEPARATOR@ 218PATH_SEPARATOR = @PATH_SEPARATOR@
217PKG_CONFIG = @PKG_CONFIG@ 219PKG_CONFIG = @PKG_CONFIG@
218PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
219PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
220RANLIB = @RANLIB@ 220RANLIB = @RANLIB@
221SED = @SED@ 221SED = @SED@
222SET_MAKE = @SET_MAKE@ 222SET_MAKE = @SET_MAKE@
diff --git a/libraries/eina/src/modules/mp/one_big/Makefile.in b/libraries/eina/src/modules/mp/one_big/Makefile.in
index e999b78..c8560c9 100644
--- a/libraries/eina/src/modules/mp/one_big/Makefile.in
+++ b/libraries/eina/src/modules/mp/one_big/Makefile.in
@@ -163,7 +163,9 @@ EFL_SIMD_FLAGS = @EFL_SIMD_FLAGS@
163EGREP = @EGREP@ 163EGREP = @EGREP@
164EINA_CFLAGS = @EINA_CFLAGS@ 164EINA_CFLAGS = @EINA_CFLAGS@
165EINA_CONFIGURE_DEFAULT_MEMPOOL = @EINA_CONFIGURE_DEFAULT_MEMPOOL@ 165EINA_CONFIGURE_DEFAULT_MEMPOOL = @EINA_CONFIGURE_DEFAULT_MEMPOOL@
166EINA_CONFIGURE_ENABLE_LOG = @EINA_CONFIGURE_ENABLE_LOG@
166EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@ 167EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@
168EINA_CONFIGURE_HAVE_DIRENT_H = @EINA_CONFIGURE_HAVE_DIRENT_H@
167EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@ 169EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@
168EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@ 170EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@
169EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@ 171EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@
@@ -215,8 +217,6 @@ PACKAGE_URL = @PACKAGE_URL@
215PACKAGE_VERSION = @PACKAGE_VERSION@ 217PACKAGE_VERSION = @PACKAGE_VERSION@
216PATH_SEPARATOR = @PATH_SEPARATOR@ 218PATH_SEPARATOR = @PATH_SEPARATOR@
217PKG_CONFIG = @PKG_CONFIG@ 219PKG_CONFIG = @PKG_CONFIG@
218PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
219PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
220RANLIB = @RANLIB@ 220RANLIB = @RANLIB@
221SED = @SED@ 221SED = @SED@
222SET_MAKE = @SET_MAKE@ 222SET_MAKE = @SET_MAKE@
diff --git a/libraries/eina/src/modules/mp/pass_through/Makefile.in b/libraries/eina/src/modules/mp/pass_through/Makefile.in
index 01e7b51..f5664be 100644
--- a/libraries/eina/src/modules/mp/pass_through/Makefile.in
+++ b/libraries/eina/src/modules/mp/pass_through/Makefile.in
@@ -163,7 +163,9 @@ EFL_SIMD_FLAGS = @EFL_SIMD_FLAGS@
163EGREP = @EGREP@ 163EGREP = @EGREP@
164EINA_CFLAGS = @EINA_CFLAGS@ 164EINA_CFLAGS = @EINA_CFLAGS@
165EINA_CONFIGURE_DEFAULT_MEMPOOL = @EINA_CONFIGURE_DEFAULT_MEMPOOL@ 165EINA_CONFIGURE_DEFAULT_MEMPOOL = @EINA_CONFIGURE_DEFAULT_MEMPOOL@
166EINA_CONFIGURE_ENABLE_LOG = @EINA_CONFIGURE_ENABLE_LOG@
166EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@ 167EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@
168EINA_CONFIGURE_HAVE_DIRENT_H = @EINA_CONFIGURE_HAVE_DIRENT_H@
167EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@ 169EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@
168EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@ 170EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@
169EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@ 171EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@
@@ -215,8 +217,6 @@ PACKAGE_URL = @PACKAGE_URL@
215PACKAGE_VERSION = @PACKAGE_VERSION@ 217PACKAGE_VERSION = @PACKAGE_VERSION@
216PATH_SEPARATOR = @PATH_SEPARATOR@ 218PATH_SEPARATOR = @PATH_SEPARATOR@
217PKG_CONFIG = @PKG_CONFIG@ 219PKG_CONFIG = @PKG_CONFIG@
218PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
219PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
220RANLIB = @RANLIB@ 220RANLIB = @RANLIB@
221SED = @SED@ 221SED = @SED@
222SET_MAKE = @SET_MAKE@ 222SET_MAKE = @SET_MAKE@
diff --git a/libraries/eina/src/tests/Makefile.am b/libraries/eina/src/tests/Makefile.am
index a413e6e..7e05ba9 100644
--- a/libraries/eina/src/tests/Makefile.am
+++ b/libraries/eina/src/tests/Makefile.am
@@ -28,7 +28,7 @@ endif
28 28
29if EFL_ENABLE_TESTS 29if EFL_ENABLE_TESTS
30 30
31check_PROGRAMS = eina_suite 31check_PROGRAMS = eina_suite cxx_compile_test
32 32
33eina_suite_SOURCES = \ 33eina_suite_SOURCES = \
34eina_suite.c \ 34eina_suite.c \
@@ -38,6 +38,7 @@ eina_test_ustringshare.c\
38eina_test_ustr.c \ 38eina_test_ustr.c \
39eina_test_binshare.c \ 39eina_test_binshare.c \
40eina_test_binbuf.c \ 40eina_test_binbuf.c \
41eina_test_inarray.c \
41eina_test_array.c \ 42eina_test_array.c \
42eina_test_clist.c \ 43eina_test_clist.c \
43eina_test_error.c \ 44eina_test_error.c \
@@ -64,10 +65,14 @@ eina_test_tiler.c \
64eina_test_strbuf.c \ 65eina_test_strbuf.c \
65eina_test_str.c \ 66eina_test_str.c \
66eina_test_quadtree.c \ 67eina_test_quadtree.c \
67eina_test_simple_xml_parser.c 68eina_test_simple_xml_parser.c \
69eina_test_value.c
68 70
69eina_suite_LDADD = @CHECK_LIBS@ $(top_builddir)/src/lib/libeina.la -lm 71eina_suite_LDADD = @CHECK_LIBS@ $(top_builddir)/src/lib/libeina.la -lm
70 72
73cxx_compile_test_SOURCES = cxx_compile_test.cxx
74cxx_compile_test_LDADD = $(top_builddir)/src/lib/libeina.la
75
71module_dummydir = $(libdir)/eina/test 76module_dummydir = $(libdir)/eina/test
72module_dummy_LTLIBRARIES = module_dummy.la 77module_dummy_LTLIBRARIES = module_dummy.la
73 78
diff --git a/libraries/eina/src/tests/Makefile.in b/libraries/eina/src/tests/Makefile.in
index b5983b3..c56211a 100644
--- a/libraries/eina/src/tests/Makefile.in
+++ b/libraries/eina/src/tests/Makefile.in
@@ -37,7 +37,8 @@ build_triplet = @build@
37host_triplet = @host@ 37host_triplet = @host@
38@EINA_HAVE_GLIB_TRUE@am__append_1 = -DEINA_BENCH_HAVE_GLIB 38@EINA_HAVE_GLIB_TRUE@am__append_1 = -DEINA_BENCH_HAVE_GLIB
39@EINA_ENABLE_BENCHMARK_E17_TRUE@am__append_2 = -DEINA_ENABLE_BENCH_E17 39@EINA_ENABLE_BENCHMARK_E17_TRUE@am__append_2 = -DEINA_ENABLE_BENCH_E17
40@EFL_ENABLE_TESTS_TRUE@check_PROGRAMS = eina_suite$(EXEEXT) 40@EFL_ENABLE_TESTS_TRUE@check_PROGRAMS = eina_suite$(EXEEXT) \
41@EFL_ENABLE_TESTS_TRUE@ cxx_compile_test$(EXEEXT)
41@EFL_ENABLE_BENCHMARK_TRUE@bench_PROGRAMS = eina_bench$(EXEEXT) 42@EFL_ENABLE_BENCHMARK_TRUE@bench_PROGRAMS = eina_bench$(EXEEXT)
42subdir = src/tests 43subdir = src/tests
43DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in 44DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
@@ -107,6 +108,12 @@ module_dummy_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
107@EFL_ENABLE_TESTS_TRUE@am_module_dummy_la_rpath = -rpath \ 108@EFL_ENABLE_TESTS_TRUE@am_module_dummy_la_rpath = -rpath \
108@EFL_ENABLE_TESTS_TRUE@ $(module_dummydir) 109@EFL_ENABLE_TESTS_TRUE@ $(module_dummydir)
109PROGRAMS = $(bench_PROGRAMS) 110PROGRAMS = $(bench_PROGRAMS)
111am__cxx_compile_test_SOURCES_DIST = cxx_compile_test.cxx
112@EFL_ENABLE_TESTS_TRUE@am_cxx_compile_test_OBJECTS = \
113@EFL_ENABLE_TESTS_TRUE@ cxx_compile_test.$(OBJEXT)
114cxx_compile_test_OBJECTS = $(am_cxx_compile_test_OBJECTS)
115@EFL_ENABLE_TESTS_TRUE@cxx_compile_test_DEPENDENCIES = \
116@EFL_ENABLE_TESTS_TRUE@ $(top_builddir)/src/lib/libeina.la
110am__eina_bench_SOURCES_DIST = eina_bench.c eina_bench_sort.c \ 117am__eina_bench_SOURCES_DIST = eina_bench.c eina_bench_sort.c \
111 eina_bench_hash.c eina_bench_stringshare.c \ 118 eina_bench_hash.c eina_bench_stringshare.c \
112 eina_bench_convert.c eina_bench_mempool.c \ 119 eina_bench_convert.c eina_bench_mempool.c \
@@ -142,16 +149,17 @@ eina_bench_OBJECTS = $(am_eina_bench_OBJECTS)
142am__eina_suite_SOURCES_DIST = eina_suite.c eina_test_fp.c \ 149am__eina_suite_SOURCES_DIST = eina_suite.c eina_test_fp.c \
143 eina_test_stringshare.c eina_test_ustringshare.c \ 150 eina_test_stringshare.c eina_test_ustringshare.c \
144 eina_test_ustr.c eina_test_binshare.c eina_test_binbuf.c \ 151 eina_test_ustr.c eina_test_binshare.c eina_test_binbuf.c \
145 eina_test_array.c eina_test_clist.c eina_test_error.c \ 152 eina_test_inarray.c eina_test_array.c eina_test_clist.c \
146 eina_test_sched.c eina_test_log.c eina_test_magic.c \ 153 eina_test_error.c eina_test_sched.c eina_test_log.c \
147 eina_test_inlist.c eina_test_main.c eina_test_counter.c \ 154 eina_test_magic.c eina_test_inlist.c eina_test_main.c \
148 eina_test_lalloc.c eina_test_hash.c eina_test_iterator.c \ 155 eina_test_counter.c eina_test_lalloc.c eina_test_hash.c \
149 eina_test_accessor.c eina_test_module.c eina_test_convert.c \ 156 eina_test_iterator.c eina_test_accessor.c eina_test_module.c \
150 eina_test_rbtree.c eina_test_file.c eina_test_benchmark.c \ 157 eina_test_convert.c eina_test_rbtree.c eina_test_file.c \
151 eina_test_mempool.c eina_test_rectangle.c eina_test_list.c \ 158 eina_test_benchmark.c eina_test_mempool.c \
159 eina_test_rectangle.c eina_test_list.c \
152 eina_test_matrixsparse.c eina_test_tiler.c eina_test_strbuf.c \ 160 eina_test_matrixsparse.c eina_test_tiler.c eina_test_strbuf.c \
153 eina_test_str.c eina_test_quadtree.c \ 161 eina_test_str.c eina_test_quadtree.c \
154 eina_test_simple_xml_parser.c 162 eina_test_simple_xml_parser.c eina_test_value.c
155@EFL_ENABLE_TESTS_TRUE@am_eina_suite_OBJECTS = eina_suite.$(OBJEXT) \ 163@EFL_ENABLE_TESTS_TRUE@am_eina_suite_OBJECTS = eina_suite.$(OBJEXT) \
156@EFL_ENABLE_TESTS_TRUE@ eina_test_fp.$(OBJEXT) \ 164@EFL_ENABLE_TESTS_TRUE@ eina_test_fp.$(OBJEXT) \
157@EFL_ENABLE_TESTS_TRUE@ eina_test_stringshare.$(OBJEXT) \ 165@EFL_ENABLE_TESTS_TRUE@ eina_test_stringshare.$(OBJEXT) \
@@ -159,6 +167,7 @@ am__eina_suite_SOURCES_DIST = eina_suite.c eina_test_fp.c \
159@EFL_ENABLE_TESTS_TRUE@ eina_test_ustr.$(OBJEXT) \ 167@EFL_ENABLE_TESTS_TRUE@ eina_test_ustr.$(OBJEXT) \
160@EFL_ENABLE_TESTS_TRUE@ eina_test_binshare.$(OBJEXT) \ 168@EFL_ENABLE_TESTS_TRUE@ eina_test_binshare.$(OBJEXT) \
161@EFL_ENABLE_TESTS_TRUE@ eina_test_binbuf.$(OBJEXT) \ 169@EFL_ENABLE_TESTS_TRUE@ eina_test_binbuf.$(OBJEXT) \
170@EFL_ENABLE_TESTS_TRUE@ eina_test_inarray.$(OBJEXT) \
162@EFL_ENABLE_TESTS_TRUE@ eina_test_array.$(OBJEXT) \ 171@EFL_ENABLE_TESTS_TRUE@ eina_test_array.$(OBJEXT) \
163@EFL_ENABLE_TESTS_TRUE@ eina_test_clist.$(OBJEXT) \ 172@EFL_ENABLE_TESTS_TRUE@ eina_test_clist.$(OBJEXT) \
164@EFL_ENABLE_TESTS_TRUE@ eina_test_error.$(OBJEXT) \ 173@EFL_ENABLE_TESTS_TRUE@ eina_test_error.$(OBJEXT) \
@@ -185,7 +194,8 @@ am__eina_suite_SOURCES_DIST = eina_suite.c eina_test_fp.c \
185@EFL_ENABLE_TESTS_TRUE@ eina_test_strbuf.$(OBJEXT) \ 194@EFL_ENABLE_TESTS_TRUE@ eina_test_strbuf.$(OBJEXT) \
186@EFL_ENABLE_TESTS_TRUE@ eina_test_str.$(OBJEXT) \ 195@EFL_ENABLE_TESTS_TRUE@ eina_test_str.$(OBJEXT) \
187@EFL_ENABLE_TESTS_TRUE@ eina_test_quadtree.$(OBJEXT) \ 196@EFL_ENABLE_TESTS_TRUE@ eina_test_quadtree.$(OBJEXT) \
188@EFL_ENABLE_TESTS_TRUE@ eina_test_simple_xml_parser.$(OBJEXT) 197@EFL_ENABLE_TESTS_TRUE@ eina_test_simple_xml_parser.$(OBJEXT) \
198@EFL_ENABLE_TESTS_TRUE@ eina_test_value.$(OBJEXT)
189eina_suite_OBJECTS = $(am_eina_suite_OBJECTS) 199eina_suite_OBJECTS = $(am_eina_suite_OBJECTS)
190@EFL_ENABLE_TESTS_TRUE@eina_suite_DEPENDENCIES = \ 200@EFL_ENABLE_TESTS_TRUE@eina_suite_DEPENDENCIES = \
191@EFL_ENABLE_TESTS_TRUE@ $(top_builddir)/src/lib/libeina.la 201@EFL_ENABLE_TESTS_TRUE@ $(top_builddir)/src/lib/libeina.la
@@ -232,10 +242,11 @@ AM_V_GEN = $(am__v_GEN_$(V))
232am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) 242am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
233am__v_GEN_0 = @echo " GEN " $@; 243am__v_GEN_0 = @echo " GEN " $@;
234SOURCES = $(libcity_la_SOURCES) $(module_dummy_la_SOURCES) \ 244SOURCES = $(libcity_la_SOURCES) $(module_dummy_la_SOURCES) \
235 $(eina_bench_SOURCES) $(nodist_EXTRA_eina_bench_SOURCES) \ 245 $(cxx_compile_test_SOURCES) $(eina_bench_SOURCES) \
236 $(eina_suite_SOURCES) 246 $(nodist_EXTRA_eina_bench_SOURCES) $(eina_suite_SOURCES)
237DIST_SOURCES = $(am__libcity_la_SOURCES_DIST) \ 247DIST_SOURCES = $(am__libcity_la_SOURCES_DIST) \
238 $(am__module_dummy_la_SOURCES_DIST) \ 248 $(am__module_dummy_la_SOURCES_DIST) \
249 $(am__cxx_compile_test_SOURCES_DIST) \
239 $(am__eina_bench_SOURCES_DIST) $(am__eina_suite_SOURCES_DIST) 250 $(am__eina_bench_SOURCES_DIST) $(am__eina_suite_SOURCES_DIST)
240ETAGS = etags 251ETAGS = etags
241CTAGS = ctags 252CTAGS = ctags
@@ -282,7 +293,9 @@ EFL_SIMD_FLAGS = @EFL_SIMD_FLAGS@
282EGREP = @EGREP@ 293EGREP = @EGREP@
283EINA_CFLAGS = @EINA_CFLAGS@ 294EINA_CFLAGS = @EINA_CFLAGS@
284EINA_CONFIGURE_DEFAULT_MEMPOOL = @EINA_CONFIGURE_DEFAULT_MEMPOOL@ 295EINA_CONFIGURE_DEFAULT_MEMPOOL = @EINA_CONFIGURE_DEFAULT_MEMPOOL@
296EINA_CONFIGURE_ENABLE_LOG = @EINA_CONFIGURE_ENABLE_LOG@
285EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@ 297EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@
298EINA_CONFIGURE_HAVE_DIRENT_H = @EINA_CONFIGURE_HAVE_DIRENT_H@
286EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@ 299EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@
287EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@ 300EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@
288EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@ 301EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@
@@ -334,8 +347,6 @@ PACKAGE_URL = @PACKAGE_URL@
334PACKAGE_VERSION = @PACKAGE_VERSION@ 347PACKAGE_VERSION = @PACKAGE_VERSION@
335PATH_SEPARATOR = @PATH_SEPARATOR@ 348PATH_SEPARATOR = @PATH_SEPARATOR@
336PKG_CONFIG = @PKG_CONFIG@ 349PKG_CONFIG = @PKG_CONFIG@
337PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
338PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
339RANLIB = @RANLIB@ 350RANLIB = @RANLIB@
340SED = @SED@ 351SED = @SED@
341SET_MAKE = @SET_MAKE@ 352SET_MAKE = @SET_MAKE@
@@ -426,6 +437,7 @@ AM_CPPFLAGS = -I$(top_srcdir)/src/lib -I$(top_srcdir)/src/include \
426@EFL_ENABLE_TESTS_TRUE@eina_test_ustr.c \ 437@EFL_ENABLE_TESTS_TRUE@eina_test_ustr.c \
427@EFL_ENABLE_TESTS_TRUE@eina_test_binshare.c \ 438@EFL_ENABLE_TESTS_TRUE@eina_test_binshare.c \
428@EFL_ENABLE_TESTS_TRUE@eina_test_binbuf.c \ 439@EFL_ENABLE_TESTS_TRUE@eina_test_binbuf.c \
440@EFL_ENABLE_TESTS_TRUE@eina_test_inarray.c \
429@EFL_ENABLE_TESTS_TRUE@eina_test_array.c \ 441@EFL_ENABLE_TESTS_TRUE@eina_test_array.c \
430@EFL_ENABLE_TESTS_TRUE@eina_test_clist.c \ 442@EFL_ENABLE_TESTS_TRUE@eina_test_clist.c \
431@EFL_ENABLE_TESTS_TRUE@eina_test_error.c \ 443@EFL_ENABLE_TESTS_TRUE@eina_test_error.c \
@@ -452,9 +464,12 @@ AM_CPPFLAGS = -I$(top_srcdir)/src/lib -I$(top_srcdir)/src/include \
452@EFL_ENABLE_TESTS_TRUE@eina_test_strbuf.c \ 464@EFL_ENABLE_TESTS_TRUE@eina_test_strbuf.c \
453@EFL_ENABLE_TESTS_TRUE@eina_test_str.c \ 465@EFL_ENABLE_TESTS_TRUE@eina_test_str.c \
454@EFL_ENABLE_TESTS_TRUE@eina_test_quadtree.c \ 466@EFL_ENABLE_TESTS_TRUE@eina_test_quadtree.c \
455@EFL_ENABLE_TESTS_TRUE@eina_test_simple_xml_parser.c 467@EFL_ENABLE_TESTS_TRUE@eina_test_simple_xml_parser.c \
468@EFL_ENABLE_TESTS_TRUE@eina_test_value.c
456 469
457@EFL_ENABLE_TESTS_TRUE@eina_suite_LDADD = @CHECK_LIBS@ $(top_builddir)/src/lib/libeina.la -lm 470@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
472@EFL_ENABLE_TESTS_TRUE@cxx_compile_test_LDADD = $(top_builddir)/src/lib/libeina.la
458@EFL_ENABLE_TESTS_TRUE@module_dummydir = $(libdir)/eina/test 473@EFL_ENABLE_TESTS_TRUE@module_dummydir = $(libdir)/eina/test
459@EFL_ENABLE_TESTS_TRUE@module_dummy_LTLIBRARIES = module_dummy.la 474@EFL_ENABLE_TESTS_TRUE@module_dummy_LTLIBRARIES = module_dummy.la
460@EFL_ENABLE_TESTS_TRUE@module_dummy_la_SOURCES = \ 475@EFL_ENABLE_TESTS_TRUE@module_dummy_la_SOURCES = \
@@ -506,7 +521,7 @@ EXTRA_DIST = eina_bench.h \
506all: all-am 521all: all-am
507 522
508.SUFFIXES: 523.SUFFIXES:
509.SUFFIXES: .c .cc .lo .o .obj 524.SUFFIXES: .c .cc .cxx .lo .o .obj
510$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) 525$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
511 @for dep in $?; do \ 526 @for dep in $?; do \
512 case '$(am__configure_deps)' in \ 527 case '$(am__configure_deps)' in \
@@ -633,6 +648,9 @@ clean-checkPROGRAMS:
633 list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ 648 list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
634 echo " rm -f" $$list; \ 649 echo " rm -f" $$list; \
635 rm -f $$list 650 rm -f $$list
651cxx_compile_test$(EXEEXT): $(cxx_compile_test_OBJECTS) $(cxx_compile_test_DEPENDENCIES)
652 @rm -f cxx_compile_test$(EXEEXT)
653 $(AM_V_CXXLD)$(CXXLINK) $(cxx_compile_test_OBJECTS) $(cxx_compile_test_LDADD) $(LIBS)
636eina_bench$(EXEEXT): $(eina_bench_OBJECTS) $(eina_bench_DEPENDENCIES) 654eina_bench$(EXEEXT): $(eina_bench_OBJECTS) $(eina_bench_DEPENDENCIES)
637 @rm -f eina_bench$(EXEEXT) 655 @rm -f eina_bench$(EXEEXT)
638 $(AM_V_CXXLD)$(CXXLINK) $(eina_bench_OBJECTS) $(eina_bench_LDADD) $(LIBS) 656 $(AM_V_CXXLD)$(CXXLINK) $(eina_bench_OBJECTS) $(eina_bench_LDADD) $(LIBS)
@@ -647,6 +665,7 @@ distclean-compile:
647 -rm -f *.tab.c 665 -rm -f *.tab.c
648 666
649@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/city.Plo@am__quote@ 667@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/city.Plo@am__quote@
668@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cxx_compile_test.Po@am__quote@
650@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dummy.Po@am__quote@ 669@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dummy.Po@am__quote@
651@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecore_hash.Po@am__quote@ 670@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecore_hash.Po@am__quote@
652@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecore_list.Po@am__quote@ 671@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecore_list.Po@am__quote@
@@ -675,6 +694,7 @@ distclean-compile:
675@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_test_file.Po@am__quote@ 694@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_test_file.Po@am__quote@
676@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_test_fp.Po@am__quote@ 695@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_test_fp.Po@am__quote@
677@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_test_hash.Po@am__quote@ 696@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_test_hash.Po@am__quote@
697@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_test_inarray.Po@am__quote@
678@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_test_inlist.Po@am__quote@ 698@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_test_inlist.Po@am__quote@
679@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_test_iterator.Po@am__quote@ 699@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_test_iterator.Po@am__quote@
680@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_test_lalloc.Po@am__quote@ 700@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_test_lalloc.Po@am__quote@
@@ -696,6 +716,7 @@ distclean-compile:
696@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_test_tiler.Po@am__quote@ 716@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_test_tiler.Po@am__quote@
697@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_test_ustr.Po@am__quote@ 717@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_test_ustr.Po@am__quote@
698@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_test_ustringshare.Po@am__quote@ 718@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_test_ustringshare.Po@am__quote@
719@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_test_value.Po@am__quote@
699@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_hash.Po@am__quote@ 720@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_hash.Po@am__quote@
700@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_list.Po@am__quote@ 721@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_list.Po@am__quote@
701@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_mempool.Po@am__quote@ 722@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_mempool.Po@am__quote@
@@ -759,6 +780,30 @@ module_dummy_la-eina_test_module_dummy.lo: eina_test_module_dummy.c
759@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 780@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
760@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< 781@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
761 782
783.cxx.o:
784@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
785@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
786@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
787@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
788@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
789@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
790
791.cxx.obj:
792@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
793@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
794@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
795@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
796@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
797@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
798
799.cxx.lo:
800@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
801@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
802@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
803@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
804@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
805@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
806
762mostlyclean-libtool: 807mostlyclean-libtool:
763 -rm -f *.lo 808 -rm -f *.lo
764 809
diff --git a/libraries/eina/src/tests/cxx_compile_test.cxx b/libraries/eina/src/tests/cxx_compile_test.cxx
new file mode 100644
index 0000000..7d8af76
--- /dev/null
+++ b/libraries/eina/src/tests/cxx_compile_test.cxx
@@ -0,0 +1,34 @@
1/* EINA - EFL data type library
2 * Copyright (C) 2012 ProFUSION embedded systems
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library;
16 * if not, see <http://www.gnu.org/licenses/>.
17 */
18
19#ifdef HAVE_CONFIG_H
20# include "config.h"
21#endif
22
23#include "Eina.h"
24
25#include <iostream>
26using namespace std;
27
28int main()
29{
30 eina_init();
31 cout << "Eina compiles with C++!";
32 eina_shutdown();
33 return 0;
34}
diff --git a/libraries/eina/src/tests/eina_bench.c b/libraries/eina/src/tests/eina_bench.c
index a4eadbe..03aaaf9 100644
--- a/libraries/eina/src/tests/eina_bench.c
+++ b/libraries/eina/src/tests/eina_bench.c
@@ -73,7 +73,6 @@ int
73main(int argc, char **argv) 73main(int argc, char **argv)
74{ 74{
75 Eina_Benchmark *test; 75 Eina_Benchmark *test;
76 Eina_Array *ea;
77 unsigned int i; 76 unsigned int i;
78 77
79 if (argc != 2) 78 if (argc != 2)
@@ -91,7 +90,7 @@ main(int argc, char **argv)
91 90
92 etc[i].build(test); 91 etc[i].build(test);
93 92
94 ea = eina_benchmark_run(test); 93 eina_benchmark_run(test);
95 94
96 eina_benchmark_free(test); 95 eina_benchmark_free(test);
97 } 96 }
diff --git a/libraries/eina/src/tests/eina_bench_hash.c b/libraries/eina/src/tests/eina_bench_hash.c
index 5b42318..0429097 100644
--- a/libraries/eina/src/tests/eina_bench_hash.c
+++ b/libraries/eina/src/tests/eina_bench_hash.c
@@ -139,6 +139,8 @@ eina_bench_lookup_rbtree(int request)
139 EINA_RBTREE_CMP_KEY_CB( 139 EINA_RBTREE_CMP_KEY_CB(
140 _eina_bench_rbtree_key), 140 _eina_bench_rbtree_key),
141 NULL); 141 NULL);
142 /* Suppress warnings as we really don't want to do anything. */
143 (void) tmp;
142 } 144 }
143 145
144 eina_rbtree_delete(root, EINA_RBTREE_FREE_CB(_eina_bench_rbtree_free), NULL); 146 eina_rbtree_delete(root, EINA_RBTREE_FREE_CB(_eina_bench_rbtree_free), NULL);
diff --git a/libraries/eina/src/tests/eina_bench_quad.c b/libraries/eina/src/tests/eina_bench_quad.c
index 76d6667..8401fd4 100644
--- a/libraries/eina/src/tests/eina_bench_quad.c
+++ b/libraries/eina/src/tests/eina_bench_quad.c
@@ -19,6 +19,8 @@
19#define WIDTH 720 19#define WIDTH 720
20#define HEIGHT 576 20#define HEIGHT 576
21 21
22#include <stdlib.h>
23
22#include "eina_main.h" 24#include "eina_main.h"
23#include "eina_mempool.h" 25#include "eina_mempool.h"
24#include "eina_rectangle.h" 26#include "eina_rectangle.h"
diff --git a/libraries/eina/src/tests/eina_bench_stringshare.c b/libraries/eina/src/tests/eina_bench_stringshare.c
index a2c7b38..22d18fa 100644
--- a/libraries/eina/src/tests/eina_bench_stringshare.c
+++ b/libraries/eina/src/tests/eina_bench_stringshare.c
@@ -64,6 +64,8 @@ eina_bench_stringshare_job(int request)
64 tmp = eina_stringshare_add(build); 64 tmp = eina_stringshare_add(build);
65 } 65 }
66 66
67 /* Suppress warnings as we really don't want to do anything. */
68 (void) tmp;
67 eina_shutdown(); 69 eina_shutdown();
68} 70}
69 71
@@ -125,6 +127,9 @@ eina_bench_evas_job(int request)
125 eina_convert_xtoa(rand() % request, build + 7); 127 eina_convert_xtoa(rand() % request, build + 7);
126 tmp = evas_stringshare_add(build); 128 tmp = evas_stringshare_add(build);
127 } 129 }
130
131 /* Suppress warnings as we really don't want to do anything. */
132 (void) tmp;
128} 133}
129 134
130static void 135static void
@@ -155,6 +160,9 @@ eina_bench_ecore_job(int request)
155 tmp = ecore_string_instance(build); 160 tmp = ecore_string_instance(build);
156 } 161 }
157 162
163 /* Suppress warnings as we really don't want to do anything. */
164 (void) tmp;
165
158 ecore_string_shutdown(); 166 ecore_string_shutdown();
159} 167}
160 168
diff --git a/libraries/eina/src/tests/eina_suite.c b/libraries/eina/src/tests/eina_suite.c
index 9b748fc..648a717 100644
--- a/libraries/eina/src/tests/eina_suite.c
+++ b/libraries/eina/src/tests/eina_suite.c
@@ -34,6 +34,7 @@ struct _Eina_Test_Case
34 34
35static const Eina_Test_Case etc[] = { 35static const Eina_Test_Case etc[] = {
36 { "FixedPoint", eina_test_fp }, 36 { "FixedPoint", eina_test_fp },
37 { "Inarray", eina_test_inarray },
37 { "Array", eina_test_array }, 38 { "Array", eina_test_array },
38 { "Binary Share", eina_test_binshare }, 39 { "Binary Share", eina_test_binshare },
39 { "String Share", eina_test_stringshare }, 40 { "String Share", eina_test_stringshare },
@@ -66,6 +67,7 @@ static const Eina_Test_Case etc[] = {
66 { "QuadTree", eina_test_quadtree }, 67 { "QuadTree", eina_test_quadtree },
67 { "Sched", eina_test_sched }, 68 { "Sched", eina_test_sched },
68 { "Simple Xml Parser", eina_test_simple_xml_parser}, 69 { "Simple Xml Parser", eina_test_simple_xml_parser},
70 { "Value", eina_test_value },
69 { NULL, NULL } 71 { NULL, NULL }
70}; 72};
71 73
diff --git a/libraries/eina/src/tests/eina_suite.h b/libraries/eina/src/tests/eina_suite.h
index 643d6cc..6eaaec7 100644
--- a/libraries/eina/src/tests/eina_suite.h
+++ b/libraries/eina/src/tests/eina_suite.h
@@ -24,6 +24,7 @@
24void eina_test_stringshare(TCase *tc); 24void eina_test_stringshare(TCase *tc);
25void eina_test_ustringshare(TCase *tc); 25void eina_test_ustringshare(TCase *tc);
26void eina_test_binshare(TCase *tc); 26void eina_test_binshare(TCase *tc);
27void eina_test_inarray(TCase *tc);
27void eina_test_array(TCase *tc); 28void eina_test_array(TCase *tc);
28void eina_test_log(TCase *tc); 29void eina_test_log(TCase *tc);
29void eina_test_error(TCase *tc); 30void eina_test_error(TCase *tc);
@@ -54,5 +55,6 @@ void eina_test_quadtree(TCase *tc);
54void eina_test_fp(TCase *tc); 55void eina_test_fp(TCase *tc);
55void eina_test_sched(TCase *tc); 56void eina_test_sched(TCase *tc);
56void eina_test_simple_xml_parser(TCase *tc); 57void eina_test_simple_xml_parser(TCase *tc);
58void eina_test_value(TCase *tc);
57 59
58#endif /* EINA_SUITE_H_ */ 60#endif /* EINA_SUITE_H_ */
diff --git a/libraries/eina/src/tests/eina_test_array.c b/libraries/eina/src/tests/eina_test_array.c
index 0b054ea..1929601 100644
--- a/libraries/eina/src/tests/eina_test_array.c
+++ b/libraries/eina/src/tests/eina_test_array.c
@@ -151,7 +151,7 @@ START_TEST(eina_array_remove_stuff)
151 } 151 }
152 fail_if(eina_array_remove(ea, keep_int, NULL) != EINA_TRUE); 152 fail_if(eina_array_remove(ea, keep_int, NULL) != EINA_TRUE);
153 153
154 fail_if(eina_array_count_get(ea) != 990); 154 fail_if(eina_array_count(ea) != 990);
155 EINA_ARRAY_ITER_NEXT(ea, i, tmp, it) 155 EINA_ARRAY_ITER_NEXT(ea, i, tmp, it)
156 fail_if(*tmp == 0); 156 fail_if(*tmp == 0);
157 157
@@ -165,7 +165,7 @@ START_TEST(eina_array_remove_stuff)
165 eina_array_remove(ea, keep_int, NULL); 165 eina_array_remove(ea, keep_int, NULL);
166 166
167 // Remove all items 167 // Remove all items
168 fail_if(eina_array_count_get(ea) != 980); 168 fail_if(eina_array_count(ea) != 980);
169 EINA_ARRAY_ITER_NEXT(ea, i, tmp, it) 169 EINA_ARRAY_ITER_NEXT(ea, i, tmp, it)
170 { 170 {
171 fail_if(*tmp == 0); 171 fail_if(*tmp == 0);
@@ -174,7 +174,7 @@ START_TEST(eina_array_remove_stuff)
174 174
175 eina_array_remove(ea, keep_int, NULL); 175 eina_array_remove(ea, keep_int, NULL);
176 176
177 fail_if(eina_array_count_get(ea) != 0); 177 fail_if(eina_array_count(ea) != 0);
178 178
179 eina_array_free(ea); 179 eina_array_free(ea);
180 180
diff --git a/libraries/eina/src/tests/eina_test_binbuf.c b/libraries/eina/src/tests/eina_test_binbuf.c
index 713e078..d62072e 100644
--- a/libraries/eina/src/tests/eina_test_binbuf.c
+++ b/libraries/eina/src/tests/eina_test_binbuf.c
@@ -27,8 +27,8 @@
27START_TEST(binbuf_simple) 27START_TEST(binbuf_simple)
28{ 28{
29 Eina_Binbuf *buf; 29 Eina_Binbuf *buf;
30 char *txt; 30 unsigned char *txt;
31 const char cbuf[] = "Null in the middle \0 and more text afterwards and \0 anotehr null just there and another one \0 here."; 31 const unsigned char cbuf[] = "Null in the middle \0 and more text afterwards and \0 anotehr null just there and another one \0 here.";
32 size_t size = sizeof(cbuf) - 1; /* We don't care about the real NULL */ 32 size_t size = sizeof(cbuf) - 1; /* We don't care about the real NULL */
33 33
34 34
@@ -69,7 +69,7 @@ END_TEST
69START_TEST(binbuf_remove) 69START_TEST(binbuf_remove)
70{ 70{
71 Eina_Binbuf *buf; 71 Eina_Binbuf *buf;
72 const char cbuf[] = "12\0 456 78\0 abcthis is some more random junk here!"; 72 const unsigned char cbuf[] = "12\0 456 78\0 abcthis is some more random junk here!";
73 size_t size = sizeof(cbuf) - 1; /* We don't care about the real NULL */ 73 size_t size = sizeof(cbuf) - 1; /* We don't care about the real NULL */
74 74
75 eina_init(); 75 eina_init();
@@ -98,6 +98,33 @@ START_TEST(binbuf_remove)
98} 98}
99END_TEST 99END_TEST
100 100
101START_TEST(binbuf_manage_simple)
102{
103 Eina_Binbuf *buf;
104 const char *_cbuf = "12\0 456 78\0 abcthis is some more random junk here!";
105 const unsigned char *cbuf = (const unsigned char *) _cbuf;
106 size_t size = sizeof(cbuf) - 1; /* We don't care about the real NULL */
107 unsigned char *alloc_buf = malloc(size);
108 memcpy(alloc_buf, cbuf, size);
109
110 eina_init();
111
112 buf = eina_binbuf_manage_new_length(alloc_buf, size);
113 fail_if(!buf);
114
115 fail_if(memcmp(eina_binbuf_string_get(buf), cbuf, size));
116 fail_if(size != eina_binbuf_length_get(buf));
117 eina_binbuf_append_length(buf, cbuf, size);
118 fail_if(memcmp(eina_binbuf_string_get(buf), cbuf, size));
119 fail_if(memcmp(eina_binbuf_string_get(buf) + size, cbuf, size));
120 fail_if(2 * size != eina_binbuf_length_get(buf));
121
122 eina_binbuf_free(buf);
123
124 eina_shutdown();
125}
126END_TEST
127
101START_TEST(binbuf_insert) 128START_TEST(binbuf_insert)
102{ 129{
103#if 0 130#if 0
@@ -154,7 +181,7 @@ END_TEST
154START_TEST(binbuf_realloc) 181START_TEST(binbuf_realloc)
155{ 182{
156 Eina_Binbuf *buf; 183 Eina_Binbuf *buf;
157 char pattern[1024 * 16]; 184 unsigned char pattern[1024 * 16];
158 unsigned int i; 185 unsigned int i;
159 size_t sz; 186 size_t sz;
160 187
@@ -232,4 +259,5 @@ eina_test_binbuf(TCase *tc)
232 tcase_add_test(tc, binbuf_remove); 259 tcase_add_test(tc, binbuf_remove);
233 tcase_add_test(tc, binbuf_insert); 260 tcase_add_test(tc, binbuf_insert);
234 tcase_add_test(tc, binbuf_realloc); 261 tcase_add_test(tc, binbuf_realloc);
262 tcase_add_test(tc, binbuf_manage_simple);
235} 263}
diff --git a/libraries/eina/src/tests/eina_test_file.c b/libraries/eina/src/tests/eina_test_file.c
index aeb5461..55e9976 100644
--- a/libraries/eina/src/tests/eina_test_file.c
+++ b/libraries/eina/src/tests/eina_test_file.c
@@ -48,7 +48,7 @@ START_TEST(eina_file_split_simple)
48#endif 48#endif
49 49
50 fail_if(!ea); 50 fail_if(!ea);
51 fail_if(eina_array_count_get(ea) != 5); 51 fail_if(eina_array_count(ea) != 5);
52 fail_if(strcmp(eina_array_data_get(ea, 0), "this")); 52 fail_if(strcmp(eina_array_data_get(ea, 0), "this"));
53 fail_if(strcmp(eina_array_data_get(ea, 1), "is")); 53 fail_if(strcmp(eina_array_data_get(ea, 1), "is"));
54 fail_if(strcmp(eina_array_data_get(ea, 2), "a")); 54 fail_if(strcmp(eina_array_data_get(ea, 2), "a"));
@@ -66,7 +66,7 @@ START_TEST(eina_file_split_simple)
66#endif 66#endif
67 67
68 fail_if(!ea); 68 fail_if(!ea);
69 fail_if(eina_array_count_get(ea) != 6); 69 fail_if(eina_array_count(ea) != 6);
70 fail_if(strcmp(eina_array_data_get(ea, 0), "this")); 70 fail_if(strcmp(eina_array_data_get(ea, 0), "this"));
71 fail_if(strcmp(eina_array_data_get(ea, 1), "is")); 71 fail_if(strcmp(eina_array_data_get(ea, 1), "is"));
72 fail_if(strcmp(eina_array_data_get(ea, 2), "a ")); 72 fail_if(strcmp(eina_array_data_get(ea, 2), "a "));
diff --git a/libraries/eina/src/tests/eina_test_inarray.c b/libraries/eina/src/tests/eina_test_inarray.c
new file mode 100644
index 0000000..22ba763
--- /dev/null
+++ b/libraries/eina/src/tests/eina_test_inarray.c
@@ -0,0 +1,401 @@
1/* EINA - EFL data type library
2 * Copyright (C) 2012 ProFUSION embedded systems
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library;
16 * if not, see <http://www.gnu.org/licenses/>.
17 */
18
19#ifdef HAVE_CONFIG_H
20# include "config.h"
21#endif
22
23#include <stdio.h>
24
25#include "eina_suite.h"
26#include "Eina.h"
27
28START_TEST(eina_inarray_test_simple)
29{
30 const int test_members = 5;
31 Eina_Inarray *array;
32 int i, pos, *member;
33 const struct spec {
34 int pos, value;
35 } *s, specs[] = {
36 {test_members, 1234},
37 {5, 0x1337},
38 {0, 0xbeef},
39 {-1, -1}
40 };
41
42 eina_init();
43
44 array = eina_inarray_new(sizeof(int), 2);
45 fail_unless(array != NULL);
46
47 for (i = 0; i < test_members; i++)
48 {
49 pos = eina_inarray_append(array, &i);
50 fail_unless(pos == i);
51 }
52 fail_unless(eina_inarray_count(array) == (unsigned)test_members);
53
54 for (i = 0; i < test_members; i++)
55 {
56 member = eina_inarray_nth(array, i);
57 fail_unless(*member == i);
58 }
59
60 for (s = specs; s->pos >= 0; s++)
61 {
62 fail_unless(eina_inarray_insert_at(array, s->pos, &s->value));
63
64 for (i = 0; i < s->pos; i++)
65 {
66 member = eina_inarray_nth(array, i);
67 fail_unless(*member == i);
68 }
69 member = eina_inarray_nth(array, s->pos);
70 fail_unless(*member == s->value);
71 for (i = s->pos + 1; i < test_members + 1; i++)
72 {
73 member = eina_inarray_nth(array, i);
74 fail_unless(*member == i - 1);
75 }
76
77 fail_unless(eina_inarray_remove_at(array, s->pos));
78 for (i = 0; i < test_members; i++)
79 {
80 member = eina_inarray_nth(array, i);
81 fail_unless(*member == i);
82 }
83 }
84
85 eina_inarray_free(array);
86 eina_shutdown();
87}
88END_TEST
89
90
91START_TEST(eina_inarray_test_alloc_at)
92{
93 Eina_Inarray *array;
94 int *member;
95 int i;
96
97 eina_init();
98
99 array = eina_inarray_new(sizeof(int), 2);
100 fail_unless(array != NULL);
101
102 member = eina_inarray_alloc_at(array, 0, 4);
103 fail_unless(member != NULL);
104 fail_unless(eina_inarray_count(array) == 4);
105
106 for (i = 0; i < 4; i++)
107 member[i] = i + 2;
108
109 member = eina_inarray_alloc_at(array, 0, 2);
110 fail_unless(member != NULL);
111 fail_unless(eina_inarray_count(array) == 6);
112 for (i = 0; i < 2; i++)
113 member[i] = i;
114
115 member = eina_inarray_alloc_at(array, 6, 2);
116 fail_unless(member != NULL);
117 fail_unless(eina_inarray_count(array) == 8);
118 for (i = 0; i < 2; i++)
119 member[i] = i + 6;
120
121 member = array->members;
122 for (i = 0; i < 8; i++)
123 fail_unless(member[i] == i);
124
125 eina_inarray_free(array);
126 eina_shutdown();
127}
128END_TEST
129
130static const short rand_numbers[] = {
131 9, 0, 2, 3, 6, 5, 4, 7, 8, 1, 10
132};
133static const int numbers_count = sizeof(rand_numbers)/sizeof(rand_numbers[0]);
134
135static void
136show_sort_array(const Eina_Inarray *array)
137{
138 int i, len = eina_inarray_count(array);
139 printf("array with %d members:\n", len);
140 for (i = 0; i < len; i++)
141 {
142 short *member = eina_inarray_nth(array, i);
143 printf("\tarray[%2d]=%5hd\n", i, *member);
144 }
145}
146
147static Eina_Bool
148check_short_sorted(const Eina_Inarray *array)
149{
150 int i;
151 for (i = 0; i < numbers_count; i++)
152 {
153 short *member = eina_inarray_nth(array, i);
154 if (*member != (short)i)
155 {
156 show_sort_array(array);
157 fprintf(stderr, "not sorted at %d: %hd\n", i, *member);
158 return EINA_FALSE;
159 }
160 }
161 return EINA_TRUE;
162}
163
164static int
165short_cmp(const void *pa, const void *pb)
166{
167 const short *a = pa, *b = pb;
168 return *a - *b;
169}
170
171START_TEST(eina_inarray_test_insert_sort)
172{
173 Eina_Inarray *array;
174 int i, pos;
175
176 eina_init();
177
178 array = eina_inarray_new(sizeof(short), 1);
179 fail_unless(array != NULL);
180
181 /* insert sorted and already sorted sequence */
182 for (i = 0; i < numbers_count; i++)
183 {
184 short val = i;
185 pos = eina_inarray_insert(array, &val, short_cmp);
186 fail_unless(pos == (int)val);
187 }
188 fail_unless(check_short_sorted(array));
189 eina_inarray_flush(array);
190
191 for (i = 0; i < numbers_count; i++)
192 {
193 short val = i;
194 pos = eina_inarray_insert_sorted(array, &val, short_cmp);
195 fail_unless(pos == (int)val);
196 }
197 fail_unless(check_short_sorted(array));
198 eina_inarray_flush(array);
199
200 /* insert sorted the reverse sequence */
201 for (i = 0; i < numbers_count; i++)
202 {
203 short val = numbers_count - i - 1;
204 pos = eina_inarray_insert(array, &val, short_cmp);
205 fail_unless(pos == 0);
206 }
207 fail_unless(check_short_sorted(array));
208 eina_inarray_flush(array);
209
210 for (i = 0; i < numbers_count; i++)
211 {
212 short val = numbers_count - i - 1;
213 pos = eina_inarray_insert_sorted(array, &val, short_cmp);
214 fail_unless(pos == 0);
215 }
216 fail_unless(check_short_sorted(array));
217 eina_inarray_flush(array);
218
219 /* insert sorted random numbers */
220 for (i = 0; i < numbers_count; i++)
221 {
222 short val = rand_numbers[i];
223 eina_inarray_insert(array, &val, short_cmp);
224 }
225 fail_unless(check_short_sorted(array));
226 eina_inarray_flush(array);
227
228 for (i = 0; i < numbers_count; i++)
229 {
230 short val = rand_numbers[i];
231 eina_inarray_insert_sorted(array, &val, short_cmp);
232 }
233 fail_unless(check_short_sorted(array));
234 eina_inarray_flush(array);
235
236 eina_inarray_free(array);
237 eina_shutdown();
238}
239END_TEST
240
241START_TEST(eina_inarray_test_sort)
242{
243 Eina_Inarray *array;
244 int i;
245
246 eina_init();
247
248 array = eina_inarray_new(sizeof(short), 1);
249 fail_unless(array != NULL);
250
251 for (i = 0; i < numbers_count; i++)
252 {
253 short val = rand_numbers[i];
254 eina_inarray_append(array, &val);
255 }
256 eina_inarray_sort(array, short_cmp);
257 fail_unless(check_short_sorted(array));
258 eina_inarray_free(array);
259 eina_shutdown();
260}
261END_TEST
262
263START_TEST(eina_inarray_test_reverse)
264{
265 Eina_Inarray *array;
266 int i;
267
268 eina_init();
269
270 array = eina_inarray_new(sizeof(short), 1);
271 fail_unless(array != NULL);
272
273 for (i = 0; i < numbers_count; i++)
274 {
275 short val = i;
276 eina_inarray_append(array, &val);
277 }
278 eina_inarray_reverse(array);
279
280 for (i = 0; i < numbers_count; i++)
281 {
282 short *member = eina_inarray_nth(array, i);
283 fail_unless(*member == (numbers_count - i - 1));
284 }
285
286 eina_inarray_free(array);
287 eina_shutdown();
288}
289END_TEST
290
291static Eina_Bool
292array_foreach(const void *array __UNUSED__, void *p, void *user_data __UNUSED__)
293{
294 short *member = p;
295 int *i = user_data;
296 fail_unless(*i == *member);
297 (*i)++;
298 return EINA_TRUE;
299}
300
301static Eina_Bool
302array_foreach_stop_2nd(const void *array __UNUSED__, void *p, void *user_data __UNUSED__)
303{
304 short *member = p;
305 int *i = user_data;
306 fail_unless(*i == *member);
307 if (*i == 1)
308 return EINA_FALSE;
309 (*i)++;
310 return EINA_TRUE;
311}
312
313START_TEST(eina_inarray_test_itr)
314{
315 Eina_Inarray *array;
316 Eina_Iterator *it;
317 Eina_Accessor *ac;
318 short *member;
319 int i;
320
321 eina_init();
322
323 array = eina_inarray_new(sizeof(short), 1);
324 fail_unless(array != NULL);
325
326 for (i = 0; i < numbers_count; i++)
327 {
328 short val = i;
329 eina_inarray_append(array, &val);
330 }
331 i = 0;
332 EINA_INARRAY_FOREACH(array, member)
333 {
334 fail_unless(*member == i);
335 i++;
336 }
337 fail_unless(i == numbers_count);
338
339 i--;
340 EINA_INARRAY_REVERSE_FOREACH(array, member)
341 {
342 fail_unless(*member == i);
343 i--;
344 }
345 fail_unless(i == -1);
346
347 i = 0;
348 fail_unless(eina_inarray_foreach(array, array_foreach, &i));
349 fail_unless(i == numbers_count);
350
351 i = 0;
352 fail_if(eina_inarray_foreach(array, array_foreach_stop_2nd, &i));
353 fail_unless(i == 1);
354
355 it = eina_inarray_iterator_new(array);
356 fail_unless(it != NULL);
357 i = 0;
358 EINA_ITERATOR_FOREACH(it, member)
359 {
360 fail_unless(*member == i);
361 i++;
362 }
363 fail_unless(i == numbers_count);
364 eina_iterator_free(it);
365
366 it = eina_inarray_iterator_reversed_new(array);
367 fail_unless(it != NULL);
368 i--;
369 EINA_ITERATOR_FOREACH(it, member)
370 {
371 fail_unless(*member == i);
372 i--;
373 }
374 fail_unless(i == -1);
375 eina_iterator_free(it);
376
377 ac = eina_inarray_accessor_new(array);
378 fail_unless(ac != NULL);
379 for (i = 0; i < numbers_count; i++)
380 {
381 fail_unless(eina_accessor_data_get(ac, i, (void **)&member));
382 fail_unless(*member == i);
383 }
384 fail_unless(i == numbers_count);
385 eina_accessor_free(ac);
386
387 eina_inarray_free(array);
388 eina_shutdown();
389}
390END_TEST
391
392void
393eina_test_inarray(TCase *tc)
394{
395 tcase_add_test(tc, eina_inarray_test_simple);
396 tcase_add_test(tc, eina_inarray_test_alloc_at);
397 tcase_add_test(tc, eina_inarray_test_insert_sort);
398 tcase_add_test(tc, eina_inarray_test_sort);
399 tcase_add_test(tc, eina_inarray_test_reverse);
400 tcase_add_test(tc, eina_inarray_test_itr);
401}
diff --git a/libraries/eina/src/tests/eina_test_value.c b/libraries/eina/src/tests/eina_test_value.c
new file mode 100644
index 0000000..2d04c2f
--- /dev/null
+++ b/libraries/eina/src/tests/eina_test_value.c
@@ -0,0 +1,1799 @@
1/* EINA - EFL data type library
2 * Copyright (C) 2012 ProFUSION embedded systems
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library;
16 * if not, see <http://www.gnu.org/licenses/>.
17 */
18
19#ifdef HAVE_CONFIG_H
20# include "config.h"
21#endif
22
23#include <stdio.h>
24#include <inttypes.h>
25
26#include "eina_suite.h"
27#include "Eina.h"
28
29#define FP_ERR (0.0000001)
30#define CHECK_FP(a, b) ((a - b) < FP_ERR)
31
32START_TEST(eina_value_test_simple)
33{
34 Eina_Value *value;
35 char c;
36 short s;
37 int i;
38 long l;
39 int64_t i64;
40 unsigned char uc;
41 unsigned short us;
42 unsigned int ui;
43 unsigned long ul;
44 uint64_t u64;
45 float f;
46 double d;
47
48 eina_init();
49
50 value = eina_value_new(EINA_VALUE_TYPE_CHAR);
51 fail_unless(value != NULL);
52 fail_unless(eina_value_set(value, 'x'));
53 fail_unless(eina_value_get(value, &c));
54 fail_unless(c == 'x');
55 eina_value_flush(value);
56
57 fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_SHORT));
58 fail_unless(eina_value_set(value, 300));
59 fail_unless(eina_value_get(value, &s));
60 fail_unless(s == 300);
61 eina_value_flush(value);
62
63 fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_INT));
64 fail_unless(eina_value_set(value, -12345));
65 fail_unless(eina_value_get(value, &i));
66 fail_unless(i == -12345);
67 eina_value_flush(value);
68
69 fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_LONG));
70 fail_unless(eina_value_set(value, 0xb33f));
71 fail_unless(eina_value_get(value, &l));
72 fail_unless(l == 0xb33f);
73 eina_value_flush(value);
74
75 fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_INT64));
76 fail_unless(eina_value_set(value, 0x0011223344556677));
77 fail_unless(eina_value_get(value, &i64));
78 fail_unless(i64 == 0x0011223344556677);
79 eina_value_flush(value);
80
81 /* unsigned: */
82
83 fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_UCHAR));
84 fail_unless(eina_value_set(value, 200));
85 fail_unless(eina_value_get(value, &uc));
86 fail_unless(uc == 200);
87 eina_value_flush(value);
88
89 fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_USHORT));
90 fail_unless(eina_value_set(value, 65535));
91 fail_unless(eina_value_get(value, &us));
92 fail_unless(us == 65535);
93 eina_value_flush(value);
94
95 fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_UINT));
96 fail_unless(eina_value_set(value, 4000000000U));
97 fail_unless(eina_value_get(value, &ui));
98 fail_unless(ui == 4000000000U);
99 eina_value_flush(value);
100
101 fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_ULONG));
102 fail_unless(eina_value_set(value, 3000000001U));
103 fail_unless(eina_value_get(value, &ul));
104 fail_unless(ul == 3000000001U);
105 eina_value_flush(value);
106
107 fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_UINT64));
108 fail_unless(eina_value_set(value, 0x1122334455667788));
109 fail_unless(eina_value_get(value, &u64));
110 fail_unless(u64 == 0x1122334455667788);
111 eina_value_flush(value);
112
113 /* floating point */
114 fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_FLOAT));
115 fail_unless(eina_value_set(value, 0.1234));
116 fail_unless(eina_value_get(value, &f));
117 fail_unless(CHECK_FP(0.1234, f));
118 eina_value_flush(value);
119
120 fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_DOUBLE));
121 fail_unless(eina_value_set(value, 34567.8));
122 fail_unless(eina_value_get(value, &d));
123 fail_unless(CHECK_FP(34567.8, d));
124 eina_value_flush(value);
125
126 eina_value_free(value);
127 eina_shutdown();
128}
129END_TEST
130
131START_TEST(eina_value_test_compare)
132{
133 Eina_Value *a, *b;
134
135 eina_init();
136
137 a = eina_value_new(EINA_VALUE_TYPE_CHAR);
138 fail_unless(a != NULL);
139 b = eina_value_new(EINA_VALUE_TYPE_CHAR);
140 fail_unless(b != NULL);
141
142 fail_unless(eina_value_set(a, 123));
143 fail_unless(eina_value_set(b, 123));
144 fail_unless(eina_value_compare(a, b) == 0);
145 fail_unless(eina_value_set(a, -10));
146 fail_unless(eina_value_set(b, 123));
147 fail_unless(eina_value_compare(a, b) < 0);
148 fail_unless(eina_value_set(a, 123));
149 fail_unless(eina_value_set(b, 10));
150 fail_unless(eina_value_compare(a, b) > 0);
151 eina_value_flush(a);
152 eina_value_flush(b);
153
154 fail_unless(eina_value_setup(a, EINA_VALUE_TYPE_SHORT));
155 fail_unless(eina_value_setup(b, EINA_VALUE_TYPE_SHORT));
156 fail_unless(eina_value_set(a, 1230));
157 fail_unless(eina_value_set(b, 1230));
158 fail_unless(eina_value_compare(a, b) == 0);
159 fail_unless(eina_value_set(a, -100));
160 fail_unless(eina_value_set(b, 1230));
161 fail_unless(eina_value_compare(a, b) < 0);
162 fail_unless(eina_value_set(a, 1230));
163 fail_unless(eina_value_set(b, -100));
164 fail_unless(eina_value_compare(a, b) > 0);
165 eina_value_flush(a);
166 eina_value_flush(b);
167
168 fail_unless(eina_value_setup(a, EINA_VALUE_TYPE_INT));
169 fail_unless(eina_value_setup(b, EINA_VALUE_TYPE_INT));
170 fail_unless(eina_value_set(a, 300000));
171 fail_unless(eina_value_set(b, 300000));
172 fail_unless(eina_value_compare(a, b) == 0);
173 fail_unless(eina_value_set(a, -100));
174 fail_unless(eina_value_set(b, 300000));
175 fail_unless(eina_value_compare(a, b) < 0);
176 fail_unless(eina_value_set(a, 300000));
177 fail_unless(eina_value_set(b, -100));
178 fail_unless(eina_value_compare(a, b) > 0);
179 eina_value_flush(a);
180 eina_value_flush(b);
181
182 fail_unless(eina_value_setup(a, EINA_VALUE_TYPE_LONG));
183 fail_unless(eina_value_setup(b, EINA_VALUE_TYPE_LONG));
184 fail_unless(eina_value_set(a, 300000L));
185 fail_unless(eina_value_set(b, 300000L));
186 fail_unless(eina_value_compare(a, b) == 0);
187 fail_unless(eina_value_set(a, -100L));
188 fail_unless(eina_value_set(b, 300000L));
189 fail_unless(eina_value_compare(a, b) < 0);
190 fail_unless(eina_value_set(a, 300000L));
191 fail_unless(eina_value_set(b, -100L));
192 fail_unless(eina_value_compare(a, b) > 0);
193 eina_value_flush(a);
194 eina_value_flush(b);
195
196 fail_unless(eina_value_setup(a, EINA_VALUE_TYPE_INT64));
197 fail_unless(eina_value_setup(b, EINA_VALUE_TYPE_INT64));
198 fail_unless(eina_value_set(a, (int64_t)800000));
199 fail_unless(eina_value_set(b, (int64_t)800000));
200 fail_unless(eina_value_compare(a, b) == 0);
201 fail_unless(eina_value_set(a, (int64_t)-100));
202 fail_unless(eina_value_set(b, (int64_t)8000000));
203 fail_unless(eina_value_compare(a, b) < 0);
204 fail_unless(eina_value_set(a, (int64_t)8000000));
205 fail_unless(eina_value_set(b, (int64_t)-100));
206 fail_unless(eina_value_compare(a, b) > 0);
207 eina_value_flush(a);
208 eina_value_flush(b);
209
210 fail_unless(eina_value_setup(a, EINA_VALUE_TYPE_UCHAR));
211 fail_unless(eina_value_setup(b, EINA_VALUE_TYPE_UCHAR));
212 fail_unless(eina_value_set(a, 123));
213 fail_unless(eina_value_set(b, 123));
214 fail_unless(eina_value_compare(a, b) == 0);
215 fail_unless(eina_value_set(a, 10));
216 fail_unless(eina_value_set(b, 123));
217 fail_unless(eina_value_compare(a, b) < 0);
218 fail_unless(eina_value_set(a, 123));
219 fail_unless(eina_value_set(b, 10));
220 fail_unless(eina_value_compare(a, b) > 0);
221 eina_value_flush(a);
222 eina_value_flush(b);
223
224 fail_unless(eina_value_setup(a, EINA_VALUE_TYPE_USHORT));
225 fail_unless(eina_value_setup(b, EINA_VALUE_TYPE_USHORT));
226 fail_unless(eina_value_set(a, 1230));
227 fail_unless(eina_value_set(b, 1230));
228 fail_unless(eina_value_compare(a, b) == 0);
229 fail_unless(eina_value_set(a, 100));
230 fail_unless(eina_value_set(b, 1230));
231 fail_unless(eina_value_compare(a, b) < 0);
232 fail_unless(eina_value_set(a, 1230));
233 fail_unless(eina_value_set(b, 100));
234 fail_unless(eina_value_compare(a, b) > 0);
235 eina_value_flush(a);
236 eina_value_flush(b);
237
238 fail_unless(eina_value_setup(a, EINA_VALUE_TYPE_UINT));
239 fail_unless(eina_value_setup(b, EINA_VALUE_TYPE_UINT));
240 fail_unless(eina_value_set(a, 300000));
241 fail_unless(eina_value_set(b, 300000));
242 fail_unless(eina_value_compare(a, b) == 0);
243 fail_unless(eina_value_set(a, 100));
244 fail_unless(eina_value_set(b, 300000));
245 fail_unless(eina_value_compare(a, b) < 0);
246 fail_unless(eina_value_set(a, 300000));
247 fail_unless(eina_value_set(b, 100));
248 fail_unless(eina_value_compare(a, b) > 0);
249 eina_value_flush(a);
250 eina_value_flush(b);
251
252 fail_unless(eina_value_setup(a, EINA_VALUE_TYPE_ULONG));
253 fail_unless(eina_value_setup(b, EINA_VALUE_TYPE_ULONG));
254 fail_unless(eina_value_set(a, 300000UL));
255 fail_unless(eina_value_set(b, 300000UL));
256 fail_unless(eina_value_compare(a, b) == 0);
257 fail_unless(eina_value_set(a, 100UL));
258 fail_unless(eina_value_set(b, 300000UL));
259 fail_unless(eina_value_compare(a, b) < 0);
260 fail_unless(eina_value_set(a, 300000UL));
261 fail_unless(eina_value_set(b, 100UL));
262 fail_unless(eina_value_compare(a, b) > 0);
263 eina_value_flush(a);
264 eina_value_flush(b);
265
266 fail_unless(eina_value_setup(a, EINA_VALUE_TYPE_UINT64));
267 fail_unless(eina_value_setup(b, EINA_VALUE_TYPE_UINT64));
268 fail_unless(eina_value_set(a, (uint64_t)8000000));
269 fail_unless(eina_value_set(b, (uint64_t)8000000));
270 fail_unless(eina_value_compare(a, b) == 0);
271 fail_unless(eina_value_set(a, (uint64_t)100));
272 fail_unless(eina_value_set(b, (uint64_t)8000000));
273 fail_unless(eina_value_compare(a, b) < 0);
274 fail_unless(eina_value_set(a, (uint64_t)8000000));
275 fail_unless(eina_value_set(b, (uint64_t)100));
276 fail_unless(eina_value_compare(a, b) > 0);
277 eina_value_flush(a);
278 eina_value_flush(b);
279
280 fail_unless(eina_value_setup(a, EINA_VALUE_TYPE_STRING));
281 fail_unless(eina_value_setup(b, EINA_VALUE_TYPE_STRING));
282 fail_unless(eina_value_set(a, "aaa"));
283 fail_unless(eina_value_set(b, "aaa"));
284 fail_unless(eina_value_compare(a, b) == 0);
285 fail_unless(eina_value_set(a, "abc"));
286 fail_unless(eina_value_set(b, "acd"));
287 fail_unless(eina_value_compare(a, b) < 0);
288 fail_unless(eina_value_set(a, "acd"));
289 fail_unless(eina_value_set(b, "abc"));
290 fail_unless(eina_value_compare(a, b) > 0);
291 eina_value_flush(a);
292 eina_value_flush(b);
293
294 fail_unless(eina_value_array_setup(a, EINA_VALUE_TYPE_CHAR, 0));
295 fail_unless(eina_value_array_setup(b, EINA_VALUE_TYPE_CHAR, 0));
296 fail_unless(eina_value_compare(a, b) == 0);
297
298 fail_unless(eina_value_array_append(a, 1));
299 fail_unless(eina_value_array_append(a, 2));
300 fail_unless(eina_value_array_append(a, 3));
301
302 fail_unless(eina_value_array_append(b, 1));
303 fail_unless(eina_value_array_append(b, 2));
304 fail_unless(eina_value_array_append(b, 3));
305
306 fail_unless(eina_value_compare(a, b) == 0);
307
308 fail_unless(eina_value_array_set(a, 0, 0));
309 fail_unless(eina_value_compare(a, b) < 0);
310
311 fail_unless(eina_value_array_set(a, 0, 10));
312 fail_unless(eina_value_compare(a, b) > 0);
313
314 fail_unless(eina_value_array_set(a, 0, 1));
315
316 fail_unless(eina_value_array_set(b, 0, 0));
317 fail_unless(eina_value_compare(a, b) > 0);
318
319 fail_unless(eina_value_array_set(b, 0, 10));
320 fail_unless(eina_value_compare(a, b) < 0);
321
322 fail_unless(eina_value_array_set(b, 0, 1));
323 fail_unless(eina_value_compare(a, b) == 0);
324
325 /* bigger arrays are greater */
326 fail_unless(eina_value_array_append(b, 0));
327 fail_unless(eina_value_compare(a, b) < 0);
328
329 fail_unless(eina_value_array_append(a, 0));
330 fail_unless(eina_value_array_append(a, 0));
331 fail_unless(eina_value_compare(a, b) > 0);
332
333 /* bigger arrays are greater, unless an element says otherwise */
334 fail_unless(eina_value_array_set(b, 0, 10));
335 fail_unless(eina_value_compare(a, b) < 0);
336
337 eina_value_flush(a);
338 eina_value_flush(b);
339
340 fail_unless(eina_value_list_setup(a, EINA_VALUE_TYPE_CHAR));
341 fail_unless(eina_value_list_setup(b, EINA_VALUE_TYPE_CHAR));
342 fail_unless(eina_value_compare(a, b) == 0);
343
344 fail_unless(eina_value_list_append(a, 1));
345 fail_unless(eina_value_list_append(a, 2));
346 fail_unless(eina_value_list_append(a, 3));
347
348 fail_unless(eina_value_list_append(b, 1));
349 fail_unless(eina_value_list_append(b, 2));
350 fail_unless(eina_value_list_append(b, 3));
351
352 fail_unless(eina_value_compare(a, b) == 0);
353
354 fail_unless(eina_value_list_set(a, 0, 0));
355 fail_unless(eina_value_compare(a, b) < 0);
356
357 fail_unless(eina_value_list_set(a, 0, 10));
358 fail_unless(eina_value_compare(a, b) > 0);
359
360 fail_unless(eina_value_list_set(a, 0, 1));
361
362 fail_unless(eina_value_list_set(b, 0, 0));
363 fail_unless(eina_value_compare(a, b) > 0);
364
365 fail_unless(eina_value_list_set(b, 0, 10));
366 fail_unless(eina_value_compare(a, b) < 0);
367
368 fail_unless(eina_value_list_set(b, 0, 1));
369 fail_unless(eina_value_compare(a, b) == 0);
370
371 /* bigger lists are greater */
372 fail_unless(eina_value_list_append(b, 0));
373 fail_unless(eina_value_compare(a, b) < 0);
374
375 fail_unless(eina_value_list_append(a, 0));
376 fail_unless(eina_value_list_append(a, 0));
377 fail_unless(eina_value_compare(a, b) > 0);
378
379 /* bigger lists are greater, unless an element says otherwise */
380 fail_unless(eina_value_list_set(b, 0, 10));
381 fail_unless(eina_value_compare(a, b) < 0);
382
383 eina_value_flush(a);
384 eina_value_flush(b);
385
386 fail_unless(eina_value_hash_setup(a, EINA_VALUE_TYPE_CHAR, 0));
387 fail_unless(eina_value_hash_setup(b, EINA_VALUE_TYPE_CHAR, 0));
388 fail_unless(eina_value_compare(a, b) == 0);
389
390 fail_unless(eina_value_hash_set(a, "abc", 1));
391 fail_unless(eina_value_hash_set(a, "xyz", 2));
392 fail_unless(eina_value_hash_set(a, "hello", 3));
393
394 fail_unless(eina_value_hash_set(b, "abc", 1));
395 fail_unless(eina_value_hash_set(b, "xyz", 2));
396 fail_unless(eina_value_hash_set(b, "hello", 3));
397
398 fail_unless(eina_value_compare(a, b) == 0);
399
400 fail_unless(eina_value_hash_set(a, "abc", 0));
401 fail_unless(eina_value_compare(a, b) < 0);
402
403 fail_unless(eina_value_hash_set(a, "abc", 10));
404 fail_unless(eina_value_compare(a, b) > 0);
405
406 fail_unless(eina_value_hash_set(a, "abc", 1));
407
408 fail_unless(eina_value_hash_set(b, "abc", 0));
409 fail_unless(eina_value_compare(a, b) > 0);
410
411 fail_unless(eina_value_hash_set(b, "abc", 10));
412 fail_unless(eina_value_compare(a, b) < 0);
413
414 fail_unless(eina_value_hash_set(b, "abc", 1));
415 fail_unless(eina_value_compare(a, b) == 0);
416
417 /* bigger hashs are greater */
418 fail_unless(eina_value_hash_set(b,"newkey", 0));
419 fail_unless(eina_value_compare(a, b) < 0);
420
421 fail_unless(eina_value_hash_set(a, "newkey", 0));
422 fail_unless(eina_value_hash_set(a, "onemorenewkey", 0));
423 fail_unless(eina_value_compare(a, b) > 0);
424
425 /* bigger hashs are greater, unless an element says otherwise */
426 fail_unless(eina_value_hash_set(b, "abc", 10));
427 fail_unless(eina_value_compare(a, b) < 0);
428
429 eina_value_free(a);
430 eina_value_free(b);
431 eina_shutdown();
432}
433END_TEST
434
435START_TEST(eina_value_test_string)
436{
437 Eina_Value *value;
438 const char *s;
439
440 eina_init();
441
442 value = eina_value_new(EINA_VALUE_TYPE_STRING);
443 fail_unless(value != NULL);
444 fail_unless(eina_value_set(value, "hello world!"));
445 fail_unless(eina_value_get(value, &s));
446 fail_unless(strcmp(s, "hello world!") == 0);
447
448 fail_unless(eina_value_set(value, "eina-value"));
449 fail_unless(eina_value_get(value, &s));
450 fail_unless(strcmp(s, "eina-value") == 0);
451
452 eina_value_flush(value);
453 fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_STRING));
454
455 fail_unless(eina_value_set(value, "profusion"));
456 fail_unless(eina_value_get(value, &s));
457 fail_unless(strcmp(s, "profusion") == 0);
458
459 eina_value_free(value);
460 eina_shutdown();
461}
462END_TEST
463
464START_TEST(eina_value_test_pvariant)
465{
466 Eina_Value *value;
467 char c, in_c;
468 short s, in_s;
469 int i, in_i;
470 long l, in_l;
471 int64_t i64, in_i64;
472 unsigned char uc, in_uc;
473 unsigned short us, in_us;
474 unsigned int ui, in_ui;
475 unsigned long ul, in_ul;
476 uint64_t u64, in_u64;
477 float f, in_f;
478 double d, in_d;
479 const char *str, *in_str;
480
481 eina_init();
482
483 value = eina_value_new(EINA_VALUE_TYPE_CHAR);
484 fail_unless(value != NULL);
485 in_c = 'x';
486 fail_unless(eina_value_pset(value, &in_c));
487 fail_unless(eina_value_pget(value, &c));
488 fail_unless(c == 'x');
489 eina_value_flush(value);
490
491 fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_SHORT));
492 in_s = 300;
493 fail_unless(eina_value_pset(value, &in_s));
494 fail_unless(eina_value_pget(value, &s));
495 fail_unless(s == 300);
496 eina_value_flush(value);
497
498 fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_INT));
499 in_i = -12345;
500 fail_unless(eina_value_pset(value, &in_i));
501 fail_unless(eina_value_pget(value, &i));
502 fail_unless(i == -12345);
503 eina_value_flush(value);
504
505 fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_LONG));
506 in_l = 0xb33f;
507 fail_unless(eina_value_pset(value, &in_l));
508 fail_unless(eina_value_pget(value, &l));
509 fail_unless(l == 0xb33f);
510 eina_value_flush(value);
511
512 fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_INT64));
513 in_i64 = 0x0011223344556677;
514 fail_unless(eina_value_pset(value, &in_i64));
515 fail_unless(eina_value_pget(value, &i64));
516 fail_unless(i64 == 0x0011223344556677);
517 eina_value_flush(value);
518
519 /* unsigned: */
520
521 fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_UCHAR));
522 in_uc = 200;
523 fail_unless(eina_value_pset(value, &in_uc));
524 fail_unless(eina_value_pget(value, &uc));
525 fail_unless(uc == 200);
526 eina_value_flush(value);
527
528 fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_USHORT));
529 in_us = 65535;
530 fail_unless(eina_value_pset(value, &in_us));
531 fail_unless(eina_value_pget(value, &us));
532 fail_unless(us == 65535);
533 eina_value_flush(value);
534
535 fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_UINT));
536 in_ui = 4000000000U;
537 fail_unless(eina_value_pset(value, &in_ui));
538 fail_unless(eina_value_pget(value, &ui));
539 fail_unless(ui == 4000000000U);
540 eina_value_flush(value);
541
542 fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_ULONG));
543 in_ul = 3000000001U;
544 fail_unless(eina_value_pset(value, &in_ul));
545 fail_unless(eina_value_pget(value, &ul));
546 fail_unless(ul == 3000000001U);
547 eina_value_flush(value);
548
549 fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_UINT64));
550 in_u64 = 0x1122334455667788;
551 fail_unless(eina_value_pset(value, &in_u64));
552 fail_unless(eina_value_pget(value, &u64));
553 fail_unless(u64 == 0x1122334455667788);
554 eina_value_flush(value);
555
556 /* floating point */
557 fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_FLOAT));
558 in_f = 0.1234;
559 fail_unless(eina_value_pset(value, &in_f));
560 fail_unless(eina_value_pget(value, &f));
561 fail_unless(CHECK_FP(0.1234, f));
562 eina_value_flush(value);
563
564 fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_DOUBLE));
565 in_d = 34567.8;
566 fail_unless(eina_value_pset(value, &in_d));
567 fail_unless(eina_value_pget(value, &d));
568 fail_unless(CHECK_FP(34567.8, d));
569 eina_value_flush(value);
570
571 fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_STRING));
572 in_str = "hello world!";
573 fail_unless(eina_value_pset(value, &in_str));
574 fail_unless(eina_value_pget(value, &str));
575 fail_unless(strcmp(str, "hello world!") == 0);
576
577 in_str = "eina-value";
578 fail_unless(eina_value_pset(value, &in_str));
579 fail_unless(eina_value_pget(value, &str));
580 fail_unless(strcmp(str, "eina-value") == 0);
581
582 eina_value_flush(value);
583 fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_STRING));
584
585 in_str = "profusion";
586 fail_unless(eina_value_pset(value, &in_str));
587 fail_unless(eina_value_pget(value, &str));
588 fail_unless(strcmp(str, "profusion") == 0);
589
590 eina_value_free(value);
591 eina_shutdown();
592}
593END_TEST
594
595START_TEST(eina_value_test_to_string)
596{
597 Eina_Value *value;
598 char c, in_c;
599 short s, in_s;
600 int i, in_i;
601 long l, in_l;
602 int64_t i64, in_i64;
603 unsigned char uc, in_uc;
604 unsigned short us, in_us;
605 unsigned int ui, in_ui;
606 unsigned long ul, in_ul;
607 uint64_t u64, in_u64;
608 float f, in_f;
609 double d, in_d;
610 const char *str, *in_str;
611 char *out;
612 char buf[256];
613
614 eina_init();
615
616 value = eina_value_new(EINA_VALUE_TYPE_CHAR);
617 fail_unless(value != NULL);
618 in_c = 'x';
619 fail_unless(eina_value_pset(value, &in_c));
620 fail_unless(eina_value_pget(value, &c));
621 fail_unless(c == 'x');
622 snprintf(buf, sizeof(buf), "%hhd", in_c);
623 out = eina_value_to_string(value);
624 fail_unless(out != NULL);
625 fail_unless(strcmp(buf, out) == 0);
626 free(out);
627 eina_value_flush(value);
628
629 fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_SHORT));
630 in_s = 300;
631 fail_unless(eina_value_pset(value, &in_s));
632 fail_unless(eina_value_pget(value, &s));
633 fail_unless(s == 300);
634 snprintf(buf, sizeof(buf), "%hd", in_s);
635 out = eina_value_to_string(value);
636 fail_unless(out != NULL);
637 fail_unless(strcmp(buf, out) == 0);
638 free(out);
639 eina_value_flush(value);
640
641 fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_INT));
642 in_i = -12345;
643 fail_unless(eina_value_pset(value, &in_i));
644 fail_unless(eina_value_pget(value, &i));
645 fail_unless(i == -12345);
646 snprintf(buf, sizeof(buf), "%d", in_i);
647 out = eina_value_to_string(value);
648 fail_unless(out != NULL);
649 fail_unless(strcmp(buf, out) == 0);
650 free(out);
651 eina_value_flush(value);
652
653 fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_LONG));
654 in_l = 0xb33f;
655 fail_unless(eina_value_pset(value, &in_l));
656 fail_unless(eina_value_pget(value, &l));
657 fail_unless(l == 0xb33f);
658 snprintf(buf, sizeof(buf), "%ld", in_l);
659 out = eina_value_to_string(value);
660 fail_unless(out != NULL);
661 fail_unless(strcmp(buf, out) == 0);
662 free(out);
663 eina_value_flush(value);
664
665 fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_INT64));
666 in_i64 = 0x0011223344556677;
667 fail_unless(eina_value_pset(value, &in_i64));
668 fail_unless(eina_value_pget(value, &i64));
669 fail_unless(i64 == 0x0011223344556677);
670 snprintf(buf, sizeof(buf), "%"PRId64, in_i64);
671 out = eina_value_to_string(value);
672 fail_unless(out != NULL);
673 fail_unless(strcmp(buf, out) == 0);
674 free(out);
675 eina_value_flush(value);
676
677 /* unsigned: */
678
679 fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_UCHAR));
680 in_uc = 200;
681 fail_unless(eina_value_pset(value, &in_uc));
682 fail_unless(eina_value_pget(value, &uc));
683 fail_unless(uc == 200);
684 snprintf(buf, sizeof(buf), "%hhu", in_uc);
685 out = eina_value_to_string(value);
686 fail_unless(out != NULL);
687 fail_unless(strcmp(buf, out) == 0);
688 free(out);
689 eina_value_flush(value);
690
691 fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_USHORT));
692 in_us = 65535;
693 fail_unless(eina_value_pset(value, &in_us));
694 fail_unless(eina_value_pget(value, &us));
695 fail_unless(us == 65535);
696 snprintf(buf, sizeof(buf), "%hu", in_us);
697 out = eina_value_to_string(value);
698 fail_unless(out != NULL);
699 fail_unless(strcmp(buf, out) == 0);
700 free(out);
701 eina_value_flush(value);
702
703 fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_UINT));
704 in_ui = 4000000000U;
705 fail_unless(eina_value_pset(value, &in_ui));
706 fail_unless(eina_value_pget(value, &ui));
707 fail_unless(ui == 4000000000U);
708 snprintf(buf, sizeof(buf), "%u", in_ui);
709 out = eina_value_to_string(value);
710 fail_unless(out != NULL);
711 fail_unless(strcmp(buf, out) == 0);
712 free(out);
713 eina_value_flush(value);
714
715 fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_ULONG));
716 in_ul = 3000000001U;
717 fail_unless(eina_value_pset(value, &in_ul));
718 fail_unless(eina_value_pget(value, &ul));
719 fail_unless(ul == 3000000001U);
720 snprintf(buf, sizeof(buf), "%lu", in_ul);
721 out = eina_value_to_string(value);
722 fail_unless(out != NULL);
723 fail_unless(strcmp(buf, out) == 0);
724 free(out);
725 eina_value_flush(value);
726
727 fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_UINT64));
728 in_u64 = 0x1122334455667788;
729 fail_unless(eina_value_pset(value, &in_u64));
730 fail_unless(eina_value_pget(value, &u64));
731 fail_unless(u64 == 0x1122334455667788);
732 snprintf(buf, sizeof(buf), "%"PRIu64, in_u64);
733 out = eina_value_to_string(value);
734 fail_unless(out != NULL);
735 fail_unless(strcmp(buf, out) == 0);
736 free(out);
737 eina_value_flush(value);
738
739 /* floating point */
740 fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_FLOAT));
741 in_f = 0.1234;
742 fail_unless(eina_value_pset(value, &in_f));
743 fail_unless(eina_value_pget(value, &f));
744 fail_unless(CHECK_FP(0.1234, f));
745 snprintf(buf, sizeof(buf), "%g", in_f);
746 out = eina_value_to_string(value);
747 fail_unless(out != NULL);
748 fail_unless(strncmp(buf, out, 6) == 0); /* stupid float... */
749 free(out);
750 eina_value_flush(value);
751
752 fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_DOUBLE));
753 in_d = 34567.8;
754 fail_unless(eina_value_pset(value, &in_d));
755 fail_unless(eina_value_pget(value, &d));
756 fail_unless(CHECK_FP(34567.8, d));
757 snprintf(buf, sizeof(buf), "%g", in_d);
758 out = eina_value_to_string(value);
759 fail_unless(out != NULL);
760 fail_unless(strncmp(buf, out, 7) == 0); /* stupid double... */
761 free(out);
762 eina_value_flush(value);
763
764 fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_STRING));
765 in_str = "hello world!";
766 fail_unless(eina_value_pset(value, &in_str));
767 fail_unless(eina_value_pget(value, &str));
768 fail_unless(strcmp(str, "hello world!") == 0);
769 out = eina_value_to_string(value);
770 fail_unless(out != NULL);
771 fail_unless(strcmp(in_str, out) == 0);
772 free(out);
773
774 in_str = "eina-value";
775 fail_unless(eina_value_pset(value, &in_str));
776 fail_unless(eina_value_pget(value, &str));
777 fail_unless(strcmp(str, "eina-value") == 0);
778 out = eina_value_to_string(value);
779 fail_unless(out != NULL);
780 fail_unless(strcmp(in_str, out) == 0);
781 free(out);
782
783 eina_value_flush(value);
784 fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_STRING));
785
786 in_str = "profusion";
787 fail_unless(eina_value_pset(value, &in_str));
788 fail_unless(eina_value_pget(value, &str));
789 fail_unless(strcmp(str, "profusion") == 0);
790 out = eina_value_to_string(value);
791 fail_unless(out != NULL);
792 fail_unless(strcmp(in_str, out) == 0);
793 free(out);
794
795 eina_value_free(value);
796 eina_shutdown();
797}
798END_TEST
799
800START_TEST(eina_value_test_convert_char)
801{
802 Eina_Value *value, conv;
803 char c;
804 short s;
805 int i;
806 long l;
807 int64_t i64;
808 unsigned char uc;
809 unsigned short us;
810 unsigned int ui;
811 unsigned long ul;
812 uint64_t u64;
813 float f;
814 double d;
815 const char *str;
816
817 eina_init();
818
819 value = eina_value_new(EINA_VALUE_TYPE_CHAR);
820 fail_unless(value != NULL);
821
822 fail_unless(eina_value_set(value, 123));
823
824 fail_unless(eina_value_setup(&conv, EINA_VALUE_TYPE_UCHAR));
825 fail_unless(eina_value_convert(value, &conv));
826 fail_unless(eina_value_get(&conv, &uc));
827 fail_unless(uc == 123);
828 eina_value_flush(&conv);
829
830 fail_unless(eina_value_setup(&conv, EINA_VALUE_TYPE_USHORT));
831 fail_unless(eina_value_convert(value, &conv));
832 fail_unless(eina_value_get(&conv, &us));
833 fail_unless(us == 123);
834 eina_value_flush(&conv);
835
836 fail_unless(eina_value_setup(&conv, EINA_VALUE_TYPE_UINT));
837 fail_unless(eina_value_convert(value, &conv));
838 fail_unless(eina_value_get(&conv, &ui));
839 fail_unless(ui == 123);
840 eina_value_flush(&conv);
841
842 fail_unless(eina_value_setup(&conv, EINA_VALUE_TYPE_ULONG));
843 fail_unless(eina_value_convert(value, &conv));
844 fail_unless(eina_value_get(&conv, &ul));
845 fail_unless(ul == 123);
846 eina_value_flush(&conv);
847
848 fail_unless(eina_value_setup(&conv, EINA_VALUE_TYPE_UINT64));
849 fail_unless(eina_value_convert(value, &conv));
850 fail_unless(eina_value_get(&conv, &u64));
851 fail_unless(u64 == 123);
852 eina_value_flush(&conv);
853
854 fail_unless(eina_value_setup(&conv, EINA_VALUE_TYPE_CHAR));
855 fail_unless(eina_value_convert(value, &conv));
856 fail_unless(eina_value_get(&conv, &c));
857 fail_unless(c == 123);
858 eina_value_flush(&conv);
859
860 fail_unless(eina_value_setup(&conv, EINA_VALUE_TYPE_SHORT));
861 fail_unless(eina_value_convert(value, &conv));
862 fail_unless(eina_value_get(&conv, &s));
863 fail_unless(s == 123);
864 eina_value_flush(&conv);
865
866 fail_unless(eina_value_setup(&conv, EINA_VALUE_TYPE_INT));
867 fail_unless(eina_value_convert(value, &conv));
868 fail_unless(eina_value_get(&conv, &i));
869 fail_unless(i == 123);
870 eina_value_flush(&conv);
871
872 fail_unless(eina_value_setup(&conv, EINA_VALUE_TYPE_LONG));
873 fail_unless(eina_value_convert(value, &conv));
874 fail_unless(eina_value_get(&conv, &l));
875 fail_unless(l == 123);
876 eina_value_flush(&conv);
877
878 fail_unless(eina_value_setup(&conv, EINA_VALUE_TYPE_INT64));
879 fail_unless(eina_value_convert(value, &conv));
880 fail_unless(eina_value_get(&conv, &i64));
881 fail_unless(i64 == 123);
882 eina_value_flush(&conv);
883
884 fail_unless(eina_value_setup(&conv, EINA_VALUE_TYPE_FLOAT));
885 fail_unless(eina_value_convert(value, &conv));
886 fail_unless(eina_value_get(&conv, &f));
887 fail_unless(CHECK_FP(f, 123));
888 eina_value_flush(&conv);
889
890 fail_unless(eina_value_setup(&conv, EINA_VALUE_TYPE_DOUBLE));
891 fail_unless(eina_value_convert(value, &conv));
892 fail_unless(eina_value_get(&conv, &d));
893 fail_unless(CHECK_FP(d, 123));
894 eina_value_flush(&conv);
895
896 fail_unless(eina_value_setup(&conv, EINA_VALUE_TYPE_STRING));
897 fail_unless(eina_value_convert(value, &conv));
898 fail_unless(eina_value_get(&conv, &str));
899 fail_unless(str != NULL);
900 fail_unless(strcmp(str, "123") == 0);
901 eina_value_flush(&conv);
902
903 /* negative tests */
904 fail_unless(eina_value_set(value, -123));
905
906 fail_unless(eina_value_setup(&conv, EINA_VALUE_TYPE_UCHAR));
907 fail_if(eina_value_convert(value, &conv));
908 eina_value_flush(&conv);
909
910 fail_unless(eina_value_setup(&conv, EINA_VALUE_TYPE_USHORT));
911 fail_if(eina_value_convert(value, &conv));
912 eina_value_flush(&conv);
913
914 fail_unless(eina_value_setup(&conv, EINA_VALUE_TYPE_UINT));
915 fail_if(eina_value_convert(value, &conv));
916 eina_value_flush(&conv);
917
918 fail_unless(eina_value_setup(&conv, EINA_VALUE_TYPE_ULONG));
919 fail_if(eina_value_convert(value, &conv));
920 eina_value_flush(&conv);
921
922 fail_unless(eina_value_setup(&conv, EINA_VALUE_TYPE_UINT64));
923 fail_if(eina_value_convert(value, &conv));
924 eina_value_flush(&conv);
925
926 eina_value_free(value);
927 eina_shutdown();
928}
929END_TEST
930
931START_TEST(eina_value_test_convert_uchar)
932{
933 Eina_Value *value, conv;
934 char c;
935 short s;
936 int i;
937 long l;
938 int64_t i64;
939 unsigned char uc;
940 unsigned short us;
941 unsigned int ui;
942 unsigned long ul;
943 uint64_t u64;
944 float f;
945 double d;
946 const char *str;
947
948 eina_init();
949
950 value = eina_value_new(EINA_VALUE_TYPE_UCHAR);
951 fail_unless(value != NULL);
952
953 fail_unless(eina_value_set(value, 31));
954
955 fail_unless(eina_value_setup(&conv, EINA_VALUE_TYPE_UCHAR));
956 fail_unless(eina_value_convert(value, &conv));
957 fail_unless(eina_value_get(&conv, &uc));
958 fail_unless(uc == 31);
959 eina_value_flush(&conv);
960
961 fail_unless(eina_value_setup(&conv, EINA_VALUE_TYPE_USHORT));
962 fail_unless(eina_value_convert(value, &conv));
963 fail_unless(eina_value_get(&conv, &us));
964 fail_unless(us == 31);
965 eina_value_flush(&conv);
966
967 fail_unless(eina_value_setup(&conv, EINA_VALUE_TYPE_UINT));
968 fail_unless(eina_value_convert(value, &conv));
969 fail_unless(eina_value_get(&conv, &ui));
970 fail_unless(ui == 31);
971 eina_value_flush(&conv);
972
973 fail_unless(eina_value_setup(&conv, EINA_VALUE_TYPE_ULONG));
974 fail_unless(eina_value_convert(value, &conv));
975 fail_unless(eina_value_get(&conv, &ul));
976 fail_unless(ul == 31);
977 eina_value_flush(&conv);
978
979 fail_unless(eina_value_setup(&conv, EINA_VALUE_TYPE_UINT64));
980 fail_unless(eina_value_convert(value, &conv));
981 fail_unless(eina_value_get(&conv, &u64));
982 fail_unless(u64 == 31);
983 eina_value_flush(&conv);
984
985 fail_unless(eina_value_setup(&conv, EINA_VALUE_TYPE_CHAR));
986 fail_unless(eina_value_convert(value, &conv));
987 fail_unless(eina_value_get(&conv, &c));
988 fail_unless(c == 31);
989 eina_value_flush(&conv);
990
991 fail_unless(eina_value_setup(&conv, EINA_VALUE_TYPE_SHORT));
992 fail_unless(eina_value_convert(value, &conv));
993 fail_unless(eina_value_get(&conv, &s));
994 fail_unless(s == 31);
995 eina_value_flush(&conv);
996
997 fail_unless(eina_value_setup(&conv, EINA_VALUE_TYPE_INT));
998 fail_unless(eina_value_convert(value, &conv));
999 fail_unless(eina_value_get(&conv, &i));
1000 fail_unless(i == 31);
1001 eina_value_flush(&conv);
1002
1003 fail_unless(eina_value_setup(&conv, EINA_VALUE_TYPE_LONG));
1004 fail_unless(eina_value_convert(value, &conv));
1005 fail_unless(eina_value_get(&conv, &l));
1006 fail_unless(l == 31);
1007 eina_value_flush(&conv);
1008
1009 fail_unless(eina_value_setup(&conv, EINA_VALUE_TYPE_INT64));
1010 fail_unless(eina_value_convert(value, &conv));
1011 fail_unless(eina_value_get(&conv, &i64));
1012 fail_unless(i64 == 31);
1013 eina_value_flush(&conv);
1014
1015 fail_unless(eina_value_setup(&conv, EINA_VALUE_TYPE_FLOAT));
1016 fail_unless(eina_value_convert(value, &conv));
1017 fail_unless(eina_value_get(&conv, &f));
1018 fail_unless(CHECK_FP(f, 31));
1019 eina_value_flush(&conv);
1020
1021 fail_unless(eina_value_setup(&conv, EINA_VALUE_TYPE_DOUBLE));
1022 fail_unless(eina_value_convert(value, &conv));
1023 fail_unless(eina_value_get(&conv, &d));
1024 fail_unless(CHECK_FP(d, 31));
1025 eina_value_flush(&conv);
1026
1027 fail_unless(eina_value_setup(&conv, EINA_VALUE_TYPE_STRING));
1028 fail_unless(eina_value_convert(value, &conv));
1029 fail_unless(eina_value_get(&conv, &str));
1030 fail_unless(str != NULL);
1031 fail_unless(strcmp(str, "31") == 0);
1032 eina_value_flush(&conv);
1033
1034 /* negative tests */
1035 fail_unless(eina_value_set(value, 200));
1036
1037 fail_unless(eina_value_setup(&conv, EINA_VALUE_TYPE_CHAR));
1038 fail_if(eina_value_convert(value, &conv));
1039 eina_value_flush(&conv);
1040
1041 eina_value_free(value);
1042 eina_shutdown();
1043}
1044END_TEST
1045
1046
1047START_TEST(eina_value_test_array)
1048{
1049 Eina_Value *value, other;
1050 Eina_Value_Array desc;
1051 Eina_Inarray *inarray;
1052 char c;
1053 char buf[1024];
1054 char *str;
1055
1056 eina_init();
1057
1058 value = eina_value_array_new(EINA_VALUE_TYPE_CHAR, 0);
1059 fail_unless(value != NULL);
1060
1061 fail_unless(eina_value_array_append(value, 'k'));
1062 fail_unless(eina_value_array_append(value, '-'));
1063 fail_unless(eina_value_array_append(value, 's'));
1064
1065 fail_unless(eina_value_array_get(value, 0, &c));
1066 fail_unless(c == 'k');
1067 fail_unless(eina_value_array_get(value, 1, &c));
1068 fail_unless(c == '-');
1069 fail_unless(eina_value_array_get(value, 2, &c));
1070 fail_unless(c == 's');
1071
1072 fail_unless(eina_value_array_insert(value, 0, '!'));
1073 fail_unless(eina_value_array_get(value, 0, &c));
1074 fail_unless(c == '!');
1075 fail_unless(eina_value_array_get(value, 1, &c));
1076 fail_unless(c == 'k');
1077 fail_unless(eina_value_array_get(value, 2, &c));
1078 fail_unless(c == '-');
1079 fail_unless(eina_value_array_get(value, 3, &c));
1080 fail_unless(c == 's');
1081
1082 fail_unless(eina_value_array_set(value, 0, '*'));
1083 fail_unless(eina_value_array_get(value, 0, &c));
1084 fail_unless(c == '*');
1085 fail_unless(eina_value_array_get(value, 1, &c));
1086 fail_unless(c == 'k');
1087 fail_unless(eina_value_array_get(value, 2, &c));
1088 fail_unless(c == '-');
1089 fail_unless(eina_value_array_get(value, 3, &c));
1090 fail_unless(c == 's');
1091
1092 snprintf(buf, sizeof(buf), "[%hhd, %hhd, %hhd, %hhd]",
1093 '*', 'k', '-', 's');
1094
1095 str = eina_value_to_string(value);
1096 fail_unless(str != NULL);
1097 fail_unless(strcmp(str, buf) == 0);
1098 free(str);
1099
1100 eina_value_flush(value);
1101 fail_unless(eina_value_array_setup(value, EINA_VALUE_TYPE_STRINGSHARE, 2));
1102
1103 fail_unless(eina_value_array_append(value, "Enlightenment.org"));
1104 fail_unless(eina_value_array_append(value, "X11"));
1105 fail_unless(eina_value_array_append(value, "Pants"));
1106 fail_unless(eina_value_array_append(value, "on!!!"));
1107 fail_unless(eina_value_array_append(value, "k-s"));
1108
1109 str = eina_value_to_string(value);
1110 fail_unless(str != NULL);
1111 fail_unless(strcmp(str, "[Enlightenment.org, X11, Pants, on!!!, k-s]") == 0);
1112 free(str);
1113
1114 eina_value_flush(value);
1115 fail_unless(eina_value_array_setup(value, EINA_VALUE_TYPE_CHAR, 0));
1116 fail_unless(eina_value_setup(&other, EINA_VALUE_TYPE_CHAR));
1117
1118 fail_unless(eina_value_set(&other, 100));
1119 fail_unless(eina_value_get(&other, &c));
1120 fail_unless(c == 100);
1121
1122 fail_unless(eina_value_convert(&other, value));
1123 str = eina_value_to_string(value);
1124 fail_unless(str != NULL);
1125 fail_unless(strcmp(str, "[100]") == 0);
1126 free(str);
1127
1128 fail_unless(eina_value_array_set(value, 0, 33));
1129 fail_unless(eina_value_convert(value, &other));
1130 fail_unless(eina_value_get(&other, &c));
1131 fail_unless(c == 33);
1132
1133 inarray = eina_inarray_new(sizeof(char), 0);
1134 fail_unless(inarray != NULL);
1135 c = 11;
1136 fail_unless(eina_inarray_append(inarray, &c) >= 0);
1137 c = 21;
1138 fail_unless(eina_inarray_append(inarray, &c) >= 0);
1139 c = 31;
1140 fail_unless(eina_inarray_append(inarray, &c) >= 0);
1141 desc.subtype = EINA_VALUE_TYPE_CHAR;
1142 desc.step = 0;
1143 desc.array = inarray; /* will be adopted and freed by value */
1144 fail_unless(eina_value_set(value, desc)); /* manually configure */
1145 fail_unless(eina_value_array_get(value, 0, &c));
1146 fail_unless(c == 11);
1147 fail_unless(eina_value_array_get(value, 1, &c));
1148 fail_unless(c == 21);
1149 fail_unless(eina_value_array_get(value, 2, &c));
1150 fail_unless(c == 31);
1151
1152 eina_value_free(value);
1153 eina_shutdown();
1154}
1155END_TEST
1156
1157START_TEST(eina_value_test_list)
1158{
1159 Eina_Value *value, other;
1160 Eina_Value_List desc;
1161 char c;
1162 char buf[1024];
1163 char *str;
1164 const char *s;
1165
1166 eina_init();
1167
1168 value = eina_value_list_new(EINA_VALUE_TYPE_CHAR);
1169 fail_unless(value != NULL);
1170
1171 fail_unless(eina_value_list_append(value, 'k'));
1172 fail_unless(eina_value_list_append(value, '-'));
1173 fail_unless(eina_value_list_append(value, 's'));
1174
1175 fail_unless(eina_value_list_get(value, 0, &c));
1176 fail_unless(c == 'k');
1177 fail_unless(eina_value_list_get(value, 1, &c));
1178 fail_unless(c == '-');
1179 fail_unless(eina_value_list_get(value, 2, &c));
1180 fail_unless(c == 's');
1181
1182 fail_unless(eina_value_list_insert(value, 0, '!'));
1183 fail_unless(eina_value_list_get(value, 0, &c));
1184 fail_unless(c == '!');
1185 fail_unless(eina_value_list_get(value, 1, &c));
1186 fail_unless(c == 'k');
1187 fail_unless(eina_value_list_get(value, 2, &c));
1188 fail_unless(c == '-');
1189 fail_unless(eina_value_list_get(value, 3, &c));
1190 fail_unless(c == 's');
1191
1192 fail_unless(eina_value_list_set(value, 0, '*'));
1193 fail_unless(eina_value_list_get(value, 0, &c));
1194 fail_unless(c == '*');
1195 fail_unless(eina_value_list_get(value, 1, &c));
1196 fail_unless(c == 'k');
1197 fail_unless(eina_value_list_get(value, 2, &c));
1198 fail_unless(c == '-');
1199 fail_unless(eina_value_list_get(value, 3, &c));
1200 fail_unless(c == 's');
1201
1202 snprintf(buf, sizeof(buf), "[%hhd, %hhd, %hhd, %hhd]",
1203 '*', 'k', '-', 's');
1204
1205 str = eina_value_to_string(value);
1206 fail_unless(str != NULL);
1207 fail_unless(strcmp(str, buf) == 0);
1208 free(str);
1209
1210 eina_value_flush(value);
1211 fail_unless(eina_value_list_setup(value, EINA_VALUE_TYPE_STRINGSHARE));
1212
1213 fail_unless(eina_value_list_append(value, "Enlightenment.org"));
1214 fail_unless(eina_value_list_append(value, "X11"));
1215 fail_unless(eina_value_list_append(value, "Pants"));
1216 fail_unless(eina_value_list_append(value, "on!!!"));
1217 fail_unless(eina_value_list_append(value, "k-s"));
1218
1219 str = eina_value_to_string(value);
1220 fail_unless(str != NULL);
1221 fail_unless(strcmp(str, "[Enlightenment.org, X11, Pants, on!!!, k-s]") == 0);
1222 free(str);
1223
1224 eina_value_flush(value);
1225 fail_unless(eina_value_list_setup(value, EINA_VALUE_TYPE_CHAR));
1226 fail_unless(eina_value_setup(&other, EINA_VALUE_TYPE_CHAR));
1227
1228 fail_unless(eina_value_set(&other, 100));
1229 fail_unless(eina_value_get(&other, &c));
1230 fail_unless(c == 100);
1231
1232 fail_unless(eina_value_convert(&other, value));
1233 str = eina_value_to_string(value);
1234 fail_unless(str != NULL);
1235 fail_unless(strcmp(str, "[100]") == 0);
1236 free(str);
1237
1238 fail_unless(eina_value_list_set(value, 0, 33));
1239 fail_unless(eina_value_convert(value, &other));
1240 fail_unless(eina_value_get(&other, &c));
1241 fail_unless(c == 33);
1242
1243 desc.subtype = EINA_VALUE_TYPE_STRING;
1244 desc.list = NULL;
1245 desc.list = eina_list_append(desc.list, strdup("hello"));
1246 desc.list = eina_list_append(desc.list, strdup("world"));
1247 desc.list = eina_list_append(desc.list, strdup("eina"));
1248 fail_unless(eina_list_count(desc.list) == 3);
1249 fail_unless(eina_value_set(value, desc));
1250 fail_unless(eina_value_list_get(value, 0, &s));
1251 fail_unless(s != NULL);
1252 fail_unless(strcmp(s, "hello") == 0);
1253 fail_unless(eina_value_list_get(value, 1, &s));
1254 fail_unless(s != NULL);
1255 fail_unless(strcmp(s, "world") == 0);
1256 fail_unless(eina_value_list_get(value, 2, &s));
1257 fail_unless(s != NULL);
1258 fail_unless(strcmp(s, "eina") == 0);
1259
1260 eina_value_free(value);
1261 eina_shutdown();
1262}
1263END_TEST
1264
1265START_TEST(eina_value_test_hash)
1266{
1267 Eina_Value *value, other;
1268 Eina_Value_Hash desc;
1269 char c;
1270 char buf[1024];
1271 char **ptr;
1272 char *str;
1273 const char *s;
1274
1275 eina_init();
1276
1277 value = eina_value_hash_new(EINA_VALUE_TYPE_CHAR, 0);
1278 fail_unless(value != NULL);
1279
1280 fail_unless(eina_value_hash_set(value, "first", 'k'));
1281 fail_unless(eina_value_hash_set(value, "second", '-'));
1282 fail_unless(eina_value_hash_set(value, "third", 's'));
1283
1284 fail_unless(eina_value_hash_get(value, "first", &c));
1285 fail_unless(c == 'k');
1286 fail_unless(eina_value_hash_get(value, "second", &c));
1287 fail_unless(c == '-');
1288 fail_unless(eina_value_hash_get(value, "third", &c));
1289 fail_unless(c == 's');
1290
1291 fail_unless(eina_value_hash_set(value, "first", '!'));
1292 fail_unless(eina_value_hash_get(value, "first", &c));
1293 fail_unless(c == '!');
1294 fail_unless(eina_value_hash_get(value, "second", &c));
1295 fail_unless(c == '-');
1296 fail_unless(eina_value_hash_get(value, "third", &c));
1297 fail_unless(c == 's');
1298
1299 puts("testing hash to string -- may fail due hash algorithm changes!");
1300
1301 /* watchout, this is the order I got -- hash algorithm changes may change
1302 * the order!
1303 */
1304 snprintf(buf, sizeof(buf), "{first: %hhd, second: %hhd, third: %hhd}",
1305 '!', '-', 's');
1306
1307 str = eina_value_to_string(value);
1308 fail_unless(str != NULL);
1309 printf("want: %s\n", buf);
1310 printf("got.: %s\n", str);
1311 fail_unless(strcmp(str, buf) == 0);
1312 free(str);
1313
1314 eina_value_flush(value);
1315 fail_unless(eina_value_hash_setup(value, EINA_VALUE_TYPE_STRINGSHARE, 0));
1316
1317 fail_unless(eina_value_hash_set(value, "a", "Enlightenment.org"));
1318 fail_unless(eina_value_hash_set(value, "b", "X11"));
1319 fail_unless(eina_value_hash_set(value, "c", "Pants"));
1320 fail_unless(eina_value_hash_set(value, "d", "on!!!"));
1321 fail_unless(eina_value_hash_set(value, "e", "k-s"));
1322
1323 /* watchout, this is the order I got -- hash algorithm changes may change
1324 * the order!
1325 */
1326 strcpy(buf, "{e: k-s, d: on!!!, a: Enlightenment.org, b: X11, c: Pants}");
1327
1328 str = eina_value_to_string(value);
1329 fail_unless(str != NULL);
1330 printf("want: %s\n", buf);
1331 printf("got.: %s\n", str);
1332 fail_unless(strcmp(str, buf) == 0);
1333 free(str);
1334
1335 eina_value_flush(value);
1336 fail_unless(eina_value_hash_setup(value, EINA_VALUE_TYPE_CHAR, 0));
1337 fail_unless(eina_value_setup(&other, EINA_VALUE_TYPE_CHAR));
1338
1339 fail_unless(eina_value_set(&other, 100));
1340 fail_unless(eina_value_get(&other, &c));
1341 fail_unless(c == 100);
1342
1343 fail_unless(eina_value_hash_set(value, "first", 33));
1344 fail_unless(eina_value_convert(value, &other));
1345 fail_unless(eina_value_get(&other, &c));
1346 fail_unless(c == 33);
1347
1348 desc.subtype = EINA_VALUE_TYPE_STRING;
1349 desc.buckets_power_size = 0;
1350 desc.hash = eina_hash_string_small_new(NULL);
1351 fail_unless(desc.hash != NULL);
1352 /* watch out hash pointer is to a size of subtype->value_size! */
1353 ptr = malloc(sizeof(char *));
1354 *ptr = strdup("there");
1355 fail_unless(eina_hash_add(desc.hash, "hi", ptr));
1356 ptr = malloc(sizeof(char *));
1357 *ptr = strdup("y");
1358 fail_unless(eina_hash_add(desc.hash, "x", ptr));
1359
1360 fail_unless(eina_value_set(value, desc));
1361
1362 fail_unless(eina_value_hash_get(value, "hi", &s));
1363 fail_unless(s != NULL);
1364 fail_unless(strcmp(s, "there") == 0);
1365
1366 fail_unless(eina_value_hash_get(value, "x", &s));
1367 fail_unless(s != NULL);
1368 fail_unless(strcmp(s, "y") == 0);
1369
1370 eina_value_free(value);
1371 eina_shutdown();
1372}
1373END_TEST
1374
1375
1376START_TEST(eina_value_test_timeval)
1377{
1378 Eina_Value *value, other;
1379 struct timeval itv, otv;
1380 char c;
1381 char *str;
1382
1383 eina_init();
1384
1385 value = eina_value_new(EINA_VALUE_TYPE_TIMEVAL);
1386 fail_unless(value != NULL);
1387
1388 itv.tv_sec = 1;
1389 itv.tv_usec = 123;
1390 fail_unless(eina_value_set(value, itv));
1391 fail_unless(eina_value_get(value, &otv));
1392 fail_unless(memcmp(&itv, &otv, sizeof(struct timeval)) == 0);
1393
1394 itv.tv_sec = 3;
1395 itv.tv_usec = -1;
1396 fail_unless(eina_value_set(value, itv));
1397 fail_unless(eina_value_get(value, &otv));
1398 itv.tv_sec = 2;
1399 itv.tv_usec = 999999;
1400 fail_unless(memcmp(&itv, &otv, sizeof(struct timeval)) == 0);
1401
1402 fail_unless(eina_value_setup(&other, EINA_VALUE_TYPE_CHAR));
1403 fail_unless(eina_value_convert(value, &other));
1404 fail_unless(eina_value_get(&other, &c));
1405 fail_unless(c == 2);
1406 eina_value_flush(&other);
1407
1408 itv.tv_sec = 12345;
1409 itv.tv_usec = 6789;
1410 fail_unless(eina_value_set(value, itv));
1411 str = eina_value_to_string(value);
1412 fail_unless(str != NULL);
1413 fail_unless(strcmp(str, "12345.006789") == 0);
1414 free(str);
1415
1416 fail_unless(eina_value_setup(&other, EINA_VALUE_TYPE_TIMEVAL));
1417 fail_unless(eina_value_set(&other, itv));
1418 fail_unless(eina_value_compare(value, &other) == 0);
1419
1420 itv.tv_sec++;
1421 fail_unless(eina_value_set(&other, itv));
1422 fail_unless(eina_value_compare(value, &other) < 0);
1423
1424 itv.tv_sec -= 2;
1425 fail_unless(eina_value_set(&other, itv));
1426 fail_unless(eina_value_compare(value, &other) > 0);
1427
1428 itv.tv_sec++;
1429 fail_unless(eina_value_set(&other, itv));
1430 fail_unless(eina_value_compare(value, &other) == 0);
1431
1432 itv.tv_usec++;
1433 fail_unless(eina_value_set(&other, itv));
1434 fail_unless(eina_value_compare(value, &other) < 0);
1435
1436 itv.tv_usec -= 2;
1437 fail_unless(eina_value_set(&other, itv));
1438 fail_unless(eina_value_compare(value, &other) > 0);
1439
1440 itv.tv_usec++;
1441 fail_unless(eina_value_set(&other, itv));
1442 fail_unless(eina_value_compare(value, &other) == 0);
1443
1444 eina_value_flush(&other);
1445
1446
1447 eina_value_free(value);
1448 eina_shutdown();
1449}
1450END_TEST
1451
1452
1453START_TEST(eina_value_test_blob)
1454{
1455 Eina_Value *value, other;
1456 Eina_Value_Blob in, out;
1457 unsigned char blob[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
1458 int i = 0x11223344;
1459 char *str;
1460
1461 eina_init();
1462
1463 value = eina_value_new(EINA_VALUE_TYPE_BLOB);
1464 fail_unless(value != NULL);
1465
1466 in.ops = NULL;
1467 in.memory = blob;
1468 in.size = sizeof(blob);
1469 fail_unless(eina_value_set(value, in));
1470 fail_unless(eina_value_get(value, &out));
1471 fail_unless(out.memory == blob);
1472 fail_unless(out.size == sizeof(blob));
1473 fail_unless(memcmp(&in, &out, sizeof(Eina_Value_Blob)) == 0);
1474
1475 str = eina_value_to_string(value);
1476 fail_unless(str != NULL);
1477 fail_unless(strcmp(str, "BLOB(10, [01 02 03 04 05 06 07 08 09 0a])") == 0);
1478 free(str);
1479
1480 fail_unless(eina_value_setup(&other, EINA_VALUE_TYPE_INT));
1481 fail_unless(eina_value_set(&other, i));
1482 fail_unless(eina_value_convert(&other, value));
1483 fail_unless(eina_value_get(value, &out));
1484
1485 fail_unless(out.memory != NULL);
1486 fail_unless(out.size == sizeof(int));
1487 fail_unless(memcmp(&i, out.memory, sizeof(int)) == 0);
1488
1489 eina_value_flush(&other);
1490
1491 fail_unless(eina_value_setup(&other, EINA_VALUE_TYPE_STRING));
1492 fail_unless(eina_value_set(&other, "hi there!"));
1493 fail_unless(eina_value_convert(&other, value));
1494 fail_unless(eina_value_get(value, &out));
1495 fail_unless(out.memory != NULL);
1496 fail_unless(out.size == sizeof("hi there!"));
1497 fail_unless(strcmp(out.memory, "hi there!") == 0);
1498
1499 str = eina_value_to_string(value);
1500 fail_unless(str != NULL);
1501 fail_unless(strcmp(str, "BLOB(10, [68 69 20 74 68 65 72 65 21 00])") == 0);
1502 free(str);
1503
1504 eina_value_flush(&other);
1505
1506 fail_unless(eina_value_array_setup(&other, EINA_VALUE_TYPE_CHAR, 0));
1507 fail_unless(eina_value_array_append(&other, 0xa));
1508 fail_unless(eina_value_array_append(&other, 0xb));
1509 fail_unless(eina_value_array_append(&other, 0xc));
1510 fail_unless(eina_value_convert(&other, value));
1511 fail_unless(eina_value_get(value, &out));
1512 fail_unless(out.memory != NULL);
1513 fail_unless(out.size == 3);
1514
1515 str = eina_value_to_string(value);
1516 fail_unless(str != NULL);
1517 fail_unless(strcmp(str, "BLOB(3, [0a 0b 0c])") == 0);
1518 free(str);
1519
1520 eina_value_flush(&other);
1521
1522 fail_unless(eina_value_setup(&other, EINA_VALUE_TYPE_BLOB));
1523 fail_unless(eina_value_set(&other, in));
1524 fail_unless(eina_value_convert(value, &other));
1525 fail_unless(eina_value_get(&other, &out));
1526 fail_unless(out.memory != NULL);
1527 fail_unless(out.size == 3);
1528
1529 str = eina_value_to_string(&other);
1530 fail_unless(str != NULL);
1531 fail_unless(strcmp(str, "BLOB(3, [0a 0b 0c])") == 0);
1532 free(str);
1533
1534 eina_value_flush(&other);
1535
1536 eina_value_free(value);
1537 eina_shutdown();
1538}
1539END_TEST
1540
1541
1542START_TEST(eina_value_test_struct)
1543{
1544 struct mybigst {
1545 int a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, x;
1546 };
1547 const Eina_Value_Struct_Member mybigst_members[] = {
1548 EINA_VALUE_STRUCT_MEMBER(EINA_VALUE_TYPE_INT, struct mybigst, a),
1549 EINA_VALUE_STRUCT_MEMBER(EINA_VALUE_TYPE_INT, struct mybigst, b),
1550 EINA_VALUE_STRUCT_MEMBER(EINA_VALUE_TYPE_INT, struct mybigst, c),
1551 EINA_VALUE_STRUCT_MEMBER(EINA_VALUE_TYPE_INT, struct mybigst, d),
1552 EINA_VALUE_STRUCT_MEMBER(EINA_VALUE_TYPE_INT, struct mybigst, e),
1553 EINA_VALUE_STRUCT_MEMBER(EINA_VALUE_TYPE_INT, struct mybigst, f),
1554 EINA_VALUE_STRUCT_MEMBER(EINA_VALUE_TYPE_INT, struct mybigst, g),
1555 EINA_VALUE_STRUCT_MEMBER(EINA_VALUE_TYPE_INT, struct mybigst, h),
1556 EINA_VALUE_STRUCT_MEMBER(EINA_VALUE_TYPE_INT, struct mybigst, i),
1557 EINA_VALUE_STRUCT_MEMBER(EINA_VALUE_TYPE_INT, struct mybigst, j),
1558 EINA_VALUE_STRUCT_MEMBER(EINA_VALUE_TYPE_INT, struct mybigst, k),
1559 EINA_VALUE_STRUCT_MEMBER(EINA_VALUE_TYPE_INT, struct mybigst, l),
1560 EINA_VALUE_STRUCT_MEMBER(EINA_VALUE_TYPE_INT, struct mybigst, m),
1561 EINA_VALUE_STRUCT_MEMBER(EINA_VALUE_TYPE_INT, struct mybigst, n),
1562 EINA_VALUE_STRUCT_MEMBER(EINA_VALUE_TYPE_INT, struct mybigst, o),
1563 EINA_VALUE_STRUCT_MEMBER(EINA_VALUE_TYPE_INT, struct mybigst, p),
1564 EINA_VALUE_STRUCT_MEMBER(EINA_VALUE_TYPE_INT, struct mybigst, q),
1565 EINA_VALUE_STRUCT_MEMBER(EINA_VALUE_TYPE_INT, struct mybigst, r),
1566 EINA_VALUE_STRUCT_MEMBER(EINA_VALUE_TYPE_INT, struct mybigst, s),
1567 EINA_VALUE_STRUCT_MEMBER(EINA_VALUE_TYPE_INT, struct mybigst, t),
1568 EINA_VALUE_STRUCT_MEMBER(EINA_VALUE_TYPE_INT, struct mybigst, u),
1569 EINA_VALUE_STRUCT_MEMBER(EINA_VALUE_TYPE_INT, struct mybigst, v),
1570 EINA_VALUE_STRUCT_MEMBER(EINA_VALUE_TYPE_INT, struct mybigst, x),
1571 EINA_VALUE_STRUCT_MEMBER_SENTINEL
1572 };
1573 const Eina_Value_Struct_Desc mybigst_desc = {
1574 EINA_VALUE_STRUCT_DESC_VERSION,
1575 EINA_VALUE_STRUCT_OPERATIONS_BINSEARCH,
1576 mybigst_members, 23, sizeof(struct mybigst)
1577 };
1578 struct myst {
1579 int i;
1580 char c;
1581 };
1582 const Eina_Value_Struct_Member myst_members[] = {
1583 {"i", EINA_VALUE_TYPE_INT, 0},
1584 {"c", EINA_VALUE_TYPE_CHAR, 4},
1585 {NULL, NULL, 0}
1586 };
1587 const Eina_Value_Struct_Desc myst_desc = {
1588 EINA_VALUE_STRUCT_DESC_VERSION,
1589 NULL, myst_members, 2, sizeof(struct myst)
1590 };
1591 Eina_Value *value, other;
1592 int i;
1593 char c;
1594 char *str;
1595
1596 eina_init();
1597
1598 value = eina_value_struct_new(&myst_desc);
1599 fail_unless(value != NULL);
1600
1601 fail_unless(eina_value_struct_set(value, "i", 5678));
1602 fail_unless(eina_value_struct_set(value, "c", 0xf));
1603
1604 fail_unless(eina_value_struct_get(value, "i", &i));
1605 fail_unless(i == 5678);
1606 fail_unless(eina_value_struct_get(value, "c", &c));
1607 fail_unless(c == 0xf);
1608
1609 str = eina_value_to_string(value);
1610 fail_unless(str != NULL);
1611 fail_unless(strcmp(str, "{i: 5678, c: 15}") == 0);
1612 free(str);
1613
1614 fail_if(eina_value_struct_get(value, "x", 1234));
1615
1616 i = 0x11223344;
1617 fail_unless(eina_value_struct_pset(value, "i", &i));
1618 i = -1;
1619 fail_unless(eina_value_struct_pget(value, "i", &i));
1620 fail_unless(i == 0x11223344);
1621
1622 fail_unless(eina_value_copy(value, &other));
1623 str = eina_value_to_string(&other);
1624 fail_unless(str != NULL);
1625 fail_unless(strcmp(str, "{i: 287454020, c: 15}") == 0);
1626 free(str);
1627
1628 eina_value_flush(&other);
1629
1630 fail_unless(eina_value_struct_setup(&other, &mybigst_desc));
1631 fail_unless(eina_value_struct_set(&other, "a", 1) );
1632 fail_unless(eina_value_struct_set(&other, "b", 2));
1633 fail_unless(eina_value_struct_set(&other, "c", 3));
1634 fail_unless(eina_value_struct_set(&other, "d", 4));
1635 fail_unless(eina_value_struct_set(&other, "e", 5));
1636 fail_unless(eina_value_struct_set(&other, "f", 6));
1637 fail_unless(eina_value_struct_set(&other, "g", 7));
1638 fail_unless(eina_value_struct_set(&other, "h", 8));
1639 fail_unless(eina_value_struct_set(&other, "i", 9));
1640 fail_unless(eina_value_struct_set(&other, "j", 10));
1641 fail_unless(eina_value_struct_set(&other, "k", 12));
1642 fail_unless(eina_value_struct_set(&other, "l", 13));
1643 fail_unless(eina_value_struct_set(&other, "m", 14));
1644 fail_unless(eina_value_struct_set(&other, "n", 15));
1645 fail_unless(eina_value_struct_set(&other, "o", 16));
1646 fail_unless(eina_value_struct_set(&other, "p", 17));
1647 fail_unless(eina_value_struct_set(&other, "q", 18));
1648 fail_unless(eina_value_struct_set(&other, "r", 19));
1649 fail_unless(eina_value_struct_set(&other, "s", 20));
1650 fail_unless(eina_value_struct_set(&other, "t", 21));
1651 fail_unless(eina_value_struct_set(&other, "u", 22));
1652 fail_unless(eina_value_struct_set(&other, "v", 23));
1653 fail_unless(eina_value_struct_set(&other, "x", 24));
1654
1655 fail_unless(eina_value_struct_get(&other, "a", &i));
1656 fail_unless(i == 1);
1657 fail_unless(eina_value_struct_get(&other, "b", &i));
1658 fail_unless(i == 2);
1659 fail_unless(eina_value_struct_get(&other, "c", &i));
1660 fail_unless(i == 3);
1661 fail_unless(eina_value_struct_get(&other, "d", &i));
1662 fail_unless(i == 4);
1663 fail_unless(eina_value_struct_get(&other, "e", &i));
1664 fail_unless(i == 5);
1665 fail_unless(eina_value_struct_get(&other, "f", &i));
1666 fail_unless(i == 6);
1667 fail_unless(eina_value_struct_get(&other, "g", &i));
1668 fail_unless(i == 7);
1669 fail_unless(eina_value_struct_get(&other, "h", &i));
1670 fail_unless(i == 8);
1671 fail_unless(eina_value_struct_get(&other, "i", &i));
1672 fail_unless(i == 9);
1673 fail_unless(eina_value_struct_get(&other, "j", &i));
1674 fail_unless(i == 10);
1675 fail_unless(eina_value_struct_get(&other, "k", &i));
1676 fail_unless(i == 12);
1677 fail_unless(eina_value_struct_get(&other, "l", &i));
1678 fail_unless(i == 13);
1679 fail_unless(eina_value_struct_get(&other, "m", &i));
1680 fail_unless(i == 14);
1681 fail_unless(eina_value_struct_get(&other, "n", &i));
1682 fail_unless(i == 15);
1683 fail_unless(eina_value_struct_get(&other, "o", &i));
1684 fail_unless(i == 16);
1685 fail_unless(eina_value_struct_get(&other, "p", &i));
1686 fail_unless(i == 17);
1687 fail_unless(eina_value_struct_get(&other, "q", &i));
1688 fail_unless(i == 18);
1689 fail_unless(eina_value_struct_get(&other, "r", &i));
1690 fail_unless(i == 19);
1691 fail_unless(eina_value_struct_get(&other, "s", &i));
1692 fail_unless(i == 20);
1693 fail_unless(eina_value_struct_get(&other, "t", &i));
1694 fail_unless(i == 21);
1695 fail_unless(eina_value_struct_get(&other, "u", &i));
1696 fail_unless(i == 22);
1697 fail_unless(eina_value_struct_get(&other, "v", &i));
1698 fail_unless(i == 23);
1699 fail_unless(eina_value_struct_get(&other, "x", &i));
1700 fail_unless(i == 24);
1701
1702 str = eina_value_to_string(&other);
1703 fail_unless(str != NULL);
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);
1705 free(str);
1706
1707 eina_value_free(value);
1708 eina_shutdown();
1709}
1710END_TEST
1711
1712
1713START_TEST(eina_value_test_array_of_struct)
1714{
1715 struct myst {
1716 int a, b, c;
1717 const char *s;
1718 };
1719 const Eina_Value_Struct_Member myst_members[] = {
1720 EINA_VALUE_STRUCT_MEMBER(EINA_VALUE_TYPE_INT, struct myst, a),
1721 EINA_VALUE_STRUCT_MEMBER(EINA_VALUE_TYPE_INT, struct myst, b),
1722 EINA_VALUE_STRUCT_MEMBER(EINA_VALUE_TYPE_INT, struct myst, c),
1723 EINA_VALUE_STRUCT_MEMBER(EINA_VALUE_TYPE_STRING, struct myst, s),
1724 EINA_VALUE_STRUCT_MEMBER_SENTINEL
1725 };
1726 const Eina_Value_Struct_Desc myst_desc = {
1727 EINA_VALUE_STRUCT_DESC_VERSION,
1728 EINA_VALUE_STRUCT_OPERATIONS_BINSEARCH,
1729 myst_members, 4, sizeof(struct myst)
1730 };
1731 Eina_Value *value;
1732 char *str;
1733 int i;
1734
1735 eina_init();
1736
1737 value = eina_value_array_new(EINA_VALUE_TYPE_STRUCT, 0);
1738 fail_unless(value != NULL);
1739
1740 for (i = 0; i < 10; i++)
1741 {
1742 Eina_Value_Struct desc;
1743 struct myst *st;
1744 char buf[64];
1745
1746 snprintf(buf, sizeof(buf), "item%02d", i);
1747 st = malloc(sizeof(struct myst));
1748 fail_unless(st != NULL);
1749 st->a = i;
1750 st->b = i * 10;
1751 st->c = i * 100;
1752 st->s = strdup(buf);
1753 fail_unless(st->s != NULL);
1754
1755 desc.desc = &myst_desc;
1756 desc.memory = st;
1757 fail_unless(eina_value_array_append(value, desc));
1758 }
1759
1760 str = eina_value_to_string(value);
1761 fail_unless(str != NULL);
1762 fail_unless(strcmp(str, "["
1763 "{a: 0, b: 0, c: 0, s: item00}, "
1764 "{a: 1, b: 10, c: 100, s: item01}, "
1765 "{a: 2, b: 20, c: 200, s: item02}, "
1766 "{a: 3, b: 30, c: 300, s: item03}, "
1767 "{a: 4, b: 40, c: 400, s: item04}, "
1768 "{a: 5, b: 50, c: 500, s: item05}, "
1769 "{a: 6, b: 60, c: 600, s: item06}, "
1770 "{a: 7, b: 70, c: 700, s: item07}, "
1771 "{a: 8, b: 80, c: 800, s: item08}, "
1772 "{a: 9, b: 90, c: 900, s: item09}"
1773 "]") == 0);
1774 free(str);
1775
1776 eina_value_free(value);
1777 eina_shutdown();
1778}
1779END_TEST
1780
1781void
1782eina_test_value(TCase *tc)
1783{
1784 tcase_add_test(tc, eina_value_test_simple);
1785 tcase_add_test(tc, eina_value_test_string);
1786 tcase_add_test(tc, eina_value_test_pvariant);
1787 tcase_add_test(tc, eina_value_test_compare);
1788 tcase_add_test(tc, eina_value_test_to_string);
1789 tcase_add_test(tc, eina_value_test_convert_char);
1790 tcase_add_test(tc, eina_value_test_convert_uchar);
1791 // TODO: other converters...
1792 tcase_add_test(tc, eina_value_test_array);
1793 tcase_add_test(tc, eina_value_test_list);
1794 tcase_add_test(tc, eina_value_test_hash);
1795 tcase_add_test(tc, eina_value_test_timeval);
1796 tcase_add_test(tc, eina_value_test_blob);
1797 tcase_add_test(tc, eina_value_test_struct);
1798 tcase_add_test(tc, eina_value_test_array_of_struct);
1799}
diff --git a/libraries/eina/src/tests/evas_list.c b/libraries/eina/src/tests/evas_list.c
index 55e301f..3df15ed 100644
--- a/libraries/eina/src/tests/evas_list.c
+++ b/libraries/eina/src/tests/evas_list.c
@@ -962,7 +962,7 @@ evas_list_sort(Evas_List *list, int size, int (*func)(void *, void *))
962 Evas_List *last; 962 Evas_List *last;
963 unsigned int list_number; 963 unsigned int list_number;
964 unsigned int middle; 964 unsigned int middle;
965 int list_size; 965 unsigned int list_size;
966 966
967 if (!list || !func) 967 if (!list || !func)
968 return NULL; 968 return NULL;
diff --git a/libraries/eina/src/tests/evas_mempool.c b/libraries/eina/src/tests/evas_mempool.c
index fbc48fa..7098214 100644
--- a/libraries/eina/src/tests/evas_mempool.c
+++ b/libraries/eina/src/tests/evas_mempool.c
@@ -56,7 +56,7 @@ _evas_mp_pool_free(Pool *p)
56} 56}
57 57
58void * 58void *
59evas_mempool_malloc(Evas_Mempool *pool, int size) 59evas_mempool_malloc(Evas_Mempool *pool, int size __UNUSED__)
60{ 60{
61#ifdef NOPOOL 61#ifdef NOPOOL
62 return malloc(size); 62 return malloc(size);
diff --git a/libraries/embryo/ChangeLog b/libraries/embryo/ChangeLog
index 4a46661..a9a410a 100644
--- a/libraries/embryo/ChangeLog
+++ b/libraries/embryo/ChangeLog
@@ -14,3 +14,7 @@
14 14
15 * use fseek() instead of rewind() as the latter does not exist on 15 * use fseek() instead of rewind() as the latter does not exist on
16 Windows CE and fix compilation with Evil. 16 Windows CE and fix compilation with Evil.
17
182011-12-02 Carsten Haitzler (The Rasterman)
19
20 1.1.0 release
diff --git a/libraries/embryo/Makefile.in b/libraries/embryo/Makefile.in
index dfa4287..4652fe5 100644
--- a/libraries/embryo/Makefile.in
+++ b/libraries/embryo/Makefile.in
@@ -206,8 +206,6 @@ PACKAGE_URL = @PACKAGE_URL@
206PACKAGE_VERSION = @PACKAGE_VERSION@ 206PACKAGE_VERSION = @PACKAGE_VERSION@
207PATH_SEPARATOR = @PATH_SEPARATOR@ 207PATH_SEPARATOR = @PATH_SEPARATOR@
208PKG_CONFIG = @PKG_CONFIG@ 208PKG_CONFIG = @PKG_CONFIG@
209PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
210PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
211RANLIB = @RANLIB@ 209RANLIB = @RANLIB@
212SED = @SED@ 210SED = @SED@
213SET_MAKE = @SET_MAKE@ 211SET_MAKE = @SET_MAKE@
diff --git a/libraries/embryo/aclocal.m4 b/libraries/embryo/aclocal.m4
index 8eedd0f..14faac2 100644
--- a/libraries/embryo/aclocal.m4
+++ b/libraries/embryo/aclocal.m4
@@ -13,14 +13,13 @@
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.67],, 16m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.65],,
17[m4_warning([this file was generated for autoconf 2.67. 17[m4_warning([this file was generated for autoconf 2.65.
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)
24# 23#
25# Copyright © 2004 Scott James Remnant <scott@netsplit.com>. 24# Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
26# 25#
@@ -48,10 +47,7 @@ To do so, use the procedure documented by the package, typically `autoreconf'.])
48AC_DEFUN([PKG_PROG_PKG_CONFIG], 47AC_DEFUN([PKG_PROG_PKG_CONFIG],
49[m4_pattern_forbid([^_?PKG_[A-Z_]+$]) 48[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
50m4_pattern_allow([^PKG_CONFIG(_PATH)?$]) 49m4_pattern_allow([^PKG_CONFIG(_PATH)?$])
51AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) 50AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl
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
55if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then 51if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
56 AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) 52 AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
57fi 53fi
@@ -64,6 +60,7 @@ if test -n "$PKG_CONFIG"; then
64 AC_MSG_RESULT([no]) 60 AC_MSG_RESULT([no])
65 PKG_CONFIG="" 61 PKG_CONFIG=""
66 fi 62 fi
63
67fi[]dnl 64fi[]dnl
68])# PKG_PROG_PKG_CONFIG 65])# PKG_PROG_PKG_CONFIG
69 66
@@ -72,31 +69,34 @@ fi[]dnl
72# Check to see whether a particular set of modules exists. Similar 69# Check to see whether a particular set of modules exists. Similar
73# to PKG_CHECK_MODULES(), but does not set variables or print errors. 70# to PKG_CHECK_MODULES(), but does not set variables or print errors.
74# 71#
75# Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) 72#
76# only at the first occurence in configure.ac, so if the first place 73# Similar to PKG_CHECK_MODULES, make sure that the first instance of
77# it's called might be skipped (such as if it is within an "if", you 74# this or PKG_CHECK_MODULES is called, or make sure to call
78# have to call PKG_CHECK_EXISTS manually 75# PKG_CHECK_EXISTS manually
79# -------------------------------------------------------------- 76# --------------------------------------------------------------
80AC_DEFUN([PKG_CHECK_EXISTS], 77AC_DEFUN([PKG_CHECK_EXISTS],
81[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl 78[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
82if test -n "$PKG_CONFIG" && \ 79if test -n "$PKG_CONFIG" && \
83 AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then 80 AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
84 m4_default([$2], [:]) 81 m4_ifval([$2], [$2], [:])
85m4_ifvaln([$3], [else 82m4_ifvaln([$3], [else
86 $3])dnl 83 $3])dnl
87fi]) 84fi])
88 85
86
89# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) 87# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
90# --------------------------------------------- 88# ---------------------------------------------
91m4_define([_PKG_CONFIG], 89m4_define([_PKG_CONFIG],
92[if test -n "$$1"; then 90[if test -n "$PKG_CONFIG"; then
93 pkg_cv_[]$1="$$1" 91 if test -n "$$1"; then
94 elif test -n "$PKG_CONFIG"; then 92 pkg_cv_[]$1="$$1"
95 PKG_CHECK_EXISTS([$3], 93 else
96 [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`], 94 PKG_CHECK_EXISTS([$3],
97 [pkg_failed=yes]) 95 [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`],
98 else 96 [pkg_failed=yes])
99 pkg_failed=untried 97 fi
98else
99 pkg_failed=untried
100fi[]dnl 100fi[]dnl
101])# _PKG_CONFIG 101])# _PKG_CONFIG
102 102
@@ -138,17 +138,16 @@ 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])
142 _PKG_SHORT_ERRORS_SUPPORTED 141 _PKG_SHORT_ERRORS_SUPPORTED
143 if test $_pkg_short_errors_supported = yes; then 142 if test $_pkg_short_errors_supported = yes; then
144 $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1` 143 $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$2"`
145 else 144 else
146 $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1` 145 $1[]_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"`
147 fi 146 fi
148 # Put the nasty error message in config.log where it belongs 147 # Put the nasty error message in config.log where it belongs
149 echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD 148 echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
150 149
151 m4_default([$4], [AC_MSG_ERROR( 150 ifelse([$4], , [AC_MSG_ERROR(dnl
152[Package requirements ($2) were not met: 151[Package requirements ($2) were not met:
153 152
154$$1_PKG_ERRORS 153$$1_PKG_ERRORS
@@ -156,24 +155,25 @@ $$1_PKG_ERRORS
156Consider adjusting the PKG_CONFIG_PATH environment variable if you 155Consider adjusting the PKG_CONFIG_PATH environment variable if you
157installed software in a non-standard prefix. 156installed software in a non-standard prefix.
158 157
159_PKG_TEXT])[]dnl 158_PKG_TEXT
160 ]) 159])],
160 [AC_MSG_RESULT([no])
161 $4])
161elif test $pkg_failed = untried; then 162elif test $pkg_failed = untried; then
162 AC_MSG_RESULT([no]) 163 ifelse([$4], , [AC_MSG_FAILURE(dnl
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/>.])[]dnl 170To get pkg-config, see <http://pkg-config.freedesktop.org/>.])],
171 ]) 171 [$4])
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 $3 176 ifelse([$3], , :, [$3])
177fi[]dnl 177fi[]dnl
178])# PKG_CHECK_MODULES 178])# PKG_CHECK_MODULES
179 179
diff --git a/libraries/embryo/configure b/libraries/embryo/configure
index 466326f..88e889b 100755
--- a/libraries/embryo/configure
+++ b/libraries/embryo/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.67 for embryo 1.1.0. 3# Generated by GNU Autoconf 2.65 for embryo 1.1.99.67344.
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, 2010 Free Software 9# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
10# Foundation, Inc. 10# 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 STATUS ERROR [LINENO LOG_FD] 362# as_fn_error 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=$1; test $as_status -eq 0 && as_status=1 369 as_status=$?; test $as_status -eq 0 && as_status=1
370 if test "$4"; then 370 if test "$3"; then
371 as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 371 as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
372 $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 372 $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
373 fi 373 fi
374 $as_echo "$as_me: error: $2" >&2 374 $as_echo "$as_me: error: $1" >&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, old GNU/Linux) returns a bogus exit status, 685# hostname on some systems (SVR3.2, 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='embryo' 702PACKAGE_NAME='embryo'
703PACKAGE_TARNAME='embryo' 703PACKAGE_TARNAME='embryo'
704PACKAGE_VERSION='1.1.0' 704PACKAGE_VERSION='1.1.99.67344'
705PACKAGE_STRING='embryo 1.1.0' 705PACKAGE_STRING='embryo 1.1.99.67344'
706PACKAGE_BUGREPORT='enlightenment-devel@lists.sourceforge.net' 706PACKAGE_BUGREPORT='enlightenment-devel@lists.sourceforge.net'
707PACKAGE_URL='' 707PACKAGE_URL=''
708 708
@@ -760,8 +760,6 @@ EFL_EMBRYO_BUILD
760EVIL_LIBS 760EVIL_LIBS
761EVIL_CFLAGS 761EVIL_CFLAGS
762pkgconfig_requires_private 762pkgconfig_requires_private
763PKG_CONFIG_LIBDIR
764PKG_CONFIG_PATH
765PKG_CONFIG 763PKG_CONFIG
766EFL_BUILD_DOC_FALSE 764EFL_BUILD_DOC_FALSE
767EFL_BUILD_DOC_TRUE 765EFL_BUILD_DOC_TRUE
@@ -907,8 +905,6 @@ LIBS
907CPPFLAGS 905CPPFLAGS
908CPP 906CPP
909PKG_CONFIG 907PKG_CONFIG
910PKG_CONFIG_PATH
911PKG_CONFIG_LIBDIR
912EVIL_CFLAGS 908EVIL_CFLAGS
913EVIL_LIBS 909EVIL_LIBS
914EINA_CFLAGS 910EINA_CFLAGS
@@ -975,9 +971,8 @@ do
975 fi 971 fi
976 972
977 case $ac_option in 973 case $ac_option in
978 *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; 974 *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
979 *=) ac_optarg= ;; 975 *) ac_optarg=yes ;;
980 *) ac_optarg=yes ;;
981 esac 976 esac
982 977
983 # Accept the important Cygnus configure options, so we can diagnose typos. 978 # Accept the important Cygnus configure options, so we can diagnose typos.
@@ -1022,7 +1017,7 @@ do
1022 ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` 1017 ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
1023 # Reject names that are not valid shell variable names. 1018 # Reject names that are not valid shell variable names.
1024 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && 1019 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
1025 as_fn_error $? "invalid feature name: $ac_useropt" 1020 as_fn_error "invalid feature name: $ac_useropt"
1026 ac_useropt_orig=$ac_useropt 1021 ac_useropt_orig=$ac_useropt
1027 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` 1022 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
1028 case $ac_user_opts in 1023 case $ac_user_opts in
@@ -1048,7 +1043,7 @@ do
1048 ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` 1043 ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
1049 # Reject names that are not valid shell variable names. 1044 # Reject names that are not valid shell variable names.
1050 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && 1045 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
1051 as_fn_error $? "invalid feature name: $ac_useropt" 1046 as_fn_error "invalid feature name: $ac_useropt"
1052 ac_useropt_orig=$ac_useropt 1047 ac_useropt_orig=$ac_useropt
1053 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` 1048 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
1054 case $ac_user_opts in 1049 case $ac_user_opts in
@@ -1252,7 +1247,7 @@ do
1252 ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` 1247 ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
1253 # Reject names that are not valid shell variable names. 1248 # Reject names that are not valid shell variable names.
1254 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && 1249 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
1255 as_fn_error $? "invalid package name: $ac_useropt" 1250 as_fn_error "invalid package name: $ac_useropt"
1256 ac_useropt_orig=$ac_useropt 1251 ac_useropt_orig=$ac_useropt
1257 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` 1252 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
1258 case $ac_user_opts in 1253 case $ac_user_opts in
@@ -1268,7 +1263,7 @@ do
1268 ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` 1263 ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
1269 # Reject names that are not valid shell variable names. 1264 # Reject names that are not valid shell variable names.
1270 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && 1265 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
1271 as_fn_error $? "invalid package name: $ac_useropt" 1266 as_fn_error "invalid package name: $ac_useropt"
1272 ac_useropt_orig=$ac_useropt 1267 ac_useropt_orig=$ac_useropt
1273 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` 1268 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
1274 case $ac_user_opts in 1269 case $ac_user_opts in
@@ -1298,8 +1293,8 @@ do
1298 | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) 1293 | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
1299 x_libraries=$ac_optarg ;; 1294 x_libraries=$ac_optarg ;;
1300 1295
1301 -*) as_fn_error $? "unrecognized option: \`$ac_option' 1296 -*) as_fn_error "unrecognized option: \`$ac_option'
1302Try \`$0 --help' for more information" 1297Try \`$0 --help' for more information."
1303 ;; 1298 ;;
1304 1299
1305 *=*) 1300 *=*)
@@ -1307,7 +1302,7 @@ Try \`$0 --help' for more information"
1307 # Reject names that are not valid shell variable names. 1302 # Reject names that are not valid shell variable names.
1308 case $ac_envvar in #( 1303 case $ac_envvar in #(
1309 '' | [0-9]* | *[!_$as_cr_alnum]* ) 1304 '' | [0-9]* | *[!_$as_cr_alnum]* )
1310 as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; 1305 as_fn_error "invalid variable name: \`$ac_envvar'" ;;
1311 esac 1306 esac
1312 eval $ac_envvar=\$ac_optarg 1307 eval $ac_envvar=\$ac_optarg
1313 export $ac_envvar ;; 1308 export $ac_envvar ;;
@@ -1325,13 +1320,13 @@ done
1325 1320
1326if test -n "$ac_prev"; then 1321if test -n "$ac_prev"; then
1327 ac_option=--`echo $ac_prev | sed 's/_/-/g'` 1322 ac_option=--`echo $ac_prev | sed 's/_/-/g'`
1328 as_fn_error $? "missing argument to $ac_option" 1323 as_fn_error "missing argument to $ac_option"
1329fi 1324fi
1330 1325
1331if test -n "$ac_unrecognized_opts"; then 1326if test -n "$ac_unrecognized_opts"; then
1332 case $enable_option_checking in 1327 case $enable_option_checking in
1333 no) ;; 1328 no) ;;
1334 fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; 1329 fatal) as_fn_error "unrecognized options: $ac_unrecognized_opts" ;;
1335 *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; 1330 *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
1336 esac 1331 esac
1337fi 1332fi
@@ -1354,7 +1349,7 @@ do
1354 [\\/$]* | ?:[\\/]* ) continue;; 1349 [\\/$]* | ?:[\\/]* ) continue;;
1355 NONE | '' ) case $ac_var in *prefix ) continue;; esac;; 1350 NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
1356 esac 1351 esac
1357 as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" 1352 as_fn_error "expected an absolute directory name for --$ac_var: $ac_val"
1358done 1353done
1359 1354
1360# There might be people who depend on the old broken behavior: `$host' 1355# There might be people who depend on the old broken behavior: `$host'
@@ -1368,8 +1363,8 @@ target=$target_alias
1368if test "x$host_alias" != x; then 1363if test "x$host_alias" != x; then
1369 if test "x$build_alias" = x; then 1364 if test "x$build_alias" = x; then
1370 cross_compiling=maybe 1365 cross_compiling=maybe
1371 $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host. 1366 $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
1372 If a cross compiler is detected then cross compile mode will be used" >&2 1367 If a cross compiler is detected then cross compile mode will be used." >&2
1373 elif test "x$build_alias" != "x$host_alias"; then 1368 elif test "x$build_alias" != "x$host_alias"; then
1374 cross_compiling=yes 1369 cross_compiling=yes
1375 fi 1370 fi
@@ -1384,9 +1379,9 @@ test "$silent" = yes && exec 6>/dev/null
1384ac_pwd=`pwd` && test -n "$ac_pwd" && 1379ac_pwd=`pwd` && test -n "$ac_pwd" &&
1385ac_ls_di=`ls -di .` && 1380ac_ls_di=`ls -di .` &&
1386ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || 1381ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
1387 as_fn_error $? "working directory cannot be determined" 1382 as_fn_error "working directory cannot be determined"
1388test "X$ac_ls_di" = "X$ac_pwd_ls_di" || 1383test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
1389 as_fn_error $? "pwd does not report name of working directory" 1384 as_fn_error "pwd does not report name of working directory"
1390 1385
1391 1386
1392# Find the source files, if location was not specified. 1387# Find the source files, if location was not specified.
@@ -1425,11 +1420,11 @@ else
1425fi 1420fi
1426if test ! -r "$srcdir/$ac_unique_file"; then 1421if test ! -r "$srcdir/$ac_unique_file"; then
1427 test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." 1422 test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
1428 as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" 1423 as_fn_error "cannot find sources ($ac_unique_file) in $srcdir"
1429fi 1424fi
1430ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" 1425ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
1431ac_abs_confdir=`( 1426ac_abs_confdir=`(
1432 cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" 1427 cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error "$ac_msg"
1433 pwd)` 1428 pwd)`
1434# When building in place, set srcdir=. 1429# When building in place, set srcdir=.
1435if test "$ac_abs_confdir" = "$ac_pwd"; then 1430if test "$ac_abs_confdir" = "$ac_pwd"; then
@@ -1455,7 +1450,7 @@ if test "$ac_init_help" = "long"; then
1455 # Omit some internal or obsolete options to make the list less imposing. 1450 # Omit some internal or obsolete options to make the list less imposing.
1456 # This message is too long to be a string in the A/UX 3.1 sh. 1451 # This message is too long to be a string in the A/UX 3.1 sh.
1457 cat <<_ACEOF 1452 cat <<_ACEOF
1458\`configure' configures embryo 1.1.0 to adapt to many kinds of systems. 1453\`configure' configures embryo 1.1.99.67344 to adapt to many kinds of systems.
1459 1454
1460Usage: $0 [OPTION]... [VAR=VALUE]... 1455Usage: $0 [OPTION]... [VAR=VALUE]...
1461 1456
@@ -1469,7 +1464,7 @@ Configuration:
1469 --help=short display options specific to this package 1464 --help=short display options specific to this package
1470 --help=recursive display the short help of all the included packages 1465 --help=recursive display the short help of all the included packages
1471 -V, --version display version information and exit 1466 -V, --version display version information and exit
1472 -q, --quiet, --silent do not print \`checking ...' messages 1467 -q, --quiet, --silent do not print \`checking...' messages
1473 --cache-file=FILE cache test results in FILE [disabled] 1468 --cache-file=FILE cache test results in FILE [disabled]
1474 -C, --config-cache alias for \`--cache-file=config.cache' 1469 -C, --config-cache alias for \`--cache-file=config.cache'
1475 -n, --no-create do not create output files 1470 -n, --no-create do not create output files
@@ -1525,7 +1520,7 @@ fi
1525 1520
1526if test -n "$ac_init_help"; then 1521if test -n "$ac_init_help"; then
1527 case $ac_init_help in 1522 case $ac_init_help in
1528 short | recursive ) echo "Configuration of embryo 1.1.0:";; 1523 short | recursive ) echo "Configuration of embryo 1.1.99.67344:";;
1529 esac 1524 esac
1530 cat <<\_ACEOF 1525 cat <<\_ACEOF
1531 1526
@@ -1563,10 +1558,6 @@ Some influential environment variables:
1563 you have headers in a nonstandard directory <include dir> 1558 you have headers in a nonstandard directory <include dir>
1564 CPP C preprocessor 1559 CPP C preprocessor
1565 PKG_CONFIG path to pkg-config utility 1560 PKG_CONFIG path to pkg-config utility
1566 PKG_CONFIG_PATH
1567 directories to add to pkg-config's search path
1568 PKG_CONFIG_LIBDIR
1569 path overriding pkg-config's built-in search path
1570 EVIL_CFLAGS C compiler flags for EVIL, overriding pkg-config 1561 EVIL_CFLAGS C compiler flags for EVIL, overriding pkg-config
1571 EVIL_LIBS linker flags for EVIL, overriding pkg-config 1562 EVIL_LIBS linker flags for EVIL, overriding pkg-config
1572 EINA_CFLAGS C compiler flags for EINA, overriding pkg-config 1563 EINA_CFLAGS C compiler flags for EINA, overriding pkg-config
@@ -1638,10 +1629,10 @@ fi
1638test -n "$ac_init_help" && exit $ac_status 1629test -n "$ac_init_help" && exit $ac_status
1639if $ac_init_version; then 1630if $ac_init_version; then
1640 cat <<\_ACEOF 1631 cat <<\_ACEOF
1641embryo configure 1.1.0 1632embryo configure 1.1.99.67344
1642generated by GNU Autoconf 2.67 1633generated by GNU Autoconf 2.65
1643 1634
1644Copyright (C) 2010 Free Software Foundation, Inc. 1635Copyright (C) 2009 Free Software Foundation, Inc.
1645This configure script is free software; the Free Software Foundation 1636This configure script is free software; the Free Software Foundation
1646gives unlimited permission to copy, distribute and modify it. 1637gives unlimited permission to copy, distribute and modify it.
1647_ACEOF 1638_ACEOF
@@ -1745,7 +1736,7 @@ ac_fn_c_check_header_compile ()
1745 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 1736 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
1746 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 1737 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
1747$as_echo_n "checking for $2... " >&6; } 1738$as_echo_n "checking for $2... " >&6; }
1748if eval "test \"\${$3+set}\"" = set; then : 1739if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
1749 $as_echo_n "(cached) " >&6 1740 $as_echo_n "(cached) " >&6
1750else 1741else
1751 cat confdefs.h - <<_ACEOF >conftest.$ac_ext 1742 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -1788,7 +1779,7 @@ $as_echo "$ac_try_echo"; } >&5
1788 mv -f conftest.er1 conftest.err 1779 mv -f conftest.er1 conftest.err
1789 fi 1780 fi
1790 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 1781 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
1791 test $ac_status = 0; } > conftest.i && { 1782 test $ac_status = 0; } >/dev/null && {
1792 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || 1783 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
1793 test ! -s conftest.err 1784 test ! -s conftest.err
1794 }; then : 1785 }; then :
@@ -1854,7 +1845,7 @@ ac_fn_c_check_func ()
1854 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 1845 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
1855 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 1846 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
1856$as_echo_n "checking for $2... " >&6; } 1847$as_echo_n "checking for $2... " >&6; }
1857if eval "test \"\${$3+set}\"" = set; then : 1848if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
1858 $as_echo_n "(cached) " >&6 1849 $as_echo_n "(cached) " >&6
1859else 1850else
1860 cat confdefs.h - <<_ACEOF >conftest.$ac_ext 1851 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -1921,10 +1912,10 @@ $as_echo "$ac_res" >&6; }
1921ac_fn_c_check_header_mongrel () 1912ac_fn_c_check_header_mongrel ()
1922{ 1913{
1923 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 1914 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
1924 if eval "test \"\${$3+set}\"" = set; then : 1915 if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
1925 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 1916 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
1926$as_echo_n "checking for $2... " >&6; } 1917$as_echo_n "checking for $2... " >&6; }
1927if eval "test \"\${$3+set}\"" = set; then : 1918if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
1928 $as_echo_n "(cached) " >&6 1919 $as_echo_n "(cached) " >&6
1929fi 1920fi
1930eval ac_res=\$$3 1921eval ac_res=\$$3
@@ -1960,7 +1951,7 @@ if ac_fn_c_try_cpp "$LINENO"; then :
1960else 1951else
1961 ac_header_preproc=no 1952 ac_header_preproc=no
1962fi 1953fi
1963rm -f conftest.err conftest.i conftest.$ac_ext 1954rm -f conftest.err conftest.$ac_ext
1964{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 1955{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
1965$as_echo "$ac_header_preproc" >&6; } 1956$as_echo "$ac_header_preproc" >&6; }
1966 1957
@@ -1983,15 +1974,17 @@ $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
1983$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} 1974$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;}
1984 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 1975 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
1985$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} 1976$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
1986( $as_echo "## -------------------------------------------------------- ## 1977( cat <<\_ASBOX
1978## -------------------------------------------------------- ##
1987## Report this to enlightenment-devel@lists.sourceforge.net ## 1979## Report this to enlightenment-devel@lists.sourceforge.net ##
1988## -------------------------------------------------------- ##" 1980## -------------------------------------------------------- ##
1981_ASBOX
1989 ) | sed "s/^/$as_me: WARNING: /" >&2 1982 ) | sed "s/^/$as_me: WARNING: /" >&2
1990 ;; 1983 ;;
1991esac 1984esac
1992 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 1985 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
1993$as_echo_n "checking for $2... " >&6; } 1986$as_echo_n "checking for $2... " >&6; }
1994if eval "test \"\${$3+set}\"" = set; then : 1987if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
1995 $as_echo_n "(cached) " >&6 1988 $as_echo_n "(cached) " >&6
1996else 1989else
1997 eval "$3=\$ac_header_compiler" 1990 eval "$3=\$ac_header_compiler"
@@ -2007,8 +2000,8 @@ cat >config.log <<_ACEOF
2007This file contains any messages produced by compilers while 2000This file contains any messages produced by compilers while
2008running configure, to aid debugging if configure makes a mistake. 2001running configure, to aid debugging if configure makes a mistake.
2009 2002
2010It was created by embryo $as_me 1.1.0, which was 2003It was created by embryo $as_me 1.1.99.67344, which was
2011generated by GNU Autoconf 2.67. Invocation command line was 2004generated by GNU Autoconf 2.65. Invocation command line was
2012 2005
2013 $ $0 $@ 2006 $ $0 $@
2014 2007
@@ -2118,9 +2111,11 @@ trap 'exit_status=$?
2118 { 2111 {
2119 echo 2112 echo
2120 2113
2121 $as_echo "## ---------------- ## 2114 cat <<\_ASBOX
2115## ---------------- ##
2122## Cache variables. ## 2116## Cache variables. ##
2123## ---------------- ##" 2117## ---------------- ##
2118_ASBOX
2124 echo 2119 echo
2125 # The following way of writing the cache mishandles newlines in values, 2120 # The following way of writing the cache mishandles newlines in values,
2126( 2121(
@@ -2154,9 +2149,11 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
2154) 2149)
2155 echo 2150 echo
2156 2151
2157 $as_echo "## ----------------- ## 2152 cat <<\_ASBOX
2153## ----------------- ##
2158## Output variables. ## 2154## Output variables. ##
2159## ----------------- ##" 2155## ----------------- ##
2156_ASBOX
2160 echo 2157 echo
2161 for ac_var in $ac_subst_vars 2158 for ac_var in $ac_subst_vars
2162 do 2159 do
@@ -2169,9 +2166,11 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
2169 echo 2166 echo
2170 2167
2171 if test -n "$ac_subst_files"; then 2168 if test -n "$ac_subst_files"; then
2172 $as_echo "## ------------------- ## 2169 cat <<\_ASBOX
2170## ------------------- ##
2173## File substitutions. ## 2171## File substitutions. ##
2174## ------------------- ##" 2172## ------------------- ##
2173_ASBOX
2175 echo 2174 echo
2176 for ac_var in $ac_subst_files 2175 for ac_var in $ac_subst_files
2177 do 2176 do
@@ -2185,9 +2184,11 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
2185 fi 2184 fi
2186 2185
2187 if test -s confdefs.h; then 2186 if test -s confdefs.h; then
2188 $as_echo "## ----------- ## 2187 cat <<\_ASBOX
2188## ----------- ##
2189## confdefs.h. ## 2189## confdefs.h. ##
2190## ----------- ##" 2190## ----------- ##
2191_ASBOX
2191 echo 2192 echo
2192 cat confdefs.h 2193 cat confdefs.h
2193 echo 2194 echo
@@ -2242,12 +2243,7 @@ _ACEOF
2242ac_site_file1=NONE 2243ac_site_file1=NONE
2243ac_site_file2=NONE 2244ac_site_file2=NONE
2244if test -n "$CONFIG_SITE"; then 2245if test -n "$CONFIG_SITE"; then
2245 # We do not want a PATH search for config.site. 2246 ac_site_file1=$CONFIG_SITE
2246 case $CONFIG_SITE in #((
2247 -*) ac_site_file1=./$CONFIG_SITE;;
2248 */*) ac_site_file1=$CONFIG_SITE;;
2249 *) ac_site_file1=./$CONFIG_SITE;;
2250 esac
2251elif test "x$prefix" != xNONE; then 2247elif test "x$prefix" != xNONE; then
2252 ac_site_file1=$prefix/share/config.site 2248 ac_site_file1=$prefix/share/config.site
2253 ac_site_file2=$prefix/etc/config.site 2249 ac_site_file2=$prefix/etc/config.site
@@ -2262,11 +2258,7 @@ do
2262 { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 2258 { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
2263$as_echo "$as_me: loading site script $ac_site_file" >&6;} 2259$as_echo "$as_me: loading site script $ac_site_file" >&6;}
2264 sed 's/^/| /' "$ac_site_file" >&5 2260 sed 's/^/| /' "$ac_site_file" >&5
2265 . "$ac_site_file" \ 2261 . "$ac_site_file"
2266 || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
2267$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
2268as_fn_error $? "failed to load site script $ac_site_file
2269See \`config.log' for more details" "$LINENO" 5 ; }
2270 fi 2262 fi
2271done 2263done
2272 2264
@@ -2342,7 +2334,7 @@ if $ac_cache_corrupted; then
2342$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 2334$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
2343 { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 2335 { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
2344$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} 2336$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
2345 as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 2337 as_fn_error "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
2346fi 2338fi
2347## -------------------- ## 2339## -------------------- ##
2348## Main body of script. ## 2340## Main body of script. ##
@@ -2368,22 +2360,16 @@ am__api_version='1.11'
2368 2360
2369ac_aux_dir= 2361ac_aux_dir=
2370for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do 2362for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
2371 if test -f "$ac_dir/install-sh"; then 2363 for ac_t in install-sh install.sh shtool; do
2372 ac_aux_dir=$ac_dir 2364 if test -f "$ac_dir/$ac_t"; then
2373 ac_install_sh="$ac_aux_dir/install-sh -c" 2365 ac_aux_dir=$ac_dir
2374 break 2366 ac_install_sh="$ac_aux_dir/$ac_t -c"
2375 elif test -f "$ac_dir/install.sh"; then 2367 break 2
2376 ac_aux_dir=$ac_dir 2368 fi
2377 ac_install_sh="$ac_aux_dir/install.sh -c" 2369 done
2378 break
2379 elif test -f "$ac_dir/shtool"; then
2380 ac_aux_dir=$ac_dir
2381 ac_install_sh="$ac_aux_dir/shtool install -c"
2382 break
2383 fi
2384done 2370done
2385if test -z "$ac_aux_dir"; then 2371if test -z "$ac_aux_dir"; then
2386 as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 2372 as_fn_error "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
2387fi 2373fi
2388 2374
2389# These three variables are undocumented and unsupported, 2375# These three variables are undocumented and unsupported,
@@ -2499,11 +2485,11 @@ am_lf='
2499' 2485'
2500case `pwd` in 2486case `pwd` in
2501 *[\\\"\#\$\&\'\`$am_lf]*) 2487 *[\\\"\#\$\&\'\`$am_lf]*)
2502 as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5 ;; 2488 as_fn_error "unsafe absolute working directory name" "$LINENO" 5;;
2503esac 2489esac
2504case $srcdir in 2490case $srcdir in
2505 *[\\\"\#\$\&\'\`$am_lf\ \ ]*) 2491 *[\\\"\#\$\&\'\`$am_lf\ \ ]*)
2506 as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5 ;; 2492 as_fn_error "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;;
2507esac 2493esac
2508 2494
2509# Do `set' in a subshell so we don't clobber the current shell's 2495# Do `set' in a subshell so we don't clobber the current shell's
@@ -2525,7 +2511,7 @@ if (
2525 # if, for instance, CONFIG_SHELL is bash and it inherits a 2511 # if, for instance, CONFIG_SHELL is bash and it inherits a
2526 # broken ls alias from the environment. This has actually 2512 # broken ls alias from the environment. This has actually
2527 # happened. Such a system could not be considered "sane". 2513 # happened. Such a system could not be considered "sane".
2528 as_fn_error $? "ls -t appears to fail. Make sure there is not a broken 2514 as_fn_error "ls -t appears to fail. Make sure there is not a broken
2529alias in your environment" "$LINENO" 5 2515alias in your environment" "$LINENO" 5
2530 fi 2516 fi
2531 2517
@@ -2535,7 +2521,7 @@ then
2535 # Ok. 2521 # Ok.
2536 : 2522 :
2537else 2523else
2538 as_fn_error $? "newly created file is older than distributed files! 2524 as_fn_error "newly created file is older than distributed files!
2539Check your system clock" "$LINENO" 5 2525Check your system clock" "$LINENO" 5
2540fi 2526fi
2541{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 2527{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
@@ -2773,7 +2759,7 @@ done
2773$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } 2759$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
2774set x ${MAKE-make} 2760set x ${MAKE-make}
2775ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` 2761ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
2776if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\"" = set; then : 2762if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then :
2777 $as_echo_n "(cached) " >&6 2763 $as_echo_n "(cached) " >&6
2778else 2764else
2779 cat >conftest.make <<\_ACEOF 2765 cat >conftest.make <<\_ACEOF
@@ -2781,7 +2767,7 @@ SHELL = /bin/sh
2781all: 2767all:
2782 @echo '@@@%%%=$(MAKE)=@@@%%%' 2768 @echo '@@@%%%=$(MAKE)=@@@%%%'
2783_ACEOF 2769_ACEOF
2784# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. 2770# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
2785case `${MAKE-make} -f conftest.make 2>/dev/null` in 2771case `${MAKE-make} -f conftest.make 2>/dev/null` in
2786 *@@@%%%=?*=@@@%%%*) 2772 *@@@%%%=?*=@@@%%%*)
2787 eval ac_cv_prog_make_${ac_make}_set=yes;; 2773 eval ac_cv_prog_make_${ac_make}_set=yes;;
@@ -2815,7 +2801,7 @@ if test "`cd $srcdir && pwd`" != "`pwd`"; then
2815 am__isrc=' -I$(srcdir)' 2801 am__isrc=' -I$(srcdir)'
2816 # test to see if srcdir already configured 2802 # test to see if srcdir already configured
2817 if test -f $srcdir/config.status; then 2803 if test -f $srcdir/config.status; then
2818 as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 2804 as_fn_error "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
2819 fi 2805 fi
2820fi 2806fi
2821 2807
@@ -2831,7 +2817,7 @@ fi
2831 2817
2832# Define the identity of the package. 2818# Define the identity of the package.
2833 PACKAGE='embryo' 2819 PACKAGE='embryo'
2834 VERSION='1.1.0' 2820 VERSION='1.1.99.67344'
2835 2821
2836 2822
2837cat >>confdefs.h <<_ACEOF 2823cat >>confdefs.h <<_ACEOF
@@ -2886,7 +2872,7 @@ AM_BACKSLASH='\'
2886 2872
2887# Make sure we can run config.sub. 2873# Make sure we can run config.sub.
2888$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || 2874$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
2889 as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 2875 as_fn_error "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
2890 2876
2891{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 2877{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
2892$as_echo_n "checking build system type... " >&6; } 2878$as_echo_n "checking build system type... " >&6; }
@@ -2897,16 +2883,16 @@ else
2897test "x$ac_build_alias" = x && 2883test "x$ac_build_alias" = x &&
2898 ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` 2884 ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
2899test "x$ac_build_alias" = x && 2885test "x$ac_build_alias" = x &&
2900 as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 2886 as_fn_error "cannot guess build type; you must specify one" "$LINENO" 5
2901ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || 2887ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
2902 as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 2888 as_fn_error "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
2903 2889
2904fi 2890fi
2905{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 2891{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
2906$as_echo "$ac_cv_build" >&6; } 2892$as_echo "$ac_cv_build" >&6; }
2907case $ac_cv_build in 2893case $ac_cv_build in
2908*-*-*) ;; 2894*-*-*) ;;
2909*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5 ;; 2895*) as_fn_error "invalid value of canonical build" "$LINENO" 5;;
2910esac 2896esac
2911build=$ac_cv_build 2897build=$ac_cv_build
2912ac_save_IFS=$IFS; IFS='-' 2898ac_save_IFS=$IFS; IFS='-'
@@ -2931,7 +2917,7 @@ else
2931 ac_cv_host=$ac_cv_build 2917 ac_cv_host=$ac_cv_build
2932else 2918else
2933 ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || 2919 ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
2934 as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 2920 as_fn_error "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
2935fi 2921fi
2936 2922
2937fi 2923fi
@@ -2939,7 +2925,7 @@ fi
2939$as_echo "$ac_cv_host" >&6; } 2925$as_echo "$ac_cv_host" >&6; }
2940case $ac_cv_host in 2926case $ac_cv_host in
2941*-*-*) ;; 2927*-*-*) ;;
2942*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5 ;; 2928*) as_fn_error "invalid value of canonical host" "$LINENO" 5;;
2943esac 2929esac
2944host=$ac_cv_host 2930host=$ac_cv_host
2945ac_save_IFS=$IFS; IFS='-' 2931ac_save_IFS=$IFS; IFS='-'
@@ -3645,8 +3631,8 @@ fi
3645 3631
3646test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 3632test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
3647$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 3633$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
3648as_fn_error $? "no acceptable C compiler found in \$PATH 3634as_fn_error "no acceptable C compiler found in \$PATH
3649See \`config.log' for more details" "$LINENO" 5 ; } 3635See \`config.log' for more details." "$LINENO" 5; }
3650 3636
3651# Provide some information about the compiler. 3637# Provide some information about the compiler.
3652$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 3638$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
@@ -3760,8 +3746,9 @@ sed 's/^/| /' conftest.$ac_ext >&5
3760 3746
3761{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 3747{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
3762$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 3748$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
3763as_fn_error 77 "C compiler cannot create executables 3749{ as_fn_set_status 77
3764See \`config.log' for more details" "$LINENO" 5 ; } 3750as_fn_error "C compiler cannot create executables
3751See \`config.log' for more details." "$LINENO" 5; }; }
3765else 3752else
3766 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 3753 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
3767$as_echo "yes" >&6; } 3754$as_echo "yes" >&6; }
@@ -3803,8 +3790,8 @@ done
3803else 3790else
3804 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 3791 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
3805$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 3792$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
3806as_fn_error $? "cannot compute suffix of executables: cannot compile and link 3793as_fn_error "cannot compute suffix of executables: cannot compile and link
3807See \`config.log' for more details" "$LINENO" 5 ; } 3794See \`config.log' for more details." "$LINENO" 5; }
3808fi 3795fi
3809rm -f conftest conftest$ac_cv_exeext 3796rm -f conftest conftest$ac_cv_exeext
3810{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 3797{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
@@ -3861,9 +3848,9 @@ $as_echo "$ac_try_echo"; } >&5
3861 else 3848 else
3862 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 3849 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
3863$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 3850$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
3864as_fn_error $? "cannot run C compiled programs. 3851as_fn_error "cannot run C compiled programs.
3865If you meant to cross compile, use \`--host'. 3852If you meant to cross compile, use \`--host'.
3866See \`config.log' for more details" "$LINENO" 5 ; } 3853See \`config.log' for more details." "$LINENO" 5; }
3867 fi 3854 fi
3868 fi 3855 fi
3869fi 3856fi
@@ -3914,8 +3901,8 @@ sed 's/^/| /' conftest.$ac_ext >&5
3914 3901
3915{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 3902{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
3916$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 3903$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
3917as_fn_error $? "cannot compute suffix of object files: cannot compile 3904as_fn_error "cannot compute suffix of object files: cannot compile
3918See \`config.log' for more details" "$LINENO" 5 ; } 3905See \`config.log' for more details." "$LINENO" 5; }
3919fi 3906fi
3920rm -f conftest.$ac_cv_objext conftest.$ac_ext 3907rm -f conftest.$ac_cv_objext conftest.$ac_ext
3921fi 3908fi
@@ -4319,7 +4306,7 @@ esac
4319 done 4306 done
4320IFS=$as_save_IFS 4307IFS=$as_save_IFS
4321 if test -z "$ac_cv_path_SED"; then 4308 if test -z "$ac_cv_path_SED"; then
4322 as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 4309 as_fn_error "no acceptable sed could be found in \$PATH" "$LINENO" 5
4323 fi 4310 fi
4324else 4311else
4325 ac_cv_path_SED=$SED 4312 ac_cv_path_SED=$SED
@@ -4395,7 +4382,7 @@ esac
4395 done 4382 done
4396IFS=$as_save_IFS 4383IFS=$as_save_IFS
4397 if test -z "$ac_cv_path_GREP"; then 4384 if test -z "$ac_cv_path_GREP"; then
4398 as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 4385 as_fn_error "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
4399 fi 4386 fi
4400else 4387else
4401 ac_cv_path_GREP=$GREP 4388 ac_cv_path_GREP=$GREP
@@ -4461,7 +4448,7 @@ esac
4461 done 4448 done
4462IFS=$as_save_IFS 4449IFS=$as_save_IFS
4463 if test -z "$ac_cv_path_EGREP"; then 4450 if test -z "$ac_cv_path_EGREP"; then
4464 as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 4451 as_fn_error "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
4465 fi 4452 fi
4466else 4453else
4467 ac_cv_path_EGREP=$EGREP 4454 ac_cv_path_EGREP=$EGREP
@@ -4528,7 +4515,7 @@ esac
4528 done 4515 done
4529IFS=$as_save_IFS 4516IFS=$as_save_IFS
4530 if test -z "$ac_cv_path_FGREP"; then 4517 if test -z "$ac_cv_path_FGREP"; then
4531 as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 4518 as_fn_error "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
4532 fi 4519 fi
4533else 4520else
4534 ac_cv_path_FGREP=$FGREP 4521 ac_cv_path_FGREP=$FGREP
@@ -4644,7 +4631,7 @@ else
4644 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 4631 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
4645$as_echo "no" >&6; } 4632$as_echo "no" >&6; }
4646fi 4633fi
4647test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 4634test -z "$LD" && as_fn_error "no acceptable ld found in \$PATH" "$LINENO" 5
4648{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 4635{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
4649$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } 4636$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
4650if test "${lt_cv_prog_gnu_ld+set}" = set; then : 4637if test "${lt_cv_prog_gnu_ld+set}" = set; then :
@@ -4846,13 +4833,13 @@ if test "${lt_cv_nm_interface+set}" = set; then :
4846else 4833else
4847 lt_cv_nm_interface="BSD nm" 4834 lt_cv_nm_interface="BSD nm"
4848 echo "int some_variable = 0;" > conftest.$ac_ext 4835 echo "int some_variable = 0;" > conftest.$ac_ext
4849 (eval echo "\"\$as_me:4849: $ac_compile\"" >&5) 4836 (eval echo "\"\$as_me:4836: $ac_compile\"" >&5)
4850 (eval "$ac_compile" 2>conftest.err) 4837 (eval "$ac_compile" 2>conftest.err)
4851 cat conftest.err >&5 4838 cat conftest.err >&5
4852 (eval echo "\"\$as_me:4852: $NM \\\"conftest.$ac_objext\\\"\"" >&5) 4839 (eval echo "\"\$as_me:4839: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
4853 (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) 4840 (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
4854 cat conftest.err >&5 4841 cat conftest.err >&5
4855 (eval echo "\"\$as_me:4855: output\"" >&5) 4842 (eval echo "\"\$as_me:4842: output\"" >&5)
4856 cat conftest.out >&5 4843 cat conftest.out >&5
4857 if $GREP 'External.*some_variable' conftest.out > /dev/null; then 4844 if $GREP 'External.*some_variable' conftest.out > /dev/null; then
4858 lt_cv_nm_interface="MS dumpbin" 4845 lt_cv_nm_interface="MS dumpbin"
@@ -6055,7 +6042,7 @@ ia64-*-hpux*)
6055 ;; 6042 ;;
6056*-*-irix6*) 6043*-*-irix6*)
6057 # Find out which ABI we are using. 6044 # Find out which ABI we are using.
6058 echo '#line 6058 "configure"' > conftest.$ac_ext 6045 echo '#line 6045 "configure"' > conftest.$ac_ext
6059 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 6046 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
6060 (eval $ac_compile) 2>&5 6047 (eval $ac_compile) 2>&5
6061 ac_status=$? 6048 ac_status=$?
@@ -6844,7 +6831,7 @@ else
6844 # Broken: fails on valid input. 6831 # Broken: fails on valid input.
6845continue 6832continue
6846fi 6833fi
6847rm -f conftest.err conftest.i conftest.$ac_ext 6834rm -f conftest.err conftest.$ac_ext
6848 6835
6849 # OK, works on sane cases. Now check whether nonexistent headers 6836 # OK, works on sane cases. Now check whether nonexistent headers
6850 # can be detected and how. 6837 # can be detected and how.
@@ -6860,11 +6847,11 @@ else
6860ac_preproc_ok=: 6847ac_preproc_ok=:
6861break 6848break
6862fi 6849fi
6863rm -f conftest.err conftest.i conftest.$ac_ext 6850rm -f conftest.err conftest.$ac_ext
6864 6851
6865done 6852done
6866# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. 6853# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
6867rm -f conftest.i conftest.err conftest.$ac_ext 6854rm -f conftest.err conftest.$ac_ext
6868if $ac_preproc_ok; then : 6855if $ac_preproc_ok; then :
6869 break 6856 break
6870fi 6857fi
@@ -6903,7 +6890,7 @@ else
6903 # Broken: fails on valid input. 6890 # Broken: fails on valid input.
6904continue 6891continue
6905fi 6892fi
6906rm -f conftest.err conftest.i conftest.$ac_ext 6893rm -f conftest.err conftest.$ac_ext
6907 6894
6908 # OK, works on sane cases. Now check whether nonexistent headers 6895 # OK, works on sane cases. Now check whether nonexistent headers
6909 # can be detected and how. 6896 # can be detected and how.
@@ -6919,18 +6906,18 @@ else
6919ac_preproc_ok=: 6906ac_preproc_ok=:
6920break 6907break
6921fi 6908fi
6922rm -f conftest.err conftest.i conftest.$ac_ext 6909rm -f conftest.err conftest.$ac_ext
6923 6910
6924done 6911done
6925# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. 6912# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
6926rm -f conftest.i conftest.err conftest.$ac_ext 6913rm -f conftest.err conftest.$ac_ext
6927if $ac_preproc_ok; then : 6914if $ac_preproc_ok; then :
6928 6915
6929else 6916else
6930 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 6917 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
6931$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 6918$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
6932as_fn_error $? "C preprocessor \"$CPP\" fails sanity check 6919as_fn_error "C preprocessor \"$CPP\" fails sanity check
6933See \`config.log' for more details" "$LINENO" 5 ; } 6920See \`config.log' for more details." "$LINENO" 5; }
6934fi 6921fi
6935 6922
6936ac_ext=c 6923ac_ext=c
@@ -7059,7 +7046,8 @@ do :
7059 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` 7046 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
7060ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default 7047ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
7061" 7048"
7062if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : 7049eval as_val=\$$as_ac_Header
7050 if test "x$as_val" = x""yes; then :
7063 cat >>confdefs.h <<_ACEOF 7051 cat >>confdefs.h <<_ACEOF
7064#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 7052#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
7065_ACEOF 7053_ACEOF
@@ -7582,11 +7570,11 @@ else
7582 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ 7570 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
7583 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ 7571 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
7584 -e 's:$: $lt_compiler_flag:'` 7572 -e 's:$: $lt_compiler_flag:'`
7585 (eval echo "\"\$as_me:7585: $lt_compile\"" >&5) 7573 (eval echo "\"\$as_me:7573: $lt_compile\"" >&5)
7586 (eval "$lt_compile" 2>conftest.err) 7574 (eval "$lt_compile" 2>conftest.err)
7587 ac_status=$? 7575 ac_status=$?
7588 cat conftest.err >&5 7576 cat conftest.err >&5
7589 echo "$as_me:7589: \$? = $ac_status" >&5 7577 echo "$as_me:7577: \$? = $ac_status" >&5
7590 if (exit $ac_status) && test -s "$ac_outfile"; then 7578 if (exit $ac_status) && test -s "$ac_outfile"; then
7591 # The compiler can only warn and ignore the option if not recognized 7579 # The compiler can only warn and ignore the option if not recognized
7592 # So say no if there are warnings other than the usual output. 7580 # So say no if there are warnings other than the usual output.
@@ -7921,11 +7909,11 @@ else
7921 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ 7909 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
7922 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ 7910 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
7923 -e 's:$: $lt_compiler_flag:'` 7911 -e 's:$: $lt_compiler_flag:'`
7924 (eval echo "\"\$as_me:7924: $lt_compile\"" >&5) 7912 (eval echo "\"\$as_me:7912: $lt_compile\"" >&5)
7925 (eval "$lt_compile" 2>conftest.err) 7913 (eval "$lt_compile" 2>conftest.err)
7926 ac_status=$? 7914 ac_status=$?
7927 cat conftest.err >&5 7915 cat conftest.err >&5
7928 echo "$as_me:7928: \$? = $ac_status" >&5 7916 echo "$as_me:7916: \$? = $ac_status" >&5
7929 if (exit $ac_status) && test -s "$ac_outfile"; then 7917 if (exit $ac_status) && test -s "$ac_outfile"; then
7930 # The compiler can only warn and ignore the option if not recognized 7918 # The compiler can only warn and ignore the option if not recognized
7931 # So say no if there are warnings other than the usual output. 7919 # So say no if there are warnings other than the usual output.
@@ -8026,11 +8014,11 @@ else
8026 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ 8014 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
8027 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ 8015 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
8028 -e 's:$: $lt_compiler_flag:'` 8016 -e 's:$: $lt_compiler_flag:'`
8029 (eval echo "\"\$as_me:8029: $lt_compile\"" >&5) 8017 (eval echo "\"\$as_me:8017: $lt_compile\"" >&5)
8030 (eval "$lt_compile" 2>out/conftest.err) 8018 (eval "$lt_compile" 2>out/conftest.err)
8031 ac_status=$? 8019 ac_status=$?
8032 cat out/conftest.err >&5 8020 cat out/conftest.err >&5
8033 echo "$as_me:8033: \$? = $ac_status" >&5 8021 echo "$as_me:8021: \$? = $ac_status" >&5
8034 if (exit $ac_status) && test -s out/conftest2.$ac_objext 8022 if (exit $ac_status) && test -s out/conftest2.$ac_objext
8035 then 8023 then
8036 # The compiler can only warn and ignore the option if not recognized 8024 # The compiler can only warn and ignore the option if not recognized
@@ -8081,11 +8069,11 @@ else
8081 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ 8069 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
8082 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ 8070 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
8083 -e 's:$: $lt_compiler_flag:'` 8071 -e 's:$: $lt_compiler_flag:'`
8084 (eval echo "\"\$as_me:8084: $lt_compile\"" >&5) 8072 (eval echo "\"\$as_me:8072: $lt_compile\"" >&5)
8085 (eval "$lt_compile" 2>out/conftest.err) 8073 (eval "$lt_compile" 2>out/conftest.err)
8086 ac_status=$? 8074 ac_status=$?
8087 cat out/conftest.err >&5 8075 cat out/conftest.err >&5
8088 echo "$as_me:8088: \$? = $ac_status" >&5 8076 echo "$as_me:8076: \$? = $ac_status" >&5
8089 if (exit $ac_status) && test -s out/conftest2.$ac_objext 8077 if (exit $ac_status) && test -s out/conftest2.$ac_objext
8090 then 8078 then
8091 # The compiler can only warn and ignore the option if not recognized 8079 # The compiler can only warn and ignore the option if not recognized
@@ -10465,7 +10453,7 @@ else
10465 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 10453 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
10466 lt_status=$lt_dlunknown 10454 lt_status=$lt_dlunknown
10467 cat > conftest.$ac_ext <<_LT_EOF 10455 cat > conftest.$ac_ext <<_LT_EOF
10468#line 10468 "configure" 10456#line 10456 "configure"
10469#include "confdefs.h" 10457#include "confdefs.h"
10470 10458
10471#if HAVE_DLFCN_H 10459#if HAVE_DLFCN_H
@@ -10561,7 +10549,7 @@ else
10561 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 10549 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
10562 lt_status=$lt_dlunknown 10550 lt_status=$lt_dlunknown
10563 cat > conftest.$ac_ext <<_LT_EOF 10551 cat > conftest.$ac_ext <<_LT_EOF
10564#line 10564 "configure" 10552#line 10552 "configure"
10565#include "confdefs.h" 10553#include "confdefs.h"
10566 10554
10567#if HAVE_DLFCN_H 10555#if HAVE_DLFCN_H
@@ -10805,15 +10793,15 @@ _ACEOF
10805 10793
10806 10794
10807cat >>confdefs.h <<_ACEOF 10795cat >>confdefs.h <<_ACEOF
10808#define VMIC 0 10796#define VMIC 99
10809_ACEOF 10797_ACEOF
10810 10798
10811 10799
10812cat >>confdefs.h <<_ACEOF 10800cat >>confdefs.h <<_ACEOF
10813#define VREV 0 10801#define VREV 67344
10814_ACEOF 10802_ACEOF
10815 10803
10816version_info="2:0:1" 10804version_info="2:99:1"
10817release_info="" 10805release_info=""
10818 10806
10819 10807
@@ -11179,8 +11167,8 @@ fi
11179 11167
11180test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 11168test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
11181$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 11169$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
11182as_fn_error $? "no acceptable C compiler found in \$PATH 11170as_fn_error "no acceptable C compiler found in \$PATH
11183See \`config.log' for more details" "$LINENO" 5 ; } 11171See \`config.log' for more details." "$LINENO" 5; }
11184 11172
11185# Provide some information about the compiler. 11173# Provide some information about the compiler.
11186$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 11174$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
@@ -11711,10 +11699,6 @@ fi
11711 11699
11712 11700
11713 11701
11714
11715
11716
11717
11718if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then 11702if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
11719 if test -n "$ac_tool_prefix"; then 11703 if test -n "$ac_tool_prefix"; then
11720 # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. 11704 # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
@@ -11827,6 +11811,7 @@ $as_echo "yes" >&6; }
11827$as_echo "no" >&6; } 11811$as_echo "no" >&6; }
11828 PKG_CONFIG="" 11812 PKG_CONFIG=""
11829 fi 11813 fi
11814
11830fi 11815fi
11831 11816
11832# Check whether pkg-config supports Requires.private 11817# Check whether pkg-config supports Requires.private
@@ -11850,10 +11835,11 @@ pkg_failed=no
11850{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EVIL" >&5 11835{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EVIL" >&5
11851$as_echo_n "checking for EVIL... " >&6; } 11836$as_echo_n "checking for EVIL... " >&6; }
11852 11837
11853if test -n "$EVIL_CFLAGS"; then 11838if test -n "$PKG_CONFIG"; then
11854 pkg_cv_EVIL_CFLAGS="$EVIL_CFLAGS" 11839 if test -n "$EVIL_CFLAGS"; then
11855 elif test -n "$PKG_CONFIG"; then 11840 pkg_cv_EVIL_CFLAGS="$EVIL_CFLAGS"
11856 if test -n "$PKG_CONFIG" && \ 11841 else
11842 if test -n "$PKG_CONFIG" && \
11857 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evil >= 1.0.0\""; } >&5 11843 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evil >= 1.0.0\""; } >&5
11858 ($PKG_CONFIG --exists --print-errors "evil >= 1.0.0") 2>&5 11844 ($PKG_CONFIG --exists --print-errors "evil >= 1.0.0") 2>&5
11859 ac_status=$? 11845 ac_status=$?
@@ -11863,13 +11849,15 @@ if test -n "$EVIL_CFLAGS"; then
11863else 11849else
11864 pkg_failed=yes 11850 pkg_failed=yes
11865fi 11851fi
11866 else 11852 fi
11867 pkg_failed=untried 11853else
11854 pkg_failed=untried
11868fi 11855fi
11869if test -n "$EVIL_LIBS"; then 11856if test -n "$PKG_CONFIG"; then
11870 pkg_cv_EVIL_LIBS="$EVIL_LIBS" 11857 if test -n "$EVIL_LIBS"; then
11871 elif test -n "$PKG_CONFIG"; then 11858 pkg_cv_EVIL_LIBS="$EVIL_LIBS"
11872 if test -n "$PKG_CONFIG" && \ 11859 else
11860 if test -n "$PKG_CONFIG" && \
11873 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evil >= 1.0.0\""; } >&5 11861 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evil >= 1.0.0\""; } >&5
11874 ($PKG_CONFIG --exists --print-errors "evil >= 1.0.0") 2>&5 11862 ($PKG_CONFIG --exists --print-errors "evil >= 1.0.0") 2>&5
11875 ac_status=$? 11863 ac_status=$?
@@ -11879,15 +11867,14 @@ if test -n "$EVIL_LIBS"; then
11879else 11867else
11880 pkg_failed=yes 11868 pkg_failed=yes
11881fi 11869fi
11882 else 11870 fi
11883 pkg_failed=untried 11871else
11872 pkg_failed=untried
11884fi 11873fi
11885 11874
11886 11875
11887 11876
11888if test $pkg_failed = yes; then 11877if test $pkg_failed = yes; then
11889 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
11890$as_echo "no" >&6; }
11891 11878
11892if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 11879if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
11893 _pkg_short_errors_supported=yes 11880 _pkg_short_errors_supported=yes
@@ -11895,14 +11882,14 @@ else
11895 _pkg_short_errors_supported=no 11882 _pkg_short_errors_supported=no
11896fi 11883fi
11897 if test $_pkg_short_errors_supported = yes; then 11884 if test $_pkg_short_errors_supported = yes; then
11898 EVIL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "evil >= 1.0.0" 2>&1` 11885 EVIL_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "evil >= 1.0.0"`
11899 else 11886 else
11900 EVIL_PKG_ERRORS=`$PKG_CONFIG --print-errors "evil >= 1.0.0" 2>&1` 11887 EVIL_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "evil >= 1.0.0"`
11901 fi 11888 fi
11902 # Put the nasty error message in config.log where it belongs 11889 # Put the nasty error message in config.log where it belongs
11903 echo "$EVIL_PKG_ERRORS" >&5 11890 echo "$EVIL_PKG_ERRORS" >&5
11904 11891
11905 as_fn_error $? "Package requirements (evil >= 1.0.0) were not met: 11892 as_fn_error "Package requirements (evil >= 1.0.0) were not met:
11906 11893
11907$EVIL_PKG_ERRORS 11894$EVIL_PKG_ERRORS
11908 11895
@@ -11911,13 +11898,12 @@ installed software in a non-standard prefix.
11911 11898
11912Alternatively, you may set the environment variables EVIL_CFLAGS 11899Alternatively, you may set the environment variables EVIL_CFLAGS
11913and EVIL_LIBS to avoid the need to call pkg-config. 11900and EVIL_LIBS to avoid the need to call pkg-config.
11914See the pkg-config man page for more details." "$LINENO" 5 11901See the pkg-config man page for more details.
11902" "$LINENO" 5
11915elif test $pkg_failed = untried; then 11903elif test $pkg_failed = untried; then
11916 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
11917$as_echo "no" >&6; }
11918 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 11904 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
11919$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 11905$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
11920as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it 11906as_fn_error "The pkg-config script could not be found or is too old. Make sure it
11921is in your PATH or set the PKG_CONFIG environment variable to the full 11907is in your PATH or set the PKG_CONFIG environment variable to the full
11922path to pkg-config. 11908path to pkg-config.
11923 11909
@@ -11926,13 +11912,13 @@ and EVIL_LIBS to avoid the need to call pkg-config.
11926See the pkg-config man page for more details. 11912See the pkg-config man page for more details.
11927 11913
11928To get pkg-config, see <http://pkg-config.freedesktop.org/>. 11914To get pkg-config, see <http://pkg-config.freedesktop.org/>.
11929See \`config.log' for more details" "$LINENO" 5 ; } 11915See \`config.log' for more details." "$LINENO" 5; }
11930else 11916else
11931 EVIL_CFLAGS=$pkg_cv_EVIL_CFLAGS 11917 EVIL_CFLAGS=$pkg_cv_EVIL_CFLAGS
11932 EVIL_LIBS=$pkg_cv_EVIL_LIBS 11918 EVIL_LIBS=$pkg_cv_EVIL_LIBS
11933 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 11919 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
11934$as_echo "yes" >&6; } 11920$as_echo "yes" >&6; }
11935 11921 :
11936fi 11922fi
11937 11923
11938$as_echo "#define HAVE_EVIL 1" >>confdefs.h 11924$as_echo "#define HAVE_EVIL 1" >>confdefs.h
@@ -11949,10 +11935,11 @@ pkg_failed=no
11949{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EINA" >&5 11935{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EINA" >&5
11950$as_echo_n "checking for EINA... " >&6; } 11936$as_echo_n "checking for EINA... " >&6; }
11951 11937
11952if test -n "$EINA_CFLAGS"; then 11938if test -n "$PKG_CONFIG"; then
11953 pkg_cv_EINA_CFLAGS="$EINA_CFLAGS" 11939 if test -n "$EINA_CFLAGS"; then
11954 elif test -n "$PKG_CONFIG"; then 11940 pkg_cv_EINA_CFLAGS="$EINA_CFLAGS"
11955 if test -n "$PKG_CONFIG" && \ 11941 else
11942 if test -n "$PKG_CONFIG" && \
11956 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eina >= 1.1.0\""; } >&5 11943 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eina >= 1.1.0\""; } >&5
11957 ($PKG_CONFIG --exists --print-errors "eina >= 1.1.0") 2>&5 11944 ($PKG_CONFIG --exists --print-errors "eina >= 1.1.0") 2>&5
11958 ac_status=$? 11945 ac_status=$?
@@ -11962,13 +11949,15 @@ if test -n "$EINA_CFLAGS"; then
11962else 11949else
11963 pkg_failed=yes 11950 pkg_failed=yes
11964fi 11951fi
11965 else 11952 fi
11966 pkg_failed=untried 11953else
11954 pkg_failed=untried
11967fi 11955fi
11968if test -n "$EINA_LIBS"; then 11956if test -n "$PKG_CONFIG"; then
11969 pkg_cv_EINA_LIBS="$EINA_LIBS" 11957 if test -n "$EINA_LIBS"; then
11970 elif test -n "$PKG_CONFIG"; then 11958 pkg_cv_EINA_LIBS="$EINA_LIBS"
11971 if test -n "$PKG_CONFIG" && \ 11959 else
11960 if test -n "$PKG_CONFIG" && \
11972 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eina >= 1.1.0\""; } >&5 11961 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eina >= 1.1.0\""; } >&5
11973 ($PKG_CONFIG --exists --print-errors "eina >= 1.1.0") 2>&5 11962 ($PKG_CONFIG --exists --print-errors "eina >= 1.1.0") 2>&5
11974 ac_status=$? 11963 ac_status=$?
@@ -11978,15 +11967,14 @@ if test -n "$EINA_LIBS"; then
11978else 11967else
11979 pkg_failed=yes 11968 pkg_failed=yes
11980fi 11969fi
11981 else 11970 fi
11982 pkg_failed=untried 11971else
11972 pkg_failed=untried
11983fi 11973fi
11984 11974
11985 11975
11986 11976
11987if test $pkg_failed = yes; then 11977if test $pkg_failed = yes; then
11988 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
11989$as_echo "no" >&6; }
11990 11978
11991if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 11979if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
11992 _pkg_short_errors_supported=yes 11980 _pkg_short_errors_supported=yes
@@ -11994,14 +11982,14 @@ else
11994 _pkg_short_errors_supported=no 11982 _pkg_short_errors_supported=no
11995fi 11983fi
11996 if test $_pkg_short_errors_supported = yes; then 11984 if test $_pkg_short_errors_supported = yes; then
11997 EINA_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "eina >= 1.1.0" 2>&1` 11985 EINA_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "eina >= 1.1.0"`
11998 else 11986 else
11999 EINA_PKG_ERRORS=`$PKG_CONFIG --print-errors "eina >= 1.1.0" 2>&1` 11987 EINA_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "eina >= 1.1.0"`
12000 fi 11988 fi
12001 # Put the nasty error message in config.log where it belongs 11989 # Put the nasty error message in config.log where it belongs
12002 echo "$EINA_PKG_ERRORS" >&5 11990 echo "$EINA_PKG_ERRORS" >&5
12003 11991
12004 as_fn_error $? "Package requirements (eina >= 1.1.0) were not met: 11992 as_fn_error "Package requirements (eina >= 1.1.0) were not met:
12005 11993
12006$EINA_PKG_ERRORS 11994$EINA_PKG_ERRORS
12007 11995
@@ -12010,13 +11998,12 @@ installed software in a non-standard prefix.
12010 11998
12011Alternatively, you may set the environment variables EINA_CFLAGS 11999Alternatively, you may set the environment variables EINA_CFLAGS
12012and EINA_LIBS to avoid the need to call pkg-config. 12000and EINA_LIBS to avoid the need to call pkg-config.
12013See the pkg-config man page for more details." "$LINENO" 5 12001See the pkg-config man page for more details.
12002" "$LINENO" 5
12014elif test $pkg_failed = untried; then 12003elif test $pkg_failed = untried; then
12015 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
12016$as_echo "no" >&6; }
12017 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 12004 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
12018$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 12005$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
12019as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it 12006as_fn_error "The pkg-config script could not be found or is too old. Make sure it
12020is in your PATH or set the PKG_CONFIG environment variable to the full 12007is in your PATH or set the PKG_CONFIG environment variable to the full
12021path to pkg-config. 12008path to pkg-config.
12022 12009
@@ -12025,13 +12012,13 @@ and EINA_LIBS to avoid the need to call pkg-config.
12025See the pkg-config man page for more details. 12012See the pkg-config man page for more details.
12026 12013
12027To get pkg-config, see <http://pkg-config.freedesktop.org/>. 12014To get pkg-config, see <http://pkg-config.freedesktop.org/>.
12028See \`config.log' for more details" "$LINENO" 5 ; } 12015See \`config.log' for more details." "$LINENO" 5; }
12029else 12016else
12030 EINA_CFLAGS=$pkg_cv_EINA_CFLAGS 12017 EINA_CFLAGS=$pkg_cv_EINA_CFLAGS
12031 EINA_LIBS=$pkg_cv_EINA_LIBS 12018 EINA_LIBS=$pkg_cv_EINA_LIBS
12032 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 12019 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
12033$as_echo "yes" >&6; } 12020$as_echo "yes" >&6; }
12034 12021 :
12035fi 12022fi
12036 12023
12037### Checks for header files 12024### Checks for header files
@@ -12328,8 +12315,8 @@ $as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
12328 12315
12329 ;; #( 12316 ;; #(
12330 *) 12317 *)
12331 as_fn_error $? "unknown endianness 12318 as_fn_error "unknown endianness
12332 presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; 12319 presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;;
12333 esac 12320 esac
12334 12321
12335if test "x$CC" != xcc; then 12322if test "x$CC" != xcc; then
@@ -12341,7 +12328,7 @@ $as_echo_n "checking whether cc understands -c and -o together... " >&6; }
12341fi 12328fi
12342set dummy $CC; ac_cc=`$as_echo "$2" | 12329set dummy $CC; ac_cc=`$as_echo "$2" |
12343 sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'` 12330 sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'`
12344if eval "test \"\${ac_cv_prog_cc_${ac_cc}_c_o+set}\"" = set; then : 12331if { as_var=ac_cv_prog_cc_${ac_cc}_c_o; eval "test \"\${$as_var+set}\" = set"; }; then :
12345 $as_echo_n "(cached) " >&6 12332 $as_echo_n "(cached) " >&6
12346else 12333else
12347 cat confdefs.h - <<_ACEOF >conftest.$ac_ext 12334 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -13249,7 +13236,8 @@ if test $ac_cv_os_cray = yes; then
13249 for ac_func in _getb67 GETB67 getb67; do 13236 for ac_func in _getb67 GETB67 getb67; do
13250 as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` 13237 as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
13251ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" 13238ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
13252if eval test \"x\$"$as_ac_var"\" = x"yes"; then : 13239eval as_val=\$$as_ac_var
13240 if test "x$as_val" = x""yes; then :
13253 13241
13254cat >>confdefs.h <<_ACEOF 13242cat >>confdefs.h <<_ACEOF
13255#define CRAY_STACKSEG_END $ac_func 13243#define CRAY_STACKSEG_END $ac_func
@@ -13396,7 +13384,7 @@ fi
13396if test "x$_efl_have_fnmatch" = "xyes"; then : 13384if test "x$_efl_have_fnmatch" = "xyes"; then :
13397 13385
13398else 13386else
13399 as_fn_error $? "Cannot find fnmatch()" "$LINENO" 5 13387 as_fn_error "Cannot find fnmatch()" "$LINENO" 5
13400fi 13388fi
13401 13389
13402 13390
@@ -13511,7 +13499,6 @@ DEFS=-DHAVE_CONFIG_H
13511 13499
13512ac_libobjs= 13500ac_libobjs=
13513ac_ltlibobjs= 13501ac_ltlibobjs=
13514U=
13515for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue 13502for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
13516 # 1. Remove the extension, and $U if already installed. 13503 # 1. Remove the extension, and $U if already installed.
13517 ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' 13504 ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
@@ -13535,23 +13522,23 @@ else
13535fi 13522fi
13536 13523
13537if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then 13524if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
13538 as_fn_error $? "conditional \"AMDEP\" was never defined. 13525 as_fn_error "conditional \"AMDEP\" was never defined.
13539Usually this means the macro was only invoked conditionally." "$LINENO" 5 13526Usually this means the macro was only invoked conditionally." "$LINENO" 5
13540fi 13527fi
13541if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then 13528if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
13542 as_fn_error $? "conditional \"am__fastdepCC\" was never defined. 13529 as_fn_error "conditional \"am__fastdepCC\" was never defined.
13543Usually this means the macro was only invoked conditionally." "$LINENO" 5 13530Usually this means the macro was only invoked conditionally." "$LINENO" 5
13544fi 13531fi
13545if test -z "${BUILD_EMBRYO_CC_TRUE}" && test -z "${BUILD_EMBRYO_CC_FALSE}"; then 13532if test -z "${BUILD_EMBRYO_CC_TRUE}" && test -z "${BUILD_EMBRYO_CC_FALSE}"; then
13546 as_fn_error $? "conditional \"BUILD_EMBRYO_CC\" was never defined. 13533 as_fn_error "conditional \"BUILD_EMBRYO_CC\" was never defined.
13547Usually this means the macro was only invoked conditionally." "$LINENO" 5 13534Usually this means the macro was only invoked conditionally." "$LINENO" 5
13548fi 13535fi
13549if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then 13536if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
13550 as_fn_error $? "conditional \"am__fastdepCC\" was never defined. 13537 as_fn_error "conditional \"am__fastdepCC\" was never defined.
13551Usually this means the macro was only invoked conditionally." "$LINENO" 5 13538Usually this means the macro was only invoked conditionally." "$LINENO" 5
13552fi 13539fi
13553if test -z "${EFL_BUILD_DOC_TRUE}" && test -z "${EFL_BUILD_DOC_FALSE}"; then 13540if test -z "${EFL_BUILD_DOC_TRUE}" && test -z "${EFL_BUILD_DOC_FALSE}"; then
13554 as_fn_error $? "conditional \"EFL_BUILD_DOC\" was never defined. 13541 as_fn_error "conditional \"EFL_BUILD_DOC\" was never defined.
13555Usually this means the macro was only invoked conditionally." "$LINENO" 5 13542Usually this means the macro was only invoked conditionally." "$LINENO" 5
13556fi 13543fi
13557 13544
@@ -13702,19 +13689,19 @@ export LANGUAGE
13702(unset CDPATH) >/dev/null 2>&1 && unset CDPATH 13689(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
13703 13690
13704 13691
13705# as_fn_error STATUS ERROR [LINENO LOG_FD] 13692# as_fn_error ERROR [LINENO LOG_FD]
13706# ---------------------------------------- 13693# ---------------------------------
13707# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are 13694# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
13708# provided, also output the error to LOG_FD, referencing LINENO. Then exit the 13695# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
13709# script with STATUS, using 1 if that was 0. 13696# script with status $?, using 1 if that was 0.
13710as_fn_error () 13697as_fn_error ()
13711{ 13698{
13712 as_status=$1; test $as_status -eq 0 && as_status=1 13699 as_status=$?; test $as_status -eq 0 && as_status=1
13713 if test "$4"; then 13700 if test "$3"; then
13714 as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 13701 as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
13715 $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 13702 $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
13716 fi 13703 fi
13717 $as_echo "$as_me: error: $2" >&2 13704 $as_echo "$as_me: error: $1" >&2
13718 as_fn_exit $as_status 13705 as_fn_exit $as_status
13719} # as_fn_error 13706} # as_fn_error
13720 13707
@@ -13910,7 +13897,7 @@ $as_echo X"$as_dir" |
13910 test -d "$as_dir" && break 13897 test -d "$as_dir" && break
13911 done 13898 done
13912 test -z "$as_dirs" || eval "mkdir $as_dirs" 13899 test -z "$as_dirs" || eval "mkdir $as_dirs"
13913 } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" 13900 } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir"
13914 13901
13915 13902
13916} # as_fn_mkdir_p 13903} # as_fn_mkdir_p
@@ -13963,8 +13950,8 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
13963# report actual input values of CONFIG_FILES etc. instead of their 13950# report actual input values of CONFIG_FILES etc. instead of their
13964# values after options handling. 13951# values after options handling.
13965ac_log=" 13952ac_log="
13966This file was extended by embryo $as_me 1.1.0, which was 13953This file was extended by embryo $as_me 1.1.99.67344, which was
13967generated by GNU Autoconf 2.67. Invocation command line was 13954generated by GNU Autoconf 2.65. Invocation command line was
13968 13955
13969 CONFIG_FILES = $CONFIG_FILES 13956 CONFIG_FILES = $CONFIG_FILES
13970 CONFIG_HEADERS = $CONFIG_HEADERS 13957 CONFIG_HEADERS = $CONFIG_HEADERS
@@ -14029,11 +14016,11 @@ _ACEOF
14029cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 14016cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
14030ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" 14017ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
14031ac_cs_version="\\ 14018ac_cs_version="\\
14032embryo config.status 1.1.0 14019embryo config.status 1.1.99.67344
14033configured by $0, generated by GNU Autoconf 2.67, 14020configured by $0, generated by GNU Autoconf 2.65,
14034 with options \\"\$ac_cs_config\\" 14021 with options \\"\$ac_cs_config\\"
14035 14022
14036Copyright (C) 2010 Free Software Foundation, Inc. 14023Copyright (C) 2009 Free Software Foundation, Inc.
14037This config.status script is free software; the Free Software Foundation 14024This config.status script is free software; the Free Software Foundation
14038gives unlimited permission to copy, distribute and modify it." 14025gives unlimited permission to copy, distribute and modify it."
14039 14026
@@ -14051,16 +14038,11 @@ ac_need_defaults=:
14051while test $# != 0 14038while test $# != 0
14052do 14039do
14053 case $1 in 14040 case $1 in
14054 --*=?*) 14041 --*=*)
14055 ac_option=`expr "X$1" : 'X\([^=]*\)='` 14042 ac_option=`expr "X$1" : 'X\([^=]*\)='`
14056 ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` 14043 ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
14057 ac_shift=: 14044 ac_shift=:
14058 ;; 14045 ;;
14059 --*=)
14060 ac_option=`expr "X$1" : 'X\([^=]*\)='`
14061 ac_optarg=
14062 ac_shift=:
14063 ;;
14064 *) 14046 *)
14065 ac_option=$1 14047 ac_option=$1
14066 ac_optarg=$2 14048 ac_optarg=$2
@@ -14082,7 +14064,6 @@ do
14082 $ac_shift 14064 $ac_shift
14083 case $ac_optarg in 14065 case $ac_optarg in
14084 *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; 14066 *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
14085 '') as_fn_error $? "missing file argument" ;;
14086 esac 14067 esac
14087 as_fn_append CONFIG_FILES " '$ac_optarg'" 14068 as_fn_append CONFIG_FILES " '$ac_optarg'"
14088 ac_need_defaults=false;; 14069 ac_need_defaults=false;;
@@ -14095,7 +14076,7 @@ do
14095 ac_need_defaults=false;; 14076 ac_need_defaults=false;;
14096 --he | --h) 14077 --he | --h)
14097 # Conflict between --help and --header 14078 # Conflict between --help and --header
14098 as_fn_error $? "ambiguous option: \`$1' 14079 as_fn_error "ambiguous option: \`$1'
14099Try \`$0 --help' for more information.";; 14080Try \`$0 --help' for more information.";;
14100 --help | --hel | -h ) 14081 --help | --hel | -h )
14101 $as_echo "$ac_cs_usage"; exit ;; 14082 $as_echo "$ac_cs_usage"; exit ;;
@@ -14104,7 +14085,7 @@ Try \`$0 --help' for more information.";;
14104 ac_cs_silent=: ;; 14085 ac_cs_silent=: ;;
14105 14086
14106 # This is an error. 14087 # This is an error.
14107 -*) as_fn_error $? "unrecognized option: \`$1' 14088 -*) as_fn_error "unrecognized option: \`$1'
14108Try \`$0 --help' for more information." ;; 14089Try \`$0 --help' for more information." ;;
14109 14090
14110 *) as_fn_append ac_config_targets " $1" 14091 *) as_fn_append ac_config_targets " $1"
@@ -14428,7 +14409,7 @@ do
14428 "src/bin/Makefile") CONFIG_FILES="$CONFIG_FILES src/bin/Makefile" ;; 14409 "src/bin/Makefile") CONFIG_FILES="$CONFIG_FILES src/bin/Makefile" ;;
14429 "embryo.spec") CONFIG_FILES="$CONFIG_FILES embryo.spec" ;; 14410 "embryo.spec") CONFIG_FILES="$CONFIG_FILES embryo.spec" ;;
14430 14411
14431 *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5 ;; 14412 *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
14432 esac 14413 esac
14433done 14414done
14434 14415
@@ -14466,7 +14447,7 @@ $debug ||
14466{ 14447{
14467 tmp=./conf$$-$RANDOM 14448 tmp=./conf$$-$RANDOM
14468 (umask 077 && mkdir "$tmp") 14449 (umask 077 && mkdir "$tmp")
14469} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 14450} || as_fn_error "cannot create a temporary directory in ." "$LINENO" 5
14470 14451
14471# Set up the scripts for CONFIG_FILES section. 14452# Set up the scripts for CONFIG_FILES section.
14472# No need to generate them if there are no CONFIG_FILES. 14453# No need to generate them if there are no CONFIG_FILES.
@@ -14483,7 +14464,7 @@ if test "x$ac_cr" = x; then
14483fi 14464fi
14484ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null` 14465ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
14485if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then 14466if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
14486 ac_cs_awk_cr='\\r' 14467 ac_cs_awk_cr='\r'
14487else 14468else
14488 ac_cs_awk_cr=$ac_cr 14469 ac_cs_awk_cr=$ac_cr
14489fi 14470fi
@@ -14497,18 +14478,18 @@ _ACEOF
14497 echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && 14478 echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
14498 echo "_ACEOF" 14479 echo "_ACEOF"
14499} >conf$$subs.sh || 14480} >conf$$subs.sh ||
14500 as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 14481 as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
14501ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` 14482ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'`
14502ac_delim='%!_!# ' 14483ac_delim='%!_!# '
14503for ac_last_try in false false false false false :; do 14484for ac_last_try in false false false false false :; do
14504 . ./conf$$subs.sh || 14485 . ./conf$$subs.sh ||
14505 as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 14486 as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
14506 14487
14507 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` 14488 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
14508 if test $ac_delim_n = $ac_delim_num; then 14489 if test $ac_delim_n = $ac_delim_num; then
14509 break 14490 break
14510 elif $ac_last_try; then 14491 elif $ac_last_try; then
14511 as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 14492 as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
14512 else 14493 else
14513 ac_delim="$ac_delim!$ac_delim _$ac_delim!! " 14494 ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
14514 fi 14495 fi
@@ -14597,28 +14578,20 @@ if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
14597else 14578else
14598 cat 14579 cat
14599fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ 14580fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
14600 || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 14581 || as_fn_error "could not setup config files machinery" "$LINENO" 5
14601_ACEOF 14582_ACEOF
14602 14583
14603# VPATH may cause trouble with some makes, so we remove sole $(srcdir), 14584# VPATH may cause trouble with some makes, so we remove $(srcdir),
14604# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and 14585# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
14605# trailing colons and then remove the whole line if VPATH becomes empty 14586# trailing colons and then remove the whole line if VPATH becomes empty
14606# (actually we leave an empty line to preserve line numbers). 14587# (actually we leave an empty line to preserve line numbers).
14607if test "x$srcdir" = x.; then 14588if test "x$srcdir" = x.; then
14608 ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ 14589 ac_vpsub='/^[ ]*VPATH[ ]*=/{
14609h 14590s/:*\$(srcdir):*/:/
14610s/// 14591s/:*\${srcdir}:*/:/
14611s/^/:/ 14592s/:*@srcdir@:*/:/
14612s/[ ]*$/:/ 14593s/^\([^=]*=[ ]*\):*/\1/
14613s/:\$(srcdir):/:/g
14614s/:\${srcdir}:/:/g
14615s/:@srcdir@:/:/g
14616s/^:*//
14617s/:*$// 14594s/:*$//
14618x
14619s/\(=[ ]*\).*/\1/
14620G
14621s/\n//
14622s/^[^=]*=[ ]*$// 14595s/^[^=]*=[ ]*$//
14623}' 14596}'
14624fi 14597fi
@@ -14646,7 +14619,7 @@ for ac_last_try in false false :; do
14646 if test -z "$ac_t"; then 14619 if test -z "$ac_t"; then
14647 break 14620 break
14648 elif $ac_last_try; then 14621 elif $ac_last_try; then
14649 as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 14622 as_fn_error "could not make $CONFIG_HEADERS" "$LINENO" 5
14650 else 14623 else
14651 ac_delim="$ac_delim!$ac_delim _$ac_delim!! " 14624 ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
14652 fi 14625 fi
@@ -14731,7 +14704,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
14731_ACAWK 14704_ACAWK
14732_ACEOF 14705_ACEOF
14733cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 14706cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
14734 as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 14707 as_fn_error "could not setup config headers machinery" "$LINENO" 5
14735fi # test -n "$CONFIG_HEADERS" 14708fi # test -n "$CONFIG_HEADERS"
14736 14709
14737 14710
@@ -14744,7 +14717,7 @@ do
14744 esac 14717 esac
14745 case $ac_mode$ac_tag in 14718 case $ac_mode$ac_tag in
14746 :[FHL]*:*);; 14719 :[FHL]*:*);;
14747 :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5 ;; 14720 :L* | :C*:*) as_fn_error "invalid tag \`$ac_tag'" "$LINENO" 5;;
14748 :[FH]-) ac_tag=-:-;; 14721 :[FH]-) ac_tag=-:-;;
14749 :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; 14722 :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
14750 esac 14723 esac
@@ -14772,7 +14745,7 @@ do
14772 [\\/$]*) false;; 14745 [\\/$]*) false;;
14773 *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; 14746 *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
14774 esac || 14747 esac ||
14775 as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5 ;; 14748 as_fn_error "cannot find input file: \`$ac_f'" "$LINENO" 5;;
14776 esac 14749 esac
14777 case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac 14750 case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
14778 as_fn_append ac_file_inputs " '$ac_f'" 14751 as_fn_append ac_file_inputs " '$ac_f'"
@@ -14799,7 +14772,7 @@ $as_echo "$as_me: creating $ac_file" >&6;}
14799 14772
14800 case $ac_tag in 14773 case $ac_tag in
14801 *:-:* | *:-) cat >"$tmp/stdin" \ 14774 *:-:* | *:-) cat >"$tmp/stdin" \
14802 || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; 14775 || as_fn_error "could not create $ac_file" "$LINENO" 5 ;;
14803 esac 14776 esac
14804 ;; 14777 ;;
14805 esac 14778 esac
@@ -14936,22 +14909,22 @@ s&@MKDIR_P@&$ac_MKDIR_P&;t t
14936$ac_datarootdir_hack 14909$ac_datarootdir_hack
14937" 14910"
14938eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ 14911eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \
14939 || as_fn_error $? "could not create $ac_file" "$LINENO" 5 14912 || as_fn_error "could not create $ac_file" "$LINENO" 5
14940 14913
14941test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && 14914test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
14942 { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && 14915 { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
14943 { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && 14916 { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
14944 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' 14917 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
14945which seems to be undefined. Please make sure it is defined" >&5 14918which seems to be undefined. Please make sure it is defined." >&5
14946$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' 14919$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
14947which seems to be undefined. Please make sure it is defined" >&2;} 14920which seems to be undefined. Please make sure it is defined." >&2;}
14948 14921
14949 rm -f "$tmp/stdin" 14922 rm -f "$tmp/stdin"
14950 case $ac_file in 14923 case $ac_file in
14951 -) cat "$tmp/out" && rm -f "$tmp/out";; 14924 -) cat "$tmp/out" && rm -f "$tmp/out";;
14952 *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; 14925 *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
14953 esac \ 14926 esac \
14954 || as_fn_error $? "could not create $ac_file" "$LINENO" 5 14927 || as_fn_error "could not create $ac_file" "$LINENO" 5
14955 ;; 14928 ;;
14956 :H) 14929 :H)
14957 # 14930 #
@@ -14962,19 +14935,19 @@ which seems to be undefined. Please make sure it is defined" >&2;}
14962 $as_echo "/* $configure_input */" \ 14935 $as_echo "/* $configure_input */" \
14963 && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" 14936 && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs"
14964 } >"$tmp/config.h" \ 14937 } >"$tmp/config.h" \
14965 || as_fn_error $? "could not create $ac_file" "$LINENO" 5 14938 || as_fn_error "could not create $ac_file" "$LINENO" 5
14966 if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then 14939 if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then
14967 { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 14940 { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
14968$as_echo "$as_me: $ac_file is unchanged" >&6;} 14941$as_echo "$as_me: $ac_file is unchanged" >&6;}
14969 else 14942 else
14970 rm -f "$ac_file" 14943 rm -f "$ac_file"
14971 mv "$tmp/config.h" "$ac_file" \ 14944 mv "$tmp/config.h" "$ac_file" \
14972 || as_fn_error $? "could not create $ac_file" "$LINENO" 5 14945 || as_fn_error "could not create $ac_file" "$LINENO" 5
14973 fi 14946 fi
14974 else 14947 else
14975 $as_echo "/* $configure_input */" \ 14948 $as_echo "/* $configure_input */" \
14976 && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ 14949 && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \
14977 || as_fn_error $? "could not create -" "$LINENO" 5 14950 || as_fn_error "could not create -" "$LINENO" 5
14978 fi 14951 fi
14979# Compute "$ac_file"'s index in $config_headers. 14952# Compute "$ac_file"'s index in $config_headers.
14980_am_arg="$ac_file" 14953_am_arg="$ac_file"
@@ -15765,7 +15738,7 @@ _ACEOF
15765ac_clean_files=$ac_clean_files_save 15738ac_clean_files=$ac_clean_files_save
15766 15739
15767test $ac_write_fail = 0 || 15740test $ac_write_fail = 0 ||
15768 as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 15741 as_fn_error "write failure creating $CONFIG_STATUS" "$LINENO" 5
15769 15742
15770 15743
15771# configure is writing to config.log, and then calls config.status. 15744# configure is writing to config.log, and then calls config.status.
@@ -15786,7 +15759,7 @@ if test "$no_create" != yes; then
15786 exec 5>>config.log 15759 exec 5>>config.log
15787 # Use ||, not &&, to avoid exiting from the if with $? = 1, which 15760 # Use ||, not &&, to avoid exiting from the if with $? = 1, which
15788 # would make configure fail if this is the last instruction. 15761 # would make configure fail if this is the last instruction.
15789 $ac_cs_success || as_fn_exit 1 15762 $ac_cs_success || as_fn_exit $?
15790fi 15763fi
15791if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then 15764if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
15792 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 15765 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
diff --git a/libraries/embryo/configure.ac b/libraries/embryo/configure.ac
index 721a9c1..61c50b8 100644
--- a/libraries/embryo/configure.ac
+++ b/libraries/embryo/configure.ac
@@ -2,11 +2,11 @@
2##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## 2##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
3m4_define([v_maj], [1]) 3m4_define([v_maj], [1])
4m4_define([v_min], [1]) 4m4_define([v_min], [1])
5m4_define([v_mic], [0]) 5m4_define([v_mic], [99])
6m4_define([v_rev], m4_esyscmd([(svnversion "${SVN_REPO_PATH:-.}" | grep -v export || 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
9m4_undefine([v_rev]) 9dnl m4_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 ver-pre-svn-07]) 12dnl m4_define([v_rel], [-release ver-pre-svn-07])
diff --git a/libraries/embryo/doc/Makefile.in b/libraries/embryo/doc/Makefile.in
index 4b53f1d..102cd2f 100644
--- a/libraries/embryo/doc/Makefile.in
+++ b/libraries/embryo/doc/Makefile.in
@@ -126,8 +126,6 @@ PACKAGE_URL = @PACKAGE_URL@
126PACKAGE_VERSION = @PACKAGE_VERSION@ 126PACKAGE_VERSION = @PACKAGE_VERSION@
127PATH_SEPARATOR = @PATH_SEPARATOR@ 127PATH_SEPARATOR = @PATH_SEPARATOR@
128PKG_CONFIG = @PKG_CONFIG@ 128PKG_CONFIG = @PKG_CONFIG@
129PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
130PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
131RANLIB = @RANLIB@ 129RANLIB = @RANLIB@
132SED = @SED@ 130SED = @SED@
133SET_MAKE = @SET_MAKE@ 131SET_MAKE = @SET_MAKE@
diff --git a/libraries/embryo/doc/img/e.png b/libraries/embryo/doc/img/e.png
index b3884a5..b3884a5 100644..100755
--- a/libraries/embryo/doc/img/e.png
+++ b/libraries/embryo/doc/img/e.png
Binary files differ
diff --git a/libraries/embryo/doc/img/e_big.png b/libraries/embryo/doc/img/e_big.png
index d42aeb4..d42aeb4 100644..100755
--- a/libraries/embryo/doc/img/e_big.png
+++ b/libraries/embryo/doc/img/e_big.png
Binary files differ
diff --git a/libraries/embryo/doc/img/edoxy.css b/libraries/embryo/doc/img/edoxy.css
index 616a0c5..616a0c5 100644..100755
--- a/libraries/embryo/doc/img/edoxy.css
+++ b/libraries/embryo/doc/img/edoxy.css
diff --git a/libraries/embryo/doc/img/foot_bg.png b/libraries/embryo/doc/img/foot_bg.png
index b24f3a4..b24f3a4 100644..100755
--- a/libraries/embryo/doc/img/foot_bg.png
+++ b/libraries/embryo/doc/img/foot_bg.png
Binary files differ
diff --git a/libraries/embryo/doc/img/head_bg.png b/libraries/embryo/doc/img/head_bg.png
index 081dc13..081dc13 100644..100755
--- a/libraries/embryo/doc/img/head_bg.png
+++ b/libraries/embryo/doc/img/head_bg.png
Binary files differ
diff --git a/libraries/embryo/doc/img/menu_bg.png b/libraries/embryo/doc/img/menu_bg.png
index e978743..e978743 100644..100755
--- a/libraries/embryo/doc/img/menu_bg.png
+++ b/libraries/embryo/doc/img/menu_bg.png
Binary files differ
diff --git a/libraries/embryo/doc/img/menu_bg_current.png b/libraries/embryo/doc/img/menu_bg_current.png
index de97c92..de97c92 100644..100755
--- a/libraries/embryo/doc/img/menu_bg_current.png
+++ b/libraries/embryo/doc/img/menu_bg_current.png
Binary files differ
diff --git a/libraries/embryo/doc/img/menu_bg_hover.png b/libraries/embryo/doc/img/menu_bg_hover.png
index 3fd851d..3fd851d 100644..100755
--- a/libraries/embryo/doc/img/menu_bg_hover.png
+++ b/libraries/embryo/doc/img/menu_bg_hover.png
Binary files differ
diff --git a/libraries/embryo/doc/img/menu_bg_last.png b/libraries/embryo/doc/img/menu_bg_last.png
index 88c116c..88c116c 100644..100755
--- a/libraries/embryo/doc/img/menu_bg_last.png
+++ b/libraries/embryo/doc/img/menu_bg_last.png
Binary files differ
diff --git a/libraries/embryo/doc/img/menu_bg_unsel.png b/libraries/embryo/doc/img/menu_bg_unsel.png
index 50e5fd8..50e5fd8 100644..100755
--- a/libraries/embryo/doc/img/menu_bg_unsel.png
+++ b/libraries/embryo/doc/img/menu_bg_unsel.png
Binary files differ
diff --git a/libraries/embryo/embryo.spec b/libraries/embryo/embryo.spec
index aba0f0e..834f792 100644
--- a/libraries/embryo/embryo.spec
+++ b/libraries/embryo/embryo.spec
@@ -4,7 +4,7 @@
4 4
5Summary: A small virtual machine engine (in a library) and bytecode compiler 5Summary: A small virtual machine engine (in a library) and bytecode compiler
6Name: embryo 6Name: embryo
7Version: 1.1.0 7Version: 1.1.99.67344
8Release: %{_rel} 8Release: %{_rel}
9License: BSD 9License: BSD
10Group: System Environment/Libraries 10Group: System Environment/Libraries
diff --git a/libraries/embryo/include/Makefile.in b/libraries/embryo/include/Makefile.in
index a5456cd..0a96acd 100644
--- a/libraries/embryo/include/Makefile.in
+++ b/libraries/embryo/include/Makefile.in
@@ -149,8 +149,6 @@ PACKAGE_URL = @PACKAGE_URL@
149PACKAGE_VERSION = @PACKAGE_VERSION@ 149PACKAGE_VERSION = @PACKAGE_VERSION@
150PATH_SEPARATOR = @PATH_SEPARATOR@ 150PATH_SEPARATOR = @PATH_SEPARATOR@
151PKG_CONFIG = @PKG_CONFIG@ 151PKG_CONFIG = @PKG_CONFIG@
152PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
153PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
154RANLIB = @RANLIB@ 152RANLIB = @RANLIB@
155SED = @SED@ 153SED = @SED@
156SET_MAKE = @SET_MAKE@ 154SET_MAKE = @SET_MAKE@
diff --git a/libraries/embryo/ltmain.sh b/libraries/embryo/ltmain.sh
index fa4b1e1..7ed280b 100755
--- a/libraries/embryo/ltmain.sh
+++ b/libraries/embryo/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-2ubuntu3 68# $progname: (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
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-2ubuntu3" 76VERSION="2.2.6b Debian-2.2.6b-2ubuntu1"
77TIMESTAMP="" 77TIMESTAMP=""
78package_revision=1.3017 78package_revision=1.3017
79 79
diff --git a/libraries/embryo/sha1-for-source.txt b/libraries/embryo/sha1-for-source.txt
deleted file mode 100644
index 16ae5f0..0000000
--- a/libraries/embryo/sha1-for-source.txt
+++ /dev/null
@@ -1 +0,0 @@
1f76404fa37f1580cbad2bbc747be9c6d68b7bef3
diff --git a/libraries/embryo/src/Makefile.in b/libraries/embryo/src/Makefile.in
index 7eb44dd..ff3d123 100644
--- a/libraries/embryo/src/Makefile.in
+++ b/libraries/embryo/src/Makefile.in
@@ -165,8 +165,6 @@ PACKAGE_URL = @PACKAGE_URL@
165PACKAGE_VERSION = @PACKAGE_VERSION@ 165PACKAGE_VERSION = @PACKAGE_VERSION@
166PATH_SEPARATOR = @PATH_SEPARATOR@ 166PATH_SEPARATOR = @PATH_SEPARATOR@
167PKG_CONFIG = @PKG_CONFIG@ 167PKG_CONFIG = @PKG_CONFIG@
168PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
169PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
170RANLIB = @RANLIB@ 168RANLIB = @RANLIB@
171SED = @SED@ 169SED = @SED@
172SET_MAKE = @SET_MAKE@ 170SET_MAKE = @SET_MAKE@
diff --git a/libraries/embryo/src/bin/Makefile.in b/libraries/embryo/src/bin/Makefile.in
index 40d0ef9..a6551be 100644
--- a/libraries/embryo/src/bin/Makefile.in
+++ b/libraries/embryo/src/bin/Makefile.in
@@ -170,8 +170,6 @@ PACKAGE_URL = @PACKAGE_URL@
170PACKAGE_VERSION = @PACKAGE_VERSION@ 170PACKAGE_VERSION = @PACKAGE_VERSION@
171PATH_SEPARATOR = @PATH_SEPARATOR@ 171PATH_SEPARATOR = @PATH_SEPARATOR@
172PKG_CONFIG = @PKG_CONFIG@ 172PKG_CONFIG = @PKG_CONFIG@
173PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
174PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
175RANLIB = @RANLIB@ 173RANLIB = @RANLIB@
176SED = @SED@ 174SED = @SED@
177SET_MAKE = @SET_MAKE@ 175SET_MAKE = @SET_MAKE@
diff --git a/libraries/embryo/src/bin/embryo_cc_sc5.scp b/libraries/embryo/src/bin/embryo_cc_sc5.scp
index af3f352..8005f79 100644
--- a/libraries/embryo/src/bin/embryo_cc_sc5.scp
+++ b/libraries/embryo/src/bin/embryo_cc_sc5.scp
@@ -18,7 +18,7 @@
18 * misrepresented as being the original software. 18 * misrepresented as being the original software.
19 * 3. This notice may not be removed or altered from any source distribution. 19 * 3. This notice may not be removed or altered from any source distribution.
20 * 20 *
21 * Version: $Id: embryo_cc_sc5.scp 35497 2008-08-17 07:44:18Z raster $ 21 * Version: $Id: embryo_cc_sc5.scp 14177 2005-04-13 19:37:01Z tsauerbeck $
22 */ 22 */
23 23
24int strexpand(char *dest, unsigned char *source, int maxlen, 24int strexpand(char *dest, unsigned char *source, int maxlen,
diff --git a/libraries/embryo/src/bin/embryo_cc_sc7.scp b/libraries/embryo/src/bin/embryo_cc_sc7.scp
index 15c80ac..83d49a1 100644
--- a/libraries/embryo/src/bin/embryo_cc_sc7.scp
+++ b/libraries/embryo/src/bin/embryo_cc_sc7.scp
@@ -19,7 +19,7 @@
19 * misrepresented as being the original software. 19 * misrepresented as being the original software.
20 * 3. This notice may not be removed or altered from any source distribution. 20 * 3. This notice may not be removed or altered from any source distribution.
21 * 21 *
22 * Version: $Id: embryo_cc_sc7.scp 35497 2008-08-17 07:44:18Z raster $ 22 * Version: $Id: embryo_cc_sc7.scp 14177 2005-04-13 19:37:01Z tsauerbeck $
23 */ 23 */
24 24
25int strexpand(char *dest, unsigned char *source, int maxlen, 25int strexpand(char *dest, unsigned char *source, int maxlen,
diff --git a/libraries/embryo/src/lib/Embryo.h b/libraries/embryo/src/lib/Embryo.h
index ea273cf..74c872b 100644
--- a/libraries/embryo/src/lib/Embryo.h
+++ b/libraries/embryo/src/lib/Embryo.h
@@ -341,7 +341,7 @@ extern "C" {
341#endif 341#endif
342 342
343#define EMBRYO_VERSION_MAJOR 1 343#define EMBRYO_VERSION_MAJOR 1
344#define EMBRYO_VERSION_MINOR 0 344#define EMBRYO_VERSION_MINOR 2
345 345
346 typedef struct _Embryo_Version 346 typedef struct _Embryo_Version
347 { 347 {
diff --git a/libraries/embryo/src/lib/Makefile.in b/libraries/embryo/src/lib/Makefile.in
index 56e9f26..3fb5591 100644
--- a/libraries/embryo/src/lib/Makefile.in
+++ b/libraries/embryo/src/lib/Makefile.in
@@ -186,8 +186,6 @@ PACKAGE_URL = @PACKAGE_URL@
186PACKAGE_VERSION = @PACKAGE_VERSION@ 186PACKAGE_VERSION = @PACKAGE_VERSION@
187PATH_SEPARATOR = @PATH_SEPARATOR@ 187PATH_SEPARATOR = @PATH_SEPARATOR@
188PKG_CONFIG = @PKG_CONFIG@ 188PKG_CONFIG = @PKG_CONFIG@
189PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
190PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
191RANLIB = @RANLIB@ 189RANLIB = @RANLIB@
192SED = @SED@ 190SED = @SED@
193SET_MAKE = @SET_MAKE@ 191SET_MAKE = @SET_MAKE@
diff --git a/libraries/evas/AUTHORS b/libraries/evas/AUTHORS
index 52f8f93..470dd6a 100644
--- a/libraries/evas/AUTHORS
+++ b/libraries/evas/AUTHORS
@@ -31,3 +31,4 @@ Seungsoo Woo <om101.woo@samsung.com>
31Youness Alaoui <kakaroto@kakaroto.homelinux.net> 31Youness Alaoui <kakaroto@kakaroto.homelinux.net>
32Jim Kukunas <james.t.kukunas@linux.intel.com> 32Jim Kukunas <james.t.kukunas@linux.intel.com>
33Nicolas Aguirre <aguirre.nicolas@gmail.com> 33Nicolas Aguirre <aguirre.nicolas@gmail.com>
34Rafal Krypa <r.krypa@samsung.com>
diff --git a/libraries/evas/ChangeLog b/libraries/evas/ChangeLog
index ac0f3d2..fa77400 100644
--- a/libraries/evas/ChangeLog
+++ b/libraries/evas/ChangeLog
@@ -503,7 +503,7 @@
503 503
504 * JPEG encode and decode in eet now uses ISLOW (not IFAST) due to 504 * JPEG encode and decode in eet now uses ISLOW (not IFAST) due to
505 noticable quality losses in the chase for speed. It will use 505 noticable quality losses in the chase for speed. It will use
506 IFAST for quality less than 60 when encoding 506 IFAST for quality less than 60 when encoding
507 507
5082011-11-20 Carsten Haitzler (The Rasterman) 5082011-11-20 Carsten Haitzler (The Rasterman)
509 509
@@ -515,3 +515,132 @@
515 515
516 * Fix repeat event inheritance from parent smart just like 516 * Fix repeat event inheritance from parent smart just like
517 pass events are inherited. This was inconsistent. 517 pass events are inherited. This was inconsistent.
518
5192011-12-02 Carsten Haitzler (The Rasterman)
520
521 1.1.0 release
522
5232011-12-07 Carsten Haitzler (The Rasterman)
524
525 * Fix build if gcc too old - if immintrin.h doesn't exist,
526 don't enable SSE3.
527
5282011-12-08 Tom Hacohen (TAsn)
529
530 * Textblock markup: Support self closing format tags, i.e <br/>.
531 You should use <br/> and not <br>. The latter still works but it's use
532 is discouraged.
533 * Textblock: Added evas_textblock_text_markup_to_utf8.
534 This lets you convert textblock markup to plain text.
535 This converts formats and everything correctly.
536
5372011-12-12 Carsten Haitzler (The Rasterman)
538
539 * Fix rounding error in map clip bounds calculation
540
5412011-12-12 Tom Hacohen (TAsn)
542
543 * Textblock: Added evas_textblock_cursor_word_start/end.
544 Those functions let you jump to the start/end of the word under the
545 cursor.
546
5472011-12-13 Carsten Haitzler (The Rasterman)
548
549 * Fix grab count negative values if you do weird combinations of
550 press and release with multiple fingers or multiple mouse
551 buttons.
552
5532011-12-14 Cedric BAIL
554
555 * Use Eina_File when loading bmp, ico, pmaps and wbmp files.
556 * Fix potential race condition in wbmp loader code.
557
5582011-12-14 Tom Hacohen (TAsn)
559
560 * Textblock: Made "br" and "tab" default tags for newline and tab.
561 * Textblock: Added "b" and "i" as default tags that can be overridden
562 by style, and added the infra to support this.
563 * Textblock: Added evas_textblock_text_utf8_to_markup
564
5652011-12-16 Carsten Haitzler (The Rasterman)
566
567 * Fix clip bug that shows up in buffer engine
568 * Fix SSE3 routines with buggy output - disable
569 * Add new api to set and get default event flags.
570
5712011-12-19 Carsten Haitzler (The Rasterman)
572
573 * Add new canvas events called just before and after evas rendering
574 starts and stops.
575
5762011-12-21 ChunEon Park (Hermet)
577
578 * Events: repeat events should not be affected by children.
579 Fixed to object passes events to the next object in the same layer
580 if the repeat_events is enabled.
581
5822011-12-23 Sanghee Park
583
584 * Extend pixman support to allow other operations to use
585 pixman when doing software rendering. On x86 this isn't useful
586 but on ARMv7 with NEON pixman happens to do better with image
587 blending and nearest scale blending.
588 * Add tiled rotator for 32bit display as an option.
589
5902011-12-26 Christopher Michael (devilhorns)
591
592 * Add functions to get/set if an object is a 'frame_object'
593
5942011-12-27 Carsten Haitzler (The Rasterman)
595
596 * Add feature to get number of pressed devices (help fix
597 ecore-evas bug).
598
5992011-12-28 Carsten Haitzler (The Rasterman)
600
601 * Add recursive name find function - evas_object_name_child_find()
602
6032012-01-01 Carsten Haitzler (The Rasterman)
604
605 * Improve CPU use on nvidia drivers when vsyncing. It was
606 actually glXWaitGL() spinning, not glXSwapBuffers(), so this
607 points to a bug in the nvidia drivers where the sleep logic
608 in glXSwapBuffers() hasn't been transferred to glXWaitGL().
609 Avoid use of glXWaitGL() to avoid the nvidia bug.
610
6112012-01-02 Cedric Bail
612
613 * Fix unitialized value when running generic loader without any
614 application found to open the file.
615 * Use Eina_File when openning XPM file.
616
6172012-01-03 Cedric Bail
618
619 * Use Eina_File for PSD file to.
620
6212012-01-06 Sung W. Park (sung_)
622
623 * Add EvasGL support to software backend using OSMesa. Requires OSMesa
624 library. Due to caveats in OSMesa, surface config stays with a
625 context rather than with a surface. So for now, the config of a
626 surface remains with the first context that it binds to. May need
627 to come up with a different solution in the near future.
628
6292012-01-12 Sung W. Park (sung_)
630
631 * Add new api evas_gl_config_new/free() to ensure backward compatibility.
632 Previously, the user simply declared a Evas_GL_Config object but this
633 can cause issues if new configs are added. Now we have evas allocate it
634 for you.
635
6362012-01-16 Raphael Kubo da Costa (rakuco)
637
638 * Add evas_object_smart_callback_del_full() to allow users to
639 unregister a specific smart event callback instead of all
640 callbacks matching a given type and function pointer.
641
6422012-01-17 Carsten Haitzler (The Rasterman)
643
644 * Add EVAS_OBJECT_POINTER_MODE_NOGRAB_NO_REPEAT_UPDOWN pointer mode
645 for some very specific behavior needed for accessibility.
646
diff --git a/libraries/evas/Makefile.am b/libraries/evas/Makefile.am
index 665f988..b42e7f9 100644
--- a/libraries/evas/Makefile.am
+++ b/libraries/evas/Makefile.am
@@ -45,6 +45,8 @@ evas-direct3d.pc.in \
45evas-software-16-wince.pc.in \ 45evas-software-16-wince.pc.in \
46evas-software-sdl.pc.in \ 46evas-software-sdl.pc.in \
47evas-psl1ght.pc.in \ 47evas-psl1ght.pc.in \
48evas-wayland-shm.pc.in \
49evas-wayland-egl.pc.in \
48evas.spec.in \ 50evas.spec.in \
49evas.spec \ 51evas.spec \
50m4/efl_attribute.m4 \ 52m4/efl_attribute.m4 \
@@ -127,6 +129,14 @@ if BUILD_ENGINE_PSL1GHT
127pkgconfig_DATA += evas-psl1ght.pc 129pkgconfig_DATA += evas-psl1ght.pc
128endif 130endif
129 131
132if BUILD_ENGINE_WAYLAND_SHM
133pkgconfig_DATA += evas-wayland-shm.pc
134endif
135
136if BUILD_ENGINE_WAYLAND_EGL
137pkgconfig_DATA += evas-wayland-egl.pc
138endif
139
130.PHONY: doc coverage 140.PHONY: doc coverage
131 141
132doc: 142doc:
diff --git a/libraries/evas/Makefile.in b/libraries/evas/Makefile.in
index 6fb0d12..8fe20cb 100644
--- a/libraries/evas/Makefile.in
+++ b/libraries/evas/Makefile.in
@@ -51,6 +51,8 @@ host_triplet = @host@
51@BUILD_ENGINE_SOFTWARE_16_WINCE_TRUE@am__append_14 = evas-software-16-wince.pc 51@BUILD_ENGINE_SOFTWARE_16_WINCE_TRUE@am__append_14 = evas-software-16-wince.pc
52@BUILD_ENGINE_SOFTWARE_SDL_TRUE@am__append_15 = evas-software-sdl.pc 52@BUILD_ENGINE_SOFTWARE_SDL_TRUE@am__append_15 = evas-software-sdl.pc
53@BUILD_ENGINE_PSL1GHT_TRUE@am__append_16 = evas-psl1ght.pc 53@BUILD_ENGINE_PSL1GHT_TRUE@am__append_16 = evas-psl1ght.pc
54@BUILD_ENGINE_WAYLAND_SHM_TRUE@am__append_17 = evas-wayland-shm.pc
55@BUILD_ENGINE_WAYLAND_EGL_TRUE@am__append_18 = evas-wayland-egl.pc
54subdir = . 56subdir = .
55DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ 57DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
56 $(srcdir)/Makefile.in $(srcdir)/config.h.in \ 58 $(srcdir)/Makefile.in $(srcdir)/config.h.in \
@@ -66,10 +68,12 @@ DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
66 $(srcdir)/evas-software-ddraw.pc.in \ 68 $(srcdir)/evas-software-ddraw.pc.in \
67 $(srcdir)/evas-software-gdi.pc.in \ 69 $(srcdir)/evas-software-gdi.pc.in \
68 $(srcdir)/evas-software-sdl.pc.in \ 70 $(srcdir)/evas-software-sdl.pc.in \
69 $(srcdir)/evas-software-x11.pc.in $(srcdir)/evas.pc.in \ 71 $(srcdir)/evas-software-x11.pc.in \
72 $(srcdir)/evas-wayland-egl.pc.in \
73 $(srcdir)/evas-wayland-shm.pc.in $(srcdir)/evas.pc.in \
70 $(srcdir)/evas.spec.in $(top_srcdir)/configure ABOUT-NLS \ 74 $(srcdir)/evas.spec.in $(top_srcdir)/configure ABOUT-NLS \
71 AUTHORS COPYING ChangeLog INSTALL NEWS compile config.guess \ 75 AUTHORS COPYING ChangeLog INSTALL NEWS config.guess config.sub \
72 config.sub depcomp install-sh ltmain.sh missing 76 depcomp install-sh ltmain.sh missing
73ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 77ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
74am__aclocal_m4_deps = $(top_srcdir)/m4/efl_attribute.m4 \ 78am__aclocal_m4_deps = $(top_srcdir)/m4/efl_attribute.m4 \
75 $(top_srcdir)/m4/efl_coverage.m4 \ 79 $(top_srcdir)/m4/efl_coverage.m4 \
@@ -97,7 +101,7 @@ CONFIG_CLEAN_FILES = evas-directfb.pc evas-fb.pc evas-opengl-x11.pc \
97 evas-software-gdi.pc evas-software-ddraw.pc \ 101 evas-software-gdi.pc evas-software-ddraw.pc \
98 evas-software-16-ddraw.pc evas-direct3d.pc \ 102 evas-software-16-ddraw.pc evas-direct3d.pc \
99 evas-software-16-wince.pc evas-software-sdl.pc evas-psl1ght.pc \ 103 evas-software-16-wince.pc evas-software-sdl.pc evas-psl1ght.pc \
100 evas.pc evas.spec 104 evas-wayland-shm.pc evas-wayland-egl.pc evas.pc evas.spec
101CONFIG_CLEAN_VPATH_FILES = 105CONFIG_CLEAN_VPATH_FILES =
102am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; 106am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
103am__vpath_adj = case $$p in \ 107am__vpath_adj = case $$p in \
@@ -284,8 +288,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
284PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 288PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
285PIXMAN_LIBS = @PIXMAN_LIBS@ 289PIXMAN_LIBS = @PIXMAN_LIBS@
286PKG_CONFIG = @PKG_CONFIG@ 290PKG_CONFIG = @PKG_CONFIG@
287PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
288PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
289PNG_CFLAGS = @PNG_CFLAGS@ 291PNG_CFLAGS = @PNG_CFLAGS@
290PNG_LIBS = @PNG_LIBS@ 292PNG_LIBS = @PNG_LIBS@
291RANLIB = @RANLIB@ 293RANLIB = @RANLIB@
@@ -302,6 +304,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
302VALGRIND_LIBS = @VALGRIND_LIBS@ 304VALGRIND_LIBS = @VALGRIND_LIBS@
303VERSION = @VERSION@ 305VERSION = @VERSION@
304VMAJ = @VMAJ@ 306VMAJ = @VMAJ@
307WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
308WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
305WIN32_CFLAGS = @WIN32_CFLAGS@ 309WIN32_CFLAGS = @WIN32_CFLAGS@
306WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 310WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
307XCB_CFLAGS = @XCB_CFLAGS@ 311XCB_CFLAGS = @XCB_CFLAGS@
@@ -383,6 +387,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
383evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 387evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
384evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 388evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
385evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 389evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
390evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
391evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
392evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
393evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
386evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 394evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
387evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 395evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
388evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 396evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
@@ -501,6 +509,8 @@ evas-direct3d.pc.in \
501evas-software-16-wince.pc.in \ 509evas-software-16-wince.pc.in \
502evas-software-sdl.pc.in \ 510evas-software-sdl.pc.in \
503evas-psl1ght.pc.in \ 511evas-psl1ght.pc.in \
512evas-wayland-shm.pc.in \
513evas-wayland-egl.pc.in \
504evas.spec.in \ 514evas.spec.in \
505evas.spec \ 515evas.spec \
506m4/efl_attribute.m4 \ 516m4/efl_attribute.m4 \
@@ -522,7 +532,8 @@ pkgconfig_DATA = evas.pc $(am__append_1) $(am__append_2) \
522 $(am__append_6) $(am__append_7) $(am__append_8) \ 532 $(am__append_6) $(am__append_7) $(am__append_8) \
523 $(am__append_9) $(am__append_10) $(am__append_11) \ 533 $(am__append_9) $(am__append_10) $(am__append_11) \
524 $(am__append_12) $(am__append_13) $(am__append_14) \ 534 $(am__append_12) $(am__append_13) $(am__append_14) \
525 $(am__append_15) $(am__append_16) 535 $(am__append_15) $(am__append_16) $(am__append_17) \
536 $(am__append_18)
526all: config.h 537all: config.h
527 $(MAKE) $(AM_MAKEFLAGS) all-recursive 538 $(MAKE) $(AM_MAKEFLAGS) all-recursive
528 539
@@ -610,6 +621,10 @@ evas-software-sdl.pc: $(top_builddir)/config.status $(srcdir)/evas-software-sdl.
610 cd $(top_builddir) && $(SHELL) ./config.status $@ 621 cd $(top_builddir) && $(SHELL) ./config.status $@
611evas-psl1ght.pc: $(top_builddir)/config.status $(srcdir)/evas-psl1ght.pc.in 622evas-psl1ght.pc: $(top_builddir)/config.status $(srcdir)/evas-psl1ght.pc.in
612 cd $(top_builddir) && $(SHELL) ./config.status $@ 623 cd $(top_builddir) && $(SHELL) ./config.status $@
624evas-wayland-shm.pc: $(top_builddir)/config.status $(srcdir)/evas-wayland-shm.pc.in
625 cd $(top_builddir) && $(SHELL) ./config.status $@
626evas-wayland-egl.pc: $(top_builddir)/config.status $(srcdir)/evas-wayland-egl.pc.in
627 cd $(top_builddir) && $(SHELL) ./config.status $@
613evas.pc: $(top_builddir)/config.status $(srcdir)/evas.pc.in 628evas.pc: $(top_builddir)/config.status $(srcdir)/evas.pc.in
614 cd $(top_builddir) && $(SHELL) ./config.status $@ 629 cd $(top_builddir) && $(SHELL) ./config.status $@
615evas.spec: $(top_builddir)/config.status $(srcdir)/evas.spec.in 630evas.spec: $(top_builddir)/config.status $(srcdir)/evas.spec.in
diff --git a/libraries/evas/NEWS b/libraries/evas/NEWS
index afddb46..945fd96 100644
--- a/libraries/evas/NEWS
+++ b/libraries/evas/NEWS
@@ -1,3 +1,18 @@
1Evas 1.2.0
2
3Changes since Evas 1.1.0:
4-------------------------
5
6Additions:
7
8 * Textblock now supports self-closing tags, i.e <br/>. Those should be used instead of the old <br> way.
9 * Shm engine for drawing in Wayland.
10 * evas_object_smart_callback_del_full API.
11
12Improvements:
13
14 * Use Eina_File mmap infrastructure for bmp, ico, pmaps, psd, wbmp and xpm file access.
15
1Evas 1.1.0 16Evas 1.1.0
2 17
3Changes since Evas 1.0.0: 18Changes since Evas 1.0.0:
diff --git a/libraries/evas/aclocal.m4 b/libraries/evas/aclocal.m4
index f74cf11..a816a9b 100644
--- a/libraries/evas/aclocal.m4
+++ b/libraries/evas/aclocal.m4
@@ -13,14 +13,13 @@
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.67],, 16m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.65],,
17[m4_warning([this file was generated for autoconf 2.67. 17[m4_warning([this file was generated for autoconf 2.65.
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)
24# 23#
25# Copyright © 2004 Scott James Remnant <scott@netsplit.com>. 24# Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
26# 25#
@@ -48,10 +47,7 @@ To do so, use the procedure documented by the package, typically `autoreconf'.])
48AC_DEFUN([PKG_PROG_PKG_CONFIG], 47AC_DEFUN([PKG_PROG_PKG_CONFIG],
49[m4_pattern_forbid([^_?PKG_[A-Z_]+$]) 48[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
50m4_pattern_allow([^PKG_CONFIG(_PATH)?$]) 49m4_pattern_allow([^PKG_CONFIG(_PATH)?$])
51AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) 50AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl
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
55if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then 51if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
56 AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) 52 AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
57fi 53fi
@@ -64,6 +60,7 @@ if test -n "$PKG_CONFIG"; then
64 AC_MSG_RESULT([no]) 60 AC_MSG_RESULT([no])
65 PKG_CONFIG="" 61 PKG_CONFIG=""
66 fi 62 fi
63
67fi[]dnl 64fi[]dnl
68])# PKG_PROG_PKG_CONFIG 65])# PKG_PROG_PKG_CONFIG
69 66
@@ -72,31 +69,34 @@ fi[]dnl
72# Check to see whether a particular set of modules exists. Similar 69# Check to see whether a particular set of modules exists. Similar
73# to PKG_CHECK_MODULES(), but does not set variables or print errors. 70# to PKG_CHECK_MODULES(), but does not set variables or print errors.
74# 71#
75# Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) 72#
76# only at the first occurence in configure.ac, so if the first place 73# Similar to PKG_CHECK_MODULES, make sure that the first instance of
77# it's called might be skipped (such as if it is within an "if", you 74# this or PKG_CHECK_MODULES is called, or make sure to call
78# have to call PKG_CHECK_EXISTS manually 75# PKG_CHECK_EXISTS manually
79# -------------------------------------------------------------- 76# --------------------------------------------------------------
80AC_DEFUN([PKG_CHECK_EXISTS], 77AC_DEFUN([PKG_CHECK_EXISTS],
81[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl 78[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
82if test -n "$PKG_CONFIG" && \ 79if test -n "$PKG_CONFIG" && \
83 AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then 80 AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
84 m4_default([$2], [:]) 81 m4_ifval([$2], [$2], [:])
85m4_ifvaln([$3], [else 82m4_ifvaln([$3], [else
86 $3])dnl 83 $3])dnl
87fi]) 84fi])
88 85
86
89# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) 87# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
90# --------------------------------------------- 88# ---------------------------------------------
91m4_define([_PKG_CONFIG], 89m4_define([_PKG_CONFIG],
92[if test -n "$$1"; then 90[if test -n "$PKG_CONFIG"; then
93 pkg_cv_[]$1="$$1" 91 if test -n "$$1"; then
94 elif test -n "$PKG_CONFIG"; then 92 pkg_cv_[]$1="$$1"
95 PKG_CHECK_EXISTS([$3], 93 else
96 [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`], 94 PKG_CHECK_EXISTS([$3],
97 [pkg_failed=yes]) 95 [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`],
98 else 96 [pkg_failed=yes])
99 pkg_failed=untried 97 fi
98else
99 pkg_failed=untried
100fi[]dnl 100fi[]dnl
101])# _PKG_CONFIG 101])# _PKG_CONFIG
102 102
@@ -138,17 +138,16 @@ 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])
142 _PKG_SHORT_ERRORS_SUPPORTED 141 _PKG_SHORT_ERRORS_SUPPORTED
143 if test $_pkg_short_errors_supported = yes; then 142 if test $_pkg_short_errors_supported = yes; then
144 $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1` 143 $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$2"`
145 else 144 else
146 $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1` 145 $1[]_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"`
147 fi 146 fi
148 # Put the nasty error message in config.log where it belongs 147 # Put the nasty error message in config.log where it belongs
149 echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD 148 echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
150 149
151 m4_default([$4], [AC_MSG_ERROR( 150 ifelse([$4], , [AC_MSG_ERROR(dnl
152[Package requirements ($2) were not met: 151[Package requirements ($2) were not met:
153 152
154$$1_PKG_ERRORS 153$$1_PKG_ERRORS
@@ -156,24 +155,25 @@ $$1_PKG_ERRORS
156Consider adjusting the PKG_CONFIG_PATH environment variable if you 155Consider adjusting the PKG_CONFIG_PATH environment variable if you
157installed software in a non-standard prefix. 156installed software in a non-standard prefix.
158 157
159_PKG_TEXT])[]dnl 158_PKG_TEXT
160 ]) 159])],
160 [AC_MSG_RESULT([no])
161 $4])
161elif test $pkg_failed = untried; then 162elif test $pkg_failed = untried; then
162 AC_MSG_RESULT([no]) 163 ifelse([$4], , [AC_MSG_FAILURE(dnl
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/>.])[]dnl 170To get pkg-config, see <http://pkg-config.freedesktop.org/>.])],
171 ]) 171 [$4])
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 $3 176 ifelse([$3], , :, [$3])
177fi[]dnl 177fi[]dnl
178])# PKG_CHECK_MODULES 178])# PKG_CHECK_MODULES
179 179
diff --git a/libraries/evas/compile b/libraries/evas/compile
deleted file mode 100755
index 1b1d232..0000000
--- a/libraries/evas/compile
+++ /dev/null
@@ -1,142 +0,0 @@
1#! /bin/sh
2# Wrapper for compilers which do not understand `-c -o'.
3
4scriptversion=2005-05-14.22
5
6# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
7# Written by Tom Tromey <tromey@cygnus.com>.
8#
9# This program is free software; you can redistribute it and/or modify
10# it under the terms of the GNU General Public License as published by
11# the Free Software Foundation; either version 2, or (at your option)
12# any later version.
13#
14# This program is distributed in the hope that it will be useful,
15# but WITHOUT ANY WARRANTY; without even the implied warranty of
16# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17# GNU General Public License for more details.
18#
19# You should have received a copy of the GNU General Public License
20# along with this program; if not, write to the Free Software
21# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
22
23# As a special exception to the GNU General Public License, if you
24# distribute this file as part of a program that contains a
25# configuration script generated by Autoconf, you may include it under
26# the same distribution terms that you use for the rest of that program.
27
28# This file is maintained in Automake, please report
29# bugs to <bug-automake@gnu.org> or send patches to
30# <automake-patches@gnu.org>.
31
32case $1 in
33 '')
34 echo "$0: No command. Try \`$0 --help' for more information." 1>&2
35 exit 1;
36 ;;
37 -h | --h*)
38 cat <<\EOF
39Usage: compile [--help] [--version] PROGRAM [ARGS]
40
41Wrapper for compilers which do not understand `-c -o'.
42Remove `-o dest.o' from ARGS, run PROGRAM with the remaining
43arguments, and rename the output as expected.
44
45If you are trying to build a whole package this is not the
46right script to run: please start by reading the file `INSTALL'.
47
48Report bugs to <bug-automake@gnu.org>.
49EOF
50 exit $?
51 ;;
52 -v | --v*)
53 echo "compile $scriptversion"
54 exit $?
55 ;;
56esac
57
58ofile=
59cfile=
60eat=
61
62for arg
63do
64 if test -n "$eat"; then
65 eat=
66 else
67 case $1 in
68 -o)
69 # configure might choose to run compile as `compile cc -o foo foo.c'.
70 # So we strip `-o arg' only if arg is an object.
71 eat=1
72 case $2 in
73 *.o | *.obj)
74 ofile=$2
75 ;;
76 *)
77 set x "$@" -o "$2"
78 shift
79 ;;
80 esac
81 ;;
82 *.c)
83 cfile=$1
84 set x "$@" "$1"
85 shift
86 ;;
87 *)
88 set x "$@" "$1"
89 shift
90 ;;
91 esac
92 fi
93 shift
94done
95
96if test -z "$ofile" || test -z "$cfile"; then
97 # If no `-o' option was seen then we might have been invoked from a
98 # pattern rule where we don't need one. That is ok -- this is a
99 # normal compilation that the losing compiler can handle. If no
100 # `.c' file was seen then we are probably linking. That is also
101 # ok.
102 exec "$@"
103fi
104
105# Name of file we expect compiler to create.
106cofile=`echo "$cfile" | sed -e 's|^.*/||' -e 's/\.c$/.o/'`
107
108# Create the lock directory.
109# Note: use `[/.-]' here to ensure that we don't use the same name
110# that we are using for the .o file. Also, base the name on the expected
111# object file name, since that is what matters with a parallel build.
112lockdir=`echo "$cofile" | sed -e 's|[/.-]|_|g'`.d
113while true; do
114 if mkdir "$lockdir" >/dev/null 2>&1; then
115 break
116 fi
117 sleep 1
118done
119# FIXME: race condition here if user kills between mkdir and trap.
120trap "rmdir '$lockdir'; exit 1" 1 2 15
121
122# Run the compile.
123"$@"
124ret=$?
125
126if test -f "$cofile"; then
127 mv "$cofile" "$ofile"
128elif test -f "${cofile}bj"; then
129 mv "${cofile}bj" "$ofile"
130fi
131
132rmdir "$lockdir"
133exit $ret
134
135# Local Variables:
136# mode: shell-script
137# sh-indentation: 2
138# eval: (add-hook 'write-file-hooks 'time-stamp)
139# time-stamp-start: "scriptversion="
140# time-stamp-format: "%:y-%02m-%02d.%02H"
141# time-stamp-end: "$"
142# End:
diff --git a/libraries/evas/config.h.in b/libraries/evas/config.h.in
index 95bb668..84f6c88 100644
--- a/libraries/evas/config.h.in
+++ b/libraries/evas/config.h.in
@@ -182,6 +182,12 @@
182/* Build software Xlib backend */ 182/* Build software Xlib backend */
183#undef BUILD_ENGINE_SOFTWARE_XLIB 183#undef BUILD_ENGINE_SOFTWARE_XLIB
184 184
185/* Wayland Egl rendering backend */
186#undef BUILD_ENGINE_WAYLAND_EGL
187
188/* Wayland Shm rendering backend */
189#undef BUILD_ENGINE_WAYLAND_SHM
190
185/* EET Font Loader Support */ 191/* EET Font Loader Support */
186#undef BUILD_FONT_LOADER_EET 192#undef BUILD_FONT_LOADER_EET
187 193
@@ -410,6 +416,12 @@
410/* Build Tiff image loader inside libevas */ 416/* Build Tiff image loader inside libevas */
411#undef EVAS_STATIC_BUILD_TIFF 417#undef EVAS_STATIC_BUILD_TIFF
412 418
419/* Build wayland-egl engine inside libevas */
420#undef EVAS_STATIC_BUILD_WAYLAND_EGL
421
422/* Build wayland-shm engine inside libevas */
423#undef EVAS_STATIC_BUILD_WAYLAND_SHM
424
413/* Build WBMP image loader inside libevas */ 425/* Build WBMP image loader inside libevas */
414#undef EVAS_STATIC_BUILD_WBMP 426#undef EVAS_STATIC_BUILD_WBMP
415 427
@@ -510,6 +522,9 @@
510/* Define to 1 if the system has the type `struct sigaction'. */ 522/* Define to 1 if the system has the type `struct sigaction'. */
511#undef HAVE_STRUCT_SIGACTION 523#undef HAVE_STRUCT_SIGACTION
512 524
525/* Define to 1 if you have the <sys/mman.h> header file. */
526#undef HAVE_SYS_MMAN_H
527
513/* Define to 1 if you have the <sys/param.h> header file. */ 528/* Define to 1 if you have the <sys/param.h> header file. */
514#undef HAVE_SYS_PARAM_H 529#undef HAVE_SYS_PARAM_H
515 530
@@ -565,6 +580,24 @@
565/* default value since PATH_MAX is not defined */ 580/* default value since PATH_MAX is not defined */
566#undef PATH_MAX 581#undef PATH_MAX
567 582
583/* Allow pixman to render fonts */
584#undef PIXMAN_FONT
585
586/* Allow pixman to render images */
587#undef PIXMAN_IMAGE
588
589/* Allow pixman to render image sampled scaling */
590#undef PIXMAN_IMAGE_SCALE_SAMPLE
591
592/* Allow pixman to render lines */
593#undef PIXMAN_LINE
594
595/* Allow pixman to render polys */
596#undef PIXMAN_POLY
597
598/* Allow pixman to render rects */
599#undef PIXMAN_RECT
600
568/* The size of `Eina_Unicode', as computed by sizeof. */ 601/* The size of `Eina_Unicode', as computed by sizeof. */
569#undef SIZEOF_EINA_UNICODE 602#undef SIZEOF_EINA_UNICODE
570 603
@@ -582,6 +615,9 @@
582/* Define to 1 if you have the ANSI C header files. */ 615/* Define to 1 if you have the ANSI C header files. */
583#undef STDC_HEADERS 616#undef STDC_HEADERS
584 617
618/* Enable tiled rotate algorithm */
619#undef TILE_ROTATE
620
585/* Enable extensions on AIX 3, Interix. */ 621/* Enable extensions on AIX 3, Interix. */
586#ifndef _ALL_SOURCE 622#ifndef _ALL_SOURCE
587# undef _ALL_SOURCE 623# undef _ALL_SOURCE
diff --git a/libraries/evas/configure b/libraries/evas/configure
index df1fca7..8ab6964 100755
--- a/libraries/evas/configure
+++ b/libraries/evas/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.67 for evas 1.1.0. 3# Generated by GNU Autoconf 2.65 for evas 1.1.99.67344.
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, 2010 Free Software 9# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
10# Foundation, Inc. 10# 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 STATUS ERROR [LINENO LOG_FD] 362# as_fn_error 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=$1; test $as_status -eq 0 && as_status=1 369 as_status=$?; test $as_status -eq 0 && as_status=1
370 if test "$4"; then 370 if test "$3"; then
371 as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 371 as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
372 $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 372 $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
373 fi 373 fi
374 $as_echo "$as_me: error: $2" >&2 374 $as_echo "$as_me: error: $1" >&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, old GNU/Linux) returns a bogus exit status, 685# hostname on some systems (SVR3.2, 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='evas' 702PACKAGE_NAME='evas'
703PACKAGE_TARNAME='evas' 703PACKAGE_TARNAME='evas'
704PACKAGE_VERSION='1.1.0' 704PACKAGE_VERSION='1.1.99.67344'
705PACKAGE_STRING='evas 1.1.0' 705PACKAGE_STRING='evas 1.1.99.67344'
706PACKAGE_BUGREPORT='enlightenment-devel@lists.sourceforge.net' 706PACKAGE_BUGREPORT='enlightenment-devel@lists.sourceforge.net'
707PACKAGE_URL='' 707PACKAGE_URL=''
708 708
@@ -937,6 +937,20 @@ evas_engine_software_xcb_libs
937evas_engine_software_xcb_cflags 937evas_engine_software_xcb_cflags
938EVAS_STATIC_BUILD_SOFTWARE_GENERIC_FALSE 938EVAS_STATIC_BUILD_SOFTWARE_GENERIC_FALSE
939EVAS_STATIC_BUILD_SOFTWARE_GENERIC_TRUE 939EVAS_STATIC_BUILD_SOFTWARE_GENERIC_TRUE
940EVAS_STATIC_BUILD_WAYLAND_EGL_FALSE
941EVAS_STATIC_BUILD_WAYLAND_EGL_TRUE
942BUILD_ENGINE_WAYLAND_EGL_FALSE
943BUILD_ENGINE_WAYLAND_EGL_TRUE
944evas_engine_wayland_egl_libs
945evas_engine_wayland_egl_cflags
946WAYLAND_EGL_LIBS
947WAYLAND_EGL_CFLAGS
948EVAS_STATIC_BUILD_WAYLAND_SHM_FALSE
949EVAS_STATIC_BUILD_WAYLAND_SHM_TRUE
950BUILD_ENGINE_WAYLAND_SHM_FALSE
951BUILD_ENGINE_WAYLAND_SHM_TRUE
952evas_engine_wayland_shm_libs
953evas_engine_wayland_shm_cflags
940EVAS_STATIC_BUILD_SOFTWARE_16_SDL_FALSE 954EVAS_STATIC_BUILD_SOFTWARE_16_SDL_FALSE
941EVAS_STATIC_BUILD_SOFTWARE_16_SDL_TRUE 955EVAS_STATIC_BUILD_SOFTWARE_16_SDL_TRUE
942BUILD_ENGINE_SOFTWARE_16_SDL_FALSE 956BUILD_ENGINE_SOFTWARE_16_SDL_FALSE
@@ -1072,8 +1086,6 @@ EFL_BUILD_DOC_TRUE
1072efl_doxygen 1086efl_doxygen
1073efl_have_doxygen 1087efl_have_doxygen
1074pkgconfig_requires_private 1088pkgconfig_requires_private
1075PKG_CONFIG_LIBDIR
1076PKG_CONFIG_PATH
1077PKG_CONFIG 1089PKG_CONFIG
1078CXXCPP 1090CXXCPP
1079am__fastdepCXX_FALSE 1091am__fastdepCXX_FALSE
@@ -1221,6 +1233,13 @@ enable_liblinebreak
1221enable_fribidi 1233enable_fribidi
1222enable_harfbuzz 1234enable_harfbuzz
1223enable_pixman 1235enable_pixman
1236enable_pixman_font
1237enable_pixman_rect
1238enable_pixman_line
1239enable_pixman_poly
1240enable_pixman_image
1241enable_pixman_image_scale_sample
1242enable_tile_rotate
1224enable_evas_cserve 1243enable_evas_cserve
1225enable_gl_flavor_gles 1244enable_gl_flavor_gles
1226enable_gles_variety_sgx 1245enable_gles_variety_sgx
@@ -1241,6 +1260,8 @@ with_x
1241enable_software_16_ddraw 1260enable_software_16_ddraw
1242enable_software_16_wince 1261enable_software_16_wince
1243enable_software_16_sdl 1262enable_software_16_sdl
1263enable_wayland_shm
1264enable_wayland_egl
1244enable_sdl_primitive 1265enable_sdl_primitive
1245enable_static_software_generic 1266enable_static_software_generic
1246enable_software_xcb 1267enable_software_xcb
@@ -1338,8 +1359,6 @@ CXXFLAGS
1338CCC 1359CCC
1339CXXCPP 1360CXXCPP
1340PKG_CONFIG 1361PKG_CONFIG
1341PKG_CONFIG_PATH
1342PKG_CONFIG_LIBDIR
1343EVIL_CFLAGS 1362EVIL_CFLAGS
1344EVIL_LIBS 1363EVIL_LIBS
1345EINA_CFLAGS 1364EINA_CFLAGS
@@ -1363,6 +1382,8 @@ DIRECTFB_LIBS
1363XCB_CFLAGS 1382XCB_CFLAGS
1364XCB_LIBS 1383XCB_LIBS
1365XMKMF 1384XMKMF
1385WAYLAND_EGL_CFLAGS
1386WAYLAND_EGL_LIBS
1366XCB_GL_CFLAGS 1387XCB_GL_CFLAGS
1367XCB_GL_LIBS 1388XCB_GL_LIBS
1368EDB_CFLAGS 1389EDB_CFLAGS
@@ -1445,9 +1466,8 @@ do
1445 fi 1466 fi
1446 1467
1447 case $ac_option in 1468 case $ac_option in
1448 *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; 1469 *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
1449 *=) ac_optarg= ;; 1470 *) ac_optarg=yes ;;
1450 *) ac_optarg=yes ;;
1451 esac 1471 esac
1452 1472
1453 # Accept the important Cygnus configure options, so we can diagnose typos. 1473 # Accept the important Cygnus configure options, so we can diagnose typos.
@@ -1492,7 +1512,7 @@ do
1492 ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` 1512 ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
1493 # Reject names that are not valid shell variable names. 1513 # Reject names that are not valid shell variable names.
1494 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && 1514 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
1495 as_fn_error $? "invalid feature name: $ac_useropt" 1515 as_fn_error "invalid feature name: $ac_useropt"
1496 ac_useropt_orig=$ac_useropt 1516 ac_useropt_orig=$ac_useropt
1497 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` 1517 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
1498 case $ac_user_opts in 1518 case $ac_user_opts in
@@ -1518,7 +1538,7 @@ do
1518 ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` 1538 ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
1519 # Reject names that are not valid shell variable names. 1539 # Reject names that are not valid shell variable names.
1520 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && 1540 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
1521 as_fn_error $? "invalid feature name: $ac_useropt" 1541 as_fn_error "invalid feature name: $ac_useropt"
1522 ac_useropt_orig=$ac_useropt 1542 ac_useropt_orig=$ac_useropt
1523 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` 1543 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
1524 case $ac_user_opts in 1544 case $ac_user_opts in
@@ -1722,7 +1742,7 @@ do
1722 ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` 1742 ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
1723 # Reject names that are not valid shell variable names. 1743 # Reject names that are not valid shell variable names.
1724 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && 1744 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
1725 as_fn_error $? "invalid package name: $ac_useropt" 1745 as_fn_error "invalid package name: $ac_useropt"
1726 ac_useropt_orig=$ac_useropt 1746 ac_useropt_orig=$ac_useropt
1727 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` 1747 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
1728 case $ac_user_opts in 1748 case $ac_user_opts in
@@ -1738,7 +1758,7 @@ do
1738 ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` 1758 ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
1739 # Reject names that are not valid shell variable names. 1759 # Reject names that are not valid shell variable names.
1740 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && 1760 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
1741 as_fn_error $? "invalid package name: $ac_useropt" 1761 as_fn_error "invalid package name: $ac_useropt"
1742 ac_useropt_orig=$ac_useropt 1762 ac_useropt_orig=$ac_useropt
1743 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` 1763 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
1744 case $ac_user_opts in 1764 case $ac_user_opts in
@@ -1768,8 +1788,8 @@ do
1768 | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) 1788 | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
1769 x_libraries=$ac_optarg ;; 1789 x_libraries=$ac_optarg ;;
1770 1790
1771 -*) as_fn_error $? "unrecognized option: \`$ac_option' 1791 -*) as_fn_error "unrecognized option: \`$ac_option'
1772Try \`$0 --help' for more information" 1792Try \`$0 --help' for more information."
1773 ;; 1793 ;;
1774 1794
1775 *=*) 1795 *=*)
@@ -1777,7 +1797,7 @@ Try \`$0 --help' for more information"
1777 # Reject names that are not valid shell variable names. 1797 # Reject names that are not valid shell variable names.
1778 case $ac_envvar in #( 1798 case $ac_envvar in #(
1779 '' | [0-9]* | *[!_$as_cr_alnum]* ) 1799 '' | [0-9]* | *[!_$as_cr_alnum]* )
1780 as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; 1800 as_fn_error "invalid variable name: \`$ac_envvar'" ;;
1781 esac 1801 esac
1782 eval $ac_envvar=\$ac_optarg 1802 eval $ac_envvar=\$ac_optarg
1783 export $ac_envvar ;; 1803 export $ac_envvar ;;
@@ -1795,13 +1815,13 @@ done
1795 1815
1796if test -n "$ac_prev"; then 1816if test -n "$ac_prev"; then
1797 ac_option=--`echo $ac_prev | sed 's/_/-/g'` 1817 ac_option=--`echo $ac_prev | sed 's/_/-/g'`
1798 as_fn_error $? "missing argument to $ac_option" 1818 as_fn_error "missing argument to $ac_option"
1799fi 1819fi
1800 1820
1801if test -n "$ac_unrecognized_opts"; then 1821if test -n "$ac_unrecognized_opts"; then
1802 case $enable_option_checking in 1822 case $enable_option_checking in
1803 no) ;; 1823 no) ;;
1804 fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; 1824 fatal) as_fn_error "unrecognized options: $ac_unrecognized_opts" ;;
1805 *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; 1825 *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
1806 esac 1826 esac
1807fi 1827fi
@@ -1824,7 +1844,7 @@ do
1824 [\\/$]* | ?:[\\/]* ) continue;; 1844 [\\/$]* | ?:[\\/]* ) continue;;
1825 NONE | '' ) case $ac_var in *prefix ) continue;; esac;; 1845 NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
1826 esac 1846 esac
1827 as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" 1847 as_fn_error "expected an absolute directory name for --$ac_var: $ac_val"
1828done 1848done
1829 1849
1830# There might be people who depend on the old broken behavior: `$host' 1850# There might be people who depend on the old broken behavior: `$host'
@@ -1838,8 +1858,8 @@ target=$target_alias
1838if test "x$host_alias" != x; then 1858if test "x$host_alias" != x; then
1839 if test "x$build_alias" = x; then 1859 if test "x$build_alias" = x; then
1840 cross_compiling=maybe 1860 cross_compiling=maybe
1841 $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host. 1861 $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
1842 If a cross compiler is detected then cross compile mode will be used" >&2 1862 If a cross compiler is detected then cross compile mode will be used." >&2
1843 elif test "x$build_alias" != "x$host_alias"; then 1863 elif test "x$build_alias" != "x$host_alias"; then
1844 cross_compiling=yes 1864 cross_compiling=yes
1845 fi 1865 fi
@@ -1854,9 +1874,9 @@ test "$silent" = yes && exec 6>/dev/null
1854ac_pwd=`pwd` && test -n "$ac_pwd" && 1874ac_pwd=`pwd` && test -n "$ac_pwd" &&
1855ac_ls_di=`ls -di .` && 1875ac_ls_di=`ls -di .` &&
1856ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || 1876ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
1857 as_fn_error $? "working directory cannot be determined" 1877 as_fn_error "working directory cannot be determined"
1858test "X$ac_ls_di" = "X$ac_pwd_ls_di" || 1878test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
1859 as_fn_error $? "pwd does not report name of working directory" 1879 as_fn_error "pwd does not report name of working directory"
1860 1880
1861 1881
1862# Find the source files, if location was not specified. 1882# Find the source files, if location was not specified.
@@ -1895,11 +1915,11 @@ else
1895fi 1915fi
1896if test ! -r "$srcdir/$ac_unique_file"; then 1916if test ! -r "$srcdir/$ac_unique_file"; then
1897 test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." 1917 test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
1898 as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" 1918 as_fn_error "cannot find sources ($ac_unique_file) in $srcdir"
1899fi 1919fi
1900ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" 1920ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
1901ac_abs_confdir=`( 1921ac_abs_confdir=`(
1902 cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" 1922 cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error "$ac_msg"
1903 pwd)` 1923 pwd)`
1904# When building in place, set srcdir=. 1924# When building in place, set srcdir=.
1905if test "$ac_abs_confdir" = "$ac_pwd"; then 1925if test "$ac_abs_confdir" = "$ac_pwd"; then
@@ -1925,7 +1945,7 @@ if test "$ac_init_help" = "long"; then
1925 # Omit some internal or obsolete options to make the list less imposing. 1945 # Omit some internal or obsolete options to make the list less imposing.
1926 # This message is too long to be a string in the A/UX 3.1 sh. 1946 # This message is too long to be a string in the A/UX 3.1 sh.
1927 cat <<_ACEOF 1947 cat <<_ACEOF
1928\`configure' configures evas 1.1.0 to adapt to many kinds of systems. 1948\`configure' configures evas 1.1.99.67344 to adapt to many kinds of systems.
1929 1949
1930Usage: $0 [OPTION]... [VAR=VALUE]... 1950Usage: $0 [OPTION]... [VAR=VALUE]...
1931 1951
@@ -1939,7 +1959,7 @@ Configuration:
1939 --help=short display options specific to this package 1959 --help=short display options specific to this package
1940 --help=recursive display the short help of all the included packages 1960 --help=recursive display the short help of all the included packages
1941 -V, --version display version information and exit 1961 -V, --version display version information and exit
1942 -q, --quiet, --silent do not print \`checking ...' messages 1962 -q, --quiet, --silent do not print \`checking...' messages
1943 --cache-file=FILE cache test results in FILE [disabled] 1963 --cache-file=FILE cache test results in FILE [disabled]
1944 -C, --config-cache alias for \`--cache-file=config.cache' 1964 -C, --config-cache alias for \`--cache-file=config.cache'
1945 -n, --no-create do not create output files 1965 -n, --no-create do not create output files
@@ -1999,7 +2019,7 @@ fi
1999 2019
2000if test -n "$ac_init_help"; then 2020if test -n "$ac_init_help"; then
2001 case $ac_init_help in 2021 case $ac_init_help in
2002 short | recursive ) echo "Configuration of evas 1.1.0:";; 2022 short | recursive ) echo "Configuration of evas 1.1.99.67344:";;
2003 esac 2023 esac
2004 cat <<\_ACEOF 2024 cat <<\_ACEOF
2005 2025
@@ -2027,8 +2047,16 @@ Optional Features:
2027 [default=enabled] 2047 [default=enabled]
2028 --disable-harfbuzz disable complex text shaping and layouting support. 2048 --disable-harfbuzz disable complex text shaping and layouting support.
2029 [default=enabled] 2049 [default=enabled]
2030 --disable-pixman disable pixman for software rendering. 2050 --enable-pixman enable pixman for software rendering.
2031 [default=enabled] 2051 [default=enabled]
2052 --enable-pixman-font Allow pixman to render fonts
2053 --enable-pixman-rect Allow pixman to render rects
2054 --enable-pixman-line Allow pixman to render lines
2055 --enable-pixman-poly Allow pixman to render polys
2056 --enable-pixman-image Allow pixman to render images
2057 --enable-pixman-image-scale-sample
2058 Allow pixman to render sampled scaled images
2059 --enable-tile-rotate Enable tiled rotate algorithm
2032 --disable-evas-cserve disable shared cache server support. 2060 --disable-evas-cserve disable shared cache server support.
2033 [default=enabled] 2061 [default=enabled]
2034 --enable-gl-flavor-gles enable gles falvor of gl instead of standard 2062 --enable-gl-flavor-gles enable gles falvor of gl instead of standard
@@ -2056,6 +2084,8 @@ Optional Features:
2056 enable Software Windows CE 16 bits rendering backend 2084 enable Software Windows CE 16 bits rendering backend
2057 --enable-software-16-sdl 2085 --enable-software-16-sdl
2058 enable Software SDL 16 bits rendering backend 2086 enable Software SDL 16 bits rendering backend
2087 --enable-wayland-shm enable Wayland Shm rendering backend
2088 --enable-wayland-egl enable Wayland Egl rendering backend
2059 --enable-sdl-primitive 2089 --enable-sdl-primitive
2060 --enable-static-software-generic 2090 --enable-static-software-generic
2061 Build software generic engine as part of libevas 2091 Build software generic engine as part of libevas
@@ -2229,10 +2259,6 @@ Some influential environment variables:
2229 CXXFLAGS C++ compiler flags 2259 CXXFLAGS C++ compiler flags
2230 CXXCPP C++ preprocessor 2260 CXXCPP C++ preprocessor
2231 PKG_CONFIG path to pkg-config utility 2261 PKG_CONFIG path to pkg-config utility
2232 PKG_CONFIG_PATH
2233 directories to add to pkg-config's search path
2234 PKG_CONFIG_LIBDIR
2235 path overriding pkg-config's built-in search path
2236 EVIL_CFLAGS C compiler flags for EVIL, overriding pkg-config 2262 EVIL_CFLAGS C compiler flags for EVIL, overriding pkg-config
2237 EVIL_LIBS linker flags for EVIL, overriding pkg-config 2263 EVIL_LIBS linker flags for EVIL, overriding pkg-config
2238 EINA_CFLAGS C compiler flags for EINA, overriding pkg-config 2264 EINA_CFLAGS C compiler flags for EINA, overriding pkg-config
@@ -2268,6 +2294,10 @@ Some influential environment variables:
2268 XCB_CFLAGS C compiler flags for XCB, overriding pkg-config 2294 XCB_CFLAGS C compiler flags for XCB, overriding pkg-config
2269 XCB_LIBS linker flags for XCB, overriding pkg-config 2295 XCB_LIBS linker flags for XCB, overriding pkg-config
2270 XMKMF Path to xmkmf, Makefile generator for X Window System 2296 XMKMF Path to xmkmf, Makefile generator for X Window System
2297 WAYLAND_EGL_CFLAGS
2298 C compiler flags for WAYLAND_EGL, overriding pkg-config
2299 WAYLAND_EGL_LIBS
2300 linker flags for WAYLAND_EGL, overriding pkg-config
2271 XCB_GL_CFLAGS 2301 XCB_GL_CFLAGS
2272 C compiler flags for XCB_GL, overriding pkg-config 2302 C compiler flags for XCB_GL, overriding pkg-config
2273 XCB_GL_LIBS linker flags for XCB_GL, overriding pkg-config 2303 XCB_GL_LIBS linker flags for XCB_GL, overriding pkg-config
@@ -2361,10 +2391,10 @@ fi
2361test -n "$ac_init_help" && exit $ac_status 2391test -n "$ac_init_help" && exit $ac_status
2362if $ac_init_version; then 2392if $ac_init_version; then
2363 cat <<\_ACEOF 2393 cat <<\_ACEOF
2364evas configure 1.1.0 2394evas configure 1.1.99.67344
2365generated by GNU Autoconf 2.67 2395generated by GNU Autoconf 2.65
2366 2396
2367Copyright (C) 2010 Free Software Foundation, Inc. 2397Copyright (C) 2009 Free Software Foundation, Inc.
2368This configure script is free software; the Free Software Foundation 2398This configure script is free software; the Free Software Foundation
2369gives unlimited permission to copy, distribute and modify it. 2399gives unlimited permission to copy, distribute and modify it.
2370_ACEOF 2400_ACEOF
@@ -2434,7 +2464,7 @@ $as_echo "$ac_try_echo"; } >&5
2434 mv -f conftest.er1 conftest.err 2464 mv -f conftest.er1 conftest.err
2435 fi 2465 fi
2436 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 2466 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
2437 test $ac_status = 0; } > conftest.i && { 2467 test $ac_status = 0; } >/dev/null && {
2438 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || 2468 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
2439 test ! -s conftest.err 2469 test ! -s conftest.err
2440 }; then : 2470 }; then :
@@ -2458,10 +2488,10 @@ fi
2458ac_fn_c_check_header_mongrel () 2488ac_fn_c_check_header_mongrel ()
2459{ 2489{
2460 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 2490 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
2461 if eval "test \"\${$3+set}\"" = set; then : 2491 if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
2462 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 2492 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
2463$as_echo_n "checking for $2... " >&6; } 2493$as_echo_n "checking for $2... " >&6; }
2464if eval "test \"\${$3+set}\"" = set; then : 2494if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
2465 $as_echo_n "(cached) " >&6 2495 $as_echo_n "(cached) " >&6
2466fi 2496fi
2467eval ac_res=\$$3 2497eval ac_res=\$$3
@@ -2497,7 +2527,7 @@ if ac_fn_c_try_cpp "$LINENO"; then :
2497else 2527else
2498 ac_header_preproc=no 2528 ac_header_preproc=no
2499fi 2529fi
2500rm -f conftest.err conftest.i conftest.$ac_ext 2530rm -f conftest.err conftest.$ac_ext
2501{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 2531{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
2502$as_echo "$ac_header_preproc" >&6; } 2532$as_echo "$ac_header_preproc" >&6; }
2503 2533
@@ -2520,15 +2550,17 @@ $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
2520$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} 2550$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;}
2521 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 2551 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
2522$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} 2552$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
2523( $as_echo "## -------------------------------------------------------- ## 2553( cat <<\_ASBOX
2554## -------------------------------------------------------- ##
2524## Report this to enlightenment-devel@lists.sourceforge.net ## 2555## Report this to enlightenment-devel@lists.sourceforge.net ##
2525## -------------------------------------------------------- ##" 2556## -------------------------------------------------------- ##
2557_ASBOX
2526 ) | sed "s/^/$as_me: WARNING: /" >&2 2558 ) | sed "s/^/$as_me: WARNING: /" >&2
2527 ;; 2559 ;;
2528esac 2560esac
2529 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 2561 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
2530$as_echo_n "checking for $2... " >&6; } 2562$as_echo_n "checking for $2... " >&6; }
2531if eval "test \"\${$3+set}\"" = set; then : 2563if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
2532 $as_echo_n "(cached) " >&6 2564 $as_echo_n "(cached) " >&6
2533else 2565else
2534 eval "$3=\$ac_header_compiler" 2566 eval "$3=\$ac_header_compiler"
@@ -2592,7 +2624,7 @@ ac_fn_c_check_header_compile ()
2592 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 2624 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
2593 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 2625 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
2594$as_echo_n "checking for $2... " >&6; } 2626$as_echo_n "checking for $2... " >&6; }
2595if eval "test \"\${$3+set}\"" = set; then : 2627if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
2596 $as_echo_n "(cached) " >&6 2628 $as_echo_n "(cached) " >&6
2597else 2629else
2598 cat confdefs.h - <<_ACEOF >conftest.$ac_ext 2630 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -2668,7 +2700,7 @@ ac_fn_c_check_func ()
2668 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 2700 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
2669 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 2701 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
2670$as_echo_n "checking for $2... " >&6; } 2702$as_echo_n "checking for $2... " >&6; }
2671if eval "test \"\${$3+set}\"" = set; then : 2703if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
2672 $as_echo_n "(cached) " >&6 2704 $as_echo_n "(cached) " >&6
2673else 2705else
2674 cat confdefs.h - <<_ACEOF >conftest.$ac_ext 2706 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -2870,7 +2902,7 @@ $as_echo "$ac_try_echo"; } >&5
2870 mv -f conftest.er1 conftest.err 2902 mv -f conftest.er1 conftest.err
2871 fi 2903 fi
2872 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 2904 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
2873 test $ac_status = 0; } > conftest.i && { 2905 test $ac_status = 0; } >/dev/null && {
2874 test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || 2906 test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
2875 test ! -s conftest.err 2907 test ! -s conftest.err
2876 }; then : 2908 }; then :
@@ -3119,7 +3151,7 @@ ac_fn_c_check_type ()
3119 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 3151 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
3120 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 3152 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
3121$as_echo_n "checking for $2... " >&6; } 3153$as_echo_n "checking for $2... " >&6; }
3122if eval "test \"\${$3+set}\"" = set; then : 3154if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
3123 $as_echo_n "(cached) " >&6 3155 $as_echo_n "(cached) " >&6
3124else 3156else
3125 eval "$3=no" 3157 eval "$3=no"
@@ -3164,18 +3196,15 @@ $as_echo "$ac_res" >&6; }
3164 3196
3165} # ac_fn_c_check_type 3197} # ac_fn_c_check_type
3166 3198
3167# ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES 3199# ac_fn_c_check_decl LINENO SYMBOL VAR
3168# --------------------------------------------- 3200# ------------------------------------
3169# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR 3201# Tests whether SYMBOL is declared, setting cache variable VAR accordingly.
3170# accordingly.
3171ac_fn_c_check_decl () 3202ac_fn_c_check_decl ()
3172{ 3203{
3173 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 3204 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
3174 as_decl_name=`echo $2|sed 's/ *(.*//'` 3205 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $2 is declared" >&5
3175 as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'` 3206$as_echo_n "checking whether $2 is declared... " >&6; }
3176 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5 3207if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
3177$as_echo_n "checking whether $as_decl_name is declared... " >&6; }
3178if eval "test \"\${$3+set}\"" = set; then :
3179 $as_echo_n "(cached) " >&6 3208 $as_echo_n "(cached) " >&6
3180else 3209else
3181 cat confdefs.h - <<_ACEOF >conftest.$ac_ext 3210 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -3184,12 +3213,8 @@ $4
3184int 3213int
3185main () 3214main ()
3186{ 3215{
3187#ifndef $as_decl_name 3216#ifndef $2
3188#ifdef __cplusplus 3217 (void) $2;
3189 (void) $as_decl_use;
3190#else
3191 (void) $as_decl_name;
3192#endif
3193#endif 3218#endif
3194 3219
3195 ; 3220 ;
@@ -3213,8 +3238,8 @@ cat >config.log <<_ACEOF
3213This file contains any messages produced by compilers while 3238This file contains any messages produced by compilers while
3214running configure, to aid debugging if configure makes a mistake. 3239running configure, to aid debugging if configure makes a mistake.
3215 3240
3216It was created by evas $as_me 1.1.0, which was 3241It was created by evas $as_me 1.1.99.67344, which was
3217generated by GNU Autoconf 2.67. Invocation command line was 3242generated by GNU Autoconf 2.65. Invocation command line was
3218 3243
3219 $ $0 $@ 3244 $ $0 $@
3220 3245
@@ -3324,9 +3349,11 @@ trap 'exit_status=$?
3324 { 3349 {
3325 echo 3350 echo
3326 3351
3327 $as_echo "## ---------------- ## 3352 cat <<\_ASBOX
3353## ---------------- ##
3328## Cache variables. ## 3354## Cache variables. ##
3329## ---------------- ##" 3355## ---------------- ##
3356_ASBOX
3330 echo 3357 echo
3331 # The following way of writing the cache mishandles newlines in values, 3358 # The following way of writing the cache mishandles newlines in values,
3332( 3359(
@@ -3360,9 +3387,11 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
3360) 3387)
3361 echo 3388 echo
3362 3389
3363 $as_echo "## ----------------- ## 3390 cat <<\_ASBOX
3391## ----------------- ##
3364## Output variables. ## 3392## Output variables. ##
3365## ----------------- ##" 3393## ----------------- ##
3394_ASBOX
3366 echo 3395 echo
3367 for ac_var in $ac_subst_vars 3396 for ac_var in $ac_subst_vars
3368 do 3397 do
@@ -3375,9 +3404,11 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
3375 echo 3404 echo
3376 3405
3377 if test -n "$ac_subst_files"; then 3406 if test -n "$ac_subst_files"; then
3378 $as_echo "## ------------------- ## 3407 cat <<\_ASBOX
3408## ------------------- ##
3379## File substitutions. ## 3409## File substitutions. ##
3380## ------------------- ##" 3410## ------------------- ##
3411_ASBOX
3381 echo 3412 echo
3382 for ac_var in $ac_subst_files 3413 for ac_var in $ac_subst_files
3383 do 3414 do
@@ -3391,9 +3422,11 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
3391 fi 3422 fi
3392 3423
3393 if test -s confdefs.h; then 3424 if test -s confdefs.h; then
3394 $as_echo "## ----------- ## 3425 cat <<\_ASBOX
3426## ----------- ##
3395## confdefs.h. ## 3427## confdefs.h. ##
3396## ----------- ##" 3428## ----------- ##
3429_ASBOX
3397 echo 3430 echo
3398 cat confdefs.h 3431 cat confdefs.h
3399 echo 3432 echo
@@ -3448,12 +3481,7 @@ _ACEOF
3448ac_site_file1=NONE 3481ac_site_file1=NONE
3449ac_site_file2=NONE 3482ac_site_file2=NONE
3450if test -n "$CONFIG_SITE"; then 3483if test -n "$CONFIG_SITE"; then
3451 # We do not want a PATH search for config.site. 3484 ac_site_file1=$CONFIG_SITE
3452 case $CONFIG_SITE in #((
3453 -*) ac_site_file1=./$CONFIG_SITE;;
3454 */*) ac_site_file1=$CONFIG_SITE;;
3455 *) ac_site_file1=./$CONFIG_SITE;;
3456 esac
3457elif test "x$prefix" != xNONE; then 3485elif test "x$prefix" != xNONE; then
3458 ac_site_file1=$prefix/share/config.site 3486 ac_site_file1=$prefix/share/config.site
3459 ac_site_file2=$prefix/etc/config.site 3487 ac_site_file2=$prefix/etc/config.site
@@ -3468,11 +3496,7 @@ do
3468 { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 3496 { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
3469$as_echo "$as_me: loading site script $ac_site_file" >&6;} 3497$as_echo "$as_me: loading site script $ac_site_file" >&6;}
3470 sed 's/^/| /' "$ac_site_file" >&5 3498 sed 's/^/| /' "$ac_site_file" >&5
3471 . "$ac_site_file" \ 3499 . "$ac_site_file"
3472 || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
3473$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
3474as_fn_error $? "failed to load site script $ac_site_file
3475See \`config.log' for more details" "$LINENO" 5 ; }
3476 fi 3500 fi
3477done 3501done
3478 3502
@@ -3548,7 +3572,7 @@ if $ac_cache_corrupted; then
3548$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 3572$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
3549 { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 3573 { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
3550$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} 3574$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
3551 as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 3575 as_fn_error "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
3552fi 3576fi
3553## -------------------- ## 3577## -------------------- ##
3554## Main body of script. ## 3578## Main body of script. ##
@@ -3574,22 +3598,16 @@ am__api_version='1.11'
3574 3598
3575ac_aux_dir= 3599ac_aux_dir=
3576for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do 3600for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
3577 if test -f "$ac_dir/install-sh"; then 3601 for ac_t in install-sh install.sh shtool; do
3578 ac_aux_dir=$ac_dir 3602 if test -f "$ac_dir/$ac_t"; then
3579 ac_install_sh="$ac_aux_dir/install-sh -c" 3603 ac_aux_dir=$ac_dir
3580 break 3604 ac_install_sh="$ac_aux_dir/$ac_t -c"
3581 elif test -f "$ac_dir/install.sh"; then 3605 break 2
3582 ac_aux_dir=$ac_dir 3606 fi
3583 ac_install_sh="$ac_aux_dir/install.sh -c" 3607 done
3584 break
3585 elif test -f "$ac_dir/shtool"; then
3586 ac_aux_dir=$ac_dir
3587 ac_install_sh="$ac_aux_dir/shtool install -c"
3588 break
3589 fi
3590done 3608done
3591if test -z "$ac_aux_dir"; then 3609if test -z "$ac_aux_dir"; then
3592 as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 3610 as_fn_error "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
3593fi 3611fi
3594 3612
3595# These three variables are undocumented and unsupported, 3613# These three variables are undocumented and unsupported,
@@ -3705,11 +3723,11 @@ am_lf='
3705' 3723'
3706case `pwd` in 3724case `pwd` in
3707 *[\\\"\#\$\&\'\`$am_lf]*) 3725 *[\\\"\#\$\&\'\`$am_lf]*)
3708 as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5 ;; 3726 as_fn_error "unsafe absolute working directory name" "$LINENO" 5;;
3709esac 3727esac
3710case $srcdir in 3728case $srcdir in
3711 *[\\\"\#\$\&\'\`$am_lf\ \ ]*) 3729 *[\\\"\#\$\&\'\`$am_lf\ \ ]*)
3712 as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5 ;; 3730 as_fn_error "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;;
3713esac 3731esac
3714 3732
3715# Do `set' in a subshell so we don't clobber the current shell's 3733# Do `set' in a subshell so we don't clobber the current shell's
@@ -3731,7 +3749,7 @@ if (
3731 # if, for instance, CONFIG_SHELL is bash and it inherits a 3749 # if, for instance, CONFIG_SHELL is bash and it inherits a
3732 # broken ls alias from the environment. This has actually 3750 # broken ls alias from the environment. This has actually
3733 # happened. Such a system could not be considered "sane". 3751 # happened. Such a system could not be considered "sane".
3734 as_fn_error $? "ls -t appears to fail. Make sure there is not a broken 3752 as_fn_error "ls -t appears to fail. Make sure there is not a broken
3735alias in your environment" "$LINENO" 5 3753alias in your environment" "$LINENO" 5
3736 fi 3754 fi
3737 3755
@@ -3741,7 +3759,7 @@ then
3741 # Ok. 3759 # Ok.
3742 : 3760 :
3743else 3761else
3744 as_fn_error $? "newly created file is older than distributed files! 3762 as_fn_error "newly created file is older than distributed files!
3745Check your system clock" "$LINENO" 5 3763Check your system clock" "$LINENO" 5
3746fi 3764fi
3747{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 3765{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
@@ -3979,7 +3997,7 @@ done
3979$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } 3997$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
3980set x ${MAKE-make} 3998set x ${MAKE-make}
3981ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` 3999ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
3982if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\"" = set; then : 4000if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then :
3983 $as_echo_n "(cached) " >&6 4001 $as_echo_n "(cached) " >&6
3984else 4002else
3985 cat >conftest.make <<\_ACEOF 4003 cat >conftest.make <<\_ACEOF
@@ -3987,7 +4005,7 @@ SHELL = /bin/sh
3987all: 4005all:
3988 @echo '@@@%%%=$(MAKE)=@@@%%%' 4006 @echo '@@@%%%=$(MAKE)=@@@%%%'
3989_ACEOF 4007_ACEOF
3990# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. 4008# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
3991case `${MAKE-make} -f conftest.make 2>/dev/null` in 4009case `${MAKE-make} -f conftest.make 2>/dev/null` in
3992 *@@@%%%=?*=@@@%%%*) 4010 *@@@%%%=?*=@@@%%%*)
3993 eval ac_cv_prog_make_${ac_make}_set=yes;; 4011 eval ac_cv_prog_make_${ac_make}_set=yes;;
@@ -4021,7 +4039,7 @@ if test "`cd $srcdir && pwd`" != "`pwd`"; then
4021 am__isrc=' -I$(srcdir)' 4039 am__isrc=' -I$(srcdir)'
4022 # test to see if srcdir already configured 4040 # test to see if srcdir already configured
4023 if test -f $srcdir/config.status; then 4041 if test -f $srcdir/config.status; then
4024 as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 4042 as_fn_error "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
4025 fi 4043 fi
4026fi 4044fi
4027 4045
@@ -4037,7 +4055,7 @@ fi
4037 4055
4038# Define the identity of the package. 4056# Define the identity of the package.
4039 PACKAGE='evas' 4057 PACKAGE='evas'
4040 VERSION='1.1.0' 4058 VERSION='1.1.99.67344'
4041 4059
4042 4060
4043cat >>confdefs.h <<_ACEOF 4061cat >>confdefs.h <<_ACEOF
@@ -4452,8 +4470,8 @@ fi
4452 4470
4453test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 4471test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
4454$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 4472$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
4455as_fn_error $? "no acceptable C compiler found in \$PATH 4473as_fn_error "no acceptable C compiler found in \$PATH
4456See \`config.log' for more details" "$LINENO" 5 ; } 4474See \`config.log' for more details." "$LINENO" 5; }
4457 4475
4458# Provide some information about the compiler. 4476# Provide some information about the compiler.
4459$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 4477$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
@@ -4567,8 +4585,9 @@ sed 's/^/| /' conftest.$ac_ext >&5
4567 4585
4568{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 4586{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
4569$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 4587$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
4570as_fn_error 77 "C compiler cannot create executables 4588{ as_fn_set_status 77
4571See \`config.log' for more details" "$LINENO" 5 ; } 4589as_fn_error "C compiler cannot create executables
4590See \`config.log' for more details." "$LINENO" 5; }; }
4572else 4591else
4573 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 4592 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
4574$as_echo "yes" >&6; } 4593$as_echo "yes" >&6; }
@@ -4610,8 +4629,8 @@ done
4610else 4629else
4611 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 4630 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
4612$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 4631$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
4613as_fn_error $? "cannot compute suffix of executables: cannot compile and link 4632as_fn_error "cannot compute suffix of executables: cannot compile and link
4614See \`config.log' for more details" "$LINENO" 5 ; } 4633See \`config.log' for more details." "$LINENO" 5; }
4615fi 4634fi
4616rm -f conftest conftest$ac_cv_exeext 4635rm -f conftest conftest$ac_cv_exeext
4617{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 4636{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
@@ -4668,9 +4687,9 @@ $as_echo "$ac_try_echo"; } >&5
4668 else 4687 else
4669 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 4688 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
4670$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 4689$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
4671as_fn_error $? "cannot run C compiled programs. 4690as_fn_error "cannot run C compiled programs.
4672If you meant to cross compile, use \`--host'. 4691If you meant to cross compile, use \`--host'.
4673See \`config.log' for more details" "$LINENO" 5 ; } 4692See \`config.log' for more details." "$LINENO" 5; }
4674 fi 4693 fi
4675 fi 4694 fi
4676fi 4695fi
@@ -4721,8 +4740,8 @@ sed 's/^/| /' conftest.$ac_ext >&5
4721 4740
4722{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 4741{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
4723$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 4742$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
4724as_fn_error $? "cannot compute suffix of object files: cannot compile 4743as_fn_error "cannot compute suffix of object files: cannot compile
4725See \`config.log' for more details" "$LINENO" 5 ; } 4744See \`config.log' for more details." "$LINENO" 5; }
4726fi 4745fi
4727rm -f conftest.$ac_cv_objext conftest.$ac_ext 4746rm -f conftest.$ac_cv_objext conftest.$ac_ext
4728fi 4747fi
@@ -5112,7 +5131,7 @@ else
5112 # Broken: fails on valid input. 5131 # Broken: fails on valid input.
5113continue 5132continue
5114fi 5133fi
5115rm -f conftest.err conftest.i conftest.$ac_ext 5134rm -f conftest.err conftest.$ac_ext
5116 5135
5117 # OK, works on sane cases. Now check whether nonexistent headers 5136 # OK, works on sane cases. Now check whether nonexistent headers
5118 # can be detected and how. 5137 # can be detected and how.
@@ -5128,11 +5147,11 @@ else
5128ac_preproc_ok=: 5147ac_preproc_ok=:
5129break 5148break
5130fi 5149fi
5131rm -f conftest.err conftest.i conftest.$ac_ext 5150rm -f conftest.err conftest.$ac_ext
5132 5151
5133done 5152done
5134# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. 5153# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
5135rm -f conftest.i conftest.err conftest.$ac_ext 5154rm -f conftest.err conftest.$ac_ext
5136if $ac_preproc_ok; then : 5155if $ac_preproc_ok; then :
5137 break 5156 break
5138fi 5157fi
@@ -5171,7 +5190,7 @@ else
5171 # Broken: fails on valid input. 5190 # Broken: fails on valid input.
5172continue 5191continue
5173fi 5192fi
5174rm -f conftest.err conftest.i conftest.$ac_ext 5193rm -f conftest.err conftest.$ac_ext
5175 5194
5176 # OK, works on sane cases. Now check whether nonexistent headers 5195 # OK, works on sane cases. Now check whether nonexistent headers
5177 # can be detected and how. 5196 # can be detected and how.
@@ -5187,18 +5206,18 @@ else
5187ac_preproc_ok=: 5206ac_preproc_ok=:
5188break 5207break
5189fi 5208fi
5190rm -f conftest.err conftest.i conftest.$ac_ext 5209rm -f conftest.err conftest.$ac_ext
5191 5210
5192done 5211done
5193# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. 5212# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
5194rm -f conftest.i conftest.err conftest.$ac_ext 5213rm -f conftest.err conftest.$ac_ext
5195if $ac_preproc_ok; then : 5214if $ac_preproc_ok; then :
5196 5215
5197else 5216else
5198 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 5217 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
5199$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 5218$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
5200as_fn_error $? "C preprocessor \"$CPP\" fails sanity check 5219as_fn_error "C preprocessor \"$CPP\" fails sanity check
5201See \`config.log' for more details" "$LINENO" 5 ; } 5220See \`config.log' for more details." "$LINENO" 5; }
5202fi 5221fi
5203 5222
5204ac_ext=c 5223ac_ext=c
@@ -5259,7 +5278,7 @@ esac
5259 done 5278 done
5260IFS=$as_save_IFS 5279IFS=$as_save_IFS
5261 if test -z "$ac_cv_path_GREP"; then 5280 if test -z "$ac_cv_path_GREP"; then
5262 as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 5281 as_fn_error "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
5263 fi 5282 fi
5264else 5283else
5265 ac_cv_path_GREP=$GREP 5284 ac_cv_path_GREP=$GREP
@@ -5325,7 +5344,7 @@ esac
5325 done 5344 done
5326IFS=$as_save_IFS 5345IFS=$as_save_IFS
5327 if test -z "$ac_cv_path_EGREP"; then 5346 if test -z "$ac_cv_path_EGREP"; then
5328 as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 5347 as_fn_error "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
5329 fi 5348 fi
5330else 5349else
5331 ac_cv_path_EGREP=$EGREP 5350 ac_cv_path_EGREP=$EGREP
@@ -5457,7 +5476,8 @@ do :
5457 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` 5476 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
5458ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default 5477ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
5459" 5478"
5460if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : 5479eval as_val=\$$as_ac_Header
5480 if test "x$as_val" = x""yes; then :
5461 cat >>confdefs.h <<_ACEOF 5481 cat >>confdefs.h <<_ACEOF
5462#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 5482#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
5463_ACEOF 5483_ACEOF
@@ -5532,7 +5552,7 @@ $as_echo "$ac_cv_safe_to_define___extensions__" >&6; }
5532 5552
5533# Make sure we can run config.sub. 5553# Make sure we can run config.sub.
5534$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || 5554$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
5535 as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 5555 as_fn_error "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
5536 5556
5537{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 5557{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
5538$as_echo_n "checking build system type... " >&6; } 5558$as_echo_n "checking build system type... " >&6; }
@@ -5543,16 +5563,16 @@ else
5543test "x$ac_build_alias" = x && 5563test "x$ac_build_alias" = x &&
5544 ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` 5564 ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
5545test "x$ac_build_alias" = x && 5565test "x$ac_build_alias" = x &&
5546 as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 5566 as_fn_error "cannot guess build type; you must specify one" "$LINENO" 5
5547ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || 5567ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
5548 as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 5568 as_fn_error "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
5549 5569
5550fi 5570fi
5551{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 5571{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
5552$as_echo "$ac_cv_build" >&6; } 5572$as_echo "$ac_cv_build" >&6; }
5553case $ac_cv_build in 5573case $ac_cv_build in
5554*-*-*) ;; 5574*-*-*) ;;
5555*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5 ;; 5575*) as_fn_error "invalid value of canonical build" "$LINENO" 5;;
5556esac 5576esac
5557build=$ac_cv_build 5577build=$ac_cv_build
5558ac_save_IFS=$IFS; IFS='-' 5578ac_save_IFS=$IFS; IFS='-'
@@ -5577,7 +5597,7 @@ else
5577 ac_cv_host=$ac_cv_build 5597 ac_cv_host=$ac_cv_build
5578else 5598else
5579 ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || 5599 ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
5580 as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 5600 as_fn_error "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
5581fi 5601fi
5582 5602
5583fi 5603fi
@@ -5585,7 +5605,7 @@ fi
5585$as_echo "$ac_cv_host" >&6; } 5605$as_echo "$ac_cv_host" >&6; }
5586case $ac_cv_host in 5606case $ac_cv_host in
5587*-*-*) ;; 5607*-*-*) ;;
5588*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5 ;; 5608*) as_fn_error "invalid value of canonical host" "$LINENO" 5;;
5589esac 5609esac
5590host=$ac_cv_host 5610host=$ac_cv_host
5591ac_save_IFS=$IFS; IFS='-' 5611ac_save_IFS=$IFS; IFS='-'
@@ -5986,7 +6006,7 @@ esac
5986 done 6006 done
5987IFS=$as_save_IFS 6007IFS=$as_save_IFS
5988 if test -z "$ac_cv_path_SED"; then 6008 if test -z "$ac_cv_path_SED"; then
5989 as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 6009 as_fn_error "no acceptable sed could be found in \$PATH" "$LINENO" 5
5990 fi 6010 fi
5991else 6011else
5992 ac_cv_path_SED=$SED 6012 ac_cv_path_SED=$SED
@@ -6065,7 +6085,7 @@ esac
6065 done 6085 done
6066IFS=$as_save_IFS 6086IFS=$as_save_IFS
6067 if test -z "$ac_cv_path_FGREP"; then 6087 if test -z "$ac_cv_path_FGREP"; then
6068 as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 6088 as_fn_error "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
6069 fi 6089 fi
6070else 6090else
6071 ac_cv_path_FGREP=$FGREP 6091 ac_cv_path_FGREP=$FGREP
@@ -6181,7 +6201,7 @@ else
6181 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 6201 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
6182$as_echo "no" >&6; } 6202$as_echo "no" >&6; }
6183fi 6203fi
6184test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 6204test -z "$LD" && as_fn_error "no acceptable ld found in \$PATH" "$LINENO" 5
6185{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 6205{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
6186$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } 6206$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
6187if test "${lt_cv_prog_gnu_ld+set}" = set; then : 6207if test "${lt_cv_prog_gnu_ld+set}" = set; then :
@@ -6383,13 +6403,13 @@ if test "${lt_cv_nm_interface+set}" = set; then :
6383else 6403else
6384 lt_cv_nm_interface="BSD nm" 6404 lt_cv_nm_interface="BSD nm"
6385 echo "int some_variable = 0;" > conftest.$ac_ext 6405 echo "int some_variable = 0;" > conftest.$ac_ext
6386 (eval echo "\"\$as_me:6386: $ac_compile\"" >&5) 6406 (eval echo "\"\$as_me:6406: $ac_compile\"" >&5)
6387 (eval "$ac_compile" 2>conftest.err) 6407 (eval "$ac_compile" 2>conftest.err)
6388 cat conftest.err >&5 6408 cat conftest.err >&5
6389 (eval echo "\"\$as_me:6389: $NM \\\"conftest.$ac_objext\\\"\"" >&5) 6409 (eval echo "\"\$as_me:6409: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
6390 (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) 6410 (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
6391 cat conftest.err >&5 6411 cat conftest.err >&5
6392 (eval echo "\"\$as_me:6392: output\"" >&5) 6412 (eval echo "\"\$as_me:6412: output\"" >&5)
6393 cat conftest.out >&5 6413 cat conftest.out >&5
6394 if $GREP 'External.*some_variable' conftest.out > /dev/null; then 6414 if $GREP 'External.*some_variable' conftest.out > /dev/null; then
6395 lt_cv_nm_interface="MS dumpbin" 6415 lt_cv_nm_interface="MS dumpbin"
@@ -7591,7 +7611,7 @@ ia64-*-hpux*)
7591 ;; 7611 ;;
7592*-*-irix6*) 7612*-*-irix6*)
7593 # Find out which ABI we are using. 7613 # Find out which ABI we are using.
7594 echo '#line 7594 "configure"' > conftest.$ac_ext 7614 echo '#line 7614 "configure"' > conftest.$ac_ext
7595 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 7615 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
7596 (eval $ac_compile) 2>&5 7616 (eval $ac_compile) 2>&5
7597 ac_status=$? 7617 ac_status=$?
@@ -8851,11 +8871,11 @@ else
8851 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ 8871 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
8852 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ 8872 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
8853 -e 's:$: $lt_compiler_flag:'` 8873 -e 's:$: $lt_compiler_flag:'`
8854 (eval echo "\"\$as_me:8854: $lt_compile\"" >&5) 8874 (eval echo "\"\$as_me:8874: $lt_compile\"" >&5)
8855 (eval "$lt_compile" 2>conftest.err) 8875 (eval "$lt_compile" 2>conftest.err)
8856 ac_status=$? 8876 ac_status=$?
8857 cat conftest.err >&5 8877 cat conftest.err >&5
8858 echo "$as_me:8858: \$? = $ac_status" >&5 8878 echo "$as_me:8878: \$? = $ac_status" >&5
8859 if (exit $ac_status) && test -s "$ac_outfile"; then 8879 if (exit $ac_status) && test -s "$ac_outfile"; then
8860 # The compiler can only warn and ignore the option if not recognized 8880 # The compiler can only warn and ignore the option if not recognized
8861 # So say no if there are warnings other than the usual output. 8881 # So say no if there are warnings other than the usual output.
@@ -9190,11 +9210,11 @@ else
9190 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ 9210 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
9191 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ 9211 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
9192 -e 's:$: $lt_compiler_flag:'` 9212 -e 's:$: $lt_compiler_flag:'`
9193 (eval echo "\"\$as_me:9193: $lt_compile\"" >&5) 9213 (eval echo "\"\$as_me:9213: $lt_compile\"" >&5)
9194 (eval "$lt_compile" 2>conftest.err) 9214 (eval "$lt_compile" 2>conftest.err)
9195 ac_status=$? 9215 ac_status=$?
9196 cat conftest.err >&5 9216 cat conftest.err >&5
9197 echo "$as_me:9197: \$? = $ac_status" >&5 9217 echo "$as_me:9217: \$? = $ac_status" >&5
9198 if (exit $ac_status) && test -s "$ac_outfile"; then 9218 if (exit $ac_status) && test -s "$ac_outfile"; then
9199 # The compiler can only warn and ignore the option if not recognized 9219 # The compiler can only warn and ignore the option if not recognized
9200 # So say no if there are warnings other than the usual output. 9220 # So say no if there are warnings other than the usual output.
@@ -9295,11 +9315,11 @@ else
9295 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ 9315 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
9296 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ 9316 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
9297 -e 's:$: $lt_compiler_flag:'` 9317 -e 's:$: $lt_compiler_flag:'`
9298 (eval echo "\"\$as_me:9298: $lt_compile\"" >&5) 9318 (eval echo "\"\$as_me:9318: $lt_compile\"" >&5)
9299 (eval "$lt_compile" 2>out/conftest.err) 9319 (eval "$lt_compile" 2>out/conftest.err)
9300 ac_status=$? 9320 ac_status=$?
9301 cat out/conftest.err >&5 9321 cat out/conftest.err >&5
9302 echo "$as_me:9302: \$? = $ac_status" >&5 9322 echo "$as_me:9322: \$? = $ac_status" >&5
9303 if (exit $ac_status) && test -s out/conftest2.$ac_objext 9323 if (exit $ac_status) && test -s out/conftest2.$ac_objext
9304 then 9324 then
9305 # The compiler can only warn and ignore the option if not recognized 9325 # The compiler can only warn and ignore the option if not recognized
@@ -9350,11 +9370,11 @@ else
9350 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ 9370 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
9351 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ 9371 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
9352 -e 's:$: $lt_compiler_flag:'` 9372 -e 's:$: $lt_compiler_flag:'`
9353 (eval echo "\"\$as_me:9353: $lt_compile\"" >&5) 9373 (eval echo "\"\$as_me:9373: $lt_compile\"" >&5)
9354 (eval "$lt_compile" 2>out/conftest.err) 9374 (eval "$lt_compile" 2>out/conftest.err)
9355 ac_status=$? 9375 ac_status=$?
9356 cat out/conftest.err >&5 9376 cat out/conftest.err >&5
9357 echo "$as_me:9357: \$? = $ac_status" >&5 9377 echo "$as_me:9377: \$? = $ac_status" >&5
9358 if (exit $ac_status) && test -s out/conftest2.$ac_objext 9378 if (exit $ac_status) && test -s out/conftest2.$ac_objext
9359 then 9379 then
9360 # The compiler can only warn and ignore the option if not recognized 9380 # The compiler can only warn and ignore the option if not recognized
@@ -11734,7 +11754,7 @@ else
11734 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 11754 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
11735 lt_status=$lt_dlunknown 11755 lt_status=$lt_dlunknown
11736 cat > conftest.$ac_ext <<_LT_EOF 11756 cat > conftest.$ac_ext <<_LT_EOF
11737#line 11737 "configure" 11757#line 11757 "configure"
11738#include "confdefs.h" 11758#include "confdefs.h"
11739 11759
11740#if HAVE_DLFCN_H 11760#if HAVE_DLFCN_H
@@ -11830,7 +11850,7 @@ else
11830 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 11850 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
11831 lt_status=$lt_dlunknown 11851 lt_status=$lt_dlunknown
11832 cat > conftest.$ac_ext <<_LT_EOF 11852 cat > conftest.$ac_ext <<_LT_EOF
11833#line 11833 "configure" 11853#line 11853 "configure"
11834#include "confdefs.h" 11854#include "confdefs.h"
11835 11855
11836#if HAVE_DLFCN_H 11856#if HAVE_DLFCN_H
@@ -12074,15 +12094,15 @@ _ACEOF
12074 12094
12075 12095
12076cat >>confdefs.h <<_ACEOF 12096cat >>confdefs.h <<_ACEOF
12077#define VMIC 0 12097#define VMIC 99
12078_ACEOF 12098_ACEOF
12079 12099
12080 12100
12081cat >>confdefs.h <<_ACEOF 12101cat >>confdefs.h <<_ACEOF
12082#define VREV 0 12102#define VREV 67344
12083_ACEOF 12103_ACEOF
12084 12104
12085version_info="2:0:1" 12105version_info="2:99:1"
12086release_info="" 12106release_info=""
12087 12107
12088 12108
@@ -12101,7 +12121,7 @@ case "$host_os" in
12101 MODULE_ARCH="$host_os-$host_cpu" 12121 MODULE_ARCH="$host_os-$host_cpu"
12102 ;; 12122 ;;
12103 *) 12123 *)
12104 MODULE_ARCH="$host_os-$host_cpu-1.1.0" 12124 MODULE_ARCH="$host_os-$host_cpu-1.1.99"
12105 ;; 12125 ;;
12106esac 12126esac
12107 12127
@@ -12136,6 +12156,8 @@ want_evas_engine_direct3d="no"
12136want_evas_engine_fb="no" 12156want_evas_engine_fb="no"
12137want_evas_engine_directfb="no" 12157want_evas_engine_directfb="no"
12138want_evas_engine_psl1ght="no" 12158want_evas_engine_psl1ght="no"
12159want_evas_engine_wayland_shm="no"
12160want_evas_engine_wayland_egl="no"
12139 12161
12140want_evas_image_loader_edb="yes" 12162want_evas_image_loader_edb="yes"
12141want_evas_image_loader_eet="yes" 12163want_evas_image_loader_eet="yes"
@@ -12182,6 +12204,8 @@ case "$host_os" in
12182 want_evas_engine_software_xcb="no" 12204 want_evas_engine_software_xcb="no"
12183 want_evas_engine_gl_xcb="no" 12205 want_evas_engine_gl_xcb="no"
12184 want_evas_engine_fb="auto" 12206 want_evas_engine_fb="auto"
12207 want_evas_engine_wayland_shm="auto"
12208 want_evas_engine_wayland_egl="auto"
12185### no - not ready/usable/complete 12209### no - not ready/usable/complete
12186# want_evas_engine_software_8_x11="auto" 12210# want_evas_engine_software_8_x11="auto"
12187# want_evas_engine_software_16_x11="auto" 12211# want_evas_engine_software_16_x11="auto"
@@ -13582,7 +13606,7 @@ else
13582 # Broken: fails on valid input. 13606 # Broken: fails on valid input.
13583continue 13607continue
13584fi 13608fi
13585rm -f conftest.err conftest.i conftest.$ac_ext 13609rm -f conftest.err conftest.$ac_ext
13586 13610
13587 # OK, works on sane cases. Now check whether nonexistent headers 13611 # OK, works on sane cases. Now check whether nonexistent headers
13588 # can be detected and how. 13612 # can be detected and how.
@@ -13598,11 +13622,11 @@ else
13598ac_preproc_ok=: 13622ac_preproc_ok=:
13599break 13623break
13600fi 13624fi
13601rm -f conftest.err conftest.i conftest.$ac_ext 13625rm -f conftest.err conftest.$ac_ext
13602 13626
13603done 13627done
13604# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. 13628# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
13605rm -f conftest.i conftest.err conftest.$ac_ext 13629rm -f conftest.err conftest.$ac_ext
13606if $ac_preproc_ok; then : 13630if $ac_preproc_ok; then :
13607 break 13631 break
13608fi 13632fi
@@ -13641,7 +13665,7 @@ else
13641 # Broken: fails on valid input. 13665 # Broken: fails on valid input.
13642continue 13666continue
13643fi 13667fi
13644rm -f conftest.err conftest.i conftest.$ac_ext 13668rm -f conftest.err conftest.$ac_ext
13645 13669
13646 # OK, works on sane cases. Now check whether nonexistent headers 13670 # OK, works on sane cases. Now check whether nonexistent headers
13647 # can be detected and how. 13671 # can be detected and how.
@@ -13657,11 +13681,11 @@ else
13657ac_preproc_ok=: 13681ac_preproc_ok=:
13658break 13682break
13659fi 13683fi
13660rm -f conftest.err conftest.i conftest.$ac_ext 13684rm -f conftest.err conftest.$ac_ext
13661 13685
13662done 13686done
13663# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. 13687# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
13664rm -f conftest.i conftest.err conftest.$ac_ext 13688rm -f conftest.err conftest.$ac_ext
13665if $ac_preproc_ok; then : 13689if $ac_preproc_ok; then :
13666 13690
13667else 13691else
@@ -13890,7 +13914,7 @@ else
13890 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 13914 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
13891$as_echo "no" >&6; } 13915$as_echo "no" >&6; }
13892fi 13916fi
13893test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 13917test -z "$LD" && as_fn_error "no acceptable ld found in \$PATH" "$LINENO" 5
13894{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 13918{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
13895$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } 13919$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
13896if test "${lt_cv_prog_gnu_ld+set}" = set; then : 13920if test "${lt_cv_prog_gnu_ld+set}" = set; then :
@@ -15431,11 +15455,11 @@ else
15431 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ 15455 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
15432 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ 15456 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
15433 -e 's:$: $lt_compiler_flag:'` 15457 -e 's:$: $lt_compiler_flag:'`
15434 (eval echo "\"\$as_me:15434: $lt_compile\"" >&5) 15458 (eval echo "\"\$as_me:15458: $lt_compile\"" >&5)
15435 (eval "$lt_compile" 2>conftest.err) 15459 (eval "$lt_compile" 2>conftest.err)
15436 ac_status=$? 15460 ac_status=$?
15437 cat conftest.err >&5 15461 cat conftest.err >&5
15438 echo "$as_me:15438: \$? = $ac_status" >&5 15462 echo "$as_me:15462: \$? = $ac_status" >&5
15439 if (exit $ac_status) && test -s "$ac_outfile"; then 15463 if (exit $ac_status) && test -s "$ac_outfile"; then
15440 # The compiler can only warn and ignore the option if not recognized 15464 # The compiler can only warn and ignore the option if not recognized
15441 # So say no if there are warnings other than the usual output. 15465 # So say no if there are warnings other than the usual output.
@@ -15530,11 +15554,11 @@ else
15530 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ 15554 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
15531 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ 15555 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
15532 -e 's:$: $lt_compiler_flag:'` 15556 -e 's:$: $lt_compiler_flag:'`
15533 (eval echo "\"\$as_me:15533: $lt_compile\"" >&5) 15557 (eval echo "\"\$as_me:15557: $lt_compile\"" >&5)
15534 (eval "$lt_compile" 2>out/conftest.err) 15558 (eval "$lt_compile" 2>out/conftest.err)
15535 ac_status=$? 15559 ac_status=$?
15536 cat out/conftest.err >&5 15560 cat out/conftest.err >&5
15537 echo "$as_me:15537: \$? = $ac_status" >&5 15561 echo "$as_me:15561: \$? = $ac_status" >&5
15538 if (exit $ac_status) && test -s out/conftest2.$ac_objext 15562 if (exit $ac_status) && test -s out/conftest2.$ac_objext
15539 then 15563 then
15540 # The compiler can only warn and ignore the option if not recognized 15564 # The compiler can only warn and ignore the option if not recognized
@@ -15582,11 +15606,11 @@ else
15582 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ 15606 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
15583 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ 15607 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
15584 -e 's:$: $lt_compiler_flag:'` 15608 -e 's:$: $lt_compiler_flag:'`
15585 (eval echo "\"\$as_me:15585: $lt_compile\"" >&5) 15609 (eval echo "\"\$as_me:15609: $lt_compile\"" >&5)
15586 (eval "$lt_compile" 2>out/conftest.err) 15610 (eval "$lt_compile" 2>out/conftest.err)
15587 ac_status=$? 15611 ac_status=$?
15588 cat out/conftest.err >&5 15612 cat out/conftest.err >&5
15589 echo "$as_me:15589: \$? = $ac_status" >&5 15613 echo "$as_me:15613: \$? = $ac_status" >&5
15590 if (exit $ac_status) && test -s out/conftest2.$ac_objext 15614 if (exit $ac_status) && test -s out/conftest2.$ac_objext
15591 then 15615 then
15592 # The compiler can only warn and ignore the option if not recognized 15616 # The compiler can only warn and ignore the option if not recognized
@@ -16830,8 +16854,8 @@ fi
16830 16854
16831test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 16855test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
16832$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 16856$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
16833as_fn_error $? "no acceptable C compiler found in \$PATH 16857as_fn_error "no acceptable C compiler found in \$PATH
16834See \`config.log' for more details" "$LINENO" 5 ; } 16858See \`config.log' for more details." "$LINENO" 5; }
16835 16859
16836# Provide some information about the compiler. 16860# Provide some information about the compiler.
16837$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 16861$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
@@ -17201,10 +17225,6 @@ fi
17201# pkg-config 17225# pkg-config
17202 17226
17203 17227
17204
17205
17206
17207
17208if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then 17228if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
17209 if test -n "$ac_tool_prefix"; then 17229 if test -n "$ac_tool_prefix"; then
17210 # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. 17230 # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
@@ -17317,6 +17337,7 @@ $as_echo "yes" >&6; }
17317$as_echo "no" >&6; } 17337$as_echo "no" >&6; }
17318 PKG_CONFIG="" 17338 PKG_CONFIG=""
17319 fi 17339 fi
17340
17320fi 17341fi
17321 17342
17322# Check whether pkg-config supports Requires.private 17343# Check whether pkg-config supports Requires.private
@@ -17498,10 +17519,11 @@ pkg_failed=no
17498{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EVIL" >&5 17519{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EVIL" >&5
17499$as_echo_n "checking for EVIL... " >&6; } 17520$as_echo_n "checking for EVIL... " >&6; }
17500 17521
17501if test -n "$EVIL_CFLAGS"; then 17522if test -n "$PKG_CONFIG"; then
17502 pkg_cv_EVIL_CFLAGS="$EVIL_CFLAGS" 17523 if test -n "$EVIL_CFLAGS"; then
17503 elif test -n "$PKG_CONFIG"; then 17524 pkg_cv_EVIL_CFLAGS="$EVIL_CFLAGS"
17504 if test -n "$PKG_CONFIG" && \ 17525 else
17526 if test -n "$PKG_CONFIG" && \
17505 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evil >= 1.0.0\""; } >&5 17527 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evil >= 1.0.0\""; } >&5
17506 ($PKG_CONFIG --exists --print-errors "evil >= 1.0.0") 2>&5 17528 ($PKG_CONFIG --exists --print-errors "evil >= 1.0.0") 2>&5
17507 ac_status=$? 17529 ac_status=$?
@@ -17511,13 +17533,15 @@ if test -n "$EVIL_CFLAGS"; then
17511else 17533else
17512 pkg_failed=yes 17534 pkg_failed=yes
17513fi 17535fi
17514 else 17536 fi
17515 pkg_failed=untried 17537else
17538 pkg_failed=untried
17516fi 17539fi
17517if test -n "$EVIL_LIBS"; then 17540if test -n "$PKG_CONFIG"; then
17518 pkg_cv_EVIL_LIBS="$EVIL_LIBS" 17541 if test -n "$EVIL_LIBS"; then
17519 elif test -n "$PKG_CONFIG"; then 17542 pkg_cv_EVIL_LIBS="$EVIL_LIBS"
17520 if test -n "$PKG_CONFIG" && \ 17543 else
17544 if test -n "$PKG_CONFIG" && \
17521 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evil >= 1.0.0\""; } >&5 17545 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evil >= 1.0.0\""; } >&5
17522 ($PKG_CONFIG --exists --print-errors "evil >= 1.0.0") 2>&5 17546 ($PKG_CONFIG --exists --print-errors "evil >= 1.0.0") 2>&5
17523 ac_status=$? 17547 ac_status=$?
@@ -17527,15 +17551,14 @@ if test -n "$EVIL_LIBS"; then
17527else 17551else
17528 pkg_failed=yes 17552 pkg_failed=yes
17529fi 17553fi
17530 else 17554 fi
17531 pkg_failed=untried 17555else
17556 pkg_failed=untried
17532fi 17557fi
17533 17558
17534 17559
17535 17560
17536if test $pkg_failed = yes; then 17561if test $pkg_failed = yes; then
17537 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
17538$as_echo "no" >&6; }
17539 17562
17540if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 17563if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
17541 _pkg_short_errors_supported=yes 17564 _pkg_short_errors_supported=yes
@@ -17543,14 +17566,14 @@ else
17543 _pkg_short_errors_supported=no 17566 _pkg_short_errors_supported=no
17544fi 17567fi
17545 if test $_pkg_short_errors_supported = yes; then 17568 if test $_pkg_short_errors_supported = yes; then
17546 EVIL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "evil >= 1.0.0" 2>&1` 17569 EVIL_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "evil >= 1.0.0"`
17547 else 17570 else
17548 EVIL_PKG_ERRORS=`$PKG_CONFIG --print-errors "evil >= 1.0.0" 2>&1` 17571 EVIL_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "evil >= 1.0.0"`
17549 fi 17572 fi
17550 # Put the nasty error message in config.log where it belongs 17573 # Put the nasty error message in config.log where it belongs
17551 echo "$EVIL_PKG_ERRORS" >&5 17574 echo "$EVIL_PKG_ERRORS" >&5
17552 17575
17553 as_fn_error $? "Package requirements (evil >= 1.0.0) were not met: 17576 as_fn_error "Package requirements (evil >= 1.0.0) were not met:
17554 17577
17555$EVIL_PKG_ERRORS 17578$EVIL_PKG_ERRORS
17556 17579
@@ -17559,13 +17582,12 @@ installed software in a non-standard prefix.
17559 17582
17560Alternatively, you may set the environment variables EVIL_CFLAGS 17583Alternatively, you may set the environment variables EVIL_CFLAGS
17561and EVIL_LIBS to avoid the need to call pkg-config. 17584and EVIL_LIBS to avoid the need to call pkg-config.
17562See the pkg-config man page for more details." "$LINENO" 5 17585See the pkg-config man page for more details.
17586" "$LINENO" 5
17563elif test $pkg_failed = untried; then 17587elif test $pkg_failed = untried; then
17564 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
17565$as_echo "no" >&6; }
17566 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 17588 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
17567$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 17589$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
17568as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it 17590as_fn_error "The pkg-config script could not be found or is too old. Make sure it
17569is in your PATH or set the PKG_CONFIG environment variable to the full 17591is in your PATH or set the PKG_CONFIG environment variable to the full
17570path to pkg-config. 17592path to pkg-config.
17571 17593
@@ -17574,13 +17596,13 @@ and EVIL_LIBS to avoid the need to call pkg-config.
17574See the pkg-config man page for more details. 17596See the pkg-config man page for more details.
17575 17597
17576To get pkg-config, see <http://pkg-config.freedesktop.org/>. 17598To get pkg-config, see <http://pkg-config.freedesktop.org/>.
17577See \`config.log' for more details" "$LINENO" 5 ; } 17599See \`config.log' for more details." "$LINENO" 5; }
17578else 17600else
17579 EVIL_CFLAGS=$pkg_cv_EVIL_CFLAGS 17601 EVIL_CFLAGS=$pkg_cv_EVIL_CFLAGS
17580 EVIL_LIBS=$pkg_cv_EVIL_LIBS 17602 EVIL_LIBS=$pkg_cv_EVIL_LIBS
17581 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 17603 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
17582$as_echo "yes" >&6; } 17604$as_echo "yes" >&6; }
17583 17605 :
17584fi 17606fi
17585 17607
17586$as_echo "#define HAVE_EVIL 1" >>confdefs.h 17608$as_echo "#define HAVE_EVIL 1" >>confdefs.h
@@ -17597,10 +17619,11 @@ pkg_failed=no
17597{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EINA" >&5 17619{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EINA" >&5
17598$as_echo_n "checking for EINA... " >&6; } 17620$as_echo_n "checking for EINA... " >&6; }
17599 17621
17600if test -n "$EINA_CFLAGS"; then 17622if test -n "$PKG_CONFIG"; then
17601 pkg_cv_EINA_CFLAGS="$EINA_CFLAGS" 17623 if test -n "$EINA_CFLAGS"; then
17602 elif test -n "$PKG_CONFIG"; then 17624 pkg_cv_EINA_CFLAGS="$EINA_CFLAGS"
17603 if test -n "$PKG_CONFIG" && \ 17625 else
17626 if test -n "$PKG_CONFIG" && \
17604 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eina >= 1.1.0\""; } >&5 17627 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eina >= 1.1.0\""; } >&5
17605 ($PKG_CONFIG --exists --print-errors "eina >= 1.1.0") 2>&5 17628 ($PKG_CONFIG --exists --print-errors "eina >= 1.1.0") 2>&5
17606 ac_status=$? 17629 ac_status=$?
@@ -17610,13 +17633,15 @@ if test -n "$EINA_CFLAGS"; then
17610else 17633else
17611 pkg_failed=yes 17634 pkg_failed=yes
17612fi 17635fi
17613 else 17636 fi
17614 pkg_failed=untried 17637else
17638 pkg_failed=untried
17615fi 17639fi
17616if test -n "$EINA_LIBS"; then 17640if test -n "$PKG_CONFIG"; then
17617 pkg_cv_EINA_LIBS="$EINA_LIBS" 17641 if test -n "$EINA_LIBS"; then
17618 elif test -n "$PKG_CONFIG"; then 17642 pkg_cv_EINA_LIBS="$EINA_LIBS"
17619 if test -n "$PKG_CONFIG" && \ 17643 else
17644 if test -n "$PKG_CONFIG" && \
17620 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eina >= 1.1.0\""; } >&5 17645 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eina >= 1.1.0\""; } >&5
17621 ($PKG_CONFIG --exists --print-errors "eina >= 1.1.0") 2>&5 17646 ($PKG_CONFIG --exists --print-errors "eina >= 1.1.0") 2>&5
17622 ac_status=$? 17647 ac_status=$?
@@ -17626,15 +17651,14 @@ if test -n "$EINA_LIBS"; then
17626else 17651else
17627 pkg_failed=yes 17652 pkg_failed=yes
17628fi 17653fi
17629 else 17654 fi
17630 pkg_failed=untried 17655else
17656 pkg_failed=untried
17631fi 17657fi
17632 17658
17633 17659
17634 17660
17635if test $pkg_failed = yes; then 17661if test $pkg_failed = yes; then
17636 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
17637$as_echo "no" >&6; }
17638 17662
17639if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 17663if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
17640 _pkg_short_errors_supported=yes 17664 _pkg_short_errors_supported=yes
@@ -17642,14 +17666,14 @@ else
17642 _pkg_short_errors_supported=no 17666 _pkg_short_errors_supported=no
17643fi 17667fi
17644 if test $_pkg_short_errors_supported = yes; then 17668 if test $_pkg_short_errors_supported = yes; then
17645 EINA_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "eina >= 1.1.0" 2>&1` 17669 EINA_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "eina >= 1.1.0"`
17646 else 17670 else
17647 EINA_PKG_ERRORS=`$PKG_CONFIG --print-errors "eina >= 1.1.0" 2>&1` 17671 EINA_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "eina >= 1.1.0"`
17648 fi 17672 fi
17649 # Put the nasty error message in config.log where it belongs 17673 # Put the nasty error message in config.log where it belongs
17650 echo "$EINA_PKG_ERRORS" >&5 17674 echo "$EINA_PKG_ERRORS" >&5
17651 17675
17652 as_fn_error $? "Package requirements (eina >= 1.1.0) were not met: 17676 as_fn_error "Package requirements (eina >= 1.1.0) were not met:
17653 17677
17654$EINA_PKG_ERRORS 17678$EINA_PKG_ERRORS
17655 17679
@@ -17658,13 +17682,12 @@ installed software in a non-standard prefix.
17658 17682
17659Alternatively, you may set the environment variables EINA_CFLAGS 17683Alternatively, you may set the environment variables EINA_CFLAGS
17660and EINA_LIBS to avoid the need to call pkg-config. 17684and EINA_LIBS to avoid the need to call pkg-config.
17661See the pkg-config man page for more details." "$LINENO" 5 17685See the pkg-config man page for more details.
17686" "$LINENO" 5
17662elif test $pkg_failed = untried; then 17687elif test $pkg_failed = untried; then
17663 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
17664$as_echo "no" >&6; }
17665 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 17688 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
17666$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 17689$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
17667as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it 17690as_fn_error "The pkg-config script could not be found or is too old. Make sure it
17668is in your PATH or set the PKG_CONFIG environment variable to the full 17691is in your PATH or set the PKG_CONFIG environment variable to the full
17669path to pkg-config. 17692path to pkg-config.
17670 17693
@@ -17673,13 +17696,13 @@ and EINA_LIBS to avoid the need to call pkg-config.
17673See the pkg-config man page for more details. 17696See the pkg-config man page for more details.
17674 17697
17675To get pkg-config, see <http://pkg-config.freedesktop.org/>. 17698To get pkg-config, see <http://pkg-config.freedesktop.org/>.
17676See \`config.log' for more details" "$LINENO" 5 ; } 17699See \`config.log' for more details." "$LINENO" 5; }
17677else 17700else
17678 EINA_CFLAGS=$pkg_cv_EINA_CFLAGS 17701 EINA_CFLAGS=$pkg_cv_EINA_CFLAGS
17679 EINA_LIBS=$pkg_cv_EINA_LIBS 17702 EINA_LIBS=$pkg_cv_EINA_LIBS
17680 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 17703 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
17681$as_echo "yes" >&6; } 17704$as_echo "yes" >&6; }
17682 17705 :
17683fi 17706fi
17684CPPFLAGS_SAVE="$CPPFLAGS" 17707CPPFLAGS_SAVE="$CPPFLAGS"
17685CPPFLAGS="$CPPFLAGS $EINA_CFLAGS" 17708CPPFLAGS="$CPPFLAGS $EINA_CFLAGS"
@@ -17699,8 +17722,9 @@ else
17699 if test "$ac_cv_type_Eina_Unicode" = yes; then 17722 if test "$ac_cv_type_Eina_Unicode" = yes; then
17700 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 17723 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
17701$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 17724$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
17702as_fn_error 77 "cannot compute sizeof (Eina_Unicode) 17725{ as_fn_set_status 77
17703See \`config.log' for more details" "$LINENO" 5 ; } 17726as_fn_error "cannot compute sizeof (Eina_Unicode)
17727See \`config.log' for more details." "$LINENO" 5; }; }
17704 else 17728 else
17705 ac_cv_sizeof_Eina_Unicode=0 17729 ac_cv_sizeof_Eina_Unicode=0
17706 fi 17730 fi
@@ -17725,10 +17749,11 @@ pkg_failed=no
17725{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for FREETYPE" >&5 17749{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for FREETYPE" >&5
17726$as_echo_n "checking for FREETYPE... " >&6; } 17750$as_echo_n "checking for FREETYPE... " >&6; }
17727 17751
17728if test -n "$FREETYPE_CFLAGS"; then 17752if test -n "$PKG_CONFIG"; then
17729 pkg_cv_FREETYPE_CFLAGS="$FREETYPE_CFLAGS" 17753 if test -n "$FREETYPE_CFLAGS"; then
17730 elif test -n "$PKG_CONFIG"; then 17754 pkg_cv_FREETYPE_CFLAGS="$FREETYPE_CFLAGS"
17731 if test -n "$PKG_CONFIG" && \ 17755 else
17756 if test -n "$PKG_CONFIG" && \
17732 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"freetype2 >= 9.3.0\""; } >&5 17757 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"freetype2 >= 9.3.0\""; } >&5
17733 ($PKG_CONFIG --exists --print-errors "freetype2 >= 9.3.0") 2>&5 17758 ($PKG_CONFIG --exists --print-errors "freetype2 >= 9.3.0") 2>&5
17734 ac_status=$? 17759 ac_status=$?
@@ -17738,13 +17763,15 @@ if test -n "$FREETYPE_CFLAGS"; then
17738else 17763else
17739 pkg_failed=yes 17764 pkg_failed=yes
17740fi 17765fi
17741 else 17766 fi
17742 pkg_failed=untried 17767else
17768 pkg_failed=untried
17743fi 17769fi
17744if test -n "$FREETYPE_LIBS"; then 17770if test -n "$PKG_CONFIG"; then
17745 pkg_cv_FREETYPE_LIBS="$FREETYPE_LIBS" 17771 if test -n "$FREETYPE_LIBS"; then
17746 elif test -n "$PKG_CONFIG"; then 17772 pkg_cv_FREETYPE_LIBS="$FREETYPE_LIBS"
17747 if test -n "$PKG_CONFIG" && \ 17773 else
17774 if test -n "$PKG_CONFIG" && \
17748 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"freetype2 >= 9.3.0\""; } >&5 17775 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"freetype2 >= 9.3.0\""; } >&5
17749 ($PKG_CONFIG --exists --print-errors "freetype2 >= 9.3.0") 2>&5 17776 ($PKG_CONFIG --exists --print-errors "freetype2 >= 9.3.0") 2>&5
17750 ac_status=$? 17777 ac_status=$?
@@ -17754,15 +17781,14 @@ if test -n "$FREETYPE_LIBS"; then
17754else 17781else
17755 pkg_failed=yes 17782 pkg_failed=yes
17756fi 17783fi
17757 else 17784 fi
17758 pkg_failed=untried 17785else
17786 pkg_failed=untried
17759fi 17787fi
17760 17788
17761 17789
17762 17790
17763if test $pkg_failed = yes; then 17791if test $pkg_failed = yes; then
17764 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
17765$as_echo "no" >&6; }
17766 17792
17767if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 17793if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
17768 _pkg_short_errors_supported=yes 17794 _pkg_short_errors_supported=yes
@@ -17770,14 +17796,14 @@ else
17770 _pkg_short_errors_supported=no 17796 _pkg_short_errors_supported=no
17771fi 17797fi
17772 if test $_pkg_short_errors_supported = yes; then 17798 if test $_pkg_short_errors_supported = yes; then
17773 FREETYPE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "freetype2 >= 9.3.0" 2>&1` 17799 FREETYPE_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "freetype2 >= 9.3.0"`
17774 else 17800 else
17775 FREETYPE_PKG_ERRORS=`$PKG_CONFIG --print-errors "freetype2 >= 9.3.0" 2>&1` 17801 FREETYPE_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "freetype2 >= 9.3.0"`
17776 fi 17802 fi
17777 # Put the nasty error message in config.log where it belongs 17803 # Put the nasty error message in config.log where it belongs
17778 echo "$FREETYPE_PKG_ERRORS" >&5 17804 echo "$FREETYPE_PKG_ERRORS" >&5
17779 17805
17780 as_fn_error $? "Package requirements (freetype2 >= 9.3.0) were not met: 17806 as_fn_error "Package requirements (freetype2 >= 9.3.0) were not met:
17781 17807
17782$FREETYPE_PKG_ERRORS 17808$FREETYPE_PKG_ERRORS
17783 17809
@@ -17786,13 +17812,12 @@ installed software in a non-standard prefix.
17786 17812
17787Alternatively, you may set the environment variables FREETYPE_CFLAGS 17813Alternatively, you may set the environment variables FREETYPE_CFLAGS
17788and FREETYPE_LIBS to avoid the need to call pkg-config. 17814and FREETYPE_LIBS to avoid the need to call pkg-config.
17789See the pkg-config man page for more details." "$LINENO" 5 17815See the pkg-config man page for more details.
17816" "$LINENO" 5
17790elif test $pkg_failed = untried; then 17817elif test $pkg_failed = untried; then
17791 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
17792$as_echo "no" >&6; }
17793 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 17818 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
17794$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 17819$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
17795as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it 17820as_fn_error "The pkg-config script could not be found or is too old. Make sure it
17796is in your PATH or set the PKG_CONFIG environment variable to the full 17821is in your PATH or set the PKG_CONFIG environment variable to the full
17797path to pkg-config. 17822path to pkg-config.
17798 17823
@@ -17801,13 +17826,13 @@ and FREETYPE_LIBS to avoid the need to call pkg-config.
17801See the pkg-config man page for more details. 17826See the pkg-config man page for more details.
17802 17827
17803To get pkg-config, see <http://pkg-config.freedesktop.org/>. 17828To get pkg-config, see <http://pkg-config.freedesktop.org/>.
17804See \`config.log' for more details" "$LINENO" 5 ; } 17829See \`config.log' for more details." "$LINENO" 5; }
17805else 17830else
17806 FREETYPE_CFLAGS=$pkg_cv_FREETYPE_CFLAGS 17831 FREETYPE_CFLAGS=$pkg_cv_FREETYPE_CFLAGS
17807 FREETYPE_LIBS=$pkg_cv_FREETYPE_LIBS 17832 FREETYPE_LIBS=$pkg_cv_FREETYPE_LIBS
17808 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 17833 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
17809$as_echo "yes" >&6; } 17834$as_echo "yes" >&6; }
17810 17835 :
17811fi 17836fi
17812 17837
17813requirement_evas="freetype2 eina >= 1.1.0 ${requirement_evas}" 17838requirement_evas="freetype2 eina >= 1.1.0 ${requirement_evas}"
@@ -17835,10 +17860,11 @@ pkg_failed=no
17835{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for FONTCONFIG" >&5 17860{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for FONTCONFIG" >&5
17836$as_echo_n "checking for FONTCONFIG... " >&6; } 17861$as_echo_n "checking for FONTCONFIG... " >&6; }
17837 17862
17838if test -n "$FONTCONFIG_CFLAGS"; then 17863if test -n "$PKG_CONFIG"; then
17839 pkg_cv_FONTCONFIG_CFLAGS="$FONTCONFIG_CFLAGS" 17864 if test -n "$FONTCONFIG_CFLAGS"; then
17840 elif test -n "$PKG_CONFIG"; then 17865 pkg_cv_FONTCONFIG_CFLAGS="$FONTCONFIG_CFLAGS"
17841 if test -n "$PKG_CONFIG" && \ 17866 else
17867 if test -n "$PKG_CONFIG" && \
17842 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"fontconfig >= 2.5.0\""; } >&5 17868 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"fontconfig >= 2.5.0\""; } >&5
17843 ($PKG_CONFIG --exists --print-errors "fontconfig >= 2.5.0") 2>&5 17869 ($PKG_CONFIG --exists --print-errors "fontconfig >= 2.5.0") 2>&5
17844 ac_status=$? 17870 ac_status=$?
@@ -17848,13 +17874,15 @@ if test -n "$FONTCONFIG_CFLAGS"; then
17848else 17874else
17849 pkg_failed=yes 17875 pkg_failed=yes
17850fi 17876fi
17851 else 17877 fi
17852 pkg_failed=untried 17878else
17879 pkg_failed=untried
17853fi 17880fi
17854if test -n "$FONTCONFIG_LIBS"; then 17881if test -n "$PKG_CONFIG"; then
17855 pkg_cv_FONTCONFIG_LIBS="$FONTCONFIG_LIBS" 17882 if test -n "$FONTCONFIG_LIBS"; then
17856 elif test -n "$PKG_CONFIG"; then 17883 pkg_cv_FONTCONFIG_LIBS="$FONTCONFIG_LIBS"
17857 if test -n "$PKG_CONFIG" && \ 17884 else
17885 if test -n "$PKG_CONFIG" && \
17858 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"fontconfig >= 2.5.0\""; } >&5 17886 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"fontconfig >= 2.5.0\""; } >&5
17859 ($PKG_CONFIG --exists --print-errors "fontconfig >= 2.5.0") 2>&5 17887 ($PKG_CONFIG --exists --print-errors "fontconfig >= 2.5.0") 2>&5
17860 ac_status=$? 17888 ac_status=$?
@@ -17864,15 +17892,14 @@ if test -n "$FONTCONFIG_LIBS"; then
17864else 17892else
17865 pkg_failed=yes 17893 pkg_failed=yes
17866fi 17894fi
17867 else 17895 fi
17868 pkg_failed=untried 17896else
17897 pkg_failed=untried
17869fi 17898fi
17870 17899
17871 17900
17872 17901
17873if test $pkg_failed = yes; then 17902if test $pkg_failed = yes; then
17874 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
17875$as_echo "no" >&6; }
17876 17903
17877if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 17904if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
17878 _pkg_short_errors_supported=yes 17905 _pkg_short_errors_supported=yes
@@ -17880,24 +17907,24 @@ else
17880 _pkg_short_errors_supported=no 17907 _pkg_short_errors_supported=no
17881fi 17908fi
17882 if test $_pkg_short_errors_supported = yes; then 17909 if test $_pkg_short_errors_supported = yes; then
17883 FONTCONFIG_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "fontconfig >= 2.5.0" 2>&1` 17910 FONTCONFIG_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "fontconfig >= 2.5.0"`
17884 else 17911 else
17885 FONTCONFIG_PKG_ERRORS=`$PKG_CONFIG --print-errors "fontconfig >= 2.5.0" 2>&1` 17912 FONTCONFIG_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "fontconfig >= 2.5.0"`
17886 fi 17913 fi
17887 # Put the nasty error message in config.log where it belongs 17914 # Put the nasty error message in config.log where it belongs
17888 echo "$FONTCONFIG_PKG_ERRORS" >&5 17915 echo "$FONTCONFIG_PKG_ERRORS" >&5
17889 17916
17917 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
17918$as_echo "no" >&6; }
17890 17919
17891 if test "x${want_fontconfig}" = "xyes" -a "x${use_strict}" = "xyes" ; then 17920 if test "x${want_fontconfig}" = "xyes" -a "x${use_strict}" = "xyes" ; then
17892 as_fn_error $? "Fontconfig not found (strict dependencies checking)" "$LINENO" 5 17921 as_fn_error "Fontconfig not found (strict dependencies checking)" "$LINENO" 5
17893 fi 17922 fi
17894 17923
17895elif test $pkg_failed = untried; then 17924elif test $pkg_failed = untried; then
17896 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
17897$as_echo "no" >&6; }
17898 17925
17899 if test "x${want_fontconfig}" = "xyes" -a "x${use_strict}" = "xyes" ; then 17926 if test "x${want_fontconfig}" = "xyes" -a "x${use_strict}" = "xyes" ; then
17900 as_fn_error $? "Fontconfig not found (strict dependencies checking)" "$LINENO" 5 17927 as_fn_error "Fontconfig not found (strict dependencies checking)" "$LINENO" 5
17901 fi 17928 fi
17902 17929
17903else 17930else
@@ -17972,10 +17999,11 @@ pkg_failed=no
17972{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for FRIBIDI" >&5 17999{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for FRIBIDI" >&5
17973$as_echo_n "checking for FRIBIDI... " >&6; } 18000$as_echo_n "checking for FRIBIDI... " >&6; }
17974 18001
17975if test -n "$FRIBIDI_CFLAGS"; then 18002if test -n "$PKG_CONFIG"; then
17976 pkg_cv_FRIBIDI_CFLAGS="$FRIBIDI_CFLAGS" 18003 if test -n "$FRIBIDI_CFLAGS"; then
17977 elif test -n "$PKG_CONFIG"; then 18004 pkg_cv_FRIBIDI_CFLAGS="$FRIBIDI_CFLAGS"
17978 if test -n "$PKG_CONFIG" && \ 18005 else
18006 if test -n "$PKG_CONFIG" && \
17979 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"fribidi >= 0.19.2\""; } >&5 18007 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"fribidi >= 0.19.2\""; } >&5
17980 ($PKG_CONFIG --exists --print-errors "fribidi >= 0.19.2") 2>&5 18008 ($PKG_CONFIG --exists --print-errors "fribidi >= 0.19.2") 2>&5
17981 ac_status=$? 18009 ac_status=$?
@@ -17985,13 +18013,15 @@ if test -n "$FRIBIDI_CFLAGS"; then
17985else 18013else
17986 pkg_failed=yes 18014 pkg_failed=yes
17987fi 18015fi
17988 else 18016 fi
17989 pkg_failed=untried 18017else
18018 pkg_failed=untried
17990fi 18019fi
17991if test -n "$FRIBIDI_LIBS"; then 18020if test -n "$PKG_CONFIG"; then
17992 pkg_cv_FRIBIDI_LIBS="$FRIBIDI_LIBS" 18021 if test -n "$FRIBIDI_LIBS"; then
17993 elif test -n "$PKG_CONFIG"; then 18022 pkg_cv_FRIBIDI_LIBS="$FRIBIDI_LIBS"
17994 if test -n "$PKG_CONFIG" && \ 18023 else
18024 if test -n "$PKG_CONFIG" && \
17995 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"fribidi >= 0.19.2\""; } >&5 18025 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"fribidi >= 0.19.2\""; } >&5
17996 ($PKG_CONFIG --exists --print-errors "fribidi >= 0.19.2") 2>&5 18026 ($PKG_CONFIG --exists --print-errors "fribidi >= 0.19.2") 2>&5
17997 ac_status=$? 18027 ac_status=$?
@@ -18001,15 +18031,14 @@ if test -n "$FRIBIDI_LIBS"; then
18001else 18031else
18002 pkg_failed=yes 18032 pkg_failed=yes
18003fi 18033fi
18004 else 18034 fi
18005 pkg_failed=untried 18035else
18036 pkg_failed=untried
18006fi 18037fi
18007 18038
18008 18039
18009 18040
18010if test $pkg_failed = yes; then 18041if test $pkg_failed = yes; then
18011 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
18012$as_echo "no" >&6; }
18013 18042
18014if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 18043if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
18015 _pkg_short_errors_supported=yes 18044 _pkg_short_errors_supported=yes
@@ -18017,24 +18046,24 @@ else
18017 _pkg_short_errors_supported=no 18046 _pkg_short_errors_supported=no
18018fi 18047fi
18019 if test $_pkg_short_errors_supported = yes; then 18048 if test $_pkg_short_errors_supported = yes; then
18020 FRIBIDI_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "fribidi >= 0.19.2" 2>&1` 18049 FRIBIDI_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "fribidi >= 0.19.2"`
18021 else 18050 else
18022 FRIBIDI_PKG_ERRORS=`$PKG_CONFIG --print-errors "fribidi >= 0.19.2" 2>&1` 18051 FRIBIDI_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "fribidi >= 0.19.2"`
18023 fi 18052 fi
18024 # Put the nasty error message in config.log where it belongs 18053 # Put the nasty error message in config.log where it belongs
18025 echo "$FRIBIDI_PKG_ERRORS" >&5 18054 echo "$FRIBIDI_PKG_ERRORS" >&5
18026 18055
18056 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
18057$as_echo "no" >&6; }
18027 18058
18028 if test "x$want_fribidi" = "xyes" -a "x$use_strict" = "xyes" ; then 18059 if test "x$want_fribidi" = "xyes" -a "x$use_strict" = "xyes" ; then
18029 as_fn_error $? "Fribidi not found (strict dependencies checking)" "$LINENO" 5 18060 as_fn_error "Fribidi not found (strict dependencies checking)" "$LINENO" 5
18030 fi 18061 fi
18031 18062
18032elif test $pkg_failed = untried; then 18063elif test $pkg_failed = untried; then
18033 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
18034$as_echo "no" >&6; }
18035 18064
18036 if test "x$want_fribidi" = "xyes" -a "x$use_strict" = "xyes" ; then 18065 if test "x$want_fribidi" = "xyes" -a "x$use_strict" = "xyes" ; then
18037 as_fn_error $? "Fribidi not found (strict dependencies checking)" "$LINENO" 5 18066 as_fn_error "Fribidi not found (strict dependencies checking)" "$LINENO" 5
18038 fi 18067 fi
18039 18068
18040else 18069else
@@ -18066,8 +18095,9 @@ else
18066 if test "$ac_cv_type_FriBidiChar" = yes; then 18095 if test "$ac_cv_type_FriBidiChar" = yes; then
18067 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 18096 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
18068$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 18097$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
18069as_fn_error 77 "cannot compute sizeof (FriBidiChar) 18098{ as_fn_set_status 77
18070See \`config.log' for more details" "$LINENO" 5 ; } 18099as_fn_error "cannot compute sizeof (FriBidiChar)
18100See \`config.log' for more details." "$LINENO" 5; }; }
18071 else 18101 else
18072 ac_cv_sizeof_FriBidiChar=0 18102 ac_cv_sizeof_FriBidiChar=0
18073 fi 18103 fi
@@ -18114,10 +18144,11 @@ pkg_failed=no
18114{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for HARFBUZZ" >&5 18144{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for HARFBUZZ" >&5
18115$as_echo_n "checking for HARFBUZZ... " >&6; } 18145$as_echo_n "checking for HARFBUZZ... " >&6; }
18116 18146
18117if test -n "$HARFBUZZ_CFLAGS"; then 18147if test -n "$PKG_CONFIG"; then
18118 pkg_cv_HARFBUZZ_CFLAGS="$HARFBUZZ_CFLAGS" 18148 if test -n "$HARFBUZZ_CFLAGS"; then
18119 elif test -n "$PKG_CONFIG"; then 18149 pkg_cv_HARFBUZZ_CFLAGS="$HARFBUZZ_CFLAGS"
18120 if test -n "$PKG_CONFIG" && \ 18150 else
18151 if test -n "$PKG_CONFIG" && \
18121 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"harfbuzz >= 0.6.0\""; } >&5 18152 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"harfbuzz >= 0.6.0\""; } >&5
18122 ($PKG_CONFIG --exists --print-errors "harfbuzz >= 0.6.0") 2>&5 18153 ($PKG_CONFIG --exists --print-errors "harfbuzz >= 0.6.0") 2>&5
18123 ac_status=$? 18154 ac_status=$?
@@ -18127,13 +18158,15 @@ if test -n "$HARFBUZZ_CFLAGS"; then
18127else 18158else
18128 pkg_failed=yes 18159 pkg_failed=yes
18129fi 18160fi
18130 else 18161 fi
18131 pkg_failed=untried 18162else
18163 pkg_failed=untried
18132fi 18164fi
18133if test -n "$HARFBUZZ_LIBS"; then 18165if test -n "$PKG_CONFIG"; then
18134 pkg_cv_HARFBUZZ_LIBS="$HARFBUZZ_LIBS" 18166 if test -n "$HARFBUZZ_LIBS"; then
18135 elif test -n "$PKG_CONFIG"; then 18167 pkg_cv_HARFBUZZ_LIBS="$HARFBUZZ_LIBS"
18136 if test -n "$PKG_CONFIG" && \ 18168 else
18169 if test -n "$PKG_CONFIG" && \
18137 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"harfbuzz >= 0.6.0\""; } >&5 18170 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"harfbuzz >= 0.6.0\""; } >&5
18138 ($PKG_CONFIG --exists --print-errors "harfbuzz >= 0.6.0") 2>&5 18171 ($PKG_CONFIG --exists --print-errors "harfbuzz >= 0.6.0") 2>&5
18139 ac_status=$? 18172 ac_status=$?
@@ -18143,15 +18176,14 @@ if test -n "$HARFBUZZ_LIBS"; then
18143else 18176else
18144 pkg_failed=yes 18177 pkg_failed=yes
18145fi 18178fi
18146 else 18179 fi
18147 pkg_failed=untried 18180else
18181 pkg_failed=untried
18148fi 18182fi
18149 18183
18150 18184
18151 18185
18152if test $pkg_failed = yes; then 18186if test $pkg_failed = yes; then
18153 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
18154$as_echo "no" >&6; }
18155 18187
18156if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 18188if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
18157 _pkg_short_errors_supported=yes 18189 _pkg_short_errors_supported=yes
@@ -18159,24 +18191,24 @@ else
18159 _pkg_short_errors_supported=no 18191 _pkg_short_errors_supported=no
18160fi 18192fi
18161 if test $_pkg_short_errors_supported = yes; then 18193 if test $_pkg_short_errors_supported = yes; then
18162 HARFBUZZ_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "harfbuzz >= 0.6.0" 2>&1` 18194 HARFBUZZ_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "harfbuzz >= 0.6.0"`
18163 else 18195 else
18164 HARFBUZZ_PKG_ERRORS=`$PKG_CONFIG --print-errors "harfbuzz >= 0.6.0" 2>&1` 18196 HARFBUZZ_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "harfbuzz >= 0.6.0"`
18165 fi 18197 fi
18166 # Put the nasty error message in config.log where it belongs 18198 # Put the nasty error message in config.log where it belongs
18167 echo "$HARFBUZZ_PKG_ERRORS" >&5 18199 echo "$HARFBUZZ_PKG_ERRORS" >&5
18168 18200
18201 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
18202$as_echo "no" >&6; }
18169 18203
18170 if test "x$want_harfbuzz" = "xyes" -a "x$use_strict" = "xyes" ; then 18204 if test "x$want_harfbuzz" = "xyes" -a "x$use_strict" = "xyes" ; then
18171 as_fn_error $? "Harfbuzz not found (strict dependencies checking)" "$LINENO" 5 18205 as_fn_error "Harfbuzz not found (strict dependencies checking)" "$LINENO" 5
18172 fi 18206 fi
18173 18207
18174elif test $pkg_failed = untried; then 18208elif test $pkg_failed = untried; then
18175 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
18176$as_echo "no" >&6; }
18177 18209
18178 if test "x$want_harfbuzz" = "xyes" -a "x$use_strict" = "xyes" ; then 18210 if test "x$want_harfbuzz" = "xyes" -a "x$use_strict" = "xyes" ; then
18179 as_fn_error $? "Harfbuzz not found (strict dependencies checking)" "$LINENO" 5 18211 as_fn_error "Harfbuzz not found (strict dependencies checking)" "$LINENO" 5
18180 fi 18212 fi
18181 18213
18182else 18214else
@@ -18207,7 +18239,7 @@ $as_echo "#define HAVE_HARFBUZZ 1" >>confdefs.h
18207else 18239else
18208 18240
18209 if test "x$want_harfbuzz" = "xyes" -a "x$use_strict" = "xyes" ; then 18241 if test "x$want_harfbuzz" = "xyes" -a "x$use_strict" = "xyes" ; then
18210 as_fn_error $? "Harfbuzz-ft not found (strict dependencies checking)" "$LINENO" 5 18242 as_fn_error "Harfbuzz-ft not found (strict dependencies checking)" "$LINENO" 5
18211 fi 18243 fi
18212 have_harfbuzz="no" 18244 have_harfbuzz="no"
18213 18245
@@ -18243,10 +18275,11 @@ pkg_failed=no
18243{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PIXMAN" >&5 18275{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PIXMAN" >&5
18244$as_echo_n "checking for PIXMAN... " >&6; } 18276$as_echo_n "checking for PIXMAN... " >&6; }
18245 18277
18246if test -n "$PIXMAN_CFLAGS"; then 18278if test -n "$PKG_CONFIG"; then
18247 pkg_cv_PIXMAN_CFLAGS="$PIXMAN_CFLAGS" 18279 if test -n "$PIXMAN_CFLAGS"; then
18248 elif test -n "$PKG_CONFIG"; then 18280 pkg_cv_PIXMAN_CFLAGS="$PIXMAN_CFLAGS"
18249 if test -n "$PKG_CONFIG" && \ 18281 else
18282 if test -n "$PKG_CONFIG" && \
18250 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"pixman-1\""; } >&5 18283 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"pixman-1\""; } >&5
18251 ($PKG_CONFIG --exists --print-errors "pixman-1") 2>&5 18284 ($PKG_CONFIG --exists --print-errors "pixman-1") 2>&5
18252 ac_status=$? 18285 ac_status=$?
@@ -18256,13 +18289,15 @@ if test -n "$PIXMAN_CFLAGS"; then
18256else 18289else
18257 pkg_failed=yes 18290 pkg_failed=yes
18258fi 18291fi
18259 else 18292 fi
18260 pkg_failed=untried 18293else
18294 pkg_failed=untried
18261fi 18295fi
18262if test -n "$PIXMAN_LIBS"; then 18296if test -n "$PKG_CONFIG"; then
18263 pkg_cv_PIXMAN_LIBS="$PIXMAN_LIBS" 18297 if test -n "$PIXMAN_LIBS"; then
18264 elif test -n "$PKG_CONFIG"; then 18298 pkg_cv_PIXMAN_LIBS="$PIXMAN_LIBS"
18265 if test -n "$PKG_CONFIG" && \ 18299 else
18300 if test -n "$PKG_CONFIG" && \
18266 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"pixman-1\""; } >&5 18301 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"pixman-1\""; } >&5
18267 ($PKG_CONFIG --exists --print-errors "pixman-1") 2>&5 18302 ($PKG_CONFIG --exists --print-errors "pixman-1") 2>&5
18268 ac_status=$? 18303 ac_status=$?
@@ -18272,15 +18307,14 @@ if test -n "$PIXMAN_LIBS"; then
18272else 18307else
18273 pkg_failed=yes 18308 pkg_failed=yes
18274fi 18309fi
18275 else 18310 fi
18276 pkg_failed=untried 18311else
18312 pkg_failed=untried
18277fi 18313fi
18278 18314
18279 18315
18280 18316
18281if test $pkg_failed = yes; then 18317if test $pkg_failed = yes; then
18282 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
18283$as_echo "no" >&6; }
18284 18318
18285if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 18319if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
18286 _pkg_short_errors_supported=yes 18320 _pkg_short_errors_supported=yes
@@ -18288,24 +18322,24 @@ else
18288 _pkg_short_errors_supported=no 18322 _pkg_short_errors_supported=no
18289fi 18323fi
18290 if test $_pkg_short_errors_supported = yes; then 18324 if test $_pkg_short_errors_supported = yes; then
18291 PIXMAN_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "pixman-1" 2>&1` 18325 PIXMAN_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "pixman-1"`
18292 else 18326 else
18293 PIXMAN_PKG_ERRORS=`$PKG_CONFIG --print-errors "pixman-1" 2>&1` 18327 PIXMAN_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "pixman-1"`
18294 fi 18328 fi
18295 # Put the nasty error message in config.log where it belongs 18329 # Put the nasty error message in config.log where it belongs
18296 echo "$PIXMAN_PKG_ERRORS" >&5 18330 echo "$PIXMAN_PKG_ERRORS" >&5
18297 18331
18332 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
18333$as_echo "no" >&6; }
18298 18334
18299 if test "x${want_pixman}" = "xyes" -a "x${use_strict}" = "xyes" ; then 18335 if test "x${want_pixman}" = "xyes" -a "x${use_strict}" = "xyes" ; then
18300 as_fn_error $? "Pixman not found (strict dependencies checking)" "$LINENO" 5 18336 as_fn_error "Pixman not found (strict dependencies checking)" "$LINENO" 5
18301 fi 18337 fi
18302 18338
18303elif test $pkg_failed = untried; then 18339elif test $pkg_failed = untried; then
18304 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
18305$as_echo "no" >&6; }
18306 18340
18307 if test "x${want_pixman}" = "xyes" -a "x${use_strict}" = "xyes" ; then 18341 if test "x${want_pixman}" = "xyes" -a "x${use_strict}" = "xyes" ; then
18308 as_fn_error $? "Pixman not found (strict dependencies checking)" "$LINENO" 5 18342 as_fn_error "Pixman not found (strict dependencies checking)" "$LINENO" 5
18309 fi 18343 fi
18310 18344
18311else 18345else
@@ -18323,6 +18357,97 @@ $as_echo "#define HAVE_PIXMAN 1" >>confdefs.h
18323fi 18357fi
18324fi 18358fi
18325 18359
18360have_pixman_font="no"
18361# Check whether --enable-pixman-font was given.
18362if test "${enable_pixman_font+set}" = set; then :
18363 enableval=$enable_pixman_font;
18364 have_pixman_font="yes"
18365
18366$as_echo "#define PIXMAN_FONT 1" >>confdefs.h
18367
18368
18369
18370fi
18371
18372
18373have_pixman_rect="no"
18374# Check whether --enable-pixman-rect was given.
18375if test "${enable_pixman_rect+set}" = set; then :
18376 enableval=$enable_pixman_rect;
18377 have_pixman_rect="yes"
18378
18379$as_echo "#define PIXMAN_RECT 1" >>confdefs.h
18380
18381
18382
18383fi
18384
18385
18386have_pixman_line="no"
18387# Check whether --enable-pixman-line was given.
18388if test "${enable_pixman_line+set}" = set; then :
18389 enableval=$enable_pixman_line;
18390 have_pixman_line="yes"
18391
18392$as_echo "#define PIXMAN_LINE 1" >>confdefs.h
18393
18394
18395
18396fi
18397
18398
18399have_pixman_poly="no"
18400# Check whether --enable-pixman-poly was given.
18401if test "${enable_pixman_poly+set}" = set; then :
18402 enableval=$enable_pixman_poly;
18403 have_pixman_poly="yes"
18404
18405$as_echo "#define PIXMAN_POLY 1" >>confdefs.h
18406
18407
18408
18409fi
18410
18411
18412have_pixman_image="no"
18413# Check whether --enable-pixman-image was given.
18414if test "${enable_pixman_image+set}" = set; then :
18415 enableval=$enable_pixman_image;
18416 have_pixman_image="yes"
18417
18418$as_echo "#define PIXMAN_IMAGE 1" >>confdefs.h
18419
18420
18421
18422fi
18423
18424
18425have_pixman_image_scale_sample="no"
18426# Check whether --enable-pixman-image-scale-sample was given.
18427if test "${enable_pixman_image_scale_sample+set}" = set; then :
18428 enableval=$enable_pixman_image_scale_sample;
18429 have_pixman_image_scale_sample="yes"
18430
18431$as_echo "#define PIXMAN_IMAGE_SCALE_SAMPLE 1" >>confdefs.h
18432
18433
18434
18435fi
18436
18437
18438have_tile_rotate="no"
18439# Check whether --enable-tile-rotate was given.
18440if test "${enable_tile_rotate+set}" = set; then :
18441 enableval=$enable_tile_rotate;
18442 have_tile_rotate="yes"
18443
18444$as_echo "#define TILE_ROTATE 1" >>confdefs.h
18445
18446
18447
18448fi
18449
18450
18326### Checks for header files 18451### Checks for header files
18327{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 18452{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
18328$as_echo_n "checking for ANSI C header files... " >&6; } 18453$as_echo_n "checking for ANSI C header files... " >&6; }
@@ -18436,11 +18561,12 @@ $as_echo "#define STDC_HEADERS 1" >>confdefs.h
18436 18561
18437fi 18562fi
18438 18563
18439for ac_header in unistd.h stdint.h sys/param.h netinet/in.h 18564for ac_header in unistd.h stdint.h sys/param.h netinet/in.h sys/mman.h
18440do : 18565do :
18441 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` 18566 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
18442ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" 18567ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
18443if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : 18568eval as_val=\$$as_ac_Header
18569 if test "x$as_val" = x""yes; then :
18444 cat >>confdefs.h <<_ACEOF 18570 cat >>confdefs.h <<_ACEOF
18445#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 18571#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
18446_ACEOF 18572_ACEOF
@@ -18501,7 +18627,6 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
18501 18627
18502 18628
18503 18629
18504
18505### Checks for types 18630### Checks for types
18506ac_fn_c_check_type "$LINENO" "struct sigaction" "ac_cv_type_struct_sigaction" "#include <signal.h> 18631ac_fn_c_check_type "$LINENO" "struct sigaction" "ac_cv_type_struct_sigaction" "#include <signal.h>
18507" 18632"
@@ -18820,8 +18945,8 @@ $as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
18820 18945
18821 ;; #( 18946 ;; #(
18822 *) 18947 *)
18823 as_fn_error $? "unknown endianness 18948 as_fn_error "unknown endianness
18824 presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; 18949 presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;;
18825 esac 18950 esac
18826 18951
18827 case $ac_cv_prog_cc_stdc in #( 18952 case $ac_cv_prog_cc_stdc in #(
@@ -19494,7 +19619,8 @@ if test $ac_cv_os_cray = yes; then
19494 for ac_func in _getb67 GETB67 getb67; do 19619 for ac_func in _getb67 GETB67 getb67; do
19495 as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` 19620 as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
19496ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" 19621ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
19497if eval test \"x\$"$as_ac_var"\" = x"yes"; then : 19622eval as_val=\$$as_ac_var
19623 if test "x$as_val" = x""yes; then :
19498 19624
19499cat >>confdefs.h <<_ACEOF 19625cat >>confdefs.h <<_ACEOF
19500#define CRAY_STACKSEG_END $ac_func 19626#define CRAY_STACKSEG_END $ac_func
@@ -19641,7 +19767,7 @@ fi
19641if test "x$_efl_have_fnmatch" = "xyes"; then : 19767if test "x$_efl_have_fnmatch" = "xyes"; then :
19642 19768
19643else 19769else
19644 as_fn_error $? "Cannot find fnmatch()" "$LINENO" 5 19770 as_fn_error "Cannot find fnmatch()" "$LINENO" 5
19645fi 19771fi
19646 19772
19647 19773
@@ -19988,7 +20114,7 @@ if test "x$gl_flavor_gles" = "xyes"; then
19988 if test "x$eng" = "xx"; then 20114 if test "x$eng" = "xx"; then
19989 eng="" 20115 eng=""
19990 else 20116 else
19991 as_fn_error $? "Please enable just 1 OpenGL-ES flavor. Choices are: 20117 as_fn_error "Please enable just 1 OpenGL-ES flavor. Choices are:
19992 --enable-gles-variety-sgx (Most GL-ES2 GPUs with shader compiler) 20118 --enable-gles-variety-sgx (Most GL-ES2 GPUs with shader compiler)
19993 --enable-gles-variety-s3c6410 (s3c6410 with offline shader compiler) 20119 --enable-gles-variety-s3c6410 (s3c6410 with offline shader compiler)
19994 You will also need to enable the OpenGL engine for X11 with: 20120 You will also need to enable the OpenGL engine for X11 with:
@@ -20049,7 +20175,7 @@ fi
20049fi 20175fi
20050 20176
20051if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then 20177if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then
20052 as_fn_error $? "Buffer dependencies not found (strict dependencies checking)" "$LINENO" 5 20178 as_fn_error "Buffer dependencies not found (strict dependencies checking)" "$LINENO" 5
20053fi 20179fi
20054 20180
20055{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Buffer rendering backend will be built" >&5 20181{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Buffer rendering backend will be built" >&5
@@ -20162,7 +20288,7 @@ fi
20162fi 20288fi
20163 20289
20164if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then 20290if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then
20165 as_fn_error $? "Software GDI dependencies not found (strict dependencies checking)" "$LINENO" 5 20291 as_fn_error "Software GDI dependencies not found (strict dependencies checking)" "$LINENO" 5
20166fi 20292fi
20167 20293
20168{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Software GDI rendering backend will be built" >&5 20294{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Software GDI rendering backend will be built" >&5
@@ -20275,7 +20401,7 @@ fi
20275fi 20401fi
20276 20402
20277if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then 20403if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then
20278 as_fn_error $? "Software DirectDraw dependencies not found (strict dependencies checking)" "$LINENO" 5 20404 as_fn_error "Software DirectDraw dependencies not found (strict dependencies checking)" "$LINENO" 5
20279fi 20405fi
20280 20406
20281{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Software DirectDraw rendering backend will be built" >&5 20407{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Software DirectDraw rendering backend will be built" >&5
@@ -20367,7 +20493,8 @@ for ac_header in d3d9.h d3dx9.h
20367do : 20493do :
20368 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` 20494 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
20369ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" 20495ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
20370if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : 20496eval as_val=\$$as_ac_Header
20497 if test "x$as_val" = x""yes; then :
20371 cat >>confdefs.h <<_ACEOF 20498 cat >>confdefs.h <<_ACEOF
20372#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 20499#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
20373_ACEOF 20500_ACEOF
@@ -20396,7 +20523,7 @@ fi
20396fi 20523fi
20397 20524
20398if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then 20525if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then
20399 as_fn_error $? "Direct3D dependencies not found (strict dependencies checking)" "$LINENO" 5 20526 as_fn_error "Direct3D dependencies not found (strict dependencies checking)" "$LINENO" 5
20400fi 20527fi
20401 20528
20402{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Direct3D rendering backend will be built" >&5 20529{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Direct3D rendering backend will be built" >&5
@@ -20491,10 +20618,11 @@ pkg_failed=no
20491{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SDL" >&5 20618{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SDL" >&5
20492$as_echo_n "checking for SDL... " >&6; } 20619$as_echo_n "checking for SDL... " >&6; }
20493 20620
20494if test -n "$SDL_CFLAGS"; then 20621if test -n "$PKG_CONFIG"; then
20495 pkg_cv_SDL_CFLAGS="$SDL_CFLAGS" 20622 if test -n "$SDL_CFLAGS"; then
20496 elif test -n "$PKG_CONFIG"; then 20623 pkg_cv_SDL_CFLAGS="$SDL_CFLAGS"
20497 if test -n "$PKG_CONFIG" && \ 20624 else
20625 if test -n "$PKG_CONFIG" && \
20498 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sdl >= 1.2.0\""; } >&5 20626 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sdl >= 1.2.0\""; } >&5
20499 ($PKG_CONFIG --exists --print-errors "sdl >= 1.2.0") 2>&5 20627 ($PKG_CONFIG --exists --print-errors "sdl >= 1.2.0") 2>&5
20500 ac_status=$? 20628 ac_status=$?
@@ -20504,13 +20632,15 @@ if test -n "$SDL_CFLAGS"; then
20504else 20632else
20505 pkg_failed=yes 20633 pkg_failed=yes
20506fi 20634fi
20507 else 20635 fi
20508 pkg_failed=untried 20636else
20637 pkg_failed=untried
20509fi 20638fi
20510if test -n "$SDL_LIBS"; then 20639if test -n "$PKG_CONFIG"; then
20511 pkg_cv_SDL_LIBS="$SDL_LIBS" 20640 if test -n "$SDL_LIBS"; then
20512 elif test -n "$PKG_CONFIG"; then 20641 pkg_cv_SDL_LIBS="$SDL_LIBS"
20513 if test -n "$PKG_CONFIG" && \ 20642 else
20643 if test -n "$PKG_CONFIG" && \
20514 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sdl >= 1.2.0\""; } >&5 20644 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sdl >= 1.2.0\""; } >&5
20515 ($PKG_CONFIG --exists --print-errors "sdl >= 1.2.0") 2>&5 20645 ($PKG_CONFIG --exists --print-errors "sdl >= 1.2.0") 2>&5
20516 ac_status=$? 20646 ac_status=$?
@@ -20520,15 +20650,14 @@ if test -n "$SDL_LIBS"; then
20520else 20650else
20521 pkg_failed=yes 20651 pkg_failed=yes
20522fi 20652fi
20523 else 20653 fi
20524 pkg_failed=untried 20654else
20655 pkg_failed=untried
20525fi 20656fi
20526 20657
20527 20658
20528 20659
20529if test $pkg_failed = yes; then 20660if test $pkg_failed = yes; then
20530 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
20531$as_echo "no" >&6; }
20532 20661
20533if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 20662if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
20534 _pkg_short_errors_supported=yes 20663 _pkg_short_errors_supported=yes
@@ -20536,14 +20665,14 @@ else
20536 _pkg_short_errors_supported=no 20665 _pkg_short_errors_supported=no
20537fi 20666fi
20538 if test $_pkg_short_errors_supported = yes; then 20667 if test $_pkg_short_errors_supported = yes; then
20539 SDL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "sdl >= 1.2.0" 2>&1` 20668 SDL_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "sdl >= 1.2.0"`
20540 else 20669 else
20541 SDL_PKG_ERRORS=`$PKG_CONFIG --print-errors "sdl >= 1.2.0" 2>&1` 20670 SDL_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "sdl >= 1.2.0"`
20542 fi 20671 fi
20543 # Put the nasty error message in config.log where it belongs 20672 # Put the nasty error message in config.log where it belongs
20544 echo "$SDL_PKG_ERRORS" >&5 20673 echo "$SDL_PKG_ERRORS" >&5
20545 20674
20546 as_fn_error $? "Package requirements (sdl >= 1.2.0) were not met: 20675 as_fn_error "Package requirements (sdl >= 1.2.0) were not met:
20547 20676
20548$SDL_PKG_ERRORS 20677$SDL_PKG_ERRORS
20549 20678
@@ -20552,13 +20681,12 @@ installed software in a non-standard prefix.
20552 20681
20553Alternatively, you may set the environment variables SDL_CFLAGS 20682Alternatively, you may set the environment variables SDL_CFLAGS
20554and SDL_LIBS to avoid the need to call pkg-config. 20683and SDL_LIBS to avoid the need to call pkg-config.
20555See the pkg-config man page for more details." "$LINENO" 5 20684See the pkg-config man page for more details.
20685" "$LINENO" 5
20556elif test $pkg_failed = untried; then 20686elif test $pkg_failed = untried; then
20557 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
20558$as_echo "no" >&6; }
20559 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 20687 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
20560$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 20688$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
20561as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it 20689as_fn_error "The pkg-config script could not be found or is too old. Make sure it
20562is in your PATH or set the PKG_CONFIG environment variable to the full 20690is in your PATH or set the PKG_CONFIG environment variable to the full
20563path to pkg-config. 20691path to pkg-config.
20564 20692
@@ -20567,7 +20695,7 @@ and SDL_LIBS to avoid the need to call pkg-config.
20567See the pkg-config man page for more details. 20695See the pkg-config man page for more details.
20568 20696
20569To get pkg-config, see <http://pkg-config.freedesktop.org/>. 20697To get pkg-config, see <http://pkg-config.freedesktop.org/>.
20570See \`config.log' for more details" "$LINENO" 5 ; } 20698See \`config.log' for more details." "$LINENO" 5; }
20571else 20699else
20572 SDL_CFLAGS=$pkg_cv_SDL_CFLAGS 20700 SDL_CFLAGS=$pkg_cv_SDL_CFLAGS
20573 SDL_LIBS=$pkg_cv_SDL_LIBS 20701 SDL_LIBS=$pkg_cv_SDL_LIBS
@@ -20599,7 +20727,7 @@ fi
20599fi 20727fi
20600 20728
20601if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then 20729if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then
20602 as_fn_error $? "Software SDL dependencies not found (strict dependencies checking)" "$LINENO" 5 20730 as_fn_error "Software SDL dependencies not found (strict dependencies checking)" "$LINENO" 5
20603fi 20731fi
20604 20732
20605{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Software SDL rendering backend will be built" >&5 20733{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Software SDL rendering backend will be built" >&5
@@ -20708,7 +20836,7 @@ fi
20708fi 20836fi
20709 20837
20710if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then 20838if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then
20711 as_fn_error $? "PSL1GHT dependencies not found (strict dependencies checking)" "$LINENO" 5 20839 as_fn_error "PSL1GHT dependencies not found (strict dependencies checking)" "$LINENO" 5
20712fi 20840fi
20713 20841
20714{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether PSL1GHT rendering backend will be built" >&5 20842{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether PSL1GHT rendering backend will be built" >&5
@@ -20803,10 +20931,11 @@ pkg_failed=no
20803{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SDL" >&5 20931{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SDL" >&5
20804$as_echo_n "checking for SDL... " >&6; } 20932$as_echo_n "checking for SDL... " >&6; }
20805 20933
20806if test -n "$SDL_CFLAGS"; then 20934if test -n "$PKG_CONFIG"; then
20807 pkg_cv_SDL_CFLAGS="$SDL_CFLAGS" 20935 if test -n "$SDL_CFLAGS"; then
20808 elif test -n "$PKG_CONFIG"; then 20936 pkg_cv_SDL_CFLAGS="$SDL_CFLAGS"
20809 if test -n "$PKG_CONFIG" && \ 20937 else
20938 if test -n "$PKG_CONFIG" && \
20810 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sdl >= 1.2.0\""; } >&5 20939 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sdl >= 1.2.0\""; } >&5
20811 ($PKG_CONFIG --exists --print-errors "sdl >= 1.2.0") 2>&5 20940 ($PKG_CONFIG --exists --print-errors "sdl >= 1.2.0") 2>&5
20812 ac_status=$? 20941 ac_status=$?
@@ -20816,13 +20945,15 @@ if test -n "$SDL_CFLAGS"; then
20816else 20945else
20817 pkg_failed=yes 20946 pkg_failed=yes
20818fi 20947fi
20819 else 20948 fi
20820 pkg_failed=untried 20949else
20950 pkg_failed=untried
20821fi 20951fi
20822if test -n "$SDL_LIBS"; then 20952if test -n "$PKG_CONFIG"; then
20823 pkg_cv_SDL_LIBS="$SDL_LIBS" 20953 if test -n "$SDL_LIBS"; then
20824 elif test -n "$PKG_CONFIG"; then 20954 pkg_cv_SDL_LIBS="$SDL_LIBS"
20825 if test -n "$PKG_CONFIG" && \ 20955 else
20956 if test -n "$PKG_CONFIG" && \
20826 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sdl >= 1.2.0\""; } >&5 20957 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sdl >= 1.2.0\""; } >&5
20827 ($PKG_CONFIG --exists --print-errors "sdl >= 1.2.0") 2>&5 20958 ($PKG_CONFIG --exists --print-errors "sdl >= 1.2.0") 2>&5
20828 ac_status=$? 20959 ac_status=$?
@@ -20832,15 +20963,14 @@ if test -n "$SDL_LIBS"; then
20832else 20963else
20833 pkg_failed=yes 20964 pkg_failed=yes
20834fi 20965fi
20835 else 20966 fi
20836 pkg_failed=untried 20967else
20968 pkg_failed=untried
20837fi 20969fi
20838 20970
20839 20971
20840 20972
20841if test $pkg_failed = yes; then 20973if test $pkg_failed = yes; then
20842 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
20843$as_echo "no" >&6; }
20844 20974
20845if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 20975if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
20846 _pkg_short_errors_supported=yes 20976 _pkg_short_errors_supported=yes
@@ -20848,14 +20978,14 @@ else
20848 _pkg_short_errors_supported=no 20978 _pkg_short_errors_supported=no
20849fi 20979fi
20850 if test $_pkg_short_errors_supported = yes; then 20980 if test $_pkg_short_errors_supported = yes; then
20851 SDL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "sdl >= 1.2.0" 2>&1` 20981 SDL_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "sdl >= 1.2.0"`
20852 else 20982 else
20853 SDL_PKG_ERRORS=`$PKG_CONFIG --print-errors "sdl >= 1.2.0" 2>&1` 20983 SDL_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "sdl >= 1.2.0"`
20854 fi 20984 fi
20855 # Put the nasty error message in config.log where it belongs 20985 # Put the nasty error message in config.log where it belongs
20856 echo "$SDL_PKG_ERRORS" >&5 20986 echo "$SDL_PKG_ERRORS" >&5
20857 20987
20858 as_fn_error $? "Package requirements (sdl >= 1.2.0) were not met: 20988 as_fn_error "Package requirements (sdl >= 1.2.0) were not met:
20859 20989
20860$SDL_PKG_ERRORS 20990$SDL_PKG_ERRORS
20861 20991
@@ -20864,13 +20994,12 @@ installed software in a non-standard prefix.
20864 20994
20865Alternatively, you may set the environment variables SDL_CFLAGS 20995Alternatively, you may set the environment variables SDL_CFLAGS
20866and SDL_LIBS to avoid the need to call pkg-config. 20996and SDL_LIBS to avoid the need to call pkg-config.
20867See the pkg-config man page for more details." "$LINENO" 5 20997See the pkg-config man page for more details.
20998" "$LINENO" 5
20868elif test $pkg_failed = untried; then 20999elif test $pkg_failed = untried; then
20869 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
20870$as_echo "no" >&6; }
20871 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 21000 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
20872$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 21001$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
20873as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it 21002as_fn_error "The pkg-config script could not be found or is too old. Make sure it
20874is in your PATH or set the PKG_CONFIG environment variable to the full 21003is in your PATH or set the PKG_CONFIG environment variable to the full
20875path to pkg-config. 21004path to pkg-config.
20876 21005
@@ -20879,7 +21008,7 @@ and SDL_LIBS to avoid the need to call pkg-config.
20879See the pkg-config man page for more details. 21008See the pkg-config man page for more details.
20880 21009
20881To get pkg-config, see <http://pkg-config.freedesktop.org/>. 21010To get pkg-config, see <http://pkg-config.freedesktop.org/>.
20882See \`config.log' for more details" "$LINENO" 5 ; } 21011See \`config.log' for more details." "$LINENO" 5; }
20883else 21012else
20884 SDL_CFLAGS=$pkg_cv_SDL_CFLAGS 21013 SDL_CFLAGS=$pkg_cv_SDL_CFLAGS
20885 SDL_LIBS=$pkg_cv_SDL_LIBS 21014 SDL_LIBS=$pkg_cv_SDL_LIBS
@@ -21040,7 +21169,7 @@ fi
21040fi 21169fi
21041 21170
21042if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then 21171if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then
21043 as_fn_error $? "OpenGL SDL dependencies not found (strict dependencies checking)" "$LINENO" 5 21172 as_fn_error "OpenGL SDL dependencies not found (strict dependencies checking)" "$LINENO" 5
21044fi 21173fi
21045 21174
21046{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether OpenGL SDL rendering backend will be built" >&5 21175{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether OpenGL SDL rendering backend will be built" >&5
@@ -21184,10 +21313,11 @@ pkg_failed=no
21184{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GL_EET" >&5 21313{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GL_EET" >&5
21185$as_echo_n "checking for GL_EET... " >&6; } 21314$as_echo_n "checking for GL_EET... " >&6; }
21186 21315
21187if test -n "$GL_EET_CFLAGS"; then 21316if test -n "$PKG_CONFIG"; then
21188 pkg_cv_GL_EET_CFLAGS="$GL_EET_CFLAGS" 21317 if test -n "$GL_EET_CFLAGS"; then
21189 elif test -n "$PKG_CONFIG"; then 21318 pkg_cv_GL_EET_CFLAGS="$GL_EET_CFLAGS"
21190 if test -n "$PKG_CONFIG" && \ 21319 else
21320 if test -n "$PKG_CONFIG" && \
21191 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eet >= 1.5.0\""; } >&5 21321 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eet >= 1.5.0\""; } >&5
21192 ($PKG_CONFIG --exists --print-errors "eet >= 1.5.0") 2>&5 21322 ($PKG_CONFIG --exists --print-errors "eet >= 1.5.0") 2>&5
21193 ac_status=$? 21323 ac_status=$?
@@ -21197,13 +21327,15 @@ if test -n "$GL_EET_CFLAGS"; then
21197else 21327else
21198 pkg_failed=yes 21328 pkg_failed=yes
21199fi 21329fi
21200 else 21330 fi
21201 pkg_failed=untried 21331else
21332 pkg_failed=untried
21202fi 21333fi
21203if test -n "$GL_EET_LIBS"; then 21334if test -n "$PKG_CONFIG"; then
21204 pkg_cv_GL_EET_LIBS="$GL_EET_LIBS" 21335 if test -n "$GL_EET_LIBS"; then
21205 elif test -n "$PKG_CONFIG"; then 21336 pkg_cv_GL_EET_LIBS="$GL_EET_LIBS"
21206 if test -n "$PKG_CONFIG" && \ 21337 else
21338 if test -n "$PKG_CONFIG" && \
21207 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eet >= 1.5.0\""; } >&5 21339 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eet >= 1.5.0\""; } >&5
21208 ($PKG_CONFIG --exists --print-errors "eet >= 1.5.0") 2>&5 21340 ($PKG_CONFIG --exists --print-errors "eet >= 1.5.0") 2>&5
21209 ac_status=$? 21341 ac_status=$?
@@ -21213,15 +21345,14 @@ if test -n "$GL_EET_LIBS"; then
21213else 21345else
21214 pkg_failed=yes 21346 pkg_failed=yes
21215fi 21347fi
21216 else 21348 fi
21217 pkg_failed=untried 21349else
21350 pkg_failed=untried
21218fi 21351fi
21219 21352
21220 21353
21221 21354
21222if test $pkg_failed = yes; then 21355if test $pkg_failed = yes; then
21223 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21224$as_echo "no" >&6; }
21225 21356
21226if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 21357if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
21227 _pkg_short_errors_supported=yes 21358 _pkg_short_errors_supported=yes
@@ -21229,17 +21360,17 @@ else
21229 _pkg_short_errors_supported=no 21360 _pkg_short_errors_supported=no
21230fi 21361fi
21231 if test $_pkg_short_errors_supported = yes; then 21362 if test $_pkg_short_errors_supported = yes; then
21232 GL_EET_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "eet >= 1.5.0" 2>&1` 21363 GL_EET_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "eet >= 1.5.0"`
21233 else 21364 else
21234 GL_EET_PKG_ERRORS=`$PKG_CONFIG --print-errors "eet >= 1.5.0" 2>&1` 21365 GL_EET_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "eet >= 1.5.0"`
21235 fi 21366 fi
21236 # Put the nasty error message in config.log where it belongs 21367 # Put the nasty error message in config.log where it belongs
21237 echo "$GL_EET_PKG_ERRORS" >&5 21368 echo "$GL_EET_PKG_ERRORS" >&5
21238 21369
21239 have_dep="no" 21370 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21240elif test $pkg_failed = untried; then
21241 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21242$as_echo "no" >&6; } 21371$as_echo "no" >&6; }
21372 have_dep="no"
21373elif test $pkg_failed = untried; then
21243 have_dep="no" 21374 have_dep="no"
21244else 21375else
21245 GL_EET_CFLAGS=$pkg_cv_GL_EET_CFLAGS 21376 GL_EET_CFLAGS=$pkg_cv_GL_EET_CFLAGS
@@ -21263,7 +21394,7 @@ fi
21263fi 21394fi
21264 21395
21265if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then 21396if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then
21266 as_fn_error $? "OpenGL Cocoa dependencies not found (strict dependencies checking)" "$LINENO" 5 21397 as_fn_error "OpenGL Cocoa dependencies not found (strict dependencies checking)" "$LINENO" 5
21267fi 21398fi
21268 21399
21269{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether OpenGL Cocoa rendering backend will be built" >&5 21400{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether OpenGL Cocoa rendering backend will be built" >&5
@@ -21372,7 +21503,7 @@ fi
21372fi 21503fi
21373 21504
21374if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then 21505if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then
21375 as_fn_error $? "Framebuffer dependencies not found (strict dependencies checking)" "$LINENO" 5 21506 as_fn_error "Framebuffer dependencies not found (strict dependencies checking)" "$LINENO" 5
21376fi 21507fi
21377 21508
21378{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Framebuffer rendering backend will be built" >&5 21509{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Framebuffer rendering backend will be built" >&5
@@ -21467,10 +21598,11 @@ pkg_failed=no
21467{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for DIRECTFB" >&5 21598{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for DIRECTFB" >&5
21468$as_echo_n "checking for DIRECTFB... " >&6; } 21599$as_echo_n "checking for DIRECTFB... " >&6; }
21469 21600
21470if test -n "$DIRECTFB_CFLAGS"; then 21601if test -n "$PKG_CONFIG"; then
21471 pkg_cv_DIRECTFB_CFLAGS="$DIRECTFB_CFLAGS" 21602 if test -n "$DIRECTFB_CFLAGS"; then
21472 elif test -n "$PKG_CONFIG"; then 21603 pkg_cv_DIRECTFB_CFLAGS="$DIRECTFB_CFLAGS"
21473 if test -n "$PKG_CONFIG" && \ 21604 else
21605 if test -n "$PKG_CONFIG" && \
21474 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"directfb >= 0.9.16\""; } >&5 21606 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"directfb >= 0.9.16\""; } >&5
21475 ($PKG_CONFIG --exists --print-errors "directfb >= 0.9.16") 2>&5 21607 ($PKG_CONFIG --exists --print-errors "directfb >= 0.9.16") 2>&5
21476 ac_status=$? 21608 ac_status=$?
@@ -21480,13 +21612,15 @@ if test -n "$DIRECTFB_CFLAGS"; then
21480else 21612else
21481 pkg_failed=yes 21613 pkg_failed=yes
21482fi 21614fi
21483 else 21615 fi
21484 pkg_failed=untried 21616else
21617 pkg_failed=untried
21485fi 21618fi
21486if test -n "$DIRECTFB_LIBS"; then 21619if test -n "$PKG_CONFIG"; then
21487 pkg_cv_DIRECTFB_LIBS="$DIRECTFB_LIBS" 21620 if test -n "$DIRECTFB_LIBS"; then
21488 elif test -n "$PKG_CONFIG"; then 21621 pkg_cv_DIRECTFB_LIBS="$DIRECTFB_LIBS"
21489 if test -n "$PKG_CONFIG" && \ 21622 else
21623 if test -n "$PKG_CONFIG" && \
21490 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"directfb >= 0.9.16\""; } >&5 21624 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"directfb >= 0.9.16\""; } >&5
21491 ($PKG_CONFIG --exists --print-errors "directfb >= 0.9.16") 2>&5 21625 ($PKG_CONFIG --exists --print-errors "directfb >= 0.9.16") 2>&5
21492 ac_status=$? 21626 ac_status=$?
@@ -21496,15 +21630,14 @@ if test -n "$DIRECTFB_LIBS"; then
21496else 21630else
21497 pkg_failed=yes 21631 pkg_failed=yes
21498fi 21632fi
21499 else 21633 fi
21500 pkg_failed=untried 21634else
21635 pkg_failed=untried
21501fi 21636fi
21502 21637
21503 21638
21504 21639
21505if test $pkg_failed = yes; then 21640if test $pkg_failed = yes; then
21506 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21507$as_echo "no" >&6; }
21508 21641
21509if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 21642if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
21510 _pkg_short_errors_supported=yes 21643 _pkg_short_errors_supported=yes
@@ -21512,14 +21645,14 @@ else
21512 _pkg_short_errors_supported=no 21645 _pkg_short_errors_supported=no
21513fi 21646fi
21514 if test $_pkg_short_errors_supported = yes; then 21647 if test $_pkg_short_errors_supported = yes; then
21515 DIRECTFB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "directfb >= 0.9.16" 2>&1` 21648 DIRECTFB_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "directfb >= 0.9.16"`
21516 else 21649 else
21517 DIRECTFB_PKG_ERRORS=`$PKG_CONFIG --print-errors "directfb >= 0.9.16" 2>&1` 21650 DIRECTFB_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "directfb >= 0.9.16"`
21518 fi 21651 fi
21519 # Put the nasty error message in config.log where it belongs 21652 # Put the nasty error message in config.log where it belongs
21520 echo "$DIRECTFB_PKG_ERRORS" >&5 21653 echo "$DIRECTFB_PKG_ERRORS" >&5
21521 21654
21522 as_fn_error $? "Package requirements (directfb >= 0.9.16) were not met: 21655 as_fn_error "Package requirements (directfb >= 0.9.16) were not met:
21523 21656
21524$DIRECTFB_PKG_ERRORS 21657$DIRECTFB_PKG_ERRORS
21525 21658
@@ -21528,13 +21661,12 @@ installed software in a non-standard prefix.
21528 21661
21529Alternatively, you may set the environment variables DIRECTFB_CFLAGS 21662Alternatively, you may set the environment variables DIRECTFB_CFLAGS
21530and DIRECTFB_LIBS to avoid the need to call pkg-config. 21663and DIRECTFB_LIBS to avoid the need to call pkg-config.
21531See the pkg-config man page for more details." "$LINENO" 5 21664See the pkg-config man page for more details.
21665" "$LINENO" 5
21532elif test $pkg_failed = untried; then 21666elif test $pkg_failed = untried; then
21533 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21534$as_echo "no" >&6; }
21535 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 21667 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
21536$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 21668$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
21537as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it 21669as_fn_error "The pkg-config script could not be found or is too old. Make sure it
21538is in your PATH or set the PKG_CONFIG environment variable to the full 21670is in your PATH or set the PKG_CONFIG environment variable to the full
21539path to pkg-config. 21671path to pkg-config.
21540 21672
@@ -21543,7 +21675,7 @@ and DIRECTFB_LIBS to avoid the need to call pkg-config.
21543See the pkg-config man page for more details. 21675See the pkg-config man page for more details.
21544 21676
21545To get pkg-config, see <http://pkg-config.freedesktop.org/>. 21677To get pkg-config, see <http://pkg-config.freedesktop.org/>.
21546See \`config.log' for more details" "$LINENO" 5 ; } 21678See \`config.log' for more details." "$LINENO" 5; }
21547else 21679else
21548 DIRECTFB_CFLAGS=$pkg_cv_DIRECTFB_CFLAGS 21680 DIRECTFB_CFLAGS=$pkg_cv_DIRECTFB_CFLAGS
21549 DIRECTFB_LIBS=$pkg_cv_DIRECTFB_LIBS 21681 DIRECTFB_LIBS=$pkg_cv_DIRECTFB_LIBS
@@ -21575,7 +21707,7 @@ fi
21575fi 21707fi
21576 21708
21577if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then 21709if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then
21578 as_fn_error $? "DirectFB dependencies not found (strict dependencies checking)" "$LINENO" 5 21710 as_fn_error "DirectFB dependencies not found (strict dependencies checking)" "$LINENO" 5
21579fi 21711fi
21580 21712
21581{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether DirectFB rendering backend will be built" >&5 21713{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether DirectFB rendering backend will be built" >&5
@@ -21669,10 +21801,11 @@ pkg_failed=no
21669{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB" >&5 21801{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB" >&5
21670$as_echo_n "checking for XCB... " >&6; } 21802$as_echo_n "checking for XCB... " >&6; }
21671 21803
21672if test -n "$XCB_CFLAGS"; then 21804if test -n "$PKG_CONFIG"; then
21673 pkg_cv_XCB_CFLAGS="$XCB_CFLAGS" 21805 if test -n "$XCB_CFLAGS"; then
21674 elif test -n "$PKG_CONFIG"; then 21806 pkg_cv_XCB_CFLAGS="$XCB_CFLAGS"
21675 if test -n "$PKG_CONFIG" && \ 21807 else
21808 if test -n "$PKG_CONFIG" && \
21676 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb xcb-shm xcb-image >= 0.2.1 pixman-1\""; } >&5 21809 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb xcb-shm xcb-image >= 0.2.1 pixman-1\""; } >&5
21677 ($PKG_CONFIG --exists --print-errors "xcb xcb-shm xcb-image >= 0.2.1 pixman-1") 2>&5 21810 ($PKG_CONFIG --exists --print-errors "xcb xcb-shm xcb-image >= 0.2.1 pixman-1") 2>&5
21678 ac_status=$? 21811 ac_status=$?
@@ -21682,13 +21815,15 @@ if test -n "$XCB_CFLAGS"; then
21682else 21815else
21683 pkg_failed=yes 21816 pkg_failed=yes
21684fi 21817fi
21685 else 21818 fi
21686 pkg_failed=untried 21819else
21820 pkg_failed=untried
21687fi 21821fi
21688if test -n "$XCB_LIBS"; then 21822if test -n "$PKG_CONFIG"; then
21689 pkg_cv_XCB_LIBS="$XCB_LIBS" 21823 if test -n "$XCB_LIBS"; then
21690 elif test -n "$PKG_CONFIG"; then 21824 pkg_cv_XCB_LIBS="$XCB_LIBS"
21691 if test -n "$PKG_CONFIG" && \ 21825 else
21826 if test -n "$PKG_CONFIG" && \
21692 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb xcb-shm xcb-image >= 0.2.1 pixman-1\""; } >&5 21827 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb xcb-shm xcb-image >= 0.2.1 pixman-1\""; } >&5
21693 ($PKG_CONFIG --exists --print-errors "xcb xcb-shm xcb-image >= 0.2.1 pixman-1") 2>&5 21828 ($PKG_CONFIG --exists --print-errors "xcb xcb-shm xcb-image >= 0.2.1 pixman-1") 2>&5
21694 ac_status=$? 21829 ac_status=$?
@@ -21698,15 +21833,14 @@ if test -n "$XCB_LIBS"; then
21698else 21833else
21699 pkg_failed=yes 21834 pkg_failed=yes
21700fi 21835fi
21701 else 21836 fi
21702 pkg_failed=untried 21837else
21838 pkg_failed=untried
21703fi 21839fi
21704 21840
21705 21841
21706 21842
21707if test $pkg_failed = yes; then 21843if test $pkg_failed = yes; then
21708 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21709$as_echo "no" >&6; }
21710 21844
21711if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 21845if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
21712 _pkg_short_errors_supported=yes 21846 _pkg_short_errors_supported=yes
@@ -21714,20 +21848,20 @@ else
21714 _pkg_short_errors_supported=no 21848 _pkg_short_errors_supported=no
21715fi 21849fi
21716 if test $_pkg_short_errors_supported = yes; then 21850 if test $_pkg_short_errors_supported = yes; then
21717 XCB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "xcb xcb-shm xcb-image >= 0.2.1 pixman-1" 2>&1` 21851 XCB_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "xcb xcb-shm xcb-image >= 0.2.1 pixman-1"`
21718 else 21852 else
21719 XCB_PKG_ERRORS=`$PKG_CONFIG --print-errors "xcb xcb-shm xcb-image >= 0.2.1 pixman-1" 2>&1` 21853 XCB_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "xcb xcb-shm xcb-image >= 0.2.1 pixman-1"`
21720 fi 21854 fi
21721 # Put the nasty error message in config.log where it belongs 21855 # Put the nasty error message in config.log where it belongs
21722 echo "$XCB_PKG_ERRORS" >&5 21856 echo "$XCB_PKG_ERRORS" >&5
21723 21857
21858 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21859$as_echo "no" >&6; }
21724 21860
21725 have_dep="no" 21861 have_dep="no"
21726 21862
21727 21863
21728elif test $pkg_failed = untried; then 21864elif test $pkg_failed = untried; then
21729 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
21730$as_echo "no" >&6; }
21731 21865
21732 have_dep="no" 21866 have_dep="no"
21733 21867
@@ -21762,7 +21896,7 @@ fi
21762fi 21896fi
21763 21897
21764if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then 21898if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then
21765 as_fn_error $? "Software X11 8 bits grayscale dependencies not found (strict dependencies checking)" "$LINENO" 5 21899 as_fn_error "Software X11 8 bits grayscale dependencies not found (strict dependencies checking)" "$LINENO" 5
21766fi 21900fi
21767 21901
21768{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Software X11 8 bits grayscale rendering backend will be built" >&5 21902{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Software X11 8 bits grayscale rendering backend will be built" >&5
@@ -21866,7 +22000,7 @@ if test "x$with_x" = xno; then
21866 have_x=disabled 22000 have_x=disabled
21867else 22001else
21868 case $x_includes,$x_libraries in #( 22002 case $x_includes,$x_libraries in #(
21869 *\'*) as_fn_error $? "cannot use X directory names containing '" "$LINENO" 5 ;; #( 22003 *\'*) as_fn_error "cannot use X directory names containing '" "$LINENO" 5;; #(
21870 *,NONE | NONE,*) if test "${ac_cv_have_x+set}" = set; then : 22004 *,NONE | NONE,*) if test "${ac_cv_have_x+set}" = set; then :
21871 $as_echo_n "(cached) " >&6 22005 $as_echo_n "(cached) " >&6
21872else 22006else
@@ -21884,7 +22018,7 @@ libdir:
21884 @echo libdir='${LIBDIR}' 22018 @echo libdir='${LIBDIR}'
21885_ACEOF 22019_ACEOF
21886 if (export CC; ${XMKMF-xmkmf}) >/dev/null 2>/dev/null && test -f Makefile; then 22020 if (export CC; ${XMKMF-xmkmf}) >/dev/null 2>/dev/null && test -f Makefile; then
21887 # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. 22021 # GNU make sometimes prints "make[1]: Entering...", which would confuse us.
21888 for ac_var in incroot usrlibdir libdir; do 22022 for ac_var in incroot usrlibdir libdir; do
21889 eval "ac_im_$ac_var=\`\${MAKE-make} $ac_var 2>/dev/null | sed -n 's/^$ac_var=//p'\`" 22023 eval "ac_im_$ac_var=\`\${MAKE-make} $ac_var 2>/dev/null | sed -n 's/^$ac_var=//p'\`"
21890 done 22024 done
@@ -21970,7 +22104,7 @@ else
21970 fi 22104 fi
21971done 22105done
21972fi 22106fi
21973rm -f conftest.err conftest.i conftest.$ac_ext 22107rm -f conftest.err conftest.$ac_ext
21974fi # $ac_x_includes = no 22108fi # $ac_x_includes = no
21975 22109
21976if test "$ac_x_libraries" = no; then 22110if test "$ac_x_libraries" = no; then
@@ -22657,7 +22791,7 @@ fi
22657fi 22791fi
22658 22792
22659if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then 22793if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then
22660 as_fn_error $? "Software X11 16 bits dependencies not found (strict dependencies checking)" "$LINENO" 5 22794 as_fn_error "Software X11 16 bits dependencies not found (strict dependencies checking)" "$LINENO" 5
22661fi 22795fi
22662 22796
22663{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Software X11 16 bits rendering backend will be built" >&5 22797{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Software X11 16 bits rendering backend will be built" >&5
@@ -22770,7 +22904,7 @@ fi
22770fi 22904fi
22771 22905
22772if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then 22906if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then
22773 as_fn_error $? "Software DirectDraw 16 bits dependencies not found (strict dependencies checking)" "$LINENO" 5 22907 as_fn_error "Software DirectDraw 16 bits dependencies not found (strict dependencies checking)" "$LINENO" 5
22774fi 22908fi
22775 22909
22776{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Software DirectDraw 16 bits rendering backend will be built" >&5 22910{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Software DirectDraw 16 bits rendering backend will be built" >&5
@@ -22872,7 +23006,7 @@ fi
22872fi 23006fi
22873 23007
22874if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then 23008if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then
22875 as_fn_error $? "Software Windows CE 16 bits dependencies not found (strict dependencies checking)" "$LINENO" 5 23009 as_fn_error "Software Windows CE 16 bits dependencies not found (strict dependencies checking)" "$LINENO" 5
22876fi 23010fi
22877 23011
22878{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Software Windows CE 16 bits rendering backend will be built" >&5 23012{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Software Windows CE 16 bits rendering backend will be built" >&5
@@ -22967,10 +23101,11 @@ pkg_failed=no
22967{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SDL" >&5 23101{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SDL" >&5
22968$as_echo_n "checking for SDL... " >&6; } 23102$as_echo_n "checking for SDL... " >&6; }
22969 23103
22970if test -n "$SDL_CFLAGS"; then 23104if test -n "$PKG_CONFIG"; then
22971 pkg_cv_SDL_CFLAGS="$SDL_CFLAGS" 23105 if test -n "$SDL_CFLAGS"; then
22972 elif test -n "$PKG_CONFIG"; then 23106 pkg_cv_SDL_CFLAGS="$SDL_CFLAGS"
22973 if test -n "$PKG_CONFIG" && \ 23107 else
23108 if test -n "$PKG_CONFIG" && \
22974 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sdl >= 1.2.0\""; } >&5 23109 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sdl >= 1.2.0\""; } >&5
22975 ($PKG_CONFIG --exists --print-errors "sdl >= 1.2.0") 2>&5 23110 ($PKG_CONFIG --exists --print-errors "sdl >= 1.2.0") 2>&5
22976 ac_status=$? 23111 ac_status=$?
@@ -22980,13 +23115,15 @@ if test -n "$SDL_CFLAGS"; then
22980else 23115else
22981 pkg_failed=yes 23116 pkg_failed=yes
22982fi 23117fi
22983 else 23118 fi
22984 pkg_failed=untried 23119else
23120 pkg_failed=untried
22985fi 23121fi
22986if test -n "$SDL_LIBS"; then 23122if test -n "$PKG_CONFIG"; then
22987 pkg_cv_SDL_LIBS="$SDL_LIBS" 23123 if test -n "$SDL_LIBS"; then
22988 elif test -n "$PKG_CONFIG"; then 23124 pkg_cv_SDL_LIBS="$SDL_LIBS"
22989 if test -n "$PKG_CONFIG" && \ 23125 else
23126 if test -n "$PKG_CONFIG" && \
22990 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sdl >= 1.2.0\""; } >&5 23127 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sdl >= 1.2.0\""; } >&5
22991 ($PKG_CONFIG --exists --print-errors "sdl >= 1.2.0") 2>&5 23128 ($PKG_CONFIG --exists --print-errors "sdl >= 1.2.0") 2>&5
22992 ac_status=$? 23129 ac_status=$?
@@ -22996,15 +23133,14 @@ if test -n "$SDL_LIBS"; then
22996else 23133else
22997 pkg_failed=yes 23134 pkg_failed=yes
22998fi 23135fi
22999 else 23136 fi
23000 pkg_failed=untried 23137else
23138 pkg_failed=untried
23001fi 23139fi
23002 23140
23003 23141
23004 23142
23005if test $pkg_failed = yes; then 23143if test $pkg_failed = yes; then
23006 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
23007$as_echo "no" >&6; }
23008 23144
23009if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 23145if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
23010 _pkg_short_errors_supported=yes 23146 _pkg_short_errors_supported=yes
@@ -23012,14 +23148,14 @@ else
23012 _pkg_short_errors_supported=no 23148 _pkg_short_errors_supported=no
23013fi 23149fi
23014 if test $_pkg_short_errors_supported = yes; then 23150 if test $_pkg_short_errors_supported = yes; then
23015 SDL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "sdl >= 1.2.0" 2>&1` 23151 SDL_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "sdl >= 1.2.0"`
23016 else 23152 else
23017 SDL_PKG_ERRORS=`$PKG_CONFIG --print-errors "sdl >= 1.2.0" 2>&1` 23153 SDL_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "sdl >= 1.2.0"`
23018 fi 23154 fi
23019 # Put the nasty error message in config.log where it belongs 23155 # Put the nasty error message in config.log where it belongs
23020 echo "$SDL_PKG_ERRORS" >&5 23156 echo "$SDL_PKG_ERRORS" >&5
23021 23157
23022 as_fn_error $? "Package requirements (sdl >= 1.2.0) were not met: 23158 as_fn_error "Package requirements (sdl >= 1.2.0) were not met:
23023 23159
23024$SDL_PKG_ERRORS 23160$SDL_PKG_ERRORS
23025 23161
@@ -23028,13 +23164,12 @@ installed software in a non-standard prefix.
23028 23164
23029Alternatively, you may set the environment variables SDL_CFLAGS 23165Alternatively, you may set the environment variables SDL_CFLAGS
23030and SDL_LIBS to avoid the need to call pkg-config. 23166and SDL_LIBS to avoid the need to call pkg-config.
23031See the pkg-config man page for more details." "$LINENO" 5 23167See the pkg-config man page for more details.
23168" "$LINENO" 5
23032elif test $pkg_failed = untried; then 23169elif test $pkg_failed = untried; then
23033 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
23034$as_echo "no" >&6; }
23035 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 23170 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
23036$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 23171$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
23037as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it 23172as_fn_error "The pkg-config script could not be found or is too old. Make sure it
23038is in your PATH or set the PKG_CONFIG environment variable to the full 23173is in your PATH or set the PKG_CONFIG environment variable to the full
23039path to pkg-config. 23174path to pkg-config.
23040 23175
@@ -23043,7 +23178,7 @@ and SDL_LIBS to avoid the need to call pkg-config.
23043See the pkg-config man page for more details. 23178See the pkg-config man page for more details.
23044 23179
23045To get pkg-config, see <http://pkg-config.freedesktop.org/>. 23180To get pkg-config, see <http://pkg-config.freedesktop.org/>.
23046See \`config.log' for more details" "$LINENO" 5 ; } 23181See \`config.log' for more details." "$LINENO" 5; }
23047else 23182else
23048 SDL_CFLAGS=$pkg_cv_SDL_CFLAGS 23183 SDL_CFLAGS=$pkg_cv_SDL_CFLAGS
23049 SDL_LIBS=$pkg_cv_SDL_LIBS 23184 SDL_LIBS=$pkg_cv_SDL_LIBS
@@ -23075,7 +23210,7 @@ fi
23075fi 23210fi
23076 23211
23077if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then 23212if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then
23078 as_fn_error $? "Software SDL 16 bits dependencies not found (strict dependencies checking)" "$LINENO" 5 23213 as_fn_error "Software SDL 16 bits dependencies not found (strict dependencies checking)" "$LINENO" 5
23079fi 23214fi
23080 23215
23081{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Software SDL 16 bits rendering backend will be built" >&5 23216{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Software SDL 16 bits rendering backend will be built" >&5
@@ -23128,6 +23263,386 @@ fi
23128 23263
23129 23264
23130 23265
23266
23267
23268
23269want_engine="${want_evas_engine_wayland_shm}"
23270want_static_engine="no"
23271have_engine="no"
23272have_evas_engine_wayland_shm="no"
23273
23274# Check whether --enable-wayland-shm was given.
23275if test "${enable_wayland_shm+set}" = set; then :
23276 enableval=$enable_wayland_shm;
23277 if test "x${enableval}" = "xyes" ; then
23278 want_engine="yes"
23279 else
23280 if test "x${enableval}" = "xstatic" ; then
23281 want_engine="static"
23282 else
23283 want_engine="no"
23284 fi
23285 fi
23286
23287fi
23288
23289
23290{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable Wayland Shm rendering backend" >&5
23291$as_echo_n "checking whether to enable Wayland Shm rendering backend... " >&6; }
23292{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${want_engine}" >&5
23293$as_echo "${want_engine}" >&6; }
23294
23295if test "x${want_engine}" = "xyes" -o "x${want_engine}" = "xstatic" -o "x${want_engine}" = "xauto" ; then
23296
23297
23298have_dep="yes"
23299evas_engine_wayland_shm_cflags=""
23300evas_engine_wayland_shm_libs=""
23301
23302
23303
23304
23305if test "x${have_dep}" = "xyes" ; then
23306 have_engine="yes"
23307else
23308 have_engine="no"
23309fi
23310
23311
23312fi
23313
23314if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then
23315 as_fn_error "Wayland Shm dependencies not found (strict dependencies checking)" "$LINENO" 5
23316fi
23317
23318{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Wayland Shm rendering backend will be built" >&5
23319$as_echo_n "checking whether Wayland Shm rendering backend will be built... " >&6; }
23320{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${have_engine}" >&5
23321$as_echo "${have_engine}" >&6; }
23322
23323if test "x${have_engine}" = "xyes" ; then
23324 if test "x${want_engine}" = "xstatic" ; then
23325 have_evas_engine_wayland_shm="static"
23326 want_static_engine="yes"
23327 else
23328 have_evas_engine_wayland_shm="yes"
23329 fi
23330fi
23331
23332if test "x${have_engine}" = "xyes" ; then
23333
23334$as_echo "#define BUILD_ENGINE_WAYLAND_SHM 1" >>confdefs.h
23335
23336fi
23337
23338 if test "x${have_engine}" = "xyes"; then
23339 BUILD_ENGINE_WAYLAND_SHM_TRUE=
23340 BUILD_ENGINE_WAYLAND_SHM_FALSE='#'
23341else
23342 BUILD_ENGINE_WAYLAND_SHM_TRUE='#'
23343 BUILD_ENGINE_WAYLAND_SHM_FALSE=
23344fi
23345
23346
23347if test "x${want_static_engine}" = "xyes" ; then
23348
23349$as_echo "#define EVAS_STATIC_BUILD_WAYLAND_SHM 1" >>confdefs.h
23350
23351 have_static_module="yes"
23352fi
23353
23354 if test "x${want_static_engine}" = "xyes"; then
23355 EVAS_STATIC_BUILD_WAYLAND_SHM_TRUE=
23356 EVAS_STATIC_BUILD_WAYLAND_SHM_FALSE='#'
23357else
23358 EVAS_STATIC_BUILD_WAYLAND_SHM_TRUE='#'
23359 EVAS_STATIC_BUILD_WAYLAND_SHM_FALSE=
23360fi
23361
23362
23363
23364
23365
23366
23367
23368
23369
23370
23371want_engine="${want_evas_engine_wayland_egl}"
23372want_static_engine="no"
23373have_engine="no"
23374have_evas_engine_wayland_egl="no"
23375
23376# Check whether --enable-wayland-egl was given.
23377if test "${enable_wayland_egl+set}" = set; then :
23378 enableval=$enable_wayland_egl;
23379 if test "x${enableval}" = "xyes" ; then
23380 want_engine="yes"
23381 else
23382 if test "x${enableval}" = "xstatic" ; then
23383 want_engine="static"
23384 else
23385 want_engine="no"
23386 fi
23387 fi
23388
23389fi
23390
23391
23392{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable Wayland Egl rendering backend" >&5
23393$as_echo_n "checking whether to enable Wayland Egl rendering backend... " >&6; }
23394{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${want_engine}" >&5
23395$as_echo "${want_engine}" >&6; }
23396
23397if test "x${want_engine}" = "xyes" -o "x${want_engine}" = "xstatic" -o "x${want_engine}" = "xauto" ; then
23398
23399
23400requirement=""
23401have_dep="no"
23402evas_engine_wayland_egl_cflags=""
23403evas_engine_wayland_egl_libs=""
23404
23405
23406pkg_failed=no
23407{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for WAYLAND_EGL" >&5
23408$as_echo_n "checking for WAYLAND_EGL... " >&6; }
23409
23410if test -n "$PKG_CONFIG"; then
23411 if test -n "$WAYLAND_EGL_CFLAGS"; then
23412 pkg_cv_WAYLAND_EGL_CFLAGS="$WAYLAND_EGL_CFLAGS"
23413 else
23414 if test -n "$PKG_CONFIG" && \
23415 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"egl >= 7.10 glesv2 gl wayland-client wayland-egl\""; } >&5
23416 ($PKG_CONFIG --exists --print-errors "egl >= 7.10 glesv2 gl wayland-client wayland-egl") 2>&5
23417 ac_status=$?
23418 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
23419 test $ac_status = 0; }; then
23420 pkg_cv_WAYLAND_EGL_CFLAGS=`$PKG_CONFIG --cflags "egl >= 7.10 glesv2 gl wayland-client wayland-egl" 2>/dev/null`
23421else
23422 pkg_failed=yes
23423fi
23424 fi
23425else
23426 pkg_failed=untried
23427fi
23428if test -n "$PKG_CONFIG"; then
23429 if test -n "$WAYLAND_EGL_LIBS"; then
23430 pkg_cv_WAYLAND_EGL_LIBS="$WAYLAND_EGL_LIBS"
23431 else
23432 if test -n "$PKG_CONFIG" && \
23433 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"egl >= 7.10 glesv2 gl wayland-client wayland-egl\""; } >&5
23434 ($PKG_CONFIG --exists --print-errors "egl >= 7.10 glesv2 gl wayland-client wayland-egl") 2>&5
23435 ac_status=$?
23436 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
23437 test $ac_status = 0; }; then
23438 pkg_cv_WAYLAND_EGL_LIBS=`$PKG_CONFIG --libs "egl >= 7.10 glesv2 gl wayland-client wayland-egl" 2>/dev/null`
23439else
23440 pkg_failed=yes
23441fi
23442 fi
23443else
23444 pkg_failed=untried
23445fi
23446
23447
23448
23449if test $pkg_failed = yes; then
23450
23451if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
23452 _pkg_short_errors_supported=yes
23453else
23454 _pkg_short_errors_supported=no
23455fi
23456 if test $_pkg_short_errors_supported = yes; then
23457 WAYLAND_EGL_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "egl >= 7.10 glesv2 gl wayland-client wayland-egl"`
23458 else
23459 WAYLAND_EGL_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "egl >= 7.10 glesv2 gl wayland-client wayland-egl"`
23460 fi
23461 # Put the nasty error message in config.log where it belongs
23462 echo "$WAYLAND_EGL_PKG_ERRORS" >&5
23463
23464 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
23465$as_echo "no" >&6; }
23466
23467 have_dep="no"
23468
23469
23470elif test $pkg_failed = untried; then
23471
23472 have_dep="no"
23473
23474
23475else
23476 WAYLAND_EGL_CFLAGS=$pkg_cv_WAYLAND_EGL_CFLAGS
23477 WAYLAND_EGL_LIBS=$pkg_cv_WAYLAND_EGL_LIBS
23478 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
23479$as_echo "yes" >&6; }
23480
23481 have_dep="yes"
23482 requirement="egl >= 7.10 glesv2 gl wayland-client wayland-egl"
23483 evas_engine_wayland_egl_cflags="${WAYLAND_EGL_CFLAGS}"
23484 evas_engine_wayland_egl_libs="${WAYLAND_EGL_LIBS}"
23485
23486fi
23487
23488if test "x${have_dep}" = "xyes" ; then
23489
23490pkg_failed=no
23491{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GL_EET" >&5
23492$as_echo_n "checking for GL_EET... " >&6; }
23493
23494if test -n "$PKG_CONFIG"; then
23495 if test -n "$GL_EET_CFLAGS"; then
23496 pkg_cv_GL_EET_CFLAGS="$GL_EET_CFLAGS"
23497 else
23498 if test -n "$PKG_CONFIG" && \
23499 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eet >= 1.5.0\""; } >&5
23500 ($PKG_CONFIG --exists --print-errors "eet >= 1.5.0") 2>&5
23501 ac_status=$?
23502 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
23503 test $ac_status = 0; }; then
23504 pkg_cv_GL_EET_CFLAGS=`$PKG_CONFIG --cflags "eet >= 1.5.0" 2>/dev/null`
23505else
23506 pkg_failed=yes
23507fi
23508 fi
23509else
23510 pkg_failed=untried
23511fi
23512if test -n "$PKG_CONFIG"; then
23513 if test -n "$GL_EET_LIBS"; then
23514 pkg_cv_GL_EET_LIBS="$GL_EET_LIBS"
23515 else
23516 if test -n "$PKG_CONFIG" && \
23517 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eet >= 1.5.0\""; } >&5
23518 ($PKG_CONFIG --exists --print-errors "eet >= 1.5.0") 2>&5
23519 ac_status=$?
23520 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
23521 test $ac_status = 0; }; then
23522 pkg_cv_GL_EET_LIBS=`$PKG_CONFIG --libs "eet >= 1.5.0" 2>/dev/null`
23523else
23524 pkg_failed=yes
23525fi
23526 fi
23527else
23528 pkg_failed=untried
23529fi
23530
23531
23532
23533if test $pkg_failed = yes; then
23534
23535if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
23536 _pkg_short_errors_supported=yes
23537else
23538 _pkg_short_errors_supported=no
23539fi
23540 if test $_pkg_short_errors_supported = yes; then
23541 GL_EET_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "eet >= 1.5.0"`
23542 else
23543 GL_EET_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "eet >= 1.5.0"`
23544 fi
23545 # Put the nasty error message in config.log where it belongs
23546 echo "$GL_EET_PKG_ERRORS" >&5
23547
23548 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
23549$as_echo "no" >&6; }
23550 have_dep="no"
23551elif test $pkg_failed = untried; then
23552 have_dep="no"
23553else
23554 GL_EET_CFLAGS=$pkg_cv_GL_EET_CFLAGS
23555 GL_EET_LIBS=$pkg_cv_GL_EET_LIBS
23556 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
23557$as_echo "yes" >&6; }
23558 have_dep="yes"
23559fi
23560 ac_fn_c_check_header_compile "$LINENO" "GLES2/gl2.h" "ac_cv_header_GLES2_gl2_h" "
23561
23562"
23563if test "x$ac_cv_header_GLES2_gl2_h" = x""yes; then :
23564 have_egl="yes"
23565else
23566 have_egl="no"
23567fi
23568
23569
23570 if test "x${have_egl}" = "xyes" ; then
23571 evas_engine_wayland_egl_cflags="${WAYLAND_EGL_CFLAGS}"
23572 evas_engine_wayland_egl_libs="${WAYLAND_EGL_LIBS} -lGL -lGLESv2 -lEGL"
23573 fi
23574fi
23575
23576
23577
23578
23579if test "x${want_engine}" = "xstatic" ; then
23580 requirement_evas="${requirement} ${requirement_evas}"
23581fi
23582
23583if test "x${have_dep}" = "xyes" ; then
23584 have_engine="yes"
23585else
23586 have_engine="no"
23587fi
23588
23589
23590fi
23591
23592if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then
23593 as_fn_error "Wayland Egl dependencies not found (strict dependencies checking)" "$LINENO" 5
23594fi
23595
23596{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Wayland Egl rendering backend will be built" >&5
23597$as_echo_n "checking whether Wayland Egl rendering backend will be built... " >&6; }
23598{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${have_engine}" >&5
23599$as_echo "${have_engine}" >&6; }
23600
23601if test "x${have_engine}" = "xyes" ; then
23602 if test "x${want_engine}" = "xstatic" ; then
23603 have_evas_engine_wayland_egl="static"
23604 want_static_engine="yes"
23605 else
23606 have_evas_engine_wayland_egl="yes"
23607 fi
23608fi
23609
23610if test "x${have_engine}" = "xyes" ; then
23611
23612$as_echo "#define BUILD_ENGINE_WAYLAND_EGL 1" >>confdefs.h
23613
23614fi
23615
23616 if test "x${have_engine}" = "xyes"; then
23617 BUILD_ENGINE_WAYLAND_EGL_TRUE=
23618 BUILD_ENGINE_WAYLAND_EGL_FALSE='#'
23619else
23620 BUILD_ENGINE_WAYLAND_EGL_TRUE='#'
23621 BUILD_ENGINE_WAYLAND_EGL_FALSE=
23622fi
23623
23624
23625if test "x${want_static_engine}" = "xyes" ; then
23626
23627$as_echo "#define EVAS_STATIC_BUILD_WAYLAND_EGL 1" >>confdefs.h
23628
23629 have_static_module="yes"
23630fi
23631
23632 if test "x${want_static_engine}" = "xyes"; then
23633 EVAS_STATIC_BUILD_WAYLAND_EGL_TRUE=
23634 EVAS_STATIC_BUILD_WAYLAND_EGL_FALSE='#'
23635else
23636 EVAS_STATIC_BUILD_WAYLAND_EGL_TRUE='#'
23637 EVAS_STATIC_BUILD_WAYLAND_EGL_FALSE=
23638fi
23639
23640
23641
23642
23643
23644
23645
23131# SDL primitive 23646# SDL primitive
23132sdl_primitive="no" 23647sdl_primitive="no"
23133 23648
@@ -23241,10 +23756,11 @@ pkg_failed=no
23241{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB" >&5 23756{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB" >&5
23242$as_echo_n "checking for XCB... " >&6; } 23757$as_echo_n "checking for XCB... " >&6; }
23243 23758
23244if test -n "$XCB_CFLAGS"; then 23759if test -n "$PKG_CONFIG"; then
23245 pkg_cv_XCB_CFLAGS="$XCB_CFLAGS" 23760 if test -n "$XCB_CFLAGS"; then
23246 elif test -n "$PKG_CONFIG"; then 23761 pkg_cv_XCB_CFLAGS="$XCB_CFLAGS"
23247 if test -n "$PKG_CONFIG" && \ 23762 else
23763 if test -n "$PKG_CONFIG" && \
23248 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb xcb-shm xcb-image >= 0.2.1 pixman-1\""; } >&5 23764 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb xcb-shm xcb-image >= 0.2.1 pixman-1\""; } >&5
23249 ($PKG_CONFIG --exists --print-errors "xcb xcb-shm xcb-image >= 0.2.1 pixman-1") 2>&5 23765 ($PKG_CONFIG --exists --print-errors "xcb xcb-shm xcb-image >= 0.2.1 pixman-1") 2>&5
23250 ac_status=$? 23766 ac_status=$?
@@ -23254,13 +23770,15 @@ if test -n "$XCB_CFLAGS"; then
23254else 23770else
23255 pkg_failed=yes 23771 pkg_failed=yes
23256fi 23772fi
23257 else 23773 fi
23258 pkg_failed=untried 23774else
23775 pkg_failed=untried
23259fi 23776fi
23260if test -n "$XCB_LIBS"; then 23777if test -n "$PKG_CONFIG"; then
23261 pkg_cv_XCB_LIBS="$XCB_LIBS" 23778 if test -n "$XCB_LIBS"; then
23262 elif test -n "$PKG_CONFIG"; then 23779 pkg_cv_XCB_LIBS="$XCB_LIBS"
23263 if test -n "$PKG_CONFIG" && \ 23780 else
23781 if test -n "$PKG_CONFIG" && \
23264 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb xcb-shm xcb-image >= 0.2.1 pixman-1\""; } >&5 23782 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb xcb-shm xcb-image >= 0.2.1 pixman-1\""; } >&5
23265 ($PKG_CONFIG --exists --print-errors "xcb xcb-shm xcb-image >= 0.2.1 pixman-1") 2>&5 23783 ($PKG_CONFIG --exists --print-errors "xcb xcb-shm xcb-image >= 0.2.1 pixman-1") 2>&5
23266 ac_status=$? 23784 ac_status=$?
@@ -23270,15 +23788,14 @@ if test -n "$XCB_LIBS"; then
23270else 23788else
23271 pkg_failed=yes 23789 pkg_failed=yes
23272fi 23790fi
23273 else 23791 fi
23274 pkg_failed=untried 23792else
23793 pkg_failed=untried
23275fi 23794fi
23276 23795
23277 23796
23278 23797
23279if test $pkg_failed = yes; then 23798if test $pkg_failed = yes; then
23280 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
23281$as_echo "no" >&6; }
23282 23799
23283if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 23800if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
23284 _pkg_short_errors_supported=yes 23801 _pkg_short_errors_supported=yes
@@ -23286,20 +23803,20 @@ else
23286 _pkg_short_errors_supported=no 23803 _pkg_short_errors_supported=no
23287fi 23804fi
23288 if test $_pkg_short_errors_supported = yes; then 23805 if test $_pkg_short_errors_supported = yes; then
23289 XCB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "xcb xcb-shm xcb-image >= 0.2.1 pixman-1" 2>&1` 23806 XCB_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "xcb xcb-shm xcb-image >= 0.2.1 pixman-1"`
23290 else 23807 else
23291 XCB_PKG_ERRORS=`$PKG_CONFIG --print-errors "xcb xcb-shm xcb-image >= 0.2.1 pixman-1" 2>&1` 23808 XCB_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "xcb xcb-shm xcb-image >= 0.2.1 pixman-1"`
23292 fi 23809 fi
23293 # Put the nasty error message in config.log where it belongs 23810 # Put the nasty error message in config.log where it belongs
23294 echo "$XCB_PKG_ERRORS" >&5 23811 echo "$XCB_PKG_ERRORS" >&5
23295 23812
23813 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
23814$as_echo "no" >&6; }
23296 23815
23297 have_dep="no" 23816 have_dep="no"
23298 23817
23299 23818
23300elif test $pkg_failed = untried; then 23819elif test $pkg_failed = untried; then
23301 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
23302$as_echo "no" >&6; }
23303 23820
23304 have_dep="no" 23821 have_dep="no"
23305 23822
@@ -23334,7 +23851,7 @@ fi
23334fi 23851fi
23335 23852
23336if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then 23853if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then
23337 as_fn_error $? "Software XCB dependencies not found (strict dependencies checking)" "$LINENO" 5 23854 as_fn_error "Software XCB dependencies not found (strict dependencies checking)" "$LINENO" 5
23338fi 23855fi
23339 23856
23340{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Software XCB rendering backend will be built" >&5 23857{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Software XCB rendering backend will be built" >&5
@@ -23460,7 +23977,7 @@ if test "x$with_x" = xno; then
23460 have_x=disabled 23977 have_x=disabled
23461else 23978else
23462 case $x_includes,$x_libraries in #( 23979 case $x_includes,$x_libraries in #(
23463 *\'*) as_fn_error $? "cannot use X directory names containing '" "$LINENO" 5 ;; #( 23980 *\'*) as_fn_error "cannot use X directory names containing '" "$LINENO" 5;; #(
23464 *,NONE | NONE,*) if test "${ac_cv_have_x+set}" = set; then : 23981 *,NONE | NONE,*) if test "${ac_cv_have_x+set}" = set; then :
23465 $as_echo_n "(cached) " >&6 23982 $as_echo_n "(cached) " >&6
23466else 23983else
@@ -23478,7 +23995,7 @@ libdir:
23478 @echo libdir='${LIBDIR}' 23995 @echo libdir='${LIBDIR}'
23479_ACEOF 23996_ACEOF
23480 if (export CC; ${XMKMF-xmkmf}) >/dev/null 2>/dev/null && test -f Makefile; then 23997 if (export CC; ${XMKMF-xmkmf}) >/dev/null 2>/dev/null && test -f Makefile; then
23481 # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. 23998 # GNU make sometimes prints "make[1]: Entering...", which would confuse us.
23482 for ac_var in incroot usrlibdir libdir; do 23999 for ac_var in incroot usrlibdir libdir; do
23483 eval "ac_im_$ac_var=\`\${MAKE-make} $ac_var 2>/dev/null | sed -n 's/^$ac_var=//p'\`" 24000 eval "ac_im_$ac_var=\`\${MAKE-make} $ac_var 2>/dev/null | sed -n 's/^$ac_var=//p'\`"
23484 done 24001 done
@@ -23564,7 +24081,7 @@ else
23564 fi 24081 fi
23565done 24082done
23566fi 24083fi
23567rm -f conftest.err conftest.i conftest.$ac_ext 24084rm -f conftest.err conftest.$ac_ext
23568fi # $ac_x_includes = no 24085fi # $ac_x_includes = no
23569 24086
23570if test "$ac_x_libraries" = no; then 24087if test "$ac_x_libraries" = no; then
@@ -24251,7 +24768,7 @@ fi
24251fi 24768fi
24252 24769
24253if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then 24770if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then
24254 as_fn_error $? "Software Xlib dependencies not found (strict dependencies checking)" "$LINENO" 5 24771 as_fn_error "Software Xlib dependencies not found (strict dependencies checking)" "$LINENO" 5
24255fi 24772fi
24256 24773
24257{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Software Xlib rendering backend will be built" >&5 24774{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Software Xlib rendering backend will be built" >&5
@@ -24451,7 +24968,7 @@ if test "x$with_x" = xno; then
24451 have_x=disabled 24968 have_x=disabled
24452else 24969else
24453 case $x_includes,$x_libraries in #( 24970 case $x_includes,$x_libraries in #(
24454 *\'*) as_fn_error $? "cannot use X directory names containing '" "$LINENO" 5 ;; #( 24971 *\'*) as_fn_error "cannot use X directory names containing '" "$LINENO" 5;; #(
24455 *,NONE | NONE,*) if test "${ac_cv_have_x+set}" = set; then : 24972 *,NONE | NONE,*) if test "${ac_cv_have_x+set}" = set; then :
24456 $as_echo_n "(cached) " >&6 24973 $as_echo_n "(cached) " >&6
24457else 24974else
@@ -24469,7 +24986,7 @@ libdir:
24469 @echo libdir='${LIBDIR}' 24986 @echo libdir='${LIBDIR}'
24470_ACEOF 24987_ACEOF
24471 if (export CC; ${XMKMF-xmkmf}) >/dev/null 2>/dev/null && test -f Makefile; then 24988 if (export CC; ${XMKMF-xmkmf}) >/dev/null 2>/dev/null && test -f Makefile; then
24472 # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. 24989 # GNU make sometimes prints "make[1]: Entering...", which would confuse us.
24473 for ac_var in incroot usrlibdir libdir; do 24990 for ac_var in incroot usrlibdir libdir; do
24474 eval "ac_im_$ac_var=\`\${MAKE-make} $ac_var 2>/dev/null | sed -n 's/^$ac_var=//p'\`" 24991 eval "ac_im_$ac_var=\`\${MAKE-make} $ac_var 2>/dev/null | sed -n 's/^$ac_var=//p'\`"
24475 done 24992 done
@@ -24555,7 +25072,7 @@ else
24555 fi 25072 fi
24556done 25073done
24557fi 25074fi
24558rm -f conftest.err conftest.i conftest.$ac_ext 25075rm -f conftest.err conftest.$ac_ext
24559fi # $ac_x_includes = no 25076fi # $ac_x_includes = no
24560 25077
24561if test "$ac_x_libraries" = no; then 25078if test "$ac_x_libraries" = no; then
@@ -25314,10 +25831,11 @@ pkg_failed=no
25314{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_GL" >&5 25831{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_GL" >&5
25315$as_echo_n "checking for XCB_GL... " >&6; } 25832$as_echo_n "checking for XCB_GL... " >&6; }
25316 25833
25317if test -n "$XCB_GL_CFLAGS"; then 25834if test -n "$PKG_CONFIG"; then
25318 pkg_cv_XCB_GL_CFLAGS="$XCB_GL_CFLAGS" 25835 if test -n "$XCB_GL_CFLAGS"; then
25319 elif test -n "$PKG_CONFIG"; then 25836 pkg_cv_XCB_GL_CFLAGS="$XCB_GL_CFLAGS"
25320 if test -n "$PKG_CONFIG" && \ 25837 else
25838 if test -n "$PKG_CONFIG" && \
25321 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"x11-xcb xcb xcb-glx xcb-render xcb-renderutil\""; } >&5 25839 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"x11-xcb xcb xcb-glx xcb-render xcb-renderutil\""; } >&5
25322 ($PKG_CONFIG --exists --print-errors "x11-xcb xcb xcb-glx xcb-render xcb-renderutil") 2>&5 25840 ($PKG_CONFIG --exists --print-errors "x11-xcb xcb xcb-glx xcb-render xcb-renderutil") 2>&5
25323 ac_status=$? 25841 ac_status=$?
@@ -25327,13 +25845,15 @@ if test -n "$XCB_GL_CFLAGS"; then
25327else 25845else
25328 pkg_failed=yes 25846 pkg_failed=yes
25329fi 25847fi
25330 else 25848 fi
25331 pkg_failed=untried 25849else
25850 pkg_failed=untried
25332fi 25851fi
25333if test -n "$XCB_GL_LIBS"; then 25852if test -n "$PKG_CONFIG"; then
25334 pkg_cv_XCB_GL_LIBS="$XCB_GL_LIBS" 25853 if test -n "$XCB_GL_LIBS"; then
25335 elif test -n "$PKG_CONFIG"; then 25854 pkg_cv_XCB_GL_LIBS="$XCB_GL_LIBS"
25336 if test -n "$PKG_CONFIG" && \ 25855 else
25856 if test -n "$PKG_CONFIG" && \
25337 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"x11-xcb xcb xcb-glx xcb-render xcb-renderutil\""; } >&5 25857 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"x11-xcb xcb xcb-glx xcb-render xcb-renderutil\""; } >&5
25338 ($PKG_CONFIG --exists --print-errors "x11-xcb xcb xcb-glx xcb-render xcb-renderutil") 2>&5 25858 ($PKG_CONFIG --exists --print-errors "x11-xcb xcb xcb-glx xcb-render xcb-renderutil") 2>&5
25339 ac_status=$? 25859 ac_status=$?
@@ -25343,15 +25863,14 @@ if test -n "$XCB_GL_LIBS"; then
25343else 25863else
25344 pkg_failed=yes 25864 pkg_failed=yes
25345fi 25865fi
25346 else 25866 fi
25347 pkg_failed=untried 25867else
25868 pkg_failed=untried
25348fi 25869fi
25349 25870
25350 25871
25351 25872
25352if test $pkg_failed = yes; then 25873if test $pkg_failed = yes; then
25353 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
25354$as_echo "no" >&6; }
25355 25874
25356if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 25875if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
25357 _pkg_short_errors_supported=yes 25876 _pkg_short_errors_supported=yes
@@ -25359,20 +25878,20 @@ else
25359 _pkg_short_errors_supported=no 25878 _pkg_short_errors_supported=no
25360fi 25879fi
25361 if test $_pkg_short_errors_supported = yes; then 25880 if test $_pkg_short_errors_supported = yes; then
25362 XCB_GL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "x11-xcb xcb xcb-glx xcb-render xcb-renderutil" 2>&1` 25881 XCB_GL_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "x11-xcb xcb xcb-glx xcb-render xcb-renderutil"`
25363 else 25882 else
25364 XCB_GL_PKG_ERRORS=`$PKG_CONFIG --print-errors "x11-xcb xcb xcb-glx xcb-render xcb-renderutil" 2>&1` 25883 XCB_GL_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "x11-xcb xcb xcb-glx xcb-render xcb-renderutil"`
25365 fi 25884 fi
25366 # Put the nasty error message in config.log where it belongs 25885 # Put the nasty error message in config.log where it belongs
25367 echo "$XCB_GL_PKG_ERRORS" >&5 25886 echo "$XCB_GL_PKG_ERRORS" >&5
25368 25887
25888 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
25889$as_echo "no" >&6; }
25369 25890
25370 have_dep="no" 25891 have_dep="no"
25371 25892
25372 25893
25373elif test $pkg_failed = untried; then 25894elif test $pkg_failed = untried; then
25374 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
25375$as_echo "no" >&6; }
25376 25895
25377 have_dep="no" 25896 have_dep="no"
25378 25897
@@ -25400,10 +25919,11 @@ pkg_failed=no
25400{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GL_EET" >&5 25919{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GL_EET" >&5
25401$as_echo_n "checking for GL_EET... " >&6; } 25920$as_echo_n "checking for GL_EET... " >&6; }
25402 25921
25403if test -n "$GL_EET_CFLAGS"; then 25922if test -n "$PKG_CONFIG"; then
25404 pkg_cv_GL_EET_CFLAGS="$GL_EET_CFLAGS" 25923 if test -n "$GL_EET_CFLAGS"; then
25405 elif test -n "$PKG_CONFIG"; then 25924 pkg_cv_GL_EET_CFLAGS="$GL_EET_CFLAGS"
25406 if test -n "$PKG_CONFIG" && \ 25925 else
25926 if test -n "$PKG_CONFIG" && \
25407 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eet >= 1.5.0\""; } >&5 25927 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eet >= 1.5.0\""; } >&5
25408 ($PKG_CONFIG --exists --print-errors "eet >= 1.5.0") 2>&5 25928 ($PKG_CONFIG --exists --print-errors "eet >= 1.5.0") 2>&5
25409 ac_status=$? 25929 ac_status=$?
@@ -25413,13 +25933,15 @@ if test -n "$GL_EET_CFLAGS"; then
25413else 25933else
25414 pkg_failed=yes 25934 pkg_failed=yes
25415fi 25935fi
25416 else 25936 fi
25417 pkg_failed=untried 25937else
25938 pkg_failed=untried
25418fi 25939fi
25419if test -n "$GL_EET_LIBS"; then 25940if test -n "$PKG_CONFIG"; then
25420 pkg_cv_GL_EET_LIBS="$GL_EET_LIBS" 25941 if test -n "$GL_EET_LIBS"; then
25421 elif test -n "$PKG_CONFIG"; then 25942 pkg_cv_GL_EET_LIBS="$GL_EET_LIBS"
25422 if test -n "$PKG_CONFIG" && \ 25943 else
25944 if test -n "$PKG_CONFIG" && \
25423 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eet >= 1.5.0\""; } >&5 25945 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eet >= 1.5.0\""; } >&5
25424 ($PKG_CONFIG --exists --print-errors "eet >= 1.5.0") 2>&5 25946 ($PKG_CONFIG --exists --print-errors "eet >= 1.5.0") 2>&5
25425 ac_status=$? 25947 ac_status=$?
@@ -25429,15 +25951,14 @@ if test -n "$GL_EET_LIBS"; then
25429else 25951else
25430 pkg_failed=yes 25952 pkg_failed=yes
25431fi 25953fi
25432 else 25954 fi
25433 pkg_failed=untried 25955else
25956 pkg_failed=untried
25434fi 25957fi
25435 25958
25436 25959
25437 25960
25438if test $pkg_failed = yes; then 25961if test $pkg_failed = yes; then
25439 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
25440$as_echo "no" >&6; }
25441 25962
25442if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 25963if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
25443 _pkg_short_errors_supported=yes 25964 _pkg_short_errors_supported=yes
@@ -25445,17 +25966,17 @@ else
25445 _pkg_short_errors_supported=no 25966 _pkg_short_errors_supported=no
25446fi 25967fi
25447 if test $_pkg_short_errors_supported = yes; then 25968 if test $_pkg_short_errors_supported = yes; then
25448 GL_EET_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "eet >= 1.5.0" 2>&1` 25969 GL_EET_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "eet >= 1.5.0"`
25449 else 25970 else
25450 GL_EET_PKG_ERRORS=`$PKG_CONFIG --print-errors "eet >= 1.5.0" 2>&1` 25971 GL_EET_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "eet >= 1.5.0"`
25451 fi 25972 fi
25452 # Put the nasty error message in config.log where it belongs 25973 # Put the nasty error message in config.log where it belongs
25453 echo "$GL_EET_PKG_ERRORS" >&5 25974 echo "$GL_EET_PKG_ERRORS" >&5
25454 25975
25455 have_dep="no" 25976 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
25456elif test $pkg_failed = untried; then
25457 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
25458$as_echo "no" >&6; } 25977$as_echo "no" >&6; }
25978 have_dep="no"
25979elif test $pkg_failed = untried; then
25459 have_dep="no" 25980 have_dep="no"
25460else 25981else
25461 GL_EET_CFLAGS=$pkg_cv_GL_EET_CFLAGS 25982 GL_EET_CFLAGS=$pkg_cv_GL_EET_CFLAGS
@@ -25544,10 +26065,11 @@ pkg_failed=no
25544{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GL_EET" >&5 26065{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GL_EET" >&5
25545$as_echo_n "checking for GL_EET... " >&6; } 26066$as_echo_n "checking for GL_EET... " >&6; }
25546 26067
25547if test -n "$GL_EET_CFLAGS"; then 26068if test -n "$PKG_CONFIG"; then
25548 pkg_cv_GL_EET_CFLAGS="$GL_EET_CFLAGS" 26069 if test -n "$GL_EET_CFLAGS"; then
25549 elif test -n "$PKG_CONFIG"; then 26070 pkg_cv_GL_EET_CFLAGS="$GL_EET_CFLAGS"
25550 if test -n "$PKG_CONFIG" && \ 26071 else
26072 if test -n "$PKG_CONFIG" && \
25551 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eet >= 1.5.0\""; } >&5 26073 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eet >= 1.5.0\""; } >&5
25552 ($PKG_CONFIG --exists --print-errors "eet >= 1.5.0") 2>&5 26074 ($PKG_CONFIG --exists --print-errors "eet >= 1.5.0") 2>&5
25553 ac_status=$? 26075 ac_status=$?
@@ -25557,13 +26079,15 @@ if test -n "$GL_EET_CFLAGS"; then
25557else 26079else
25558 pkg_failed=yes 26080 pkg_failed=yes
25559fi 26081fi
25560 else 26082 fi
25561 pkg_failed=untried 26083else
26084 pkg_failed=untried
25562fi 26085fi
25563if test -n "$GL_EET_LIBS"; then 26086if test -n "$PKG_CONFIG"; then
25564 pkg_cv_GL_EET_LIBS="$GL_EET_LIBS" 26087 if test -n "$GL_EET_LIBS"; then
25565 elif test -n "$PKG_CONFIG"; then 26088 pkg_cv_GL_EET_LIBS="$GL_EET_LIBS"
25566 if test -n "$PKG_CONFIG" && \ 26089 else
26090 if test -n "$PKG_CONFIG" && \
25567 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eet >= 1.5.0\""; } >&5 26091 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eet >= 1.5.0\""; } >&5
25568 ($PKG_CONFIG --exists --print-errors "eet >= 1.5.0") 2>&5 26092 ($PKG_CONFIG --exists --print-errors "eet >= 1.5.0") 2>&5
25569 ac_status=$? 26093 ac_status=$?
@@ -25573,15 +26097,14 @@ if test -n "$GL_EET_LIBS"; then
25573else 26097else
25574 pkg_failed=yes 26098 pkg_failed=yes
25575fi 26099fi
25576 else 26100 fi
25577 pkg_failed=untried 26101else
26102 pkg_failed=untried
25578fi 26103fi
25579 26104
25580 26105
25581 26106
25582if test $pkg_failed = yes; then 26107if test $pkg_failed = yes; then
25583 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
25584$as_echo "no" >&6; }
25585 26108
25586if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 26109if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
25587 _pkg_short_errors_supported=yes 26110 _pkg_short_errors_supported=yes
@@ -25589,17 +26112,17 @@ else
25589 _pkg_short_errors_supported=no 26112 _pkg_short_errors_supported=no
25590fi 26113fi
25591 if test $_pkg_short_errors_supported = yes; then 26114 if test $_pkg_short_errors_supported = yes; then
25592 GL_EET_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "eet >= 1.5.0" 2>&1` 26115 GL_EET_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "eet >= 1.5.0"`
25593 else 26116 else
25594 GL_EET_PKG_ERRORS=`$PKG_CONFIG --print-errors "eet >= 1.5.0" 2>&1` 26117 GL_EET_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "eet >= 1.5.0"`
25595 fi 26118 fi
25596 # Put the nasty error message in config.log where it belongs 26119 # Put the nasty error message in config.log where it belongs
25597 echo "$GL_EET_PKG_ERRORS" >&5 26120 echo "$GL_EET_PKG_ERRORS" >&5
25598 26121
25599 have_dep="no" 26122 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
25600elif test $pkg_failed = untried; then
25601 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
25602$as_echo "no" >&6; } 26123$as_echo "no" >&6; }
26124 have_dep="no"
26125elif test $pkg_failed = untried; then
25603 have_dep="no" 26126 have_dep="no"
25604else 26127else
25605 GL_EET_CFLAGS=$pkg_cv_GL_EET_CFLAGS 26128 GL_EET_CFLAGS=$pkg_cv_GL_EET_CFLAGS
@@ -25636,7 +26159,7 @@ fi
25636fi 26159fi
25637 26160
25638if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then 26161if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then
25639 as_fn_error $? "OpenGL XCB dependencies not found (strict dependencies checking)" "$LINENO" 5 26162 as_fn_error "OpenGL XCB dependencies not found (strict dependencies checking)" "$LINENO" 5
25640fi 26163fi
25641 26164
25642{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether OpenGL XCB rendering backend will be built" >&5 26165{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether OpenGL XCB rendering backend will be built" >&5
@@ -25763,7 +26286,7 @@ if test "x$with_x" = xno; then
25763 have_x=disabled 26286 have_x=disabled
25764else 26287else
25765 case $x_includes,$x_libraries in #( 26288 case $x_includes,$x_libraries in #(
25766 *\'*) as_fn_error $? "cannot use X directory names containing '" "$LINENO" 5 ;; #( 26289 *\'*) as_fn_error "cannot use X directory names containing '" "$LINENO" 5;; #(
25767 *,NONE | NONE,*) if test "${ac_cv_have_x+set}" = set; then : 26290 *,NONE | NONE,*) if test "${ac_cv_have_x+set}" = set; then :
25768 $as_echo_n "(cached) " >&6 26291 $as_echo_n "(cached) " >&6
25769else 26292else
@@ -25781,7 +26304,7 @@ libdir:
25781 @echo libdir='${LIBDIR}' 26304 @echo libdir='${LIBDIR}'
25782_ACEOF 26305_ACEOF
25783 if (export CC; ${XMKMF-xmkmf}) >/dev/null 2>/dev/null && test -f Makefile; then 26306 if (export CC; ${XMKMF-xmkmf}) >/dev/null 2>/dev/null && test -f Makefile; then
25784 # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. 26307 # GNU make sometimes prints "make[1]: Entering...", which would confuse us.
25785 for ac_var in incroot usrlibdir libdir; do 26308 for ac_var in incroot usrlibdir libdir; do
25786 eval "ac_im_$ac_var=\`\${MAKE-make} $ac_var 2>/dev/null | sed -n 's/^$ac_var=//p'\`" 26309 eval "ac_im_$ac_var=\`\${MAKE-make} $ac_var 2>/dev/null | sed -n 's/^$ac_var=//p'\`"
25787 done 26310 done
@@ -25867,7 +26390,7 @@ else
25867 fi 26390 fi
25868done 26391done
25869fi 26392fi
25870rm -f conftest.err conftest.i conftest.$ac_ext 26393rm -f conftest.err conftest.$ac_ext
25871fi # $ac_x_includes = no 26394fi # $ac_x_includes = no
25872 26395
25873if test "$ac_x_libraries" = no; then 26396if test "$ac_x_libraries" = no; then
@@ -26636,10 +27159,11 @@ pkg_failed=no
26636{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GL_EET" >&5 27159{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GL_EET" >&5
26637$as_echo_n "checking for GL_EET... " >&6; } 27160$as_echo_n "checking for GL_EET... " >&6; }
26638 27161
26639if test -n "$GL_EET_CFLAGS"; then 27162if test -n "$PKG_CONFIG"; then
26640 pkg_cv_GL_EET_CFLAGS="$GL_EET_CFLAGS" 27163 if test -n "$GL_EET_CFLAGS"; then
26641 elif test -n "$PKG_CONFIG"; then 27164 pkg_cv_GL_EET_CFLAGS="$GL_EET_CFLAGS"
26642 if test -n "$PKG_CONFIG" && \ 27165 else
27166 if test -n "$PKG_CONFIG" && \
26643 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eet >= 1.5.0\""; } >&5 27167 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eet >= 1.5.0\""; } >&5
26644 ($PKG_CONFIG --exists --print-errors "eet >= 1.5.0") 2>&5 27168 ($PKG_CONFIG --exists --print-errors "eet >= 1.5.0") 2>&5
26645 ac_status=$? 27169 ac_status=$?
@@ -26649,13 +27173,15 @@ if test -n "$GL_EET_CFLAGS"; then
26649else 27173else
26650 pkg_failed=yes 27174 pkg_failed=yes
26651fi 27175fi
26652 else 27176 fi
26653 pkg_failed=untried 27177else
27178 pkg_failed=untried
26654fi 27179fi
26655if test -n "$GL_EET_LIBS"; then 27180if test -n "$PKG_CONFIG"; then
26656 pkg_cv_GL_EET_LIBS="$GL_EET_LIBS" 27181 if test -n "$GL_EET_LIBS"; then
26657 elif test -n "$PKG_CONFIG"; then 27182 pkg_cv_GL_EET_LIBS="$GL_EET_LIBS"
26658 if test -n "$PKG_CONFIG" && \ 27183 else
27184 if test -n "$PKG_CONFIG" && \
26659 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eet >= 1.5.0\""; } >&5 27185 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eet >= 1.5.0\""; } >&5
26660 ($PKG_CONFIG --exists --print-errors "eet >= 1.5.0") 2>&5 27186 ($PKG_CONFIG --exists --print-errors "eet >= 1.5.0") 2>&5
26661 ac_status=$? 27187 ac_status=$?
@@ -26665,15 +27191,14 @@ if test -n "$GL_EET_LIBS"; then
26665else 27191else
26666 pkg_failed=yes 27192 pkg_failed=yes
26667fi 27193fi
26668 else 27194 fi
26669 pkg_failed=untried 27195else
27196 pkg_failed=untried
26670fi 27197fi
26671 27198
26672 27199
26673 27200
26674if test $pkg_failed = yes; then 27201if test $pkg_failed = yes; then
26675 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
26676$as_echo "no" >&6; }
26677 27202
26678if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 27203if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
26679 _pkg_short_errors_supported=yes 27204 _pkg_short_errors_supported=yes
@@ -26681,17 +27206,17 @@ else
26681 _pkg_short_errors_supported=no 27206 _pkg_short_errors_supported=no
26682fi 27207fi
26683 if test $_pkg_short_errors_supported = yes; then 27208 if test $_pkg_short_errors_supported = yes; then
26684 GL_EET_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "eet >= 1.5.0" 2>&1` 27209 GL_EET_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "eet >= 1.5.0"`
26685 else 27210 else
26686 GL_EET_PKG_ERRORS=`$PKG_CONFIG --print-errors "eet >= 1.5.0" 2>&1` 27211 GL_EET_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "eet >= 1.5.0"`
26687 fi 27212 fi
26688 # Put the nasty error message in config.log where it belongs 27213 # Put the nasty error message in config.log where it belongs
26689 echo "$GL_EET_PKG_ERRORS" >&5 27214 echo "$GL_EET_PKG_ERRORS" >&5
26690 27215
26691 have_dep="no" 27216 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
26692elif test $pkg_failed = untried; then
26693 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
26694$as_echo "no" >&6; } 27217$as_echo "no" >&6; }
27218 have_dep="no"
27219elif test $pkg_failed = untried; then
26695 have_dep="no" 27220 have_dep="no"
26696else 27221else
26697 GL_EET_CFLAGS=$pkg_cv_GL_EET_CFLAGS 27222 GL_EET_CFLAGS=$pkg_cv_GL_EET_CFLAGS
@@ -26785,10 +27310,11 @@ pkg_failed=no
26785{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GL_EET" >&5 27310{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GL_EET" >&5
26786$as_echo_n "checking for GL_EET... " >&6; } 27311$as_echo_n "checking for GL_EET... " >&6; }
26787 27312
26788if test -n "$GL_EET_CFLAGS"; then 27313if test -n "$PKG_CONFIG"; then
26789 pkg_cv_GL_EET_CFLAGS="$GL_EET_CFLAGS" 27314 if test -n "$GL_EET_CFLAGS"; then
26790 elif test -n "$PKG_CONFIG"; then 27315 pkg_cv_GL_EET_CFLAGS="$GL_EET_CFLAGS"
26791 if test -n "$PKG_CONFIG" && \ 27316 else
27317 if test -n "$PKG_CONFIG" && \
26792 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eet >= 1.5.0\""; } >&5 27318 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eet >= 1.5.0\""; } >&5
26793 ($PKG_CONFIG --exists --print-errors "eet >= 1.5.0") 2>&5 27319 ($PKG_CONFIG --exists --print-errors "eet >= 1.5.0") 2>&5
26794 ac_status=$? 27320 ac_status=$?
@@ -26798,13 +27324,15 @@ if test -n "$GL_EET_CFLAGS"; then
26798else 27324else
26799 pkg_failed=yes 27325 pkg_failed=yes
26800fi 27326fi
26801 else 27327 fi
26802 pkg_failed=untried 27328else
27329 pkg_failed=untried
26803fi 27330fi
26804if test -n "$GL_EET_LIBS"; then 27331if test -n "$PKG_CONFIG"; then
26805 pkg_cv_GL_EET_LIBS="$GL_EET_LIBS" 27332 if test -n "$GL_EET_LIBS"; then
26806 elif test -n "$PKG_CONFIG"; then 27333 pkg_cv_GL_EET_LIBS="$GL_EET_LIBS"
26807 if test -n "$PKG_CONFIG" && \ 27334 else
27335 if test -n "$PKG_CONFIG" && \
26808 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eet >= 1.5.0\""; } >&5 27336 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eet >= 1.5.0\""; } >&5
26809 ($PKG_CONFIG --exists --print-errors "eet >= 1.5.0") 2>&5 27337 ($PKG_CONFIG --exists --print-errors "eet >= 1.5.0") 2>&5
26810 ac_status=$? 27338 ac_status=$?
@@ -26814,15 +27342,14 @@ if test -n "$GL_EET_LIBS"; then
26814else 27342else
26815 pkg_failed=yes 27343 pkg_failed=yes
26816fi 27344fi
26817 else 27345 fi
26818 pkg_failed=untried 27346else
27347 pkg_failed=untried
26819fi 27348fi
26820 27349
26821 27350
26822 27351
26823if test $pkg_failed = yes; then 27352if test $pkg_failed = yes; then
26824 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
26825$as_echo "no" >&6; }
26826 27353
26827if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 27354if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
26828 _pkg_short_errors_supported=yes 27355 _pkg_short_errors_supported=yes
@@ -26830,17 +27357,17 @@ else
26830 _pkg_short_errors_supported=no 27357 _pkg_short_errors_supported=no
26831fi 27358fi
26832 if test $_pkg_short_errors_supported = yes; then 27359 if test $_pkg_short_errors_supported = yes; then
26833 GL_EET_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "eet >= 1.5.0" 2>&1` 27360 GL_EET_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "eet >= 1.5.0"`
26834 else 27361 else
26835 GL_EET_PKG_ERRORS=`$PKG_CONFIG --print-errors "eet >= 1.5.0" 2>&1` 27362 GL_EET_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "eet >= 1.5.0"`
26836 fi 27363 fi
26837 # Put the nasty error message in config.log where it belongs 27364 # Put the nasty error message in config.log where it belongs
26838 echo "$GL_EET_PKG_ERRORS" >&5 27365 echo "$GL_EET_PKG_ERRORS" >&5
26839 27366
26840 have_dep="no" 27367 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
26841elif test $pkg_failed = untried; then
26842 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
26843$as_echo "no" >&6; } 27368$as_echo "no" >&6; }
27369 have_dep="no"
27370elif test $pkg_failed = untried; then
26844 have_dep="no" 27371 have_dep="no"
26845else 27372else
26846 GL_EET_CFLAGS=$pkg_cv_GL_EET_CFLAGS 27373 GL_EET_CFLAGS=$pkg_cv_GL_EET_CFLAGS
@@ -26878,7 +27405,7 @@ fi
26878fi 27405fi
26879 27406
26880if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then 27407if test "x${have_engine}" = "xno" -a "x${want_engine}" = "xyes" -a "x${use_strict}" = "xyes" ; then
26881 as_fn_error $? "OpenGL XLib dependencies not found (strict dependencies checking)" "$LINENO" 5 27408 as_fn_error "OpenGL XLib dependencies not found (strict dependencies checking)" "$LINENO" 5
26882fi 27409fi
26883 27410
26884{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether OpenGL XLib rendering backend will be built" >&5 27411{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether OpenGL XLib rendering backend will be built" >&5
@@ -27013,13 +27540,15 @@ have_static_evas_engine_gl_common="no"
27013if test "x$have_evas_engine_gl_xlib" = "xyes" \ 27540if test "x$have_evas_engine_gl_xlib" = "xyes" \
27014 || test "x$have_evas_engine_gl_xcb" = "xyes" \ 27541 || test "x$have_evas_engine_gl_xcb" = "xyes" \
27015 || test "x$have_evas_engine_gl_sdl" = "xyes" \ 27542 || test "x$have_evas_engine_gl_sdl" = "xyes" \
27016 || test "x$have_evas_engine_gl_cocoa" = "xyes"; then 27543 || test "x$have_evas_engine_gl_cocoa" = "xyes" \
27544 || test "x$have_evas_engine_wayland_egl" = "xyes"; then
27017 have_evas_engine_gl_common="yes" 27545 have_evas_engine_gl_common="yes"
27018fi 27546fi
27019if test "x$have_evas_engine_gl_xlib" = "xstatic" \ 27547if test "x$have_evas_engine_gl_xlib" = "xstatic" \
27020 || test "x$have_evas_engine_gl_xcb" = "xstatic" \ 27548 || test "x$have_evas_engine_gl_xcb" = "xstatic" \
27021 || test "x$have_evas_engine_gl_sdl" = "xstatic" \ 27549 || test "x$have_evas_engine_gl_sdl" = "xstatic" \
27022 || test "x$have_evas_engine_gl_cocoa" = "xstatic"; then 27550 || test "x$have_evas_engine_gl_cocoa" = "xstatic" \
27551 || test "x$have_evas_engine_wayland_egl" = "xstatic"; then
27023 have_evas_engine_gl_common="yes" 27552 have_evas_engine_gl_common="yes"
27024 have_static_evas_engine_gl_common="yes" 27553 have_static_evas_engine_gl_common="yes"
27025fi 27554fi
@@ -27220,10 +27749,11 @@ pkg_failed=no
27220{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EDB" >&5 27749{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EDB" >&5
27221$as_echo_n "checking for EDB... " >&6; } 27750$as_echo_n "checking for EDB... " >&6; }
27222 27751
27223if test -n "$EDB_CFLAGS"; then 27752if test -n "$PKG_CONFIG"; then
27224 pkg_cv_EDB_CFLAGS="$EDB_CFLAGS" 27753 if test -n "$EDB_CFLAGS"; then
27225 elif test -n "$PKG_CONFIG"; then 27754 pkg_cv_EDB_CFLAGS="$EDB_CFLAGS"
27226 if test -n "$PKG_CONFIG" && \ 27755 else
27756 if test -n "$PKG_CONFIG" && \
27227 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"edb\""; } >&5 27757 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"edb\""; } >&5
27228 ($PKG_CONFIG --exists --print-errors "edb") 2>&5 27758 ($PKG_CONFIG --exists --print-errors "edb") 2>&5
27229 ac_status=$? 27759 ac_status=$?
@@ -27233,13 +27763,15 @@ if test -n "$EDB_CFLAGS"; then
27233else 27763else
27234 pkg_failed=yes 27764 pkg_failed=yes
27235fi 27765fi
27236 else 27766 fi
27237 pkg_failed=untried 27767else
27768 pkg_failed=untried
27238fi 27769fi
27239if test -n "$EDB_LIBS"; then 27770if test -n "$PKG_CONFIG"; then
27240 pkg_cv_EDB_LIBS="$EDB_LIBS" 27771 if test -n "$EDB_LIBS"; then
27241 elif test -n "$PKG_CONFIG"; then 27772 pkg_cv_EDB_LIBS="$EDB_LIBS"
27242 if test -n "$PKG_CONFIG" && \ 27773 else
27774 if test -n "$PKG_CONFIG" && \
27243 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"edb\""; } >&5 27775 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"edb\""; } >&5
27244 ($PKG_CONFIG --exists --print-errors "edb") 2>&5 27776 ($PKG_CONFIG --exists --print-errors "edb") 2>&5
27245 ac_status=$? 27777 ac_status=$?
@@ -27249,15 +27781,14 @@ if test -n "$EDB_LIBS"; then
27249else 27781else
27250 pkg_failed=yes 27782 pkg_failed=yes
27251fi 27783fi
27252 else 27784 fi
27253 pkg_failed=untried 27785else
27786 pkg_failed=untried
27254fi 27787fi
27255 27788
27256 27789
27257 27790
27258if test $pkg_failed = yes; then 27791if test $pkg_failed = yes; then
27259 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
27260$as_echo "no" >&6; }
27261 27792
27262if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 27793if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
27263 _pkg_short_errors_supported=yes 27794 _pkg_short_errors_supported=yes
@@ -27265,17 +27796,17 @@ else
27265 _pkg_short_errors_supported=no 27796 _pkg_short_errors_supported=no
27266fi 27797fi
27267 if test $_pkg_short_errors_supported = yes; then 27798 if test $_pkg_short_errors_supported = yes; then
27268 EDB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "edb" 2>&1` 27799 EDB_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "edb"`
27269 else 27800 else
27270 EDB_PKG_ERRORS=`$PKG_CONFIG --print-errors "edb" 2>&1` 27801 EDB_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "edb"`
27271 fi 27802 fi
27272 # Put the nasty error message in config.log where it belongs 27803 # Put the nasty error message in config.log where it belongs
27273 echo "$EDB_PKG_ERRORS" >&5 27804 echo "$EDB_PKG_ERRORS" >&5
27274 27805
27275 have_dep="no" 27806 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
27276elif test $pkg_failed = untried; then
27277 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
27278$as_echo "no" >&6; } 27807$as_echo "no" >&6; }
27808 have_dep="no"
27809elif test $pkg_failed = untried; then
27279 have_dep="no" 27810 have_dep="no"
27280else 27811else
27281 EDB_CFLAGS=$pkg_cv_EDB_CFLAGS 27812 EDB_CFLAGS=$pkg_cv_EDB_CFLAGS
@@ -27304,7 +27835,7 @@ fi
27304fi 27835fi
27305 27836
27306if test "x${have_loader}" = "xno" -a "x${want_loader}" = "xyes" -a "x${use_strict}" = "xyes" ; then 27837if test "x${have_loader}" = "xno" -a "x${want_loader}" = "xyes" -a "x${use_strict}" = "xyes" ; then
27307 as_fn_error $? "Edb dependencies not found (strict dependencies checking)" "$LINENO" 5 27838 as_fn_error "Edb dependencies not found (strict dependencies checking)" "$LINENO" 5
27308fi 27839fi
27309 27840
27310{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Edb image loader will be built" >&5 27841{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Edb image loader will be built" >&5
@@ -27402,10 +27933,11 @@ pkg_failed=no
27402{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EET" >&5 27933{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EET" >&5
27403$as_echo_n "checking for EET... " >&6; } 27934$as_echo_n "checking for EET... " >&6; }
27404 27935
27405if test -n "$EET_CFLAGS"; then 27936if test -n "$PKG_CONFIG"; then
27406 pkg_cv_EET_CFLAGS="$EET_CFLAGS" 27937 if test -n "$EET_CFLAGS"; then
27407 elif test -n "$PKG_CONFIG"; then 27938 pkg_cv_EET_CFLAGS="$EET_CFLAGS"
27408 if test -n "$PKG_CONFIG" && \ 27939 else
27940 if test -n "$PKG_CONFIG" && \
27409 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eet >= 1.5.0\""; } >&5 27941 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eet >= 1.5.0\""; } >&5
27410 ($PKG_CONFIG --exists --print-errors "eet >= 1.5.0") 2>&5 27942 ($PKG_CONFIG --exists --print-errors "eet >= 1.5.0") 2>&5
27411 ac_status=$? 27943 ac_status=$?
@@ -27415,13 +27947,15 @@ if test -n "$EET_CFLAGS"; then
27415else 27947else
27416 pkg_failed=yes 27948 pkg_failed=yes
27417fi 27949fi
27418 else 27950 fi
27419 pkg_failed=untried 27951else
27952 pkg_failed=untried
27420fi 27953fi
27421if test -n "$EET_LIBS"; then 27954if test -n "$PKG_CONFIG"; then
27422 pkg_cv_EET_LIBS="$EET_LIBS" 27955 if test -n "$EET_LIBS"; then
27423 elif test -n "$PKG_CONFIG"; then 27956 pkg_cv_EET_LIBS="$EET_LIBS"
27424 if test -n "$PKG_CONFIG" && \ 27957 else
27958 if test -n "$PKG_CONFIG" && \
27425 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eet >= 1.5.0\""; } >&5 27959 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eet >= 1.5.0\""; } >&5
27426 ($PKG_CONFIG --exists --print-errors "eet >= 1.5.0") 2>&5 27960 ($PKG_CONFIG --exists --print-errors "eet >= 1.5.0") 2>&5
27427 ac_status=$? 27961 ac_status=$?
@@ -27431,15 +27965,14 @@ if test -n "$EET_LIBS"; then
27431else 27965else
27432 pkg_failed=yes 27966 pkg_failed=yes
27433fi 27967fi
27434 else 27968 fi
27435 pkg_failed=untried 27969else
27970 pkg_failed=untried
27436fi 27971fi
27437 27972
27438 27973
27439 27974
27440if test $pkg_failed = yes; then 27975if test $pkg_failed = yes; then
27441 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
27442$as_echo "no" >&6; }
27443 27976
27444if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 27977if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
27445 _pkg_short_errors_supported=yes 27978 _pkg_short_errors_supported=yes
@@ -27447,17 +27980,17 @@ else
27447 _pkg_short_errors_supported=no 27980 _pkg_short_errors_supported=no
27448fi 27981fi
27449 if test $_pkg_short_errors_supported = yes; then 27982 if test $_pkg_short_errors_supported = yes; then
27450 EET_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "eet >= 1.5.0" 2>&1` 27983 EET_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "eet >= 1.5.0"`
27451 else 27984 else
27452 EET_PKG_ERRORS=`$PKG_CONFIG --print-errors "eet >= 1.5.0" 2>&1` 27985 EET_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "eet >= 1.5.0"`
27453 fi 27986 fi
27454 # Put the nasty error message in config.log where it belongs 27987 # Put the nasty error message in config.log where it belongs
27455 echo "$EET_PKG_ERRORS" >&5 27988 echo "$EET_PKG_ERRORS" >&5
27456 27989
27457 have_dep="no" 27990 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
27458elif test $pkg_failed = untried; then
27459 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
27460$as_echo "no" >&6; } 27991$as_echo "no" >&6; }
27992 have_dep="no"
27993elif test $pkg_failed = untried; then
27461 have_dep="no" 27994 have_dep="no"
27462else 27995else
27463 EET_CFLAGS=$pkg_cv_EET_CFLAGS 27996 EET_CFLAGS=$pkg_cv_EET_CFLAGS
@@ -27486,7 +28019,7 @@ fi
27486fi 28019fi
27487 28020
27488if test "x${have_loader}" = "xno" -a "x${want_loader}" = "xyes" -a "x${use_strict}" = "xyes" ; then 28021if test "x${have_loader}" = "xno" -a "x${want_loader}" = "xyes" -a "x${use_strict}" = "xyes" ; then
27489 as_fn_error $? "Eet dependencies not found (strict dependencies checking)" "$LINENO" 5 28022 as_fn_error "Eet dependencies not found (strict dependencies checking)" "$LINENO" 5
27490fi 28023fi
27491 28024
27492{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Eet image loader will be built" >&5 28025{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Eet image loader will be built" >&5
@@ -27562,10 +28095,11 @@ pkg_failed=no
27562{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EET" >&5 28095{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EET" >&5
27563$as_echo_n "checking for EET... " >&6; } 28096$as_echo_n "checking for EET... " >&6; }
27564 28097
27565if test -n "$EET_CFLAGS"; then 28098if test -n "$PKG_CONFIG"; then
27566 pkg_cv_EET_CFLAGS="$EET_CFLAGS" 28099 if test -n "$EET_CFLAGS"; then
27567 elif test -n "$PKG_CONFIG"; then 28100 pkg_cv_EET_CFLAGS="$EET_CFLAGS"
27568 if test -n "$PKG_CONFIG" && \ 28101 else
28102 if test -n "$PKG_CONFIG" && \
27569 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eet >= 1.5.0\""; } >&5 28103 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eet >= 1.5.0\""; } >&5
27570 ($PKG_CONFIG --exists --print-errors "eet >= 1.5.0") 2>&5 28104 ($PKG_CONFIG --exists --print-errors "eet >= 1.5.0") 2>&5
27571 ac_status=$? 28105 ac_status=$?
@@ -27575,13 +28109,15 @@ if test -n "$EET_CFLAGS"; then
27575else 28109else
27576 pkg_failed=yes 28110 pkg_failed=yes
27577fi 28111fi
27578 else 28112 fi
27579 pkg_failed=untried 28113else
28114 pkg_failed=untried
27580fi 28115fi
27581if test -n "$EET_LIBS"; then 28116if test -n "$PKG_CONFIG"; then
27582 pkg_cv_EET_LIBS="$EET_LIBS" 28117 if test -n "$EET_LIBS"; then
27583 elif test -n "$PKG_CONFIG"; then 28118 pkg_cv_EET_LIBS="$EET_LIBS"
27584 if test -n "$PKG_CONFIG" && \ 28119 else
28120 if test -n "$PKG_CONFIG" && \
27585 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eet >= 1.5.0\""; } >&5 28121 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eet >= 1.5.0\""; } >&5
27586 ($PKG_CONFIG --exists --print-errors "eet >= 1.5.0") 2>&5 28122 ($PKG_CONFIG --exists --print-errors "eet >= 1.5.0") 2>&5
27587 ac_status=$? 28123 ac_status=$?
@@ -27591,15 +28127,14 @@ if test -n "$EET_LIBS"; then
27591else 28127else
27592 pkg_failed=yes 28128 pkg_failed=yes
27593fi 28129fi
27594 else 28130 fi
27595 pkg_failed=untried 28131else
28132 pkg_failed=untried
27596fi 28133fi
27597 28134
27598 28135
27599 28136
27600if test $pkg_failed = yes; then 28137if test $pkg_failed = yes; then
27601 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
27602$as_echo "no" >&6; }
27603 28138
27604if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 28139if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
27605 _pkg_short_errors_supported=yes 28140 _pkg_short_errors_supported=yes
@@ -27607,17 +28142,17 @@ else
27607 _pkg_short_errors_supported=no 28142 _pkg_short_errors_supported=no
27608fi 28143fi
27609 if test $_pkg_short_errors_supported = yes; then 28144 if test $_pkg_short_errors_supported = yes; then
27610 EET_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "eet >= 1.5.0" 2>&1` 28145 EET_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "eet >= 1.5.0"`
27611 else 28146 else
27612 EET_PKG_ERRORS=`$PKG_CONFIG --print-errors "eet >= 1.5.0" 2>&1` 28147 EET_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "eet >= 1.5.0"`
27613 fi 28148 fi
27614 # Put the nasty error message in config.log where it belongs 28149 # Put the nasty error message in config.log where it belongs
27615 echo "$EET_PKG_ERRORS" >&5 28150 echo "$EET_PKG_ERRORS" >&5
27616 28151
27617 have_evas_font_loader_eet="no" 28152 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
27618elif test $pkg_failed = untried; then
27619 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
27620$as_echo "no" >&6; } 28153$as_echo "no" >&6; }
28154 have_evas_font_loader_eet="no"
28155elif test $pkg_failed = untried; then
27621 have_evas_font_loader_eet="no" 28156 have_evas_font_loader_eet="no"
27622else 28157else
27623 EET_CFLAGS=$pkg_cv_EET_CFLAGS 28158 EET_CFLAGS=$pkg_cv_EET_CFLAGS
@@ -27629,7 +28164,7 @@ fi
27629fi 28164fi
27630 28165
27631if test "x${have_evas_font_loader_eet}" = "xno" -a "x$want_loader" = "xyes" -a "x$use_strict" = "xyes" ; then 28166if test "x${have_evas_font_loader_eet}" = "xno" -a "x$want_loader" = "xyes" -a "x$use_strict" = "xyes" ; then
27632 as_fn_error $? "Eet dependencies not found (strict dependencies checking)" "$LINENO" 5 28167 as_fn_error "Eet dependencies not found (strict dependencies checking)" "$LINENO" 5
27633fi 28168fi
27634 28169
27635if test "x$have_evas_font_loader_eet" = "xyes" ; then 28170if test "x$have_evas_font_loader_eet" = "xyes" ; then
@@ -27798,7 +28333,7 @@ fi
27798fi 28333fi
27799 28334
27800if test "x${have_loader}" = "xno" -a "x${want_loader}" = "xyes" -a "x${use_strict}" = "xyes" ; then 28335if test "x${have_loader}" = "xno" -a "x${want_loader}" = "xyes" -a "x${use_strict}" = "xyes" ; then
27801 as_fn_error $? "Gif dependencies not found (strict dependencies checking)" "$LINENO" 5 28336 as_fn_error "Gif dependencies not found (strict dependencies checking)" "$LINENO" 5
27802fi 28337fi
27803 28338
27804{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Gif image loader will be built" >&5 28339{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Gif image loader will be built" >&5
@@ -27988,7 +28523,7 @@ fi
27988fi 28523fi
27989 28524
27990if test "x${have_loader}" = "xno" -a "x${want_loader}" = "xyes" -a "x${use_strict}" = "xyes" ; then 28525if test "x${have_loader}" = "xno" -a "x${want_loader}" = "xyes" -a "x${use_strict}" = "xyes" ; then
27991 as_fn_error $? "Jpeg dependencies not found (strict dependencies checking)" "$LINENO" 5 28526 as_fn_error "Jpeg dependencies not found (strict dependencies checking)" "$LINENO" 5
27992fi 28527fi
27993 28528
27994{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Jpeg image loader will be built" >&5 28529{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Jpeg image loader will be built" >&5
@@ -28114,7 +28649,7 @@ fi
28114fi 28649fi
28115 28650
28116if test "x${have_loader}" = "xno" -a "x${want_loader}" = "xyes" -a "x${use_strict}" = "xyes" ; then 28651if test "x${have_loader}" = "xno" -a "x${want_loader}" = "xyes" -a "x${use_strict}" = "xyes" ; then
28117 as_fn_error $? "PMAPS dependencies not found (strict dependencies checking)" "$LINENO" 5 28652 as_fn_error "PMAPS dependencies not found (strict dependencies checking)" "$LINENO" 5
28118fi 28653fi
28119 28654
28120{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether PMAPS image loader will be built" >&5 28655{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether PMAPS image loader will be built" >&5
@@ -28212,10 +28747,11 @@ pkg_failed=no
28212{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PNG" >&5 28747{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PNG" >&5
28213$as_echo_n "checking for PNG... " >&6; } 28748$as_echo_n "checking for PNG... " >&6; }
28214 28749
28215if test -n "$PNG_CFLAGS"; then 28750if test -n "$PKG_CONFIG"; then
28216 pkg_cv_PNG_CFLAGS="$PNG_CFLAGS" 28751 if test -n "$PNG_CFLAGS"; then
28217 elif test -n "$PKG_CONFIG"; then 28752 pkg_cv_PNG_CFLAGS="$PNG_CFLAGS"
28218 if test -n "$PKG_CONFIG" && \ 28753 else
28754 if test -n "$PKG_CONFIG" && \
28219 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpng >= 1.2.10\""; } >&5 28755 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpng >= 1.2.10\""; } >&5
28220 ($PKG_CONFIG --exists --print-errors "libpng >= 1.2.10") 2>&5 28756 ($PKG_CONFIG --exists --print-errors "libpng >= 1.2.10") 2>&5
28221 ac_status=$? 28757 ac_status=$?
@@ -28225,13 +28761,15 @@ if test -n "$PNG_CFLAGS"; then
28225else 28761else
28226 pkg_failed=yes 28762 pkg_failed=yes
28227fi 28763fi
28228 else 28764 fi
28229 pkg_failed=untried 28765else
28766 pkg_failed=untried
28230fi 28767fi
28231if test -n "$PNG_LIBS"; then 28768if test -n "$PKG_CONFIG"; then
28232 pkg_cv_PNG_LIBS="$PNG_LIBS" 28769 if test -n "$PNG_LIBS"; then
28233 elif test -n "$PKG_CONFIG"; then 28770 pkg_cv_PNG_LIBS="$PNG_LIBS"
28234 if test -n "$PKG_CONFIG" && \ 28771 else
28772 if test -n "$PKG_CONFIG" && \
28235 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpng >= 1.2.10\""; } >&5 28773 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpng >= 1.2.10\""; } >&5
28236 ($PKG_CONFIG --exists --print-errors "libpng >= 1.2.10") 2>&5 28774 ($PKG_CONFIG --exists --print-errors "libpng >= 1.2.10") 2>&5
28237 ac_status=$? 28775 ac_status=$?
@@ -28241,15 +28779,14 @@ if test -n "$PNG_LIBS"; then
28241else 28779else
28242 pkg_failed=yes 28780 pkg_failed=yes
28243fi 28781fi
28244 else 28782 fi
28245 pkg_failed=untried 28783else
28784 pkg_failed=untried
28246fi 28785fi
28247 28786
28248 28787
28249 28788
28250if test $pkg_failed = yes; then 28789if test $pkg_failed = yes; then
28251 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
28252$as_echo "no" >&6; }
28253 28790
28254if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 28791if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
28255 _pkg_short_errors_supported=yes 28792 _pkg_short_errors_supported=yes
@@ -28257,17 +28794,17 @@ else
28257 _pkg_short_errors_supported=no 28794 _pkg_short_errors_supported=no
28258fi 28795fi
28259 if test $_pkg_short_errors_supported = yes; then 28796 if test $_pkg_short_errors_supported = yes; then
28260 PNG_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libpng >= 1.2.10" 2>&1` 28797 PNG_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libpng >= 1.2.10"`
28261 else 28798 else
28262 PNG_PKG_ERRORS=`$PKG_CONFIG --print-errors "libpng >= 1.2.10" 2>&1` 28799 PNG_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libpng >= 1.2.10"`
28263 fi 28800 fi
28264 # Put the nasty error message in config.log where it belongs 28801 # Put the nasty error message in config.log where it belongs
28265 echo "$PNG_PKG_ERRORS" >&5 28802 echo "$PNG_PKG_ERRORS" >&5
28266 28803
28267 have_dep="no" 28804 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
28268elif test $pkg_failed = untried; then
28269 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
28270$as_echo "no" >&6; } 28805$as_echo "no" >&6; }
28806 have_dep="no"
28807elif test $pkg_failed = untried; then
28271 have_dep="no" 28808 have_dep="no"
28272else 28809else
28273 PNG_CFLAGS=$pkg_cv_PNG_CFLAGS 28810 PNG_CFLAGS=$pkg_cv_PNG_CFLAGS
@@ -28283,10 +28820,11 @@ pkg_failed=no
28283{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PNG" >&5 28820{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PNG" >&5
28284$as_echo_n "checking for PNG... " >&6; } 28821$as_echo_n "checking for PNG... " >&6; }
28285 28822
28286if test -n "$PNG_CFLAGS"; then 28823if test -n "$PKG_CONFIG"; then
28287 pkg_cv_PNG_CFLAGS="$PNG_CFLAGS" 28824 if test -n "$PNG_CFLAGS"; then
28288 elif test -n "$PKG_CONFIG"; then 28825 pkg_cv_PNG_CFLAGS="$PNG_CFLAGS"
28289 if test -n "$PKG_CONFIG" && \ 28826 else
28827 if test -n "$PKG_CONFIG" && \
28290 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpng15\""; } >&5 28828 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpng15\""; } >&5
28291 ($PKG_CONFIG --exists --print-errors "libpng15") 2>&5 28829 ($PKG_CONFIG --exists --print-errors "libpng15") 2>&5
28292 ac_status=$? 28830 ac_status=$?
@@ -28296,13 +28834,15 @@ if test -n "$PNG_CFLAGS"; then
28296else 28834else
28297 pkg_failed=yes 28835 pkg_failed=yes
28298fi 28836fi
28299 else 28837 fi
28300 pkg_failed=untried 28838else
28839 pkg_failed=untried
28301fi 28840fi
28302if test -n "$PNG_LIBS"; then 28841if test -n "$PKG_CONFIG"; then
28303 pkg_cv_PNG_LIBS="$PNG_LIBS" 28842 if test -n "$PNG_LIBS"; then
28304 elif test -n "$PKG_CONFIG"; then 28843 pkg_cv_PNG_LIBS="$PNG_LIBS"
28305 if test -n "$PKG_CONFIG" && \ 28844 else
28845 if test -n "$PKG_CONFIG" && \
28306 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpng15\""; } >&5 28846 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpng15\""; } >&5
28307 ($PKG_CONFIG --exists --print-errors "libpng15") 2>&5 28847 ($PKG_CONFIG --exists --print-errors "libpng15") 2>&5
28308 ac_status=$? 28848 ac_status=$?
@@ -28312,15 +28852,14 @@ if test -n "$PNG_LIBS"; then
28312else 28852else
28313 pkg_failed=yes 28853 pkg_failed=yes
28314fi 28854fi
28315 else 28855 fi
28316 pkg_failed=untried 28856else
28857 pkg_failed=untried
28317fi 28858fi
28318 28859
28319 28860
28320 28861
28321if test $pkg_failed = yes; then 28862if test $pkg_failed = yes; then
28322 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
28323$as_echo "no" >&6; }
28324 28863
28325if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 28864if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
28326 _pkg_short_errors_supported=yes 28865 _pkg_short_errors_supported=yes
@@ -28328,17 +28867,17 @@ else
28328 _pkg_short_errors_supported=no 28867 _pkg_short_errors_supported=no
28329fi 28868fi
28330 if test $_pkg_short_errors_supported = yes; then 28869 if test $_pkg_short_errors_supported = yes; then
28331 PNG_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libpng15" 2>&1` 28870 PNG_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libpng15"`
28332 else 28871 else
28333 PNG_PKG_ERRORS=`$PKG_CONFIG --print-errors "libpng15" 2>&1` 28872 PNG_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libpng15"`
28334 fi 28873 fi
28335 # Put the nasty error message in config.log where it belongs 28874 # Put the nasty error message in config.log where it belongs
28336 echo "$PNG_PKG_ERRORS" >&5 28875 echo "$PNG_PKG_ERRORS" >&5
28337 28876
28338 have_dep="no" 28877 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
28339elif test $pkg_failed = untried; then
28340 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
28341$as_echo "no" >&6; } 28878$as_echo "no" >&6; }
28879 have_dep="no"
28880elif test $pkg_failed = untried; then
28342 have_dep="no" 28881 have_dep="no"
28343else 28882else
28344 PNG_CFLAGS=$pkg_cv_PNG_CFLAGS 28883 PNG_CFLAGS=$pkg_cv_PNG_CFLAGS
@@ -28355,10 +28894,11 @@ pkg_failed=no
28355{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PNG" >&5 28894{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PNG" >&5
28356$as_echo_n "checking for PNG... " >&6; } 28895$as_echo_n "checking for PNG... " >&6; }
28357 28896
28358if test -n "$PNG_CFLAGS"; then 28897if test -n "$PKG_CONFIG"; then
28359 pkg_cv_PNG_CFLAGS="$PNG_CFLAGS" 28898 if test -n "$PNG_CFLAGS"; then
28360 elif test -n "$PKG_CONFIG"; then 28899 pkg_cv_PNG_CFLAGS="$PNG_CFLAGS"
28361 if test -n "$PKG_CONFIG" && \ 28900 else
28901 if test -n "$PKG_CONFIG" && \
28362 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpng14\""; } >&5 28902 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpng14\""; } >&5
28363 ($PKG_CONFIG --exists --print-errors "libpng14") 2>&5 28903 ($PKG_CONFIG --exists --print-errors "libpng14") 2>&5
28364 ac_status=$? 28904 ac_status=$?
@@ -28368,13 +28908,15 @@ if test -n "$PNG_CFLAGS"; then
28368else 28908else
28369 pkg_failed=yes 28909 pkg_failed=yes
28370fi 28910fi
28371 else 28911 fi
28372 pkg_failed=untried 28912else
28913 pkg_failed=untried
28373fi 28914fi
28374if test -n "$PNG_LIBS"; then 28915if test -n "$PKG_CONFIG"; then
28375 pkg_cv_PNG_LIBS="$PNG_LIBS" 28916 if test -n "$PNG_LIBS"; then
28376 elif test -n "$PKG_CONFIG"; then 28917 pkg_cv_PNG_LIBS="$PNG_LIBS"
28377 if test -n "$PKG_CONFIG" && \ 28918 else
28919 if test -n "$PKG_CONFIG" && \
28378 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpng14\""; } >&5 28920 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpng14\""; } >&5
28379 ($PKG_CONFIG --exists --print-errors "libpng14") 2>&5 28921 ($PKG_CONFIG --exists --print-errors "libpng14") 2>&5
28380 ac_status=$? 28922 ac_status=$?
@@ -28384,15 +28926,14 @@ if test -n "$PNG_LIBS"; then
28384else 28926else
28385 pkg_failed=yes 28927 pkg_failed=yes
28386fi 28928fi
28387 else 28929 fi
28388 pkg_failed=untried 28930else
28931 pkg_failed=untried
28389fi 28932fi
28390 28933
28391 28934
28392 28935
28393if test $pkg_failed = yes; then 28936if test $pkg_failed = yes; then
28394 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
28395$as_echo "no" >&6; }
28396 28937
28397if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 28938if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
28398 _pkg_short_errors_supported=yes 28939 _pkg_short_errors_supported=yes
@@ -28400,17 +28941,17 @@ else
28400 _pkg_short_errors_supported=no 28941 _pkg_short_errors_supported=no
28401fi 28942fi
28402 if test $_pkg_short_errors_supported = yes; then 28943 if test $_pkg_short_errors_supported = yes; then
28403 PNG_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libpng14" 2>&1` 28944 PNG_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libpng14"`
28404 else 28945 else
28405 PNG_PKG_ERRORS=`$PKG_CONFIG --print-errors "libpng14" 2>&1` 28946 PNG_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libpng14"`
28406 fi 28947 fi
28407 # Put the nasty error message in config.log where it belongs 28948 # Put the nasty error message in config.log where it belongs
28408 echo "$PNG_PKG_ERRORS" >&5 28949 echo "$PNG_PKG_ERRORS" >&5
28409 28950
28410 have_dep="no" 28951 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
28411elif test $pkg_failed = untried; then
28412 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
28413$as_echo "no" >&6; } 28952$as_echo "no" >&6; }
28953 have_dep="no"
28954elif test $pkg_failed = untried; then
28414 have_dep="no" 28955 have_dep="no"
28415else 28956else
28416 PNG_CFLAGS=$pkg_cv_PNG_CFLAGS 28957 PNG_CFLAGS=$pkg_cv_PNG_CFLAGS
@@ -28427,10 +28968,11 @@ pkg_failed=no
28427{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PNG" >&5 28968{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PNG" >&5
28428$as_echo_n "checking for PNG... " >&6; } 28969$as_echo_n "checking for PNG... " >&6; }
28429 28970
28430if test -n "$PNG_CFLAGS"; then 28971if test -n "$PKG_CONFIG"; then
28431 pkg_cv_PNG_CFLAGS="$PNG_CFLAGS" 28972 if test -n "$PNG_CFLAGS"; then
28432 elif test -n "$PKG_CONFIG"; then 28973 pkg_cv_PNG_CFLAGS="$PNG_CFLAGS"
28433 if test -n "$PKG_CONFIG" && \ 28974 else
28975 if test -n "$PKG_CONFIG" && \
28434 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpng12 >= 1.2.10\""; } >&5 28976 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpng12 >= 1.2.10\""; } >&5
28435 ($PKG_CONFIG --exists --print-errors "libpng12 >= 1.2.10") 2>&5 28977 ($PKG_CONFIG --exists --print-errors "libpng12 >= 1.2.10") 2>&5
28436 ac_status=$? 28978 ac_status=$?
@@ -28440,13 +28982,15 @@ if test -n "$PNG_CFLAGS"; then
28440else 28982else
28441 pkg_failed=yes 28983 pkg_failed=yes
28442fi 28984fi
28443 else 28985 fi
28444 pkg_failed=untried 28986else
28987 pkg_failed=untried
28445fi 28988fi
28446if test -n "$PNG_LIBS"; then 28989if test -n "$PKG_CONFIG"; then
28447 pkg_cv_PNG_LIBS="$PNG_LIBS" 28990 if test -n "$PNG_LIBS"; then
28448 elif test -n "$PKG_CONFIG"; then 28991 pkg_cv_PNG_LIBS="$PNG_LIBS"
28449 if test -n "$PKG_CONFIG" && \ 28992 else
28993 if test -n "$PKG_CONFIG" && \
28450 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpng12 >= 1.2.10\""; } >&5 28994 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpng12 >= 1.2.10\""; } >&5
28451 ($PKG_CONFIG --exists --print-errors "libpng12 >= 1.2.10") 2>&5 28995 ($PKG_CONFIG --exists --print-errors "libpng12 >= 1.2.10") 2>&5
28452 ac_status=$? 28996 ac_status=$?
@@ -28456,15 +29000,14 @@ if test -n "$PNG_LIBS"; then
28456else 29000else
28457 pkg_failed=yes 29001 pkg_failed=yes
28458fi 29002fi
28459 else 29003 fi
28460 pkg_failed=untried 29004else
29005 pkg_failed=untried
28461fi 29006fi
28462 29007
28463 29008
28464 29009
28465if test $pkg_failed = yes; then 29010if test $pkg_failed = yes; then
28466 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
28467$as_echo "no" >&6; }
28468 29011
28469if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 29012if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
28470 _pkg_short_errors_supported=yes 29013 _pkg_short_errors_supported=yes
@@ -28472,17 +29015,17 @@ else
28472 _pkg_short_errors_supported=no 29015 _pkg_short_errors_supported=no
28473fi 29016fi
28474 if test $_pkg_short_errors_supported = yes; then 29017 if test $_pkg_short_errors_supported = yes; then
28475 PNG_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libpng12 >= 1.2.10" 2>&1` 29018 PNG_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libpng12 >= 1.2.10"`
28476 else 29019 else
28477 PNG_PKG_ERRORS=`$PKG_CONFIG --print-errors "libpng12 >= 1.2.10" 2>&1` 29020 PNG_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libpng12 >= 1.2.10"`
28478 fi 29021 fi
28479 # Put the nasty error message in config.log where it belongs 29022 # Put the nasty error message in config.log where it belongs
28480 echo "$PNG_PKG_ERRORS" >&5 29023 echo "$PNG_PKG_ERRORS" >&5
28481 29024
28482 have_dep="no" 29025 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
28483elif test $pkg_failed = untried; then
28484 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
28485$as_echo "no" >&6; } 29026$as_echo "no" >&6; }
29027 have_dep="no"
29028elif test $pkg_failed = untried; then
28486 have_dep="no" 29029 have_dep="no"
28487else 29030else
28488 PNG_CFLAGS=$pkg_cv_PNG_CFLAGS 29031 PNG_CFLAGS=$pkg_cv_PNG_CFLAGS
@@ -28513,7 +29056,7 @@ fi
28513fi 29056fi
28514 29057
28515if test "x${have_loader}" = "xno" -a "x${want_loader}" = "xyes" -a "x${use_strict}" = "xyes" ; then 29058if test "x${have_loader}" = "xno" -a "x${want_loader}" = "xyes" -a "x${use_strict}" = "xyes" ; then
28516 as_fn_error $? "PNG dependencies not found (strict dependencies checking)" "$LINENO" 5 29059 as_fn_error "PNG dependencies not found (strict dependencies checking)" "$LINENO" 5
28517fi 29060fi
28518 29061
28519{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether PNG image loader will be built" >&5 29062{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether PNG image loader will be built" >&5
@@ -28611,10 +29154,11 @@ pkg_failed=no
28611{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SVG" >&5 29154{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SVG" >&5
28612$as_echo_n "checking for SVG... " >&6; } 29155$as_echo_n "checking for SVG... " >&6; }
28613 29156
28614if test -n "$SVG_CFLAGS"; then 29157if test -n "$PKG_CONFIG"; then
28615 pkg_cv_SVG_CFLAGS="$SVG_CFLAGS" 29158 if test -n "$SVG_CFLAGS"; then
28616 elif test -n "$PKG_CONFIG"; then 29159 pkg_cv_SVG_CFLAGS="$SVG_CFLAGS"
28617 if test -n "$PKG_CONFIG" && \ 29160 else
29161 if test -n "$PKG_CONFIG" && \
28618 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"librsvg-2.0 >= 2.14.0 29162 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"librsvg-2.0 >= 2.14.0
28619 cairo >= 1.0.0\""; } >&5 29163 cairo >= 1.0.0\""; } >&5
28620 ($PKG_CONFIG --exists --print-errors "librsvg-2.0 >= 2.14.0 29164 ($PKG_CONFIG --exists --print-errors "librsvg-2.0 >= 2.14.0
@@ -28627,13 +29171,15 @@ if test -n "$SVG_CFLAGS"; then
28627else 29171else
28628 pkg_failed=yes 29172 pkg_failed=yes
28629fi 29173fi
28630 else 29174 fi
28631 pkg_failed=untried 29175else
29176 pkg_failed=untried
28632fi 29177fi
28633if test -n "$SVG_LIBS"; then 29178if test -n "$PKG_CONFIG"; then
28634 pkg_cv_SVG_LIBS="$SVG_LIBS" 29179 if test -n "$SVG_LIBS"; then
28635 elif test -n "$PKG_CONFIG"; then 29180 pkg_cv_SVG_LIBS="$SVG_LIBS"
28636 if test -n "$PKG_CONFIG" && \ 29181 else
29182 if test -n "$PKG_CONFIG" && \
28637 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"librsvg-2.0 >= 2.14.0 29183 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"librsvg-2.0 >= 2.14.0
28638 cairo >= 1.0.0\""; } >&5 29184 cairo >= 1.0.0\""; } >&5
28639 ($PKG_CONFIG --exists --print-errors "librsvg-2.0 >= 2.14.0 29185 ($PKG_CONFIG --exists --print-errors "librsvg-2.0 >= 2.14.0
@@ -28646,15 +29192,14 @@ if test -n "$SVG_LIBS"; then
28646else 29192else
28647 pkg_failed=yes 29193 pkg_failed=yes
28648fi 29194fi
28649 else 29195 fi
28650 pkg_failed=untried 29196else
29197 pkg_failed=untried
28651fi 29198fi
28652 29199
28653 29200
28654 29201
28655if test $pkg_failed = yes; then 29202if test $pkg_failed = yes; then
28656 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
28657$as_echo "no" >&6; }
28658 29203
28659if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 29204if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
28660 _pkg_short_errors_supported=yes 29205 _pkg_short_errors_supported=yes
@@ -28662,20 +29207,20 @@ else
28662 _pkg_short_errors_supported=no 29207 _pkg_short_errors_supported=no
28663fi 29208fi
28664 if test $_pkg_short_errors_supported = yes; then 29209 if test $_pkg_short_errors_supported = yes; then
28665 SVG_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "librsvg-2.0 >= 2.14.0 29210 SVG_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "librsvg-2.0 >= 2.14.0
28666 cairo >= 1.0.0" 2>&1` 29211 cairo >= 1.0.0"`
28667 else 29212 else
28668 SVG_PKG_ERRORS=`$PKG_CONFIG --print-errors "librsvg-2.0 >= 2.14.0 29213 SVG_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "librsvg-2.0 >= 2.14.0
28669 cairo >= 1.0.0" 2>&1` 29214 cairo >= 1.0.0"`
28670 fi 29215 fi
28671 # Put the nasty error message in config.log where it belongs 29216 # Put the nasty error message in config.log where it belongs
28672 echo "$SVG_PKG_ERRORS" >&5 29217 echo "$SVG_PKG_ERRORS" >&5
28673 29218
28674 have_svg="no" 29219 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
29220$as_echo "no" >&6; }
29221 have_svg="no"
28675 29222
28676elif test $pkg_failed = untried; then 29223elif test $pkg_failed = untried; then
28677 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
28678$as_echo "no" >&6; }
28679 have_svg="no" 29224 have_svg="no"
28680 29225
28681else 29226else
@@ -28708,7 +29253,7 @@ fi
28708fi 29253fi
28709 29254
28710if test "x${have_loader}" = "xno" -a "x${want_loader}" = "xyes" -a "x${use_strict}" = "xyes" ; then 29255if test "x${have_loader}" = "xno" -a "x${want_loader}" = "xyes" -a "x${use_strict}" = "xyes" ; then
28711 as_fn_error $? "SVG dependencies not found (strict dependencies checking)" "$LINENO" 5 29256 as_fn_error "SVG dependencies not found (strict dependencies checking)" "$LINENO" 5
28712fi 29257fi
28713 29258
28714{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether SVG image loader will be built" >&5 29259{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether SVG image loader will be built" >&5
@@ -28962,7 +29507,7 @@ fi
28962fi 29507fi
28963 29508
28964if test "x${have_loader}" = "xno" -a "x${want_loader}" = "xyes" -a "x${use_strict}" = "xyes" ; then 29509if test "x${have_loader}" = "xno" -a "x${want_loader}" = "xyes" -a "x${use_strict}" = "xyes" ; then
28965 as_fn_error $? "Tiff dependencies not found (strict dependencies checking)" "$LINENO" 5 29510 as_fn_error "Tiff dependencies not found (strict dependencies checking)" "$LINENO" 5
28966fi 29511fi
28967 29512
28968{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Tiff image loader will be built" >&5 29513{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Tiff image loader will be built" >&5
@@ -29067,7 +29612,7 @@ fi
29067fi 29612fi
29068 29613
29069if test "x${have_loader}" = "xno" -a "x${want_loader}" = "xyes" -a "x${use_strict}" = "xyes" ; then 29614if test "x${have_loader}" = "xno" -a "x${want_loader}" = "xyes" -a "x${use_strict}" = "xyes" ; then
29070 as_fn_error $? "XPM dependencies not found (strict dependencies checking)" "$LINENO" 5 29615 as_fn_error "XPM dependencies not found (strict dependencies checking)" "$LINENO" 5
29071fi 29616fi
29072 29617
29073{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether XPM image loader will be built" >&5 29618{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether XPM image loader will be built" >&5
@@ -29172,7 +29717,7 @@ fi
29172fi 29717fi
29173 29718
29174if test "x${have_loader}" = "xno" -a "x${want_loader}" = "xyes" -a "x${use_strict}" = "xyes" ; then 29719if test "x${have_loader}" = "xno" -a "x${want_loader}" = "xyes" -a "x${use_strict}" = "xyes" ; then
29175 as_fn_error $? "BMP dependencies not found (strict dependencies checking)" "$LINENO" 5 29720 as_fn_error "BMP dependencies not found (strict dependencies checking)" "$LINENO" 5
29176fi 29721fi
29177 29722
29178{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether BMP image loader will be built" >&5 29723{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether BMP image loader will be built" >&5
@@ -29277,7 +29822,7 @@ fi
29277fi 29822fi
29278 29823
29279if test "x${have_loader}" = "xno" -a "x${want_loader}" = "xyes" -a "x${use_strict}" = "xyes" ; then 29824if test "x${have_loader}" = "xno" -a "x${want_loader}" = "xyes" -a "x${use_strict}" = "xyes" ; then
29280 as_fn_error $? "TGA dependencies not found (strict dependencies checking)" "$LINENO" 5 29825 as_fn_error "TGA dependencies not found (strict dependencies checking)" "$LINENO" 5
29281fi 29826fi
29282 29827
29283{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether TGA image loader will be built" >&5 29828{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether TGA image loader will be built" >&5
@@ -29382,7 +29927,7 @@ fi
29382fi 29927fi
29383 29928
29384if test "x${have_loader}" = "xno" -a "x${want_loader}" = "xyes" -a "x${use_strict}" = "xyes" ; then 29929if test "x${have_loader}" = "xno" -a "x${want_loader}" = "xyes" -a "x${use_strict}" = "xyes" ; then
29385 as_fn_error $? "WBMP dependencies not found (strict dependencies checking)" "$LINENO" 5 29930 as_fn_error "WBMP dependencies not found (strict dependencies checking)" "$LINENO" 5
29386fi 29931fi
29387 29932
29388{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether WBMP image loader will be built" >&5 29933{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether WBMP image loader will be built" >&5
@@ -29487,7 +30032,7 @@ fi
29487fi 30032fi
29488 30033
29489if test "x${have_loader}" = "xno" -a "x${want_loader}" = "xyes" -a "x${use_strict}" = "xyes" ; then 30034if test "x${have_loader}" = "xno" -a "x${want_loader}" = "xyes" -a "x${use_strict}" = "xyes" ; then
29490 as_fn_error $? "ICO dependencies not found (strict dependencies checking)" "$LINENO" 5 30035 as_fn_error "ICO dependencies not found (strict dependencies checking)" "$LINENO" 5
29491fi 30036fi
29492 30037
29493{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ICO image loader will be built" >&5 30038{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ICO image loader will be built" >&5
@@ -29592,7 +30137,7 @@ fi
29592fi 30137fi
29593 30138
29594if test "x${have_loader}" = "xno" -a "x${want_loader}" = "xyes" -a "x${use_strict}" = "xyes" ; then 30139if test "x${have_loader}" = "xno" -a "x${want_loader}" = "xyes" -a "x${use_strict}" = "xyes" ; then
29595 as_fn_error $? "PSD dependencies not found (strict dependencies checking)" "$LINENO" 5 30140 as_fn_error "PSD dependencies not found (strict dependencies checking)" "$LINENO" 5
29596fi 30141fi
29597 30142
29598{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether PSD image loader will be built" >&5 30143{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether PSD image loader will be built" >&5
@@ -29697,7 +30242,7 @@ fi
29697fi 30242fi
29698 30243
29699if test "x${have_loader}" = "xno" -a "x${want_loader}" = "xyes" -a "x${use_strict}" = "xyes" ; then 30244if test "x${have_loader}" = "xno" -a "x${want_loader}" = "xyes" -a "x${use_strict}" = "xyes" ; then
29700 as_fn_error $? "GENERIC dependencies not found (strict dependencies checking)" "$LINENO" 5 30245 as_fn_error "GENERIC dependencies not found (strict dependencies checking)" "$LINENO" 5
29701fi 30246fi
29702 30247
29703{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether GENERIC image loader will be built" >&5 30248{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether GENERIC image loader will be built" >&5
@@ -29780,7 +30325,8 @@ for ac_header in pthread.h sched.h
29780do : 30325do :
29781 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` 30326 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
29782ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" 30327ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
29783if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : 30328eval as_val=\$$as_ac_Header
30329 if test "x$as_val" = x""yes; then :
29784 cat >>confdefs.h <<_ACEOF 30330 cat >>confdefs.h <<_ACEOF
29785#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 30331#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
29786_ACEOF 30332_ACEOF
@@ -29846,7 +30392,7 @@ $as_echo "#define BUILD_PTHREAD 1" >>confdefs.h
29846 need_pthreads="yes" 30392 need_pthreads="yes"
29847 else 30393 else
29848 if "x$use_strict" = "xyes"; then 30394 if "x$use_strict" = "xyes"; then
29849 as_fn_error $? "pthreads headers or functions not found (strict dependencies checking)" "$LINENO" 5 30395 as_fn_error "pthreads headers or functions not found (strict dependencies checking)" "$LINENO" 5
29850 else 30396 else
29851 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no: pthread headers or functions not found" >&5 30397 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no: pthread headers or functions not found" >&5
29852$as_echo "no: pthread headers or functions not found" >&6; } 30398$as_echo "no: pthread headers or functions not found" >&6; }
@@ -29939,10 +30485,11 @@ pkg_failed=no
29939{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XEXT" >&5 30485{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XEXT" >&5
29940$as_echo_n "checking for XEXT... " >&6; } 30486$as_echo_n "checking for XEXT... " >&6; }
29941 30487
29942if test -n "$XEXT_CFLAGS"; then 30488if test -n "$PKG_CONFIG"; then
29943 pkg_cv_XEXT_CFLAGS="$XEXT_CFLAGS" 30489 if test -n "$XEXT_CFLAGS"; then
29944 elif test -n "$PKG_CONFIG"; then 30490 pkg_cv_XEXT_CFLAGS="$XEXT_CFLAGS"
29945 if test -n "$PKG_CONFIG" && \ 30491 else
30492 if test -n "$PKG_CONFIG" && \
29946 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xext < 1.1.1\""; } >&5 30493 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xext < 1.1.1\""; } >&5
29947 ($PKG_CONFIG --exists --print-errors "xext < 1.1.1") 2>&5 30494 ($PKG_CONFIG --exists --print-errors "xext < 1.1.1") 2>&5
29948 ac_status=$? 30495 ac_status=$?
@@ -29952,13 +30499,15 @@ if test -n "$XEXT_CFLAGS"; then
29952else 30499else
29953 pkg_failed=yes 30500 pkg_failed=yes
29954fi 30501fi
29955 else 30502 fi
29956 pkg_failed=untried 30503else
30504 pkg_failed=untried
29957fi 30505fi
29958if test -n "$XEXT_LIBS"; then 30506if test -n "$PKG_CONFIG"; then
29959 pkg_cv_XEXT_LIBS="$XEXT_LIBS" 30507 if test -n "$XEXT_LIBS"; then
29960 elif test -n "$PKG_CONFIG"; then 30508 pkg_cv_XEXT_LIBS="$XEXT_LIBS"
29961 if test -n "$PKG_CONFIG" && \ 30509 else
30510 if test -n "$PKG_CONFIG" && \
29962 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xext < 1.1.1\""; } >&5 30511 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xext < 1.1.1\""; } >&5
29963 ($PKG_CONFIG --exists --print-errors "xext < 1.1.1") 2>&5 30512 ($PKG_CONFIG --exists --print-errors "xext < 1.1.1") 2>&5
29964 ac_status=$? 30513 ac_status=$?
@@ -29968,15 +30517,14 @@ if test -n "$XEXT_LIBS"; then
29968else 30517else
29969 pkg_failed=yes 30518 pkg_failed=yes
29970fi 30519fi
29971 else 30520 fi
29972 pkg_failed=untried 30521else
30522 pkg_failed=untried
29973fi 30523fi
29974 30524
29975 30525
29976 30526
29977if test $pkg_failed = yes; then 30527if test $pkg_failed = yes; then
29978 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
29979$as_echo "no" >&6; }
29980 30528
29981if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 30529if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
29982 _pkg_short_errors_supported=yes 30530 _pkg_short_errors_supported=yes
@@ -29984,18 +30532,18 @@ else
29984 _pkg_short_errors_supported=no 30532 _pkg_short_errors_supported=no
29985fi 30533fi
29986 if test $_pkg_short_errors_supported = yes; then 30534 if test $_pkg_short_errors_supported = yes; then
29987 XEXT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "xext < 1.1.1" 2>&1` 30535 XEXT_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "xext < 1.1.1"`
29988 else 30536 else
29989 XEXT_PKG_ERRORS=`$PKG_CONFIG --print-errors "xext < 1.1.1" 2>&1` 30537 XEXT_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "xext < 1.1.1"`
29990 fi 30538 fi
29991 # Put the nasty error message in config.log where it belongs 30539 # Put the nasty error message in config.log where it belongs
29992 echo "$XEXT_PKG_ERRORS" >&5 30540 echo "$XEXT_PKG_ERRORS" >&5
29993 30541
29994 build_avoid_libXext_bug=no 30542 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
30543$as_echo "no" >&6; }
30544 build_avoid_libXext_bug=no
29995 30545
29996elif test $pkg_failed = untried; then 30546elif test $pkg_failed = untried; then
29997 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
29998$as_echo "no" >&6; }
29999 build_avoid_libXext_bug=no 30547 build_avoid_libXext_bug=no
30000 30548
30001else 30549else
@@ -30201,12 +30749,25 @@ $as_echo_n "checking whether to build sse3 code... " >&6; }
30201if test "${enable_cpu_sse3+set}" = set; then : 30749if test "${enable_cpu_sse3+set}" = set; then :
30202 enableval=$enable_cpu_sse3; 30750 enableval=$enable_cpu_sse3;
30203 if test "x$enableval" = "xyes" ; then 30751 if test "x$enableval" = "xyes" ; then
30204 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 30752 ac_fn_c_check_header_mongrel "$LINENO" "immintrin.h" "ac_cv_header_immintrin_h" "$ac_includes_default"
30753if test "x$ac_cv_header_immintrin_h" = x""yes; then :
30754
30755 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
30205$as_echo "yes" >&6; } 30756$as_echo "yes" >&6; }
30206 30757
30207$as_echo "#define BUILD_SSE3 1" >>confdefs.h 30758$as_echo "#define BUILD_SSE3 1" >>confdefs.h
30208 30759
30209 build_cpu_sse3="yes" 30760 build_cpu_sse3="yes"
30761
30762else
30763
30764 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
30765$as_echo "no" >&6; }
30766 build_cpu_sse3="no"
30767
30768fi
30769
30770
30210 else 30771 else
30211 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 30772 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
30212$as_echo "no" >&6; } 30773$as_echo "no" >&6; }
@@ -30218,9 +30779,25 @@ else
30218 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $build_cpu_sse3" >&5 30779 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $build_cpu_sse3" >&5
30219$as_echo "$build_cpu_sse3" >&6; } 30780$as_echo "$build_cpu_sse3" >&6; }
30220 if test "x$build_cpu_sse3" = "xyes" ; then 30781 if test "x$build_cpu_sse3" = "xyes" ; then
30782 ac_fn_c_check_header_mongrel "$LINENO" "immintrin.h" "ac_cv_header_immintrin_h" "$ac_includes_default"
30783if test "x$ac_cv_header_immintrin_h" = x""yes; then :
30784
30785 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
30786$as_echo "yes" >&6; }
30221 30787
30222$as_echo "#define BUILD_SSE3 1" >>confdefs.h 30788$as_echo "#define BUILD_SSE3 1" >>confdefs.h
30223 30789
30790 build_cpu_sse3="yes"
30791
30792else
30793
30794 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
30795$as_echo "no" >&6; }
30796 build_cpu_sse3="no"
30797
30798fi
30799
30800
30224 fi 30801 fi
30225 30802
30226 30803
@@ -30309,7 +30886,7 @@ $as_echo "#define HAVE_ALTIVEC_H 1" >>confdefs.h
30309else 30886else
30310 30887
30311 if test "x$build_cpu_altivec" = "xyes" -a "x$use_strict" = "xyes" ; then 30888 if test "x$build_cpu_altivec" = "xyes" -a "x$use_strict" = "xyes" ; then
30312 as_fn_error $? "Altivec not found (strict dependencies checking)" "$LINENO" 5 30889 as_fn_error "Altivec not found (strict dependencies checking)" "$LINENO" 5
30313 fi 30890 fi
30314 build_cpu_altivec="no" 30891 build_cpu_altivec="no"
30315 30892
@@ -31777,10 +32354,11 @@ pkg_failed=no
31777{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for VALGRIND" >&5 32354{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for VALGRIND" >&5
31778$as_echo_n "checking for VALGRIND... " >&6; } 32355$as_echo_n "checking for VALGRIND... " >&6; }
31779 32356
31780if test -n "$VALGRIND_CFLAGS"; then 32357if test -n "$PKG_CONFIG"; then
31781 pkg_cv_VALGRIND_CFLAGS="$VALGRIND_CFLAGS" 32358 if test -n "$VALGRIND_CFLAGS"; then
31782 elif test -n "$PKG_CONFIG"; then 32359 pkg_cv_VALGRIND_CFLAGS="$VALGRIND_CFLAGS"
31783 if test -n "$PKG_CONFIG" && \ 32360 else
32361 if test -n "$PKG_CONFIG" && \
31784 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"valgrind >= 2.4.0\""; } >&5 32362 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"valgrind >= 2.4.0\""; } >&5
31785 ($PKG_CONFIG --exists --print-errors "valgrind >= 2.4.0") 2>&5 32363 ($PKG_CONFIG --exists --print-errors "valgrind >= 2.4.0") 2>&5
31786 ac_status=$? 32364 ac_status=$?
@@ -31790,13 +32368,15 @@ if test -n "$VALGRIND_CFLAGS"; then
31790else 32368else
31791 pkg_failed=yes 32369 pkg_failed=yes
31792fi 32370fi
31793 else 32371 fi
31794 pkg_failed=untried 32372else
32373 pkg_failed=untried
31795fi 32374fi
31796if test -n "$VALGRIND_LIBS"; then 32375if test -n "$PKG_CONFIG"; then
31797 pkg_cv_VALGRIND_LIBS="$VALGRIND_LIBS" 32376 if test -n "$VALGRIND_LIBS"; then
31798 elif test -n "$PKG_CONFIG"; then 32377 pkg_cv_VALGRIND_LIBS="$VALGRIND_LIBS"
31799 if test -n "$PKG_CONFIG" && \ 32378 else
32379 if test -n "$PKG_CONFIG" && \
31800 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"valgrind >= 2.4.0\""; } >&5 32380 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"valgrind >= 2.4.0\""; } >&5
31801 ($PKG_CONFIG --exists --print-errors "valgrind >= 2.4.0") 2>&5 32381 ($PKG_CONFIG --exists --print-errors "valgrind >= 2.4.0") 2>&5
31802 ac_status=$? 32382 ac_status=$?
@@ -31806,15 +32386,14 @@ if test -n "$VALGRIND_LIBS"; then
31806else 32386else
31807 pkg_failed=yes 32387 pkg_failed=yes
31808fi 32388fi
31809 else 32389 fi
31810 pkg_failed=untried 32390else
32391 pkg_failed=untried
31811fi 32392fi
31812 32393
31813 32394
31814 32395
31815if test $pkg_failed = yes; then 32396if test $pkg_failed = yes; then
31816 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
31817$as_echo "no" >&6; }
31818 32397
31819if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 32398if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
31820 _pkg_short_errors_supported=yes 32399 _pkg_short_errors_supported=yes
@@ -31822,25 +32401,25 @@ else
31822 _pkg_short_errors_supported=no 32401 _pkg_short_errors_supported=no
31823fi 32402fi
31824 if test $_pkg_short_errors_supported = yes; then 32403 if test $_pkg_short_errors_supported = yes; then
31825 VALGRIND_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "valgrind >= 2.4.0" 2>&1` 32404 VALGRIND_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "valgrind >= 2.4.0"`
31826 else 32405 else
31827 VALGRIND_PKG_ERRORS=`$PKG_CONFIG --print-errors "valgrind >= 2.4.0" 2>&1` 32406 VALGRIND_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "valgrind >= 2.4.0"`
31828 fi 32407 fi
31829 # Put the nasty error message in config.log where it belongs 32408 # Put the nasty error message in config.log where it belongs
31830 echo "$VALGRIND_PKG_ERRORS" >&5 32409 echo "$VALGRIND_PKG_ERRORS" >&5
31831 32410
32411 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
32412$as_echo "no" >&6; }
31832 32413
31833 if test "x$want_valgrind" = "xyes" -a "x$use_strict" = "xyes" ; then 32414 if test "x$want_valgrind" = "xyes" -a "x$use_strict" = "xyes" ; then
31834 as_fn_error $? "Valgrind not found (strict dependencies checking)" "$LINENO" 5 32415 as_fn_error "Valgrind not found (strict dependencies checking)" "$LINENO" 5
31835 fi 32416 fi
31836 32417
31837 32418
31838elif test $pkg_failed = untried; then 32419elif test $pkg_failed = untried; then
31839 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
31840$as_echo "no" >&6; }
31841 32420
31842 if test "x$want_valgrind" = "xyes" -a "x$use_strict" = "xyes" ; then 32421 if test "x$want_valgrind" = "xyes" -a "x$use_strict" = "xyes" ; then
31843 as_fn_error $? "Valgrind not found (strict dependencies checking)" "$LINENO" 5 32422 as_fn_error "Valgrind not found (strict dependencies checking)" "$LINENO" 5
31844 fi 32423 fi
31845 32424
31846 32425
@@ -31898,10 +32477,11 @@ pkg_failed=no
31898{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ECORE_EVAS" >&5 32477{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ECORE_EVAS" >&5
31899$as_echo_n "checking for ECORE_EVAS... " >&6; } 32478$as_echo_n "checking for ECORE_EVAS... " >&6; }
31900 32479
31901if test -n "$ECORE_EVAS_CFLAGS"; then 32480if test -n "$PKG_CONFIG"; then
31902 pkg_cv_ECORE_EVAS_CFLAGS="$ECORE_EVAS_CFLAGS" 32481 if test -n "$ECORE_EVAS_CFLAGS"; then
31903 elif test -n "$PKG_CONFIG"; then 32482 pkg_cv_ECORE_EVAS_CFLAGS="$ECORE_EVAS_CFLAGS"
31904 if test -n "$PKG_CONFIG" && \ 32483 else
32484 if test -n "$PKG_CONFIG" && \
31905 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ecore-evas ecore\""; } >&5 32485 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ecore-evas ecore\""; } >&5
31906 ($PKG_CONFIG --exists --print-errors "ecore-evas ecore") 2>&5 32486 ($PKG_CONFIG --exists --print-errors "ecore-evas ecore") 2>&5
31907 ac_status=$? 32487 ac_status=$?
@@ -31911,13 +32491,15 @@ if test -n "$ECORE_EVAS_CFLAGS"; then
31911else 32491else
31912 pkg_failed=yes 32492 pkg_failed=yes
31913fi 32493fi
31914 else 32494 fi
31915 pkg_failed=untried 32495else
32496 pkg_failed=untried
31916fi 32497fi
31917if test -n "$ECORE_EVAS_LIBS"; then 32498if test -n "$PKG_CONFIG"; then
31918 pkg_cv_ECORE_EVAS_LIBS="$ECORE_EVAS_LIBS" 32499 if test -n "$ECORE_EVAS_LIBS"; then
31919 elif test -n "$PKG_CONFIG"; then 32500 pkg_cv_ECORE_EVAS_LIBS="$ECORE_EVAS_LIBS"
31920 if test -n "$PKG_CONFIG" && \ 32501 else
32502 if test -n "$PKG_CONFIG" && \
31921 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ecore-evas ecore\""; } >&5 32503 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ecore-evas ecore\""; } >&5
31922 ($PKG_CONFIG --exists --print-errors "ecore-evas ecore") 2>&5 32504 ($PKG_CONFIG --exists --print-errors "ecore-evas ecore") 2>&5
31923 ac_status=$? 32505 ac_status=$?
@@ -31927,15 +32509,14 @@ if test -n "$ECORE_EVAS_LIBS"; then
31927else 32509else
31928 pkg_failed=yes 32510 pkg_failed=yes
31929fi 32511fi
31930 else 32512 fi
31931 pkg_failed=untried 32513else
32514 pkg_failed=untried
31932fi 32515fi
31933 32516
31934 32517
31935 32518
31936if test $pkg_failed = yes; then 32519if test $pkg_failed = yes; then
31937 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
31938$as_echo "no" >&6; }
31939 32520
31940if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 32521if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
31941 _pkg_short_errors_supported=yes 32522 _pkg_short_errors_supported=yes
@@ -31943,34 +32524,35 @@ else
31943 _pkg_short_errors_supported=no 32524 _pkg_short_errors_supported=no
31944fi 32525fi
31945 if test $_pkg_short_errors_supported = yes; then 32526 if test $_pkg_short_errors_supported = yes; then
31946 ECORE_EVAS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "ecore-evas ecore" 2>&1` 32527 ECORE_EVAS_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "ecore-evas ecore"`
31947 else 32528 else
31948 ECORE_EVAS_PKG_ERRORS=`$PKG_CONFIG --print-errors "ecore-evas ecore" 2>&1` 32529 ECORE_EVAS_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "ecore-evas ecore"`
31949 fi 32530 fi
31950 # Put the nasty error message in config.log where it belongs 32531 # Put the nasty error message in config.log where it belongs
31951 echo "$ECORE_EVAS_PKG_ERRORS" >&5 32532 echo "$ECORE_EVAS_PKG_ERRORS" >&5
31952 32533
31953 build_examples="no" 32534 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
31954elif test $pkg_failed = untried; then
31955 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
31956$as_echo "no" >&6; } 32535$as_echo "no" >&6; }
32536 build_examples="no"
32537elif test $pkg_failed = untried; then
31957 build_examples="no" 32538 build_examples="no"
31958else 32539else
31959 ECORE_EVAS_CFLAGS=$pkg_cv_ECORE_EVAS_CFLAGS 32540 ECORE_EVAS_CFLAGS=$pkg_cv_ECORE_EVAS_CFLAGS
31960 ECORE_EVAS_LIBS=$pkg_cv_ECORE_EVAS_LIBS 32541 ECORE_EVAS_LIBS=$pkg_cv_ECORE_EVAS_LIBS
31961 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 32542 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
31962$as_echo "yes" >&6; } 32543$as_echo "yes" >&6; }
31963 32544 :
31964fi 32545fi
31965 32546
31966pkg_failed=no 32547pkg_failed=no
31967{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EDJE" >&5 32548{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EDJE" >&5
31968$as_echo_n "checking for EDJE... " >&6; } 32549$as_echo_n "checking for EDJE... " >&6; }
31969 32550
31970if test -n "$EDJE_CFLAGS"; then 32551if test -n "$PKG_CONFIG"; then
31971 pkg_cv_EDJE_CFLAGS="$EDJE_CFLAGS" 32552 if test -n "$EDJE_CFLAGS"; then
31972 elif test -n "$PKG_CONFIG"; then 32553 pkg_cv_EDJE_CFLAGS="$EDJE_CFLAGS"
31973 if test -n "$PKG_CONFIG" && \ 32554 else
32555 if test -n "$PKG_CONFIG" && \
31974 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"edje\""; } >&5 32556 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"edje\""; } >&5
31975 ($PKG_CONFIG --exists --print-errors "edje") 2>&5 32557 ($PKG_CONFIG --exists --print-errors "edje") 2>&5
31976 ac_status=$? 32558 ac_status=$?
@@ -31980,13 +32562,15 @@ if test -n "$EDJE_CFLAGS"; then
31980else 32562else
31981 pkg_failed=yes 32563 pkg_failed=yes
31982fi 32564fi
31983 else 32565 fi
31984 pkg_failed=untried 32566else
32567 pkg_failed=untried
31985fi 32568fi
31986if test -n "$EDJE_LIBS"; then 32569if test -n "$PKG_CONFIG"; then
31987 pkg_cv_EDJE_LIBS="$EDJE_LIBS" 32570 if test -n "$EDJE_LIBS"; then
31988 elif test -n "$PKG_CONFIG"; then 32571 pkg_cv_EDJE_LIBS="$EDJE_LIBS"
31989 if test -n "$PKG_CONFIG" && \ 32572 else
32573 if test -n "$PKG_CONFIG" && \
31990 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"edje\""; } >&5 32574 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"edje\""; } >&5
31991 ($PKG_CONFIG --exists --print-errors "edje") 2>&5 32575 ($PKG_CONFIG --exists --print-errors "edje") 2>&5
31992 ac_status=$? 32576 ac_status=$?
@@ -31996,15 +32580,14 @@ if test -n "$EDJE_LIBS"; then
31996else 32580else
31997 pkg_failed=yes 32581 pkg_failed=yes
31998fi 32582fi
31999 else 32583 fi
32000 pkg_failed=untried 32584else
32585 pkg_failed=untried
32001fi 32586fi
32002 32587
32003 32588
32004 32589
32005if test $pkg_failed = yes; then 32590if test $pkg_failed = yes; then
32006 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
32007$as_echo "no" >&6; }
32008 32591
32009if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 32592if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
32010 _pkg_short_errors_supported=yes 32593 _pkg_short_errors_supported=yes
@@ -32012,17 +32595,17 @@ else
32012 _pkg_short_errors_supported=no 32595 _pkg_short_errors_supported=no
32013fi 32596fi
32014 if test $_pkg_short_errors_supported = yes; then 32597 if test $_pkg_short_errors_supported = yes; then
32015 EDJE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "edje" 2>&1` 32598 EDJE_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "edje"`
32016 else 32599 else
32017 EDJE_PKG_ERRORS=`$PKG_CONFIG --print-errors "edje" 2>&1` 32600 EDJE_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "edje"`
32018 fi 32601 fi
32019 # Put the nasty error message in config.log where it belongs 32602 # Put the nasty error message in config.log where it belongs
32020 echo "$EDJE_PKG_ERRORS" >&5 32603 echo "$EDJE_PKG_ERRORS" >&5
32021 32604
32022 build_examples="no" 32605 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
32023elif test $pkg_failed = untried; then
32024 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
32025$as_echo "no" >&6; } 32606$as_echo "no" >&6; }
32607 build_examples="no"
32608elif test $pkg_failed = untried; then
32026 build_examples="no" 32609 build_examples="no"
32027else 32610else
32028 EDJE_CFLAGS=$pkg_cv_EDJE_CFLAGS 32611 EDJE_CFLAGS=$pkg_cv_EDJE_CFLAGS
@@ -32081,10 +32664,11 @@ pkg_failed=no
32081{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CHECK" >&5 32664{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CHECK" >&5
32082$as_echo_n "checking for CHECK... " >&6; } 32665$as_echo_n "checking for CHECK... " >&6; }
32083 32666
32084if test -n "$CHECK_CFLAGS"; then 32667if test -n "$PKG_CONFIG"; then
32085 pkg_cv_CHECK_CFLAGS="$CHECK_CFLAGS" 32668 if test -n "$CHECK_CFLAGS"; then
32086 elif test -n "$PKG_CONFIG"; then 32669 pkg_cv_CHECK_CFLAGS="$CHECK_CFLAGS"
32087 if test -n "$PKG_CONFIG" && \ 32670 else
32671 if test -n "$PKG_CONFIG" && \
32088 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"check >= 0.9.5\""; } >&5 32672 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"check >= 0.9.5\""; } >&5
32089 ($PKG_CONFIG --exists --print-errors "check >= 0.9.5") 2>&5 32673 ($PKG_CONFIG --exists --print-errors "check >= 0.9.5") 2>&5
32090 ac_status=$? 32674 ac_status=$?
@@ -32094,13 +32678,15 @@ if test -n "$CHECK_CFLAGS"; then
32094else 32678else
32095 pkg_failed=yes 32679 pkg_failed=yes
32096fi 32680fi
32097 else 32681 fi
32098 pkg_failed=untried 32682else
32683 pkg_failed=untried
32099fi 32684fi
32100if test -n "$CHECK_LIBS"; then 32685if test -n "$PKG_CONFIG"; then
32101 pkg_cv_CHECK_LIBS="$CHECK_LIBS" 32686 if test -n "$CHECK_LIBS"; then
32102 elif test -n "$PKG_CONFIG"; then 32687 pkg_cv_CHECK_LIBS="$CHECK_LIBS"
32103 if test -n "$PKG_CONFIG" && \ 32688 else
32689 if test -n "$PKG_CONFIG" && \
32104 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"check >= 0.9.5\""; } >&5 32690 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"check >= 0.9.5\""; } >&5
32105 ($PKG_CONFIG --exists --print-errors "check >= 0.9.5") 2>&5 32691 ($PKG_CONFIG --exists --print-errors "check >= 0.9.5") 2>&5
32106 ac_status=$? 32692 ac_status=$?
@@ -32110,15 +32696,14 @@ if test -n "$CHECK_LIBS"; then
32110else 32696else
32111 pkg_failed=yes 32697 pkg_failed=yes
32112fi 32698fi
32113 else 32699 fi
32114 pkg_failed=untried 32700else
32701 pkg_failed=untried
32115fi 32702fi
32116 32703
32117 32704
32118 32705
32119if test $pkg_failed = yes; then 32706if test $pkg_failed = yes; then
32120 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
32121$as_echo "no" >&6; }
32122 32707
32123if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 32708if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
32124 _pkg_short_errors_supported=yes 32709 _pkg_short_errors_supported=yes
@@ -32126,17 +32711,17 @@ else
32126 _pkg_short_errors_supported=no 32711 _pkg_short_errors_supported=no
32127fi 32712fi
32128 if test $_pkg_short_errors_supported = yes; then 32713 if test $_pkg_short_errors_supported = yes; then
32129 CHECK_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "check >= 0.9.5" 2>&1` 32714 CHECK_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "check >= 0.9.5"`
32130 else 32715 else
32131 CHECK_PKG_ERRORS=`$PKG_CONFIG --print-errors "check >= 0.9.5" 2>&1` 32716 CHECK_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "check >= 0.9.5"`
32132 fi 32717 fi
32133 # Put the nasty error message in config.log where it belongs 32718 # Put the nasty error message in config.log where it belongs
32134 echo "$CHECK_PKG_ERRORS" >&5 32719 echo "$CHECK_PKG_ERRORS" >&5
32135 32720
32136 _efl_enable_tests="no" 32721 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
32137elif test $pkg_failed = untried; then
32138 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
32139$as_echo "no" >&6; } 32722$as_echo "no" >&6; }
32723 _efl_enable_tests="no"
32724elif test $pkg_failed = untried; then
32140 _efl_enable_tests="no" 32725 _efl_enable_tests="no"
32141else 32726else
32142 CHECK_CFLAGS=$pkg_cv_CHECK_CFLAGS 32727 CHECK_CFLAGS=$pkg_cv_CHECK_CFLAGS
@@ -32289,7 +32874,7 @@ fi
32289##################################################################### 32874#####################################################################
32290## Output 32875## Output
32291 32876
32292ac_config_files="$ac_config_files Makefile evas-directfb.pc evas-fb.pc evas-opengl-x11.pc evas-opengl-sdl.pc evas-opengl-cocoa.pc evas-software-buffer.pc evas-software-x11.pc evas-software-8-x11.pc evas-software-16-x11.pc evas-software-gdi.pc evas-software-ddraw.pc evas-software-16-ddraw.pc evas-direct3d.pc evas-software-16-wince.pc evas-software-sdl.pc evas-psl1ght.pc evas.pc doc/evas.dox doc/Makefile doc/Doxyfile src/Makefile src/bin/Makefile src/lib/Makefile src/lib/canvas/Makefile src/lib/file/Makefile src/lib/cache/Makefile src/lib/cserve/Makefile src/lib/engines/Makefile src/lib/engines/common/Makefile src/lib/engines/common/evas_op_add/Makefile src/lib/engines/common/evas_op_blend/Makefile src/lib/engines/common/evas_op_copy/Makefile src/lib/engines/common/evas_op_mask/Makefile src/lib/engines/common/evas_op_mul/Makefile src/lib/engines/common/evas_op_sub/Makefile src/lib/engines/common_8/Makefile src/lib/engines/common_16/Makefile src/modules/Makefile src/modules/engines/Makefile src/modules/engines/software_generic/Makefile src/modules/engines/software_gdi/Makefile src/modules/engines/software_ddraw/Makefile src/modules/engines/direct3d/Makefile src/modules/engines/software_16_wince/Makefile src/modules/engines/software_x11/Makefile src/modules/engines/fb/Makefile src/modules/engines/buffer/Makefile src/modules/engines/directfb/Makefile src/modules/engines/gl_common/Makefile src/modules/engines/gl_x11/Makefile src/modules/engines/gl_sdl/Makefile src/modules/engines/gl_cocoa/Makefile src/modules/engines/psl1ght/Makefile src/modules/engines/software_sdl/Makefile src/modules/engines/software_8/Makefile src/modules/engines/software_8_x11/Makefile src/modules/engines/software_16/Makefile src/modules/engines/software_16_x11/Makefile src/modules/engines/software_16_ddraw/Makefile src/modules/engines/software_16_sdl/Makefile src/modules/loaders/Makefile src/modules/loaders/edb/Makefile src/modules/loaders/eet/Makefile src/modules/loaders/gif/Makefile src/modules/loaders/jpeg/Makefile src/modules/loaders/png/Makefile src/modules/loaders/tiff/Makefile src/modules/loaders/xpm/Makefile src/modules/loaders/bmp/Makefile src/modules/loaders/ico/Makefile src/modules/loaders/tga/Makefile src/modules/loaders/svg/Makefile src/modules/loaders/pmaps/Makefile src/modules/loaders/wbmp/Makefile src/modules/loaders/psd/Makefile src/modules/loaders/generic/Makefile src/modules/savers/Makefile src/modules/savers/edb/Makefile src/modules/savers/eet/Makefile src/modules/savers/jpeg/Makefile src/modules/savers/png/Makefile src/modules/savers/tiff/Makefile src/static_deps/Makefile src/static_deps/liblinebreak/Makefile src/lib/include/Makefile src/examples/Makefile src/tests/Makefile evas.spec" 32877ac_config_files="$ac_config_files Makefile evas-directfb.pc evas-fb.pc evas-opengl-x11.pc evas-opengl-sdl.pc evas-opengl-cocoa.pc evas-software-buffer.pc evas-software-x11.pc evas-software-8-x11.pc evas-software-16-x11.pc evas-software-gdi.pc evas-software-ddraw.pc evas-software-16-ddraw.pc evas-direct3d.pc evas-software-16-wince.pc evas-software-sdl.pc evas-psl1ght.pc evas-wayland-shm.pc evas-wayland-egl.pc evas.pc doc/evas.dox doc/Makefile doc/Doxyfile src/Makefile src/bin/Makefile src/lib/Makefile src/lib/canvas/Makefile src/lib/file/Makefile src/lib/cache/Makefile src/lib/cserve/Makefile src/lib/engines/Makefile src/lib/engines/common/Makefile src/lib/engines/common/evas_op_add/Makefile src/lib/engines/common/evas_op_blend/Makefile src/lib/engines/common/evas_op_copy/Makefile src/lib/engines/common/evas_op_mask/Makefile src/lib/engines/common/evas_op_mul/Makefile src/lib/engines/common/evas_op_sub/Makefile src/lib/engines/common_8/Makefile src/lib/engines/common_16/Makefile src/modules/Makefile src/modules/engines/Makefile src/modules/engines/software_generic/Makefile src/modules/engines/software_gdi/Makefile src/modules/engines/software_ddraw/Makefile src/modules/engines/direct3d/Makefile src/modules/engines/software_16_wince/Makefile src/modules/engines/software_x11/Makefile src/modules/engines/fb/Makefile src/modules/engines/buffer/Makefile src/modules/engines/directfb/Makefile src/modules/engines/gl_common/Makefile src/modules/engines/gl_x11/Makefile src/modules/engines/gl_sdl/Makefile src/modules/engines/gl_cocoa/Makefile src/modules/engines/psl1ght/Makefile src/modules/engines/software_sdl/Makefile src/modules/engines/software_8/Makefile src/modules/engines/software_8_x11/Makefile src/modules/engines/software_16/Makefile src/modules/engines/software_16_x11/Makefile src/modules/engines/software_16_ddraw/Makefile src/modules/engines/software_16_sdl/Makefile src/modules/engines/wayland_shm/Makefile src/modules/engines/wayland_egl/Makefile src/modules/loaders/Makefile src/modules/loaders/edb/Makefile src/modules/loaders/eet/Makefile src/modules/loaders/gif/Makefile src/modules/loaders/jpeg/Makefile src/modules/loaders/png/Makefile src/modules/loaders/tiff/Makefile src/modules/loaders/xpm/Makefile src/modules/loaders/bmp/Makefile src/modules/loaders/ico/Makefile src/modules/loaders/tga/Makefile src/modules/loaders/svg/Makefile src/modules/loaders/pmaps/Makefile src/modules/loaders/wbmp/Makefile src/modules/loaders/psd/Makefile src/modules/loaders/generic/Makefile src/modules/savers/Makefile src/modules/savers/edb/Makefile src/modules/savers/eet/Makefile src/modules/savers/jpeg/Makefile src/modules/savers/png/Makefile src/modules/savers/tiff/Makefile src/static_deps/Makefile src/static_deps/liblinebreak/Makefile src/lib/include/Makefile src/examples/Makefile src/tests/Makefile evas.spec"
32293 32878
32294cat >confcache <<\_ACEOF 32879cat >confcache <<\_ACEOF
32295# This file is a shell script that caches the results of configure 32880# This file is a shell script that caches the results of configure
@@ -32374,7 +32959,6 @@ DEFS=-DHAVE_CONFIG_H
32374 32959
32375ac_libobjs= 32960ac_libobjs=
32376ac_ltlibobjs= 32961ac_ltlibobjs=
32377U=
32378for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue 32962for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
32379 # 1. Remove the extension, and $U if already installed. 32963 # 1. Remove the extension, and $U if already installed.
32380 ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' 32964 ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
@@ -32398,424 +32982,440 @@ else
32398fi 32982fi
32399 32983
32400if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then 32984if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
32401 as_fn_error $? "conditional \"AMDEP\" was never defined. 32985 as_fn_error "conditional \"AMDEP\" was never defined.
32402Usually this means the macro was only invoked conditionally." "$LINENO" 5 32986Usually this means the macro was only invoked conditionally." "$LINENO" 5
32403fi 32987fi
32404if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then 32988if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
32405 as_fn_error $? "conditional \"am__fastdepCC\" was never defined. 32989 as_fn_error "conditional \"am__fastdepCC\" was never defined.
32406Usually this means the macro was only invoked conditionally." "$LINENO" 5 32990Usually this means the macro was only invoked conditionally." "$LINENO" 5
32407fi 32991fi
32408if test -z "${am__fastdepOBJC_TRUE}" && test -z "${am__fastdepOBJC_FALSE}"; then 32992if test -z "${am__fastdepOBJC_TRUE}" && test -z "${am__fastdepOBJC_FALSE}"; then
32409 as_fn_error $? "conditional \"am__fastdepOBJC\" was never defined. 32993 as_fn_error "conditional \"am__fastdepOBJC\" was never defined.
32410Usually this means the macro was only invoked conditionally." "$LINENO" 5 32994Usually this means the macro was only invoked conditionally." "$LINENO" 5
32411fi 32995fi
32412if test -z "${am__fastdepOBJC_TRUE}" && test -z "${am__fastdepOBJC_FALSE}"; then 32996if test -z "${am__fastdepOBJC_TRUE}" && test -z "${am__fastdepOBJC_FALSE}"; then
32413 as_fn_error $? "conditional \"am__fastdepOBJC\" was never defined. 32997 as_fn_error "conditional \"am__fastdepOBJC\" was never defined.
32414Usually this means the macro was only invoked conditionally." "$LINENO" 5 32998Usually this means the macro was only invoked conditionally." "$LINENO" 5
32415fi 32999fi
32416if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then 33000if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
32417 as_fn_error $? "conditional \"am__fastdepCXX\" was never defined. 33001 as_fn_error "conditional \"am__fastdepCXX\" was never defined.
32418Usually this means the macro was only invoked conditionally." "$LINENO" 5 33002Usually this means the macro was only invoked conditionally." "$LINENO" 5
32419fi 33003fi
32420if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then 33004if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
32421 as_fn_error $? "conditional \"am__fastdepCXX\" was never defined. 33005 as_fn_error "conditional \"am__fastdepCXX\" was never defined.
32422Usually this means the macro was only invoked conditionally." "$LINENO" 5 33006Usually this means the macro was only invoked conditionally." "$LINENO" 5
32423fi 33007fi
32424if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then 33008if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
32425 as_fn_error $? "conditional \"am__fastdepCC\" was never defined. 33009 as_fn_error "conditional \"am__fastdepCC\" was never defined.
32426Usually this means the macro was only invoked conditionally." "$LINENO" 5 33010Usually this means the macro was only invoked conditionally." "$LINENO" 5
32427fi 33011fi
32428if test -z "${EFL_BUILD_DOC_TRUE}" && test -z "${EFL_BUILD_DOC_FALSE}"; then 33012if test -z "${EFL_BUILD_DOC_TRUE}" && test -z "${EFL_BUILD_DOC_FALSE}"; then
32429 as_fn_error $? "conditional \"EFL_BUILD_DOC\" was never defined. 33013 as_fn_error "conditional \"EFL_BUILD_DOC\" was never defined.
32430Usually this means the macro was only invoked conditionally." "$LINENO" 5 33014Usually this means the macro was only invoked conditionally." "$LINENO" 5
32431fi 33015fi
32432if test -z "${EVAS_USE_LINEBREAK_TRUE}" && test -z "${EVAS_USE_LINEBREAK_FALSE}"; then 33016if test -z "${EVAS_USE_LINEBREAK_TRUE}" && test -z "${EVAS_USE_LINEBREAK_FALSE}"; then
32433 as_fn_error $? "conditional \"EVAS_USE_LINEBREAK\" was never defined. 33017 as_fn_error "conditional \"EVAS_USE_LINEBREAK\" was never defined.
32434Usually this means the macro was only invoked conditionally." "$LINENO" 5 33018Usually this means the macro was only invoked conditionally." "$LINENO" 5
32435fi 33019fi
32436 33020
32437if test -z "${EVAS_CSERVE_TRUE}" && test -z "${EVAS_CSERVE_FALSE}"; then 33021if test -z "${EVAS_CSERVE_TRUE}" && test -z "${EVAS_CSERVE_FALSE}"; then
32438 as_fn_error $? "conditional \"EVAS_CSERVE\" was never defined. 33022 as_fn_error "conditional \"EVAS_CSERVE\" was never defined.
32439Usually this means the macro was only invoked conditionally." "$LINENO" 5 33023Usually this means the macro was only invoked conditionally." "$LINENO" 5
32440fi 33024fi
32441if test -z "${BUILD_ENGINE_BUFFER_TRUE}" && test -z "${BUILD_ENGINE_BUFFER_FALSE}"; then 33025if test -z "${BUILD_ENGINE_BUFFER_TRUE}" && test -z "${BUILD_ENGINE_BUFFER_FALSE}"; then
32442 as_fn_error $? "conditional \"BUILD_ENGINE_BUFFER\" was never defined. 33026 as_fn_error "conditional \"BUILD_ENGINE_BUFFER\" was never defined.
32443Usually this means the macro was only invoked conditionally." "$LINENO" 5 33027Usually this means the macro was only invoked conditionally." "$LINENO" 5
32444fi 33028fi
32445if test -z "${EVAS_STATIC_BUILD_BUFFER_TRUE}" && test -z "${EVAS_STATIC_BUILD_BUFFER_FALSE}"; then 33029if test -z "${EVAS_STATIC_BUILD_BUFFER_TRUE}" && test -z "${EVAS_STATIC_BUILD_BUFFER_FALSE}"; then
32446 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_BUFFER\" was never defined. 33030 as_fn_error "conditional \"EVAS_STATIC_BUILD_BUFFER\" was never defined.
32447Usually this means the macro was only invoked conditionally." "$LINENO" 5 33031Usually this means the macro was only invoked conditionally." "$LINENO" 5
32448fi 33032fi
32449if test -z "${BUILD_ENGINE_SOFTWARE_GDI_TRUE}" && test -z "${BUILD_ENGINE_SOFTWARE_GDI_FALSE}"; then 33033if test -z "${BUILD_ENGINE_SOFTWARE_GDI_TRUE}" && test -z "${BUILD_ENGINE_SOFTWARE_GDI_FALSE}"; then
32450 as_fn_error $? "conditional \"BUILD_ENGINE_SOFTWARE_GDI\" was never defined. 33034 as_fn_error "conditional \"BUILD_ENGINE_SOFTWARE_GDI\" was never defined.
32451Usually this means the macro was only invoked conditionally." "$LINENO" 5 33035Usually this means the macro was only invoked conditionally." "$LINENO" 5
32452fi 33036fi
32453if test -z "${EVAS_STATIC_BUILD_SOFTWARE_GDI_TRUE}" && test -z "${EVAS_STATIC_BUILD_SOFTWARE_GDI_FALSE}"; then 33037if test -z "${EVAS_STATIC_BUILD_SOFTWARE_GDI_TRUE}" && test -z "${EVAS_STATIC_BUILD_SOFTWARE_GDI_FALSE}"; then
32454 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_SOFTWARE_GDI\" was never defined. 33038 as_fn_error "conditional \"EVAS_STATIC_BUILD_SOFTWARE_GDI\" was never defined.
32455Usually this means the macro was only invoked conditionally." "$LINENO" 5 33039Usually this means the macro was only invoked conditionally." "$LINENO" 5
32456fi 33040fi
32457if test -z "${BUILD_ENGINE_SOFTWARE_DDRAW_TRUE}" && test -z "${BUILD_ENGINE_SOFTWARE_DDRAW_FALSE}"; then 33041if test -z "${BUILD_ENGINE_SOFTWARE_DDRAW_TRUE}" && test -z "${BUILD_ENGINE_SOFTWARE_DDRAW_FALSE}"; then
32458 as_fn_error $? "conditional \"BUILD_ENGINE_SOFTWARE_DDRAW\" was never defined. 33042 as_fn_error "conditional \"BUILD_ENGINE_SOFTWARE_DDRAW\" was never defined.
32459Usually this means the macro was only invoked conditionally." "$LINENO" 5 33043Usually this means the macro was only invoked conditionally." "$LINENO" 5
32460fi 33044fi
32461if test -z "${EVAS_STATIC_BUILD_SOFTWARE_DDRAW_TRUE}" && test -z "${EVAS_STATIC_BUILD_SOFTWARE_DDRAW_FALSE}"; then 33045if test -z "${EVAS_STATIC_BUILD_SOFTWARE_DDRAW_TRUE}" && test -z "${EVAS_STATIC_BUILD_SOFTWARE_DDRAW_FALSE}"; then
32462 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_SOFTWARE_DDRAW\" was never defined. 33046 as_fn_error "conditional \"EVAS_STATIC_BUILD_SOFTWARE_DDRAW\" was never defined.
32463Usually this means the macro was only invoked conditionally." "$LINENO" 5 33047Usually this means the macro was only invoked conditionally." "$LINENO" 5
32464fi 33048fi
32465if test -z "${BUILD_ENGINE_DIRECT3D_TRUE}" && test -z "${BUILD_ENGINE_DIRECT3D_FALSE}"; then 33049if test -z "${BUILD_ENGINE_DIRECT3D_TRUE}" && test -z "${BUILD_ENGINE_DIRECT3D_FALSE}"; then
32466 as_fn_error $? "conditional \"BUILD_ENGINE_DIRECT3D\" was never defined. 33050 as_fn_error "conditional \"BUILD_ENGINE_DIRECT3D\" was never defined.
32467Usually this means the macro was only invoked conditionally." "$LINENO" 5 33051Usually this means the macro was only invoked conditionally." "$LINENO" 5
32468fi 33052fi
32469if test -z "${EVAS_STATIC_BUILD_DIRECT3D_TRUE}" && test -z "${EVAS_STATIC_BUILD_DIRECT3D_FALSE}"; then 33053if test -z "${EVAS_STATIC_BUILD_DIRECT3D_TRUE}" && test -z "${EVAS_STATIC_BUILD_DIRECT3D_FALSE}"; then
32470 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_DIRECT3D\" was never defined. 33054 as_fn_error "conditional \"EVAS_STATIC_BUILD_DIRECT3D\" was never defined.
32471Usually this means the macro was only invoked conditionally." "$LINENO" 5 33055Usually this means the macro was only invoked conditionally." "$LINENO" 5
32472fi 33056fi
32473if test -z "${BUILD_ENGINE_SOFTWARE_SDL_TRUE}" && test -z "${BUILD_ENGINE_SOFTWARE_SDL_FALSE}"; then 33057if test -z "${BUILD_ENGINE_SOFTWARE_SDL_TRUE}" && test -z "${BUILD_ENGINE_SOFTWARE_SDL_FALSE}"; then
32474 as_fn_error $? "conditional \"BUILD_ENGINE_SOFTWARE_SDL\" was never defined. 33058 as_fn_error "conditional \"BUILD_ENGINE_SOFTWARE_SDL\" was never defined.
32475Usually this means the macro was only invoked conditionally." "$LINENO" 5 33059Usually this means the macro was only invoked conditionally." "$LINENO" 5
32476fi 33060fi
32477if test -z "${EVAS_STATIC_BUILD_SOFTWARE_SDL_TRUE}" && test -z "${EVAS_STATIC_BUILD_SOFTWARE_SDL_FALSE}"; then 33061if test -z "${EVAS_STATIC_BUILD_SOFTWARE_SDL_TRUE}" && test -z "${EVAS_STATIC_BUILD_SOFTWARE_SDL_FALSE}"; then
32478 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_SOFTWARE_SDL\" was never defined. 33062 as_fn_error "conditional \"EVAS_STATIC_BUILD_SOFTWARE_SDL\" was never defined.
32479Usually this means the macro was only invoked conditionally." "$LINENO" 5 33063Usually this means the macro was only invoked conditionally." "$LINENO" 5
32480fi 33064fi
32481if test -z "${BUILD_ENGINE_PSL1GHT_TRUE}" && test -z "${BUILD_ENGINE_PSL1GHT_FALSE}"; then 33065if test -z "${BUILD_ENGINE_PSL1GHT_TRUE}" && test -z "${BUILD_ENGINE_PSL1GHT_FALSE}"; then
32482 as_fn_error $? "conditional \"BUILD_ENGINE_PSL1GHT\" was never defined. 33066 as_fn_error "conditional \"BUILD_ENGINE_PSL1GHT\" was never defined.
32483Usually this means the macro was only invoked conditionally." "$LINENO" 5 33067Usually this means the macro was only invoked conditionally." "$LINENO" 5
32484fi 33068fi
32485if test -z "${EVAS_STATIC_BUILD_PSL1GHT_TRUE}" && test -z "${EVAS_STATIC_BUILD_PSL1GHT_FALSE}"; then 33069if test -z "${EVAS_STATIC_BUILD_PSL1GHT_TRUE}" && test -z "${EVAS_STATIC_BUILD_PSL1GHT_FALSE}"; then
32486 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_PSL1GHT\" was never defined. 33070 as_fn_error "conditional \"EVAS_STATIC_BUILD_PSL1GHT\" was never defined.
32487Usually this means the macro was only invoked conditionally." "$LINENO" 5 33071Usually this means the macro was only invoked conditionally." "$LINENO" 5
32488fi 33072fi
32489if test -z "${BUILD_ENGINE_GL_SDL_TRUE}" && test -z "${BUILD_ENGINE_GL_SDL_FALSE}"; then 33073if test -z "${BUILD_ENGINE_GL_SDL_TRUE}" && test -z "${BUILD_ENGINE_GL_SDL_FALSE}"; then
32490 as_fn_error $? "conditional \"BUILD_ENGINE_GL_SDL\" was never defined. 33074 as_fn_error "conditional \"BUILD_ENGINE_GL_SDL\" was never defined.
32491Usually this means the macro was only invoked conditionally." "$LINENO" 5 33075Usually this means the macro was only invoked conditionally." "$LINENO" 5
32492fi 33076fi
32493if test -z "${EVAS_STATIC_BUILD_GL_SDL_TRUE}" && test -z "${EVAS_STATIC_BUILD_GL_SDL_FALSE}"; then 33077if test -z "${EVAS_STATIC_BUILD_GL_SDL_TRUE}" && test -z "${EVAS_STATIC_BUILD_GL_SDL_FALSE}"; then
32494 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_GL_SDL\" was never defined. 33078 as_fn_error "conditional \"EVAS_STATIC_BUILD_GL_SDL\" was never defined.
32495Usually this means the macro was only invoked conditionally." "$LINENO" 5 33079Usually this means the macro was only invoked conditionally." "$LINENO" 5
32496fi 33080fi
32497if test -z "${BUILD_ENGINE_GL_COCOA_TRUE}" && test -z "${BUILD_ENGINE_GL_COCOA_FALSE}"; then 33081if test -z "${BUILD_ENGINE_GL_COCOA_TRUE}" && test -z "${BUILD_ENGINE_GL_COCOA_FALSE}"; then
32498 as_fn_error $? "conditional \"BUILD_ENGINE_GL_COCOA\" was never defined. 33082 as_fn_error "conditional \"BUILD_ENGINE_GL_COCOA\" was never defined.
32499Usually this means the macro was only invoked conditionally." "$LINENO" 5 33083Usually this means the macro was only invoked conditionally." "$LINENO" 5
32500fi 33084fi
32501if test -z "${EVAS_STATIC_BUILD_GL_COCOA_TRUE}" && test -z "${EVAS_STATIC_BUILD_GL_COCOA_FALSE}"; then 33085if test -z "${EVAS_STATIC_BUILD_GL_COCOA_TRUE}" && test -z "${EVAS_STATIC_BUILD_GL_COCOA_FALSE}"; then
32502 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_GL_COCOA\" was never defined. 33086 as_fn_error "conditional \"EVAS_STATIC_BUILD_GL_COCOA\" was never defined.
32503Usually this means the macro was only invoked conditionally." "$LINENO" 5 33087Usually this means the macro was only invoked conditionally." "$LINENO" 5
32504fi 33088fi
32505if test -z "${BUILD_ENGINE_FB_TRUE}" && test -z "${BUILD_ENGINE_FB_FALSE}"; then 33089if test -z "${BUILD_ENGINE_FB_TRUE}" && test -z "${BUILD_ENGINE_FB_FALSE}"; then
32506 as_fn_error $? "conditional \"BUILD_ENGINE_FB\" was never defined. 33090 as_fn_error "conditional \"BUILD_ENGINE_FB\" was never defined.
32507Usually this means the macro was only invoked conditionally." "$LINENO" 5 33091Usually this means the macro was only invoked conditionally." "$LINENO" 5
32508fi 33092fi
32509if test -z "${EVAS_STATIC_BUILD_FB_TRUE}" && test -z "${EVAS_STATIC_BUILD_FB_FALSE}"; then 33093if test -z "${EVAS_STATIC_BUILD_FB_TRUE}" && test -z "${EVAS_STATIC_BUILD_FB_FALSE}"; then
32510 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_FB\" was never defined. 33094 as_fn_error "conditional \"EVAS_STATIC_BUILD_FB\" was never defined.
32511Usually this means the macro was only invoked conditionally." "$LINENO" 5 33095Usually this means the macro was only invoked conditionally." "$LINENO" 5
32512fi 33096fi
32513if test -z "${BUILD_ENGINE_DIRECTFB_TRUE}" && test -z "${BUILD_ENGINE_DIRECTFB_FALSE}"; then 33097if test -z "${BUILD_ENGINE_DIRECTFB_TRUE}" && test -z "${BUILD_ENGINE_DIRECTFB_FALSE}"; then
32514 as_fn_error $? "conditional \"BUILD_ENGINE_DIRECTFB\" was never defined. 33098 as_fn_error "conditional \"BUILD_ENGINE_DIRECTFB\" was never defined.
32515Usually this means the macro was only invoked conditionally." "$LINENO" 5 33099Usually this means the macro was only invoked conditionally." "$LINENO" 5
32516fi 33100fi
32517if test -z "${EVAS_STATIC_BUILD_DIRECTFB_TRUE}" && test -z "${EVAS_STATIC_BUILD_DIRECTFB_FALSE}"; then 33101if test -z "${EVAS_STATIC_BUILD_DIRECTFB_TRUE}" && test -z "${EVAS_STATIC_BUILD_DIRECTFB_FALSE}"; then
32518 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_DIRECTFB\" was never defined. 33102 as_fn_error "conditional \"EVAS_STATIC_BUILD_DIRECTFB\" was never defined.
32519Usually this means the macro was only invoked conditionally." "$LINENO" 5 33103Usually this means the macro was only invoked conditionally." "$LINENO" 5
32520fi 33104fi
32521if test -z "${BUILD_ENGINE_SOFTWARE_8_X11_TRUE}" && test -z "${BUILD_ENGINE_SOFTWARE_8_X11_FALSE}"; then 33105if test -z "${BUILD_ENGINE_SOFTWARE_8_X11_TRUE}" && test -z "${BUILD_ENGINE_SOFTWARE_8_X11_FALSE}"; then
32522 as_fn_error $? "conditional \"BUILD_ENGINE_SOFTWARE_8_X11\" was never defined. 33106 as_fn_error "conditional \"BUILD_ENGINE_SOFTWARE_8_X11\" was never defined.
32523Usually this means the macro was only invoked conditionally." "$LINENO" 5 33107Usually this means the macro was only invoked conditionally." "$LINENO" 5
32524fi 33108fi
32525if test -z "${EVAS_STATIC_BUILD_SOFTWARE_8_X11_TRUE}" && test -z "${EVAS_STATIC_BUILD_SOFTWARE_8_X11_FALSE}"; then 33109if test -z "${EVAS_STATIC_BUILD_SOFTWARE_8_X11_TRUE}" && test -z "${EVAS_STATIC_BUILD_SOFTWARE_8_X11_FALSE}"; then
32526 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_SOFTWARE_8_X11\" was never defined. 33110 as_fn_error "conditional \"EVAS_STATIC_BUILD_SOFTWARE_8_X11\" was never defined.
32527Usually this means the macro was only invoked conditionally." "$LINENO" 5 33111Usually this means the macro was only invoked conditionally." "$LINENO" 5
32528fi 33112fi
32529if test -z "${BUILD_ENGINE_SOFTWARE_16_X11_TRUE}" && test -z "${BUILD_ENGINE_SOFTWARE_16_X11_FALSE}"; then 33113if test -z "${BUILD_ENGINE_SOFTWARE_16_X11_TRUE}" && test -z "${BUILD_ENGINE_SOFTWARE_16_X11_FALSE}"; then
32530 as_fn_error $? "conditional \"BUILD_ENGINE_SOFTWARE_16_X11\" was never defined. 33114 as_fn_error "conditional \"BUILD_ENGINE_SOFTWARE_16_X11\" was never defined.
32531Usually this means the macro was only invoked conditionally." "$LINENO" 5 33115Usually this means the macro was only invoked conditionally." "$LINENO" 5
32532fi 33116fi
32533if test -z "${EVAS_STATIC_BUILD_SOFTWARE_16_X11_TRUE}" && test -z "${EVAS_STATIC_BUILD_SOFTWARE_16_X11_FALSE}"; then 33117if test -z "${EVAS_STATIC_BUILD_SOFTWARE_16_X11_TRUE}" && test -z "${EVAS_STATIC_BUILD_SOFTWARE_16_X11_FALSE}"; then
32534 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_SOFTWARE_16_X11\" was never defined. 33118 as_fn_error "conditional \"EVAS_STATIC_BUILD_SOFTWARE_16_X11\" was never defined.
32535Usually this means the macro was only invoked conditionally." "$LINENO" 5 33119Usually this means the macro was only invoked conditionally." "$LINENO" 5
32536fi 33120fi
32537if test -z "${BUILD_ENGINE_SOFTWARE_16_DDRAW_TRUE}" && test -z "${BUILD_ENGINE_SOFTWARE_16_DDRAW_FALSE}"; then 33121if test -z "${BUILD_ENGINE_SOFTWARE_16_DDRAW_TRUE}" && test -z "${BUILD_ENGINE_SOFTWARE_16_DDRAW_FALSE}"; then
32538 as_fn_error $? "conditional \"BUILD_ENGINE_SOFTWARE_16_DDRAW\" was never defined. 33122 as_fn_error "conditional \"BUILD_ENGINE_SOFTWARE_16_DDRAW\" was never defined.
32539Usually this means the macro was only invoked conditionally." "$LINENO" 5 33123Usually this means the macro was only invoked conditionally." "$LINENO" 5
32540fi 33124fi
32541if test -z "${EVAS_STATIC_BUILD_SOFTWARE_16_DDRAW_TRUE}" && test -z "${EVAS_STATIC_BUILD_SOFTWARE_16_DDRAW_FALSE}"; then 33125if test -z "${EVAS_STATIC_BUILD_SOFTWARE_16_DDRAW_TRUE}" && test -z "${EVAS_STATIC_BUILD_SOFTWARE_16_DDRAW_FALSE}"; then
32542 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_SOFTWARE_16_DDRAW\" was never defined. 33126 as_fn_error "conditional \"EVAS_STATIC_BUILD_SOFTWARE_16_DDRAW\" was never defined.
32543Usually this means the macro was only invoked conditionally." "$LINENO" 5 33127Usually this means the macro was only invoked conditionally." "$LINENO" 5
32544fi 33128fi
32545if test -z "${BUILD_ENGINE_SOFTWARE_16_WINCE_TRUE}" && test -z "${BUILD_ENGINE_SOFTWARE_16_WINCE_FALSE}"; then 33129if test -z "${BUILD_ENGINE_SOFTWARE_16_WINCE_TRUE}" && test -z "${BUILD_ENGINE_SOFTWARE_16_WINCE_FALSE}"; then
32546 as_fn_error $? "conditional \"BUILD_ENGINE_SOFTWARE_16_WINCE\" was never defined. 33130 as_fn_error "conditional \"BUILD_ENGINE_SOFTWARE_16_WINCE\" was never defined.
32547Usually this means the macro was only invoked conditionally." "$LINENO" 5 33131Usually this means the macro was only invoked conditionally." "$LINENO" 5
32548fi 33132fi
32549if test -z "${EVAS_STATIC_BUILD_SOFTWARE_16_WINCE_TRUE}" && test -z "${EVAS_STATIC_BUILD_SOFTWARE_16_WINCE_FALSE}"; then 33133if test -z "${EVAS_STATIC_BUILD_SOFTWARE_16_WINCE_TRUE}" && test -z "${EVAS_STATIC_BUILD_SOFTWARE_16_WINCE_FALSE}"; then
32550 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_SOFTWARE_16_WINCE\" was never defined. 33134 as_fn_error "conditional \"EVAS_STATIC_BUILD_SOFTWARE_16_WINCE\" was never defined.
32551Usually this means the macro was only invoked conditionally." "$LINENO" 5 33135Usually this means the macro was only invoked conditionally." "$LINENO" 5
32552fi 33136fi
32553if test -z "${BUILD_ENGINE_SOFTWARE_16_SDL_TRUE}" && test -z "${BUILD_ENGINE_SOFTWARE_16_SDL_FALSE}"; then 33137if test -z "${BUILD_ENGINE_SOFTWARE_16_SDL_TRUE}" && test -z "${BUILD_ENGINE_SOFTWARE_16_SDL_FALSE}"; then
32554 as_fn_error $? "conditional \"BUILD_ENGINE_SOFTWARE_16_SDL\" was never defined. 33138 as_fn_error "conditional \"BUILD_ENGINE_SOFTWARE_16_SDL\" was never defined.
32555Usually this means the macro was only invoked conditionally." "$LINENO" 5 33139Usually this means the macro was only invoked conditionally." "$LINENO" 5
32556fi 33140fi
32557if test -z "${EVAS_STATIC_BUILD_SOFTWARE_16_SDL_TRUE}" && test -z "${EVAS_STATIC_BUILD_SOFTWARE_16_SDL_FALSE}"; then 33141if test -z "${EVAS_STATIC_BUILD_SOFTWARE_16_SDL_TRUE}" && test -z "${EVAS_STATIC_BUILD_SOFTWARE_16_SDL_FALSE}"; then
32558 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_SOFTWARE_16_SDL\" was never defined. 33142 as_fn_error "conditional \"EVAS_STATIC_BUILD_SOFTWARE_16_SDL\" was never defined.
33143Usually this means the macro was only invoked conditionally." "$LINENO" 5
33144fi
33145if test -z "${BUILD_ENGINE_WAYLAND_SHM_TRUE}" && test -z "${BUILD_ENGINE_WAYLAND_SHM_FALSE}"; then
33146 as_fn_error "conditional \"BUILD_ENGINE_WAYLAND_SHM\" was never defined.
33147Usually this means the macro was only invoked conditionally." "$LINENO" 5
33148fi
33149if test -z "${EVAS_STATIC_BUILD_WAYLAND_SHM_TRUE}" && test -z "${EVAS_STATIC_BUILD_WAYLAND_SHM_FALSE}"; then
33150 as_fn_error "conditional \"EVAS_STATIC_BUILD_WAYLAND_SHM\" was never defined.
33151Usually this means the macro was only invoked conditionally." "$LINENO" 5
33152fi
33153if test -z "${BUILD_ENGINE_WAYLAND_EGL_TRUE}" && test -z "${BUILD_ENGINE_WAYLAND_EGL_FALSE}"; then
33154 as_fn_error "conditional \"BUILD_ENGINE_WAYLAND_EGL\" was never defined.
33155Usually this means the macro was only invoked conditionally." "$LINENO" 5
33156fi
33157if test -z "${EVAS_STATIC_BUILD_WAYLAND_EGL_TRUE}" && test -z "${EVAS_STATIC_BUILD_WAYLAND_EGL_FALSE}"; then
33158 as_fn_error "conditional \"EVAS_STATIC_BUILD_WAYLAND_EGL\" was never defined.
32559Usually this means the macro was only invoked conditionally." "$LINENO" 5 33159Usually this means the macro was only invoked conditionally." "$LINENO" 5
32560fi 33160fi
32561if test -z "${EVAS_STATIC_BUILD_SOFTWARE_GENERIC_TRUE}" && test -z "${EVAS_STATIC_BUILD_SOFTWARE_GENERIC_FALSE}"; then 33161if test -z "${EVAS_STATIC_BUILD_SOFTWARE_GENERIC_TRUE}" && test -z "${EVAS_STATIC_BUILD_SOFTWARE_GENERIC_FALSE}"; then
32562 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_SOFTWARE_GENERIC\" was never defined. 33162 as_fn_error "conditional \"EVAS_STATIC_BUILD_SOFTWARE_GENERIC\" was never defined.
32563Usually this means the macro was only invoked conditionally." "$LINENO" 5 33163Usually this means the macro was only invoked conditionally." "$LINENO" 5
32564fi 33164fi
32565if test -z "${BUILD_ENGINE_SOFTWARE_XCB_TRUE}" && test -z "${BUILD_ENGINE_SOFTWARE_XCB_FALSE}"; then 33165if test -z "${BUILD_ENGINE_SOFTWARE_XCB_TRUE}" && test -z "${BUILD_ENGINE_SOFTWARE_XCB_FALSE}"; then
32566 as_fn_error $? "conditional \"BUILD_ENGINE_SOFTWARE_XCB\" was never defined. 33166 as_fn_error "conditional \"BUILD_ENGINE_SOFTWARE_XCB\" was never defined.
32567Usually this means the macro was only invoked conditionally." "$LINENO" 5 33167Usually this means the macro was only invoked conditionally." "$LINENO" 5
32568fi 33168fi
32569if test -z "${EVAS_STATIC_BUILD_SOFTWARE_XCB_TRUE}" && test -z "${EVAS_STATIC_BUILD_SOFTWARE_XCB_FALSE}"; then 33169if test -z "${EVAS_STATIC_BUILD_SOFTWARE_XCB_TRUE}" && test -z "${EVAS_STATIC_BUILD_SOFTWARE_XCB_FALSE}"; then
32570 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_SOFTWARE_XCB\" was never defined. 33170 as_fn_error "conditional \"EVAS_STATIC_BUILD_SOFTWARE_XCB\" was never defined.
32571Usually this means the macro was only invoked conditionally." "$LINENO" 5 33171Usually this means the macro was only invoked conditionally." "$LINENO" 5
32572fi 33172fi
32573if test -z "${BUILD_ENGINE_SOFTWARE_XLIB_TRUE}" && test -z "${BUILD_ENGINE_SOFTWARE_XLIB_FALSE}"; then 33173if test -z "${BUILD_ENGINE_SOFTWARE_XLIB_TRUE}" && test -z "${BUILD_ENGINE_SOFTWARE_XLIB_FALSE}"; then
32574 as_fn_error $? "conditional \"BUILD_ENGINE_SOFTWARE_XLIB\" was never defined. 33174 as_fn_error "conditional \"BUILD_ENGINE_SOFTWARE_XLIB\" was never defined.
32575Usually this means the macro was only invoked conditionally." "$LINENO" 5 33175Usually this means the macro was only invoked conditionally." "$LINENO" 5
32576fi 33176fi
32577if test -z "${EVAS_STATIC_BUILD_SOFTWARE_XLIB_TRUE}" && test -z "${EVAS_STATIC_BUILD_SOFTWARE_XLIB_FALSE}"; then 33177if test -z "${EVAS_STATIC_BUILD_SOFTWARE_XLIB_TRUE}" && test -z "${EVAS_STATIC_BUILD_SOFTWARE_XLIB_FALSE}"; then
32578 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_SOFTWARE_XLIB\" was never defined. 33178 as_fn_error "conditional \"EVAS_STATIC_BUILD_SOFTWARE_XLIB\" was never defined.
32579Usually this means the macro was only invoked conditionally." "$LINENO" 5 33179Usually this means the macro was only invoked conditionally." "$LINENO" 5
32580fi 33180fi
32581if test -z "${BUILD_ENGINE_SOFTWARE_XLIB_TRUE}" && test -z "${BUILD_ENGINE_SOFTWARE_XLIB_FALSE}"; then 33181if test -z "${BUILD_ENGINE_SOFTWARE_XLIB_TRUE}" && test -z "${BUILD_ENGINE_SOFTWARE_XLIB_FALSE}"; then
32582 as_fn_error $? "conditional \"BUILD_ENGINE_SOFTWARE_XLIB\" was never defined. 33182 as_fn_error "conditional \"BUILD_ENGINE_SOFTWARE_XLIB\" was never defined.
32583Usually this means the macro was only invoked conditionally." "$LINENO" 5 33183Usually this means the macro was only invoked conditionally." "$LINENO" 5
32584fi 33184fi
32585if test -z "${BUILD_ENGINE_SOFTWARE_XCB_TRUE}" && test -z "${BUILD_ENGINE_SOFTWARE_XCB_FALSE}"; then 33185if test -z "${BUILD_ENGINE_SOFTWARE_XCB_TRUE}" && test -z "${BUILD_ENGINE_SOFTWARE_XCB_FALSE}"; then
32586 as_fn_error $? "conditional \"BUILD_ENGINE_SOFTWARE_XCB\" was never defined. 33186 as_fn_error "conditional \"BUILD_ENGINE_SOFTWARE_XCB\" was never defined.
32587Usually this means the macro was only invoked conditionally." "$LINENO" 5 33187Usually this means the macro was only invoked conditionally." "$LINENO" 5
32588fi 33188fi
32589if test -z "${BUILD_ENGINE_SOFTWARE_X11_TRUE}" && test -z "${BUILD_ENGINE_SOFTWARE_X11_FALSE}"; then 33189if test -z "${BUILD_ENGINE_SOFTWARE_X11_TRUE}" && test -z "${BUILD_ENGINE_SOFTWARE_X11_FALSE}"; then
32590 as_fn_error $? "conditional \"BUILD_ENGINE_SOFTWARE_X11\" was never defined. 33190 as_fn_error "conditional \"BUILD_ENGINE_SOFTWARE_X11\" was never defined.
32591Usually this means the macro was only invoked conditionally." "$LINENO" 5 33191Usually this means the macro was only invoked conditionally." "$LINENO" 5
32592fi 33192fi
32593if test -z "${EVAS_STATIC_BUILD_SOFTWARE_X11_TRUE}" && test -z "${EVAS_STATIC_BUILD_SOFTWARE_X11_FALSE}"; then 33193if test -z "${EVAS_STATIC_BUILD_SOFTWARE_X11_TRUE}" && test -z "${EVAS_STATIC_BUILD_SOFTWARE_X11_FALSE}"; then
32594 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_SOFTWARE_X11\" was never defined. 33194 as_fn_error "conditional \"EVAS_STATIC_BUILD_SOFTWARE_X11\" was never defined.
32595Usually this means the macro was only invoked conditionally." "$LINENO" 5 33195Usually this means the macro was only invoked conditionally." "$LINENO" 5
32596fi 33196fi
32597if test -z "${EVAS_STATIC_BUILD_SOFTWARE_XLIB_TRUE}" && test -z "${EVAS_STATIC_BUILD_SOFTWARE_XLIB_FALSE}"; then 33197if test -z "${EVAS_STATIC_BUILD_SOFTWARE_XLIB_TRUE}" && test -z "${EVAS_STATIC_BUILD_SOFTWARE_XLIB_FALSE}"; then
32598 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_SOFTWARE_XLIB\" was never defined. 33198 as_fn_error "conditional \"EVAS_STATIC_BUILD_SOFTWARE_XLIB\" was never defined.
32599Usually this means the macro was only invoked conditionally." "$LINENO" 5 33199Usually this means the macro was only invoked conditionally." "$LINENO" 5
32600fi 33200fi
32601if test -z "${EVAS_STATIC_BUILD_SOFTWARE_XCB_TRUE}" && test -z "${EVAS_STATIC_BUILD_SOFTWARE_XCB_FALSE}"; then 33201if test -z "${EVAS_STATIC_BUILD_SOFTWARE_XCB_TRUE}" && test -z "${EVAS_STATIC_BUILD_SOFTWARE_XCB_FALSE}"; then
32602 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_SOFTWARE_XCB\" was never defined. 33202 as_fn_error "conditional \"EVAS_STATIC_BUILD_SOFTWARE_XCB\" was never defined.
32603Usually this means the macro was only invoked conditionally." "$LINENO" 5 33203Usually this means the macro was only invoked conditionally." "$LINENO" 5
32604fi 33204fi
32605if test -z "${BUILD_ENGINE_GL_XCB_TRUE}" && test -z "${BUILD_ENGINE_GL_XCB_FALSE}"; then 33205if test -z "${BUILD_ENGINE_GL_XCB_TRUE}" && test -z "${BUILD_ENGINE_GL_XCB_FALSE}"; then
32606 as_fn_error $? "conditional \"BUILD_ENGINE_GL_XCB\" was never defined. 33206 as_fn_error "conditional \"BUILD_ENGINE_GL_XCB\" was never defined.
32607Usually this means the macro was only invoked conditionally." "$LINENO" 5 33207Usually this means the macro was only invoked conditionally." "$LINENO" 5
32608fi 33208fi
32609if test -z "${EVAS_STATIC_BUILD_GL_XCB_TRUE}" && test -z "${EVAS_STATIC_BUILD_GL_XCB_FALSE}"; then 33209if test -z "${EVAS_STATIC_BUILD_GL_XCB_TRUE}" && test -z "${EVAS_STATIC_BUILD_GL_XCB_FALSE}"; then
32610 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_GL_XCB\" was never defined. 33210 as_fn_error "conditional \"EVAS_STATIC_BUILD_GL_XCB\" was never defined.
32611Usually this means the macro was only invoked conditionally." "$LINENO" 5 33211Usually this means the macro was only invoked conditionally." "$LINENO" 5
32612fi 33212fi
32613if test -z "${BUILD_ENGINE_GL_XLIB_TRUE}" && test -z "${BUILD_ENGINE_GL_XLIB_FALSE}"; then 33213if test -z "${BUILD_ENGINE_GL_XLIB_TRUE}" && test -z "${BUILD_ENGINE_GL_XLIB_FALSE}"; then
32614 as_fn_error $? "conditional \"BUILD_ENGINE_GL_XLIB\" was never defined. 33214 as_fn_error "conditional \"BUILD_ENGINE_GL_XLIB\" was never defined.
32615Usually this means the macro was only invoked conditionally." "$LINENO" 5 33215Usually this means the macro was only invoked conditionally." "$LINENO" 5
32616fi 33216fi
32617if test -z "${EVAS_STATIC_BUILD_GL_XLIB_TRUE}" && test -z "${EVAS_STATIC_BUILD_GL_XLIB_FALSE}"; then 33217if test -z "${EVAS_STATIC_BUILD_GL_XLIB_TRUE}" && test -z "${EVAS_STATIC_BUILD_GL_XLIB_FALSE}"; then
32618 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_GL_XLIB\" was never defined. 33218 as_fn_error "conditional \"EVAS_STATIC_BUILD_GL_XLIB\" was never defined.
32619Usually this means the macro was only invoked conditionally." "$LINENO" 5 33219Usually this means the macro was only invoked conditionally." "$LINENO" 5
32620fi 33220fi
32621if test -z "${BUILD_ENGINE_GL_XLIB_TRUE}" && test -z "${BUILD_ENGINE_GL_XLIB_FALSE}"; then 33221if test -z "${BUILD_ENGINE_GL_XLIB_TRUE}" && test -z "${BUILD_ENGINE_GL_XLIB_FALSE}"; then
32622 as_fn_error $? "conditional \"BUILD_ENGINE_GL_XLIB\" was never defined. 33222 as_fn_error "conditional \"BUILD_ENGINE_GL_XLIB\" was never defined.
32623Usually this means the macro was only invoked conditionally." "$LINENO" 5 33223Usually this means the macro was only invoked conditionally." "$LINENO" 5
32624fi 33224fi
32625if test -z "${BUILD_ENGINE_GL_XCB_TRUE}" && test -z "${BUILD_ENGINE_GL_XCB_FALSE}"; then 33225if test -z "${BUILD_ENGINE_GL_XCB_TRUE}" && test -z "${BUILD_ENGINE_GL_XCB_FALSE}"; then
32626 as_fn_error $? "conditional \"BUILD_ENGINE_GL_XCB\" was never defined. 33226 as_fn_error "conditional \"BUILD_ENGINE_GL_XCB\" was never defined.
32627Usually this means the macro was only invoked conditionally." "$LINENO" 5 33227Usually this means the macro was only invoked conditionally." "$LINENO" 5
32628fi 33228fi
32629if test -z "${BUILD_ENGINE_GL_X11_TRUE}" && test -z "${BUILD_ENGINE_GL_X11_FALSE}"; then 33229if test -z "${BUILD_ENGINE_GL_X11_TRUE}" && test -z "${BUILD_ENGINE_GL_X11_FALSE}"; then
32630 as_fn_error $? "conditional \"BUILD_ENGINE_GL_X11\" was never defined. 33230 as_fn_error "conditional \"BUILD_ENGINE_GL_X11\" was never defined.
32631Usually this means the macro was only invoked conditionally." "$LINENO" 5 33231Usually this means the macro was only invoked conditionally." "$LINENO" 5
32632fi 33232fi
32633if test -z "${EVAS_STATIC_BUILD_GL_X11_TRUE}" && test -z "${EVAS_STATIC_BUILD_GL_X11_FALSE}"; then 33233if test -z "${EVAS_STATIC_BUILD_GL_X11_TRUE}" && test -z "${EVAS_STATIC_BUILD_GL_X11_FALSE}"; then
32634 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_GL_X11\" was never defined. 33234 as_fn_error "conditional \"EVAS_STATIC_BUILD_GL_X11\" was never defined.
32635Usually this means the macro was only invoked conditionally." "$LINENO" 5 33235Usually this means the macro was only invoked conditionally." "$LINENO" 5
32636fi 33236fi
32637if test -z "${EVAS_STATIC_BUILD_GL_XLIB_TRUE}" && test -z "${EVAS_STATIC_BUILD_GL_XLIB_FALSE}"; then 33237if test -z "${EVAS_STATIC_BUILD_GL_XLIB_TRUE}" && test -z "${EVAS_STATIC_BUILD_GL_XLIB_FALSE}"; then
32638 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_GL_XLIB\" was never defined. 33238 as_fn_error "conditional \"EVAS_STATIC_BUILD_GL_XLIB\" was never defined.
32639Usually this means the macro was only invoked conditionally." "$LINENO" 5 33239Usually this means the macro was only invoked conditionally." "$LINENO" 5
32640fi 33240fi
32641if test -z "${EVAS_STATIC_BUILD_GL_XCB_TRUE}" && test -z "${EVAS_STATIC_BUILD_GL_XCB_FALSE}"; then 33241if test -z "${EVAS_STATIC_BUILD_GL_XCB_TRUE}" && test -z "${EVAS_STATIC_BUILD_GL_XCB_FALSE}"; then
32642 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_GL_XCB\" was never defined. 33242 as_fn_error "conditional \"EVAS_STATIC_BUILD_GL_XCB\" was never defined.
32643Usually this means the macro was only invoked conditionally." "$LINENO" 5 33243Usually this means the macro was only invoked conditionally." "$LINENO" 5
32644fi 33244fi
32645if test -z "${BUILD_ENGINE_GL_COMMON_TRUE}" && test -z "${BUILD_ENGINE_GL_COMMON_FALSE}"; then 33245if test -z "${BUILD_ENGINE_GL_COMMON_TRUE}" && test -z "${BUILD_ENGINE_GL_COMMON_FALSE}"; then
32646 as_fn_error $? "conditional \"BUILD_ENGINE_GL_COMMON\" was never defined. 33246 as_fn_error "conditional \"BUILD_ENGINE_GL_COMMON\" was never defined.
32647Usually this means the macro was only invoked conditionally." "$LINENO" 5 33247Usually this means the macro was only invoked conditionally." "$LINENO" 5
32648fi 33248fi
32649if test -z "${EVAS_STATIC_BUILD_GL_COMMON_TRUE}" && test -z "${EVAS_STATIC_BUILD_GL_COMMON_FALSE}"; then 33249if test -z "${EVAS_STATIC_BUILD_GL_COMMON_TRUE}" && test -z "${EVAS_STATIC_BUILD_GL_COMMON_FALSE}"; then
32650 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_GL_COMMON\" was never defined. 33250 as_fn_error "conditional \"EVAS_STATIC_BUILD_GL_COMMON\" was never defined.
32651Usually this means the macro was only invoked conditionally." "$LINENO" 5 33251Usually this means the macro was only invoked conditionally." "$LINENO" 5
32652fi 33252fi
32653if test -z "${BUILD_ENGINE_SOFTWARE_16_TRUE}" && test -z "${BUILD_ENGINE_SOFTWARE_16_FALSE}"; then 33253if test -z "${BUILD_ENGINE_SOFTWARE_16_TRUE}" && test -z "${BUILD_ENGINE_SOFTWARE_16_FALSE}"; then
32654 as_fn_error $? "conditional \"BUILD_ENGINE_SOFTWARE_16\" was never defined. 33254 as_fn_error "conditional \"BUILD_ENGINE_SOFTWARE_16\" was never defined.
32655Usually this means the macro was only invoked conditionally." "$LINENO" 5 33255Usually this means the macro was only invoked conditionally." "$LINENO" 5
32656fi 33256fi
32657if test -z "${EVAS_STATIC_BUILD_SOFTWARE_16_TRUE}" && test -z "${EVAS_STATIC_BUILD_SOFTWARE_16_FALSE}"; then 33257if test -z "${EVAS_STATIC_BUILD_SOFTWARE_16_TRUE}" && test -z "${EVAS_STATIC_BUILD_SOFTWARE_16_FALSE}"; then
32658 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_SOFTWARE_16\" was never defined. 33258 as_fn_error "conditional \"EVAS_STATIC_BUILD_SOFTWARE_16\" was never defined.
32659Usually this means the macro was only invoked conditionally." "$LINENO" 5 33259Usually this means the macro was only invoked conditionally." "$LINENO" 5
32660fi 33260fi
32661if test -z "${BUILD_ENGINE_SOFTWARE_8_TRUE}" && test -z "${BUILD_ENGINE_SOFTWARE_8_FALSE}"; then 33261if test -z "${BUILD_ENGINE_SOFTWARE_8_TRUE}" && test -z "${BUILD_ENGINE_SOFTWARE_8_FALSE}"; then
32662 as_fn_error $? "conditional \"BUILD_ENGINE_SOFTWARE_8\" was never defined. 33262 as_fn_error "conditional \"BUILD_ENGINE_SOFTWARE_8\" was never defined.
32663Usually this means the macro was only invoked conditionally." "$LINENO" 5 33263Usually this means the macro was only invoked conditionally." "$LINENO" 5
32664fi 33264fi
32665if test -z "${EVAS_STATIC_BUILD_SOFTWARE_8_TRUE}" && test -z "${EVAS_STATIC_BUILD_SOFTWARE_8_FALSE}"; then 33265if test -z "${EVAS_STATIC_BUILD_SOFTWARE_8_TRUE}" && test -z "${EVAS_STATIC_BUILD_SOFTWARE_8_FALSE}"; then
32666 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_SOFTWARE_8\" was never defined. 33266 as_fn_error "conditional \"EVAS_STATIC_BUILD_SOFTWARE_8\" was never defined.
32667Usually this means the macro was only invoked conditionally." "$LINENO" 5 33267Usually this means the macro was only invoked conditionally." "$LINENO" 5
32668fi 33268fi
32669if test -z "${BUILD_LOADER_EDB_TRUE}" && test -z "${BUILD_LOADER_EDB_FALSE}"; then 33269if test -z "${BUILD_LOADER_EDB_TRUE}" && test -z "${BUILD_LOADER_EDB_FALSE}"; then
32670 as_fn_error $? "conditional \"BUILD_LOADER_EDB\" was never defined. 33270 as_fn_error "conditional \"BUILD_LOADER_EDB\" was never defined.
32671Usually this means the macro was only invoked conditionally." "$LINENO" 5 33271Usually this means the macro was only invoked conditionally." "$LINENO" 5
32672fi 33272fi
32673if test -z "${EVAS_STATIC_BUILD_EDB_TRUE}" && test -z "${EVAS_STATIC_BUILD_EDB_FALSE}"; then 33273if test -z "${EVAS_STATIC_BUILD_EDB_TRUE}" && test -z "${EVAS_STATIC_BUILD_EDB_FALSE}"; then
32674 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_EDB\" was never defined. 33274 as_fn_error "conditional \"EVAS_STATIC_BUILD_EDB\" was never defined.
32675Usually this means the macro was only invoked conditionally." "$LINENO" 5 33275Usually this means the macro was only invoked conditionally." "$LINENO" 5
32676fi 33276fi
32677if test -z "${BUILD_LOADER_EET_TRUE}" && test -z "${BUILD_LOADER_EET_FALSE}"; then 33277if test -z "${BUILD_LOADER_EET_TRUE}" && test -z "${BUILD_LOADER_EET_FALSE}"; then
32678 as_fn_error $? "conditional \"BUILD_LOADER_EET\" was never defined. 33278 as_fn_error "conditional \"BUILD_LOADER_EET\" was never defined.
32679Usually this means the macro was only invoked conditionally." "$LINENO" 5 33279Usually this means the macro was only invoked conditionally." "$LINENO" 5
32680fi 33280fi
32681if test -z "${EVAS_STATIC_BUILD_EET_TRUE}" && test -z "${EVAS_STATIC_BUILD_EET_FALSE}"; then 33281if test -z "${EVAS_STATIC_BUILD_EET_TRUE}" && test -z "${EVAS_STATIC_BUILD_EET_FALSE}"; then
32682 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_EET\" was never defined. 33282 as_fn_error "conditional \"EVAS_STATIC_BUILD_EET\" was never defined.
32683Usually this means the macro was only invoked conditionally." "$LINENO" 5 33283Usually this means the macro was only invoked conditionally." "$LINENO" 5
32684fi 33284fi
32685if test -z "${BUILD_LOADER_GIF_TRUE}" && test -z "${BUILD_LOADER_GIF_FALSE}"; then 33285if test -z "${BUILD_LOADER_GIF_TRUE}" && test -z "${BUILD_LOADER_GIF_FALSE}"; then
32686 as_fn_error $? "conditional \"BUILD_LOADER_GIF\" was never defined. 33286 as_fn_error "conditional \"BUILD_LOADER_GIF\" was never defined.
32687Usually this means the macro was only invoked conditionally." "$LINENO" 5 33287Usually this means the macro was only invoked conditionally." "$LINENO" 5
32688fi 33288fi
32689if test -z "${EVAS_STATIC_BUILD_GIF_TRUE}" && test -z "${EVAS_STATIC_BUILD_GIF_FALSE}"; then 33289if test -z "${EVAS_STATIC_BUILD_GIF_TRUE}" && test -z "${EVAS_STATIC_BUILD_GIF_FALSE}"; then
32690 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_GIF\" was never defined. 33290 as_fn_error "conditional \"EVAS_STATIC_BUILD_GIF\" was never defined.
32691Usually this means the macro was only invoked conditionally." "$LINENO" 5 33291Usually this means the macro was only invoked conditionally." "$LINENO" 5
32692fi 33292fi
32693if test -z "${BUILD_LOADER_JPEG_TRUE}" && test -z "${BUILD_LOADER_JPEG_FALSE}"; then 33293if test -z "${BUILD_LOADER_JPEG_TRUE}" && test -z "${BUILD_LOADER_JPEG_FALSE}"; then
32694 as_fn_error $? "conditional \"BUILD_LOADER_JPEG\" was never defined. 33294 as_fn_error "conditional \"BUILD_LOADER_JPEG\" was never defined.
32695Usually this means the macro was only invoked conditionally." "$LINENO" 5 33295Usually this means the macro was only invoked conditionally." "$LINENO" 5
32696fi 33296fi
32697if test -z "${EVAS_STATIC_BUILD_JPEG_TRUE}" && test -z "${EVAS_STATIC_BUILD_JPEG_FALSE}"; then 33297if test -z "${EVAS_STATIC_BUILD_JPEG_TRUE}" && test -z "${EVAS_STATIC_BUILD_JPEG_FALSE}"; then
32698 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_JPEG\" was never defined. 33298 as_fn_error "conditional \"EVAS_STATIC_BUILD_JPEG\" was never defined.
32699Usually this means the macro was only invoked conditionally." "$LINENO" 5 33299Usually this means the macro was only invoked conditionally." "$LINENO" 5
32700fi 33300fi
32701if test -z "${BUILD_SAVER_JPEG_TRUE}" && test -z "${BUILD_SAVER_JPEG_FALSE}"; then 33301if test -z "${BUILD_SAVER_JPEG_TRUE}" && test -z "${BUILD_SAVER_JPEG_FALSE}"; then
32702 as_fn_error $? "conditional \"BUILD_SAVER_JPEG\" was never defined. 33302 as_fn_error "conditional \"BUILD_SAVER_JPEG\" was never defined.
32703Usually this means the macro was only invoked conditionally." "$LINENO" 5 33303Usually this means the macro was only invoked conditionally." "$LINENO" 5
32704fi 33304fi
32705if test -z "${BUILD_LOADER_PMAPS_TRUE}" && test -z "${BUILD_LOADER_PMAPS_FALSE}"; then 33305if test -z "${BUILD_LOADER_PMAPS_TRUE}" && test -z "${BUILD_LOADER_PMAPS_FALSE}"; then
32706 as_fn_error $? "conditional \"BUILD_LOADER_PMAPS\" was never defined. 33306 as_fn_error "conditional \"BUILD_LOADER_PMAPS\" was never defined.
32707Usually this means the macro was only invoked conditionally." "$LINENO" 5 33307Usually this means the macro was only invoked conditionally." "$LINENO" 5
32708fi 33308fi
32709if test -z "${EVAS_STATIC_BUILD_PMAPS_TRUE}" && test -z "${EVAS_STATIC_BUILD_PMAPS_FALSE}"; then 33309if test -z "${EVAS_STATIC_BUILD_PMAPS_TRUE}" && test -z "${EVAS_STATIC_BUILD_PMAPS_FALSE}"; then
32710 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_PMAPS\" was never defined. 33310 as_fn_error "conditional \"EVAS_STATIC_BUILD_PMAPS\" was never defined.
32711Usually this means the macro was only invoked conditionally." "$LINENO" 5 33311Usually this means the macro was only invoked conditionally." "$LINENO" 5
32712fi 33312fi
32713if test -z "${BUILD_LOADER_PNG_TRUE}" && test -z "${BUILD_LOADER_PNG_FALSE}"; then 33313if test -z "${BUILD_LOADER_PNG_TRUE}" && test -z "${BUILD_LOADER_PNG_FALSE}"; then
32714 as_fn_error $? "conditional \"BUILD_LOADER_PNG\" was never defined. 33314 as_fn_error "conditional \"BUILD_LOADER_PNG\" was never defined.
32715Usually this means the macro was only invoked conditionally." "$LINENO" 5 33315Usually this means the macro was only invoked conditionally." "$LINENO" 5
32716fi 33316fi
32717if test -z "${EVAS_STATIC_BUILD_PNG_TRUE}" && test -z "${EVAS_STATIC_BUILD_PNG_FALSE}"; then 33317if test -z "${EVAS_STATIC_BUILD_PNG_TRUE}" && test -z "${EVAS_STATIC_BUILD_PNG_FALSE}"; then
32718 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_PNG\" was never defined. 33318 as_fn_error "conditional \"EVAS_STATIC_BUILD_PNG\" was never defined.
32719Usually this means the macro was only invoked conditionally." "$LINENO" 5 33319Usually this means the macro was only invoked conditionally." "$LINENO" 5
32720fi 33320fi
32721if test -z "${BUILD_LOADER_SVG_TRUE}" && test -z "${BUILD_LOADER_SVG_FALSE}"; then 33321if test -z "${BUILD_LOADER_SVG_TRUE}" && test -z "${BUILD_LOADER_SVG_FALSE}"; then
32722 as_fn_error $? "conditional \"BUILD_LOADER_SVG\" was never defined. 33322 as_fn_error "conditional \"BUILD_LOADER_SVG\" was never defined.
32723Usually this means the macro was only invoked conditionally." "$LINENO" 5 33323Usually this means the macro was only invoked conditionally." "$LINENO" 5
32724fi 33324fi
32725if test -z "${EVAS_STATIC_BUILD_SVG_TRUE}" && test -z "${EVAS_STATIC_BUILD_SVG_FALSE}"; then 33325if test -z "${EVAS_STATIC_BUILD_SVG_TRUE}" && test -z "${EVAS_STATIC_BUILD_SVG_FALSE}"; then
32726 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_SVG\" was never defined. 33326 as_fn_error "conditional \"EVAS_STATIC_BUILD_SVG\" was never defined.
32727Usually this means the macro was only invoked conditionally." "$LINENO" 5 33327Usually this means the macro was only invoked conditionally." "$LINENO" 5
32728fi 33328fi
32729if test -z "${BUILD_LOADER_TIFF_TRUE}" && test -z "${BUILD_LOADER_TIFF_FALSE}"; then 33329if test -z "${BUILD_LOADER_TIFF_TRUE}" && test -z "${BUILD_LOADER_TIFF_FALSE}"; then
32730 as_fn_error $? "conditional \"BUILD_LOADER_TIFF\" was never defined. 33330 as_fn_error "conditional \"BUILD_LOADER_TIFF\" was never defined.
32731Usually this means the macro was only invoked conditionally." "$LINENO" 5 33331Usually this means the macro was only invoked conditionally." "$LINENO" 5
32732fi 33332fi
32733if test -z "${EVAS_STATIC_BUILD_TIFF_TRUE}" && test -z "${EVAS_STATIC_BUILD_TIFF_FALSE}"; then 33333if test -z "${EVAS_STATIC_BUILD_TIFF_TRUE}" && test -z "${EVAS_STATIC_BUILD_TIFF_FALSE}"; then
32734 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_TIFF\" was never defined. 33334 as_fn_error "conditional \"EVAS_STATIC_BUILD_TIFF\" was never defined.
32735Usually this means the macro was only invoked conditionally." "$LINENO" 5 33335Usually this means the macro was only invoked conditionally." "$LINENO" 5
32736fi 33336fi
32737if test -z "${BUILD_LOADER_XPM_TRUE}" && test -z "${BUILD_LOADER_XPM_FALSE}"; then 33337if test -z "${BUILD_LOADER_XPM_TRUE}" && test -z "${BUILD_LOADER_XPM_FALSE}"; then
32738 as_fn_error $? "conditional \"BUILD_LOADER_XPM\" was never defined. 33338 as_fn_error "conditional \"BUILD_LOADER_XPM\" was never defined.
32739Usually this means the macro was only invoked conditionally." "$LINENO" 5 33339Usually this means the macro was only invoked conditionally." "$LINENO" 5
32740fi 33340fi
32741if test -z "${EVAS_STATIC_BUILD_XPM_TRUE}" && test -z "${EVAS_STATIC_BUILD_XPM_FALSE}"; then 33341if test -z "${EVAS_STATIC_BUILD_XPM_TRUE}" && test -z "${EVAS_STATIC_BUILD_XPM_FALSE}"; then
32742 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_XPM\" was never defined. 33342 as_fn_error "conditional \"EVAS_STATIC_BUILD_XPM\" was never defined.
32743Usually this means the macro was only invoked conditionally." "$LINENO" 5 33343Usually this means the macro was only invoked conditionally." "$LINENO" 5
32744fi 33344fi
32745if test -z "${BUILD_LOADER_BMP_TRUE}" && test -z "${BUILD_LOADER_BMP_FALSE}"; then 33345if test -z "${BUILD_LOADER_BMP_TRUE}" && test -z "${BUILD_LOADER_BMP_FALSE}"; then
32746 as_fn_error $? "conditional \"BUILD_LOADER_BMP\" was never defined. 33346 as_fn_error "conditional \"BUILD_LOADER_BMP\" was never defined.
32747Usually this means the macro was only invoked conditionally." "$LINENO" 5 33347Usually this means the macro was only invoked conditionally." "$LINENO" 5
32748fi 33348fi
32749if test -z "${EVAS_STATIC_BUILD_BMP_TRUE}" && test -z "${EVAS_STATIC_BUILD_BMP_FALSE}"; then 33349if test -z "${EVAS_STATIC_BUILD_BMP_TRUE}" && test -z "${EVAS_STATIC_BUILD_BMP_FALSE}"; then
32750 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_BMP\" was never defined. 33350 as_fn_error "conditional \"EVAS_STATIC_BUILD_BMP\" was never defined.
32751Usually this means the macro was only invoked conditionally." "$LINENO" 5 33351Usually this means the macro was only invoked conditionally." "$LINENO" 5
32752fi 33352fi
32753if test -z "${BUILD_LOADER_TGA_TRUE}" && test -z "${BUILD_LOADER_TGA_FALSE}"; then 33353if test -z "${BUILD_LOADER_TGA_TRUE}" && test -z "${BUILD_LOADER_TGA_FALSE}"; then
32754 as_fn_error $? "conditional \"BUILD_LOADER_TGA\" was never defined. 33354 as_fn_error "conditional \"BUILD_LOADER_TGA\" was never defined.
32755Usually this means the macro was only invoked conditionally." "$LINENO" 5 33355Usually this means the macro was only invoked conditionally." "$LINENO" 5
32756fi 33356fi
32757if test -z "${EVAS_STATIC_BUILD_TGA_TRUE}" && test -z "${EVAS_STATIC_BUILD_TGA_FALSE}"; then 33357if test -z "${EVAS_STATIC_BUILD_TGA_TRUE}" && test -z "${EVAS_STATIC_BUILD_TGA_FALSE}"; then
32758 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_TGA\" was never defined. 33358 as_fn_error "conditional \"EVAS_STATIC_BUILD_TGA\" was never defined.
32759Usually this means the macro was only invoked conditionally." "$LINENO" 5 33359Usually this means the macro was only invoked conditionally." "$LINENO" 5
32760fi 33360fi
32761if test -z "${BUILD_LOADER_WBMP_TRUE}" && test -z "${BUILD_LOADER_WBMP_FALSE}"; then 33361if test -z "${BUILD_LOADER_WBMP_TRUE}" && test -z "${BUILD_LOADER_WBMP_FALSE}"; then
32762 as_fn_error $? "conditional \"BUILD_LOADER_WBMP\" was never defined. 33362 as_fn_error "conditional \"BUILD_LOADER_WBMP\" was never defined.
32763Usually this means the macro was only invoked conditionally." "$LINENO" 5 33363Usually this means the macro was only invoked conditionally." "$LINENO" 5
32764fi 33364fi
32765if test -z "${EVAS_STATIC_BUILD_WBMP_TRUE}" && test -z "${EVAS_STATIC_BUILD_WBMP_FALSE}"; then 33365if test -z "${EVAS_STATIC_BUILD_WBMP_TRUE}" && test -z "${EVAS_STATIC_BUILD_WBMP_FALSE}"; then
32766 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_WBMP\" was never defined. 33366 as_fn_error "conditional \"EVAS_STATIC_BUILD_WBMP\" was never defined.
32767Usually this means the macro was only invoked conditionally." "$LINENO" 5 33367Usually this means the macro was only invoked conditionally." "$LINENO" 5
32768fi 33368fi
32769if test -z "${BUILD_LOADER_ICO_TRUE}" && test -z "${BUILD_LOADER_ICO_FALSE}"; then 33369if test -z "${BUILD_LOADER_ICO_TRUE}" && test -z "${BUILD_LOADER_ICO_FALSE}"; then
32770 as_fn_error $? "conditional \"BUILD_LOADER_ICO\" was never defined. 33370 as_fn_error "conditional \"BUILD_LOADER_ICO\" was never defined.
32771Usually this means the macro was only invoked conditionally." "$LINENO" 5 33371Usually this means the macro was only invoked conditionally." "$LINENO" 5
32772fi 33372fi
32773if test -z "${EVAS_STATIC_BUILD_ICO_TRUE}" && test -z "${EVAS_STATIC_BUILD_ICO_FALSE}"; then 33373if test -z "${EVAS_STATIC_BUILD_ICO_TRUE}" && test -z "${EVAS_STATIC_BUILD_ICO_FALSE}"; then
32774 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_ICO\" was never defined. 33374 as_fn_error "conditional \"EVAS_STATIC_BUILD_ICO\" was never defined.
32775Usually this means the macro was only invoked conditionally." "$LINENO" 5 33375Usually this means the macro was only invoked conditionally." "$LINENO" 5
32776fi 33376fi
32777if test -z "${BUILD_LOADER_PSD_TRUE}" && test -z "${BUILD_LOADER_PSD_FALSE}"; then 33377if test -z "${BUILD_LOADER_PSD_TRUE}" && test -z "${BUILD_LOADER_PSD_FALSE}"; then
32778 as_fn_error $? "conditional \"BUILD_LOADER_PSD\" was never defined. 33378 as_fn_error "conditional \"BUILD_LOADER_PSD\" was never defined.
32779Usually this means the macro was only invoked conditionally." "$LINENO" 5 33379Usually this means the macro was only invoked conditionally." "$LINENO" 5
32780fi 33380fi
32781if test -z "${EVAS_STATIC_BUILD_PSD_TRUE}" && test -z "${EVAS_STATIC_BUILD_PSD_FALSE}"; then 33381if test -z "${EVAS_STATIC_BUILD_PSD_TRUE}" && test -z "${EVAS_STATIC_BUILD_PSD_FALSE}"; then
32782 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_PSD\" was never defined. 33382 as_fn_error "conditional \"EVAS_STATIC_BUILD_PSD\" was never defined.
32783Usually this means the macro was only invoked conditionally." "$LINENO" 5 33383Usually this means the macro was only invoked conditionally." "$LINENO" 5
32784fi 33384fi
32785if test -z "${BUILD_LOADER_GENERIC_TRUE}" && test -z "${BUILD_LOADER_GENERIC_FALSE}"; then 33385if test -z "${BUILD_LOADER_GENERIC_TRUE}" && test -z "${BUILD_LOADER_GENERIC_FALSE}"; then
32786 as_fn_error $? "conditional \"BUILD_LOADER_GENERIC\" was never defined. 33386 as_fn_error "conditional \"BUILD_LOADER_GENERIC\" was never defined.
32787Usually this means the macro was only invoked conditionally." "$LINENO" 5 33387Usually this means the macro was only invoked conditionally." "$LINENO" 5
32788fi 33388fi
32789if test -z "${EVAS_STATIC_BUILD_GENERIC_TRUE}" && test -z "${EVAS_STATIC_BUILD_GENERIC_FALSE}"; then 33389if test -z "${EVAS_STATIC_BUILD_GENERIC_TRUE}" && test -z "${EVAS_STATIC_BUILD_GENERIC_FALSE}"; then
32790 as_fn_error $? "conditional \"EVAS_STATIC_BUILD_GENERIC\" was never defined. 33390 as_fn_error "conditional \"EVAS_STATIC_BUILD_GENERIC\" was never defined.
32791Usually this means the macro was only invoked conditionally." "$LINENO" 5 33391Usually this means the macro was only invoked conditionally." "$LINENO" 5
32792fi 33392fi
32793if test -z "${EVAS_MAGIC_DEBUG_TRUE}" && test -z "${EVAS_MAGIC_DEBUG_FALSE}"; then 33393if test -z "${EVAS_MAGIC_DEBUG_TRUE}" && test -z "${EVAS_MAGIC_DEBUG_FALSE}"; then
32794 as_fn_error $? "conditional \"EVAS_MAGIC_DEBUG\" was never defined. 33394 as_fn_error "conditional \"EVAS_MAGIC_DEBUG\" was never defined.
32795Usually this means the macro was only invoked conditionally." "$LINENO" 5 33395Usually this means the macro was only invoked conditionally." "$LINENO" 5
32796fi 33396fi
32797if test -z "${WORD_CACHE_TRUE}" && test -z "${WORD_CACHE_FALSE}"; then 33397if test -z "${WORD_CACHE_TRUE}" && test -z "${WORD_CACHE_FALSE}"; then
32798 as_fn_error $? "conditional \"WORD_CACHE\" was never defined. 33398 as_fn_error "conditional \"WORD_CACHE\" was never defined.
32799Usually this means the macro was only invoked conditionally." "$LINENO" 5 33399Usually this means the macro was only invoked conditionally." "$LINENO" 5
32800fi 33400fi
32801if test -z "${METRIC_CACHE_TRUE}" && test -z "${METRIC_CACHE_FALSE}"; then 33401if test -z "${METRIC_CACHE_TRUE}" && test -z "${METRIC_CACHE_FALSE}"; then
32802 as_fn_error $? "conditional \"METRIC_CACHE\" was never defined. 33402 as_fn_error "conditional \"METRIC_CACHE\" was never defined.
32803Usually this means the macro was only invoked conditionally." "$LINENO" 5 33403Usually this means the macro was only invoked conditionally." "$LINENO" 5
32804fi 33404fi
32805if test -z "${INSTALL_EXAMPLES_TRUE}" && test -z "${INSTALL_EXAMPLES_FALSE}"; then 33405if test -z "${INSTALL_EXAMPLES_TRUE}" && test -z "${INSTALL_EXAMPLES_FALSE}"; then
32806 as_fn_error $? "conditional \"INSTALL_EXAMPLES\" was never defined. 33406 as_fn_error "conditional \"INSTALL_EXAMPLES\" was never defined.
32807Usually this means the macro was only invoked conditionally." "$LINENO" 5 33407Usually this means the macro was only invoked conditionally." "$LINENO" 5
32808fi 33408fi
32809if test -z "${BUILD_EXAMPLES_TRUE}" && test -z "${BUILD_EXAMPLES_FALSE}"; then 33409if test -z "${BUILD_EXAMPLES_TRUE}" && test -z "${BUILD_EXAMPLES_FALSE}"; then
32810 as_fn_error $? "conditional \"BUILD_EXAMPLES\" was never defined. 33410 as_fn_error "conditional \"BUILD_EXAMPLES\" was never defined.
32811Usually this means the macro was only invoked conditionally." "$LINENO" 5 33411Usually this means the macro was only invoked conditionally." "$LINENO" 5
32812fi 33412fi
32813if test -z "${EFL_ENABLE_TESTS_TRUE}" && test -z "${EFL_ENABLE_TESTS_FALSE}"; then 33413if test -z "${EFL_ENABLE_TESTS_TRUE}" && test -z "${EFL_ENABLE_TESTS_FALSE}"; then
32814 as_fn_error $? "conditional \"EFL_ENABLE_TESTS\" was never defined. 33414 as_fn_error "conditional \"EFL_ENABLE_TESTS\" was never defined.
32815Usually this means the macro was only invoked conditionally." "$LINENO" 5 33415Usually this means the macro was only invoked conditionally." "$LINENO" 5
32816fi 33416fi
32817if test -z "${EFL_ENABLE_COVERAGE_TRUE}" && test -z "${EFL_ENABLE_COVERAGE_FALSE}"; then 33417if test -z "${EFL_ENABLE_COVERAGE_TRUE}" && test -z "${EFL_ENABLE_COVERAGE_FALSE}"; then
32818 as_fn_error $? "conditional \"EFL_ENABLE_COVERAGE\" was never defined. 33418 as_fn_error "conditional \"EFL_ENABLE_COVERAGE\" was never defined.
32819Usually this means the macro was only invoked conditionally." "$LINENO" 5 33419Usually this means the macro was only invoked conditionally." "$LINENO" 5
32820fi 33420fi
32821 33421
@@ -32965,19 +33565,19 @@ export LANGUAGE
32965(unset CDPATH) >/dev/null 2>&1 && unset CDPATH 33565(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
32966 33566
32967 33567
32968# as_fn_error STATUS ERROR [LINENO LOG_FD] 33568# as_fn_error ERROR [LINENO LOG_FD]
32969# ---------------------------------------- 33569# ---------------------------------
32970# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are 33570# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
32971# provided, also output the error to LOG_FD, referencing LINENO. Then exit the 33571# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
32972# script with STATUS, using 1 if that was 0. 33572# script with status $?, using 1 if that was 0.
32973as_fn_error () 33573as_fn_error ()
32974{ 33574{
32975 as_status=$1; test $as_status -eq 0 && as_status=1 33575 as_status=$?; test $as_status -eq 0 && as_status=1
32976 if test "$4"; then 33576 if test "$3"; then
32977 as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 33577 as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
32978 $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 33578 $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
32979 fi 33579 fi
32980 $as_echo "$as_me: error: $2" >&2 33580 $as_echo "$as_me: error: $1" >&2
32981 as_fn_exit $as_status 33581 as_fn_exit $as_status
32982} # as_fn_error 33582} # as_fn_error
32983 33583
@@ -33173,7 +33773,7 @@ $as_echo X"$as_dir" |
33173 test -d "$as_dir" && break 33773 test -d "$as_dir" && break
33174 done 33774 done
33175 test -z "$as_dirs" || eval "mkdir $as_dirs" 33775 test -z "$as_dirs" || eval "mkdir $as_dirs"
33176 } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" 33776 } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir"
33177 33777
33178 33778
33179} # as_fn_mkdir_p 33779} # as_fn_mkdir_p
@@ -33226,8 +33826,8 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
33226# report actual input values of CONFIG_FILES etc. instead of their 33826# report actual input values of CONFIG_FILES etc. instead of their
33227# values after options handling. 33827# values after options handling.
33228ac_log=" 33828ac_log="
33229This file was extended by evas $as_me 1.1.0, which was 33829This file was extended by evas $as_me 1.1.99.67344, which was
33230generated by GNU Autoconf 2.67. Invocation command line was 33830generated by GNU Autoconf 2.65. Invocation command line was
33231 33831
33232 CONFIG_FILES = $CONFIG_FILES 33832 CONFIG_FILES = $CONFIG_FILES
33233 CONFIG_HEADERS = $CONFIG_HEADERS 33833 CONFIG_HEADERS = $CONFIG_HEADERS
@@ -33292,11 +33892,11 @@ _ACEOF
33292cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 33892cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
33293ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" 33893ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
33294ac_cs_version="\\ 33894ac_cs_version="\\
33295evas config.status 1.1.0 33895evas config.status 1.1.99.67344
33296configured by $0, generated by GNU Autoconf 2.67, 33896configured by $0, generated by GNU Autoconf 2.65,
33297 with options \\"\$ac_cs_config\\" 33897 with options \\"\$ac_cs_config\\"
33298 33898
33299Copyright (C) 2010 Free Software Foundation, Inc. 33899Copyright (C) 2009 Free Software Foundation, Inc.
33300This config.status script is free software; the Free Software Foundation 33900This config.status script is free software; the Free Software Foundation
33301gives unlimited permission to copy, distribute and modify it." 33901gives unlimited permission to copy, distribute and modify it."
33302 33902
@@ -33314,16 +33914,11 @@ ac_need_defaults=:
33314while test $# != 0 33914while test $# != 0
33315do 33915do
33316 case $1 in 33916 case $1 in
33317 --*=?*) 33917 --*=*)
33318 ac_option=`expr "X$1" : 'X\([^=]*\)='` 33918 ac_option=`expr "X$1" : 'X\([^=]*\)='`
33319 ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` 33919 ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
33320 ac_shift=: 33920 ac_shift=:
33321 ;; 33921 ;;
33322 --*=)
33323 ac_option=`expr "X$1" : 'X\([^=]*\)='`
33324 ac_optarg=
33325 ac_shift=:
33326 ;;
33327 *) 33922 *)
33328 ac_option=$1 33923 ac_option=$1
33329 ac_optarg=$2 33924 ac_optarg=$2
@@ -33345,7 +33940,6 @@ do
33345 $ac_shift 33940 $ac_shift
33346 case $ac_optarg in 33941 case $ac_optarg in
33347 *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; 33942 *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
33348 '') as_fn_error $? "missing file argument" ;;
33349 esac 33943 esac
33350 as_fn_append CONFIG_FILES " '$ac_optarg'" 33944 as_fn_append CONFIG_FILES " '$ac_optarg'"
33351 ac_need_defaults=false;; 33945 ac_need_defaults=false;;
@@ -33358,7 +33952,7 @@ do
33358 ac_need_defaults=false;; 33952 ac_need_defaults=false;;
33359 --he | --h) 33953 --he | --h)
33360 # Conflict between --help and --header 33954 # Conflict between --help and --header
33361 as_fn_error $? "ambiguous option: \`$1' 33955 as_fn_error "ambiguous option: \`$1'
33362Try \`$0 --help' for more information.";; 33956Try \`$0 --help' for more information.";;
33363 --help | --hel | -h ) 33957 --help | --hel | -h )
33364 $as_echo "$ac_cs_usage"; exit ;; 33958 $as_echo "$ac_cs_usage"; exit ;;
@@ -33367,7 +33961,7 @@ Try \`$0 --help' for more information.";;
33367 ac_cs_silent=: ;; 33961 ac_cs_silent=: ;;
33368 33962
33369 # This is an error. 33963 # This is an error.
33370 -*) as_fn_error $? "unrecognized option: \`$1' 33964 -*) as_fn_error "unrecognized option: \`$1'
33371Try \`$0 --help' for more information." ;; 33965Try \`$0 --help' for more information." ;;
33372 33966
33373 *) as_fn_append ac_config_targets " $1" 33967 *) as_fn_append ac_config_targets " $1"
@@ -33793,6 +34387,8 @@ do
33793 "evas-software-16-wince.pc") CONFIG_FILES="$CONFIG_FILES evas-software-16-wince.pc" ;; 34387 "evas-software-16-wince.pc") CONFIG_FILES="$CONFIG_FILES evas-software-16-wince.pc" ;;
33794 "evas-software-sdl.pc") CONFIG_FILES="$CONFIG_FILES evas-software-sdl.pc" ;; 34388 "evas-software-sdl.pc") CONFIG_FILES="$CONFIG_FILES evas-software-sdl.pc" ;;
33795 "evas-psl1ght.pc") CONFIG_FILES="$CONFIG_FILES evas-psl1ght.pc" ;; 34389 "evas-psl1ght.pc") CONFIG_FILES="$CONFIG_FILES evas-psl1ght.pc" ;;
34390 "evas-wayland-shm.pc") CONFIG_FILES="$CONFIG_FILES evas-wayland-shm.pc" ;;
34391 "evas-wayland-egl.pc") CONFIG_FILES="$CONFIG_FILES evas-wayland-egl.pc" ;;
33796 "evas.pc") CONFIG_FILES="$CONFIG_FILES evas.pc" ;; 34392 "evas.pc") CONFIG_FILES="$CONFIG_FILES evas.pc" ;;
33797 "doc/evas.dox") CONFIG_FILES="$CONFIG_FILES doc/evas.dox" ;; 34393 "doc/evas.dox") CONFIG_FILES="$CONFIG_FILES doc/evas.dox" ;;
33798 "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; 34394 "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;;
@@ -33837,6 +34433,8 @@ do
33837 "src/modules/engines/software_16_x11/Makefile") CONFIG_FILES="$CONFIG_FILES src/modules/engines/software_16_x11/Makefile" ;; 34433 "src/modules/engines/software_16_x11/Makefile") CONFIG_FILES="$CONFIG_FILES src/modules/engines/software_16_x11/Makefile" ;;
33838 "src/modules/engines/software_16_ddraw/Makefile") CONFIG_FILES="$CONFIG_FILES src/modules/engines/software_16_ddraw/Makefile" ;; 34434 "src/modules/engines/software_16_ddraw/Makefile") CONFIG_FILES="$CONFIG_FILES src/modules/engines/software_16_ddraw/Makefile" ;;
33839 "src/modules/engines/software_16_sdl/Makefile") CONFIG_FILES="$CONFIG_FILES src/modules/engines/software_16_sdl/Makefile" ;; 34435 "src/modules/engines/software_16_sdl/Makefile") CONFIG_FILES="$CONFIG_FILES src/modules/engines/software_16_sdl/Makefile" ;;
34436 "src/modules/engines/wayland_shm/Makefile") CONFIG_FILES="$CONFIG_FILES src/modules/engines/wayland_shm/Makefile" ;;
34437 "src/modules/engines/wayland_egl/Makefile") CONFIG_FILES="$CONFIG_FILES src/modules/engines/wayland_egl/Makefile" ;;
33840 "src/modules/loaders/Makefile") CONFIG_FILES="$CONFIG_FILES src/modules/loaders/Makefile" ;; 34438 "src/modules/loaders/Makefile") CONFIG_FILES="$CONFIG_FILES src/modules/loaders/Makefile" ;;
33841 "src/modules/loaders/edb/Makefile") CONFIG_FILES="$CONFIG_FILES src/modules/loaders/edb/Makefile" ;; 34439 "src/modules/loaders/edb/Makefile") CONFIG_FILES="$CONFIG_FILES src/modules/loaders/edb/Makefile" ;;
33842 "src/modules/loaders/eet/Makefile") CONFIG_FILES="$CONFIG_FILES src/modules/loaders/eet/Makefile" ;; 34440 "src/modules/loaders/eet/Makefile") CONFIG_FILES="$CONFIG_FILES src/modules/loaders/eet/Makefile" ;;
@@ -33866,7 +34464,7 @@ do
33866 "src/tests/Makefile") CONFIG_FILES="$CONFIG_FILES src/tests/Makefile" ;; 34464 "src/tests/Makefile") CONFIG_FILES="$CONFIG_FILES src/tests/Makefile" ;;
33867 "evas.spec") CONFIG_FILES="$CONFIG_FILES evas.spec" ;; 34465 "evas.spec") CONFIG_FILES="$CONFIG_FILES evas.spec" ;;
33868 34466
33869 *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5 ;; 34467 *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
33870 esac 34468 esac
33871done 34469done
33872 34470
@@ -33904,7 +34502,7 @@ $debug ||
33904{ 34502{
33905 tmp=./conf$$-$RANDOM 34503 tmp=./conf$$-$RANDOM
33906 (umask 077 && mkdir "$tmp") 34504 (umask 077 && mkdir "$tmp")
33907} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 34505} || as_fn_error "cannot create a temporary directory in ." "$LINENO" 5
33908 34506
33909# Set up the scripts for CONFIG_FILES section. 34507# Set up the scripts for CONFIG_FILES section.
33910# No need to generate them if there are no CONFIG_FILES. 34508# No need to generate them if there are no CONFIG_FILES.
@@ -33921,7 +34519,7 @@ if test "x$ac_cr" = x; then
33921fi 34519fi
33922ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null` 34520ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
33923if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then 34521if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
33924 ac_cs_awk_cr='\\r' 34522 ac_cs_awk_cr='\r'
33925else 34523else
33926 ac_cs_awk_cr=$ac_cr 34524 ac_cs_awk_cr=$ac_cr
33927fi 34525fi
@@ -33935,18 +34533,18 @@ _ACEOF
33935 echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && 34533 echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
33936 echo "_ACEOF" 34534 echo "_ACEOF"
33937} >conf$$subs.sh || 34535} >conf$$subs.sh ||
33938 as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 34536 as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
33939ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` 34537ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'`
33940ac_delim='%!_!# ' 34538ac_delim='%!_!# '
33941for ac_last_try in false false false false false :; do 34539for ac_last_try in false false false false false :; do
33942 . ./conf$$subs.sh || 34540 . ./conf$$subs.sh ||
33943 as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 34541 as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
33944 34542
33945 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` 34543 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
33946 if test $ac_delim_n = $ac_delim_num; then 34544 if test $ac_delim_n = $ac_delim_num; then
33947 break 34545 break
33948 elif $ac_last_try; then 34546 elif $ac_last_try; then
33949 as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 34547 as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
33950 else 34548 else
33951 ac_delim="$ac_delim!$ac_delim _$ac_delim!! " 34549 ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
33952 fi 34550 fi
@@ -34035,28 +34633,20 @@ if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
34035else 34633else
34036 cat 34634 cat
34037fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ 34635fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
34038 || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 34636 || as_fn_error "could not setup config files machinery" "$LINENO" 5
34039_ACEOF 34637_ACEOF
34040 34638
34041# VPATH may cause trouble with some makes, so we remove sole $(srcdir), 34639# VPATH may cause trouble with some makes, so we remove $(srcdir),
34042# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and 34640# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
34043# trailing colons and then remove the whole line if VPATH becomes empty 34641# trailing colons and then remove the whole line if VPATH becomes empty
34044# (actually we leave an empty line to preserve line numbers). 34642# (actually we leave an empty line to preserve line numbers).
34045if test "x$srcdir" = x.; then 34643if test "x$srcdir" = x.; then
34046 ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ 34644 ac_vpsub='/^[ ]*VPATH[ ]*=/{
34047h 34645s/:*\$(srcdir):*/:/
34048s/// 34646s/:*\${srcdir}:*/:/
34049s/^/:/ 34647s/:*@srcdir@:*/:/
34050s/[ ]*$/:/ 34648s/^\([^=]*=[ ]*\):*/\1/
34051s/:\$(srcdir):/:/g
34052s/:\${srcdir}:/:/g
34053s/:@srcdir@:/:/g
34054s/^:*//
34055s/:*$// 34649s/:*$//
34056x
34057s/\(=[ ]*\).*/\1/
34058G
34059s/\n//
34060s/^[^=]*=[ ]*$// 34650s/^[^=]*=[ ]*$//
34061}' 34651}'
34062fi 34652fi
@@ -34084,7 +34674,7 @@ for ac_last_try in false false :; do
34084 if test -z "$ac_t"; then 34674 if test -z "$ac_t"; then
34085 break 34675 break
34086 elif $ac_last_try; then 34676 elif $ac_last_try; then
34087 as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 34677 as_fn_error "could not make $CONFIG_HEADERS" "$LINENO" 5
34088 else 34678 else
34089 ac_delim="$ac_delim!$ac_delim _$ac_delim!! " 34679 ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
34090 fi 34680 fi
@@ -34169,7 +34759,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
34169_ACAWK 34759_ACAWK
34170_ACEOF 34760_ACEOF
34171cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 34761cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
34172 as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 34762 as_fn_error "could not setup config headers machinery" "$LINENO" 5
34173fi # test -n "$CONFIG_HEADERS" 34763fi # test -n "$CONFIG_HEADERS"
34174 34764
34175 34765
@@ -34182,7 +34772,7 @@ do
34182 esac 34772 esac
34183 case $ac_mode$ac_tag in 34773 case $ac_mode$ac_tag in
34184 :[FHL]*:*);; 34774 :[FHL]*:*);;
34185 :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5 ;; 34775 :L* | :C*:*) as_fn_error "invalid tag \`$ac_tag'" "$LINENO" 5;;
34186 :[FH]-) ac_tag=-:-;; 34776 :[FH]-) ac_tag=-:-;;
34187 :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; 34777 :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
34188 esac 34778 esac
@@ -34210,7 +34800,7 @@ do
34210 [\\/$]*) false;; 34800 [\\/$]*) false;;
34211 *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; 34801 *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
34212 esac || 34802 esac ||
34213 as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5 ;; 34803 as_fn_error "cannot find input file: \`$ac_f'" "$LINENO" 5;;
34214 esac 34804 esac
34215 case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac 34805 case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
34216 as_fn_append ac_file_inputs " '$ac_f'" 34806 as_fn_append ac_file_inputs " '$ac_f'"
@@ -34237,7 +34827,7 @@ $as_echo "$as_me: creating $ac_file" >&6;}
34237 34827
34238 case $ac_tag in 34828 case $ac_tag in
34239 *:-:* | *:-) cat >"$tmp/stdin" \ 34829 *:-:* | *:-) cat >"$tmp/stdin" \
34240 || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; 34830 || as_fn_error "could not create $ac_file" "$LINENO" 5 ;;
34241 esac 34831 esac
34242 ;; 34832 ;;
34243 esac 34833 esac
@@ -34374,22 +34964,22 @@ s&@MKDIR_P@&$ac_MKDIR_P&;t t
34374$ac_datarootdir_hack 34964$ac_datarootdir_hack
34375" 34965"
34376eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ 34966eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \
34377 || as_fn_error $? "could not create $ac_file" "$LINENO" 5 34967 || as_fn_error "could not create $ac_file" "$LINENO" 5
34378 34968
34379test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && 34969test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
34380 { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && 34970 { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
34381 { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && 34971 { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
34382 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' 34972 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
34383which seems to be undefined. Please make sure it is defined" >&5 34973which seems to be undefined. Please make sure it is defined." >&5
34384$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' 34974$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
34385which seems to be undefined. Please make sure it is defined" >&2;} 34975which seems to be undefined. Please make sure it is defined." >&2;}
34386 34976
34387 rm -f "$tmp/stdin" 34977 rm -f "$tmp/stdin"
34388 case $ac_file in 34978 case $ac_file in
34389 -) cat "$tmp/out" && rm -f "$tmp/out";; 34979 -) cat "$tmp/out" && rm -f "$tmp/out";;
34390 *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; 34980 *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
34391 esac \ 34981 esac \
34392 || as_fn_error $? "could not create $ac_file" "$LINENO" 5 34982 || as_fn_error "could not create $ac_file" "$LINENO" 5
34393 ;; 34983 ;;
34394 :H) 34984 :H)
34395 # 34985 #
@@ -34400,19 +34990,19 @@ which seems to be undefined. Please make sure it is defined" >&2;}
34400 $as_echo "/* $configure_input */" \ 34990 $as_echo "/* $configure_input */" \
34401 && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" 34991 && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs"
34402 } >"$tmp/config.h" \ 34992 } >"$tmp/config.h" \
34403 || as_fn_error $? "could not create $ac_file" "$LINENO" 5 34993 || as_fn_error "could not create $ac_file" "$LINENO" 5
34404 if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then 34994 if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then
34405 { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 34995 { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
34406$as_echo "$as_me: $ac_file is unchanged" >&6;} 34996$as_echo "$as_me: $ac_file is unchanged" >&6;}
34407 else 34997 else
34408 rm -f "$ac_file" 34998 rm -f "$ac_file"
34409 mv "$tmp/config.h" "$ac_file" \ 34999 mv "$tmp/config.h" "$ac_file" \
34410 || as_fn_error $? "could not create $ac_file" "$LINENO" 5 35000 || as_fn_error "could not create $ac_file" "$LINENO" 5
34411 fi 35001 fi
34412 else 35002 else
34413 $as_echo "/* $configure_input */" \ 35003 $as_echo "/* $configure_input */" \
34414 && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ 35004 && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \
34415 || as_fn_error $? "could not create -" "$LINENO" 5 35005 || as_fn_error "could not create -" "$LINENO" 5
34416 fi 35006 fi
34417# Compute "$ac_file"'s index in $config_headers. 35007# Compute "$ac_file"'s index in $config_headers.
34418_am_arg="$ac_file" 35008_am_arg="$ac_file"
@@ -35370,7 +35960,7 @@ _ACEOF
35370ac_clean_files=$ac_clean_files_save 35960ac_clean_files=$ac_clean_files_save
35371 35961
35372test $ac_write_fail = 0 || 35962test $ac_write_fail = 0 ||
35373 as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 35963 as_fn_error "write failure creating $CONFIG_STATUS" "$LINENO" 5
35374 35964
35375 35965
35376# configure is writing to config.log, and then calls config.status. 35966# configure is writing to config.log, and then calls config.status.
@@ -35391,7 +35981,7 @@ if test "$no_create" != yes; then
35391 exec 5>>config.log 35981 exec 5>>config.log
35392 # Use ||, not &&, to avoid exiting from the if with $? = 1, which 35982 # Use ||, not &&, to avoid exiting from the if with $? = 1, which
35393 # would make configure fail if this is the last instruction. 35983 # would make configure fail if this is the last instruction.
35394 $ac_cs_success || as_fn_exit 1 35984 $ac_cs_success || as_fn_exit $?
35395fi 35985fi
35396if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then 35986if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
35397 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 35987 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
@@ -35465,6 +36055,8 @@ echo " Software 16bit X11.........: $have_evas_engine_software_16_x11"
35465echo " Software 16bit Directdraw..: $have_evas_engine_software_16_ddraw" 36055echo " Software 16bit Directdraw..: $have_evas_engine_software_16_ddraw"
35466echo " Software 16bit WinCE.......: $have_evas_engine_software_16_wince" 36056echo " Software 16bit WinCE.......: $have_evas_engine_software_16_wince"
35467echo " Software 16bit SDL.........: $have_evas_engine_software_16_sdl (primitive: $sdl_primitive)" 36057echo " Software 16bit SDL.........: $have_evas_engine_software_16_sdl (primitive: $sdl_primitive)"
36058echo " Wayland Shm................: $have_evas_engine_wayland_shm"
36059echo " Wayland Egl................: $have_evas_engine_wayland_egl"
35468echo 36060echo
35469echo "Image Loaders:" 36061echo "Image Loaders:"
35470echo " BMP.....................: $have_evas_image_loader_bmp" 36062echo " BMP.....................: $have_evas_image_loader_bmp"
@@ -35517,6 +36109,16 @@ echo
35517echo " Word Cache..............: $want_word_cache" 36109echo " Word Cache..............: $want_word_cache"
35518echo " Metric Cache............: $want_metric_cache" 36110echo " Metric Cache............: $want_metric_cache"
35519echo 36111echo
36112echo " Pixman..................: $have_pixman"
36113echo " Pixman Fonts............: $have_pixman_font"
36114echo " Pixman Rects............: $have_pixman_rect"
36115echo " Pixman Lines............: $have_pixman_line"
36116echo " Pixman Polygons.........: $have_pixman_poly"
36117echo " Pixman Images...........: $have_pixman_image"
36118echo " Pixman Image ScaleSample: $have_pixman_image_scale_sample"
36119echo
36120echo " Tiled 32BPP rotate......: $have_tile_rotate"
36121echo
35520echo "ARGB Software Engine Options:" 36122echo "ARGB Software Engine Options:"
35521echo " Sampling Scaler.........: $scaler_sample" 36123echo " Sampling Scaler.........: $scaler_sample"
35522echo " Smooth Scaler...........: $scaler_smooth" 36124echo " Smooth Scaler...........: $scaler_smooth"
diff --git a/libraries/evas/configure.ac b/libraries/evas/configure.ac
index 0b56053..5424e31 100644
--- a/libraries/evas/configure.ac
+++ b/libraries/evas/configure.ac
@@ -2,11 +2,11 @@
2##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## 2##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
3m4_define([v_maj], [1]) 3m4_define([v_maj], [1])
4m4_define([v_min], [1]) 4m4_define([v_min], [1])
5m4_define([v_mic], [0]) 5m4_define([v_mic], [99])
6m4_define([v_rev], m4_esyscmd([(svnversion "${SVN_REPO_PATH:-.}" | grep -v export || 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
9m4_undefine([v_rev]) 9dnl m4_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])
@@ -112,6 +112,8 @@ want_evas_engine_direct3d="no"
112want_evas_engine_fb="no" 112want_evas_engine_fb="no"
113want_evas_engine_directfb="no" 113want_evas_engine_directfb="no"
114want_evas_engine_psl1ght="no" 114want_evas_engine_psl1ght="no"
115want_evas_engine_wayland_shm="no"
116want_evas_engine_wayland_egl="no"
115 117
116want_evas_image_loader_edb="yes" 118want_evas_image_loader_edb="yes"
117want_evas_image_loader_eet="yes" 119want_evas_image_loader_eet="yes"
@@ -158,6 +160,8 @@ case "$host_os" in
158 want_evas_engine_software_xcb="no" 160 want_evas_engine_software_xcb="no"
159 want_evas_engine_gl_xcb="no" 161 want_evas_engine_gl_xcb="no"
160 want_evas_engine_fb="auto" 162 want_evas_engine_fb="auto"
163 want_evas_engine_wayland_shm="auto"
164 want_evas_engine_wayland_egl="auto"
161### no - not ready/usable/complete 165### no - not ready/usable/complete
162# want_evas_engine_software_8_x11="auto" 166# want_evas_engine_software_8_x11="auto"
163# want_evas_engine_software_16_x11="auto" 167# want_evas_engine_software_16_x11="auto"
@@ -403,8 +407,8 @@ fi
403# Pixman 407# Pixman
404have_pixman="no" 408have_pixman="no"
405AC_ARG_ENABLE([pixman], 409AC_ARG_ENABLE([pixman],
406 AC_HELP_STRING([--disable-pixman], 410 AC_HELP_STRING([--enable-pixman],
407 [disable pixman for software rendering. @<:@default=enabled@:>@]), 411 [enable pixman for software rendering. @<:@default=enabled@:>@]),
408 [ 412 [
409 if test "x${enableval}" = "xyes" ; then 413 if test "x${enableval}" = "xyes" ; then
410 want_pixman="yes" 414 want_pixman="yes"
@@ -429,12 +433,74 @@ if test "x${want_pixman}" = "xyes" -o "x${want_pixman}" = "xauto" ; then
429 ]) 433 ])
430fi 434fi
431 435
436have_pixman_font="no"
437AC_ARG_ENABLE(pixman-font,
438 AC_HELP_STRING([--enable-pixman-font], [Allow pixman to render fonts]),
439 [
440 have_pixman_font="yes"
441 AC_DEFINE(PIXMAN_FONT, 1, [Allow pixman to render fonts])
442 ]
443)
444
445have_pixman_rect="no"
446AC_ARG_ENABLE(pixman-rect,
447 AC_HELP_STRING([--enable-pixman-rect], [Allow pixman to render rects]),
448 [
449 have_pixman_rect="yes"
450 AC_DEFINE(PIXMAN_RECT, 1, [Allow pixman to render rects])
451 ]
452)
453
454have_pixman_line="no"
455AC_ARG_ENABLE(pixman-line,
456 AC_HELP_STRING([--enable-pixman-line], [Allow pixman to render lines]),
457 [
458 have_pixman_line="yes"
459 AC_DEFINE(PIXMAN_LINE, 1, [Allow pixman to render lines])
460 ]
461)
462
463have_pixman_poly="no"
464AC_ARG_ENABLE(pixman-poly,
465 AC_HELP_STRING([--enable-pixman-poly], [Allow pixman to render polys]),
466 [
467 have_pixman_poly="yes"
468 AC_DEFINE(PIXMAN_POLY, 1, [Allow pixman to render polys])
469 ]
470)
471
472have_pixman_image="no"
473AC_ARG_ENABLE(pixman-image,
474 AC_HELP_STRING([--enable-pixman-image], [Allow pixman to render images]),
475 [
476 have_pixman_image="yes"
477 AC_DEFINE(PIXMAN_IMAGE, 1, [Allow pixman to render images])
478 ]
479)
480
481have_pixman_image_scale_sample="no"
482AC_ARG_ENABLE(pixman-image-scale-sample,
483 AC_HELP_STRING([--enable-pixman-image-scale-sample], [Allow pixman to render sampled scaled images]),
484 [
485 have_pixman_image_scale_sample="yes"
486 AC_DEFINE(PIXMAN_IMAGE_SCALE_SAMPLE, 1, [Allow pixman to render image sampled scaling])
487 ]
488)
489
490have_tile_rotate="no"
491AC_ARG_ENABLE(tile-rotate,
492 AC_HELP_STRING([--enable-tile-rotate], [Enable tiled rotate algorithm]),
493 [
494 have_tile_rotate="yes"
495 AC_DEFINE(TILE_ROTATE, 1, [Enable tiled rotate algorithm])
496 ]
497)
498
432### Checks for header files 499### Checks for header files
433AC_HEADER_STDC 500AC_HEADER_STDC
434AC_CHECK_HEADERS([unistd.h stdint.h sys/param.h netinet/in.h]) 501AC_CHECK_HEADERS([unistd.h stdint.h sys/param.h netinet/in.h sys/mman.h])
435EFL_CHECK_PATH_MAX 502EFL_CHECK_PATH_MAX
436 503
437
438### Checks for types 504### Checks for types
439AC_CHECK_TYPES([struct sigaction], [], [], 505AC_CHECK_TYPES([struct sigaction], [], [],
440 [[#include <signal.h>]]) 506 [[#include <signal.h>]])
@@ -704,6 +770,10 @@ EVAS_CHECK_ENGINE([software-16-wince], [${want_evas_engine_software_16_wince}],
704 770
705EVAS_CHECK_ENGINE([software-16-sdl], [${want_evas_engine_software_16_sdl}], [no], [Software SDL 16 bits]) 771EVAS_CHECK_ENGINE([software-16-sdl], [${want_evas_engine_software_16_sdl}], [no], [Software SDL 16 bits])
706 772
773EVAS_CHECK_ENGINE([wayland-shm], [${want_evas_engine_wayland_shm}], [no], [Wayland Shm])
774
775EVAS_CHECK_ENGINE([wayland-egl], [${want_evas_engine_wayland_egl}], [no], [Wayland Egl])
776
707# SDL primitive 777# SDL primitive
708sdl_primitive="no" 778sdl_primitive="no"
709 779
@@ -856,13 +926,15 @@ have_static_evas_engine_gl_common="no"
856if test "x$have_evas_engine_gl_xlib" = "xyes" \ 926if test "x$have_evas_engine_gl_xlib" = "xyes" \
857 || test "x$have_evas_engine_gl_xcb" = "xyes" \ 927 || test "x$have_evas_engine_gl_xcb" = "xyes" \
858 || test "x$have_evas_engine_gl_sdl" = "xyes" \ 928 || test "x$have_evas_engine_gl_sdl" = "xyes" \
859 || test "x$have_evas_engine_gl_cocoa" = "xyes"; then 929 || test "x$have_evas_engine_gl_cocoa" = "xyes" \
930 || test "x$have_evas_engine_wayland_egl" = "xyes"; then
860 have_evas_engine_gl_common="yes" 931 have_evas_engine_gl_common="yes"
861fi 932fi
862if test "x$have_evas_engine_gl_xlib" = "xstatic" \ 933if test "x$have_evas_engine_gl_xlib" = "xstatic" \
863 || test "x$have_evas_engine_gl_xcb" = "xstatic" \ 934 || test "x$have_evas_engine_gl_xcb" = "xstatic" \
864 || test "x$have_evas_engine_gl_sdl" = "xstatic" \ 935 || test "x$have_evas_engine_gl_sdl" = "xstatic" \
865 || test "x$have_evas_engine_gl_cocoa" = "xstatic"; then 936 || test "x$have_evas_engine_gl_cocoa" = "xstatic" \
937 || test "x$have_evas_engine_wayland_egl" = "xstatic"; then
866 have_evas_engine_gl_common="yes" 938 have_evas_engine_gl_common="yes"
867 have_static_evas_engine_gl_common="yes" 939 have_static_evas_engine_gl_common="yes"
868fi 940fi
@@ -1272,9 +1344,16 @@ AC_ARG_ENABLE(cpu-sse3,
1272 AS_HELP_STRING([--enable-cpu-sse3], [enable sse3 code]), 1344 AS_HELP_STRING([--enable-cpu-sse3], [enable sse3 code]),
1273 [ 1345 [
1274 if test "x$enableval" = "xyes" ; then 1346 if test "x$enableval" = "xyes" ; then
1275 AC_MSG_RESULT(yes) 1347 AC_CHECK_HEADER(immintrin.h,
1276 AC_DEFINE(BUILD_SSE3, 1, [Build SSE3 Code]) 1348 [
1277 build_cpu_sse3="yes" 1349 AC_MSG_RESULT(yes)
1350 AC_DEFINE(BUILD_SSE3, 1, [Build SSE3 Code])
1351 build_cpu_sse3="yes"
1352 ],
1353 [
1354 AC_MSG_RESULT(no)
1355 build_cpu_sse3="no"
1356 ])
1278 else 1357 else
1279 AC_MSG_RESULT(no) 1358 AC_MSG_RESULT(no)
1280 build_cpu_sse3="no" 1359 build_cpu_sse3="no"
@@ -1283,7 +1362,16 @@ AC_ARG_ENABLE(cpu-sse3,
1283 [ 1362 [
1284 AC_MSG_RESULT($build_cpu_sse3) 1363 AC_MSG_RESULT($build_cpu_sse3)
1285 if test "x$build_cpu_sse3" = "xyes" ; then 1364 if test "x$build_cpu_sse3" = "xyes" ; then
1286 AC_DEFINE(BUILD_SSE3, 1, [Build SSE3 Code]) 1365 AC_CHECK_HEADER(immintrin.h,
1366 [
1367 AC_MSG_RESULT(yes)
1368 AC_DEFINE(BUILD_SSE3, 1, [Build SSE3 Code])
1369 build_cpu_sse3="yes"
1370 ],
1371 [
1372 AC_MSG_RESULT(no)
1373 build_cpu_sse3="no"
1374 ])
1287 fi 1375 fi
1288 ] 1376 ]
1289) 1377)
@@ -1805,6 +1893,8 @@ evas-direct3d.pc
1805evas-software-16-wince.pc 1893evas-software-16-wince.pc
1806evas-software-sdl.pc 1894evas-software-sdl.pc
1807evas-psl1ght.pc 1895evas-psl1ght.pc
1896evas-wayland-shm.pc
1897evas-wayland-egl.pc
1808evas.pc 1898evas.pc
1809doc/evas.dox 1899doc/evas.dox
1810doc/Makefile 1900doc/Makefile
@@ -1849,6 +1939,8 @@ src/modules/engines/software_16/Makefile
1849src/modules/engines/software_16_x11/Makefile 1939src/modules/engines/software_16_x11/Makefile
1850src/modules/engines/software_16_ddraw/Makefile 1940src/modules/engines/software_16_ddraw/Makefile
1851src/modules/engines/software_16_sdl/Makefile 1941src/modules/engines/software_16_sdl/Makefile
1942src/modules/engines/wayland_shm/Makefile
1943src/modules/engines/wayland_egl/Makefile
1852src/modules/loaders/Makefile 1944src/modules/loaders/Makefile
1853src/modules/loaders/edb/Makefile 1945src/modules/loaders/edb/Makefile
1854src/modules/loaders/eet/Makefile 1946src/modules/loaders/eet/Makefile
@@ -1945,6 +2037,8 @@ echo " Software 16bit X11.........: $have_evas_engine_software_16_x11"
1945echo " Software 16bit Directdraw..: $have_evas_engine_software_16_ddraw" 2037echo " Software 16bit Directdraw..: $have_evas_engine_software_16_ddraw"
1946echo " Software 16bit WinCE.......: $have_evas_engine_software_16_wince" 2038echo " Software 16bit WinCE.......: $have_evas_engine_software_16_wince"
1947echo " Software 16bit SDL.........: $have_evas_engine_software_16_sdl (primitive: $sdl_primitive)" 2039echo " Software 16bit SDL.........: $have_evas_engine_software_16_sdl (primitive: $sdl_primitive)"
2040echo " Wayland Shm................: $have_evas_engine_wayland_shm"
2041echo " Wayland Egl................: $have_evas_engine_wayland_egl"
1948echo 2042echo
1949echo "Image Loaders:" 2043echo "Image Loaders:"
1950echo " BMP.....................: $have_evas_image_loader_bmp" 2044echo " BMP.....................: $have_evas_image_loader_bmp"
@@ -2002,6 +2096,16 @@ echo
2002echo " Word Cache..............: $want_word_cache" 2096echo " Word Cache..............: $want_word_cache"
2003echo " Metric Cache............: $want_metric_cache" 2097echo " Metric Cache............: $want_metric_cache"
2004echo 2098echo
2099echo " Pixman..................: $have_pixman"
2100echo " Pixman Fonts............: $have_pixman_font"
2101echo " Pixman Rects............: $have_pixman_rect"
2102echo " Pixman Lines............: $have_pixman_line"
2103echo " Pixman Polygons.........: $have_pixman_poly"
2104echo " Pixman Images...........: $have_pixman_image"
2105echo " Pixman Image ScaleSample: $have_pixman_image_scale_sample"
2106echo
2107echo " Tiled 32BPP rotate......: $have_tile_rotate"
2108echo
2005echo "ARGB Software Engine Options:" 2109echo "ARGB Software Engine Options:"
2006echo " Sampling Scaler.........: $scaler_sample" 2110echo " Sampling Scaler.........: $scaler_sample"
2007echo " Smooth Scaler...........: $scaler_smooth" 2111echo " Smooth Scaler...........: $scaler_smooth"
diff --git a/libraries/evas/doc/Makefile.in b/libraries/evas/doc/Makefile.in
index e9a343d..20f2693 100644
--- a/libraries/evas/doc/Makefile.in
+++ b/libraries/evas/doc/Makefile.in
@@ -167,8 +167,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
167PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 167PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
168PIXMAN_LIBS = @PIXMAN_LIBS@ 168PIXMAN_LIBS = @PIXMAN_LIBS@
169PKG_CONFIG = @PKG_CONFIG@ 169PKG_CONFIG = @PKG_CONFIG@
170PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
171PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
172PNG_CFLAGS = @PNG_CFLAGS@ 170PNG_CFLAGS = @PNG_CFLAGS@
173PNG_LIBS = @PNG_LIBS@ 171PNG_LIBS = @PNG_LIBS@
174RANLIB = @RANLIB@ 172RANLIB = @RANLIB@
@@ -185,6 +183,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
185VALGRIND_LIBS = @VALGRIND_LIBS@ 183VALGRIND_LIBS = @VALGRIND_LIBS@
186VERSION = @VERSION@ 184VERSION = @VERSION@
187VMAJ = @VMAJ@ 185VMAJ = @VMAJ@
186WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
187WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
188WIN32_CFLAGS = @WIN32_CFLAGS@ 188WIN32_CFLAGS = @WIN32_CFLAGS@
189WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 189WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
190XCB_CFLAGS = @XCB_CFLAGS@ 190XCB_CFLAGS = @XCB_CFLAGS@
@@ -266,6 +266,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
266evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 266evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
267evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 267evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
268evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 268evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
269evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
270evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
271evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
272evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
269evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 273evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
270evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 274evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
271evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 275evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/doc/img/e_big.png b/libraries/evas/doc/img/e_big.png
index d42aeb4..d42aeb4 100644..100755
--- a/libraries/evas/doc/img/e_big.png
+++ b/libraries/evas/doc/img/e_big.png
Binary files differ
diff --git a/libraries/evas/doc/img/foot_bg.png b/libraries/evas/doc/img/foot_bg.png
index b24f3a4..b24f3a4 100644..100755
--- a/libraries/evas/doc/img/foot_bg.png
+++ b/libraries/evas/doc/img/foot_bg.png
Binary files differ
diff --git a/libraries/evas/doc/img/head_bg.png b/libraries/evas/doc/img/head_bg.png
index 081dc13..081dc13 100644..100755
--- a/libraries/evas/doc/img/head_bg.png
+++ b/libraries/evas/doc/img/head_bg.png
Binary files differ
diff --git a/libraries/evas/doc/img/menu_bg.png b/libraries/evas/doc/img/menu_bg.png
index e978743..e978743 100644..100755
--- a/libraries/evas/doc/img/menu_bg.png
+++ b/libraries/evas/doc/img/menu_bg.png
Binary files differ
diff --git a/libraries/evas/doc/img/menu_bg_current.png b/libraries/evas/doc/img/menu_bg_current.png
index de97c92..de97c92 100644..100755
--- a/libraries/evas/doc/img/menu_bg_current.png
+++ b/libraries/evas/doc/img/menu_bg_current.png
Binary files differ
diff --git a/libraries/evas/doc/img/menu_bg_hover.png b/libraries/evas/doc/img/menu_bg_hover.png
index 3fd851d..3fd851d 100644..100755
--- a/libraries/evas/doc/img/menu_bg_hover.png
+++ b/libraries/evas/doc/img/menu_bg_hover.png
Binary files differ
diff --git a/libraries/evas/doc/img/menu_bg_last.png b/libraries/evas/doc/img/menu_bg_last.png
index 88c116c..88c116c 100644..100755
--- a/libraries/evas/doc/img/menu_bg_last.png
+++ b/libraries/evas/doc/img/menu_bg_last.png
Binary files differ
diff --git a/libraries/evas/doc/img/menu_bg_unsel.png b/libraries/evas/doc/img/menu_bg_unsel.png
index 50e5fd8..50e5fd8 100644..100755
--- a/libraries/evas/doc/img/menu_bg_unsel.png
+++ b/libraries/evas/doc/img/menu_bg_unsel.png
Binary files differ
diff --git a/libraries/evas/evas-wayland-egl.pc.in b/libraries/evas/evas-wayland-egl.pc.in
new file mode 100644
index 0000000..a770c42
--- /dev/null
+++ b/libraries/evas/evas-wayland-egl.pc.in
@@ -0,0 +1,3 @@
1Name: evas-wayland-egl
2Description: Evas Wayland Egl engine
3Version: @VERSION@
diff --git a/libraries/evas/evas-wayland-shm.pc.in b/libraries/evas/evas-wayland-shm.pc.in
new file mode 100644
index 0000000..5576681
--- /dev/null
+++ b/libraries/evas/evas-wayland-shm.pc.in
@@ -0,0 +1,3 @@
1Name: evas-wayland-shm
2Description: Evas Wayland Shm engine
3Version: @VERSION@
diff --git a/libraries/evas/evas.spec b/libraries/evas/evas.spec
index f3ebad3..fe04f2e 100644
--- a/libraries/evas/evas.spec
+++ b/libraries/evas/evas.spec
@@ -85,7 +85,7 @@
85 85
86Summary: Multi-platform Canvas Library 86Summary: Multi-platform Canvas Library
87Name: evas 87Name: evas
88Version: 1.1.0 88Version: 1.1.99.67344
89Release: %{_rel} 89Release: %{_rel}
90License: BSD 90License: BSD
91Group: System Environment/Libraries 91Group: System Environment/Libraries
diff --git a/libraries/evas/ltmain.sh b/libraries/evas/ltmain.sh
index fa4b1e1..7ed280b 100755
--- a/libraries/evas/ltmain.sh
+++ b/libraries/evas/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-2ubuntu3 68# $progname: (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
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-2ubuntu3" 76VERSION="2.2.6b Debian-2.2.6b-2ubuntu1"
77TIMESTAMP="" 77TIMESTAMP=""
78package_revision=1.3017 78package_revision=1.3017
79 79
diff --git a/libraries/evas/m4/evas_check_engine.m4 b/libraries/evas/m4/evas_check_engine.m4
index 5294100..4fc13a9 100644
--- a/libraries/evas/m4/evas_check_engine.m4
+++ b/libraries/evas/m4/evas_check_engine.m4
@@ -873,6 +873,79 @@ fi
873 873
874]) 874])
875 875
876
877dnl use: EVAS_CHECK_ENGINE_DEP_WAYLAND_SHM(engine, simple, want_static[, ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
878
879AC_DEFUN([EVAS_CHECK_ENGINE_DEP_WAYLAND_SHM],
880[
881
882have_dep="yes"
883evas_engine_[]$1[]_cflags=""
884evas_engine_[]$1[]_libs=""
885
886AC_SUBST([evas_engine_$1_cflags])
887AC_SUBST([evas_engine_$1_libs])
888
889if test "x${have_dep}" = "xyes" ; then
890 m4_default([$4], [:])
891else
892 m4_default([$5], [:])
893fi
894
895])
896
897
898dnl use: EVAS_CHECK_ENGINE_DEP_WAYLAND_EGL(engine, simple, want_static[, ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
899
900AC_DEFUN([EVAS_CHECK_ENGINE_DEP_WAYLAND_EGL],
901[
902
903requirement=""
904have_dep="no"
905evas_engine_[]$1[]_cflags=""
906evas_engine_[]$1[]_libs=""
907
908PKG_CHECK_MODULES([WAYLAND_EGL],
909 [egl >= 7.10 glesv2 gl wayland-client wayland-egl],
910 [
911 have_dep="yes"
912 requirement="egl >= 7.10 glesv2 gl wayland-client wayland-egl"
913 evas_engine_[]$1[]_cflags="${WAYLAND_EGL_CFLAGS}"
914 evas_engine_[]$1[]_libs="${WAYLAND_EGL_LIBS}"
915 ],[
916 have_dep="no"
917 ]
918)
919
920if test "x${have_dep}" = "xyes" ; then
921 PKG_CHECK_MODULES([GL_EET], [eet >= 1.5.0], [have_dep="yes"], [have_dep="no"])
922 AC_CHECK_HEADER([GLES2/gl2.h],
923 [have_egl="yes"],
924 [have_egl="no"],
925 [
926 ])
927 if test "x${have_egl}" = "xyes" ; then
928 evas_engine_[]$1[]_cflags="${WAYLAND_EGL_CFLAGS}"
929 evas_engine_[]$1[]_libs="${WAYLAND_EGL_LIBS} -lGL -lGLESv2 -lEGL"
930 fi
931fi
932
933AC_SUBST([evas_engine_$1_cflags])
934AC_SUBST([evas_engine_$1_libs])
935
936if test "x$3" = "xstatic" ; then
937 requirement_evas="${requirement} ${requirement_evas}"
938fi
939
940if test "x${have_dep}" = "xyes" ; then
941 m4_default([$4], [:])
942else
943 m4_default([$5], [:])
944fi
945
946])
947
948
876dnl use: EVAS_CHECK_ENGINE(engine, want_engine, simple, description) 949dnl use: EVAS_CHECK_ENGINE(engine, want_engine, simple, description)
877 950
878 951
diff --git a/libraries/evas/sha1-for-source.txt b/libraries/evas/sha1-for-source.txt
deleted file mode 100644
index 36d8a4c..0000000
--- a/libraries/evas/sha1-for-source.txt
+++ /dev/null
@@ -1 +0,0 @@
1c4cc1315c6fe6096e822f8dbf2c099a541b07962
diff --git a/libraries/evas/src/Makefile.in b/libraries/evas/src/Makefile.in
index 9b729e1..68cdb12 100644
--- a/libraries/evas/src/Makefile.in
+++ b/libraries/evas/src/Makefile.in
@@ -206,8 +206,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
206PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 206PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
207PIXMAN_LIBS = @PIXMAN_LIBS@ 207PIXMAN_LIBS = @PIXMAN_LIBS@
208PKG_CONFIG = @PKG_CONFIG@ 208PKG_CONFIG = @PKG_CONFIG@
209PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
210PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
211PNG_CFLAGS = @PNG_CFLAGS@ 209PNG_CFLAGS = @PNG_CFLAGS@
212PNG_LIBS = @PNG_LIBS@ 210PNG_LIBS = @PNG_LIBS@
213RANLIB = @RANLIB@ 211RANLIB = @RANLIB@
@@ -224,6 +222,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
224VALGRIND_LIBS = @VALGRIND_LIBS@ 222VALGRIND_LIBS = @VALGRIND_LIBS@
225VERSION = @VERSION@ 223VERSION = @VERSION@
226VMAJ = @VMAJ@ 224VMAJ = @VMAJ@
225WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
226WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
227WIN32_CFLAGS = @WIN32_CFLAGS@ 227WIN32_CFLAGS = @WIN32_CFLAGS@
228WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 228WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
229XCB_CFLAGS = @XCB_CFLAGS@ 229XCB_CFLAGS = @XCB_CFLAGS@
@@ -305,6 +305,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
305evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 305evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
306evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 306evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
307evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 307evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
308evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
309evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
310evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
311evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
308evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 312evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
309evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 313evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
310evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 314evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/bin/Makefile.in b/libraries/evas/src/bin/Makefile.in
index 885bfc4..136b34c 100644
--- a/libraries/evas/src/bin/Makefile.in
+++ b/libraries/evas/src/bin/Makefile.in
@@ -212,8 +212,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
212PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 212PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
213PIXMAN_LIBS = @PIXMAN_LIBS@ 213PIXMAN_LIBS = @PIXMAN_LIBS@
214PKG_CONFIG = @PKG_CONFIG@ 214PKG_CONFIG = @PKG_CONFIG@
215PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
216PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
217PNG_CFLAGS = @PNG_CFLAGS@ 215PNG_CFLAGS = @PNG_CFLAGS@
218PNG_LIBS = @PNG_LIBS@ 216PNG_LIBS = @PNG_LIBS@
219RANLIB = @RANLIB@ 217RANLIB = @RANLIB@
@@ -230,6 +228,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
230VALGRIND_LIBS = @VALGRIND_LIBS@ 228VALGRIND_LIBS = @VALGRIND_LIBS@
231VERSION = @VERSION@ 229VERSION = @VERSION@
232VMAJ = @VMAJ@ 230VMAJ = @VMAJ@
231WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
232WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
233WIN32_CFLAGS = @WIN32_CFLAGS@ 233WIN32_CFLAGS = @WIN32_CFLAGS@
234WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 234WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
235XCB_CFLAGS = @XCB_CFLAGS@ 235XCB_CFLAGS = @XCB_CFLAGS@
@@ -311,6 +311,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
311evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 311evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
312evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 312evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
313evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 313evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
314evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
315evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
316evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
317evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
314evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 318evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
315evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 319evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
316evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 320evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/examples/Makefile.am b/libraries/evas/src/examples/Makefile.am
index f748c12..ffa9274 100644
--- a/libraries/evas/src/examples/Makefile.am
+++ b/libraries/evas/src/examples/Makefile.am
@@ -1,6 +1,6 @@
1MAINTAINERCLEANFILES = Makefile.in 1MAINTAINERCLEANFILES = Makefile.in
2 2
3pkglibdir = $(datadir)/$(PACKAGE)/examples 3examplesdir = $(datadir)/$(PACKAGE)/examples
4 4
5#put here all EDCs one needs to the tests 5#put here all EDCs one needs to the tests
6EDCS = aspect.edc 6EDCS = aspect.edc
@@ -28,68 +28,68 @@ AM_CPPFLAGS = \
28 28
29AM_CFLAGS = @WIN32_CFLAGS@ 29AM_CFLAGS = @WIN32_CFLAGS@
30 30
31pkglib_PROGRAMS = 31examples_PROGRAMS =
32 32
33if BUILD_ENGINE_BUFFER 33if BUILD_ENGINE_BUFFER
34AM_CPPFLAGS += -I$(top_srcdir)/src/modules/engines/buffer 34AM_CPPFLAGS += -I$(top_srcdir)/src/modules/engines/buffer
35 35
36pkglib_PROGRAMS += evas_buffer_simple 36examples_PROGRAMS += evas_buffer_simple
37evas_buffer_simple_SOURCES = evas-buffer-simple.c 37evas_buffer_simple_SOURCES = evas-buffer-simple.c
38evas_buffer_simple_LDADD = $(top_builddir)/src/lib/libevas.la 38evas_buffer_simple_LDADD = $(top_builddir)/src/lib/libevas.la
39endif 39endif
40 40
41pkglib_PROGRAMS += evas_init_shutdown 41examples_PROGRAMS += evas_init_shutdown
42evas_init_shutdown_SOURCES = evas-init-shutdown.c 42evas_init_shutdown_SOURCES = evas-init-shutdown.c
43evas_init_shutdown_LDADD = $(top_builddir)/src/lib/libevas.la 43evas_init_shutdown_LDADD = $(top_builddir)/src/lib/libevas.la
44 44
45#the ones using ecore_evas follow 45#the ones using ecore_evas follow
46AM_CPPFLAGS += @ECORE_EVAS_CFLAGS@ 46AM_CPPFLAGS += @ECORE_EVAS_CFLAGS@
47 47
48pkglib_PROGRAMS += evas_images 48examples_PROGRAMS += evas_images
49evas_images_SOURCES = evas-images.c 49evas_images_SOURCES = evas-images.c
50evas_images_LDADD = $(top_builddir)/src/lib/libevas.la @ECORE_EVAS_LIBS@ 50evas_images_LDADD = $(top_builddir)/src/lib/libevas.la @ECORE_EVAS_LIBS@
51 51
52pkglib_PROGRAMS += evas_events 52examples_PROGRAMS += evas_events
53evas_events_SOURCES = evas-events.c 53evas_events_SOURCES = evas-events.c
54evas_events_LDADD = $(top_builddir)/src/lib/libevas.la @ECORE_EVAS_LIBS@ 54evas_events_LDADD = $(top_builddir)/src/lib/libevas.la @ECORE_EVAS_LIBS@
55 55
56pkglib_PROGRAMS += evas_object_manipulation 56examples_PROGRAMS += evas_object_manipulation
57evas_object_manipulation_SOURCES = evas-object-manipulation.c 57evas_object_manipulation_SOURCES = evas-object-manipulation.c
58evas_object_manipulation_LDADD = $(top_builddir)/src/lib/libevas.la @ECORE_EVAS_LIBS@ 58evas_object_manipulation_LDADD = $(top_builddir)/src/lib/libevas.la @ECORE_EVAS_LIBS@
59 59
60pkglib_PROGRAMS += evas_hints 60examples_PROGRAMS += evas_hints
61evas_hints_SOURCES = evas-hints.c 61evas_hints_SOURCES = evas-hints.c
62evas_hints_LDADD = $(top_builddir)/src/lib/libevas.la @ECORE_EVAS_LIBS@ 62evas_hints_LDADD = $(top_builddir)/src/lib/libevas.la @ECORE_EVAS_LIBS@
63 63
64pkglib_PROGRAMS += evas_stacking 64examples_PROGRAMS += evas_stacking
65evas_stacking_SOURCES = evas-stacking.c 65evas_stacking_SOURCES = evas-stacking.c
66evas_stacking_LDADD = $(top_builddir)/src/lib/libevas.la @ECORE_EVAS_LIBS@ 66evas_stacking_LDADD = $(top_builddir)/src/lib/libevas.la @ECORE_EVAS_LIBS@
67 67
68pkglib_PROGRAMS += evas_images2 68examples_PROGRAMS += evas_images2
69evas_images2_SOURCES = evas-images2.c 69evas_images2_SOURCES = evas-images2.c
70evas_images2_LDADD = $(top_builddir)/src/lib/libevas.la @ECORE_EVAS_LIBS@ 70evas_images2_LDADD = $(top_builddir)/src/lib/libevas.la @ECORE_EVAS_LIBS@
71 71
72pkglib_PROGRAMS += evas_text 72examples_PROGRAMS += evas_text
73evas_text_SOURCES = evas-text.c 73evas_text_SOURCES = evas-text.c
74evas_text_LDADD = $(top_builddir)/src/lib/libevas.la @ECORE_EVAS_LIBS@ 74evas_text_LDADD = $(top_builddir)/src/lib/libevas.la @ECORE_EVAS_LIBS@
75 75
76pkglib_PROGRAMS += evas_smart_object 76examples_PROGRAMS += evas_smart_object
77evas_smart_object_SOURCES = evas-smart-object.c 77evas_smart_object_SOURCES = evas-smart-object.c
78evas_smart_object_LDADD = $(top_builddir)/src/lib/libevas.la @ECORE_EVAS_LIBS@ 78evas_smart_object_LDADD = $(top_builddir)/src/lib/libevas.la @ECORE_EVAS_LIBS@
79 79
80pkglib_PROGRAMS += evas_box 80examples_PROGRAMS += evas_box
81evas_box_SOURCES = evas-box.c 81evas_box_SOURCES = evas-box.c
82evas_box_LDADD = $(top_builddir)/src/lib/libevas.la @ECORE_EVAS_LIBS@ @EINA_LIBS@ 82evas_box_LDADD = $(top_builddir)/src/lib/libevas.la @ECORE_EVAS_LIBS@ @EINA_LIBS@
83 83
84#the ones using ecore_evas and edje follow 84#the ones using ecore_evas and edje follow
85AM_CPPFLAGS += @EDJE_CFLAGS@ 85AM_CPPFLAGS += @EDJE_CFLAGS@
86 86
87pkglib_PROGRAMS += evas_aspect_hints 87examples_PROGRAMS += evas_aspect_hints
88evas_aspect_hints_DEPS = $(srcdir)/aspect.edc 88evas_aspect_hints_DEPS = $(srcdir)/aspect.edc
89evas_aspect_hints_SOURCES = evas-aspect-hints.c 89evas_aspect_hints_SOURCES = evas-aspect-hints.c
90evas_aspect_hints_LDADD = $(top_builddir)/src/lib/libevas.la @ECORE_EVAS_LIBS@ @EDJE_LIBS@ 90evas_aspect_hints_LDADD = $(top_builddir)/src/lib/libevas.la @ECORE_EVAS_LIBS@ @EDJE_LIBS@
91 91
92pkglib_PROGRAMS += evas_map_utils 92examples_PROGRAMS += evas_map_utils
93evas_map_utils_SOURCES = evas-map-utils.c 93evas_map_utils_SOURCES = evas-map-utils.c
94evas_map_utils_LDADD = $(top_builddir)/src/lib/libevas.la @ECORE_EVAS_LIBS@ 94evas_map_utils_LDADD = $(top_builddir)/src/lib/libevas.la @ECORE_EVAS_LIBS@
95 95
diff --git a/libraries/evas/src/examples/Makefile.in b/libraries/evas/src/examples/Makefile.in
index 5332650..f58d297 100644
--- a/libraries/evas/src/examples/Makefile.in
+++ b/libraries/evas/src/examples/Makefile.in
@@ -19,6 +19,7 @@
19VPATH = @srcdir@ 19VPATH = @srcdir@
20pkgdatadir = $(datadir)/@PACKAGE@ 20pkgdatadir = $(datadir)/@PACKAGE@
21pkgincludedir = $(includedir)/@PACKAGE@ 21pkgincludedir = $(includedir)/@PACKAGE@
22pkglibdir = $(libdir)/@PACKAGE@
22pkglibexecdir = $(libexecdir)/@PACKAGE@ 23pkglibexecdir = $(libexecdir)/@PACKAGE@
23am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd 24am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
24install_sh_DATA = $(install_sh) -c -m 644 25install_sh_DATA = $(install_sh) -c -m 644
@@ -34,7 +35,7 @@ PRE_UNINSTALL = :
34POST_UNINSTALL = : 35POST_UNINSTALL = :
35build_triplet = @build@ 36build_triplet = @build@
36host_triplet = @host@ 37host_triplet = @host@
37@BUILD_EXAMPLES_TRUE@pkglib_PROGRAMS = $(am__EXEEXT_1) \ 38@BUILD_EXAMPLES_TRUE@examples_PROGRAMS = $(am__EXEEXT_1) \
38@BUILD_EXAMPLES_TRUE@ evas_init_shutdown$(EXEEXT) \ 39@BUILD_EXAMPLES_TRUE@ evas_init_shutdown$(EXEEXT) \
39@BUILD_EXAMPLES_TRUE@ evas_images$(EXEEXT) evas_events$(EXEEXT) \ 40@BUILD_EXAMPLES_TRUE@ evas_images$(EXEEXT) evas_events$(EXEEXT) \
40@BUILD_EXAMPLES_TRUE@ evas_object_manipulation$(EXEEXT) \ 41@BUILD_EXAMPLES_TRUE@ evas_object_manipulation$(EXEEXT) \
@@ -89,8 +90,8 @@ CONFIG_HEADER = $(top_builddir)/config.h
89CONFIG_CLEAN_FILES = 90CONFIG_CLEAN_FILES =
90CONFIG_CLEAN_VPATH_FILES = 91CONFIG_CLEAN_VPATH_FILES =
91@BUILD_ENGINE_BUFFER_TRUE@@BUILD_EXAMPLES_TRUE@am__EXEEXT_1 = evas_buffer_simple$(EXEEXT) 92@BUILD_ENGINE_BUFFER_TRUE@@BUILD_EXAMPLES_TRUE@am__EXEEXT_1 = evas_buffer_simple$(EXEEXT)
92am__installdirs = "$(DESTDIR)$(pkglibdir)" "$(DESTDIR)$(filesdir)" 93am__installdirs = "$(DESTDIR)$(examplesdir)" "$(DESTDIR)$(filesdir)"
93PROGRAMS = $(pkglib_PROGRAMS) 94PROGRAMS = $(examples_PROGRAMS)
94am__evas_aspect_hints_SOURCES_DIST = evas-aspect-hints.c 95am__evas_aspect_hints_SOURCES_DIST = evas-aspect-hints.c
95@BUILD_EXAMPLES_TRUE@am_evas_aspect_hints_OBJECTS = \ 96@BUILD_EXAMPLES_TRUE@am_evas_aspect_hints_OBJECTS = \
96@BUILD_EXAMPLES_TRUE@ evas-aspect-hints.$(OBJEXT) 97@BUILD_EXAMPLES_TRUE@ evas-aspect-hints.$(OBJEXT)
@@ -236,7 +237,6 @@ DATA = $(files_DATA)
236ETAGS = etags 237ETAGS = etags
237CTAGS = ctags 238CTAGS = ctags
238DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) 239DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
239pkglibdir = $(datadir)/$(PACKAGE)/examples
240ACLOCAL = @ACLOCAL@ 240ACLOCAL = @ACLOCAL@
241ALLOCA = @ALLOCA@ 241ALLOCA = @ALLOCA@
242AMTAR = @AMTAR@ 242AMTAR = @AMTAR@
@@ -339,8 +339,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
339PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 339PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
340PIXMAN_LIBS = @PIXMAN_LIBS@ 340PIXMAN_LIBS = @PIXMAN_LIBS@
341PKG_CONFIG = @PKG_CONFIG@ 341PKG_CONFIG = @PKG_CONFIG@
342PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
343PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
344PNG_CFLAGS = @PNG_CFLAGS@ 342PNG_CFLAGS = @PNG_CFLAGS@
345PNG_LIBS = @PNG_LIBS@ 343PNG_LIBS = @PNG_LIBS@
346RANLIB = @RANLIB@ 344RANLIB = @RANLIB@
@@ -357,6 +355,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
357VALGRIND_LIBS = @VALGRIND_LIBS@ 355VALGRIND_LIBS = @VALGRIND_LIBS@
358VERSION = @VERSION@ 356VERSION = @VERSION@
359VMAJ = @VMAJ@ 357VMAJ = @VMAJ@
358WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
359WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
360WIN32_CFLAGS = @WIN32_CFLAGS@ 360WIN32_CFLAGS = @WIN32_CFLAGS@
361WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 361WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
362XCB_CFLAGS = @XCB_CFLAGS@ 362XCB_CFLAGS = @XCB_CFLAGS@
@@ -438,6 +438,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
438evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 438evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
439evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 439evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
440evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 440evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
441evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
442evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
443evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
444evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
441evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 445evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
442evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 446evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
443evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 447evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
@@ -513,6 +517,7 @@ top_builddir = @top_builddir@
513top_srcdir = @top_srcdir@ 517top_srcdir = @top_srcdir@
514version_info = @version_info@ 518version_info = @version_info@
515MAINTAINERCLEANFILES = Makefile.in 519MAINTAINERCLEANFILES = Makefile.in
520examplesdir = $(datadir)/$(PACKAGE)/examples
516 521
517#put here all EDCs one needs to the tests 522#put here all EDCs one needs to the tests
518EDCS = aspect.edc 523EDCS = aspect.edc
@@ -616,10 +621,10 @@ $(top_srcdir)/configure: $(am__configure_deps)
616$(ACLOCAL_M4): $(am__aclocal_m4_deps) 621$(ACLOCAL_M4): $(am__aclocal_m4_deps)
617 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh 622 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
618$(am__aclocal_m4_deps): 623$(am__aclocal_m4_deps):
619install-pkglibPROGRAMS: $(pkglib_PROGRAMS) 624install-examplesPROGRAMS: $(examples_PROGRAMS)
620 @$(NORMAL_INSTALL) 625 @$(NORMAL_INSTALL)
621 test -z "$(pkglibdir)" || $(MKDIR_P) "$(DESTDIR)$(pkglibdir)" 626 test -z "$(examplesdir)" || $(MKDIR_P) "$(DESTDIR)$(examplesdir)"
622 @list='$(pkglib_PROGRAMS)'; test -n "$(pkglibdir)" || list=; \ 627 @list='$(examples_PROGRAMS)'; test -n "$(examplesdir)" || list=; \
623 for p in $$list; do echo "$$p $$p"; done | \ 628 for p in $$list; do echo "$$p $$p"; done | \
624 sed 's/$(EXEEXT)$$//' | \ 629 sed 's/$(EXEEXT)$$//' | \
625 while read p p1; do if test -f $$p || test -f $$p1; \ 630 while read p p1; do if test -f $$p || test -f $$p1; \
@@ -636,23 +641,23 @@ install-pkglibPROGRAMS: $(pkglib_PROGRAMS)
636 while read type dir files; do \ 641 while read type dir files; do \
637 if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ 642 if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
638 test -z "$$files" || { \ 643 test -z "$$files" || { \
639 echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(pkglibdir)$$dir'"; \ 644 echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(examplesdir)$$dir'"; \
640 $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(pkglibdir)$$dir" || exit $$?; \ 645 $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(examplesdir)$$dir" || exit $$?; \
641 } \ 646 } \
642 ; done 647 ; done
643 648
644uninstall-pkglibPROGRAMS: 649uninstall-examplesPROGRAMS:
645 @$(NORMAL_UNINSTALL) 650 @$(NORMAL_UNINSTALL)
646 @list='$(pkglib_PROGRAMS)'; test -n "$(pkglibdir)" || list=; \ 651 @list='$(examples_PROGRAMS)'; test -n "$(examplesdir)" || list=; \
647 files=`for p in $$list; do echo "$$p"; done | \ 652 files=`for p in $$list; do echo "$$p"; done | \
648 sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ 653 sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
649 -e 's/$$/$(EXEEXT)/' `; \ 654 -e 's/$$/$(EXEEXT)/' `; \
650 test -n "$$list" || exit 0; \ 655 test -n "$$list" || exit 0; \
651 echo " ( cd '$(DESTDIR)$(pkglibdir)' && rm -f" $$files ")"; \ 656 echo " ( cd '$(DESTDIR)$(examplesdir)' && rm -f" $$files ")"; \
652 cd "$(DESTDIR)$(pkglibdir)" && rm -f $$files 657 cd "$(DESTDIR)$(examplesdir)" && rm -f $$files
653 658
654clean-pkglibPROGRAMS: 659clean-examplesPROGRAMS:
655 @list='$(pkglib_PROGRAMS)'; test -n "$$list" || exit 0; \ 660 @list='$(examples_PROGRAMS)'; test -n "$$list" || exit 0; \
656 echo " rm -f" $$list; \ 661 echo " rm -f" $$list; \
657 rm -f $$list || exit $$?; \ 662 rm -f $$list || exit $$?; \
658 test -n "$(EXEEXT)" || exit 0; \ 663 test -n "$(EXEEXT)" || exit 0; \
@@ -855,7 +860,7 @@ check-am: all-am
855check: check-am 860check: check-am
856all-am: Makefile $(PROGRAMS) $(DATA) 861all-am: Makefile $(PROGRAMS) $(DATA)
857installdirs: 862installdirs:
858 for dir in "$(DESTDIR)$(pkglibdir)" "$(DESTDIR)$(filesdir)"; do \ 863 for dir in "$(DESTDIR)$(examplesdir)" "$(DESTDIR)$(filesdir)"; do \
859 test -z "$$dir" || $(MKDIR_P) "$$dir"; \ 864 test -z "$$dir" || $(MKDIR_P) "$$dir"; \
860 done 865 done
861install: install-am 866install: install-am
@@ -886,7 +891,7 @@ maintainer-clean-generic:
886 -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) 891 -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
887clean: clean-am 892clean: clean-am
888 893
889clean-am: clean-generic clean-libtool clean-pkglibPROGRAMS \ 894clean-am: clean-examplesPROGRAMS clean-generic clean-libtool \
890 mostlyclean-am 895 mostlyclean-am
891 896
892distclean: distclean-am 897distclean: distclean-am
@@ -907,13 +912,13 @@ info: info-am
907 912
908info-am: 913info-am:
909 914
910install-data-am: install-filesDATA 915install-data-am: install-examplesPROGRAMS install-filesDATA
911 916
912install-dvi: install-dvi-am 917install-dvi: install-dvi-am
913 918
914install-dvi-am: 919install-dvi-am:
915 920
916install-exec-am: install-pkglibPROGRAMS 921install-exec-am:
917 922
918install-html: install-html-am 923install-html: install-html-am
919 924
@@ -953,24 +958,25 @@ ps: ps-am
953 958
954ps-am: 959ps-am:
955 960
956uninstall-am: uninstall-filesDATA uninstall-pkglibPROGRAMS 961uninstall-am: uninstall-examplesPROGRAMS uninstall-filesDATA
957 962
958.MAKE: install-am install-strip 963.MAKE: install-am install-strip
959 964
960.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ 965.PHONY: CTAGS GTAGS all all-am check check-am clean \
961 clean-libtool clean-pkglibPROGRAMS ctags distclean \ 966 clean-examplesPROGRAMS clean-generic clean-libtool ctags \
962 distclean-compile distclean-generic distclean-libtool \ 967 distclean distclean-compile distclean-generic \
963 distclean-tags distdir dvi dvi-am html html-am info info-am \ 968 distclean-libtool distclean-tags distdir dvi dvi-am html \
964 install install-am install-data install-data-am install-dvi \ 969 html-am info info-am install install-am install-data \
965 install-dvi-am install-exec install-exec-am install-filesDATA \ 970 install-data-am install-dvi install-dvi-am \
966 install-html install-html-am install-info install-info-am \ 971 install-examplesPROGRAMS install-exec install-exec-am \
967 install-man install-pdf install-pdf-am install-pkglibPROGRAMS \ 972 install-filesDATA install-html install-html-am install-info \
973 install-info-am install-man install-pdf install-pdf-am \
968 install-ps install-ps-am install-strip installcheck \ 974 install-ps install-ps-am install-strip installcheck \
969 installcheck-am installdirs maintainer-clean \ 975 installcheck-am installdirs maintainer-clean \
970 maintainer-clean-generic mostlyclean mostlyclean-compile \ 976 maintainer-clean-generic mostlyclean mostlyclean-compile \
971 mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ 977 mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
972 tags uninstall uninstall-am uninstall-filesDATA \ 978 tags uninstall uninstall-am uninstall-examplesPROGRAMS \
973 uninstall-pkglibPROGRAMS 979 uninstall-filesDATA
974 980
975 981
976@BUILD_EXAMPLES_TRUE@aspect.edj: ${evas_aspect_hints_DEPS} 982@BUILD_EXAMPLES_TRUE@aspect.edj: ${evas_aspect_hints_DEPS}
diff --git a/libraries/evas/src/lib/Evas.h b/libraries/evas/src/lib/Evas.h
index 5898290..b85bbeb 100644
--- a/libraries/evas/src/lib/Evas.h
+++ b/libraries/evas/src/lib/Evas.h
@@ -5,6 +5,7 @@
5@date 2000-2011 5@date 2000-2011
6 6
7Please see the @ref authors page for contact details. 7Please see the @ref authors page for contact details.
8
8@link Evas.h Evas API @endlink 9@link Evas.h Evas API @endlink
9 10
10@section toc Table of Contents 11@section toc Table of Contents
@@ -342,7 +343,7 @@ extern "C" {
342#endif 343#endif
343 344
344#define EVAS_VERSION_MAJOR 1 345#define EVAS_VERSION_MAJOR 1
345#define EVAS_VERSION_MINOR 0 346#define EVAS_VERSION_MINOR 2
346 347
347typedef struct _Evas_Version 348typedef struct _Evas_Version
348{ 349{
@@ -432,6 +433,9 @@ typedef enum _Evas_Callback_Type
432 */ 433 */
433 EVAS_CALLBACK_IMAGE_UNLOADED, /**< Image data has been unloaded (by some mechanims in Evas that throw out original image data) */ 434 EVAS_CALLBACK_IMAGE_UNLOADED, /**< Image data has been unloaded (by some mechanims in Evas that throw out original image data) */
434 435
436 EVAS_CALLBACK_RENDER_PRE, /**< Called just before rendering starts on the canvas target @since 1.2 */
437 EVAS_CALLBACK_RENDER_POST, /**< Called just after rendering stops on the canvas target @since 1.2 */
438
435 EVAS_CALLBACK_LAST /**< kept as last element/sentinel -- not really an event */ 439 EVAS_CALLBACK_LAST /**< kept as last element/sentinel -- not really an event */
436} Evas_Callback_Type; /**< The types of events triggering a callback */ 440} Evas_Callback_Type; /**< The types of events triggering a callback */
437 441
@@ -1061,7 +1065,8 @@ struct _Evas_Event_Hold /** Hold change event */
1061typedef enum _Evas_Object_Pointer_Mode 1065typedef enum _Evas_Object_Pointer_Mode
1062{ 1066{
1063 EVAS_OBJECT_POINTER_MODE_AUTOGRAB, /**< default, X11-like */ 1067 EVAS_OBJECT_POINTER_MODE_AUTOGRAB, /**< default, X11-like */
1064 EVAS_OBJECT_POINTER_MODE_NOGRAB /**< pointer always bound to the object right below it */ 1068 EVAS_OBJECT_POINTER_MODE_NOGRAB, /**< pointer always bound to the object right below it */
1069 EVAS_OBJECT_POINTER_MODE_NOGRAB_NO_REPEAT_UPDOWN /**< useful on object with "repeat events" enabled, where mouse/touch up and down events WONT be repeated to objects and these objects wont be auto-grabbed. @since 1.2 */
1065} Evas_Object_Pointer_Mode; /**< How the mouse pointer should be handled by Evas. */ 1070} Evas_Object_Pointer_Mode; /**< How the mouse pointer should be handled by Evas. */
1066 1071
1067typedef void (*Evas_Smart_Cb) (void *data, Evas_Object *obj, void *event_info); /**< Evas smart objects' "smart callback" function signature */ 1072typedef void (*Evas_Smart_Cb) (void *data, Evas_Object *obj, void *event_info); /**< Evas smart objects' "smart callback" function signature */
@@ -1220,7 +1225,7 @@ EAPI Evas_Alloc_Error evas_alloc_error (void);
1220 * 1225 *
1221 * @ingroup Evas_Group 1226 * @ingroup Evas_Group
1222 */ 1227 */
1223EAPI int evas_async_events_fd_get (void) EINA_WARN_UNUSED_RESULT EINA_PURE; 1228EAPI int evas_async_events_fd_get (void) EINA_WARN_UNUSED_RESULT;
1224 1229
1225/** 1230/**
1226 * @brief Trigger the processing of all events waiting on the file 1231 * @brief Trigger the processing of all events waiting on the file
@@ -1339,7 +1344,7 @@ EAPI void evas_focus_out (Evas *e);
1339 * @param e The evas to query information. 1344 * @param e The evas to query information.
1340 * @ingroup Evas_Canvas 1345 * @ingroup Evas_Canvas
1341 */ 1346 */
1342EAPI Eina_Bool evas_focus_state_get (const Evas *e) EINA_PURE; 1347EAPI Eina_Bool evas_focus_state_get (const Evas *e);
1343 1348
1344/** 1349/**
1345 * Push the nochange flag up 1 1350 * Push the nochange flag up 1
@@ -1380,7 +1385,7 @@ EAPI void evas_data_attach_set (Evas *e, void *data) E
1380 * @return The pointer attached 1385 * @return The pointer attached
1381 * @ingroup Evas_Canvas 1386 * @ingroup Evas_Canvas
1382 */ 1387 */
1383EAPI void *evas_data_attach_get (const Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 1388EAPI void *evas_data_attach_get (const Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
1384 1389
1385 1390
1386/** 1391/**
@@ -1747,7 +1752,7 @@ EAPI void evas_output_method_set (Evas *e, int render_me
1747 * returned if there is an error. 1752 * returned if there is an error.
1748 * @ingroup Evas_Output_Method 1753 * @ingroup Evas_Output_Method
1749 */ 1754 */
1750EAPI int evas_output_method_get (const Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 1755EAPI int evas_output_method_get (const Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
1751 1756
1752 1757
1753/** 1758/**
@@ -1764,7 +1769,7 @@ EAPI int evas_output_method_get (const Evas *e) EINA_WA
1764 * an engine has not yet been assigned. 1769 * an engine has not yet been assigned.
1765 * @ingroup Evas_Output_Method 1770 * @ingroup Evas_Output_Method
1766 */ 1771 */
1767EAPI Evas_Engine_Info *evas_engine_info_get (const Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 1772EAPI Evas_Engine_Info *evas_engine_info_get (const Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
1768 1773
1769/** 1774/**
1770 * Applies the engine settings for the given evas from the given @c 1775 * Applies the engine settings for the given evas from the given @c
@@ -1876,6 +1881,38 @@ EAPI void evas_output_viewport_set (Evas *e, Evas_Coord x,
1876EAPI void evas_output_viewport_get (const Evas *e, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h) EINA_ARG_NONNULL(1); 1881EAPI void evas_output_viewport_get (const Evas *e, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h) EINA_ARG_NONNULL(1);
1877 1882
1878/** 1883/**
1884 * Sets the output framespace size of the render engine of the given evas.
1885 *
1886 * The framespace size is used in the Wayland engines to denote space where
1887 * the output is not drawn. This is mainly used in ecore_evas to draw borders
1888 *
1889 * The units used for @p w and @p h depend on the engine used by the
1890 * evas.
1891 *
1892 * @param e The given evas.
1893 * @param x The left coordinate in output units, usually pixels.
1894 * @param y The top coordinate in output units, usually pixels.
1895 * @param w The width in output units, usually pixels.
1896 * @param h The height in output units, usually pixels.
1897 * @ingroup Evas_Output_Size
1898 * @since 1.1.0
1899 */
1900EAPI void evas_output_framespace_set (Evas *e, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h);
1901
1902/**
1903 * Get the render engine's output framespace co-ordinates in canvas units.
1904 *
1905 * @param e The pointer to the Evas Canvas
1906 * @param x The pointer to a x variable to be filled in
1907 * @param y The pointer to a y variable to be filled in
1908 * @param w The pointer to a width variable to be filled in
1909 * @param h The pointer to a height variable to be filled in
1910 * @ingroup Evas_Output_Size
1911 * @since 1.1.0
1912 */
1913EAPI void evas_output_framespace_get (const Evas *e, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h);
1914
1915/**
1879 * @defgroup Evas_Coord_Mapping_Group Coordinate Mapping Functions 1916 * @defgroup Evas_Coord_Mapping_Group Coordinate Mapping Functions
1880 * 1917 *
1881 * Functions that are used to map coordinates from the canvas to the 1918 * Functions that are used to map coordinates from the canvas to the
@@ -2342,6 +2379,33 @@ EAPI void evas_post_event_callback_remove_full (Evas *e, Evas_Objec
2342 */ 2379 */
2343 2380
2344/** 2381/**
2382 * Set the default set of flags an event begins with
2383 *
2384 * @param e The canvas to set the default event flags of
2385 * @param flags The default flags to use
2386 *
2387 * Events in evas can have an event_flags member. This starts out with
2388 * and initial value (no flags). this lets you set the default flags that
2389 * an event begins with to be @p flags
2390 *
2391 * @since 1.2
2392 */
2393EAPI void evas_event_default_flags_set (Evas *e, Evas_Event_Flags flags) EINA_ARG_NONNULL(1);
2394
2395/**
2396 * Get the defaulty set of flags an event begins with
2397 *
2398 * @param e The canvas to get the default event flags from
2399 * @return The default event flags for that canvas
2400 *
2401 * This gets the default event flags events are produced with when fed in.
2402 *
2403 * @see evas_event_default_flags_set()
2404 * @since 1.2
2405 */
2406EAPI Evas_Event_Flags evas_event_default_flags_get (const Evas *e) EINA_ARG_NONNULL(1);
2407
2408/**
2345 * Freeze all input events processing. 2409 * Freeze all input events processing.
2346 * 2410 *
2347 * @param e The canvas to freeze input events processing on. 2411 * @param e The canvas to freeze input events processing on.
@@ -2407,7 +2471,7 @@ EAPI void evas_event_thaw (Evas *e) EINA_ARG_NONN
2407 * @endcode 2471 * @endcode
2408 * 2472 *
2409 */ 2473 */
2410EAPI int evas_event_freeze_get (const Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 2474EAPI int evas_event_freeze_get (const Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
2411 2475
2412/** 2476/**
2413 * After thaw of a canvas, re-evaluate the state of objects and call callbacks 2477 * After thaw of a canvas, re-evaluate the state of objects and call callbacks
@@ -2448,6 +2512,16 @@ EAPI void evas_event_thaw_eval (Evas *e) EINA_ARG_NONN
2448 */ 2512 */
2449 2513
2450/** 2514/**
2515 * Get the number of mouse or multi presses currently active
2516 *
2517 * @p e The given canvas pointer.
2518 * @return The numer of presses (0 if none active).
2519 *
2520 * @since 1.2
2521 */
2522EAPI int evas_event_down_count_get (const Evas *e) EINA_ARG_NONNULL(1);
2523
2524/**
2451 * Mouse down event feed. 2525 * Mouse down event feed.
2452 * 2526 *
2453 * @param e The given canvas pointer. 2527 * @param e The given canvas pointer.
@@ -2679,7 +2753,7 @@ EAPI void evas_image_cache_set (Evas *e, int size) EIN
2679 * This function returns the image cache size of canvas in bytes. 2753 * This function returns the image cache size of canvas in bytes.
2680 * 2754 *
2681 */ 2755 */
2682EAPI int evas_image_cache_get (const Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 2756EAPI int evas_image_cache_get (const Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
2683 2757
2684/** 2758/**
2685 * Get the maximum image size evas can possibly handle 2759 * Get the maximum image size evas can possibly handle
@@ -2728,7 +2802,7 @@ EAPI void evas_font_hinting_set (Evas *e, Evas_Font_H
2728 * #EVAS_FONT_HINTING_AUTO, #EVAS_FONT_HINTING_BYTECODE. 2802 * #EVAS_FONT_HINTING_AUTO, #EVAS_FONT_HINTING_BYTECODE.
2729 * @ingroup Evas_Font_Group 2803 * @ingroup Evas_Font_Group
2730 */ 2804 */
2731EAPI Evas_Font_Hinting_Flags evas_font_hinting_get (const Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 2805EAPI Evas_Font_Hinting_Flags evas_font_hinting_get (const Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
2732 2806
2733/** 2807/**
2734 * Checks if the font hinting is supported by the given evas. 2808 * Checks if the font hinting is supported by the given evas.
@@ -2739,7 +2813,7 @@ EAPI Evas_Font_Hinting_Flags evas_font_hinting_get (const Evas *e) EINA_
2739 * @return @c EINA_TRUE if it is supported, @c EINA_FALSE otherwise. 2813 * @return @c EINA_TRUE if it is supported, @c EINA_FALSE otherwise.
2740 * @ingroup Evas_Font_Group 2814 * @ingroup Evas_Font_Group
2741 */ 2815 */
2742EAPI Eina_Bool evas_font_hinting_can_hint (const Evas *e, Evas_Font_Hinting_Flags hinting) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 2816EAPI Eina_Bool evas_font_hinting_can_hint (const Evas *e, Evas_Font_Hinting_Flags hinting) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
2743 2817
2744 2818
2745/** 2819/**
@@ -2768,7 +2842,7 @@ EAPI void evas_font_cache_set (Evas *e, int size) E
2768 * 2842 *
2769 * @ingroup Evas_Font_Group 2843 * @ingroup Evas_Font_Group
2770 */ 2844 */
2771EAPI int evas_font_cache_get (const Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 2845EAPI int evas_font_cache_get (const Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
2772 2846
2773 2847
2774/** 2848/**
@@ -2785,7 +2859,7 @@ EAPI int evas_font_cache_get (const Evas *e) EINA_
2785 * 2859 *
2786 * @ingroup Evas_Font_Group 2860 * @ingroup Evas_Font_Group
2787 */ 2861 */
2788EAPI Eina_List *evas_font_available_list (const Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 2862EAPI Eina_List *evas_font_available_list (const Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
2789 2863
2790/** 2864/**
2791 * Free list of font descriptions returned by evas_font_dir_available_list(). 2865 * Free list of font descriptions returned by evas_font_dir_available_list().
@@ -2834,7 +2908,7 @@ EAPI void evas_font_path_prepend (Evas *e, const char *p
2834 * @return The list of font paths used. 2908 * @return The list of font paths used.
2835 * @ingroup Evas_Font_Path_Group 2909 * @ingroup Evas_Font_Path_Group
2836 */ 2910 */
2837EAPI const Eina_List *evas_font_path_list (const Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 2911EAPI const Eina_List *evas_font_path_list (const Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
2838 2912
2839/** 2913/**
2840 * @defgroup Evas_Object_Group Generic Object Functions 2914 * @defgroup Evas_Object_Group Generic Object Functions
@@ -2958,7 +3032,7 @@ EAPI void evas_object_clip_set (Evas_Object *obj, Evas
2958 * 3032 *
2959 * See the full @ref Example_Evas_Object_Manipulation "example". 3033 * See the full @ref Example_Evas_Object_Manipulation "example".
2960 */ 3034 */
2961EAPI Evas_Object *evas_object_clip_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 3035EAPI Evas_Object *evas_object_clip_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
2962 3036
2963/** 3037/**
2964 * Disable/cease clipping on a clipped @p obj object. 3038 * Disable/cease clipping on a clipped @p obj object.
@@ -3015,7 +3089,7 @@ EAPI void evas_object_clip_unset (Evas_Object *obj);
3015 * } 3089 * }
3016 * @endcode 3090 * @endcode
3017 */ 3091 */
3018EAPI const Eina_List *evas_object_clipees_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 3092EAPI const Eina_List *evas_object_clipees_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
3019 3093
3020 3094
3021/** 3095/**
@@ -3068,7 +3142,7 @@ EAPI void evas_object_focus_set (Evas_Object *obj, Eina
3068 * @see evas_object_key_grab 3142 * @see evas_object_key_grab
3069 * @see evas_object_key_ungrab 3143 * @see evas_object_key_ungrab
3070 */ 3144 */
3071EAPI Eina_Bool evas_object_focus_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 3145EAPI Eina_Bool evas_object_focus_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
3072 3146
3073 3147
3074/** 3148/**
@@ -3104,7 +3178,7 @@ EAPI void evas_object_layer_set (Evas_Object *obj, shor
3104 * 3178 *
3105 * @see evas_object_layer_set() 3179 * @see evas_object_layer_set()
3106 */ 3180 */
3107EAPI short evas_object_layer_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 3181EAPI short evas_object_layer_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
3108 3182
3109 3183
3110/** 3184/**
@@ -3139,7 +3213,7 @@ EAPI void evas_object_name_set (Evas_Object *obj, cons
3139 * 3213 *
3140 * See the full @ref Example_Evas_Events "example". 3214 * See the full @ref Example_Evas_Events "example".
3141 */ 3215 */
3142EAPI const char *evas_object_name_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 3216EAPI const char *evas_object_name_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
3143 3217
3144 3218
3145/** 3219/**
@@ -3382,7 +3456,7 @@ EAPI void evas_object_hide (Evas_Object *obj) EINA
3382 * 3456 *
3383 * @ingroup Evas_Object_Group_Basic 3457 * @ingroup Evas_Object_Group_Basic
3384 */ 3458 */
3385EAPI Eina_Bool evas_object_visible_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 3459EAPI Eina_Bool evas_object_visible_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
3386 3460
3387 3461
3388/** 3462/**
@@ -3455,7 +3529,7 @@ EAPI void evas_object_color_get (const Evas_Object *obj
3455 * 3529 *
3456 * @ingroup Evas_Object_Group_Basic 3530 * @ingroup Evas_Object_Group_Basic
3457 */ 3531 */
3458EAPI Evas *evas_object_evas_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 3532EAPI Evas *evas_object_evas_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
3459 3533
3460/** 3534/**
3461 * Retrieves the type of the given Evas object. 3535 * Retrieves the type of the given Evas object.
@@ -3485,7 +3559,7 @@ EAPI Evas *evas_object_evas_get (const Evas_Object *obj
3485 * 3559 *
3486 * See the full @ref Example_Evas_Object_Manipulation "example". 3560 * See the full @ref Example_Evas_Object_Manipulation "example".
3487 */ 3561 */
3488EAPI const char *evas_object_type_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 3562EAPI const char *evas_object_type_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
3489 3563
3490/** 3564/**
3491 * Raise @p obj to the top of its layer. 3565 * Raise @p obj to the top of its layer.
@@ -3586,7 +3660,7 @@ EAPI void evas_object_stack_below (Evas_Object *obj, Evas
3586 * @see evas_object_below_get() 3660 * @see evas_object_below_get()
3587 * 3661 *
3588 */ 3662 */
3589EAPI Evas_Object *evas_object_above_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 3663EAPI Evas_Object *evas_object_above_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
3590 3664
3591/** 3665/**
3592 * Get the Evas object stacked right below @p obj 3666 * Get the Evas object stacked right below @p obj
@@ -3602,7 +3676,7 @@ EAPI Evas_Object *evas_object_above_get (const Evas_Object *obj
3602 * @see evas_object_layer_set() 3676 * @see evas_object_layer_set()
3603 * @see evas_object_below_get() 3677 * @see evas_object_below_get()
3604 */ 3678 */
3605EAPI Evas_Object *evas_object_below_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 3679EAPI Evas_Object *evas_object_below_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
3606 3680
3607/** 3681/**
3608 * @} 3682 * @}
@@ -3946,7 +4020,7 @@ EAPI void evas_object_pass_events_set (Evas_Object *obj, Ein
3946 * @see evas_object_propagate_events_get() 4020 * @see evas_object_propagate_events_get()
3947 * @see evas_object_freeze_events_get() 4021 * @see evas_object_freeze_events_get()
3948 */ 4022 */
3949EAPI Eina_Bool evas_object_pass_events_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 4023EAPI Eina_Bool evas_object_pass_events_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
3950 4024
3951/** 4025/**
3952 * Set whether an Evas object is to repeat events. 4026 * Set whether an Evas object is to repeat events.
@@ -3988,7 +4062,7 @@ EAPI void evas_object_repeat_events_set (Evas_Object *obj, Ein
3988 * @see evas_object_propagate_events_get() 4062 * @see evas_object_propagate_events_get()
3989 * @see evas_object_freeze_events_get() 4063 * @see evas_object_freeze_events_get()
3990 */ 4064 */
3991EAPI Eina_Bool evas_object_repeat_events_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 4065EAPI Eina_Bool evas_object_repeat_events_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
3992 4066
3993/** 4067/**
3994 * Set whether events on a smart object's member should get propagated 4068 * Set whether events on a smart object's member should get propagated
@@ -4026,7 +4100,7 @@ EAPI void evas_object_propagate_events_set (Evas_Object *obj, Ein
4026 * @see evas_object_pass_events_get() 4100 * @see evas_object_pass_events_get()
4027 * @see evas_object_freeze_events_get() 4101 * @see evas_object_freeze_events_get()
4028 */ 4102 */
4029EAPI Eina_Bool evas_object_propagate_events_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 4103EAPI Eina_Bool evas_object_propagate_events_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
4030 4104
4031/** 4105/**
4032 * Set whether an Evas object is to freeze (discard) events. 4106 * Set whether an Evas object is to freeze (discard) events.
@@ -4064,7 +4138,7 @@ EAPI void evas_object_freeze_events_set(Evas_Object *obj, Eina_Bool
4064 * @see evas_object_propagate_events_get() 4138 * @see evas_object_propagate_events_get()
4065 * @since 1.1.0 4139 * @since 1.1.0
4066 */ 4140 */
4067EAPI Eina_Bool evas_object_freeze_events_get(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 4141EAPI Eina_Bool evas_object_freeze_events_get(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
4068 4142
4069/** 4143/**
4070 * @} 4144 * @}
@@ -5028,7 +5102,7 @@ EAPI void evas_object_size_hint_min_get (const Evas_Object *obj
5028 * @skip evas_object_size_hint_min_set 5102 * @skip evas_object_size_hint_min_set
5029 * @until return 5103 * @until return
5030 * 5104 *
5031 * In this example the minimum size hints change de behavior of an 5105 * In this example the minimum size hints change the behavior of an
5032 * Evas box when layouting its children. See the full @ref 5106 * Evas box when layouting its children. See the full @ref
5033 * Example_Evas_Size_Hints "example". 5107 * Example_Evas_Size_Hints "example".
5034 * 5108 *
@@ -5072,7 +5146,7 @@ EAPI void evas_object_size_hint_max_get (const Evas_Object *obj
5072 * @skip evas_object_size_hint_max_set 5146 * @skip evas_object_size_hint_max_set
5073 * @until return 5147 * @until return
5074 * 5148 *
5075 * In this example the maximum size hints change de behavior of an 5149 * In this example the maximum size hints change the behavior of an
5076 * Evas box when layouting its children. See the full @ref 5150 * Evas box when layouting its children. See the full @ref
5077 * Example_Evas_Size_Hints "example". 5151 * Example_Evas_Size_Hints "example".
5078 * 5152 *
@@ -5247,7 +5321,7 @@ EAPI void evas_object_size_hint_align_get (const Evas_Object *obj
5247 * @skip evas_object_size_hint_align_set 5321 * @skip evas_object_size_hint_align_set
5248 * @until return 5322 * @until return
5249 * 5323 *
5250 * In this example the alignment hints change de behavior of an Evas 5324 * In this example the alignment hints change the behavior of an Evas
5251 * box when layouting its children. See the full @ref 5325 * box when layouting its children. See the full @ref
5252 * Example_Evas_Size_Hints "example". 5326 * Example_Evas_Size_Hints "example".
5253 * 5327 *
@@ -5306,7 +5380,7 @@ EAPI void evas_object_size_hint_weight_get (const Evas_Object *obj
5306 * @skip evas_object_size_hint_weight_set 5380 * @skip evas_object_size_hint_weight_set
5307 * @until return 5381 * @until return
5308 * 5382 *
5309 * In this example the weight hints change de behavior of an Evas box 5383 * In this example the weight hints change the behavior of an Evas box
5310 * when layouting its children. See the full @ref 5384 * when layouting its children. See the full @ref
5311 * Example_Evas_Size_Hints "example". 5385 * Example_Evas_Size_Hints "example".
5312 * 5386 *
@@ -5342,7 +5416,7 @@ EAPI void evas_object_size_hint_weight_set (Evas_Object *obj, doub
5342 * @skip evas_object_size_hint_padding_set 5416 * @skip evas_object_size_hint_padding_set
5343 * @until return 5417 * @until return
5344 * 5418 *
5345 * In this example the padding hints change de behavior of an Evas box 5419 * In this example the padding hints change the behavior of an Evas box
5346 * when layouting its children. See the full @ref 5420 * when layouting its children. See the full @ref
5347 * Example_Evas_Size_Hints "example". 5421 * Example_Evas_Size_Hints "example".
5348 * 5422 *
@@ -5456,7 +5530,7 @@ EAPI void evas_object_data_set (Evas_Object *ob
5456 * else printf("No data was stored on the object\n"); 5530 * else printf("No data was stored on the object\n");
5457 * @endcode 5531 * @endcode
5458 */ 5532 */
5459EAPI void *evas_object_data_get (const Evas_Object *obj, const char *key) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1, 2) EINA_PURE; 5533EAPI void *evas_object_data_get (const Evas_Object *obj, const char *key) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1, 2);
5460 5534
5461/** 5535/**
5462 * Delete an attached data pointer from an object. 5536 * Delete an attached data pointer from an object.
@@ -5510,7 +5584,7 @@ EAPI void evas_object_pointer_mode_set (Evas_Object *ob
5510 * @return pointer behavior. 5584 * @return pointer behavior.
5511 * @ingroup Evas_Object_Group_Extras 5585 * @ingroup Evas_Object_Group_Extras
5512 */ 5586 */
5513EAPI Evas_Object_Pointer_Mode evas_object_pointer_mode_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 5587EAPI Evas_Object_Pointer_Mode evas_object_pointer_mode_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
5514 5588
5515 5589
5516/** 5590/**
@@ -5528,7 +5602,7 @@ EAPI void evas_object_anti_alias_set (Evas_Object *ob
5528 * @return @c 1 if the object is to be anti_aliased. @c 0 otherwise. 5602 * @return @c 1 if the object is to be anti_aliased. @c 0 otherwise.
5529 * @ingroup Evas_Object_Group_Extras 5603 * @ingroup Evas_Object_Group_Extras
5530 */ 5604 */
5531EAPI Eina_Bool evas_object_anti_alias_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 5605EAPI Eina_Bool evas_object_anti_alias_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
5532 5606
5533 5607
5534/** 5608/**
@@ -5562,7 +5636,7 @@ EAPI void evas_object_scale_set (Evas_Object *ob
5562 * 5636 *
5563 * @see evas_object_scale_set() 5637 * @see evas_object_scale_set()
5564 */ 5638 */
5565EAPI double evas_object_scale_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 5639EAPI double evas_object_scale_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
5566 5640
5567 5641
5568/** 5642/**
@@ -5579,7 +5653,7 @@ EAPI void evas_object_render_op_set (Evas_Object *ob
5579 * @return one of the enumerated values in Evas_Render_Op. 5653 * @return one of the enumerated values in Evas_Render_Op.
5580 * @ingroup Evas_Object_Group_Extras 5654 * @ingroup Evas_Object_Group_Extras
5581 */ 5655 */
5582EAPI Evas_Render_Op evas_object_render_op_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 5656EAPI Evas_Render_Op evas_object_render_op_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
5583 5657
5584/** 5658/**
5585 * Set whether to use precise (usually expensive) point collision 5659 * Set whether to use precise (usually expensive) point collision
@@ -5621,7 +5695,7 @@ EAPI Evas_Render_Op evas_object_render_op_get (const Evas_Obje
5621 * 5695 *
5622 * @ingroup Evas_Object_Group_Extras 5696 * @ingroup Evas_Object_Group_Extras
5623 */ 5697 */
5624 EAPI Eina_Bool evas_object_precise_is_inside_get(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 5698 EAPI Eina_Bool evas_object_precise_is_inside_get(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
5625 5699
5626/** 5700/**
5627 * Set a hint flag on the given Evas object that it's used as a "static 5701 * Set a hint flag on the given Evas object that it's used as a "static
@@ -5653,7 +5727,7 @@ EAPI Evas_Render_Op evas_object_render_op_get (const Evas_Obje
5653 * 5727 *
5654 * @ingroup Evas_Object_Group_Extras 5728 * @ingroup Evas_Object_Group_Extras
5655 */ 5729 */
5656 EAPI Eina_Bool evas_object_static_clip_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 5730 EAPI Eina_Bool evas_object_static_clip_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
5657 5731
5658/** 5732/**
5659 * @} 5733 * @}
@@ -5710,7 +5784,7 @@ EAPI Evas_Render_Op evas_object_render_op_get (const Evas_Obje
5710 * 5784 *
5711 * @ingroup Evas_Object_Group_Find 5785 * @ingroup Evas_Object_Group_Find
5712 */ 5786 */
5713EAPI Evas_Object *evas_focus_get (const Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 5787EAPI Evas_Object *evas_focus_get (const Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
5714 5788
5715/** 5789/**
5716 * Retrieves the object on the given evas with the given name. 5790 * Retrieves the object on the given evas with the given name.
@@ -5718,9 +5792,36 @@ EAPI Evas_Object *evas_focus_get (const Evas *e) EINA_WA
5718 * @param name The given name. 5792 * @param name The given name.
5719 * @return If successful, the Evas object with the given name. Otherwise, 5793 * @return If successful, the Evas object with the given name. Otherwise,
5720 * @c NULL. 5794 * @c NULL.
5795 *
5796 * This looks for the evas object given a name by evas_object_name_set(). If
5797 * the name is not unique canvas-wide, then which one of the many objects
5798 * with that name is returned is undefined, so only use this if you can ensure
5799 * the object name is unique.
5800 *
5801 * @ingroup Evas_Object_Group_Find
5802 */
5803EAPI Evas_Object *evas_object_name_find (const Evas *e, const char *name) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
5804
5805/**
5806 * Retrieves the object from children of the given object with the given name.
5807 * @param obj The parent (smart) object whose children to search.
5808 * @param name The given name.
5809 * @param recurse Set to the number of child levels to recurse (0 == don't recurse, 1 == only look at the children of @p obj or their immediate children, but no further etc.).
5810 * @return If successful, the Evas object with the given name. Otherwise,
5811 * @c NULL.
5812 *
5813 * This looks for the evas object given a name by evas_object_name_set(), but
5814 * it ONLY looks at the children of the object *p obj, and will only recurse
5815 * into those children if @p recurse is greater than 0. If the name is not
5816 * unique within immediate children (or the whole child tree) then it is not
5817 * defined which child object will be returned. If @p recurse is set to -1 then
5818 * it will recurse without limit.
5819 *
5820 * @since 1.2
5821 *
5721 * @ingroup Evas_Object_Group_Find 5822 * @ingroup Evas_Object_Group_Find
5722 */ 5823 */
5723EAPI Evas_Object *evas_object_name_find (const Evas *e, const char *name) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 5824EAPI Evas_Object *evas_object_name_child_find (const Evas_Object *obj, const char *name, int recurse) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
5724 5825
5725/** 5826/**
5726 * Retrieve the Evas object stacked at the top of a given position in 5827 * Retrieve the Evas object stacked at the top of a given position in
@@ -5745,7 +5846,7 @@ EAPI Evas_Object *evas_object_name_find (const Evas *e, const c
5745 * objects, acting only on the ones at the "top level", with regard to 5846 * objects, acting only on the ones at the "top level", with regard to
5746 * object parenting. 5847 * object parenting.
5747 */ 5848 */
5748EAPI Evas_Object *evas_object_top_at_xy_get (const Evas *e, Evas_Coord x, Evas_Coord y, Eina_Bool include_pass_events_objects, Eina_Bool include_hidden_objects) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 5849EAPI Evas_Object *evas_object_top_at_xy_get (const Evas *e, Evas_Coord x, Evas_Coord y, Eina_Bool include_pass_events_objects, Eina_Bool include_hidden_objects) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
5749 5850
5750/** 5851/**
5751 * Retrieve the Evas object stacked at the top at the position of the 5852 * Retrieve the Evas object stacked at the top at the position of the
@@ -5763,7 +5864,7 @@ EAPI Evas_Object *evas_object_top_at_xy_get (const Evas *e, Evas_Co
5763 * objects, acting only on the ones at the "top level", with regard to 5864 * objects, acting only on the ones at the "top level", with regard to
5764 * object parenting. 5865 * object parenting.
5765 */ 5866 */
5766EAPI Evas_Object *evas_object_top_at_pointer_get (const Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 5867EAPI Evas_Object *evas_object_top_at_pointer_get (const Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
5767 5868
5768/** 5869/**
5769 * Retrieve the Evas object stacked at the top of a given rectangular 5870 * Retrieve the Evas object stacked at the top of a given rectangular
@@ -5793,7 +5894,7 @@ EAPI Evas_Object *evas_object_top_at_pointer_get (const Evas *e) EINA_WA
5793 * objects, acting only on the ones at the "top level", with regard to 5894 * objects, acting only on the ones at the "top level", with regard to
5794 * object parenting. 5895 * object parenting.
5795 */ 5896 */
5796EAPI Evas_Object *evas_object_top_in_rectangle_get (const Evas *e, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h, Eina_Bool include_pass_events_objects, Eina_Bool include_hidden_objects) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 5897EAPI Evas_Object *evas_object_top_in_rectangle_get (const Evas *e, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h, Eina_Bool include_pass_events_objects, Eina_Bool include_hidden_objects) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
5797 5898
5798/** 5899/**
5799 * Retrieve a list of Evas objects lying over a given position in 5900 * Retrieve a list of Evas objects lying over a given position in
@@ -5818,8 +5919,8 @@ EAPI Evas_Object *evas_object_top_in_rectangle_get (const Evas *e, Evas_Co
5818 * objects, acting only on the ones at the "top level", with regard to 5919 * objects, acting only on the ones at the "top level", with regard to
5819 * object parenting. 5920 * object parenting.
5820 */ 5921 */
5821EAPI Eina_List *evas_objects_at_xy_get (const Evas *e, Evas_Coord x, Evas_Coord y, Eina_Bool include_pass_events_objects, Eina_Bool include_hidden_objects) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 5922EAPI Eina_List *evas_objects_at_xy_get (const Evas *e, Evas_Coord x, Evas_Coord y, Eina_Bool include_pass_events_objects, Eina_Bool include_hidden_objects) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
5822 EAPI Eina_List *evas_objects_in_rectangle_get (const Evas *e, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h, Eina_Bool include_pass_events_objects, Eina_Bool include_hidden_objects) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 5923 EAPI Eina_List *evas_objects_in_rectangle_get (const Evas *e, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h, Eina_Bool include_pass_events_objects, Eina_Bool include_hidden_objects) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
5823 5924
5824/** 5925/**
5825 * Get the lowest (stacked) Evas object on the canvas @p 5926 * Get the lowest (stacked) Evas object on the canvas @p
@@ -5840,7 +5941,7 @@ EAPI Eina_List *evas_objects_at_xy_get (const Evas *e, Evas_Co
5840 * objects, acting only on the ones at the "top level", with regard to 5941 * objects, acting only on the ones at the "top level", with regard to
5841 * object parenting. 5942 * object parenting.
5842 */ 5943 */
5843EAPI Evas_Object *evas_object_bottom_get (const Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 5944EAPI Evas_Object *evas_object_bottom_get (const Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
5844 5945
5845/** 5946/**
5846 * Get the highest (stacked) Evas object on the canvas @p 5947 * Get the highest (stacked) Evas object on the canvas @p
@@ -5862,7 +5963,7 @@ EAPI Evas_Object *evas_object_bottom_get (const Evas *e) EINA_WA
5862 * objects, acting only on the ones at the "top level", with regard to 5963 * objects, acting only on the ones at the "top level", with regard to
5863 * object parenting. 5964 * object parenting.
5864 */ 5965 */
5865EAPI Evas_Object *evas_object_top_get (const Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 5966EAPI Evas_Object *evas_object_top_get (const Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
5866 5967
5867/** 5968/**
5868 * @} 5969 * @}
@@ -6502,7 +6603,7 @@ EAPI void evas_object_image_border_center_fill_set (Evas_Obj
6502 * 6603 *
6503 * See @ref evas_object_image_fill_set() for more details. 6604 * See @ref evas_object_image_fill_set() for more details.
6504 */ 6605 */
6505EAPI Evas_Border_Fill_Mode evas_object_image_border_center_fill_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 6606EAPI Evas_Border_Fill_Mode evas_object_image_border_center_fill_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
6506 6607
6507/** 6608/**
6508 * Set whether the image object's fill property should track the 6609 * Set whether the image object's fill property should track the
@@ -6532,7 +6633,7 @@ EAPI void evas_object_image_filled_set (Evas_Obj
6532 * 6633 *
6533 * @see evas_object_image_filled_set() for more information 6634 * @see evas_object_image_filled_set() for more information
6534 */ 6635 */
6535EAPI Eina_Bool evas_object_image_filled_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 6636EAPI Eina_Bool evas_object_image_filled_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
6536 6637
6537/** 6638/**
6538 * Sets the scaling factor (multiplier) for the borders of an image 6639 * Sets the scaling factor (multiplier) for the borders of an image
@@ -6633,7 +6734,7 @@ EAPI void evas_object_image_fill_spread_set (Evas_Obj
6633 * @param obj The given evas image object. 6734 * @param obj The given evas image object.
6634 * @return The current spread mode of the image object. 6735 * @return The current spread mode of the image object.
6635 */ 6736 */
6636EAPI Evas_Fill_Spread evas_object_image_fill_spread_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 6737EAPI Evas_Fill_Spread evas_object_image_fill_spread_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
6637 6738
6638/** 6739/**
6639 * Sets the size of the given image object. 6740 * Sets the size of the given image object.
@@ -6670,7 +6771,7 @@ EAPI void evas_object_image_size_get (const Ev
6670 * The row stride is the number of bytes between the start of a row 6771 * The row stride is the number of bytes between the start of a row
6671 * and the start of the next row for image data. 6772 * and the start of the next row for image data.
6672 */ 6773 */
6673EAPI int evas_object_image_stride_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 6774EAPI int evas_object_image_stride_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
6674 6775
6675/** 6776/**
6676 * Retrieves a number representing any error that occurred during the 6777 * Retrieves a number representing any error that occurred during the
@@ -6681,7 +6782,7 @@ EAPI int evas_object_image_stride_get (const Ev
6681 * one of the #Evas_Load_Error values. #EVAS_LOAD_ERROR_NONE 6782 * one of the #Evas_Load_Error values. #EVAS_LOAD_ERROR_NONE
6682 * is returned if there was no error. 6783 * is returned if there was no error.
6683 */ 6784 */
6684EAPI Evas_Load_Error evas_object_image_load_error_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 6785EAPI Evas_Load_Error evas_object_image_load_error_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
6685 6786
6686/** 6787/**
6687 * Sets the raw image data of the given image object. 6788 * Sets the raw image data of the given image object.
@@ -6730,7 +6831,7 @@ EAPI void evas_object_image_data_set (Evas_Obj
6730 * 6831 *
6731 * @see evas_object_image_data_set() 6832 * @see evas_object_image_data_set()
6732 */ 6833 */
6733EAPI void *evas_object_image_data_get (const Evas_Object *obj, Eina_Bool for_writing) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 6834EAPI void *evas_object_image_data_get (const Evas_Object *obj, Eina_Bool for_writing) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
6734 6835
6735/** 6836/**
6736 * Converts the raw image data of the given image object to the 6837 * Converts the raw image data of the given image object to the
@@ -6748,7 +6849,7 @@ EAPI void *evas_object_image_data_get (const Ev
6748 * @param to_cspace The colorspace to which the image raw data will be converted. 6849 * @param to_cspace The colorspace to which the image raw data will be converted.
6749 * @return data A newly allocated data in the format specified by to_cspace. 6850 * @return data A newly allocated data in the format specified by to_cspace.
6750 */ 6851 */
6751EAPI void *evas_object_image_data_convert (Evas_Object *obj, Evas_Colorspace to_cspace) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 6852EAPI void *evas_object_image_data_convert (Evas_Object *obj, Evas_Colorspace to_cspace) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
6752 6853
6753/** 6854/**
6754 * Replaces the raw image data of the given image object. 6855 * Replaces the raw image data of the given image object.
@@ -6819,7 +6920,7 @@ EAPI void evas_object_image_alpha_set (Evas_Obj
6819 * 6920 *
6820 * See @ref evas_object_image_alpha_set() for more details. 6921 * See @ref evas_object_image_alpha_set() for more details.
6821 */ 6922 */
6822EAPI Eina_Bool evas_object_image_alpha_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 6923EAPI Eina_Bool evas_object_image_alpha_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
6823 6924
6824/** 6925/**
6825 * Sets whether to use high-quality image scaling algorithm on the 6926 * Sets whether to use high-quality image scaling algorithm on the
@@ -6849,7 +6950,7 @@ EAPI void evas_object_image_smooth_scale_set (Evas_Obj
6849 * 6950 *
6850 * See @ref evas_object_image_smooth_scale_set() for more details. 6951 * See @ref evas_object_image_smooth_scale_set() for more details.
6851 */ 6952 */
6852EAPI Eina_Bool evas_object_image_smooth_scale_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 6953EAPI Eina_Bool evas_object_image_smooth_scale_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
6853 6954
6854/** 6955/**
6855 * Preload an image object's image data in the background 6956 * Preload an image object's image data in the background
@@ -6947,7 +7048,7 @@ EAPI void evas_object_image_pixels_dirty_set (Evas_Obj
6947 * @param obj The given image object. 7048 * @param obj The given image object.
6948 * @return Whether the image is dirty. 7049 * @return Whether the image is dirty.
6949 */ 7050 */
6950EAPI Eina_Bool evas_object_image_pixels_dirty_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 7051EAPI Eina_Bool evas_object_image_pixels_dirty_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
6951 7052
6952/** 7053/**
6953 * Set the DPI resolution of an image object's source image. 7054 * Set the DPI resolution of an image object's source image.
@@ -6972,7 +7073,7 @@ EAPI void evas_object_image_load_dpi_set (Evas_Obj
6972 * 7073 *
6973 * @see evas_object_image_load_dpi_set() for more details 7074 * @see evas_object_image_load_dpi_set() for more details
6974 */ 7075 */
6975EAPI double evas_object_image_load_dpi_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 7076EAPI double evas_object_image_load_dpi_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
6976 7077
6977/** 7078/**
6978 * Set the size of a given image object's source image, when loading 7079 * Set the size of a given image object's source image, when loading
@@ -7026,7 +7127,7 @@ EAPI void evas_object_image_load_scale_down_set (Evas_Obj
7026 * 7127 *
7027 * @see evas_object_image_load_scale_down_set() for more details 7128 * @see evas_object_image_load_scale_down_set() for more details
7028 */ 7129 */
7029EAPI int evas_object_image_load_scale_down_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 7130EAPI int evas_object_image_load_scale_down_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
7030 7131
7031/** 7132/**
7032 * Inform a given image object to load a selective region of its 7133 * Inform a given image object to load a selective region of its
@@ -7103,7 +7204,18 @@ EAPI void evas_object_image_colorspace_set (Evas_Obj
7103 * This function returns the colorspace of given canvas image. 7204 * This function returns the colorspace of given canvas image.
7104 * 7205 *
7105 */ 7206 */
7106EAPI Evas_Colorspace evas_object_image_colorspace_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 7207EAPI Evas_Colorspace evas_object_image_colorspace_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
7208
7209/**
7210 * Get the support state of a given image
7211 *
7212 * @param obj The given image object pointer
7213 * @return The region support state
7214 * @since 1.2.0
7215 *
7216 * This function returns the state of the region support of given image
7217 */
7218EAPI Eina_Bool evas_object_image_region_support_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
7107 7219
7108/** 7220/**
7109 * Set the native surface of a given image of the canvas 7221 * Set the native surface of a given image of the canvas
@@ -7125,7 +7237,7 @@ EAPI void evas_object_image_native_surface_set (Evas_Obj
7125 * This function returns the native surface of a given canvas image. 7237 * This function returns the native surface of a given canvas image.
7126 * 7238 *
7127 */ 7239 */
7128EAPI Evas_Native_Surface *evas_object_image_native_surface_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 7240EAPI Evas_Native_Surface *evas_object_image_native_surface_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
7129 7241
7130/** 7242/**
7131 * Set the video surface linked to a given image of the canvas 7243 * Set the video surface linked to a given image of the canvas
@@ -7149,7 +7261,7 @@ EAPI void evas_object_image_video_surface_set (Evas_Obj
7149 * This function returns the video surface linked to a given canvas image. 7261 * This function returns the video surface linked to a given canvas image.
7150 * 7262 *
7151 */ 7263 */
7152EAPI const Evas_Video_Surface *evas_object_image_video_surface_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 7264EAPI const Evas_Video_Surface *evas_object_image_video_surface_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
7153 7265
7154/** 7266/**
7155 * Set the scale hint of a given image of the canvas. 7267 * Set the scale hint of a given image of the canvas.
@@ -7178,7 +7290,7 @@ EAPI void evas_object_image_scale_hint_set (Evas_Obj
7178 * 7290 *
7179 * @see evas_object_image_scale_hint_set() for more details. 7291 * @see evas_object_image_scale_hint_set() for more details.
7180 */ 7292 */
7181EAPI Evas_Image_Scale_Hint evas_object_image_scale_hint_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 7293EAPI Evas_Image_Scale_Hint evas_object_image_scale_hint_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
7182 7294
7183/** 7295/**
7184 * Set the content hint setting of a given image object of the canvas. 7296 * Set the content hint setting of a given image object of the canvas.
@@ -7210,7 +7322,7 @@ EAPI void evas_object_image_content_hint_set (Evas_Obj
7210 * 7322 *
7211 * @see evas_object_image_content_hint_set() 7323 * @see evas_object_image_content_hint_set()
7212 */ 7324 */
7213EAPI Evas_Image_Content_Hint evas_object_image_content_hint_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 7325EAPI Evas_Image_Content_Hint evas_object_image_content_hint_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
7214 7326
7215 7327
7216/** 7328/**
@@ -7563,7 +7675,7 @@ EAPI void evas_object_text_font_source_set (Evas_Object *obj, cons
7563 * 7675 *
7564 * @see evas_object_text_font_get() for more details 7676 * @see evas_object_text_font_get() for more details
7565 */ 7677 */
7566EAPI const char *evas_object_text_font_source_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 7678EAPI const char *evas_object_text_font_source_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
7567 7679
7568/** 7680/**
7569 * Set the font family and size on a given text object. 7681 * Set the font family and size on a given text object.
@@ -7620,7 +7732,7 @@ EAPI void evas_object_text_text_set (Evas_Object *obj, cons
7620 * 7732 *
7621 * @see evas_object_text_text_set() 7733 * @see evas_object_text_text_set()
7622 */ 7734 */
7623EAPI const char *evas_object_text_text_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 7735EAPI const char *evas_object_text_text_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
7624 7736
7625/** 7737/**
7626 * @brief Sets the BiDi delimiters used in the textblock. 7738 * @brief Sets the BiDi delimiters used in the textblock.
@@ -7648,13 +7760,13 @@ EAPI void evas_object_text_bidi_delimiters_set(Evas_Object *obj, co
7648 */ 7760 */
7649EAPI const char *evas_object_text_bidi_delimiters_get(const Evas_Object *obj); 7761EAPI const char *evas_object_text_bidi_delimiters_get(const Evas_Object *obj);
7650 7762
7651 EAPI Evas_Coord evas_object_text_ascent_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 7763 EAPI Evas_Coord evas_object_text_ascent_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
7652 EAPI Evas_Coord evas_object_text_descent_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 7764 EAPI Evas_Coord evas_object_text_descent_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
7653 EAPI Evas_Coord evas_object_text_max_ascent_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 7765 EAPI Evas_Coord evas_object_text_max_ascent_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
7654 EAPI Evas_Coord evas_object_text_max_descent_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 7766 EAPI Evas_Coord evas_object_text_max_descent_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
7655 EAPI Evas_Coord evas_object_text_horiz_advance_get(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 7767 EAPI Evas_Coord evas_object_text_horiz_advance_get(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
7656 EAPI Evas_Coord evas_object_text_vert_advance_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 7768 EAPI Evas_Coord evas_object_text_vert_advance_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
7657 EAPI Evas_Coord evas_object_text_inset_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 7769 EAPI Evas_Coord evas_object_text_inset_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
7658 7770
7659/** 7771/**
7660 * Retrieve position and dimension information of a character within a text @c Evas_Object. 7772 * Retrieve position and dimension information of a character within a text @c Evas_Object.
@@ -7692,7 +7804,7 @@ EAPI int evas_object_text_last_up_to_pos (const Evas_Object *obj
7692 * 7804 *
7693 * @see evas_object_text_style_set() for more details. 7805 * @see evas_object_text_style_set() for more details.
7694 */ 7806 */
7695EAPI Evas_Text_Style_Type evas_object_text_style_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 7807EAPI Evas_Text_Style_Type evas_object_text_style_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
7696 7808
7697/** 7809/**
7698 * Sets the style to apply on the given text object. 7810 * Sets the style to apply on the given text object.
@@ -7742,7 +7854,7 @@ EAPI void evas_object_text_style_set (Evas_Object *obj, Evas
7742 * - #EVAS_TEXT_STYLE_SOFT_SHADOW 7854 * - #EVAS_TEXT_STYLE_SOFT_SHADOW
7743 * - #EVAS_TEXT_STYLE_FAR_SOFT_SHADOW 7855 * - #EVAS_TEXT_STYLE_FAR_SOFT_SHADOW
7744 * 7856 *
7745 * One can also change de direction the shadow grows to, with 7857 * One can also change the direction where the shadow grows to, with
7746 * evas_object_text_style_set(). 7858 * evas_object_text_style_set().
7747 * 7859 *
7748 * @see evas_object_text_shadow_color_get() 7860 * @see evas_object_text_shadow_color_get()
@@ -8081,7 +8193,7 @@ EAPI Evas_Object *evas_object_textblock_add(Evas *e) EINA_WARN_U
8081 * @param escape the string to be escaped 8193 * @param escape the string to be escaped
8082 * @return the unescaped version of escape 8194 * @return the unescaped version of escape
8083 */ 8195 */
8084EAPI const char *evas_textblock_escape_string_get(const char *escape) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 8196EAPI const char *evas_textblock_escape_string_get(const char *escape) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
8085 8197
8086/** 8198/**
8087 * Returns the escaped version of the string. 8199 * Returns the escaped version of the string.
@@ -8089,7 +8201,7 @@ EAPI const char *evas_textblock_escape_string_get(const char *e
8089 * @param len_ret the len of the part of the string that was used. 8201 * @param len_ret the len of the part of the string that was used.
8090 * @return the escaped string. 8202 * @return the escaped string.
8091 */ 8203 */
8092EAPI const char *evas_textblock_string_escape_get(const char *string, int *len_ret) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 8204EAPI const char *evas_textblock_string_escape_get(const char *string, int *len_ret) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
8093 8205
8094/** 8206/**
8095 * Return the unescaped version of the string between start and end. 8207 * Return the unescaped version of the string between start and end.
@@ -8098,8 +8210,35 @@ EAPI const char *evas_textblock_string_escape_get(const char *s
8098 * @param escape_end the end of the string. 8210 * @param escape_end the end of the string.
8099 * @return the unescaped version of the range 8211 * @return the unescaped version of the range
8100 */ 8212 */
8101EAPI const char *evas_textblock_escape_string_range_get(const char *escape_start, const char *escape_end) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1, 2) EINA_PURE; 8213EAPI const char *evas_textblock_escape_string_range_get(const char *escape_start, const char *escape_end) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1, 2);
8102 8214
8215/**
8216 * Return the plain version of the markup.
8217 *
8218 * Works as if you set the markup to a textblock and then retrieve the plain
8219 * version of the text. i.e: <br> and <\n> will be replaced with \n, &...; with
8220 * the actual char and etc.
8221 *
8222 * @param obj the textblock object to work with. (if NULL, tries the default)
8223 * @param text the markup text (if NULL, return NULL)
8224 * @return an allocated plain text version of the markup
8225 * @since 1.2.0
8226 */
8227EAPI char *evas_textblock_text_markup_to_utf8(const Evas_Object *obj, const char *text) EINA_WARN_UNUSED_RESULT EINA_MALLOC;
8228
8229/**
8230 * Return the markup version of the plain text.
8231 *
8232 * Replaces \n -> <br/> \t -> <tab/> and etc. Generally needed before you pass
8233 * plain text to be set in a textblock.
8234 *
8235 * @param obj the textblock object to work with (if NULL, it just does the
8236 * default behaviour, i.e with no extra object information).
8237 * @param text the markup text (if NULL, return NULL)
8238 * @return an allocated plain text version of the markup
8239 * @since 1.2.0
8240 */
8241EAPI char *evas_textblock_text_utf8_to_markup(const Evas_Object *obj, const char *text) EINA_WARN_UNUSED_RESULT EINA_MALLOC;
8103 8242
8104/** 8243/**
8105 * Creates a new textblock style. 8244 * Creates a new textblock style.
@@ -8128,7 +8267,7 @@ EAPI void evas_textblock_style_set(Evas_Textblock_Style
8128 * @param ts the style to get it's text. 8267 * @param ts the style to get it's text.
8129 * @return the text of the style or null on error. 8268 * @return the text of the style or null on error.
8130 */ 8269 */
8131EAPI const char *evas_textblock_style_get(const Evas_Textblock_Style *ts) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 8270EAPI const char *evas_textblock_style_get(const Evas_Textblock_Style *ts) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
8132 8271
8133 8272
8134/** 8273/**
@@ -8144,7 +8283,7 @@ EAPI void evas_object_textblock_style_set(Evas_Object *o
8144 * @param obj the object to get the style from. 8283 * @param obj the object to get the style from.
8145 * @return the style of the object. 8284 * @return the style of the object.
8146 */ 8285 */
8147EAPI const Evas_Textblock_Style *evas_object_textblock_style_get(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 8286EAPI const Evas_Textblock_Style *evas_object_textblock_style_get(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
8148 8287
8149/** 8288/**
8150 * @brief Set the "replacement character" to use for the given textblock object. 8289 * @brief Set the "replacement character" to use for the given textblock object.
@@ -8161,7 +8300,7 @@ EAPI void evas_object_textblock_replace_char_set(Evas_Ob
8161 * @param obj The given textblock object 8300 * @param obj The given textblock object
8162 * @return replacement character or @c NULL 8301 * @return replacement character or @c NULL
8163 */ 8302 */
8164EAPI const char *evas_object_textblock_replace_char_get(Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 8303EAPI const char *evas_object_textblock_replace_char_get(Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
8165 8304
8166/** 8305/**
8167 * @brief Sets the vertical alignment of text within the textblock object 8306 * @brief Sets the vertical alignment of text within the textblock object
@@ -8230,7 +8369,7 @@ EAPI void evas_object_textblock_legacy_newline_set(Evas_
8230 * @return EINA_TRUE if in legacy mode, EINA_FALSE otherwise. 8369 * @return EINA_TRUE if in legacy mode, EINA_FALSE otherwise.
8231 * @since 1.1.0 8370 * @since 1.1.0
8232 */ 8371 */
8233EAPI Eina_Bool evas_object_textblock_legacy_newline_get(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 8372EAPI Eina_Bool evas_object_textblock_legacy_newline_get(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
8234 8373
8235 8374
8236/** 8375/**
@@ -8270,7 +8409,7 @@ EAPI const char *evas_object_textblock_text_markup_get(const Ev
8270 * @param obj the object. 8409 * @param obj the object.
8271 * @return the obj's main cursor. 8410 * @return the obj's main cursor.
8272 */ 8411 */
8273EAPI Evas_Textblock_Cursor *evas_object_textblock_cursor_get(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 8412EAPI Evas_Textblock_Cursor *evas_object_textblock_cursor_get(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
8274 8413
8275/** 8414/**
8276 * Create a new cursor, associate it to the obj and init it to point 8415 * Create a new cursor, associate it to the obj and init it to point
@@ -8421,7 +8560,7 @@ EAPI void evas_textblock_cursor_at_format_set(Evas_Textb
8421 * @return #EINA_TRUE if the cursor points to a visible format, #EINA_FALSE otherwise. 8560 * @return #EINA_TRUE if the cursor points to a visible format, #EINA_FALSE otherwise.
8422 * @see evas_textblock_cursor_format_get() 8561 * @see evas_textblock_cursor_format_get()
8423 */ 8562 */
8424EAPI Eina_Bool evas_textblock_cursor_format_is_visible_get(const Evas_Textblock_Cursor *cur) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 8563EAPI Eina_Bool evas_textblock_cursor_format_is_visible_get(const Evas_Textblock_Cursor *cur) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
8425 8564
8426/** 8565/**
8427 * Advances to the next format node 8566 * Advances to the next format node
@@ -8464,6 +8603,24 @@ EAPI Eina_Bool evas_textblock_cursor_char_next(Evas_Textblock
8464EAPI Eina_Bool evas_textblock_cursor_char_prev(Evas_Textblock_Cursor *cur) EINA_ARG_NONNULL(1); 8603EAPI Eina_Bool evas_textblock_cursor_char_prev(Evas_Textblock_Cursor *cur) EINA_ARG_NONNULL(1);
8465 8604
8466/** 8605/**
8606 * Moves the cursor to the start of the word under the cursor.
8607 *
8608 * @param cur the cursor to move.
8609 * @return #EINA_TRUE on success #EINA_FALSE otherwise.
8610 * @since 1.2.0
8611 */
8612EAPI Eina_Bool evas_textblock_cursor_word_start(Evas_Textblock_Cursor *cur) EINA_ARG_NONNULL(1);
8613
8614/**
8615 * Moves the cursor to the end of the word under the cursor.
8616 *
8617 * @param cur the cursor to move.
8618 * @return #EINA_TRUE on success #EINA_FALSE otherwise.
8619 * @since 1.2.0
8620 */
8621EAPI Eina_Bool evas_textblock_cursor_word_end(Evas_Textblock_Cursor *cur) EINA_ARG_NONNULL(1);
8622
8623/**
8467 * Go to the first char in the node the cursor is pointing on. 8624 * Go to the first char in the node the cursor is pointing on.
8468 * 8625 *
8469 * @param cur the cursor to update. 8626 * @param cur the cursor to update.
@@ -8501,7 +8658,7 @@ EAPI void evas_textblock_cursor_line_char_last(Evas_Text
8501 * @param cur the cursor to take the position from. 8658 * @param cur the cursor to take the position from.
8502 * @return the position or -1 on error 8659 * @return the position or -1 on error
8503 */ 8660 */
8504EAPI int evas_textblock_cursor_pos_get(const Evas_Textblock_Cursor *cur) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 8661EAPI int evas_textblock_cursor_pos_get(const Evas_Textblock_Cursor *cur) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
8505 8662
8506/** 8663/**
8507 * Set the cursor pos. 8664 * Set the cursor pos.
@@ -8527,7 +8684,7 @@ EAPI Eina_Bool evas_textblock_cursor_line_set(Evas_Textblock_
8527 * @param cur2 the second cursor. 8684 * @param cur2 the second cursor.
8528 * @return -1 if cur1 < cur2, 0 if cur1 == cur2 and 1 otherwise. 8685 * @return -1 if cur1 < cur2, 0 if cur1 == cur2 and 1 otherwise.
8529 */ 8686 */
8530EAPI int evas_textblock_cursor_compare(const Evas_Textblock_Cursor *cur1, const Evas_Textblock_Cursor *cur2) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1, 2) EINA_PURE; 8687EAPI int evas_textblock_cursor_compare(const Evas_Textblock_Cursor *cur1, const Evas_Textblock_Cursor *cur2) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1, 2);
8531 8688
8532/** 8689/**
8533 * Make cur_dest point to the same place as cur. Does not work if they don't 8690 * Make cur_dest point to the same place as cur. Does not work if they don't
@@ -8630,7 +8787,7 @@ EAPI void evas_textblock_cursor_range_delete(Evas_Textbl
8630 * @param cur the cursor pointing to the paragraph. 8787 * @param cur the cursor pointing to the paragraph.
8631 * @return the text on success, NULL otherwise. 8788 * @return the text on success, NULL otherwise.
8632 */ 8789 */
8633EAPI const char *evas_textblock_cursor_paragraph_text_get(const Evas_Textblock_Cursor *cur) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 8790EAPI const char *evas_textblock_cursor_paragraph_text_get(const Evas_Textblock_Cursor *cur) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
8634 8791
8635/** 8792/**
8636 * Return the length of the paragraph, cheaper the eina_unicode_strlen() 8793 * Return the length of the paragraph, cheaper the eina_unicode_strlen()
@@ -8638,7 +8795,7 @@ EAPI const char *evas_textblock_cursor_paragraph_text_get(const
8638 * @param cur the position of the paragraph. 8795 * @param cur the position of the paragraph.
8639 * @return the length of the paragraph on success, -1 otehrwise. 8796 * @return the length of the paragraph on success, -1 otehrwise.
8640 */ 8797 */
8641EAPI int evas_textblock_cursor_paragraph_text_length_get(const Evas_Textblock_Cursor *cur) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 8798EAPI int evas_textblock_cursor_paragraph_text_length_get(const Evas_Textblock_Cursor *cur) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
8642 8799
8643/** 8800/**
8644 * Return the currently visible range. 8801 * Return the currently visible range.
@@ -8648,7 +8805,7 @@ EAPI int evas_textblock_cursor_paragraph_text_length_ge
8648 * @return EINA_TRUE on success. EINA_FALSE otherwise. 8805 * @return EINA_TRUE on success. EINA_FALSE otherwise.
8649 * @since 1.1.0 8806 * @since 1.1.0
8650 */ 8807 */
8651Eina_Bool evas_textblock_cursor_visible_range_get(Evas_Textblock_Cursor *start, Evas_Textblock_Cursor *end) EINA_ARG_NONNULL(1, 2); 8808EAPI Eina_Bool evas_textblock_cursor_visible_range_get(Evas_Textblock_Cursor *start, Evas_Textblock_Cursor *end) EINA_ARG_NONNULL(1, 2);
8652 8809
8653/** 8810/**
8654 * Return the format nodes in the range between cur1 and cur2. 8811 * Return the format nodes in the range between cur1 and cur2.
@@ -8658,7 +8815,7 @@ Eina_Bool evas_textblock_cursor_visible_range_get(Evas_T
8658 * @return the foramt nodes in the range. You have to free it. 8815 * @return the foramt nodes in the range. You have to free it.
8659 * @since 1.1.0 8816 * @since 1.1.0
8660 */ 8817 */
8661EAPI Eina_List * evas_textblock_cursor_range_formats_get(const Evas_Textblock_Cursor *cur1, const Evas_Textblock_Cursor *cur2) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1, 2) EINA_PURE; 8818EAPI Eina_List * evas_textblock_cursor_range_formats_get(const Evas_Textblock_Cursor *cur1, const Evas_Textblock_Cursor *cur2) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1, 2);
8662 8819
8663/** 8820/**
8664 * Return the text in the range between cur1 and cur2 8821 * Return the text in the range between cur1 and cur2
@@ -8669,13 +8826,15 @@ EAPI Eina_List * evas_textblock_cursor_range_formats_get(const E
8669 * @return the text in the range 8826 * @return the text in the range
8670 * @see elm_entry_markup_to_utf8() 8827 * @see elm_entry_markup_to_utf8()
8671 */ 8828 */
8672EAPI char *evas_textblock_cursor_range_text_get(const Evas_Textblock_Cursor *cur1, const Evas_Textblock_Cursor *cur2, Evas_Textblock_Text_Type format) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1, 2) EINA_PURE; 8829EAPI char *evas_textblock_cursor_range_text_get(const Evas_Textblock_Cursor *cur1, const Evas_Textblock_Cursor *cur2, Evas_Textblock_Text_Type format) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1, 2);
8673 8830
8674/** 8831/**
8675 * Return the content of the cursor. 8832 * Return the content of the cursor.
8676 * 8833 *
8834 * Free the returned string pointer when done (if it is not NULL).
8835 *
8677 * @param cur the cursor 8836 * @param cur the cursor
8678 * @return the text in the range 8837 * @return the text in the range, terminated by a nul byte (may be utf8).
8679 */ 8838 */
8680EAPI char *evas_textblock_cursor_content_get(const Evas_Textblock_Cursor *cur) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_MALLOC; 8839EAPI char *evas_textblock_cursor_content_get(const Evas_Textblock_Cursor *cur) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_MALLOC;
8681 8840
@@ -8766,7 +8925,7 @@ EAPI int evas_textblock_cursor_line_coord_set(Evas_Text
8766 * @param cur2 other side of the range. 8925 * @param cur2 other side of the range.
8767 * @return a list of Rectangles representing the geometry of the range. 8926 * @return a list of Rectangles representing the geometry of the range.
8768 */ 8927 */
8769EAPI Eina_List *evas_textblock_cursor_range_geometry_get(const Evas_Textblock_Cursor *cur1, const Evas_Textblock_Cursor *cur2) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1, 2) EINA_PURE; 8928EAPI Eina_List *evas_textblock_cursor_range_geometry_get(const Evas_Textblock_Cursor *cur1, const Evas_Textblock_Cursor *cur2) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1, 2);
8770 EAPI Eina_Bool evas_textblock_cursor_format_item_geometry_get(const Evas_Textblock_Cursor *cur, Evas_Coord *cx, Evas_Coord *cy, Evas_Coord *cw, Evas_Coord *ch) EINA_ARG_NONNULL(1); 8929 EAPI Eina_Bool evas_textblock_cursor_format_item_geometry_get(const Evas_Textblock_Cursor *cur, Evas_Coord *cx, Evas_Coord *cy, Evas_Coord *cw, Evas_Coord *ch) EINA_ARG_NONNULL(1);
8771 8930
8772 8931
@@ -8776,7 +8935,7 @@ EAPI Eina_List *evas_textblock_cursor_range_geometry_get(const
8776 * @param cur the cursor to check. 8935 * @param cur the cursor to check.
8777 * @return #EINA_TRUE if true, #EINA_FALSE otherwise. 8936 * @return #EINA_TRUE if true, #EINA_FALSE otherwise.
8778 */ 8937 */
8779EAPI Eina_Bool evas_textblock_cursor_eol_get(const Evas_Textblock_Cursor *cur) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 8938EAPI Eina_Bool evas_textblock_cursor_eol_get(const Evas_Textblock_Cursor *cur) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
8780 8939
8781 8940
8782/** 8941/**
@@ -8931,6 +9090,12 @@ EAPI void evas_object_polygon_points_clear (Evas_Object *obj) EINA
8931 * @} 9090 * @}
8932 */ 9091 */
8933 9092
9093/* @since 1.2.0 */
9094EAPI void evas_object_is_frame_object_set(Evas_Object *obj, Eina_Bool is_frame);
9095
9096/* @since 1.2.0 */
9097EAPI Eina_Bool evas_object_is_frame_object_get(Evas_Object *obj);
9098
8934/** 9099/**
8935 * @defgroup Evas_Smart_Group Smart Functions 9100 * @defgroup Evas_Smart_Group Smart Functions
8936 * 9101 *
@@ -9273,7 +9438,7 @@ EAPI Evas_Smart *evas_smart_class_new (const
9273 * @param s a valid #Evas_Smart pointer 9438 * @param s a valid #Evas_Smart pointer
9274 * @return the #Evas_Smart_Class in it 9439 * @return the #Evas_Smart_Class in it
9275 */ 9440 */
9276EAPI const Evas_Smart_Class *evas_smart_class_get (const Evas_Smart *s) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 9441EAPI const Evas_Smart_Class *evas_smart_class_get (const Evas_Smart *s) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
9277 9442
9278 9443
9279/** 9444/**
@@ -9284,7 +9449,7 @@ EAPI const Evas_Smart_Class *evas_smart_class_get (const
9284 * This data pointer is set as the data field in the #Evas_Smart_Class 9449 * This data pointer is set as the data field in the #Evas_Smart_Class
9285 * passed in to evas_smart_class_new(). 9450 * passed in to evas_smart_class_new().
9286 */ 9451 */
9287EAPI void *evas_smart_data_get (const Evas_Smart *s) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 9452EAPI void *evas_smart_data_get (const Evas_Smart *s) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
9288 9453
9289/** 9454/**
9290 * Get the smart callbacks known by this #Evas_Smart handle's smart 9455 * Get the smart callbacks known by this #Evas_Smart handle's smart
@@ -9338,7 +9503,7 @@ EAPI const Evas_Smart_Cb_Description **evas_smart_callbacks_descriptions_get(con
9338 * 9503 *
9339 * @see evas_smart_callbacks_descriptions_get() 9504 * @see evas_smart_callbacks_descriptions_get()
9340 */ 9505 */
9341EAPI const Evas_Smart_Cb_Description *evas_smart_callback_description_find(const Evas_Smart *s, const char *name) EINA_ARG_NONNULL(1, 2) EINA_PURE; 9506EAPI const Evas_Smart_Cb_Description *evas_smart_callback_description_find(const Evas_Smart *s, const char *name) EINA_ARG_NONNULL(1, 2);
9342 9507
9343 9508
9344/** 9509/**
@@ -9507,7 +9672,7 @@ EAPI void evas_object_smart_member_del (Evas_Object *obj) EINA
9507 * @see evas_object_smart_member_add() 9672 * @see evas_object_smart_member_add()
9508 * @see evas_object_smart_member_del() 9673 * @see evas_object_smart_member_del()
9509*/ 9674*/
9510EAPI Eina_List *evas_object_smart_members_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 9675EAPI Eina_List *evas_object_smart_members_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
9511 9676
9512/** 9677/**
9513 * Gets the parent smart object of a given Evas object, if it has one. 9678 * Gets the parent smart object of a given Evas object, if it has one.
@@ -9519,7 +9684,7 @@ EAPI Eina_List *evas_object_smart_members_get (const Evas_Object *obj
9519 * 9684 *
9520 * @ingroup Evas_Smart_Object_Group 9685 * @ingroup Evas_Smart_Object_Group
9521 */ 9686 */
9522EAPI Evas_Object *evas_object_smart_parent_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 9687EAPI Evas_Object *evas_object_smart_parent_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
9523 9688
9524/** 9689/**
9525 * Checks whether a given smart object or any of its smart object 9690 * Checks whether a given smart object or any of its smart object
@@ -9546,7 +9711,7 @@ EAPI Evas_Object *evas_object_smart_parent_get (const Evas_Object *obj
9546 * 9711 *
9547 * @ingroup Evas_Smart_Object_Group 9712 * @ingroup Evas_Smart_Object_Group
9548 */ 9713 */
9549EAPI Eina_Bool evas_object_smart_type_check (const Evas_Object *obj, const char *type) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1, 2) EINA_PURE; 9714EAPI Eina_Bool evas_object_smart_type_check (const Evas_Object *obj, const char *type) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1, 2);
9550 9715
9551/** 9716/**
9552 * Checks whether a given smart object or any of its smart object 9717 * Checks whether a given smart object or any of its smart object
@@ -9561,7 +9726,7 @@ EAPI Eina_Bool evas_object_smart_type_check (const Evas_Object *obj
9561 * 9726 *
9562 * @ingroup Evas_Smart_Object_Group 9727 * @ingroup Evas_Smart_Object_Group
9563 */ 9728 */
9564EAPI Eina_Bool evas_object_smart_type_check_ptr (const Evas_Object *obj, const char *type) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1, 2) EINA_PURE; 9729EAPI Eina_Bool evas_object_smart_type_check_ptr (const Evas_Object *obj, const char *type) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1, 2);
9565 9730
9566/** 9731/**
9567 * Get the #Evas_Smart from which @p obj smart object was created. 9732 * Get the #Evas_Smart from which @p obj smart object was created.
@@ -9571,7 +9736,7 @@ EAPI Eina_Bool evas_object_smart_type_check_ptr (const Evas_Object *obj
9571 * 9736 *
9572 * @ingroup Evas_Smart_Object_Group 9737 * @ingroup Evas_Smart_Object_Group
9573 */ 9738 */
9574EAPI Evas_Smart *evas_object_smart_smart_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 9739EAPI Evas_Smart *evas_object_smart_smart_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
9575 9740
9576/** 9741/**
9577 * Retrieve user data stored on a given smart object. 9742 * Retrieve user data stored on a given smart object.
@@ -9585,7 +9750,7 @@ EAPI Evas_Smart *evas_object_smart_smart_get (const Evas_Object *obj
9585 * 9750 *
9586 * @ingroup Evas_Smart_Object_Group 9751 * @ingroup Evas_Smart_Object_Group
9587 */ 9752 */
9588EAPI void *evas_object_smart_data_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 9753EAPI void *evas_object_smart_data_get (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
9589 9754
9590/** 9755/**
9591 * Store a pointer to user data for a given smart object. 9756 * Store a pointer to user data for a given smart object.
@@ -9683,6 +9848,34 @@ EAPI void evas_object_smart_callback_priority_add(Evas_Object *obj,
9683EAPI void *evas_object_smart_callback_del (Evas_Object *obj, const char *event, Evas_Smart_Cb func) EINA_ARG_NONNULL(1, 2, 3); 9848EAPI void *evas_object_smart_callback_del (Evas_Object *obj, const char *event, Evas_Smart_Cb func) EINA_ARG_NONNULL(1, 2, 3);
9684 9849
9685/** 9850/**
9851 * Delete (unregister) a callback function from the smart event
9852 * specified by @p event on the smart object @p obj.
9853 *
9854 * @param obj a smart object
9855 * @param event the event's name string
9856 * @param func the callback function
9857 * @param data the data pointer that was passed to the callback
9858 * @return the data pointer
9859 *
9860 * This function removes <b>the first</b> added smart callback on the
9861 * object @p obj matching the event name @p event, the registered
9862 * function pointer @p func and the callback data pointer @p data. If
9863 * the removal is successful it will also return the data pointer that
9864 * was passed to evas_object_smart_callback_add() (that will be the same
9865 * as the parameter) when the callback(s) was(were) added to the canvas.
9866 * If not successful @c NULL will be returned. A common use would be to
9867 * remove an exact match of a callback
9868 *
9869 * @see evas_object_smart_callback_add() for more details.
9870 * @since 1.2.0
9871 * @ingroup Evas_Smart_Object_Group
9872 *
9873 * @note To delete all smart event callbacks which match @p type and @p func,
9874 * use evas_object_smart_callback_del().
9875 */
9876EAPI void *evas_object_smart_callback_del_full(Evas_Object *obj, const char *event, Evas_Smart_Cb func, const void *data) EINA_ARG_NONNULL(1, 2, 3);
9877
9878/**
9686 * Call a given smart callback on the smart object @p obj. 9879 * Call a given smart callback on the smart object @p obj.
9687 * 9880 *
9688 * @param obj the smart object 9881 * @param obj the smart object
@@ -9856,7 +10049,7 @@ EAPI void evas_object_smart_need_recalculate_set(Evas_Object *obj,
9856 * 10049 *
9857 * @ingroup Evas_Smart_Object_Group 10050 * @ingroup Evas_Smart_Object_Group
9858 */ 10051 */
9859EAPI Eina_Bool evas_object_smart_need_recalculate_get(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 10052EAPI Eina_Bool evas_object_smart_need_recalculate_get(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
9860 10053
9861/** 10054/**
9862 * Call the @b calculate() smart function immediataly on a given smart 10055 * Call the @b calculate() smart function immediataly on a given smart
@@ -9977,7 +10170,7 @@ EAPI void evas_object_smart_move_children_relative(Evas_Objec
9977 * 10170 *
9978 * @see evas_object_smart_clipped_smart_add() 10171 * @see evas_object_smart_clipped_smart_add()
9979 */ 10172 */
9980EAPI Evas_Object *evas_object_smart_clipped_clipper_get (Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 10173EAPI Evas_Object *evas_object_smart_clipped_clipper_get (Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
9981 10174
9982/** 10175/**
9983 * Set a given smart class' callbacks so it implements the <b>clipped smart 10176 * Set a given smart class' callbacks so it implements the <b>clipped smart
@@ -10885,7 +11078,7 @@ EAPI Eina_List *evas_object_box_children_get
10885 * _Evas_Object_Box_Api::property_name_get smart class function of the 11078 * _Evas_Object_Box_Api::property_name_get smart class function of the
10886 * box, which is originally set to @c NULL. 11079 * box, which is originally set to @c NULL.
10887 */ 11080 */
10888EAPI const char *evas_object_box_option_property_name_get (Evas_Object *o, int property) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 11081EAPI const char *evas_object_box_option_property_name_get (Evas_Object *o, int property) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
10889 11082
10890/** 11083/**
10891 * Get the numerical identifier of the property of the child elements 11084 * Get the numerical identifier of the property of the child elements
@@ -10904,7 +11097,7 @@ EAPI const char *evas_object_box_option_property_name_get
10904 * _Evas_Object_Box_Api::property_id_get smart class function of the 11097 * _Evas_Object_Box_Api::property_id_get smart class function of the
10905 * box, which is originally set to @c NULL. 11098 * box, which is originally set to @c NULL.
10906 */ 11099 */
10907EAPI int evas_object_box_option_property_id_get (Evas_Object *o, const char *name) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1, 2) EINA_PURE; 11100EAPI int evas_object_box_option_property_id_get (Evas_Object *o, const char *name) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1, 2);
10908 11101
10909/** 11102/**
10910 * Set a property value (by its given numerical identifier), on a 11103 * Set a property value (by its given numerical identifier), on a
@@ -11081,7 +11274,7 @@ EAPI void evas_object_table_homogeneous_set (Evas
11081 * 11274 *
11082 * @see evas_object_table_homogeneous_set() 11275 * @see evas_object_table_homogeneous_set()
11083 */ 11276 */
11084EAPI Evas_Object_Table_Homogeneous_Mode evas_object_table_homogeneous_get (const Evas_Object *o) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 11277EAPI Evas_Object_Table_Homogeneous_Mode evas_object_table_homogeneous_get (const Evas_Object *o) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
11085 11278
11086/** 11279/**
11087 * Set padding between cells. 11280 * Set padding between cells.
@@ -11455,7 +11648,7 @@ EAPI Eina_List *evas_object_grid_children_get (const
11455 * @return @c EINA_TRUE if it wants, @c EINA_FALSE otherwise. 11648 * @return @c EINA_TRUE if it wants, @c EINA_FALSE otherwise.
11456 * @ingroup Evas_Cserve 11649 * @ingroup Evas_Cserve
11457 */ 11650 */
11458EAPI Eina_Bool evas_cserve_want_get (void) EINA_WARN_UNUSED_RESULT EINA_PURE; 11651EAPI Eina_Bool evas_cserve_want_get (void) EINA_WARN_UNUSED_RESULT;
11459 11652
11460/** 11653/**
11461 * Retrieves if the system is connected to the server used to share 11654 * Retrieves if the system is connected to the server used to share
@@ -11482,7 +11675,7 @@ EAPI Eina_Bool evas_cserve_stats_get (Evas_Cserve_Stats
11482 * 11675 *
11483 * @param cache A handle to the given images cache. 11676 * @param cache A handle to the given images cache.
11484 */ 11677 */
11485EAPI void evas_cserve_image_cache_contents_clean (Evas_Cserve_Image_Cache *cache) EINA_PURE; 11678EAPI void evas_cserve_image_cache_contents_clean (Evas_Cserve_Image_Cache *cache);
11486 11679
11487/** 11680/**
11488 * Retrieves the current configuration of the Evas image caching 11681 * Retrieves the current configuration of the Evas image caching
@@ -11501,7 +11694,7 @@ EAPI void evas_cserve_image_cache_contents_clean (Evas_Cserve_Image
11501 * 11694 *
11502 * @ingroup Evas_Cserve 11695 * @ingroup Evas_Cserve
11503 */ 11696 */
11504EAPI Eina_Bool evas_cserve_config_get (Evas_Cserve_Config *config) EINA_WARN_UNUSED_RESULT EINA_PURE; 11697EAPI Eina_Bool evas_cserve_config_get (Evas_Cserve_Config *config) EINA_WARN_UNUSED_RESULT;
11505 11698
11506/** 11699/**
11507 * Changes the configurations of the Evas image caching server. 11700 * Changes the configurations of the Evas image caching server.
@@ -11515,7 +11708,7 @@ EAPI Eina_Bool evas_cserve_config_get (Evas_Cserve_Confi
11515 * 11708 *
11516 * @ingroup Evas_Cserve 11709 * @ingroup Evas_Cserve
11517 */ 11710 */
11518EAPI Eina_Bool evas_cserve_config_set (const Evas_Cserve_Config *config) EINA_WARN_UNUSED_RESULT EINA_PURE; 11711EAPI Eina_Bool evas_cserve_config_set (const Evas_Cserve_Config *config) EINA_WARN_UNUSED_RESULT;
11519 11712
11520/** 11713/**
11521 * Force the system to disconnect from the bitmap caching server. 11714 * Force the system to disconnect from the bitmap caching server.
@@ -11711,7 +11904,7 @@ EAPI int evas_string_char_prev_get (const char *str, int p
11711 * @return The length in characters (not bytes) 11904 * @return The length in characters (not bytes)
11712 * @ingroup Evas_Utils 11905 * @ingroup Evas_Utils
11713 */ 11906 */
11714EAPI int evas_string_char_len_get (const char *str) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 11907EAPI int evas_string_char_len_get (const char *str) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
11715 11908
11716/** 11909/**
11717 * @defgroup Evas_Keys Key Input Functions 11910 * @defgroup Evas_Keys Key Input Functions
@@ -11769,7 +11962,7 @@ EAPI int evas_string_char_len_get (const char *str) EINA_
11769 * @return An ::Evas_Modifier handle to query Evas' keys subsystem 11962 * @return An ::Evas_Modifier handle to query Evas' keys subsystem
11770 * with evas_key_modifier_is_set(), or @c NULL on error. 11963 * with evas_key_modifier_is_set(), or @c NULL on error.
11771 */ 11964 */
11772EAPI const Evas_Modifier *evas_key_modifier_get (const Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 11965EAPI const Evas_Modifier *evas_key_modifier_get (const Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
11773 11966
11774/** 11967/**
11775 * Returns a handle to the list of lock keys registered in the canvas 11968 * Returns a handle to the list of lock keys registered in the canvas
@@ -11787,7 +11980,7 @@ EAPI const Evas_Modifier *evas_key_modifier_get (const Evas *e) EINA_WA
11787 * @return An ::Evas_Lock handle to query Evas' keys subsystem with 11980 * @return An ::Evas_Lock handle to query Evas' keys subsystem with
11788 * evas_key_lock_is_set(), or @c NULL on error. 11981 * evas_key_lock_is_set(), or @c NULL on error.
11789 */ 11982 */
11790EAPI const Evas_Lock *evas_key_lock_get (const Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; 11983EAPI const Evas_Lock *evas_key_lock_get (const Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
11791 11984
11792 11985
11793/** 11986/**
@@ -11808,7 +12001,7 @@ EAPI const Evas_Lock *evas_key_lock_get (const Evas *e) EINA_WA
11808 * @see evas_key_modifier_on 12001 * @see evas_key_modifier_on
11809 * @see evas_key_modifier_off 12002 * @see evas_key_modifier_off
11810 */ 12003 */
11811EAPI Eina_Bool evas_key_modifier_is_set (const Evas_Modifier *m, const char *keyname) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1, 2) EINA_PURE; 12004EAPI Eina_Bool evas_key_modifier_is_set (const Evas_Modifier *m, const char *keyname) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1, 2);
11812 12005
11813 12006
11814/** 12007/**
@@ -11828,7 +12021,7 @@ EAPI Eina_Bool evas_key_modifier_is_set (const Evas_Modifier *m
11828 * @see evas_key_lock_on 12021 * @see evas_key_lock_on
11829 * @see evas_key_lock_off 12022 * @see evas_key_lock_off
11830 */ 12023 */
11831EAPI Eina_Bool evas_key_lock_is_set (const Evas_Lock *l, const char *keyname) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1, 2) EINA_PURE; 12024EAPI Eina_Bool evas_key_lock_is_set (const Evas_Lock *l, const char *keyname) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1, 2);
11832 12025
11833 12026
11834/** 12027/**
@@ -12012,7 +12205,7 @@ EAPI void evas_key_lock_off (Evas *e, const char *k
12012 * @see evas_object_key_grab 12205 * @see evas_object_key_grab
12013 * @see evas_object_key_ungrab 12206 * @see evas_object_key_ungrab
12014 */ 12207 */
12015EAPI Evas_Modifier_Mask evas_key_modifier_mask_get (const Evas *e, const char *keyname) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1, 2) EINA_PURE; 12208EAPI Evas_Modifier_Mask evas_key_modifier_mask_get (const Evas *e, const char *keyname) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1, 2);
12016 12209
12017 12210
12018/** 12211/**
diff --git a/libraries/evas/src/lib/Evas_GL.h b/libraries/evas/src/lib/Evas_GL.h
index 04bedea..fdfbaad 100644
--- a/libraries/evas/src/lib/Evas_GL.h
+++ b/libraries/evas/src/lib/Evas_GL.h
@@ -28,7 +28,7 @@ typedef enum _Evas_GL_Depth_Bits
28 EVAS_GL_DEPTH_BIT_8 = 1, 28 EVAS_GL_DEPTH_BIT_8 = 1,
29 EVAS_GL_DEPTH_BIT_16 = 2, 29 EVAS_GL_DEPTH_BIT_16 = 2,
30 EVAS_GL_DEPTH_BIT_24 = 3, 30 EVAS_GL_DEPTH_BIT_24 = 3,
31 EVAS_GL_DEPTH_BIT_32 = 4, 31 EVAS_GL_DEPTH_BIT_32 = 4
32} Evas_GL_Depth_Bits; 32} Evas_GL_Depth_Bits;
33 33
34typedef enum _Evas_GL_Stencil_Bits 34typedef enum _Evas_GL_Stencil_Bits
@@ -38,14 +38,21 @@ typedef enum _Evas_GL_Stencil_Bits
38 EVAS_GL_STENCIL_BIT_2 = 2, 38 EVAS_GL_STENCIL_BIT_2 = 2,
39 EVAS_GL_STENCIL_BIT_4 = 3, 39 EVAS_GL_STENCIL_BIT_4 = 3,
40 EVAS_GL_STENCIL_BIT_8 = 4, 40 EVAS_GL_STENCIL_BIT_8 = 4,
41 EVAS_GL_STENCIL_BIT_16 = 5, 41 EVAS_GL_STENCIL_BIT_16 = 5
42} Evas_GL_Stencil_Bits; 42} Evas_GL_Stencil_Bits;
43 43
44typedef enum _Evas_GL_Options_Bits
45{
46 EVAS_GL_OPTIONS_NONE = 0,
47 EVAS_GL_OPTIONS_DIRECT = (1<<0)
48} Evas_GL_Options_Bits;
49
44struct _Evas_GL_Config 50struct _Evas_GL_Config
45{ 51{
46 Evas_GL_Color_Format color_format; 52 Evas_GL_Color_Format color_format;
47 Evas_GL_Depth_Bits depth_bits; 53 Evas_GL_Depth_Bits depth_bits;
48 Evas_GL_Stencil_Bits stencil_bits; 54 Evas_GL_Stencil_Bits stencil_bits;
55 Evas_GL_Options_Bits options_bits;
49}; 56};
50 57
51#define EVAS_GL_EXTENSIONS 1 58#define EVAS_GL_EXTENSIONS 1
@@ -73,6 +80,7 @@ typedef struct _GLData
73{ 80{
74 Evas_GL_Context *ctx; 81 Evas_GL_Context *ctx;
75 Evas_GL_Surface *sfc; 82 Evas_GL_Surface *sfc;
83 Evas_GL_Config *cfg;
76 Evas_GL *evasgl; 84 Evas_GL *evasgl;
77 Evas_GL_API *glapi; 85 Evas_GL_API *glapi;
78 GLuint program; 86 GLuint program;
@@ -93,13 +101,6 @@ static GLuint load_shader (GLData *gld, GLenum type, const char *shader_src)
93int 101int
94main(int argc, char **argv) 102main(int argc, char **argv)
95{ 103{
96 // config for the surface for evas_gl
97 Evas_GL_Config config =
98 {
99 EVAS_GL_RGBA_8888,
100 EVAS_GL_DEPTH_NONE,
101 EVAS_GL_STENCIL_NONE
102 };
103 // a size by default 104 // a size by default
104 int w = 256, h = 256; 105 int w = 256, h = 256;
105 // some variables we will use 106 // some variables we will use
@@ -124,8 +125,16 @@ main(int argc, char **argv)
124 // get the evas gl handle for doing gl things 125 // get the evas gl handle for doing gl things
125 gld->evasgl = evas_gl_new(canvas); 126 gld->evasgl = evas_gl_new(canvas);
126 gld->glapi = evas_gl_api_get(gld->evasgl); 127 gld->glapi = evas_gl_api_get(gld->evasgl);
128
129 // Set a surface config
130 gld->cfg = evas_gl_config_new();
131 gld->cfg->color_format = EVAS_GL_RGBA_8888;
132 //gld->cfg->depth_bits = EVAS_GL_DEPTH_NONE; // Othe config options
133 //gld->cfg->stencil_bits = EVAS_GL_STENCIL_NONE;
134 //gld->cfg->options_bits = EVAS_GL_OPTIONS_NONE;
135
127 // create a surface and context 136 // create a surface and context
128 gld->sfc = evas_gl_surface_create(gld->evasgl, &config, w, h); 137 gld->sfc = evas_gl_surface_create(gld->evasgl, gld->cfg, w, h);
129 gld->ctx = evas_gl_context_create(gld->evasgl, NULL); 138 gld->ctx = evas_gl_context_create(gld->evasgl, NULL);
130 //-// 139 //-//
131 //-//-//-// END GL INIT BLOB 140 //-//-//-// END GL INIT BLOB
@@ -207,6 +216,7 @@ on_del(void *data, Evas *e, Evas_Object *obj, void *event_info)
207 216
208 evas_gl_surface_destroy(gld->evasgl, gld->sfc); 217 evas_gl_surface_destroy(gld->evasgl, gld->sfc);
209 evas_gl_context_destroy(gld->evasgl, gld->ctx); 218 evas_gl_context_destroy(gld->evasgl, gld->ctx);
219 evas_gl_config_free(gld->cfg);
210 evas_gl_free(gld->evasgl); 220 evas_gl_free(gld->evasgl);
211 free(gld); 221 free(gld);
212} 222}
@@ -389,6 +399,22 @@ EAPI Evas_GL *evas_gl_new (Evas *e) EINA_WARN_UNU
389EAPI void evas_gl_free (Evas_GL *evas_gl) EINA_ARG_NONNULL(1); 399EAPI void evas_gl_free (Evas_GL *evas_gl) EINA_ARG_NONNULL(1);
390 400
391/** 401/**
402 * Allocates a new config object for the user to fill out.
403 *
404 * As long as the Evas creates a config object for the user, it takes care
405 * of the backward compatibility issue.
406 */
407EAPI Evas_GL_Config *evas_gl_config_new ();
408
409/**
410 * Frees a config object created from evas_gl_config_new.
411 *
412 * As long as the Evas creates a config object for the user, it takes care
413 * of the backward compatibility issue.
414 */
415EAPI void evas_gl_config_free (Evas_GL_Config *cfg) EINA_ARG_NONNULL(1);
416
417/**
392 * Creates and returns new Evas_GL_Surface object for GL Rendering. 418 * Creates and returns new Evas_GL_Surface object for GL Rendering.
393 * 419 *
394 * @param evas_gl The given Evas_GL object. 420 * @param evas_gl The given Evas_GL object.
diff --git a/libraries/evas/src/lib/Makefile.am b/libraries/evas/src/lib/Makefile.am
index 6b1011a..2a1a92d 100644
--- a/libraries/evas/src/lib/Makefile.am
+++ b/libraries/evas/src/lib/Makefile.am
@@ -100,6 +100,11 @@ SUBDIRS += ../modules/engines/software_x11/
100EVAS_STATIC_MODULE += ../modules/engines/software_x11/libevas_engine_software_x11.la 100EVAS_STATIC_MODULE += ../modules/engines/software_x11/libevas_engine_software_x11.la
101EVAS_STATIC_LIBADD += @evas_engine_software_xlib_libs@ @evas_engine_software_xcb_libs@ 101EVAS_STATIC_LIBADD += @evas_engine_software_xlib_libs@ @evas_engine_software_xcb_libs@
102endif 102endif
103if EVAS_STATIC_BUILD_WAYLAND_SHM
104SUBDIRS += ../modules/engines/wayland_shm/
105EVAS_STATIC_MODULE += ../modules/engines/wayland_shm/libevas_engine_wayland_shm.la
106EVAS_STATIC_LIBADD += @evas_engine_wayland_shm_libs@
107endif
103if EVAS_STATIC_BUILD_BMP 108if EVAS_STATIC_BUILD_BMP
104SUBDIRS += ../modules/loaders/bmp 109SUBDIRS += ../modules/loaders/bmp
105EVAS_STATIC_MODULE += ../modules/loaders/bmp/libevas_loader_bmp.la 110EVAS_STATIC_MODULE += ../modules/loaders/bmp/libevas_loader_bmp.la
@@ -200,9 +205,7 @@ AM_CFLAGS = @WIN32_CFLAGS@
200 205
201lib_LTLIBRARIES = libevas.la 206lib_LTLIBRARIES = libevas.la
202 207
203### Evas_GL disabled for 1.1 208includes_HEADERS = Evas.h Evas_GL.h
204#includes_HEADERS = Evas.h Evas_GL.h
205includes_HEADERS = Evas.h
206includesdir = $(includedir)/evas-@VMAJ@ 209includesdir = $(includedir)/evas-@VMAJ@
207 210
208libevas_la_SOURCES = main.c 211libevas_la_SOURCES = main.c
diff --git a/libraries/evas/src/lib/Makefile.in b/libraries/evas/src/lib/Makefile.in
index 87bbaac..ffe71d1 100644
--- a/libraries/evas/src/lib/Makefile.in
+++ b/libraries/evas/src/lib/Makefile.in
@@ -101,57 +101,60 @@ host_triplet = @host@
101@EVAS_STATIC_BUILD_SOFTWARE_X11_TRUE@am__append_48 = ../modules/engines/software_x11/ 101@EVAS_STATIC_BUILD_SOFTWARE_X11_TRUE@am__append_48 = ../modules/engines/software_x11/
102@EVAS_STATIC_BUILD_SOFTWARE_X11_TRUE@am__append_49 = ../modules/engines/software_x11/libevas_engine_software_x11.la 102@EVAS_STATIC_BUILD_SOFTWARE_X11_TRUE@am__append_49 = ../modules/engines/software_x11/libevas_engine_software_x11.la
103@EVAS_STATIC_BUILD_SOFTWARE_X11_TRUE@am__append_50 = @evas_engine_software_xlib_libs@ @evas_engine_software_xcb_libs@ 103@EVAS_STATIC_BUILD_SOFTWARE_X11_TRUE@am__append_50 = @evas_engine_software_xlib_libs@ @evas_engine_software_xcb_libs@
104@EVAS_STATIC_BUILD_BMP_TRUE@am__append_51 = ../modules/loaders/bmp 104@EVAS_STATIC_BUILD_WAYLAND_SHM_TRUE@am__append_51 = ../modules/engines/wayland_shm/
105@EVAS_STATIC_BUILD_BMP_TRUE@am__append_52 = ../modules/loaders/bmp/libevas_loader_bmp.la 105@EVAS_STATIC_BUILD_WAYLAND_SHM_TRUE@am__append_52 = ../modules/engines/wayland_shm/libevas_engine_wayland_shm.la
106@EVAS_STATIC_BUILD_BMP_TRUE@am__append_53 = @evas_image_loader_bmp_libs@ 106@EVAS_STATIC_BUILD_WAYLAND_SHM_TRUE@am__append_53 = @evas_engine_wayland_shm_libs@
107@EVAS_STATIC_BUILD_EDB_TRUE@am__append_54 = ../modules/savers/edb ../modules/loaders/edb 107@EVAS_STATIC_BUILD_BMP_TRUE@am__append_54 = ../modules/loaders/bmp
108@EVAS_STATIC_BUILD_EDB_TRUE@am__append_55 = ../modules/savers/edb/libevas_saver_edb.la ../modules/loaders/edb/libevas_loader_edb.la 108@EVAS_STATIC_BUILD_BMP_TRUE@am__append_55 = ../modules/loaders/bmp/libevas_loader_bmp.la
109@EVAS_STATIC_BUILD_EDB_TRUE@am__append_56 = @evas_image_loader_edb_libs@ 109@EVAS_STATIC_BUILD_BMP_TRUE@am__append_56 = @evas_image_loader_bmp_libs@
110@EVAS_STATIC_BUILD_EET_TRUE@am__append_57 = ../modules/savers/eet ../modules/loaders/eet 110@EVAS_STATIC_BUILD_EDB_TRUE@am__append_57 = ../modules/savers/edb ../modules/loaders/edb
111@EVAS_STATIC_BUILD_EET_TRUE@am__append_58 = ../modules/savers/eet/libevas_saver_eet.la ../modules/loaders/eet/libevas_loader_eet.la 111@EVAS_STATIC_BUILD_EDB_TRUE@am__append_58 = ../modules/savers/edb/libevas_saver_edb.la ../modules/loaders/edb/libevas_loader_edb.la
112@EVAS_STATIC_BUILD_EET_TRUE@am__append_59 = @evas_image_loader_eet_libs@ 112@EVAS_STATIC_BUILD_EDB_TRUE@am__append_59 = @evas_image_loader_edb_libs@
113@EVAS_STATIC_BUILD_GENERIC_TRUE@am__append_60 = ../modules/loaders/generic 113@EVAS_STATIC_BUILD_EET_TRUE@am__append_60 = ../modules/savers/eet ../modules/loaders/eet
114@EVAS_STATIC_BUILD_GENERIC_TRUE@am__append_61 = ../modules/loaders/generic/libevas_loader_generic.la 114@EVAS_STATIC_BUILD_EET_TRUE@am__append_61 = ../modules/savers/eet/libevas_saver_eet.la ../modules/loaders/eet/libevas_loader_eet.la
115@EVAS_STATIC_BUILD_GENERIC_TRUE@am__append_62 = @evas_image_loader_generic_libs@ 115@EVAS_STATIC_BUILD_EET_TRUE@am__append_62 = @evas_image_loader_eet_libs@
116@EVAS_STATIC_BUILD_GIF_TRUE@am__append_63 = ../modules/loaders/gif 116@EVAS_STATIC_BUILD_GENERIC_TRUE@am__append_63 = ../modules/loaders/generic
117@EVAS_STATIC_BUILD_GIF_TRUE@am__append_64 = ../modules/loaders/gif/libevas_loader_gif.la 117@EVAS_STATIC_BUILD_GENERIC_TRUE@am__append_64 = ../modules/loaders/generic/libevas_loader_generic.la
118@EVAS_STATIC_BUILD_GIF_TRUE@am__append_65 = @evas_image_loader_gif_libs@ 118@EVAS_STATIC_BUILD_GENERIC_TRUE@am__append_65 = @evas_image_loader_generic_libs@
119@EVAS_STATIC_BUILD_ICO_TRUE@am__append_66 = ../modules/loaders/ico 119@EVAS_STATIC_BUILD_GIF_TRUE@am__append_66 = ../modules/loaders/gif
120@EVAS_STATIC_BUILD_ICO_TRUE@am__append_67 = ../modules/loaders/ico/libevas_loader_ico.la 120@EVAS_STATIC_BUILD_GIF_TRUE@am__append_67 = ../modules/loaders/gif/libevas_loader_gif.la
121@EVAS_STATIC_BUILD_ICO_TRUE@am__append_68 = @evas_image_loader_ico_libs@ 121@EVAS_STATIC_BUILD_GIF_TRUE@am__append_68 = @evas_image_loader_gif_libs@
122@EVAS_STATIC_BUILD_JPEG_TRUE@am__append_69 = ../modules/loaders/jpeg 122@EVAS_STATIC_BUILD_ICO_TRUE@am__append_69 = ../modules/loaders/ico
123@EVAS_STATIC_BUILD_JPEG_TRUE@am__append_70 = ../modules/loaders/jpeg/libevas_loader_jpeg.la 123@EVAS_STATIC_BUILD_ICO_TRUE@am__append_70 = ../modules/loaders/ico/libevas_loader_ico.la
124@BUILD_SAVER_JPEG_TRUE@@EVAS_STATIC_BUILD_JPEG_TRUE@am__append_71 = ../modules/savers/jpeg 124@EVAS_STATIC_BUILD_ICO_TRUE@am__append_71 = @evas_image_loader_ico_libs@
125@BUILD_SAVER_JPEG_TRUE@@EVAS_STATIC_BUILD_JPEG_TRUE@am__append_72 = ../modules/savers/jpeg/libevas_saver_jpeg.la 125@EVAS_STATIC_BUILD_JPEG_TRUE@am__append_72 = ../modules/loaders/jpeg
126@EVAS_STATIC_BUILD_JPEG_TRUE@am__append_73 = @evas_image_loader_jpeg_libs@ 126@EVAS_STATIC_BUILD_JPEG_TRUE@am__append_73 = ../modules/loaders/jpeg/libevas_loader_jpeg.la
127@EVAS_STATIC_BUILD_PMAPS_TRUE@am__append_74 = ../modules/loaders/pmaps 127@BUILD_SAVER_JPEG_TRUE@@EVAS_STATIC_BUILD_JPEG_TRUE@am__append_74 = ../modules/savers/jpeg
128@EVAS_STATIC_BUILD_PMAPS_TRUE@am__append_75 = ../modules/loaders/pmaps/libevas_loader_pmaps.la 128@BUILD_SAVER_JPEG_TRUE@@EVAS_STATIC_BUILD_JPEG_TRUE@am__append_75 = ../modules/savers/jpeg/libevas_saver_jpeg.la
129@EVAS_STATIC_BUILD_PMAPS_TRUE@am__append_76 = @evas_image_loader_pmaps_libs@ 129@EVAS_STATIC_BUILD_JPEG_TRUE@am__append_76 = @evas_image_loader_jpeg_libs@
130@EVAS_STATIC_BUILD_PNG_TRUE@am__append_77 = ../modules/savers/png ../modules/loaders/png 130@EVAS_STATIC_BUILD_PMAPS_TRUE@am__append_77 = ../modules/loaders/pmaps
131@EVAS_STATIC_BUILD_PNG_TRUE@am__append_78 = ../modules/savers/png/libevas_saver_png.la ../modules/loaders/png/libevas_loader_png.la 131@EVAS_STATIC_BUILD_PMAPS_TRUE@am__append_78 = ../modules/loaders/pmaps/libevas_loader_pmaps.la
132@EVAS_STATIC_BUILD_PNG_TRUE@am__append_79 = @evas_image_loader_png_libs@ 132@EVAS_STATIC_BUILD_PMAPS_TRUE@am__append_79 = @evas_image_loader_pmaps_libs@
133@EVAS_STATIC_BUILD_PSD_TRUE@am__append_80 = ../modules/loaders/psd 133@EVAS_STATIC_BUILD_PNG_TRUE@am__append_80 = ../modules/savers/png ../modules/loaders/png
134@EVAS_STATIC_BUILD_PSD_TRUE@am__append_81 = ../modules/loaders/psd/libevas_loader_psd.la 134@EVAS_STATIC_BUILD_PNG_TRUE@am__append_81 = ../modules/savers/png/libevas_saver_png.la ../modules/loaders/png/libevas_loader_png.la
135@EVAS_STATIC_BUILD_PSD_TRUE@am__append_82 = @evas_image_loader_psd_libs@ 135@EVAS_STATIC_BUILD_PNG_TRUE@am__append_82 = @evas_image_loader_png_libs@
136@EVAS_STATIC_BUILD_SVG_TRUE@am__append_83 = ../modules/loaders/svg 136@EVAS_STATIC_BUILD_PSD_TRUE@am__append_83 = ../modules/loaders/psd
137@EVAS_STATIC_BUILD_SVG_TRUE@am__append_84 = ../modules/loaders/svg/libevas_loader_svg.la 137@EVAS_STATIC_BUILD_PSD_TRUE@am__append_84 = ../modules/loaders/psd/libevas_loader_psd.la
138@EVAS_STATIC_BUILD_SVG_TRUE@am__append_85 = @evas_image_loader_svg_libs@ 138@EVAS_STATIC_BUILD_PSD_TRUE@am__append_85 = @evas_image_loader_psd_libs@
139@EVAS_STATIC_BUILD_TGA_TRUE@am__append_86 = ../modules/loaders/tga 139@EVAS_STATIC_BUILD_SVG_TRUE@am__append_86 = ../modules/loaders/svg
140@EVAS_STATIC_BUILD_TGA_TRUE@am__append_87 = ../modules/loaders/tga/libevas_loader_tga.la 140@EVAS_STATIC_BUILD_SVG_TRUE@am__append_87 = ../modules/loaders/svg/libevas_loader_svg.la
141@EVAS_STATIC_BUILD_TGA_TRUE@am__append_88 = @evas_image_loader_tga_libs@ 141@EVAS_STATIC_BUILD_SVG_TRUE@am__append_88 = @evas_image_loader_svg_libs@
142@EVAS_STATIC_BUILD_TIFF_TRUE@am__append_89 = ../modules/savers/tiff ../modules/loaders/tiff 142@EVAS_STATIC_BUILD_TGA_TRUE@am__append_89 = ../modules/loaders/tga
143@EVAS_STATIC_BUILD_TIFF_TRUE@am__append_90 = ../modules/savers/tiff/libevas_saver_tiff.la ../modules/loaders/tiff/libevas_loader_tiff.la 143@EVAS_STATIC_BUILD_TGA_TRUE@am__append_90 = ../modules/loaders/tga/libevas_loader_tga.la
144@EVAS_STATIC_BUILD_TIFF_TRUE@am__append_91 = @evas_image_loader_tiff_libs@ 144@EVAS_STATIC_BUILD_TGA_TRUE@am__append_91 = @evas_image_loader_tga_libs@
145@EVAS_STATIC_BUILD_WBMP_TRUE@am__append_92 = ../modules/loaders/wbmp 145@EVAS_STATIC_BUILD_TIFF_TRUE@am__append_92 = ../modules/savers/tiff ../modules/loaders/tiff
146@EVAS_STATIC_BUILD_WBMP_TRUE@am__append_93 = ../modules/loaders/wbmp/libevas_loader_wbmp.la 146@EVAS_STATIC_BUILD_TIFF_TRUE@am__append_93 = ../modules/savers/tiff/libevas_saver_tiff.la ../modules/loaders/tiff/libevas_loader_tiff.la
147@EVAS_STATIC_BUILD_WBMP_TRUE@am__append_94 = @evas_image_loader_wbmp_libs@ 147@EVAS_STATIC_BUILD_TIFF_TRUE@am__append_94 = @evas_image_loader_tiff_libs@
148@EVAS_STATIC_BUILD_XPM_TRUE@am__append_95 = ../modules/loaders/xpm 148@EVAS_STATIC_BUILD_WBMP_TRUE@am__append_95 = ../modules/loaders/wbmp
149@EVAS_STATIC_BUILD_XPM_TRUE@am__append_96 = ../modules/loaders/xpm/libevas_loader_xpm.la 149@EVAS_STATIC_BUILD_WBMP_TRUE@am__append_96 = ../modules/loaders/wbmp/libevas_loader_wbmp.la
150@EVAS_STATIC_BUILD_XPM_TRUE@am__append_97 = @evas_image_loader_xpm_libs@ 150@EVAS_STATIC_BUILD_WBMP_TRUE@am__append_97 = @evas_image_loader_wbmp_libs@
151@BUILD_ENGINE_SOFTWARE_16_TRUE@am__append_98 = engines/common_16/libevas_engine_common_16.la 151@EVAS_STATIC_BUILD_XPM_TRUE@am__append_98 = ../modules/loaders/xpm
152@BUILD_ENGINE_SOFTWARE_16_TRUE@am__append_99 = engines/common_16/libevas_engine_common_16.la 152@EVAS_STATIC_BUILD_XPM_TRUE@am__append_99 = ../modules/loaders/xpm/libevas_loader_xpm.la
153@BUILD_ENGINE_SOFTWARE_8_TRUE@am__append_100 = engines/common_8/libevas_engine_common_8.la 153@EVAS_STATIC_BUILD_XPM_TRUE@am__append_100 = @evas_image_loader_xpm_libs@
154@BUILD_ENGINE_SOFTWARE_8_TRUE@am__append_101 = engines/common_8/libevas_engine_common_8.la 154@BUILD_ENGINE_SOFTWARE_16_TRUE@am__append_101 = engines/common_16/libevas_engine_common_16.la
155@BUILD_ENGINE_SOFTWARE_16_TRUE@am__append_102 = engines/common_16/libevas_engine_common_16.la
156@BUILD_ENGINE_SOFTWARE_8_TRUE@am__append_103 = engines/common_8/libevas_engine_common_8.la
157@BUILD_ENGINE_SOFTWARE_8_TRUE@am__append_104 = engines/common_8/libevas_engine_common_8.la
155subdir = src/lib 158subdir = src/lib
156DIST_COMMON = $(includes_HEADERS) $(srcdir)/Makefile.am \ 159DIST_COMMON = $(includes_HEADERS) $(srcdir)/Makefile.am \
157 $(srcdir)/Makefile.in 160 $(srcdir)/Makefile.in
@@ -213,7 +216,7 @@ am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
213 $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ 216 $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
214 $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ 217 $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
215 $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ 218 $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
216 $(am__DEPENDENCIES_1) 219 $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
217am_libevas_la_OBJECTS = main.lo 220am_libevas_la_OBJECTS = main.lo
218libevas_la_OBJECTS = $(am_libevas_la_OBJECTS) 221libevas_la_OBJECTS = $(am_libevas_la_OBJECTS)
219AM_V_lt = $(am__v_lt_$(V)) 222AM_V_lt = $(am__v_lt_$(V))
@@ -393,8 +396,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
393PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 396PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
394PIXMAN_LIBS = @PIXMAN_LIBS@ 397PIXMAN_LIBS = @PIXMAN_LIBS@
395PKG_CONFIG = @PKG_CONFIG@ 398PKG_CONFIG = @PKG_CONFIG@
396PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
397PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
398PNG_CFLAGS = @PNG_CFLAGS@ 399PNG_CFLAGS = @PNG_CFLAGS@
399PNG_LIBS = @PNG_LIBS@ 400PNG_LIBS = @PNG_LIBS@
400RANLIB = @RANLIB@ 401RANLIB = @RANLIB@
@@ -411,6 +412,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
411VALGRIND_LIBS = @VALGRIND_LIBS@ 412VALGRIND_LIBS = @VALGRIND_LIBS@
412VERSION = @VERSION@ 413VERSION = @VERSION@
413VMAJ = @VMAJ@ 414VMAJ = @VMAJ@
415WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
416WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
414WIN32_CFLAGS = @WIN32_CFLAGS@ 417WIN32_CFLAGS = @WIN32_CFLAGS@
415WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 418WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
416XCB_CFLAGS = @XCB_CFLAGS@ 419XCB_CFLAGS = @XCB_CFLAGS@
@@ -492,6 +495,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
492evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 495evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
493evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 496evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
494evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 497evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
498evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
499evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
500evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
501evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
495evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 502evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
496evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 503evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
497evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 504evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
@@ -576,9 +583,10 @@ SUBDIRS = canvas cache cserve file engines include $(am__append_1) \
576 $(am__append_45) $(am__append_48) $(am__append_51) \ 583 $(am__append_45) $(am__append_48) $(am__append_51) \
577 $(am__append_54) $(am__append_57) $(am__append_60) \ 584 $(am__append_54) $(am__append_57) $(am__append_60) \
578 $(am__append_63) $(am__append_66) $(am__append_69) \ 585 $(am__append_63) $(am__append_66) $(am__append_69) \
579 $(am__append_71) $(am__append_74) $(am__append_77) \ 586 $(am__append_72) $(am__append_74) $(am__append_77) \
580 $(am__append_80) $(am__append_83) $(am__append_86) \ 587 $(am__append_80) $(am__append_83) $(am__append_86) \
581 $(am__append_89) $(am__append_92) $(am__append_95) 588 $(am__append_89) $(am__append_92) $(am__append_95) \
589 $(am__append_98)
582EVAS_STATIC_MODULE = $(am__append_2) $(am__append_4) $(am__append_6) \ 590EVAS_STATIC_MODULE = $(am__append_2) $(am__append_4) $(am__append_6) \
583 $(am__append_9) $(am__append_12) $(am__append_15) \ 591 $(am__append_9) $(am__append_12) $(am__append_15) \
584 $(am__append_18) $(am__append_21) $(am__append_24) \ 592 $(am__append_18) $(am__append_21) $(am__append_24) \
@@ -587,20 +595,20 @@ EVAS_STATIC_MODULE = $(am__append_2) $(am__append_4) $(am__append_6) \
587 $(am__append_43) $(am__append_46) $(am__append_49) \ 595 $(am__append_43) $(am__append_46) $(am__append_49) \
588 $(am__append_52) $(am__append_55) $(am__append_58) \ 596 $(am__append_52) $(am__append_55) $(am__append_58) \
589 $(am__append_61) $(am__append_64) $(am__append_67) \ 597 $(am__append_61) $(am__append_64) $(am__append_67) \
590 $(am__append_70) $(am__append_72) $(am__append_75) \ 598 $(am__append_70) $(am__append_73) $(am__append_75) \
591 $(am__append_78) $(am__append_81) $(am__append_84) \ 599 $(am__append_78) $(am__append_81) $(am__append_84) \
592 $(am__append_87) $(am__append_90) $(am__append_93) \ 600 $(am__append_87) $(am__append_90) $(am__append_93) \
593 $(am__append_96) 601 $(am__append_96) $(am__append_99)
594EVAS_STATIC_LIBADD = $(am__append_7) $(am__append_10) $(am__append_13) \ 602EVAS_STATIC_LIBADD = $(am__append_7) $(am__append_10) $(am__append_13) \
595 $(am__append_16) $(am__append_19) $(am__append_22) \ 603 $(am__append_16) $(am__append_19) $(am__append_22) \
596 $(am__append_27) $(am__append_30) $(am__append_33) \ 604 $(am__append_27) $(am__append_30) $(am__append_33) \
597 $(am__append_38) $(am__append_41) $(am__append_44) \ 605 $(am__append_38) $(am__append_41) $(am__append_44) \
598 $(am__append_47) $(am__append_50) $(am__append_53) \ 606 $(am__append_47) $(am__append_50) $(am__append_53) \
599 $(am__append_56) $(am__append_59) $(am__append_62) \ 607 $(am__append_56) $(am__append_59) $(am__append_62) \
600 $(am__append_65) $(am__append_68) $(am__append_73) \ 608 $(am__append_65) $(am__append_68) $(am__append_71) \
601 $(am__append_76) $(am__append_79) $(am__append_82) \ 609 $(am__append_76) $(am__append_79) $(am__append_82) \
602 $(am__append_85) $(am__append_88) $(am__append_91) \ 610 $(am__append_85) $(am__append_88) $(am__append_91) \
603 $(am__append_94) $(am__append_97) 611 $(am__append_94) $(am__append_97) $(am__append_100)
604AM_CPPFLAGS = \ 612AM_CPPFLAGS = \
605-I. \ 613-I. \
606-I$(top_srcdir)/src/lib \ 614-I$(top_srcdir)/src/lib \
@@ -619,10 +627,7 @@ AM_CPPFLAGS = \
619 627
620AM_CFLAGS = @WIN32_CFLAGS@ 628AM_CFLAGS = @WIN32_CFLAGS@
621lib_LTLIBRARIES = libevas.la 629lib_LTLIBRARIES = libevas.la
622 630includes_HEADERS = Evas.h Evas_GL.h
623### Evas_GL disabled for 1.1
624#includes_HEADERS = Evas.h Evas_GL.h
625includes_HEADERS = Evas.h
626includesdir = $(includedir)/evas-@VMAJ@ 631includesdir = $(includedir)/evas-@VMAJ@
627libevas_la_SOURCES = main.c 632libevas_la_SOURCES = main.c
628@EVAS_CSERVE_TRUE@libevas_cserve_la = cserve/libevas_cserve.la 633@EVAS_CSERVE_TRUE@libevas_cserve_la = cserve/libevas_cserve.la
@@ -631,12 +636,12 @@ libevas_la_LIBADD = canvas/libevas_canvas.la file/libevas_file.la \
631 engines/common/libevas_engine_common.la @FREETYPE_LIBS@ \ 636 engines/common/libevas_engine_common.la @FREETYPE_LIBS@ \
632 @FRIBIDI_LIBS@ @HARFBUZZ_LIBS@ @EET_LIBS@ @FONTCONFIG_LIBS@ \ 637 @FRIBIDI_LIBS@ @HARFBUZZ_LIBS@ @EET_LIBS@ @FONTCONFIG_LIBS@ \
633 @pthread_libs@ @EINA_LIBS@ $(EVAS_STATIC_MODULE) \ 638 @pthread_libs@ @EINA_LIBS@ $(EVAS_STATIC_MODULE) \
634 $(EVAS_STATIC_LIBADD) @PIXMAN_LIBS@ -lm $(am__append_98) \ 639 $(EVAS_STATIC_LIBADD) @PIXMAN_LIBS@ -lm $(am__append_101) \
635 $(am__append_100) 640 $(am__append_103)
636libevas_la_DEPENDENCIES = canvas/libevas_canvas.la \ 641libevas_la_DEPENDENCIES = canvas/libevas_canvas.la \
637 file/libevas_file.la cache/libevas_cache.la \ 642 file/libevas_file.la cache/libevas_cache.la \
638 $(libevas_cserve_la) engines/common/libevas_engine_common.la \ 643 $(libevas_cserve_la) engines/common/libevas_engine_common.la \
639 $(EVAS_STATIC_MODULE) $(am__append_99) $(am__append_101) 644 $(EVAS_STATIC_MODULE) $(am__append_102) $(am__append_104)
640libevas_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@ @release_info@ 645libevas_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@ @release_info@
641 646
642### Evas_GL we are still using it in our code, so just don't install it. 647### Evas_GL we are still using it in our code, so just don't install it.
diff --git a/libraries/evas/src/lib/cache/Makefile.in b/libraries/evas/src/lib/cache/Makefile.in
index b024731..2b50c81 100644
--- a/libraries/evas/src/lib/cache/Makefile.in
+++ b/libraries/evas/src/lib/cache/Makefile.in
@@ -197,8 +197,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
197PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 197PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
198PIXMAN_LIBS = @PIXMAN_LIBS@ 198PIXMAN_LIBS = @PIXMAN_LIBS@
199PKG_CONFIG = @PKG_CONFIG@ 199PKG_CONFIG = @PKG_CONFIG@
200PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
201PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
202PNG_CFLAGS = @PNG_CFLAGS@ 200PNG_CFLAGS = @PNG_CFLAGS@
203PNG_LIBS = @PNG_LIBS@ 201PNG_LIBS = @PNG_LIBS@
204RANLIB = @RANLIB@ 202RANLIB = @RANLIB@
@@ -215,6 +213,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
215VALGRIND_LIBS = @VALGRIND_LIBS@ 213VALGRIND_LIBS = @VALGRIND_LIBS@
216VERSION = @VERSION@ 214VERSION = @VERSION@
217VMAJ = @VMAJ@ 215VMAJ = @VMAJ@
216WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
217WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
218WIN32_CFLAGS = @WIN32_CFLAGS@ 218WIN32_CFLAGS = @WIN32_CFLAGS@
219WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 219WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
220XCB_CFLAGS = @XCB_CFLAGS@ 220XCB_CFLAGS = @XCB_CFLAGS@
@@ -296,6 +296,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
296evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 296evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
297evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 297evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
298evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 298evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
299evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
300evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
301evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
302evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
299evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 303evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
300evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 304evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
301evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 305evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/lib/cache/evas_cache_engine_image.c b/libraries/evas/src/lib/cache/evas_cache_engine_image.c
index 8ae4392..5ec1af2 100644
--- a/libraries/evas/src/lib/cache/evas_cache_engine_image.c
+++ b/libraries/evas/src/lib/cache/evas_cache_engine_image.c
@@ -1,3 +1,7 @@
1#ifdef HAVE_CONFIG_H
2# include <config.h>
3#endif
4
1#include <assert.h> 5#include <assert.h>
2 6
3#include "evas_common.h" 7#include "evas_common.h"
diff --git a/libraries/evas/src/lib/cache/evas_cache_image.c b/libraries/evas/src/lib/cache/evas_cache_image.c
index d52c64e..73e4f8a 100644
--- a/libraries/evas/src/lib/cache/evas_cache_image.c
+++ b/libraries/evas/src/lib/cache/evas_cache_image.c
@@ -918,12 +918,8 @@ evas_cache_image_drop(Image_Entry *im)
918EAPI void 918EAPI void
919evas_cache_image_data_not_needed(Image_Entry *im) 919evas_cache_image_data_not_needed(Image_Entry *im)
920{ 920{
921 Evas_Cache_Image *cache;
922 int references; 921 int references;
923 922
924 /* FIXME: no one uses this api... well evas_cache_engine_parent_not_needed()
925 * does, but nothing uses that! */
926 cache = im->cache;
927#ifdef EVAS_FRAME_QUEUING 923#ifdef EVAS_FRAME_QUEUING
928 LKL(im->lock_references); 924 LKL(im->lock_references);
929#endif 925#endif
@@ -941,11 +937,12 @@ evas_cache_image_dirty(Image_Entry *im, unsigned int x, unsigned int y, unsigned
941{ 937{
942 Image_Entry *im_dirty = im; 938 Image_Entry *im_dirty = im;
943 Evas_Cache_Image *cache; 939 Evas_Cache_Image *cache;
944 int references;
945 940
946 cache = im->cache; 941 cache = im->cache;
947 if (!(im->flags.dirty)) 942 if (!(im->flags.dirty))
948 { 943 {
944#ifndef EVAS_CSERVE
945 int references;
949#ifdef EVAS_FRAME_QUEUING 946#ifdef EVAS_FRAME_QUEUING
950 LKL(im->lock_references); 947 LKL(im->lock_references);
951#endif 948#endif
@@ -953,21 +950,18 @@ evas_cache_image_dirty(Image_Entry *im, unsigned int x, unsigned int y, unsigned
953#ifdef EVAS_FRAME_QUEUING 950#ifdef EVAS_FRAME_QUEUING
954 LKU(im->lock_references); 951 LKU(im->lock_references);
955#endif 952#endif
956#ifndef EVAS_CSERVE
957 // if ref 1 also copy if using shared cache as its read-only 953 // if ref 1 also copy if using shared cache as its read-only
958 if (references == 1) im_dirty = im; 954 if (references == 1) im_dirty = im;
959 else 955 else
960#endif 956#endif
961 { 957 {
962 int error;
963
964 im_dirty = 958 im_dirty =
965 evas_cache_image_copied_data(cache, im->w, im->h, 959 evas_cache_image_copied_data(cache, im->w, im->h,
966 evas_cache_image_pixels(im), 960 evas_cache_image_pixels(im),
967 im->flags.alpha, im->space); 961 im->flags.alpha, im->space);
968 if (!im_dirty) goto on_error; 962 if (!im_dirty) goto on_error;
969 if (cache->func.debug) cache->func.debug("dirty-src", im); 963 if (cache->func.debug) cache->func.debug("dirty-src", im);
970 error = cache->func.dirty(im_dirty, im); 964 cache->func.dirty(im_dirty, im);
971 if (cache->func.debug) cache->func.debug("dirty-out", im_dirty); 965 if (cache->func.debug) cache->func.debug("dirty-out", im_dirty);
972#ifdef EVAS_FRAME_QUEUING 966#ifdef EVAS_FRAME_QUEUING
973 LKL(im_dirty->lock_references); 967 LKL(im_dirty->lock_references);
@@ -1014,15 +1008,13 @@ evas_cache_image_alone(Image_Entry *im)
1014 } 1008 }
1015 else 1009 else
1016 { 1010 {
1017 int error;
1018
1019 im_dirty = evas_cache_image_copied_data(cache, im->w, im->h, 1011 im_dirty = evas_cache_image_copied_data(cache, im->w, im->h,
1020 evas_cache_image_pixels(im), 1012 evas_cache_image_pixels(im),
1021 im->flags.alpha, 1013 im->flags.alpha,
1022 im->space); 1014 im->space);
1023 if (!im_dirty) goto on_error; 1015 if (!im_dirty) goto on_error;
1024 if (cache->func.debug) cache->func.debug("dirty-src", im); 1016 if (cache->func.debug) cache->func.debug("dirty-src", im);
1025 error = cache->func.dirty(im_dirty, im); 1017 cache->func.dirty(im_dirty, im);
1026 if (cache->func.debug) cache->func.debug("dirty-out", im_dirty); 1018 if (cache->func.debug) cache->func.debug("dirty-out", im_dirty);
1027#ifdef EVAS_FRAME_QUEUING 1019#ifdef EVAS_FRAME_QUEUING
1028 LKL(im_dirty->lock_references); 1020 LKL(im_dirty->lock_references);
@@ -1296,6 +1288,7 @@ evas_cache_image_preload_cancel(Image_Entry *im, const void *target)
1296 _evas_cache_image_entry_preload_remove(im, target); 1288 _evas_cache_image_entry_preload_remove(im, target);
1297#else 1289#else
1298 (void)im; 1290 (void)im;
1291 (void)target;
1299#endif 1292#endif
1300} 1293}
1301 1294
diff --git a/libraries/evas/src/lib/cache/evas_preload.c b/libraries/evas/src/lib/cache/evas_preload.c
index 6e0412a..5eebaed 100644
--- a/libraries/evas/src/lib/cache/evas_preload.c
+++ b/libraries/evas/src/lib/cache/evas_preload.c
@@ -225,6 +225,7 @@ evas_preload_thread_run(void (*func_heavy) (void *data),
225 If no thread and as we don't want to break app that rely on this 225 If no thread and as we don't want to break app that rely on this
226 facility, we will lock the interface until we are done. 226 facility, we will lock the interface until we are done.
227 */ 227 */
228 (void)func_cancel;
228 func_heavy((void *)data); 229 func_heavy((void *)data);
229 func_end((void *)data); 230 func_end((void *)data);
230 return (void *)1; 231 return (void *)1;
@@ -253,12 +254,13 @@ evas_preload_thread_cancel(Evas_Preload_Pthread *thread)
253 } 254 }
254 } 255 }
255 LKU(_mutex); 256 LKU(_mutex);
256 257
257 /* Delay the destruction */ 258 /* Delay the destruction */
258 work = (Evas_Preload_Pthread_Worker *)thread; 259 work = (Evas_Preload_Pthread_Worker *)thread;
259 work->cancel = EINA_TRUE; 260 work->cancel = EINA_TRUE;
260 return EINA_FALSE; 261 return EINA_FALSE;
261#else 262#else
263 (void) thread;
262 return EINA_TRUE; 264 return EINA_TRUE;
263#endif 265#endif
264} 266}
diff --git a/libraries/evas/src/lib/canvas/Makefile.in b/libraries/evas/src/lib/canvas/Makefile.in
index 0b4e15d..75da67a 100644
--- a/libraries/evas/src/lib/canvas/Makefile.in
+++ b/libraries/evas/src/lib/canvas/Makefile.in
@@ -211,8 +211,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
211PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 211PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
212PIXMAN_LIBS = @PIXMAN_LIBS@ 212PIXMAN_LIBS = @PIXMAN_LIBS@
213PKG_CONFIG = @PKG_CONFIG@ 213PKG_CONFIG = @PKG_CONFIG@
214PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
215PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
216PNG_CFLAGS = @PNG_CFLAGS@ 214PNG_CFLAGS = @PNG_CFLAGS@
217PNG_LIBS = @PNG_LIBS@ 215PNG_LIBS = @PNG_LIBS@
218RANLIB = @RANLIB@ 216RANLIB = @RANLIB@
@@ -229,6 +227,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
229VALGRIND_LIBS = @VALGRIND_LIBS@ 227VALGRIND_LIBS = @VALGRIND_LIBS@
230VERSION = @VERSION@ 228VERSION = @VERSION@
231VMAJ = @VMAJ@ 229VMAJ = @VMAJ@
230WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
231WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
232WIN32_CFLAGS = @WIN32_CFLAGS@ 232WIN32_CFLAGS = @WIN32_CFLAGS@
233WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 233WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
234XCB_CFLAGS = @XCB_CFLAGS@ 234XCB_CFLAGS = @XCB_CFLAGS@
@@ -310,6 +310,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
310evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 310evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
311evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 311evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
312evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 312evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
313evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
314evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
315evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
316evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
313evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 317evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
314evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 318evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
315evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 319evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/lib/canvas/evas_callbacks.c b/libraries/evas/src/lib/canvas/evas_callbacks.c
index 33b93bc..93f34f2 100644
--- a/libraries/evas/src/lib/canvas/evas_callbacks.c
+++ b/libraries/evas/src/lib/canvas/evas_callbacks.c
@@ -23,7 +23,7 @@ _evas_post_event_callback_call(Evas *e)
23 { 23 {
24 if (!pc->func((void*)pc->data, e)) skip = 1; 24 if (!pc->func((void*)pc->data, e)) skip = 1;
25 } 25 }
26 EVAS_MEMPOOL_FREE(_mp_pc, pc); 26 EVAS_MEMPOOL_FREE(_mp_pc, pc);
27 } 27 }
28 _evas_unwalk(e); 28 _evas_unwalk(e);
29} 29}
@@ -32,10 +32,10 @@ void
32_evas_post_event_callback_free(Evas *e) 32_evas_post_event_callback_free(Evas *e)
33{ 33{
34 Evas_Post_Callback *pc; 34 Evas_Post_Callback *pc;
35 35
36 EINA_LIST_FREE(e->post_events, pc) 36 EINA_LIST_FREE(e->post_events, pc)
37 { 37 {
38 EVAS_MEMPOOL_FREE(_mp_pc, pc); 38 EVAS_MEMPOOL_FREE(_mp_pc, pc);
39 } 39 }
40 _evas_unwalk(e); 40 _evas_unwalk(e);
41} 41}
@@ -48,15 +48,15 @@ evas_event_callback_list_post_free(Eina_Inlist **list)
48 /* MEM OK */ 48 /* MEM OK */
49 for (l = *list; l;) 49 for (l = *list; l;)
50 { 50 {
51 Evas_Func_Node *fn; 51 Evas_Func_Node *fn;
52 52
53 fn = (Evas_Func_Node *)l; 53 fn = (Evas_Func_Node *)l;
54 l = l->next; 54 l = l->next;
55 if (fn->delete_me) 55 if (fn->delete_me)
56 { 56 {
57 *list = eina_inlist_remove(*list, EINA_INLIST_GET(fn)); 57 *list = eina_inlist_remove(*list, EINA_INLIST_GET(fn));
58 EVAS_MEMPOOL_FREE(_mp_fn, fn); 58 EVAS_MEMPOOL_FREE(_mp_fn, fn);
59 } 59 }
60 } 60 }
61} 61}
62 62
@@ -70,7 +70,7 @@ evas_object_event_callback_clear(Evas_Object *obj)
70 if (!obj->callbacks->callbacks) 70 if (!obj->callbacks->callbacks)
71 { 71 {
72 EVAS_MEMPOOL_FREE(_mp_cb, obj->callbacks); 72 EVAS_MEMPOOL_FREE(_mp_cb, obj->callbacks);
73 obj->callbacks = NULL; 73 obj->callbacks = NULL;
74 } 74 }
75} 75}
76 76
@@ -84,7 +84,7 @@ evas_event_callback_clear(Evas *e)
84 if (!e->callbacks->callbacks) 84 if (!e->callbacks->callbacks)
85 { 85 {
86 EVAS_MEMPOOL_FREE(_mp_cb, e->callbacks); 86 EVAS_MEMPOOL_FREE(_mp_cb, e->callbacks);
87 e->callbacks = NULL; 87 e->callbacks = NULL;
88 } 88 }
89} 89}
90 90
@@ -95,7 +95,7 @@ evas_object_event_callback_all_del(Evas_Object *obj)
95 95
96 if (!obj->callbacks) return; 96 if (!obj->callbacks) return;
97 EINA_INLIST_FOREACH(obj->callbacks->callbacks, fn) 97 EINA_INLIST_FOREACH(obj->callbacks->callbacks, fn)
98 fn->delete_me = 1; 98 fn->delete_me = 1;
99} 99}
100 100
101void 101void
@@ -115,7 +115,7 @@ evas_event_callback_all_del(Evas *e)
115 115
116 if (!e->callbacks) return; 116 if (!e->callbacks) return;
117 EINA_INLIST_FOREACH(e->callbacks->callbacks, fn) 117 EINA_INLIST_FOREACH(e->callbacks->callbacks, fn)
118 fn->delete_me = 1; 118 fn->delete_me = 1;
119} 119}
120 120
121void 121void
@@ -136,25 +136,25 @@ evas_event_callback_call(Evas *e, Evas_Callback_Type type, void *event_info)
136 _evas_walk(e); 136 _evas_walk(e);
137 if (e->callbacks) 137 if (e->callbacks)
138 { 138 {
139 l_mod = &e->callbacks->callbacks; 139 l_mod = &e->callbacks->callbacks;
140 e->callbacks->walking_list++; 140 e->callbacks->walking_list++;
141 for (l = *l_mod; l; l = l->next) 141 for (l = *l_mod; l; l = l->next)
142 { 142 {
143 Evas_Func_Node *fn; 143 Evas_Func_Node *fn;
144 144
145 fn = (Evas_Func_Node *)l; 145 fn = (Evas_Func_Node *)l;
146 if ((fn->type == type) && (!fn->delete_me)) 146 if ((fn->type == type) && (!fn->delete_me))
147 { 147 {
148 Evas_Event_Cb func = fn->func; 148 Evas_Event_Cb func = fn->func;
149 if (func) 149 if (func)
150 func(fn->data, e, event_info); 150 func(fn->data, e, event_info);
151 } 151 }
152 if (e->delete_me) break; 152 if (e->delete_me) break;
153 } 153 }
154 e->callbacks->walking_list--; 154 e->callbacks->walking_list--;
155 if (!e->callbacks->walking_list) 155 if (!e->callbacks->walking_list)
156 { 156 {
157 evas_event_callback_clear(e); 157 evas_event_callback_clear(e);
158 l_mod = NULL; 158 l_mod = NULL;
159 } 159 }
160 } 160 }
@@ -162,7 +162,7 @@ evas_event_callback_call(Evas *e, Evas_Callback_Type type, void *event_info)
162} 162}
163 163
164void 164void
165evas_object_event_callback_call(Evas_Object *obj, Evas_Callback_Type type, void *event_info) 165evas_object_event_callback_call(Evas_Object *obj, Evas_Callback_Type type, void *event_info, int event_id)
166{ 166{
167 /* MEM OK */ 167 /* MEM OK */
168 Eina_Inlist **l_mod = NULL, *l; 168 Eina_Inlist **l_mod = NULL, *l;
@@ -170,67 +170,67 @@ evas_object_event_callback_call(Evas_Object *obj, Evas_Callback_Type type, void
170 Evas *e; 170 Evas *e;
171 171
172 if ((obj->delete_me) || (!obj->layer)) return; 172 if ((obj->delete_me) || (!obj->layer)) return;
173 if ((obj->last_event == _evas_event_counter) && 173 if ((obj->last_event == event_id) &&
174 (obj->last_event_type == type)) return; 174 (obj->last_event_type == type)) return;
175 obj->last_event = _evas_event_counter; 175 obj->last_event = event_id;
176 obj->last_event_type = type; 176 obj->last_event_type = type;
177 if (!(e = obj->layer->evas)) return; 177 if (!(e = obj->layer->evas)) return;
178 178
179 _evas_walk(e); 179 _evas_walk(e);
180 if (obj->callbacks) 180 if (obj->callbacks)
181 { 181 {
182 l_mod = &obj->callbacks->callbacks; 182 l_mod = &obj->callbacks->callbacks;
183 switch (type) 183 switch (type)
184 { 184 {
185 case EVAS_CALLBACK_MOUSE_DOWN: 185 case EVAS_CALLBACK_MOUSE_DOWN:
186 { 186 {
187 Evas_Event_Mouse_Down *ev = event_info; 187 Evas_Event_Mouse_Down *ev = event_info;
188 188
189 flags = ev->flags; 189 flags = ev->flags;
190 if (ev->flags & (EVAS_BUTTON_DOUBLE_CLICK | EVAS_BUTTON_TRIPLE_CLICK)) 190 if (ev->flags & (EVAS_BUTTON_DOUBLE_CLICK | EVAS_BUTTON_TRIPLE_CLICK))
191 { 191 {
192 if (obj->last_mouse_down_counter < (e->last_mouse_down_counter - 1)) 192 if (obj->last_mouse_down_counter < (e->last_mouse_down_counter - 1))
193 ev->flags &= ~(EVAS_BUTTON_DOUBLE_CLICK | EVAS_BUTTON_TRIPLE_CLICK); 193 ev->flags &= ~(EVAS_BUTTON_DOUBLE_CLICK | EVAS_BUTTON_TRIPLE_CLICK);
194 } 194 }
195 obj->last_mouse_down_counter = e->last_mouse_down_counter; 195 obj->last_mouse_down_counter = e->last_mouse_down_counter;
196 break; 196 break;
197 } 197 }
198 case EVAS_CALLBACK_MOUSE_UP: 198 case EVAS_CALLBACK_MOUSE_UP:
199 { 199 {
200 Evas_Event_Mouse_Up *ev = event_info; 200 Evas_Event_Mouse_Up *ev = event_info;
201 201
202 flags = ev->flags; 202 flags = ev->flags;
203 if (ev->flags & (EVAS_BUTTON_DOUBLE_CLICK | EVAS_BUTTON_TRIPLE_CLICK)) 203 if (ev->flags & (EVAS_BUTTON_DOUBLE_CLICK | EVAS_BUTTON_TRIPLE_CLICK))
204 { 204 {
205 if (obj->last_mouse_up_counter < (e->last_mouse_up_counter - 1)) 205 if (obj->last_mouse_up_counter < (e->last_mouse_up_counter - 1))
206 ev->flags &= ~(EVAS_BUTTON_DOUBLE_CLICK | EVAS_BUTTON_TRIPLE_CLICK); 206 ev->flags &= ~(EVAS_BUTTON_DOUBLE_CLICK | EVAS_BUTTON_TRIPLE_CLICK);
207 } 207 }
208 obj->last_mouse_up_counter = e->last_mouse_up_counter; 208 obj->last_mouse_up_counter = e->last_mouse_up_counter;
209 break; 209 break;
210 } 210 }
211 default: 211 default:
212 break; 212 break;
213 } 213 }
214 obj->callbacks->walking_list++; 214 obj->callbacks->walking_list++;
215 for (l = *l_mod; l; l = l->next) 215 for (l = *l_mod; l; l = l->next)
216 { 216 {
217 Evas_Func_Node *fn; 217 Evas_Func_Node *fn;
218 218
219 fn = (Evas_Func_Node *)l; 219 fn = (Evas_Func_Node *)l;
220 if ((fn->type == type) && (!fn->delete_me)) 220 if ((fn->type == type) && (!fn->delete_me))
221 { 221 {
222 Evas_Object_Event_Cb func = fn->func; 222 Evas_Object_Event_Cb func = fn->func;
223 if (func) 223 if (func)
224 func(fn->data, obj->layer->evas, obj, event_info); 224 func(fn->data, obj->layer->evas, obj, event_info);
225 } 225 }
226 if (obj->delete_me) break; 226 if (obj->delete_me) break;
227 } 227 }
228 obj->callbacks->walking_list--; 228 obj->callbacks->walking_list--;
229 if (!obj->callbacks->walking_list) 229 if (!obj->callbacks->walking_list)
230 { 230 {
231 evas_object_event_callback_clear(obj); 231 evas_object_event_callback_clear(obj);
232 l_mod = NULL; 232 l_mod = NULL;
233 } 233 }
234 234
235 if (type == EVAS_CALLBACK_MOUSE_DOWN) 235 if (type == EVAS_CALLBACK_MOUSE_DOWN)
236 { 236 {
@@ -246,12 +246,12 @@ evas_object_event_callback_call(Evas_Object *obj, Evas_Callback_Type type, void
246 246
247 if (!((obj->no_propagate) && (l_mod) && (*l_mod))) 247 if (!((obj->no_propagate) && (l_mod) && (*l_mod)))
248 { 248 {
249 if (!obj->no_propagate) 249 if (!obj->no_propagate)
250 { 250 {
251 if ((obj->smart.parent) && (type != EVAS_CALLBACK_FREE) && 251 if ((obj->smart.parent) && (type != EVAS_CALLBACK_FREE) &&
252 (type <= EVAS_CALLBACK_KEY_UP)) 252 (type <= EVAS_CALLBACK_KEY_UP))
253 evas_object_event_callback_call(obj->smart.parent, type, event_info); 253 evas_object_event_callback_call(obj->smart.parent, type, event_info, event_id);
254 } 254 }
255 } 255 }
256 _evas_unwalk(e); 256 _evas_unwalk(e);
257} 257}
@@ -263,16 +263,16 @@ _callback_priority_cmp(const void *_a, const void *_b)
263 a = EINA_INLIST_CONTAINER_GET(_a, Evas_Func_Node); 263 a = EINA_INLIST_CONTAINER_GET(_a, Evas_Func_Node);
264 b = EINA_INLIST_CONTAINER_GET(_b, Evas_Func_Node); 264 b = EINA_INLIST_CONTAINER_GET(_b, Evas_Func_Node);
265 if (a->priority < b->priority) 265 if (a->priority < b->priority)
266 return -1; 266 return -1;
267 else 267 else
268 return 1; 268 return 1;
269} 269}
270 270
271EAPI void 271EAPI void
272evas_object_event_callback_add(Evas_Object *obj, Evas_Callback_Type type, Evas_Object_Event_Cb func, const void *data) 272evas_object_event_callback_add(Evas_Object *obj, Evas_Callback_Type type, Evas_Object_Event_Cb func, const void *data)
273{ 273{
274 evas_object_event_callback_priority_add(obj, type, 274 evas_object_event_callback_priority_add(obj, type,
275 EVAS_CALLBACK_PRIORITY_DEFAULT, func, data); 275 EVAS_CALLBACK_PRIORITY_DEFAULT, func, data);
276} 276}
277 277
278EAPI void 278EAPI void
@@ -294,7 +294,7 @@ evas_object_event_callback_priority_add(Evas_Object *obj, Evas_Callback_Type typ
294 if (!obj->callbacks) return; 294 if (!obj->callbacks) return;
295 EVAS_MEMPOOL_PREP(_mp_cb, obj->callbacks, Evas_Callbacks); 295 EVAS_MEMPOOL_PREP(_mp_cb, obj->callbacks, Evas_Callbacks);
296 } 296 }
297 297
298 EVAS_MEMPOOL_INIT(_mp_fn, "evas_func_node", Evas_Func_Node, 2048, ); 298 EVAS_MEMPOOL_INIT(_mp_fn, "evas_func_node", Evas_Func_Node, 2048, );
299 fn = EVAS_MEMPOOL_ALLOC(_mp_fn, Evas_Func_Node); 299 fn = EVAS_MEMPOOL_ALLOC(_mp_fn, Evas_Func_Node);
300 if (!fn) return; 300 if (!fn) return;
@@ -305,8 +305,8 @@ evas_object_event_callback_priority_add(Evas_Object *obj, Evas_Callback_Type typ
305 fn->priority = priority; 305 fn->priority = priority;
306 306
307 obj->callbacks->callbacks = 307 obj->callbacks->callbacks =
308 eina_inlist_sorted_insert(obj->callbacks->callbacks, EINA_INLIST_GET(fn), 308 eina_inlist_sorted_insert(obj->callbacks->callbacks, EINA_INLIST_GET(fn),
309 _callback_priority_cmp); 309 _callback_priority_cmp);
310} 310}
311 311
312EAPI void * 312EAPI void *
@@ -325,17 +325,17 @@ evas_object_event_callback_del(Evas_Object *obj, Evas_Callback_Type type, Evas_O
325 325
326 EINA_INLIST_FOREACH(obj->callbacks->callbacks, fn) 326 EINA_INLIST_FOREACH(obj->callbacks->callbacks, fn)
327 { 327 {
328 if ((fn->func == func) && (fn->type == type) && (!fn->delete_me)) 328 if ((fn->func == func) && (fn->type == type) && (!fn->delete_me))
329 { 329 {
330 void *tmp; 330 void *tmp;
331 331
332 tmp = fn->data; 332 tmp = fn->data;
333 fn->delete_me = 1; 333 fn->delete_me = 1;
334 obj->callbacks->deletions_waiting = 1; 334 obj->callbacks->deletions_waiting = 1;
335 if (!obj->callbacks->walking_list) 335 if (!obj->callbacks->walking_list)
336 evas_object_event_callback_clear(obj); 336 evas_object_event_callback_clear(obj);
337 return tmp; 337 return tmp;
338 } 338 }
339 } 339 }
340 return NULL; 340 return NULL;
341} 341}
@@ -356,17 +356,17 @@ evas_object_event_callback_del_full(Evas_Object *obj, Evas_Callback_Type type, E
356 356
357 EINA_INLIST_FOREACH(obj->callbacks->callbacks, fn) 357 EINA_INLIST_FOREACH(obj->callbacks->callbacks, fn)
358 { 358 {
359 if ((fn->func == func) && (fn->type == type) && (fn->data == data) && (!fn->delete_me)) 359 if ((fn->func == func) && (fn->type == type) && (fn->data == data) && (!fn->delete_me))
360 { 360 {
361 void *tmp; 361 void *tmp;
362 362
363 tmp = fn->data; 363 tmp = fn->data;
364 fn->delete_me = 1; 364 fn->delete_me = 1;
365 obj->callbacks->deletions_waiting = 1; 365 obj->callbacks->deletions_waiting = 1;
366 if (!obj->callbacks->walking_list) 366 if (!obj->callbacks->walking_list)
367 evas_object_event_callback_clear(obj); 367 evas_object_event_callback_clear(obj);
368 return tmp; 368 return tmp;
369 } 369 }
370 } 370 }
371 return NULL; 371 return NULL;
372} 372}
@@ -375,7 +375,7 @@ EAPI void
375evas_event_callback_add(Evas *e, Evas_Callback_Type type, Evas_Event_Cb func, const void *data) 375evas_event_callback_add(Evas *e, Evas_Callback_Type type, Evas_Event_Cb func, const void *data)
376{ 376{
377 evas_event_callback_priority_add(e, type, EVAS_CALLBACK_PRIORITY_DEFAULT, 377 evas_event_callback_priority_add(e, type, EVAS_CALLBACK_PRIORITY_DEFAULT,
378 func, data); 378 func, data);
379} 379}
380 380
381EAPI void 381EAPI void
@@ -397,7 +397,7 @@ evas_event_callback_priority_add(Evas *e, Evas_Callback_Type type, Evas_Callback
397 if (!e->callbacks) return; 397 if (!e->callbacks) return;
398 EVAS_MEMPOOL_PREP(_mp_cb, e->callbacks, Evas_Callbacks); 398 EVAS_MEMPOOL_PREP(_mp_cb, e->callbacks, Evas_Callbacks);
399 } 399 }
400 400
401 EVAS_MEMPOOL_INIT(_mp_fn, "evas_func_node", Evas_Func_Node, 2048, ); 401 EVAS_MEMPOOL_INIT(_mp_fn, "evas_func_node", Evas_Func_Node, 2048, );
402 fn = EVAS_MEMPOOL_ALLOC(_mp_fn, Evas_Func_Node); 402 fn = EVAS_MEMPOOL_ALLOC(_mp_fn, Evas_Func_Node);
403 if (!fn) return; 403 if (!fn) return;
@@ -408,7 +408,7 @@ evas_event_callback_priority_add(Evas *e, Evas_Callback_Type type, Evas_Callback
408 fn->priority = priority; 408 fn->priority = priority;
409 409
410 e->callbacks->callbacks = eina_inlist_sorted_insert(e->callbacks->callbacks, 410 e->callbacks->callbacks = eina_inlist_sorted_insert(e->callbacks->callbacks,
411 EINA_INLIST_GET(fn), _callback_priority_cmp); 411 EINA_INLIST_GET(fn), _callback_priority_cmp);
412} 412}
413 413
414EAPI void * 414EAPI void *
@@ -427,17 +427,17 @@ evas_event_callback_del(Evas *e, Evas_Callback_Type type, Evas_Event_Cb func)
427 427
428 EINA_INLIST_FOREACH(e->callbacks->callbacks, fn) 428 EINA_INLIST_FOREACH(e->callbacks->callbacks, fn)
429 { 429 {
430 if ((fn->func == func) && (fn->type == type) && (!fn->delete_me)) 430 if ((fn->func == func) && (fn->type == type) && (!fn->delete_me))
431 { 431 {
432 void *data; 432 void *data;
433 433
434 data = fn->data; 434 data = fn->data;
435 fn->delete_me = 1; 435 fn->delete_me = 1;
436 e->callbacks->deletions_waiting = 1; 436 e->callbacks->deletions_waiting = 1;
437 if (!e->callbacks->walking_list) 437 if (!e->callbacks->walking_list)
438 evas_event_callback_clear(e); 438 evas_event_callback_clear(e);
439 return data; 439 return data;
440 } 440 }
441 } 441 }
442 return NULL; 442 return NULL;
443} 443}
@@ -458,17 +458,17 @@ evas_event_callback_del_full(Evas *e, Evas_Callback_Type type, Evas_Event_Cb fun
458 458
459 EINA_INLIST_FOREACH(e->callbacks->callbacks, fn) 459 EINA_INLIST_FOREACH(e->callbacks->callbacks, fn)
460 { 460 {
461 if ((fn->func == func) && (fn->type == type) && (fn->data == data) && (!fn->delete_me)) 461 if ((fn->func == func) && (fn->type == type) && (fn->data == data) && (!fn->delete_me))
462 { 462 {
463 void *tmp; 463 void *tmp;
464 464
465 tmp = fn->data; 465 tmp = fn->data;
466 fn->delete_me = 1; 466 fn->delete_me = 1;
467 e->callbacks->deletions_waiting = 1; 467 e->callbacks->deletions_waiting = 1;
468 if (!e->callbacks->walking_list) 468 if (!e->callbacks->walking_list)
469 evas_event_callback_clear(e); 469 evas_event_callback_clear(e);
470 return tmp; 470 return tmp;
471 } 471 }
472 } 472 }
473 return NULL; 473 return NULL;
474} 474}
@@ -477,17 +477,17 @@ EAPI void
477evas_post_event_callback_push(Evas *e, Evas_Object_Event_Post_Cb func, const void *data) 477evas_post_event_callback_push(Evas *e, Evas_Object_Event_Post_Cb func, const void *data)
478{ 478{
479 Evas_Post_Callback *pc; 479 Evas_Post_Callback *pc;
480 480
481 MAGIC_CHECK(e, Evas, MAGIC_EVAS); 481 MAGIC_CHECK(e, Evas, MAGIC_EVAS);
482 return; 482 return;
483 MAGIC_CHECK_END(); 483 MAGIC_CHECK_END();
484 484
485 EVAS_MEMPOOL_INIT(_mp_pc, "evas_post_callback", Evas_Post_Callback, 64, ); 485 EVAS_MEMPOOL_INIT(_mp_pc, "evas_post_callback", Evas_Post_Callback, 64, );
486 pc = EVAS_MEMPOOL_ALLOC(_mp_pc, Evas_Post_Callback); 486 pc = EVAS_MEMPOOL_ALLOC(_mp_pc, Evas_Post_Callback);
487 if (!pc) return; 487 if (!pc) return;
488 EVAS_MEMPOOL_PREP(_mp_pc, pc, Evas_Post_Callback); 488 EVAS_MEMPOOL_PREP(_mp_pc, pc, Evas_Post_Callback);
489 if (e->delete_me) return; 489 if (e->delete_me) return;
490 490
491 pc->func = func; 491 pc->func = func;
492 pc->data = data; 492 pc->data = data;
493 e->post_events = eina_list_prepend(e->post_events, pc); 493 e->post_events = eina_list_prepend(e->post_events, pc);
@@ -498,11 +498,11 @@ evas_post_event_callback_remove(Evas *e, Evas_Object_Event_Post_Cb func)
498{ 498{
499 Evas_Post_Callback *pc; 499 Evas_Post_Callback *pc;
500 Eina_List *l; 500 Eina_List *l;
501 501
502 MAGIC_CHECK(e, Evas, MAGIC_EVAS); 502 MAGIC_CHECK(e, Evas, MAGIC_EVAS);
503 return; 503 return;
504 MAGIC_CHECK_END(); 504 MAGIC_CHECK_END();
505 505
506 EINA_LIST_FOREACH(e->post_events, l, pc) 506 EINA_LIST_FOREACH(e->post_events, l, pc)
507 { 507 {
508 if (pc->func == func) 508 if (pc->func == func)
@@ -518,11 +518,11 @@ evas_post_event_callback_remove_full(Evas *e, Evas_Object_Event_Post_Cb func, co
518{ 518{
519 Evas_Post_Callback *pc; 519 Evas_Post_Callback *pc;
520 Eina_List *l; 520 Eina_List *l;
521 521
522 MAGIC_CHECK(e, Evas, MAGIC_EVAS); 522 MAGIC_CHECK(e, Evas, MAGIC_EVAS);
523 return; 523 return;
524 MAGIC_CHECK_END(); 524 MAGIC_CHECK_END();
525 525
526 EINA_LIST_FOREACH(e->post_events, l, pc) 526 EINA_LIST_FOREACH(e->post_events, l, pc)
527 { 527 {
528 if ((pc->func == func) && (pc->data == data)) 528 if ((pc->func == func) && (pc->data == data))
diff --git a/libraries/evas/src/lib/canvas/evas_events.c b/libraries/evas/src/lib/canvas/evas_events.c
index 99ecf8c..9b7077e 100644
--- a/libraries/evas/src/lib/canvas/evas_events.c
+++ b/libraries/evas/src/lib/canvas/evas_events.c
@@ -1,6 +1,11 @@
1#include "evas_common.h" 1#include "evas_common.h"
2#include "evas_private.h" 2#include "evas_private.h"
3 3
4static Eina_List *
5_evas_event_object_list_in_get(Evas *e, Eina_List *in,
6 const Eina_Inlist *list, Evas_Object *stop,
7 int x, int y, int *no_rep);
8
4static void 9static void
5_evas_event_havemap_adjust(Evas_Object *obj, Evas_Coord *x, Evas_Coord *y, Eina_Bool mouse_grabbed) 10_evas_event_havemap_adjust(Evas_Object *obj, Evas_Coord *x, Evas_Coord *y, Eina_Bool mouse_grabbed)
6{ 11{
@@ -16,13 +21,17 @@ _evas_event_havemap_adjust(Evas_Object *obj, Evas_Coord *x, Evas_Coord *y, Eina_
16} 21}
17 22
18static Eina_List * 23static Eina_List *
19_evas_event_object_list_in_get(Evas *e, Eina_List *in, 24_evas_event_object_list_raw_in_get(Evas *e, Eina_List *in,
20 const Eina_Inlist *list, Evas_Object *stop, 25 const Eina_Inlist *list, Evas_Object *stop,
21 int x, int y, int *no_rep) 26 int x, int y, int *no_rep)
22{ 27{
23 Evas_Object *obj; 28 Evas_Object *obj;
29 int inside;
30
24 if (!list) return in; 31 if (!list) return in;
25 EINA_INLIST_REVERSE_FOREACH(list, obj) 32 for (obj = _EINA_INLIST_CONTAINER(obj, list);
33 obj;
34 obj = _EINA_INLIST_CONTAINER(obj, EINA_INLIST_GET(obj)->prev))
26 { 35 {
27 if (obj == stop) 36 if (obj == stop)
28 { 37 {
@@ -37,9 +46,9 @@ _evas_event_object_list_in_get(Evas *e, Eina_List *in,
37 if (obj->smart.smart) 46 if (obj->smart.smart)
38 { 47 {
39 int norep = 0; 48 int norep = 0;
40 int inside;
41 49
42 if (((obj->cur.usemap) && (obj->cur.map) && (obj->cur.map->count == 4))) 50 if ((obj->cur.usemap) && (obj->cur.map) &&
51 (obj->cur.map->count == 4))
43 { 52 {
44 inside = evas_object_is_in_output_rect(obj, x, y, 1, 1); 53 inside = evas_object_is_in_output_rect(obj, x, y, 1, 1);
45 if (inside) 54 if (inside)
@@ -57,7 +66,8 @@ _evas_event_object_list_in_get(Evas *e, Eina_List *in,
57 evas_object_smart_members_get_direct(obj), 66 evas_object_smart_members_get_direct(obj),
58 stop, 67 stop,
59 obj->cur.geometry.x + obj->cur.map->mx, 68 obj->cur.geometry.x + obj->cur.map->mx,
60 obj->cur.geometry.y + obj->cur.map->my, &norep); 69 obj->cur.geometry.y + obj->cur.map->my,
70 &norep);
61 } 71 }
62 } 72 }
63 } 73 }
@@ -69,19 +79,24 @@ _evas_event_object_list_in_get(Evas *e, Eina_List *in,
69 } 79 }
70 if (norep) 80 if (norep)
71 { 81 {
72 if (!obj->repeat_events) *no_rep = 1; 82 if (!obj->repeat_events)
73 return in; 83 {
84 *no_rep = 1;
85 return in;
86 }
74 } 87 }
75 } 88 }
76 else 89 else
77 { 90 {
78 int inside = evas_object_is_in_output_rect(obj, x, y, 1, 1); 91 inside = evas_object_is_in_output_rect(obj, x, y, 1, 1);
79 92
80 if (((obj->cur.usemap) && (obj->cur.map) && (obj->cur.map->count == 4))) 93 if ((obj->cur.usemap) && (obj->cur.map) &&
94 (obj->cur.map->count == 4))
81 { 95 {
82 if ((inside) && (!evas_map_coords_get(obj->cur.map, x, y, 96 if ((inside) &&
83 &(obj->cur.map->mx), 97 (!evas_map_coords_get(obj->cur.map, x, y,
84 &(obj->cur.map->my), 0))) 98 &(obj->cur.map->mx),
99 &(obj->cur.map->my), 0)))
85 { 100 {
86 inside = 0; 101 inside = 0;
87 } 102 }
@@ -105,6 +120,16 @@ _evas_event_object_list_in_get(Evas *e, Eina_List *in,
105 return in; 120 return in;
106} 121}
107 122
123static Eina_List *
124_evas_event_object_list_in_get(Evas *e, Eina_List *in,
125 const Eina_Inlist *list, Evas_Object *stop,
126 int x, int y, int *no_rep)
127{
128 if (!list) return NULL;
129 return _evas_event_object_list_raw_in_get(e, in, list->last, stop,
130 x, y, no_rep);
131}
132
108Eina_List * 133Eina_List *
109evas_event_objects_event_list(Evas *e, Evas_Object *stop, int x, int y) 134evas_event_objects_event_list(Evas *e, Evas_Object *stop, int x, int y)
110{ 135{
@@ -136,6 +161,24 @@ evas_event_list_copy(Eina_List *list)
136/* public functions */ 161/* public functions */
137 162
138EAPI void 163EAPI void
164evas_event_default_flags_set(Evas *e, Evas_Event_Flags flags)
165{
166 MAGIC_CHECK(e, Evas, MAGIC_EVAS);
167 return;
168 MAGIC_CHECK_END();
169 e->default_event_flags = flags;
170}
171
172EAPI Evas_Event_Flags
173evas_event_default_flags_get(const Evas *e)
174{
175 MAGIC_CHECK(e, Evas, MAGIC_EVAS);
176 return EVAS_EVENT_FLAG_ON_HOLD;
177 MAGIC_CHECK_END();
178 return e->default_event_flags;
179}
180
181EAPI void
139evas_event_freeze(Evas *e) 182evas_event_freeze(Evas *e)
140{ 183{
141 MAGIC_CHECK(e, Evas, MAGIC_EVAS); 184 MAGIC_CHECK(e, Evas, MAGIC_EVAS);
@@ -197,6 +240,8 @@ evas_event_feed_mouse_down(Evas *e, int b, Evas_Button_Flags flags, unsigned int
197 Eina_List *l, *copy; 240 Eina_List *l, *copy;
198 Evas_Event_Mouse_Down ev; 241 Evas_Event_Mouse_Down ev;
199 Evas_Object *obj; 242 Evas_Object *obj;
243 int addgrab = 0;
244 int event_id = 0;
200 245
201 MAGIC_CHECK(e, Evas, MAGIC_EVAS); 246 MAGIC_CHECK(e, Evas, MAGIC_EVAS);
202 return; 247 return;
@@ -205,12 +250,14 @@ evas_event_feed_mouse_down(Evas *e, int b, Evas_Button_Flags flags, unsigned int
205 if ((b < 1) || (b > 32)) return; 250 if ((b < 1) || (b > 32)) return;
206 251
207 e->pointer.button |= (1 << (b - 1)); 252 e->pointer.button |= (1 << (b - 1));
253 e->pointer.downs++;
208 254
209 if (e->events_frozen > 0) return; 255 if (e->events_frozen > 0) return;
210 e->last_timestamp = timestamp; 256 e->last_timestamp = timestamp;
211 257
212 _evas_object_event_new(); 258 _evas_object_event_new();
213 259
260 event_id = _evas_event_counter;
214 ev.button = b; 261 ev.button = b;
215 ev.output.x = e->pointer.x; 262 ev.output.x = e->pointer.x;
216 ev.output.y = e->pointer.y; 263 ev.output.y = e->pointer.y;
@@ -221,7 +268,7 @@ evas_event_feed_mouse_down(Evas *e, int b, Evas_Button_Flags flags, unsigned int
221 ev.locks = &(e->locks); 268 ev.locks = &(e->locks);
222 ev.flags = flags; 269 ev.flags = flags;
223 ev.timestamp = timestamp; 270 ev.timestamp = timestamp;
224 ev.event_flags = EVAS_EVENT_FLAG_NONE; 271 ev.event_flags = e->default_event_flags;
225 272
226 _evas_walk(e); 273 _evas_walk(e);
227 /* append new touch point to the touch point list */ 274 /* append new touch point to the touch point list */
@@ -238,14 +285,23 @@ evas_event_feed_mouse_down(Evas *e, int b, Evas_Button_Flags flags, unsigned int
238 e->pointer.object.in = eina_list_free(e->pointer.object.in); 285 e->pointer.object.in = eina_list_free(e->pointer.object.in);
239 /* and set up the new one */ 286 /* and set up the new one */
240 e->pointer.object.in = ins; 287 e->pointer.object.in = ins;
288 /* adjust grabbed count by the nuymber of currently held down
289 * fingers/buttons */
290 if (e->pointer.downs > 1) addgrab = e->pointer.downs - 1;
241 } 291 }
242 copy = evas_event_list_copy(e->pointer.object.in); 292 copy = evas_event_list_copy(e->pointer.object.in);
243 EINA_LIST_FOREACH(copy, l, obj) 293 EINA_LIST_FOREACH(copy, l, obj)
244 { 294 {
245 if (obj->pointer_mode != EVAS_OBJECT_POINTER_MODE_NOGRAB) 295 if ((obj->pointer_mode == EVAS_OBJECT_POINTER_MODE_AUTOGRAB) ||
296 (obj->pointer_mode == EVAS_OBJECT_POINTER_MODE_NOGRAB_NO_REPEAT_UPDOWN))
246 { 297 {
247 obj->mouse_grabbed++; 298 obj->mouse_grabbed += addgrab + 1;
248 e->pointer.mouse_grabbed++; 299 e->pointer.mouse_grabbed += addgrab + 1;
300 if (obj->pointer_mode == EVAS_OBJECT_POINTER_MODE_NOGRAB_NO_REPEAT_UPDOWN)
301 {
302 e->pointer.nogrep++;
303 break;
304 }
249 } 305 }
250 } 306 }
251 EINA_LIST_FOREACH(copy, l, obj) 307 EINA_LIST_FOREACH(copy, l, obj)
@@ -256,8 +312,10 @@ evas_event_feed_mouse_down(Evas *e, int b, Evas_Button_Flags flags, unsigned int
256 _evas_event_havemap_adjust(obj, &ev.canvas.x, &ev.canvas.y, obj->mouse_grabbed); 312 _evas_event_havemap_adjust(obj, &ev.canvas.x, &ev.canvas.y, obj->mouse_grabbed);
257 313
258 if (e->events_frozen <= 0) 314 if (e->events_frozen <= 0)
259 evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_DOWN, &ev); 315 evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_DOWN, &ev, event_id);
260 if (e->delete_me) break; 316 if (e->delete_me) break;
317 if (obj->pointer_mode == EVAS_OBJECT_POINTER_MODE_NOGRAB_NO_REPEAT_UPDOWN)
318 break;
261 } 319 }
262 if (copy) eina_list_free(copy); 320 if (copy) eina_list_free(copy);
263 e->last_mouse_down_counter++; 321 e->last_mouse_down_counter++;
@@ -274,9 +332,11 @@ _post_up_handle(Evas *e, unsigned int timestamp, const void *data)
274 Evas_Event_Mouse_Out ev; 332 Evas_Event_Mouse_Out ev;
275 Evas_Object *obj; 333 Evas_Object *obj;
276 int post_called = 0; 334 int post_called = 0;
335 int event_id = 0;
277 336
278 _evas_object_event_new(); 337 _evas_object_event_new();
279 338
339 event_id = _evas_event_counter;
280 ev.buttons = e->pointer.button; 340 ev.buttons = e->pointer.button;
281 ev.output.x = e->pointer.x; 341 ev.output.x = e->pointer.x;
282 ev.output.y = e->pointer.y; 342 ev.output.y = e->pointer.y;
@@ -286,7 +346,7 @@ _post_up_handle(Evas *e, unsigned int timestamp, const void *data)
286 ev.modifiers = &(e->modifiers); 346 ev.modifiers = &(e->modifiers);
287 ev.locks = &(e->locks); 347 ev.locks = &(e->locks);
288 ev.timestamp = timestamp; 348 ev.timestamp = timestamp;
289 ev.event_flags = EVAS_EVENT_FLAG_NONE; 349 ev.event_flags = e->default_event_flags;
290 350
291 /* get new list of ins */ 351 /* get new list of ins */
292 ins = evas_event_objects_event_list(e, NULL, e->pointer.x, e->pointer.y); 352 ins = evas_event_objects_event_list(e, NULL, e->pointer.x, e->pointer.y);
@@ -304,7 +364,7 @@ _post_up_handle(Evas *e, unsigned int timestamp, const void *data)
304 { 364 {
305 obj->mouse_in = 0; 365 obj->mouse_in = 0;
306 if (e->events_frozen <= 0) 366 if (e->events_frozen <= 0)
307 evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_OUT, &ev); 367 evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_OUT, &ev, event_id);
308 } 368 }
309 } 369 }
310 if (e->delete_me) break; 370 if (e->delete_me) break;
@@ -319,6 +379,7 @@ _post_up_handle(Evas *e, unsigned int timestamp, const void *data)
319 379
320 _evas_object_event_new(); 380 _evas_object_event_new();
321 381
382 event_id = _evas_event_counter;
322 ev_in.buttons = e->pointer.button; 383 ev_in.buttons = e->pointer.button;
323 ev_in.output.x = e->pointer.x; 384 ev_in.output.x = e->pointer.x;
324 ev_in.output.y = e->pointer.y; 385 ev_in.output.y = e->pointer.y;
@@ -328,7 +389,7 @@ _post_up_handle(Evas *e, unsigned int timestamp, const void *data)
328 ev_in.modifiers = &(e->modifiers); 389 ev_in.modifiers = &(e->modifiers);
329 ev_in.locks = &(e->locks); 390 ev_in.locks = &(e->locks);
330 ev_in.timestamp = timestamp; 391 ev_in.timestamp = timestamp;
331 ev_in.event_flags = EVAS_EVENT_FLAG_NONE; 392 ev_in.event_flags = e->default_event_flags;
332 393
333 EINA_LIST_FOREACH(ins, l, obj_itr) 394 EINA_LIST_FOREACH(ins, l, obj_itr)
334 { 395 {
@@ -341,7 +402,7 @@ _post_up_handle(Evas *e, unsigned int timestamp, const void *data)
341 { 402 {
342 obj_itr->mouse_in = 1; 403 obj_itr->mouse_in = 1;
343 if (e->events_frozen <= 0) 404 if (e->events_frozen <= 0)
344 evas_object_event_callback_call(obj_itr, EVAS_CALLBACK_MOUSE_IN, &ev_in); 405 evas_object_event_callback_call(obj_itr, EVAS_CALLBACK_MOUSE_IN, &ev_in, event_id);
345 } 406 }
346 } 407 }
347 if (e->delete_me) break; 408 if (e->delete_me) break;
@@ -383,6 +444,7 @@ evas_event_feed_mouse_up(Evas *e, int b, Evas_Button_Flags flags, unsigned int t
383 if ((b < 1) || (b > 32)) return; 444 if ((b < 1) || (b > 32)) return;
384 445
385 e->pointer.button &= ~(1 << (b - 1)); 446 e->pointer.button &= ~(1 << (b - 1));
447 e->pointer.downs--;
386 448
387 if (e->events_frozen > 0) return; 449 if (e->events_frozen > 0) return;
388 e->last_timestamp = timestamp; 450 e->last_timestamp = timestamp;
@@ -390,9 +452,11 @@ evas_event_feed_mouse_up(Evas *e, int b, Evas_Button_Flags flags, unsigned int t
390 { 452 {
391 Evas_Event_Mouse_Up ev; 453 Evas_Event_Mouse_Up ev;
392 Evas_Object *obj; 454 Evas_Object *obj;
455 int event_id = 0;
393 456
394 _evas_object_event_new(); 457 _evas_object_event_new();
395 458
459 event_id = _evas_event_counter;
396 ev.button = b; 460 ev.button = b;
397 ev.output.x = e->pointer.x; 461 ev.output.x = e->pointer.x;
398 ev.output.y = e->pointer.y; 462 ev.output.y = e->pointer.y;
@@ -403,7 +467,7 @@ evas_event_feed_mouse_up(Evas *e, int b, Evas_Button_Flags flags, unsigned int t
403 ev.locks = &(e->locks); 467 ev.locks = &(e->locks);
404 ev.flags = flags; 468 ev.flags = flags;
405 ev.timestamp = timestamp; 469 ev.timestamp = timestamp;
406 ev.event_flags = EVAS_EVENT_FLAG_NONE; 470 ev.event_flags = e->default_event_flags;
407 471
408 _evas_walk(e); 472 _evas_walk(e);
409 /* update released touch point */ 473 /* update released touch point */
@@ -414,7 +478,7 @@ evas_event_feed_mouse_up(Evas *e, int b, Evas_Button_Flags flags, unsigned int t
414 ev.canvas.x = e->pointer.x; 478 ev.canvas.x = e->pointer.x;
415 ev.canvas.y = e->pointer.y; 479 ev.canvas.y = e->pointer.y;
416 _evas_event_havemap_adjust(obj, &ev.canvas.x, &ev.canvas.y, obj->mouse_grabbed); 480 _evas_event_havemap_adjust(obj, &ev.canvas.x, &ev.canvas.y, obj->mouse_grabbed);
417 if ((obj->pointer_mode != EVAS_OBJECT_POINTER_MODE_NOGRAB) && 481 if ((obj->pointer_mode == EVAS_OBJECT_POINTER_MODE_AUTOGRAB) &&
418 (obj->mouse_grabbed > 0)) 482 (obj->mouse_grabbed > 0))
419 { 483 {
420 obj->mouse_grabbed--; 484 obj->mouse_grabbed--;
@@ -423,9 +487,14 @@ evas_event_feed_mouse_up(Evas *e, int b, Evas_Button_Flags flags, unsigned int t
423 if (!obj->delete_me) 487 if (!obj->delete_me)
424 { 488 {
425 if (e->events_frozen <= 0) 489 if (e->events_frozen <= 0)
426 evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_UP, &ev); 490 evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_UP, &ev, event_id);
427 } 491 }
428 if (e->delete_me) break; 492 if (e->delete_me) break;
493 if (obj->pointer_mode == EVAS_OBJECT_POINTER_MODE_NOGRAB_NO_REPEAT_UPDOWN)
494 {
495 if (e->pointer.nogrep > 0) e->pointer.nogrep--;
496 break;
497 }
429 } 498 }
430 if (copy) copy = eina_list_free(copy); 499 if (copy) copy = eina_list_free(copy);
431 e->last_mouse_up_counter++; 500 e->last_mouse_up_counter++;
@@ -442,9 +511,9 @@ evas_event_feed_mouse_up(Evas *e, int b, Evas_Button_Flags flags, unsigned int t
442 ERR("BUG? e->pointer.mouse_grabbed (=%d) < 0!", 511 ERR("BUG? e->pointer.mouse_grabbed (=%d) < 0!",
443 e->pointer.mouse_grabbed); 512 e->pointer.mouse_grabbed);
444 } 513 }
445 /* remove released touch point from the touch point list */ 514 /* remove released touch point from the touch point list */
446 _evas_touch_point_remove(e, 0); 515 _evas_touch_point_remove(e, 0);
447 516
448 _evas_unwalk(e); 517 _evas_unwalk(e);
449} 518}
450 519
@@ -465,6 +534,7 @@ evas_event_feed_mouse_cancel(Evas *e, unsigned int timestamp, const void *data)
465 if ((e->pointer.button & (1 << i))) 534 if ((e->pointer.button & (1 << i)))
466 evas_event_feed_mouse_up(e, i + 1, 0, timestamp, data); 535 evas_event_feed_mouse_up(e, i + 1, 0, timestamp, data);
467 } 536 }
537 // FIXME: multi cancel too?
468 _evas_unwalk(e); 538 _evas_unwalk(e);
469} 539}
470 540
@@ -474,6 +544,7 @@ evas_event_feed_mouse_wheel(Evas *e, int direction, int z, unsigned int timestam
474 Eina_List *l, *copy; 544 Eina_List *l, *copy;
475 Evas_Event_Mouse_Wheel ev; 545 Evas_Event_Mouse_Wheel ev;
476 Evas_Object *obj; 546 Evas_Object *obj;
547 int event_id = 0;
477 548
478 MAGIC_CHECK(e, Evas, MAGIC_EVAS); 549 MAGIC_CHECK(e, Evas, MAGIC_EVAS);
479 return; 550 return;
@@ -484,6 +555,7 @@ evas_event_feed_mouse_wheel(Evas *e, int direction, int z, unsigned int timestam
484 555
485 _evas_object_event_new(); 556 _evas_object_event_new();
486 557
558 event_id = _evas_event_counter;
487 ev.direction = direction; 559 ev.direction = direction;
488 ev.z = z; 560 ev.z = z;
489 ev.output.x = e->pointer.x; 561 ev.output.x = e->pointer.x;
@@ -494,7 +566,7 @@ evas_event_feed_mouse_wheel(Evas *e, int direction, int z, unsigned int timestam
494 ev.modifiers = &(e->modifiers); 566 ev.modifiers = &(e->modifiers);
495 ev.locks = &(e->locks); 567 ev.locks = &(e->locks);
496 ev.timestamp = timestamp; 568 ev.timestamp = timestamp;
497 ev.event_flags = EVAS_EVENT_FLAG_NONE; 569 ev.event_flags = e->default_event_flags;
498 570
499 _evas_walk(e); 571 _evas_walk(e);
500 copy = evas_event_list_copy(e->pointer.object.in); 572 copy = evas_event_list_copy(e->pointer.object.in);
@@ -505,7 +577,7 @@ evas_event_feed_mouse_wheel(Evas *e, int direction, int z, unsigned int timestam
505 ev.canvas.y = e->pointer.y; 577 ev.canvas.y = e->pointer.y;
506 _evas_event_havemap_adjust(obj, &ev.canvas.x, &ev.canvas.y, obj->mouse_grabbed); 578 _evas_event_havemap_adjust(obj, &ev.canvas.x, &ev.canvas.y, obj->mouse_grabbed);
507 if ((e->events_frozen <= 0) && !evas_event_freezes_through(obj)) 579 if ((e->events_frozen <= 0) && !evas_event_freezes_through(obj))
508 evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_WHEEL, &ev); 580 evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_WHEEL, &ev, event_id);
509 if (e->delete_me) break; 581 if (e->delete_me) break;
510 } 582 }
511 if (copy) copy = eina_list_free(copy); 583 if (copy) copy = eina_list_free(copy);
@@ -517,6 +589,7 @@ evas_event_feed_mouse_wheel(Evas *e, int direction, int z, unsigned int timestam
517EAPI void 589EAPI void
518evas_event_feed_mouse_move(Evas *e, int x, int y, unsigned int timestamp, const void *data) 590evas_event_feed_mouse_move(Evas *e, int x, int y, unsigned int timestamp, const void *data)
519{ 591{
592 Evas_Object *nogrep_obj = NULL;
520 int px, py; 593 int px, py;
521//// Evas_Coord pcx, pcy; 594//// Evas_Coord pcx, pcy;
522 595
@@ -553,9 +626,11 @@ evas_event_feed_mouse_move(Evas *e, int x, int y, unsigned int timestamp, const
553 { 626 {
554 Evas_Event_Mouse_Move ev; 627 Evas_Event_Mouse_Move ev;
555 Evas_Object *obj; 628 Evas_Object *obj;
629 int event_id = 0;
556 630
557 _evas_object_event_new(); 631 _evas_object_event_new();
558 632
633 event_id = _evas_event_counter;
559 ev.buttons = e->pointer.button; 634 ev.buttons = e->pointer.button;
560 ev.cur.output.x = e->pointer.x; 635 ev.cur.output.x = e->pointer.x;
561 ev.cur.output.y = e->pointer.y; 636 ev.cur.output.y = e->pointer.y;
@@ -569,7 +644,7 @@ evas_event_feed_mouse_move(Evas *e, int x, int y, unsigned int timestamp, const
569 ev.modifiers = &(e->modifiers); 644 ev.modifiers = &(e->modifiers);
570 ev.locks = &(e->locks); 645 ev.locks = &(e->locks);
571 ev.timestamp = timestamp; 646 ev.timestamp = timestamp;
572 ev.event_flags = EVAS_EVENT_FLAG_NONE; 647 ev.event_flags = e->default_event_flags;
573 copy = evas_event_list_copy(e->pointer.object.in); 648 copy = evas_event_list_copy(e->pointer.object.in);
574 EINA_LIST_FOREACH(copy, l, obj) 649 EINA_LIST_FOREACH(copy, l, obj)
575 { 650 {
@@ -586,19 +661,28 @@ evas_event_feed_mouse_move(Evas *e, int x, int y, unsigned int timestamp, const
586 (!obj->clip.clipees)) 661 (!obj->clip.clipees))
587 { 662 {
588 if ((px != x) || (py != y)) 663 if ((px != x) || (py != y))
589 evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_MOVE, &ev); 664 evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_MOVE, &ev, event_id);
590 } 665 }
591 else 666 else
592 outs = eina_list_append(outs, obj); 667 outs = eina_list_append(outs, obj);
668 if ((obj->pointer_mode == EVAS_OBJECT_POINTER_MODE_NOGRAB_NO_REPEAT_UPDOWN) &&
669 (e->pointer.nogrep > 0))
670 {
671 eina_list_free(copy);
672 nogrep_obj = obj;
673 goto nogrep;
674 }
593 if (e->delete_me) break; 675 if (e->delete_me) break;
594 } 676 }
595 _evas_post_event_callback_call(e); 677 _evas_post_event_callback_call(e);
596 } 678 }
597 { 679 {
598 Evas_Event_Mouse_Out ev; 680 Evas_Event_Mouse_Out ev;
681 int event_id = 0;
599 682
600 _evas_object_event_new(); 683 _evas_object_event_new();
601 684
685 event_id = _evas_event_counter;
602 ev.buttons = e->pointer.button; 686 ev.buttons = e->pointer.button;
603 ev.output.x = e->pointer.x; 687 ev.output.x = e->pointer.x;
604 ev.output.y = e->pointer.y; 688 ev.output.y = e->pointer.y;
@@ -608,7 +692,7 @@ evas_event_feed_mouse_move(Evas *e, int x, int y, unsigned int timestamp, const
608 ev.modifiers = &(e->modifiers); 692 ev.modifiers = &(e->modifiers);
609 ev.locks = &(e->locks); 693 ev.locks = &(e->locks);
610 ev.timestamp = timestamp; 694 ev.timestamp = timestamp;
611 ev.event_flags = EVAS_EVENT_FLAG_NONE; 695 ev.event_flags = e->default_event_flags;
612 696
613 if (copy) eina_list_free(copy); 697 if (copy) eina_list_free(copy);
614 while (outs) 698 while (outs)
@@ -629,7 +713,7 @@ evas_event_feed_mouse_move(Evas *e, int x, int y, unsigned int timestamp, const
629 if (!obj->delete_me) 713 if (!obj->delete_me)
630 { 714 {
631 if (e->events_frozen <= 0) 715 if (e->events_frozen <= 0)
632 evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_OUT, &ev); 716 evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_OUT, &ev, event_id);
633 } 717 }
634 } 718 }
635 } 719 }
@@ -645,9 +729,11 @@ evas_event_feed_mouse_move(Evas *e, int x, int y, unsigned int timestamp, const
645 Evas_Event_Mouse_Out ev2; 729 Evas_Event_Mouse_Out ev2;
646 Evas_Event_Mouse_In ev3; 730 Evas_Event_Mouse_In ev3;
647 Evas_Object *obj; 731 Evas_Object *obj;
732 int event_id = 0, event_id2 = 0;
648 733
649 _evas_object_event_new(); 734 _evas_object_event_new();
650 735
736 event_id = _evas_event_counter;
651 ev.buttons = e->pointer.button; 737 ev.buttons = e->pointer.button;
652 ev.cur.output.x = e->pointer.x; 738 ev.cur.output.x = e->pointer.x;
653 ev.cur.output.y = e->pointer.y; 739 ev.cur.output.y = e->pointer.y;
@@ -661,7 +747,7 @@ evas_event_feed_mouse_move(Evas *e, int x, int y, unsigned int timestamp, const
661 ev.modifiers = &(e->modifiers); 747 ev.modifiers = &(e->modifiers);
662 ev.locks = &(e->locks); 748 ev.locks = &(e->locks);
663 ev.timestamp = timestamp; 749 ev.timestamp = timestamp;
664 ev.event_flags = EVAS_EVENT_FLAG_NONE; 750 ev.event_flags = e->default_event_flags;
665 751
666 ev2.buttons = e->pointer.button; 752 ev2.buttons = e->pointer.button;
667 ev2.output.x = e->pointer.x; 753 ev2.output.x = e->pointer.x;
@@ -672,7 +758,7 @@ evas_event_feed_mouse_move(Evas *e, int x, int y, unsigned int timestamp, const
672 ev2.modifiers = &(e->modifiers); 758 ev2.modifiers = &(e->modifiers);
673 ev2.locks = &(e->locks); 759 ev2.locks = &(e->locks);
674 ev2.timestamp = timestamp; 760 ev2.timestamp = timestamp;
675 ev2.event_flags = EVAS_EVENT_FLAG_NONE; 761 ev2.event_flags = e->default_event_flags;
676 762
677 ev3.buttons = e->pointer.button; 763 ev3.buttons = e->pointer.button;
678 ev3.output.x = e->pointer.x; 764 ev3.output.x = e->pointer.x;
@@ -683,7 +769,7 @@ evas_event_feed_mouse_move(Evas *e, int x, int y, unsigned int timestamp, const
683 ev3.modifiers = &(e->modifiers); 769 ev3.modifiers = &(e->modifiers);
684 ev3.locks = &(e->locks); 770 ev3.locks = &(e->locks);
685 ev3.timestamp = timestamp; 771 ev3.timestamp = timestamp;
686 ev3.event_flags = EVAS_EVENT_FLAG_NONE; 772 ev3.event_flags = e->default_event_flags;
687 773
688 /* get all new in objects */ 774 /* get all new in objects */
689 ins = evas_event_objects_event_list(e, NULL, x, y); 775 ins = evas_event_objects_event_list(e, NULL, x, y);
@@ -711,7 +797,7 @@ evas_event_feed_mouse_move(Evas *e, int x, int y, unsigned int timestamp, const
711 ev.cur.canvas.x = e->pointer.x; 797 ev.cur.canvas.x = e->pointer.x;
712 ev.cur.canvas.y = e->pointer.y; 798 ev.cur.canvas.y = e->pointer.y;
713 _evas_event_havemap_adjust(obj, &ev.cur.canvas.x, &ev.cur.canvas.y, obj->mouse_grabbed); 799 _evas_event_havemap_adjust(obj, &ev.cur.canvas.x, &ev.cur.canvas.y, obj->mouse_grabbed);
714 evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_MOVE, &ev); 800 evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_MOVE, &ev, event_id);
715 } 801 }
716 } 802 }
717 /* otherwise it has left the object */ 803 /* otherwise it has left the object */
@@ -724,7 +810,7 @@ evas_event_feed_mouse_move(Evas *e, int x, int y, unsigned int timestamp, const
724 ev2.canvas.y = e->pointer.y; 810 ev2.canvas.y = e->pointer.y;
725 _evas_event_havemap_adjust(obj, &ev2.canvas.x, &ev2.canvas.y, obj->mouse_grabbed); 811 _evas_event_havemap_adjust(obj, &ev2.canvas.x, &ev2.canvas.y, obj->mouse_grabbed);
726 if (e->events_frozen <= 0) 812 if (e->events_frozen <= 0)
727 evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_OUT, &ev2); 813 evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_OUT, &ev2, event_id);
728 } 814 }
729 } 815 }
730 if (e->delete_me) break; 816 if (e->delete_me) break;
@@ -733,6 +819,7 @@ evas_event_feed_mouse_move(Evas *e, int x, int y, unsigned int timestamp, const
733 819
734 _evas_object_event_new(); 820 _evas_object_event_new();
735 821
822 event_id2 = _evas_event_counter;
736 if (copy) copy = eina_list_free(copy); 823 if (copy) copy = eina_list_free(copy);
737 /* go thru our current list of ins */ 824 /* go thru our current list of ins */
738 EINA_LIST_FOREACH(ins, l, obj) 825 EINA_LIST_FOREACH(ins, l, obj)
@@ -747,7 +834,7 @@ evas_event_feed_mouse_move(Evas *e, int x, int y, unsigned int timestamp, const
747 { 834 {
748 obj->mouse_in = 1; 835 obj->mouse_in = 1;
749 if (e->events_frozen <= 0) 836 if (e->events_frozen <= 0)
750 evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_IN, &ev3); 837 evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_IN, &ev3, event_id2);
751 } 838 }
752 } 839 }
753 if (e->delete_me) break; 840 if (e->delete_me) break;
@@ -766,6 +853,160 @@ evas_event_feed_mouse_move(Evas *e, int x, int y, unsigned int timestamp, const
766 } 853 }
767 _evas_post_event_callback_call(e); 854 _evas_post_event_callback_call(e);
768 } 855 }
856 _evas_unwalk(e);
857 return;
858nogrep:
859 {
860 Eina_List *ins = NULL;
861 Eina_List *newin = NULL;
862 Eina_List *l, *copy, *lst = NULL;
863 Evas_Event_Mouse_Move ev;
864 Evas_Event_Mouse_Out ev2;
865 Evas_Event_Mouse_In ev3;
866 Evas_Object *obj, *below_obj;
867 int event_id = 0, event_id2 = 0;
868 int norep = 0, breaknext = 0;
869
870 _evas_object_event_new();
871
872 event_id = _evas_event_counter;
873 ev.buttons = e->pointer.button;
874 ev.cur.output.x = e->pointer.x;
875 ev.cur.output.y = e->pointer.y;
876 ev.cur.canvas.x = e->pointer.x;
877 ev.cur.canvas.y = e->pointer.y;
878 ev.prev.output.x = px;
879 ev.prev.output.y = py;
880 ev.prev.canvas.x = px;
881 ev.prev.canvas.y = py;
882 ev.data = (void *)data;
883 ev.modifiers = &(e->modifiers);
884 ev.locks = &(e->locks);
885 ev.timestamp = timestamp;
886 ev.event_flags = e->default_event_flags;
887
888 ev2.buttons = e->pointer.button;
889 ev2.output.x = e->pointer.x;
890 ev2.output.y = e->pointer.y;
891 ev2.canvas.x = e->pointer.x;
892 ev2.canvas.y = e->pointer.y;
893 ev2.data = (void *)data;
894 ev2.modifiers = &(e->modifiers);
895 ev2.locks = &(e->locks);
896 ev2.timestamp = timestamp;
897 ev2.event_flags = e->default_event_flags;
898
899 ev3.buttons = e->pointer.button;
900 ev3.output.x = e->pointer.x;
901 ev3.output.y = e->pointer.y;
902 ev3.canvas.x = e->pointer.x;
903 ev3.canvas.y = e->pointer.y;
904 ev3.data = (void *)data;
905 ev3.modifiers = &(e->modifiers);
906 ev3.locks = &(e->locks);
907 ev3.timestamp = timestamp;
908 ev3.event_flags = e->default_event_flags;
909
910 /* go thru old list of in objects */
911 copy = evas_event_list_copy(e->pointer.object.in);
912 EINA_LIST_FOREACH(copy, l, obj)
913 {
914 if (breaknext)
915 {
916 lst = l;
917 break;
918 }
919 if (obj == nogrep_obj) breaknext = 1;
920 }
921
922 /* get all new in objects */
923 below_obj = evas_object_below_get(nogrep_obj);
924 if (below_obj)
925 ins = _evas_event_object_list_raw_in_get(e, NULL,
926 EINA_INLIST_GET(below_obj), NULL,
927 e->pointer.x, e->pointer.y,
928 &norep);
929 EINA_LIST_FOREACH(copy, l, obj)
930 {
931 newin = eina_list_append(newin, obj);
932 if (obj == nogrep_obj) break;
933 }
934 EINA_LIST_FOREACH(ins, l, obj)
935 {
936 newin = eina_list_append(newin, obj);
937 }
938
939 EINA_LIST_FOREACH(lst, l, obj)
940 {
941 /* if its under the pointer and its visible and its in the new */
942 /* in list */
943 // FIXME: i don't think we need this
944 // evas_object_clip_recalc(obj);
945 if ((e->events_frozen <= 0) &&
946 evas_object_is_in_output_rect(obj, x, y, 1, 1) &&
947 (evas_object_clippers_is_visible(obj) ||
948 obj->mouse_grabbed) &&
949 eina_list_data_find(newin, obj) &&
950 (!evas_event_passes_through(obj)) &&
951 (!evas_event_freezes_through(obj)) &&
952 (!obj->clip.clipees) &&
953 ((!obj->precise_is_inside) || evas_object_is_inside(obj, x, y))
954 )
955 {
956 if ((px != x) || (py != y))
957 {
958 ev.cur.canvas.x = e->pointer.x;
959 ev.cur.canvas.y = e->pointer.y;
960 _evas_event_havemap_adjust(obj, &ev.cur.canvas.x, &ev.cur.canvas.y, obj->mouse_grabbed);
961 evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_MOVE, &ev, event_id);
962 }
963 }
964 /* otherwise it has left the object */
965 else
966 {
967 if (obj->mouse_in)
968 {
969 obj->mouse_in = 0;
970 ev2.canvas.x = e->pointer.x;
971 ev2.canvas.y = e->pointer.y;
972 _evas_event_havemap_adjust(obj, &ev2.canvas.x, &ev2.canvas.y, obj->mouse_grabbed);
973 if (e->events_frozen <= 0)
974 evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_OUT, &ev2, event_id);
975 }
976 }
977 if (e->delete_me) break;
978 }
979 _evas_post_event_callback_call(e);
980
981 _evas_object_event_new();
982
983 event_id2 = _evas_event_counter;
984 if (copy) copy = eina_list_free(copy);
985 /* go thru our current list of ins */
986 EINA_LIST_FOREACH(newin, l, obj)
987 {
988 ev3.canvas.x = e->pointer.x;
989 ev3.canvas.y = e->pointer.y;
990 _evas_event_havemap_adjust(obj, &ev3.canvas.x, &ev3.canvas.y, obj->mouse_grabbed);
991 /* if its not in the old list of ins send an enter event */
992 if (!eina_list_data_find(e->pointer.object.in, obj))
993 {
994 if (!obj->mouse_in)
995 {
996 obj->mouse_in = 1;
997 if (e->events_frozen <= 0)
998 evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_IN, &ev3, event_id2);
999 }
1000 }
1001 if (e->delete_me) break;
1002 }
1003 /* free our old list of ins */
1004 eina_list_free(e->pointer.object.in);
1005 /* and set up the new one */
1006 e->pointer.object.in = newin;
1007
1008 _evas_post_event_callback_call(e);
1009 }
769 _evas_unwalk(e); 1010 _evas_unwalk(e);
770} 1011}
771 1012
@@ -776,6 +1017,7 @@ evas_event_feed_mouse_in(Evas *e, unsigned int timestamp, const void *data)
776 Eina_List *l; 1017 Eina_List *l;
777 Evas_Event_Mouse_In ev; 1018 Evas_Event_Mouse_In ev;
778 Evas_Object *obj; 1019 Evas_Object *obj;
1020 int event_id = 0;
779 1021
780 MAGIC_CHECK(e, Evas, MAGIC_EVAS); 1022 MAGIC_CHECK(e, Evas, MAGIC_EVAS);
781 return; 1023 return;
@@ -789,6 +1031,7 @@ evas_event_feed_mouse_in(Evas *e, unsigned int timestamp, const void *data)
789 1031
790 _evas_object_event_new(); 1032 _evas_object_event_new();
791 1033
1034 event_id = _evas_event_counter;
792 ev.buttons = e->pointer.button; 1035 ev.buttons = e->pointer.button;
793 ev.output.x = e->pointer.x; 1036 ev.output.x = e->pointer.x;
794 ev.output.y = e->pointer.y; 1037 ev.output.y = e->pointer.y;
@@ -798,7 +1041,7 @@ evas_event_feed_mouse_in(Evas *e, unsigned int timestamp, const void *data)
798 ev.modifiers = &(e->modifiers); 1041 ev.modifiers = &(e->modifiers);
799 ev.locks = &(e->locks); 1042 ev.locks = &(e->locks);
800 ev.timestamp = timestamp; 1043 ev.timestamp = timestamp;
801 ev.event_flags = EVAS_EVENT_FLAG_NONE; 1044 ev.event_flags = e->default_event_flags;
802 1045
803 _evas_walk(e); 1046 _evas_walk(e);
804 /* get new list of ins */ 1047 /* get new list of ins */
@@ -814,7 +1057,7 @@ evas_event_feed_mouse_in(Evas *e, unsigned int timestamp, const void *data)
814 { 1057 {
815 obj->mouse_in = 1; 1058 obj->mouse_in = 1;
816 if (e->events_frozen <= 0) 1059 if (e->events_frozen <= 0)
817 evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_IN, &ev); 1060 evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_IN, &ev, event_id);
818 } 1061 }
819 } 1062 }
820 if (e->delete_me) break; 1063 if (e->delete_me) break;
@@ -832,6 +1075,7 @@ EAPI void
832evas_event_feed_mouse_out(Evas *e, unsigned int timestamp, const void *data) 1075evas_event_feed_mouse_out(Evas *e, unsigned int timestamp, const void *data)
833{ 1076{
834 Evas_Event_Mouse_Out ev; 1077 Evas_Event_Mouse_Out ev;
1078 int event_id = 0;
835 1079
836 MAGIC_CHECK(e, Evas, MAGIC_EVAS); 1080 MAGIC_CHECK(e, Evas, MAGIC_EVAS);
837 return; 1081 return;
@@ -843,6 +1087,7 @@ evas_event_feed_mouse_out(Evas *e, unsigned int timestamp, const void *data)
843 1087
844 _evas_object_event_new(); 1088 _evas_object_event_new();
845 1089
1090 event_id = _evas_event_counter;
846 ev.buttons = e->pointer.button; 1091 ev.buttons = e->pointer.button;
847 ev.output.x = e->pointer.x; 1092 ev.output.x = e->pointer.x;
848 ev.output.y = e->pointer.y; 1093 ev.output.y = e->pointer.y;
@@ -852,11 +1097,10 @@ evas_event_feed_mouse_out(Evas *e, unsigned int timestamp, const void *data)
852 ev.modifiers = &(e->modifiers); 1097 ev.modifiers = &(e->modifiers);
853 ev.locks = &(e->locks); 1098 ev.locks = &(e->locks);
854 ev.timestamp = timestamp; 1099 ev.timestamp = timestamp;
855 ev.event_flags = EVAS_EVENT_FLAG_NONE; 1100 ev.event_flags = e->default_event_flags;
856 1101
857 _evas_walk(e); 1102 _evas_walk(e);
858 /* if our mouse button is grabbed to any objects */ 1103 /* if our mouse button is inside any objects */
859 if (e->pointer.mouse_grabbed == 0)
860 { 1104 {
861 /* go thru old list of in objects */ 1105 /* go thru old list of in objects */
862 Eina_List *l, *copy; 1106 Eina_List *l, *copy;
@@ -874,14 +1118,16 @@ evas_event_feed_mouse_out(Evas *e, unsigned int timestamp, const void *data)
874 if (!obj->delete_me) 1118 if (!obj->delete_me)
875 { 1119 {
876 if (e->events_frozen <= 0) 1120 if (e->events_frozen <= 0)
877 evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_OUT, &ev); 1121 evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_OUT, &ev, event_id);
878 } 1122 }
1123 obj->mouse_grabbed = 0;
879 } 1124 }
880 if (e->delete_me) break; 1125 if (e->delete_me) break;
881 } 1126 }
882 if (copy) copy = eina_list_free(copy); 1127 if (copy) copy = eina_list_free(copy);
883 /* free our old list of ins */ 1128 /* free our old list of ins */
884 e->pointer.object.in = eina_list_free(e->pointer.object.in); 1129 e->pointer.object.in = eina_list_free(e->pointer.object.in);
1130 e->pointer.mouse_grabbed = 0;
885 _evas_post_event_callback_call(e); 1131 _evas_post_event_callback_call(e);
886 } 1132 }
887 _evas_unwalk(e); 1133 _evas_unwalk(e);
@@ -899,16 +1145,20 @@ evas_event_feed_multi_down(Evas *e,
899 Eina_List *l, *copy; 1145 Eina_List *l, *copy;
900 Evas_Event_Multi_Down ev; 1146 Evas_Event_Multi_Down ev;
901 Evas_Object *obj; 1147 Evas_Object *obj;
1148 int addgrab = 0;
1149 int event_id = 0;
902 1150
903 MAGIC_CHECK(e, Evas, MAGIC_EVAS); 1151 MAGIC_CHECK(e, Evas, MAGIC_EVAS);
904 return; 1152 return;
905 MAGIC_CHECK_END(); 1153 MAGIC_CHECK_END();
906 1154
1155 e->pointer.downs++;
907 if (e->events_frozen > 0) return; 1156 if (e->events_frozen > 0) return;
908 e->last_timestamp = timestamp; 1157 e->last_timestamp = timestamp;
909 1158
910 _evas_object_event_new(); 1159 _evas_object_event_new();
911 1160
1161 event_id = _evas_event_counter;
912 ev.device = d; 1162 ev.device = d;
913 ev.output.x = x; 1163 ev.output.x = x;
914 ev.output.y = y; 1164 ev.output.y = y;
@@ -926,18 +1176,22 @@ evas_event_feed_multi_down(Evas *e,
926 ev.locks = &(e->locks); 1176 ev.locks = &(e->locks);
927 ev.flags = flags; 1177 ev.flags = flags;
928 ev.timestamp = timestamp; 1178 ev.timestamp = timestamp;
929 ev.event_flags = EVAS_EVENT_FLAG_NONE; 1179 ev.event_flags = e->default_event_flags;
930 1180
931 _evas_walk(e); 1181 _evas_walk(e);
932 /* append new touch point to the touch point list */ 1182 /* append new touch point to the touch point list */
933 _evas_touch_point_append(e, d, x, y); 1183 _evas_touch_point_append(e, d, x, y);
1184 if (e->pointer.mouse_grabbed == 0)
1185 {
1186 if (e->pointer.downs > 1) addgrab = e->pointer.downs - 1;
1187 }
934 copy = evas_event_list_copy(e->pointer.object.in); 1188 copy = evas_event_list_copy(e->pointer.object.in);
935 EINA_LIST_FOREACH(copy, l, obj) 1189 EINA_LIST_FOREACH(copy, l, obj)
936 { 1190 {
937 if (obj->pointer_mode != EVAS_OBJECT_POINTER_MODE_NOGRAB) 1191 if (obj->pointer_mode != EVAS_OBJECT_POINTER_MODE_NOGRAB)
938 { 1192 {
939 obj->mouse_grabbed++; 1193 obj->mouse_grabbed += addgrab + 1;
940 e->pointer.mouse_grabbed++; 1194 e->pointer.mouse_grabbed += addgrab + 1;
941 } 1195 }
942 } 1196 }
943 EINA_LIST_FOREACH(copy, l, obj) 1197 EINA_LIST_FOREACH(copy, l, obj)
@@ -952,7 +1206,7 @@ evas_event_feed_multi_down(Evas *e,
952 if (y != ev.canvas.y) 1206 if (y != ev.canvas.y)
953 ev.canvas.ysub = ev.canvas.y; // fixme - lost precision 1207 ev.canvas.ysub = ev.canvas.y; // fixme - lost precision
954 if (e->events_frozen <= 0) 1208 if (e->events_frozen <= 0)
955 evas_object_event_callback_call(obj, EVAS_CALLBACK_MULTI_DOWN, &ev); 1209 evas_object_event_callback_call(obj, EVAS_CALLBACK_MULTI_DOWN, &ev, event_id);
956 if (e->delete_me) break; 1210 if (e->delete_me) break;
957 } 1211 }
958 if (copy) eina_list_free(copy); 1212 if (copy) eina_list_free(copy);
@@ -974,16 +1228,19 @@ evas_event_feed_multi_up(Evas *e,
974 Eina_List *l, *copy; 1228 Eina_List *l, *copy;
975 Evas_Event_Multi_Up ev; 1229 Evas_Event_Multi_Up ev;
976 Evas_Object *obj; 1230 Evas_Object *obj;
1231 int event_id = 0;
977 1232
978 MAGIC_CHECK(e, Evas, MAGIC_EVAS); 1233 MAGIC_CHECK(e, Evas, MAGIC_EVAS);
979 return; 1234 return;
980 MAGIC_CHECK_END(); 1235 MAGIC_CHECK_END();
981 1236
1237 e->pointer.downs--;
982 if (e->events_frozen > 0) return; 1238 if (e->events_frozen > 0) return;
983 e->last_timestamp = timestamp; 1239 e->last_timestamp = timestamp;
984 1240
985 _evas_object_event_new(); 1241 _evas_object_event_new();
986 1242
1243 event_id = _evas_event_counter;
987 ev.device = d; 1244 ev.device = d;
988 ev.output.x = x; 1245 ev.output.x = x;
989 ev.output.y = y; 1246 ev.output.y = y;
@@ -1001,7 +1258,7 @@ evas_event_feed_multi_up(Evas *e,
1001 ev.locks = &(e->locks); 1258 ev.locks = &(e->locks);
1002 ev.flags = flags; 1259 ev.flags = flags;
1003 ev.timestamp = timestamp; 1260 ev.timestamp = timestamp;
1004 ev.event_flags = EVAS_EVENT_FLAG_NONE; 1261 ev.event_flags = e->default_event_flags;
1005 1262
1006 _evas_walk(e); 1263 _evas_walk(e);
1007 /* update released touch point */ 1264 /* update released touch point */
@@ -1025,7 +1282,7 @@ evas_event_feed_multi_up(Evas *e,
1025 e->pointer.mouse_grabbed--; 1282 e->pointer.mouse_grabbed--;
1026 } 1283 }
1027 if (e->events_frozen <= 0) 1284 if (e->events_frozen <= 0)
1028 evas_object_event_callback_call(obj, EVAS_CALLBACK_MULTI_UP, &ev); 1285 evas_object_event_callback_call(obj, EVAS_CALLBACK_MULTI_UP, &ev, event_id);
1029 if (e->delete_me) break; 1286 if (e->delete_me) break;
1030 } 1287 }
1031 if (copy) copy = eina_list_free(copy); 1288 if (copy) copy = eina_list_free(copy);
@@ -1051,7 +1308,7 @@ evas_event_feed_multi_move(Evas *e,
1051 if (e->events_frozen > 0) return; 1308 if (e->events_frozen > 0) return;
1052 e->last_timestamp = timestamp; 1309 e->last_timestamp = timestamp;
1053 1310
1054 if (!e->pointer.inside) return; 1311 if ((!e->pointer.inside) && (e->pointer.mouse_grabbed == 0)) return;
1055 1312
1056 _evas_walk(e); 1313 _evas_walk(e);
1057 /* update moved touch point */ 1314 /* update moved touch point */
@@ -1063,9 +1320,11 @@ evas_event_feed_multi_move(Evas *e,
1063 Eina_List *l, *copy; 1320 Eina_List *l, *copy;
1064 Evas_Event_Multi_Move ev; 1321 Evas_Event_Multi_Move ev;
1065 Evas_Object *obj; 1322 Evas_Object *obj;
1323 int event_id = 0;
1066 1324
1067 _evas_object_event_new(); 1325 _evas_object_event_new();
1068 1326
1327 event_id = _evas_event_counter;
1069 ev.device = d; 1328 ev.device = d;
1070 ev.cur.output.x = x; 1329 ev.cur.output.x = x;
1071 ev.cur.output.y = y; 1330 ev.cur.output.y = y;
@@ -1082,7 +1341,7 @@ evas_event_feed_multi_move(Evas *e,
1082 ev.modifiers = &(e->modifiers); 1341 ev.modifiers = &(e->modifiers);
1083 ev.locks = &(e->locks); 1342 ev.locks = &(e->locks);
1084 ev.timestamp = timestamp; 1343 ev.timestamp = timestamp;
1085 ev.event_flags = EVAS_EVENT_FLAG_NONE; 1344 ev.event_flags = e->default_event_flags;
1086 1345
1087 copy = evas_event_list_copy(e->pointer.object.in); 1346 copy = evas_event_list_copy(e->pointer.object.in);
1088 EINA_LIST_FOREACH(copy, l, obj) 1347 EINA_LIST_FOREACH(copy, l, obj)
@@ -1102,7 +1361,7 @@ evas_event_feed_multi_move(Evas *e,
1102 ev.cur.canvas.xsub = ev.cur.canvas.x; // fixme - lost precision 1361 ev.cur.canvas.xsub = ev.cur.canvas.x; // fixme - lost precision
1103 if (y != ev.cur.canvas.y) 1362 if (y != ev.cur.canvas.y)
1104 ev.cur.canvas.ysub = ev.cur.canvas.y; // fixme - lost precision 1363 ev.cur.canvas.ysub = ev.cur.canvas.y; // fixme - lost precision
1105 evas_object_event_callback_call(obj, EVAS_CALLBACK_MULTI_MOVE, &ev); 1364 evas_object_event_callback_call(obj, EVAS_CALLBACK_MULTI_MOVE, &ev, event_id);
1106 } 1365 }
1107 if (e->delete_me) break; 1366 if (e->delete_me) break;
1108 } 1367 }
@@ -1114,9 +1373,11 @@ evas_event_feed_multi_move(Evas *e,
1114 Eina_List *l, *copy; 1373 Eina_List *l, *copy;
1115 Evas_Event_Multi_Move ev; 1374 Evas_Event_Multi_Move ev;
1116 Evas_Object *obj; 1375 Evas_Object *obj;
1376 int event_id = 0;
1117 1377
1118 _evas_object_event_new(); 1378 _evas_object_event_new();
1119 1379
1380 event_id = _evas_event_counter;
1120 ev.device = d; 1381 ev.device = d;
1121 ev.cur.output.x = x; 1382 ev.cur.output.x = x;
1122 ev.cur.output.y = y; 1383 ev.cur.output.y = y;
@@ -1133,7 +1394,7 @@ evas_event_feed_multi_move(Evas *e,
1133 ev.modifiers = &(e->modifiers); 1394 ev.modifiers = &(e->modifiers);
1134 ev.locks = &(e->locks); 1395 ev.locks = &(e->locks);
1135 ev.timestamp = timestamp; 1396 ev.timestamp = timestamp;
1136 ev.event_flags = EVAS_EVENT_FLAG_NONE; 1397 ev.event_flags = e->default_event_flags;
1137 1398
1138 /* get all new in objects */ 1399 /* get all new in objects */
1139 ins = evas_event_objects_event_list(e, NULL, x, y); 1400 ins = evas_event_objects_event_list(e, NULL, x, y);
@@ -1165,7 +1426,7 @@ evas_event_feed_multi_move(Evas *e,
1165 ev.cur.canvas.xsub = ev.cur.canvas.x; // fixme - lost precision 1426 ev.cur.canvas.xsub = ev.cur.canvas.x; // fixme - lost precision
1166 if (y != ev.cur.canvas.y) 1427 if (y != ev.cur.canvas.y)
1167 ev.cur.canvas.ysub = ev.cur.canvas.y; // fixme - lost precision 1428 ev.cur.canvas.ysub = ev.cur.canvas.y; // fixme - lost precision
1168 evas_object_event_callback_call(obj, EVAS_CALLBACK_MULTI_MOVE, &ev); 1429 evas_object_event_callback_call(obj, EVAS_CALLBACK_MULTI_MOVE, &ev, event_id);
1169 } 1430 }
1170 if (e->delete_me) break; 1431 if (e->delete_me) break;
1171 } 1432 }
@@ -1190,6 +1451,7 @@ evas_event_feed_multi_move(Evas *e,
1190EAPI void 1451EAPI void
1191evas_event_feed_key_down(Evas *e, const char *keyname, const char *key, const char *string, const char *compose, unsigned int timestamp, const void *data) 1452evas_event_feed_key_down(Evas *e, const char *keyname, const char *key, const char *string, const char *compose, unsigned int timestamp, const void *data)
1192{ 1453{
1454 int event_id = 0;
1193 MAGIC_CHECK(e, Evas, MAGIC_EVAS); 1455 MAGIC_CHECK(e, Evas, MAGIC_EVAS);
1194 return; 1456 return;
1195 MAGIC_CHECK_END(); 1457 MAGIC_CHECK_END();
@@ -1204,6 +1466,7 @@ evas_event_feed_key_down(Evas *e, const char *keyname, const char *key, const ch
1204 1466
1205 _evas_object_event_new(); 1467 _evas_object_event_new();
1206 1468
1469 event_id = _evas_event_counter;
1207 exclusive = EINA_FALSE; 1470 exclusive = EINA_FALSE;
1208 ev.keyname = (char *)keyname; 1471 ev.keyname = (char *)keyname;
1209 ev.data = (void *)data; 1472 ev.data = (void *)data;
@@ -1213,7 +1476,7 @@ evas_event_feed_key_down(Evas *e, const char *keyname, const char *key, const ch
1213 ev.string = string; 1476 ev.string = string;
1214 ev.compose = compose; 1477 ev.compose = compose;
1215 ev.timestamp = timestamp; 1478 ev.timestamp = timestamp;
1216 ev.event_flags = EVAS_EVENT_FLAG_NONE; 1479 ev.event_flags = e->default_event_flags;
1217 1480
1218 if (e->grabs) 1481 if (e->grabs)
1219 { 1482 {
@@ -1239,7 +1502,7 @@ evas_event_feed_key_down(Evas *e, const char *keyname, const char *key, const ch
1239 !evas_event_freezes_through(g->object)) 1502 !evas_event_freezes_through(g->object))
1240 evas_object_event_callback_call(g->object, 1503 evas_object_event_callback_call(g->object,
1241 EVAS_CALLBACK_KEY_DOWN, 1504 EVAS_CALLBACK_KEY_DOWN,
1242 &ev); 1505 &ev, event_id);
1243 if (g->exclusive) exclusive = EINA_TRUE; 1506 if (g->exclusive) exclusive = EINA_TRUE;
1244 } 1507 }
1245 } 1508 }
@@ -1266,7 +1529,7 @@ evas_event_feed_key_down(Evas *e, const char *keyname, const char *key, const ch
1266 { 1529 {
1267 if (e->events_frozen <= 0 && !evas_event_freezes_through(e->focused)) 1530 if (e->events_frozen <= 0 && !evas_event_freezes_through(e->focused))
1268 evas_object_event_callback_call(e->focused, EVAS_CALLBACK_KEY_DOWN, 1531 evas_object_event_callback_call(e->focused, EVAS_CALLBACK_KEY_DOWN,
1269 &ev); 1532 &ev, event_id);
1270 } 1533 }
1271 _evas_post_event_callback_call(e); 1534 _evas_post_event_callback_call(e);
1272 _evas_unwalk(e); 1535 _evas_unwalk(e);
@@ -1275,6 +1538,7 @@ evas_event_feed_key_down(Evas *e, const char *keyname, const char *key, const ch
1275EAPI void 1538EAPI void
1276evas_event_feed_key_up(Evas *e, const char *keyname, const char *key, const char *string, const char *compose, unsigned int timestamp, const void *data) 1539evas_event_feed_key_up(Evas *e, const char *keyname, const char *key, const char *string, const char *compose, unsigned int timestamp, const void *data)
1277{ 1540{
1541 int event_id = 0;
1278 MAGIC_CHECK(e, Evas, MAGIC_EVAS); 1542 MAGIC_CHECK(e, Evas, MAGIC_EVAS);
1279 return; 1543 return;
1280 MAGIC_CHECK_END(); 1544 MAGIC_CHECK_END();
@@ -1288,6 +1552,7 @@ evas_event_feed_key_up(Evas *e, const char *keyname, const char *key, const char
1288 1552
1289 _evas_object_event_new(); 1553 _evas_object_event_new();
1290 1554
1555 event_id = _evas_event_counter;
1291 exclusive = EINA_FALSE; 1556 exclusive = EINA_FALSE;
1292 ev.keyname = (char *)keyname; 1557 ev.keyname = (char *)keyname;
1293 ev.data = (void *)data; 1558 ev.data = (void *)data;
@@ -1297,7 +1562,7 @@ evas_event_feed_key_up(Evas *e, const char *keyname, const char *key, const char
1297 ev.string = string; 1562 ev.string = string;
1298 ev.compose = compose; 1563 ev.compose = compose;
1299 ev.timestamp = timestamp; 1564 ev.timestamp = timestamp;
1300 ev.event_flags = EVAS_EVENT_FLAG_NONE; 1565 ev.event_flags = e->default_event_flags;
1301 1566
1302 if (e->grabs) 1567 if (e->grabs)
1303 { 1568 {
@@ -1322,7 +1587,7 @@ evas_event_feed_key_up(Evas *e, const char *keyname, const char *key, const char
1322 if (e->events_frozen <= 0 && 1587 if (e->events_frozen <= 0 &&
1323 !evas_event_freezes_through(g->object)) 1588 !evas_event_freezes_through(g->object))
1324 evas_object_event_callback_call(g->object, 1589 evas_object_event_callback_call(g->object,
1325 EVAS_CALLBACK_KEY_UP, &ev); 1590 EVAS_CALLBACK_KEY_UP, &ev, event_id);
1326 if (g->exclusive) exclusive = EINA_TRUE; 1591 if (g->exclusive) exclusive = EINA_TRUE;
1327 } 1592 }
1328 if (e->delete_me) break; 1593 if (e->delete_me) break;
@@ -1349,7 +1614,7 @@ evas_event_feed_key_up(Evas *e, const char *keyname, const char *key, const char
1349 { 1614 {
1350 if (e->events_frozen <= 0 && !evas_event_freezes_through(e->focused)) 1615 if (e->events_frozen <= 0 && !evas_event_freezes_through(e->focused))
1351 evas_object_event_callback_call(e->focused, EVAS_CALLBACK_KEY_UP, 1616 evas_object_event_callback_call(e->focused, EVAS_CALLBACK_KEY_UP,
1352 &ev); 1617 &ev, event_id);
1353 } 1618 }
1354 _evas_post_event_callback_call(e); 1619 _evas_post_event_callback_call(e);
1355 _evas_unwalk(e); 1620 _evas_unwalk(e);
@@ -1361,6 +1626,7 @@ evas_event_feed_hold(Evas *e, int hold, unsigned int timestamp, const void *data
1361 Eina_List *l, *copy; 1626 Eina_List *l, *copy;
1362 Evas_Event_Hold ev; 1627 Evas_Event_Hold ev;
1363 Evas_Object *obj; 1628 Evas_Object *obj;
1629 int event_id = 0;
1364 1630
1365 MAGIC_CHECK(e, Evas, MAGIC_EVAS); 1631 MAGIC_CHECK(e, Evas, MAGIC_EVAS);
1366 return; 1632 return;
@@ -1371,17 +1637,18 @@ evas_event_feed_hold(Evas *e, int hold, unsigned int timestamp, const void *data
1371 1637
1372 _evas_object_event_new(); 1638 _evas_object_event_new();
1373 1639
1640 event_id = _evas_event_counter;
1374 ev.hold = hold; 1641 ev.hold = hold;
1375 ev.data = (void *)data; 1642 ev.data = (void *)data;
1376 ev.timestamp = timestamp; 1643 ev.timestamp = timestamp;
1377 ev.event_flags = EVAS_EVENT_FLAG_NONE; 1644 ev.event_flags = e->default_event_flags;
1378 1645
1379 _evas_walk(e); 1646 _evas_walk(e);
1380 copy = evas_event_list_copy(e->pointer.object.in); 1647 copy = evas_event_list_copy(e->pointer.object.in);
1381 EINA_LIST_FOREACH(copy, l, obj) 1648 EINA_LIST_FOREACH(copy, l, obj)
1382 { 1649 {
1383 if ((e->events_frozen <= 0) && !evas_event_freezes_through(obj)) 1650 if ((e->events_frozen <= 0) && !evas_event_freezes_through(obj))
1384 evas_object_event_callback_call(obj, EVAS_CALLBACK_HOLD, &ev); 1651 evas_object_event_callback_call(obj, EVAS_CALLBACK_HOLD, &ev, event_id);
1385 if (e->delete_me) break; 1652 if (e->delete_me) break;
1386 } 1653 }
1387 if (copy) copy = eina_list_free(copy); 1654 if (copy) copy = eina_list_free(copy);
@@ -1528,75 +1795,84 @@ evas_object_pointer_mode_get(const Evas_Object *obj)
1528EAPI void 1795EAPI void
1529evas_event_refeed_event(Evas *e, void *event_copy, Evas_Callback_Type event_type) 1796evas_event_refeed_event(Evas *e, void *event_copy, Evas_Callback_Type event_type)
1530{ 1797{
1531 switch(event_type) 1798 switch (event_type)
1532 { 1799 {
1533 case EVAS_CALLBACK_MOUSE_IN: 1800 case EVAS_CALLBACK_MOUSE_IN:
1534 { 1801 {
1535 Evas_Event_Mouse_In *ev = event_copy; 1802 Evas_Event_Mouse_In *ev = event_copy;
1536 evas_event_feed_mouse_in(e, ev->timestamp, ev->data); 1803 evas_event_feed_mouse_in(e, ev->timestamp, ev->data);
1537 break; 1804 break;
1538 } 1805 }
1539 case EVAS_CALLBACK_MOUSE_OUT: 1806 case EVAS_CALLBACK_MOUSE_OUT:
1540 { 1807 {
1541 Evas_Event_Mouse_Out *ev = event_copy; 1808 Evas_Event_Mouse_Out *ev = event_copy;
1542 evas_event_feed_mouse_out(e, ev->timestamp, ev->data); 1809 evas_event_feed_mouse_out(e, ev->timestamp, ev->data);
1543 break; 1810 break;
1544 } 1811 }
1545 case EVAS_CALLBACK_MOUSE_DOWN: 1812 case EVAS_CALLBACK_MOUSE_DOWN:
1546 { 1813 {
1547 Evas_Event_Mouse_Down *ev = event_copy; 1814 Evas_Event_Mouse_Down *ev = event_copy;
1548 evas_event_feed_mouse_down(e, ev->button, ev->flags, ev-> timestamp, ev->data); 1815 evas_event_feed_mouse_down(e, ev->button, ev->flags, ev-> timestamp, ev->data);
1549 break; 1816 break;
1550 } 1817 }
1551 case EVAS_CALLBACK_MOUSE_UP: 1818 case EVAS_CALLBACK_MOUSE_UP:
1552 { 1819 {
1553 Evas_Event_Mouse_Up *ev = event_copy; 1820 Evas_Event_Mouse_Up *ev = event_copy;
1554 evas_event_feed_mouse_up(e, ev->button, ev->flags, ev-> timestamp, ev->data); 1821 evas_event_feed_mouse_up(e, ev->button, ev->flags, ev-> timestamp, ev->data);
1555 break; 1822 break;
1556 } 1823 }
1557 case EVAS_CALLBACK_MOUSE_MOVE: 1824 case EVAS_CALLBACK_MOUSE_MOVE:
1558 { 1825 {
1559 Evas_Event_Mouse_Move *ev = event_copy; 1826 Evas_Event_Mouse_Move *ev = event_copy;
1560 evas_event_feed_mouse_move(e, ev->cur.canvas.x, ev->cur.canvas.y, ev->timestamp, ev->data); 1827 evas_event_feed_mouse_move(e, ev->cur.canvas.x, ev->cur.canvas.y, ev->timestamp, ev->data);
1561 break; 1828 break;
1562 } 1829 }
1563 case EVAS_CALLBACK_MOUSE_WHEEL: 1830 case EVAS_CALLBACK_MOUSE_WHEEL:
1564 { 1831 {
1565 Evas_Event_Mouse_Wheel *ev = event_copy; 1832 Evas_Event_Mouse_Wheel *ev = event_copy;
1566 evas_event_feed_mouse_wheel(e, ev->direction, ev-> z, ev->timestamp, ev->data); 1833 evas_event_feed_mouse_wheel(e, ev->direction, ev-> z, ev->timestamp, ev->data);
1567 break; 1834 break;
1568 } 1835 }
1569 case EVAS_CALLBACK_MULTI_DOWN: 1836 case EVAS_CALLBACK_MULTI_DOWN:
1570 { 1837 {
1571 Evas_Event_Multi_Down *ev = event_copy; 1838 Evas_Event_Multi_Down *ev = event_copy;
1572 evas_event_feed_multi_down(e, ev->device, ev->canvas.x, ev->canvas.y, ev->radius, ev->radius_x, ev->radius_y, ev->pressure, ev->angle, ev->canvas.xsub, ev->canvas.ysub, ev->flags, ev->timestamp, ev->data); 1839 evas_event_feed_multi_down(e, ev->device, ev->canvas.x, ev->canvas.y, ev->radius, ev->radius_x, ev->radius_y, ev->pressure, ev->angle, ev->canvas.xsub, ev->canvas.ysub, ev->flags, ev->timestamp, ev->data);
1573 break; 1840 break;
1574 } 1841 }
1575 case EVAS_CALLBACK_MULTI_UP: 1842 case EVAS_CALLBACK_MULTI_UP:
1576 { 1843 {
1577 Evas_Event_Multi_Up *ev = event_copy; 1844 Evas_Event_Multi_Up *ev = event_copy;
1578 evas_event_feed_multi_up(e, ev->device, ev->canvas.x, ev->canvas.y, ev->radius, ev->radius_x, ev->radius_y, ev->pressure, ev->angle, ev->canvas.xsub, ev->canvas.ysub, ev->flags, ev->timestamp, ev->data); 1845 evas_event_feed_multi_up(e, ev->device, ev->canvas.x, ev->canvas.y, ev->radius, ev->radius_x, ev->radius_y, ev->pressure, ev->angle, ev->canvas.xsub, ev->canvas.ysub, ev->flags, ev->timestamp, ev->data);
1579 break; 1846 break;
1580 } 1847 }
1581 case EVAS_CALLBACK_MULTI_MOVE: 1848 case EVAS_CALLBACK_MULTI_MOVE:
1582 { 1849 {
1583 Evas_Event_Multi_Move *ev = event_copy; 1850 Evas_Event_Multi_Move *ev = event_copy;
1584 evas_event_feed_multi_move(e, ev->device, ev->cur.canvas.x, ev->cur.canvas.y, ev->radius, ev->radius_x, ev->radius_y, ev->pressure, ev->angle, ev->cur.canvas.xsub, ev->cur.canvas.ysub, ev->timestamp, ev->data); 1851 evas_event_feed_multi_move(e, ev->device, ev->cur.canvas.x, ev->cur.canvas.y, ev->radius, ev->radius_x, ev->radius_y, ev->pressure, ev->angle, ev->cur.canvas.xsub, ev->cur.canvas.ysub, ev->timestamp, ev->data);
1585 break; 1852 break;
1586 } 1853 }
1587 case EVAS_CALLBACK_KEY_DOWN: 1854 case EVAS_CALLBACK_KEY_DOWN:
1588 { 1855 {
1589 Evas_Event_Key_Down *ev = event_copy; 1856 Evas_Event_Key_Down *ev = event_copy;
1590 evas_event_feed_key_down(e, ev->keyname, ev->key, ev->string, ev->compose, ev->timestamp, ev->data); 1857 evas_event_feed_key_down(e, ev->keyname, ev->key, ev->string, ev->compose, ev->timestamp, ev->data);
1591 break; 1858 break;
1592 } 1859 }
1593 case EVAS_CALLBACK_KEY_UP: 1860 case EVAS_CALLBACK_KEY_UP:
1594 { 1861 {
1595 Evas_Event_Key_Up *ev = event_copy; 1862 Evas_Event_Key_Up *ev = event_copy;
1596 evas_event_feed_key_up(e, ev->keyname, ev->key, ev->string, ev->compose, ev->timestamp, ev->data); 1863 evas_event_feed_key_up(e, ev->keyname, ev->key, ev->string, ev->compose, ev->timestamp, ev->data);
1597 break; 1864 break;
1598 } 1865 }
1599 default: /* All non-input events are not handeled */ 1866 default: /* All non-input events are not handeled */
1600 break; 1867 break;
1601 } 1868 }
1602} 1869}
1870
1871EAPI int
1872evas_event_down_count_get(const Evas *e)
1873{
1874 MAGIC_CHECK(e, Evas, MAGIC_EVAS);
1875 return 0;
1876 MAGIC_CHECK_END();
1877 return e->pointer.downs;
1878}
diff --git a/libraries/evas/src/lib/canvas/evas_focus.c b/libraries/evas/src/lib/canvas/evas_focus.c
index a1a3bca..29da7e7 100644
--- a/libraries/evas/src/lib/canvas/evas_focus.c
+++ b/libraries/evas/src/lib/canvas/evas_focus.c
@@ -10,29 +10,31 @@
10EAPI void 10EAPI void
11evas_object_focus_set(Evas_Object *obj, Eina_Bool focus) 11evas_object_focus_set(Evas_Object *obj, Eina_Bool focus)
12{ 12{
13 int event_id = 0;
13 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); 14 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
14 return; 15 return;
15 MAGIC_CHECK_END(); 16 MAGIC_CHECK_END();
16 17
17 _evas_object_event_new(); 18 _evas_object_event_new();
18 19
20 event_id = _evas_event_counter;
19 if (focus) 21 if (focus)
20 { 22 {
21 if (obj->focused) goto end; 23 if (obj->focused) goto end;
22 if (obj->layer->evas->focused) 24 if (obj->layer->evas->focused)
23 evas_object_focus_set(obj->layer->evas->focused, 0); 25 evas_object_focus_set(obj->layer->evas->focused, 0);
24 obj->focused = 1; 26 obj->focused = 1;
25 obj->layer->evas->focused = obj; 27 obj->layer->evas->focused = obj;
26 evas_object_event_callback_call(obj, EVAS_CALLBACK_FOCUS_IN, NULL); 28 evas_object_event_callback_call(obj, EVAS_CALLBACK_FOCUS_IN, NULL, event_id);
27 evas_event_callback_call(obj->layer->evas, 29 evas_event_callback_call(obj->layer->evas,
28 EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_IN, obj); 30 EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_IN, obj);
29 } 31 }
30 else 32 else
31 { 33 {
32 if (!obj->focused) goto end; 34 if (!obj->focused) goto end;
33 obj->focused = 0; 35 obj->focused = 0;
34 obj->layer->evas->focused = NULL; 36 obj->layer->evas->focused = NULL;
35 evas_object_event_callback_call(obj, EVAS_CALLBACK_FOCUS_OUT, NULL); 37 evas_object_event_callback_call(obj, EVAS_CALLBACK_FOCUS_OUT, NULL, event_id);
36 evas_event_callback_call(obj->layer->evas, 38 evas_event_callback_call(obj->layer->evas,
37 EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_OUT, obj); 39 EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_OUT, obj);
38 } 40 }
diff --git a/libraries/evas/src/lib/canvas/evas_gl.c b/libraries/evas/src/lib/canvas/evas_gl.c
index 47bb583..85ed851 100644
--- a/libraries/evas/src/lib/canvas/evas_gl.c
+++ b/libraries/evas/src/lib/canvas/evas_gl.c
@@ -37,6 +37,13 @@ evas_gl_new(Evas *e)
37 evas_gl->magic = MAGIC_EVAS_GL; 37 evas_gl->magic = MAGIC_EVAS_GL;
38 evas_gl->evas = e; 38 evas_gl->evas = e;
39 39
40 if (!evas_gl->evas->engine.func->gl_context_create)
41 {
42 ERR("GL engine not available\n");
43 free(evas_gl);
44 return NULL;
45 }
46
40 return evas_gl; 47 return evas_gl;
41} 48}
42 49
@@ -60,6 +67,24 @@ evas_gl_free(Evas_GL *evas_gl)
60 free(evas_gl); 67 free(evas_gl);
61} 68}
62 69
70EAPI Evas_GL_Config *
71evas_gl_config_new()
72{
73 Evas_GL_Config *cfg;
74
75 cfg = calloc(1, sizeof(Evas_GL_Config));
76
77 if (!cfg) return NULL;
78
79 return cfg;
80}
81
82EAPI void
83evas_gl_config_free(Evas_GL_Config *cfg)
84{
85 if (cfg) free(cfg);
86}
87
63EAPI Evas_GL_Surface * 88EAPI Evas_GL_Surface *
64evas_gl_surface_create(Evas_GL *evas_gl, Evas_GL_Config *config, int width, int height) 89evas_gl_surface_create(Evas_GL *evas_gl, Evas_GL_Config *config, int width, int height)
65{ 90{
@@ -77,6 +102,8 @@ evas_gl_surface_create(Evas_GL *evas_gl, Evas_GL_Config *config, int width, int
77 102
78 surf = calloc(1, sizeof(Evas_GL_Surface)); 103 surf = calloc(1, sizeof(Evas_GL_Surface));
79 104
105 if (!surf) return NULL;
106
80 surf->data = evas_gl->evas->engine.func->gl_surface_create(evas_gl->evas->engine.data.output, config, width, height); 107 surf->data = evas_gl->evas->engine.func->gl_surface_create(evas_gl->evas->engine.data.output, config, width, height);
81 108
82 if (!surf->data) 109 if (!surf->data)
diff --git a/libraries/evas/src/lib/canvas/evas_main.c b/libraries/evas/src/lib/canvas/evas_main.c
index 0a37b2c..687744f 100644
--- a/libraries/evas/src/lib/canvas/evas_main.c
+++ b/libraries/evas/src/lib/canvas/evas_main.c
@@ -118,12 +118,16 @@ evas_new(void)
118 e->output.render_method = RENDER_METHOD_INVALID; 118 e->output.render_method = RENDER_METHOD_INVALID;
119 e->viewport.w = 1; 119 e->viewport.w = 1;
120 e->viewport.h = 1; 120 e->viewport.h = 1;
121 e->framespace.x = 0;
122 e->framespace.y = 0;
123 e->framespace.w = 0;
124 e->framespace.h = 0;
121 e->hinting = EVAS_FONT_HINTING_BYTECODE; 125 e->hinting = EVAS_FONT_HINTING_BYTECODE;
122 e->name_hash = eina_hash_string_superfast_new(NULL); 126 e->name_hash = eina_hash_string_superfast_new(NULL);
123 eina_clist_init(&e->calc_list); 127 eina_clist_init(&e->calc_list);
124 eina_clist_init(&e->calc_done); 128 eina_clist_init(&e->calc_done);
125 129
126#define EVAS_ARRAY_SET(E, Array) \ 130#define EVAS_ARRAY_SET(E, Array) \
127 eina_array_step_set(&E->Array, sizeof (E->Array), 4096); 131 eina_array_step_set(&E->Array, sizeof (E->Array), 4096);
128 132
129 EVAS_ARRAY_SET(e, delete_objects); 133 EVAS_ARRAY_SET(e, delete_objects);
@@ -408,6 +412,41 @@ evas_output_viewport_get(const Evas *e, Evas_Coord *x, Evas_Coord *y, Evas_Coord
408 if (h) *h = e->viewport.h; 412 if (h) *h = e->viewport.h;
409} 413}
410 414
415EAPI void
416evas_output_framespace_set(Evas *e, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h)
417{
418 MAGIC_CHECK(e, Evas, MAGIC_EVAS);
419 return;
420 MAGIC_CHECK_END();
421
422 if ((x == e->framespace.x) && (y == e->framespace.y) &&
423 (w == e->framespace.w) && (h == e->framespace.h)) return;
424 e->framespace.x = x;
425 e->framespace.y = y;
426 e->framespace.w = w;
427 e->framespace.h = h;
428 e->framespace.changed = 1;
429 e->output_validity++;
430 e->changed = 1;
431}
432
433EAPI void
434evas_output_framespace_get(const Evas *e, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h)
435{
436 MAGIC_CHECK(e, Evas, MAGIC_EVAS);
437 if (x) *x = 0;
438 if (y) *y = 0;
439 if (w) *w = 0;
440 if (h) *h = 0;
441 return;
442 MAGIC_CHECK_END();
443
444 if (x) *x = e->framespace.x;
445 if (y) *y = e->framespace.y;
446 if (w) *w = e->framespace.w;
447 if (h) *h = e->framespace.h;
448}
449
411EAPI Evas_Coord 450EAPI Evas_Coord
412evas_coord_screen_x_to_world(const Evas *e, int x) 451evas_coord_screen_x_to_world(const Evas *e, int x)
413{ 452{
diff --git a/libraries/evas/src/lib/canvas/evas_map.c b/libraries/evas/src/lib/canvas/evas_map.c
index fca8b3a..2359d5a 100644
--- a/libraries/evas/src/lib/canvas/evas_map.c
+++ b/libraries/evas/src/lib/canvas/evas_map.c
@@ -81,17 +81,19 @@ _evas_map_calc_map_geometry(Evas_Object *obj)
81 81
82 p = obj->cur.map->points; 82 p = obj->cur.map->points;
83 p_end = p + obj->cur.map->count; 83 p_end = p + obj->cur.map->count;
84 x1 = lround(p->x); 84 x1 = x2 = lround(p->x);
85 x2 = lround(p->x); 85 y1 = y2 = lround(p->y);
86 y1 = lround(p->y);
87 y2 = lround(p->y);
88 p++; 86 p++;
89 for (; p < p_end; p++) 87 for (; p < p_end; p++)
90 { 88 {
91 if (p->x < x1) x1 = p->x; 89 Evas_Coord x, y;
92 if (p->x > x2) x2 = p->x; 90
93 if (p->y < y1) y1 = p->y; 91 x = lround(p->x);
94 if (p->y > y2) y2 = p->y; 92 y = lround(p->y);
93 if (x < x1) x1 = x;
94 if (x > x2) x2 = x;
95 if (y < y1) y1 = y;
96 if (y > y2) y2 = y;
95 } 97 }
96// this causes clip-out bugs now mapped objs canbe opaque!!! 98// this causes clip-out bugs now mapped objs canbe opaque!!!
97// // add 1 pixel of fuzz around the map region to ensure updates are correct 99// // add 1 pixel of fuzz around the map region to ensure updates are correct
diff --git a/libraries/evas/src/lib/canvas/evas_name.c b/libraries/evas/src/lib/canvas/evas_name.c
index c42f941..1a9d20f 100644
--- a/libraries/evas/src/lib/canvas/evas_name.c
+++ b/libraries/evas/src/lib/canvas/evas_name.c
@@ -38,3 +38,35 @@ evas_object_name_find(const Evas *e, const char *name)
38 if (!name) return NULL; 38 if (!name) return NULL;
39 return (Evas_Object *)eina_hash_find(e->name_hash, name); 39 return (Evas_Object *)eina_hash_find(e->name_hash, name);
40} 40}
41
42static Evas_Object *
43_evas_object_name_child_find(const Evas_Object *obj, const char *name, int recurse)
44{
45 const Eina_Inlist *lst;
46 Evas_Object *child;
47
48 if (!obj->smart.smart) return NULL;
49 lst = evas_object_smart_members_get_direct(obj);
50 EINA_INLIST_FOREACH(lst, child)
51 {
52 if (child->delete_me) continue;
53 if (!child->name) continue;
54 if (!strcmp(name, child->name)) return child;
55 if (recurse != 0)
56 {
57 if ((obj = _evas_object_name_child_find(child, name, recurse - 1)))
58 return (Evas_Object *)obj;
59 }
60 }
61 return NULL;
62}
63
64EAPI Evas_Object *
65evas_object_name_child_find(const Evas_Object *obj, const char *name, int recurse)
66{
67 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
68 return NULL;
69 MAGIC_CHECK_END();
70 if (!name) return NULL;
71 return _evas_object_name_child_find(obj, name, recurse);
72}
diff --git a/libraries/evas/src/lib/canvas/evas_object_box.c b/libraries/evas/src/lib/canvas/evas_object_box.c
index ab2f222..228d37c 100644
--- a/libraries/evas/src/lib/canvas/evas_object_box.c
+++ b/libraries/evas/src/lib/canvas/evas_object_box.c
@@ -1363,7 +1363,7 @@ _evas_object_box_layout_flow_horizontal_row_info_collect(Evas_Object_Box_Data *p
1363EAPI void 1363EAPI void
1364evas_object_box_layout_flow_horizontal(Evas_Object *o, Evas_Object_Box_Data *priv, void *data __UNUSED__) 1364evas_object_box_layout_flow_horizontal(Evas_Object *o, Evas_Object_Box_Data *priv, void *data __UNUSED__)
1365{ 1365{
1366 int n_children, v_justify; 1366 int n_children;
1367 int r, row_count = 0; 1367 int r, row_count = 0;
1368 int min_w = 0, min_h = 0; 1368 int min_w = 0, min_h = 0;
1369 int max_h, inc_y; 1369 int max_h, inc_y;
@@ -1398,7 +1398,6 @@ evas_object_box_layout_flow_horizontal(Evas_Object *o, Evas_Object_Box_Data *pri
1398 (priv, w, &row_count, row_max_h, row_break, row_width, &offset_y, &max_h); 1398 (priv, w, &row_count, row_max_h, row_break, row_width, &offset_y, &max_h);
1399 1399
1400 inc_y = 0; 1400 inc_y = 0;
1401 v_justify = 0;
1402 remain_y = h - (offset_y + max_h); 1401 remain_y = h - (offset_y + max_h);
1403 1402
1404 if (remain_y > 0) 1403 if (remain_y > 0)
diff --git a/libraries/evas/src/lib/canvas/evas_object_grid.c b/libraries/evas/src/lib/canvas/evas_object_grid.c
index ac96f04..db0f43d 100644
--- a/libraries/evas/src/lib/canvas/evas_object_grid.c
+++ b/libraries/evas/src/lib/canvas/evas_object_grid.c
@@ -1,5 +1,5 @@
1#include <errno.h>
2#include "evas_common.h" 1#include "evas_common.h"
2#include <errno.h>
3 3
4typedef struct _Evas_Object_Grid_Data Evas_Object_Grid_Data; 4typedef struct _Evas_Object_Grid_Data Evas_Object_Grid_Data;
5typedef struct _Evas_Object_Grid_Option Evas_Object_Grid_Option; 5typedef struct _Evas_Object_Grid_Option Evas_Object_Grid_Option;
diff --git a/libraries/evas/src/lib/canvas/evas_object_image.c b/libraries/evas/src/lib/canvas/evas_object_image.c
index 7f757a6..d9f6378 100644
--- a/libraries/evas/src/lib/canvas/evas_object_image.c
+++ b/libraries/evas/src/lib/canvas/evas_object_image.c
@@ -1,7 +1,13 @@
1#ifdef HAVE_CONFIG_H
2# include "config.h" /* so that EAPI in Evas.h is correctly defined */
3#endif
4
1#include <sys/types.h> 5#include <sys/types.h>
2#include <unistd.h> 6#include <unistd.h>
3#include <stdlib.h> 7#include <stdlib.h>
4#include <sys/mman.h> 8#ifdef HAVE_SYS_MMAN_H
9# include <sys/mman.h>
10#endif
5#include <math.h> 11#include <math.h>
6 12
7#include "evas_common.h" 13#include "evas_common.h"
@@ -192,8 +198,9 @@ evas_object_image_filled_add(Evas *e)
192static void 198static void
193_cleanup_tmpf(Evas_Object *obj) 199_cleanup_tmpf(Evas_Object *obj)
194{ 200{
201#ifdef HAVE_SYS_MMAN_H
195 Evas_Object_Image *o; 202 Evas_Object_Image *o;
196 203
197 o = (Evas_Object_Image *)(obj->object_data); 204 o = (Evas_Object_Image *)(obj->object_data);
198 if (!o->tmpf) return; 205 if (!o->tmpf) return;
199#ifdef __linux__ 206#ifdef __linux__
@@ -204,11 +211,15 @@ _cleanup_tmpf(Evas_Object *obj)
204 eina_stringshare_del(o->tmpf); 211 eina_stringshare_del(o->tmpf);
205 o->tmpf_fd = -1; 212 o->tmpf_fd = -1;
206 o->tmpf = NULL; 213 o->tmpf = NULL;
214#else
215 (void) obj;
216#endif
207} 217}
208 218
209static void 219static void
210_create_tmpf(Evas_Object *obj, void *data, int size, char *format __UNUSED__) 220_create_tmpf(Evas_Object *obj, void *data, int size, char *format __UNUSED__)
211{ 221{
222#ifdef HAVE_SYS_MMAN_H
212 Evas_Object_Image *o; 223 Evas_Object_Image *o;
213 char buf[4096]; 224 char buf[4096];
214 void *dst; 225 void *dst;
@@ -253,6 +264,12 @@ _create_tmpf(Evas_Object *obj, void *data, int size, char *format __UNUSED__)
253 o->tmpf = eina_stringshare_add(buf); 264 o->tmpf = eina_stringshare_add(buf);
254 memcpy(dst, data, size); 265 memcpy(dst, data, size);
255 munmap(dst, size); 266 munmap(dst, size);
267#else
268 (void) obj;
269 (void) data;
270 (void) size;
271 (void) format;
272#endif
256} 273}
257 274
258EAPI void 275EAPI void
@@ -1917,6 +1934,24 @@ evas_object_image_content_hint_get(const Evas_Object *obj)
1917 return o->content_hint; 1934 return o->content_hint;
1918} 1935}
1919 1936
1937EAPI Eina_Bool
1938evas_object_image_region_support_get(const Evas_Object *obj)
1939{
1940 Evas_Object_Image *o;
1941
1942 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
1943 return EINA_FALSE;
1944 MAGIC_CHECK_END();
1945 o = (Evas_Object_Image *) (obj->object_data);
1946 MAGIC_CHECK(o, Evas_Object_Image, MAGIC_OBJ_IMAGE);
1947 return EINA_FALSE;
1948 MAGIC_CHECK_END();
1949
1950 return obj->layer->evas->engine.func->image_can_region_get(
1951 obj->layer->evas->engine.data.output,
1952 o->engine_data);
1953}
1954
1920/* animated feature */ 1955/* animated feature */
1921EAPI Eina_Bool 1956EAPI Eina_Bool
1922evas_object_image_animated_get(const Evas_Object *obj) 1957evas_object_image_animated_get(const Evas_Object *obj)
@@ -3770,8 +3805,7 @@ evas_object_image_data_convert_internal(Evas_Object_Image *o, void *data, Evas_C
3770 to_cspace); 3805 to_cspace);
3771 break; 3806 break;
3772 case EVAS_COLORSPACE_YCBCR422601_PL: 3807 case EVAS_COLORSPACE_YCBCR422601_PL:
3773 fprintf(stderr, "EVAS_COLORSPACE_YCBCR422601_PL:\n"); 3808 out = evas_common_convert_yuv_422_601_to(data,
3774 out = evas_common_convert_yuv_422_601_to(data,
3775 o->cur.image.w, 3809 o->cur.image.w,
3776 o->cur.image.h, 3810 o->cur.image.h,
3777 to_cspace); 3811 to_cspace);
@@ -3795,7 +3829,7 @@ evas_object_image_data_convert_internal(Evas_Object_Image *o, void *data, Evas_C
3795 to_cspace); 3829 to_cspace);
3796 break; 3830 break;
3797 default: 3831 default:
3798 fprintf(stderr, "unknow colorspace: %i\n", o->cur.cspace); 3832 WRN("unknow colorspace: %i\n", o->cur.cspace);
3799 break; 3833 break;
3800 } 3834 }
3801 3835
@@ -3806,9 +3840,7 @@ static void
3806evas_object_image_filled_resize_listener(void *data __UNUSED__, Evas *e __UNUSED__, Evas_Object *obj, void *einfo __UNUSED__) 3840evas_object_image_filled_resize_listener(void *data __UNUSED__, Evas *e __UNUSED__, Evas_Object *obj, void *einfo __UNUSED__)
3807{ 3841{
3808 Evas_Coord w, h; 3842 Evas_Coord w, h;
3809 Evas_Object_Image *o;
3810 3843
3811 o = obj->object_data;
3812 evas_object_geometry_get(obj, NULL, NULL, &w, &h); 3844 evas_object_geometry_get(obj, NULL, NULL, &w, &h);
3813 evas_object_image_fill_set(obj, 0, 0, w, h); 3845 evas_object_image_fill_set(obj, 0, 0, w, h);
3814} 3846}
diff --git a/libraries/evas/src/lib/canvas/evas_object_inform.c b/libraries/evas/src/lib/canvas/evas_object_inform.c
index bc09eb9..302da42 100644
--- a/libraries/evas/src/lib/canvas/evas_object_inform.c
+++ b/libraries/evas/src/lib/canvas/evas_object_inform.c
@@ -8,7 +8,7 @@ evas_object_inform_call_show(Evas_Object *obj)
8{ 8{
9 _evas_object_event_new(); 9 _evas_object_event_new();
10 10
11 evas_object_event_callback_call(obj, EVAS_CALLBACK_SHOW, NULL); 11 evas_object_event_callback_call(obj, EVAS_CALLBACK_SHOW, NULL, _evas_event_counter);
12 _evas_post_event_callback_call(obj->layer->evas); 12 _evas_post_event_callback_call(obj->layer->evas);
13} 13}
14 14
@@ -17,7 +17,7 @@ evas_object_inform_call_hide(Evas_Object *obj)
17{ 17{
18 _evas_object_event_new(); 18 _evas_object_event_new();
19 19
20 evas_object_event_callback_call(obj, EVAS_CALLBACK_HIDE, NULL); 20 evas_object_event_callback_call(obj, EVAS_CALLBACK_HIDE, NULL, _evas_event_counter);
21 _evas_post_event_callback_call(obj->layer->evas); 21 _evas_post_event_callback_call(obj->layer->evas);
22} 22}
23 23
@@ -26,7 +26,7 @@ evas_object_inform_call_move(Evas_Object *obj)
26{ 26{
27 _evas_object_event_new(); 27 _evas_object_event_new();
28 28
29 evas_object_event_callback_call(obj, EVAS_CALLBACK_MOVE, NULL); 29 evas_object_event_callback_call(obj, EVAS_CALLBACK_MOVE, NULL, _evas_event_counter);
30 _evas_post_event_callback_call(obj->layer->evas); 30 _evas_post_event_callback_call(obj->layer->evas);
31} 31}
32 32
@@ -35,7 +35,7 @@ evas_object_inform_call_resize(Evas_Object *obj)
35{ 35{
36 _evas_object_event_new(); 36 _evas_object_event_new();
37 37
38 evas_object_event_callback_call(obj, EVAS_CALLBACK_RESIZE, NULL); 38 evas_object_event_callback_call(obj, EVAS_CALLBACK_RESIZE, NULL, _evas_event_counter);
39 _evas_post_event_callback_call(obj->layer->evas); 39 _evas_post_event_callback_call(obj->layer->evas);
40} 40}
41 41
@@ -44,7 +44,7 @@ evas_object_inform_call_restack(Evas_Object *obj)
44{ 44{
45 _evas_object_event_new(); 45 _evas_object_event_new();
46 46
47 evas_object_event_callback_call(obj, EVAS_CALLBACK_RESTACK, NULL); 47 evas_object_event_callback_call(obj, EVAS_CALLBACK_RESTACK, NULL, _evas_event_counter);
48 _evas_post_event_callback_call(obj->layer->evas); 48 _evas_post_event_callback_call(obj->layer->evas);
49} 49}
50 50
@@ -53,7 +53,7 @@ evas_object_inform_call_changed_size_hints(Evas_Object *obj)
53{ 53{
54 _evas_object_event_new(); 54 _evas_object_event_new();
55 55
56 evas_object_event_callback_call(obj, EVAS_CALLBACK_CHANGED_SIZE_HINTS, NULL); 56 evas_object_event_callback_call(obj, EVAS_CALLBACK_CHANGED_SIZE_HINTS, NULL, _evas_event_counter);
57 _evas_post_event_callback_call(obj->layer->evas); 57 _evas_post_event_callback_call(obj->layer->evas);
58} 58}
59 59
@@ -65,7 +65,7 @@ evas_object_inform_call_image_preloaded(Evas_Object *obj)
65 _evas_object_image_preloading_set(obj, 0); 65 _evas_object_image_preloading_set(obj, 0);
66 _evas_object_event_new(); 66 _evas_object_event_new();
67 67
68 evas_object_event_callback_call(obj, EVAS_CALLBACK_IMAGE_PRELOADED, NULL); 68 evas_object_event_callback_call(obj, EVAS_CALLBACK_IMAGE_PRELOADED, NULL, _evas_event_counter);
69 _evas_post_event_callback_call(obj->layer->evas); 69 _evas_post_event_callback_call(obj->layer->evas);
70} 70}
71 71
@@ -74,6 +74,6 @@ evas_object_inform_call_image_unloaded(Evas_Object *obj)
74{ 74{
75 _evas_object_event_new(); 75 _evas_object_event_new();
76 76
77 evas_object_event_callback_call(obj, EVAS_CALLBACK_IMAGE_UNLOADED, NULL); 77 evas_object_event_callback_call(obj, EVAS_CALLBACK_IMAGE_UNLOADED, NULL, _evas_event_counter);
78 _evas_post_event_callback_call(obj->layer->evas); 78 _evas_post_event_callback_call(obj->layer->evas);
79} 79}
diff --git a/libraries/evas/src/lib/canvas/evas_object_intercept.c b/libraries/evas/src/lib/canvas/evas_object_intercept.c
index c3e5e24..54f7265 100644
--- a/libraries/evas/src/lib/canvas/evas_object_intercept.c
+++ b/libraries/evas/src/lib/canvas/evas_object_intercept.c
@@ -9,7 +9,6 @@ static void evas_object_intercept_deinit(Evas_Object *obj);
9static void 9static void
10evas_object_intercept_init(Evas_Object *obj) 10evas_object_intercept_init(Evas_Object *obj)
11{ 11{
12 /* MEM OK */
13 if (!obj->interceptors) 12 if (!obj->interceptors)
14 obj->interceptors = evas_mem_calloc(sizeof(Evas_Intercept_Func)); 13 obj->interceptors = evas_mem_calloc(sizeof(Evas_Intercept_Func));
15} 14}
@@ -17,7 +16,6 @@ evas_object_intercept_init(Evas_Object *obj)
17static void 16static void
18evas_object_intercept_deinit(Evas_Object *obj) 17evas_object_intercept_deinit(Evas_Object *obj)
19{ 18{
20 /* MEM OK */
21 if (!obj->interceptors) return; 19 if (!obj->interceptors) return;
22 if ((obj->interceptors->show.func) || 20 if ((obj->interceptors->show.func) ||
23 (obj->interceptors->hide.func) || 21 (obj->interceptors->hide.func) ||
@@ -41,199 +39,186 @@ evas_object_intercept_deinit(Evas_Object *obj)
41void 39void
42evas_object_intercept_cleanup(Evas_Object *obj) 40evas_object_intercept_cleanup(Evas_Object *obj)
43{ 41{
44 /* MEM OK */
45 if (obj->interceptors) free(obj->interceptors); 42 if (obj->interceptors) free(obj->interceptors);
46} 43}
47 44
48int 45int
49evas_object_intercept_call_show(Evas_Object *obj) 46evas_object_intercept_call_show(Evas_Object *obj)
50{ 47{
51 /* MEM OK */
52 int ret; 48 int ret;
53 49
54 if (!obj->interceptors) return 0; 50 if (!obj->interceptors) return 0;
55 if (obj->intercepted) return 0; 51 if (obj->intercepted) return 0;
56 obj->intercepted = 1; 52 obj->intercepted = EINA_TRUE;
57 ret = !!(obj->interceptors->show.func); 53 ret = !!(obj->interceptors->show.func);
58 if (obj->interceptors->show.func) 54 if (ret)
59 obj->interceptors->show.func(obj->interceptors->show.data, obj); 55 obj->interceptors->show.func(obj->interceptors->show.data, obj);
60 obj->intercepted = 0; 56 obj->intercepted = EINA_FALSE;
61 return ret; 57 return ret;
62} 58}
63 59
64int 60int
65evas_object_intercept_call_hide(Evas_Object *obj) 61evas_object_intercept_call_hide(Evas_Object *obj)
66{ 62{
67 /* MEM OK */
68 int ret; 63 int ret;
69 64
70 if (!obj->interceptors) return 0; 65 if (!obj->interceptors) return 0;
71 if (obj->intercepted) return 0; 66 if (obj->intercepted) return 0;
72 obj->intercepted = 1; 67 obj->intercepted = EINA_TRUE;
73 ret = !!(obj->interceptors->hide.func); 68 ret = !!(obj->interceptors->hide.func);
74 if (obj->interceptors->hide.func) 69 if (ret)
75 obj->interceptors->hide.func(obj->interceptors->hide.data, obj); 70 obj->interceptors->hide.func(obj->interceptors->hide.data, obj);
76 obj->intercepted = 0; 71 obj->intercepted = EINA_FALSE;
77 return ret; 72 return ret;
78} 73}
79 74
80int 75int
81evas_object_intercept_call_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y) 76evas_object_intercept_call_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y)
82{ 77{
83 /* MEM OK */
84 int ret; 78 int ret;
85 79
86 if (!obj->interceptors) return 0; 80 if (!obj->interceptors) return 0;
87 if (obj->intercepted) return 0; 81 if (obj->intercepted) return 0;
88 obj->intercepted = 1; 82 obj->intercepted = EINA_TRUE;
89 ret = !!(obj->interceptors->move.func); 83 ret = !!(obj->interceptors->move.func);
90 if (obj->interceptors->move.func) 84 if (ret)
91 obj->interceptors->move.func(obj->interceptors->move.data, obj, x, y); 85 obj->interceptors->move.func(obj->interceptors->move.data, obj, x, y);
92 obj->intercepted = 0; 86 obj->intercepted = EINA_FALSE;
93 return ret; 87 return ret;
94} 88}
95 89
96int 90int
97evas_object_intercept_call_resize(Evas_Object *obj, Evas_Coord w, Evas_Coord h) 91evas_object_intercept_call_resize(Evas_Object *obj, Evas_Coord w, Evas_Coord h)
98{ 92{
99 /* MEM OK */
100 int ret; 93 int ret;
101 94
102 if (!obj->interceptors) return 0; 95 if (!obj->interceptors) return 0;
103 if (obj->intercepted) return 0; 96 if (obj->intercepted) return 0;
104 obj->intercepted = 1; 97 obj->intercepted = EINA_TRUE;
105 ret = !!(obj->interceptors->resize.func); 98 ret = !!(obj->interceptors->resize.func);
106 if (obj->interceptors->resize.func) 99 if (ret)
107 obj->interceptors->resize.func(obj->interceptors->resize.data, obj, w, h); 100 obj->interceptors->resize.func(obj->interceptors->resize.data, obj, w, h);
108 obj->intercepted = 0; 101 obj->intercepted = EINA_FALSE;
109 return ret; 102 return ret;
110} 103}
111 104
112int 105int
113evas_object_intercept_call_raise(Evas_Object *obj) 106evas_object_intercept_call_raise(Evas_Object *obj)
114{ 107{
115 /* MEM OK */
116 int ret; 108 int ret;
117 109
118 if (!obj->interceptors) return 0; 110 if (!obj->interceptors) return 0;
119 if (obj->intercepted) return 0; 111 if (obj->intercepted) return 0;
120 obj->intercepted = 1; 112 obj->intercepted = EINA_TRUE;
121 ret = !!(obj->interceptors->raise.func); 113 ret = !!(obj->interceptors->raise.func);
122 if (obj->interceptors->raise.func) 114 if (ret)
123 obj->interceptors->raise.func(obj->interceptors->raise.data, obj); 115 obj->interceptors->raise.func(obj->interceptors->raise.data, obj);
124 obj->intercepted = 0; 116 obj->intercepted = EINA_FALSE;
125 return ret; 117 return ret;
126} 118}
127 119
128int 120int
129evas_object_intercept_call_lower(Evas_Object *obj) 121evas_object_intercept_call_lower(Evas_Object *obj)
130{ 122{
131 /* MEM OK */
132 int ret; 123 int ret;
133 124
134 if (!obj->interceptors) return 0; 125 if (!obj->interceptors) return 0;
135 if (obj->intercepted) return 0; 126 if (obj->intercepted) return 0;
136 obj->intercepted = 1; 127 obj->intercepted = EINA_TRUE;
137 ret = !!(obj->interceptors->lower.func); 128 ret = !!(obj->interceptors->lower.func);
138 if (obj->interceptors->lower.func) 129 if (ret)
139 obj->interceptors->lower.func(obj->interceptors->lower.data, obj); 130 obj->interceptors->lower.func(obj->interceptors->lower.data, obj);
140 obj->intercepted = 0; 131 obj->intercepted = EINA_FALSE;
141 return ret; 132 return ret;
142} 133}
143 134
144int 135int
145evas_object_intercept_call_stack_above(Evas_Object *obj, Evas_Object *above) 136evas_object_intercept_call_stack_above(Evas_Object *obj, Evas_Object *above)
146{ 137{
147 /* MEM OK */
148 int ret; 138 int ret;
149 139
150 if (!obj->interceptors) return 0; 140 if (!obj->interceptors) return 0;
151 if (obj->intercepted) return 0; 141 if (obj->intercepted) return 0;
152 obj->intercepted = 1; 142 obj->intercepted = EINA_TRUE;
153 ret = !!(obj->interceptors->stack_above.func); 143 ret = !!(obj->interceptors->stack_above.func);
154 if (obj->interceptors->stack_above.func) 144 if (ret)
155 obj->interceptors->stack_above.func(obj->interceptors->stack_above.data, obj, above); 145 obj->interceptors->stack_above.func(obj->interceptors->stack_above.data, obj, above);
156 obj->intercepted = 0; 146 obj->intercepted = EINA_FALSE;
157 return ret; 147 return ret;
158} 148}
159 149
160int 150int
161evas_object_intercept_call_stack_below(Evas_Object *obj, Evas_Object *below) 151evas_object_intercept_call_stack_below(Evas_Object *obj, Evas_Object *below)
162{ 152{
163 /* MEM OK */
164 int ret; 153 int ret;
165 154
166 if (!obj->interceptors) return 0; 155 if (!obj->interceptors) return 0;
167 if (obj->intercepted) return 0; 156 if (obj->intercepted) return 0;
168 obj->intercepted = 1; 157 obj->intercepted = EINA_TRUE;
169 ret = !!(obj->interceptors->stack_below.func); 158 ret = !!(obj->interceptors->stack_below.func);
170 if (obj->interceptors->stack_below.func) 159 if (ret)
171 obj->interceptors->stack_below.func(obj->interceptors->stack_below.data, obj, below); 160 obj->interceptors->stack_below.func(obj->interceptors->stack_below.data, obj, below);
172 obj->intercepted = 0; 161 obj->intercepted = EINA_FALSE;
173 return ret; 162 return ret;
174} 163}
175 164
176int 165int
177evas_object_intercept_call_layer_set(Evas_Object *obj, int l) 166evas_object_intercept_call_layer_set(Evas_Object *obj, int l)
178{ 167{
179 /* MEM OK */
180 int ret; 168 int ret;
181 169
182 if (!obj->interceptors) return 0; 170 if (!obj->interceptors) return 0;
183 if (obj->intercepted) return 0; 171 if (obj->intercepted) return 0;
184 obj->intercepted = 1; 172 obj->intercepted = EINA_TRUE;
185 ret = !!(obj->interceptors->layer_set.func); 173 ret = !!(obj->interceptors->layer_set.func);
186 if (obj->interceptors->layer_set.func) 174 if (ret)
187 obj->interceptors->layer_set.func(obj->interceptors->layer_set.data, obj, l); 175 obj->interceptors->layer_set.func(obj->interceptors->layer_set.data, obj, l);
188 obj->intercepted = 0; 176 obj->intercepted = EINA_FALSE;
189 return ret; 177 return ret;
190} 178}
191 179
192int 180int
193evas_object_intercept_call_color_set(Evas_Object *obj, int r, int g, int b, int a) 181evas_object_intercept_call_color_set(Evas_Object *obj, int r, int g, int b, int a)
194{ 182{
195 /* MEM OK */
196 int ret; 183 int ret;
197 184
198 if (!obj->interceptors) return 0; 185 if (!obj->interceptors) return 0;
199 if (obj->intercepted) return 0; 186 if (obj->intercepted) return 0;
200 obj->intercepted = 1; 187 obj->intercepted = EINA_TRUE;
201 ret = !!(obj->interceptors->color_set.func); 188 ret = !!(obj->interceptors->color_set.func);
202 if (obj->interceptors->color_set.func) 189 if (ret)
203 obj->interceptors->color_set.func(obj->interceptors->color_set.data, obj, r, g, b, a); 190 obj->interceptors->color_set.func(obj->interceptors->color_set.data, obj, r, g, b, a);
204 obj->intercepted = 0; 191 obj->intercepted = EINA_FALSE;
205 return ret; 192 return ret;
206} 193}
207 194
208int 195int
209evas_object_intercept_call_clip_set(Evas_Object *obj, Evas_Object *clip) 196evas_object_intercept_call_clip_set(Evas_Object *obj, Evas_Object *clip)
210{ 197{
211 /* MEM OK */
212 int ret; 198 int ret;
213 199
214 if (!obj->interceptors) return 0; 200 if (!obj->interceptors) return 0;
215 if (obj->intercepted) return 0; 201 if (obj->intercepted) return 0;
216 obj->intercepted = 1; 202 obj->intercepted = EINA_TRUE;
217 ret = !!(obj->interceptors->clip_set.func); 203 ret = !!(obj->interceptors->clip_set.func);
218 if (obj->interceptors->clip_set.func) 204 if (ret)
219 obj->interceptors->clip_set.func(obj->interceptors->clip_set.data, obj, clip); 205 obj->interceptors->clip_set.func(obj->interceptors->clip_set.data, obj, clip);
220 obj->intercepted = 0; 206 obj->intercepted = EINA_FALSE;
221 return ret; 207 return ret;
222} 208}
223 209
224int 210int
225evas_object_intercept_call_clip_unset(Evas_Object *obj) 211evas_object_intercept_call_clip_unset(Evas_Object *obj)
226{ 212{
227 /* MEM OK */
228 int ret; 213 int ret;
229 214
230 if (!obj->interceptors) return 0; 215 if (!obj->interceptors) return 0;
231 if (obj->intercepted) return 0; 216 if (obj->intercepted) return 0;
232 obj->intercepted = 1; 217 obj->intercepted = EINA_TRUE;
233 ret = !!(obj->interceptors->clip_unset.func); 218 ret = !!(obj->interceptors->clip_unset.func);
234 if (obj->interceptors->clip_unset.func) 219 if (ret)
235 obj->interceptors->clip_unset.func(obj->interceptors->clip_unset.data, obj); 220 obj->interceptors->clip_unset.func(obj->interceptors->clip_unset.data, obj);
236 obj->intercepted = 0; 221 obj->intercepted = EINA_FALSE;
237 return ret; 222 return ret;
238} 223}
239 224
@@ -242,8 +227,6 @@ evas_object_intercept_call_clip_unset(Evas_Object *obj)
242EAPI void 227EAPI void
243evas_object_intercept_show_callback_add(Evas_Object *obj, Evas_Object_Intercept_Show_Cb func, const void *data) 228evas_object_intercept_show_callback_add(Evas_Object *obj, Evas_Object_Intercept_Show_Cb func, const void *data)
244{ 229{
245 /* MEM OK */
246
247 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); 230 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
248 return; 231 return;
249 MAGIC_CHECK_END(); 232 MAGIC_CHECK_END();
@@ -257,7 +240,6 @@ evas_object_intercept_show_callback_add(Evas_Object *obj, Evas_Object_Intercept_
257EAPI void * 240EAPI void *
258evas_object_intercept_show_callback_del(Evas_Object *obj, Evas_Object_Intercept_Show_Cb func) 241evas_object_intercept_show_callback_del(Evas_Object *obj, Evas_Object_Intercept_Show_Cb func)
259{ 242{
260 /* MEM OK */
261 void *data; 243 void *data;
262 244
263 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); 245 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
@@ -275,7 +257,6 @@ evas_object_intercept_show_callback_del(Evas_Object *obj, Evas_Object_Intercept_
275EAPI void 257EAPI void
276evas_object_intercept_hide_callback_add(Evas_Object *obj, Evas_Object_Intercept_Hide_Cb func, const void *data) 258evas_object_intercept_hide_callback_add(Evas_Object *obj, Evas_Object_Intercept_Hide_Cb func, const void *data)
277{ 259{
278 /* MEM OK */
279 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); 260 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
280 return; 261 return;
281 MAGIC_CHECK_END(); 262 MAGIC_CHECK_END();
@@ -289,7 +270,6 @@ evas_object_intercept_hide_callback_add(Evas_Object *obj, Evas_Object_Intercept_
289EAPI void * 270EAPI void *
290evas_object_intercept_hide_callback_del(Evas_Object *obj, Evas_Object_Intercept_Hide_Cb func) 271evas_object_intercept_hide_callback_del(Evas_Object *obj, Evas_Object_Intercept_Hide_Cb func)
291{ 272{
292 /* MEM OK */
293 void *data; 273 void *data;
294 274
295 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); 275 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
@@ -307,7 +287,6 @@ evas_object_intercept_hide_callback_del(Evas_Object *obj, Evas_Object_Intercept_
307EAPI void 287EAPI void
308evas_object_intercept_move_callback_add(Evas_Object *obj, Evas_Object_Intercept_Move_Cb func, const void *data) 288evas_object_intercept_move_callback_add(Evas_Object *obj, Evas_Object_Intercept_Move_Cb func, const void *data)
309{ 289{
310 /* MEM OK */
311 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); 290 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
312 return; 291 return;
313 MAGIC_CHECK_END(); 292 MAGIC_CHECK_END();
@@ -321,7 +300,6 @@ evas_object_intercept_move_callback_add(Evas_Object *obj, Evas_Object_Intercept_
321EAPI void * 300EAPI void *
322evas_object_intercept_move_callback_del(Evas_Object *obj, Evas_Object_Intercept_Move_Cb func) 301evas_object_intercept_move_callback_del(Evas_Object *obj, Evas_Object_Intercept_Move_Cb func)
323{ 302{
324 /* MEM OK */
325 void *data; 303 void *data;
326 304
327 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); 305 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
@@ -339,7 +317,6 @@ evas_object_intercept_move_callback_del(Evas_Object *obj, Evas_Object_Intercept_
339EAPI void 317EAPI void
340evas_object_intercept_resize_callback_add(Evas_Object *obj, Evas_Object_Intercept_Resize_Cb func, const void *data) 318evas_object_intercept_resize_callback_add(Evas_Object *obj, Evas_Object_Intercept_Resize_Cb func, const void *data)
341{ 319{
342 /* MEM OK */
343 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); 320 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
344 return; 321 return;
345 MAGIC_CHECK_END(); 322 MAGIC_CHECK_END();
@@ -353,7 +330,6 @@ evas_object_intercept_resize_callback_add(Evas_Object *obj, Evas_Object_Intercep
353EAPI void * 330EAPI void *
354evas_object_intercept_resize_callback_del(Evas_Object *obj, Evas_Object_Intercept_Resize_Cb func) 331evas_object_intercept_resize_callback_del(Evas_Object *obj, Evas_Object_Intercept_Resize_Cb func)
355{ 332{
356 /* MEM OK */
357 void *data; 333 void *data;
358 334
359 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); 335 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
@@ -371,7 +347,6 @@ evas_object_intercept_resize_callback_del(Evas_Object *obj, Evas_Object_Intercep
371EAPI void 347EAPI void
372evas_object_intercept_raise_callback_add(Evas_Object *obj, Evas_Object_Intercept_Raise_Cb func, const void *data) 348evas_object_intercept_raise_callback_add(Evas_Object *obj, Evas_Object_Intercept_Raise_Cb func, const void *data)
373{ 349{
374 /* MEM OK */
375 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); 350 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
376 return; 351 return;
377 MAGIC_CHECK_END(); 352 MAGIC_CHECK_END();
@@ -385,7 +360,6 @@ evas_object_intercept_raise_callback_add(Evas_Object *obj, Evas_Object_Intercept
385EAPI void * 360EAPI void *
386evas_object_intercept_raise_callback_del(Evas_Object *obj, Evas_Object_Intercept_Raise_Cb func) 361evas_object_intercept_raise_callback_del(Evas_Object *obj, Evas_Object_Intercept_Raise_Cb func)
387{ 362{
388 /* MEM OK */
389 void *data; 363 void *data;
390 364
391 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); 365 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
@@ -403,7 +377,6 @@ evas_object_intercept_raise_callback_del(Evas_Object *obj, Evas_Object_Intercept
403EAPI void 377EAPI void
404evas_object_intercept_lower_callback_add(Evas_Object *obj, Evas_Object_Intercept_Lower_Cb func, const void *data) 378evas_object_intercept_lower_callback_add(Evas_Object *obj, Evas_Object_Intercept_Lower_Cb func, const void *data)
405{ 379{
406 /* MEM OK */
407 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); 380 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
408 return; 381 return;
409 MAGIC_CHECK_END(); 382 MAGIC_CHECK_END();
@@ -417,7 +390,6 @@ evas_object_intercept_lower_callback_add(Evas_Object *obj, Evas_Object_Intercept
417EAPI void * 390EAPI void *
418evas_object_intercept_lower_callback_del(Evas_Object *obj, Evas_Object_Intercept_Lower_Cb func) 391evas_object_intercept_lower_callback_del(Evas_Object *obj, Evas_Object_Intercept_Lower_Cb func)
419{ 392{
420 /* MEM OK */
421 void *data; 393 void *data;
422 394
423 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); 395 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
@@ -435,7 +407,6 @@ evas_object_intercept_lower_callback_del(Evas_Object *obj, Evas_Object_Intercept
435EAPI void 407EAPI void
436evas_object_intercept_stack_above_callback_add(Evas_Object *obj, Evas_Object_Intercept_Stack_Above_Cb func, const void *data) 408evas_object_intercept_stack_above_callback_add(Evas_Object *obj, Evas_Object_Intercept_Stack_Above_Cb func, const void *data)
437{ 409{
438 /* MEM OK */
439 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); 410 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
440 return; 411 return;
441 MAGIC_CHECK_END(); 412 MAGIC_CHECK_END();
@@ -449,7 +420,6 @@ evas_object_intercept_stack_above_callback_add(Evas_Object *obj, Evas_Object_Int
449EAPI void * 420EAPI void *
450evas_object_intercept_stack_above_callback_del(Evas_Object *obj, Evas_Object_Intercept_Stack_Above_Cb func) 421evas_object_intercept_stack_above_callback_del(Evas_Object *obj, Evas_Object_Intercept_Stack_Above_Cb func)
451{ 422{
452 /* MEM OK */
453 void *data; 423 void *data;
454 424
455 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); 425 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
@@ -467,7 +437,6 @@ evas_object_intercept_stack_above_callback_del(Evas_Object *obj, Evas_Object_Int
467EAPI void 437EAPI void
468evas_object_intercept_stack_below_callback_add(Evas_Object *obj, Evas_Object_Intercept_Stack_Below_Cb func, const void *data) 438evas_object_intercept_stack_below_callback_add(Evas_Object *obj, Evas_Object_Intercept_Stack_Below_Cb func, const void *data)
469{ 439{
470 /* MEM OK */
471 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); 440 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
472 return; 441 return;
473 MAGIC_CHECK_END(); 442 MAGIC_CHECK_END();
@@ -481,7 +450,6 @@ evas_object_intercept_stack_below_callback_add(Evas_Object *obj, Evas_Object_Int
481EAPI void * 450EAPI void *
482evas_object_intercept_stack_below_callback_del(Evas_Object *obj, Evas_Object_Intercept_Stack_Below_Cb func) 451evas_object_intercept_stack_below_callback_del(Evas_Object *obj, Evas_Object_Intercept_Stack_Below_Cb func)
483{ 452{
484 /* MEM OK */
485 void *data; 453 void *data;
486 454
487 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); 455 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
@@ -499,7 +467,6 @@ evas_object_intercept_stack_below_callback_del(Evas_Object *obj, Evas_Object_Int
499EAPI void 467EAPI void
500evas_object_intercept_layer_set_callback_add(Evas_Object *obj, Evas_Object_Intercept_Layer_Set_Cb func, const void *data) 468evas_object_intercept_layer_set_callback_add(Evas_Object *obj, Evas_Object_Intercept_Layer_Set_Cb func, const void *data)
501{ 469{
502 /* MEM OK */
503 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); 470 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
504 return; 471 return;
505 MAGIC_CHECK_END(); 472 MAGIC_CHECK_END();
@@ -513,7 +480,6 @@ evas_object_intercept_layer_set_callback_add(Evas_Object *obj, Evas_Object_Inter
513EAPI void * 480EAPI void *
514evas_object_intercept_layer_set_callback_del(Evas_Object *obj, Evas_Object_Intercept_Layer_Set_Cb func) 481evas_object_intercept_layer_set_callback_del(Evas_Object *obj, Evas_Object_Intercept_Layer_Set_Cb func)
515{ 482{
516 /* MEM OK */
517 void *data; 483 void *data;
518 484
519 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); 485 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
@@ -531,7 +497,6 @@ evas_object_intercept_layer_set_callback_del(Evas_Object *obj, Evas_Object_Inter
531EAPI void 497EAPI void
532evas_object_intercept_color_set_callback_add(Evas_Object *obj, Evas_Object_Intercept_Color_Set_Cb func, const void *data) 498evas_object_intercept_color_set_callback_add(Evas_Object *obj, Evas_Object_Intercept_Color_Set_Cb func, const void *data)
533{ 499{
534 /* MEM OK */
535 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); 500 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
536 return; 501 return;
537 MAGIC_CHECK_END(); 502 MAGIC_CHECK_END();
@@ -545,7 +510,6 @@ evas_object_intercept_color_set_callback_add(Evas_Object *obj, Evas_Object_Inter
545EAPI void * 510EAPI void *
546evas_object_intercept_color_set_callback_del(Evas_Object *obj, Evas_Object_Intercept_Color_Set_Cb func) 511evas_object_intercept_color_set_callback_del(Evas_Object *obj, Evas_Object_Intercept_Color_Set_Cb func)
547{ 512{
548 /* MEM OK */
549 void *data; 513 void *data;
550 514
551 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); 515 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
@@ -563,7 +527,6 @@ evas_object_intercept_color_set_callback_del(Evas_Object *obj, Evas_Object_Inter
563EAPI void 527EAPI void
564evas_object_intercept_clip_set_callback_add(Evas_Object *obj, Evas_Object_Intercept_Clip_Set_Cb func, const void *data) 528evas_object_intercept_clip_set_callback_add(Evas_Object *obj, Evas_Object_Intercept_Clip_Set_Cb func, const void *data)
565{ 529{
566 /* MEM OK */
567 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); 530 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
568 return; 531 return;
569 MAGIC_CHECK_END(); 532 MAGIC_CHECK_END();
@@ -577,7 +540,6 @@ evas_object_intercept_clip_set_callback_add(Evas_Object *obj, Evas_Object_Interc
577EAPI void * 540EAPI void *
578evas_object_intercept_clip_set_callback_del(Evas_Object *obj, Evas_Object_Intercept_Clip_Set_Cb func) 541evas_object_intercept_clip_set_callback_del(Evas_Object *obj, Evas_Object_Intercept_Clip_Set_Cb func)
579{ 542{
580 /* MEM OK */
581 void *data; 543 void *data;
582 544
583 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); 545 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
@@ -595,7 +557,6 @@ evas_object_intercept_clip_set_callback_del(Evas_Object *obj, Evas_Object_Interc
595EAPI void 557EAPI void
596evas_object_intercept_clip_unset_callback_add(Evas_Object *obj, Evas_Object_Intercept_Clip_Unset_Cb func, const void *data) 558evas_object_intercept_clip_unset_callback_add(Evas_Object *obj, Evas_Object_Intercept_Clip_Unset_Cb func, const void *data)
597{ 559{
598 /* MEM OK */
599 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); 560 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
600 return; 561 return;
601 MAGIC_CHECK_END(); 562 MAGIC_CHECK_END();
@@ -609,7 +570,6 @@ evas_object_intercept_clip_unset_callback_add(Evas_Object *obj, Evas_Object_Inte
609EAPI void * 570EAPI void *
610evas_object_intercept_clip_unset_callback_del(Evas_Object *obj, Evas_Object_Intercept_Clip_Unset_Cb func) 571evas_object_intercept_clip_unset_callback_del(Evas_Object *obj, Evas_Object_Intercept_Clip_Unset_Cb func)
611{ 572{
612 /* MEM OK */
613 void *data; 573 void *data;
614 574
615 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); 575 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
diff --git a/libraries/evas/src/lib/canvas/evas_object_main.c b/libraries/evas/src/lib/canvas/evas_object_main.c
index 3eaded9..86ab498 100644
--- a/libraries/evas/src/lib/canvas/evas_object_main.c
+++ b/libraries/evas/src/lib/canvas/evas_object_main.c
@@ -25,6 +25,7 @@ evas_object_new(Evas *e __UNUSED__)
25 obj->magic = MAGIC_OBJ; 25 obj->magic = MAGIC_OBJ;
26 obj->cur.scale = 1.0; 26 obj->cur.scale = 1.0;
27 obj->prev.scale = 1.0; 27 obj->prev.scale = 1.0;
28 obj->is_frame = EINA_FALSE;
28 29
29 return obj; 30 return obj;
30} 31}
@@ -99,7 +100,8 @@ evas_object_change(Evas_Object *obj)
99 /* set changed flag on all objects this one clips too */ 100 /* set changed flag on all objects this one clips too */
100 if (!((movch) && (obj->is_static_clip))) 101 if (!((movch) && (obj->is_static_clip)))
101 { 102 {
102 EINA_LIST_FOREACH(obj->clip.clipees, l, obj2) evas_object_change(obj2); 103 EINA_LIST_FOREACH(obj->clip.clipees, l, obj2)
104 evas_object_change(obj2);
103 } 105 }
104 EINA_LIST_FOREACH(obj->proxy.proxies, l, obj2) 106 EINA_LIST_FOREACH(obj->proxy.proxies, l, obj2)
105 { 107 {
@@ -111,8 +113,8 @@ evas_object_change(Evas_Object *obj)
111void 113void
112evas_object_render_pre_visible_change(Eina_Array *rects, Evas_Object *obj, int is_v, int was_v) 114evas_object_render_pre_visible_change(Eina_Array *rects, Evas_Object *obj, int is_v, int was_v)
113{ 115{
114 if (obj->smart.smart) return ; 116 if (obj->smart.smart) return;
115 if (is_v == was_v) return ; 117 if (is_v == was_v) return;
116 if (is_v) 118 if (is_v)
117 { 119 {
118 evas_add_rect(rects, 120 evas_add_rect(rects,
@@ -134,8 +136,8 @@ evas_object_render_pre_visible_change(Eina_Array *rects, Evas_Object *obj, int i
134void 136void
135evas_object_render_pre_clipper_change(Eina_Array *rects, Evas_Object *obj) 137evas_object_render_pre_clipper_change(Eina_Array *rects, Evas_Object *obj)
136{ 138{
137 if (obj->smart.smart) return ; 139 if (obj->smart.smart) return;
138 if (obj->cur.clipper == obj->prev.clipper) return ; 140 if (obj->cur.clipper == obj->prev.clipper) return;
139 if ((obj->cur.clipper) && (obj->prev.clipper)) 141 if ((obj->cur.clipper) && (obj->prev.clipper))
140 { 142 {
141 /* get difference rects between clippers */ 143 /* get difference rects between clippers */
@@ -223,7 +225,8 @@ evas_object_clip_changes_clean(Evas_Object *obj)
223{ 225{
224 Eina_Rectangle *r; 226 Eina_Rectangle *r;
225 227
226 EINA_LIST_FREE(obj->clip.changes, r) eina_rectangle_free(r); 228 EINA_LIST_FREE(obj->clip.changes, r)
229 eina_rectangle_free(r);
227} 230}
228 231
229void 232void
@@ -408,11 +411,11 @@ evas_object_del(Evas_Object *obj)
408 obj->focused = 0; 411 obj->focused = 0;
409 obj->layer->evas->focused = NULL; 412 obj->layer->evas->focused = NULL;
410 _evas_object_event_new(); 413 _evas_object_event_new();
411 evas_object_event_callback_call(obj, EVAS_CALLBACK_FOCUS_OUT, NULL); 414 evas_object_event_callback_call(obj, EVAS_CALLBACK_FOCUS_OUT, NULL, _evas_event_counter);
412 _evas_post_event_callback_call(obj->layer->evas); 415 _evas_post_event_callback_call(obj->layer->evas);
413 } 416 }
414 _evas_object_event_new(); 417 _evas_object_event_new();
415 evas_object_event_callback_call(obj, EVAS_CALLBACK_DEL, NULL); 418 evas_object_event_callback_call(obj, EVAS_CALLBACK_DEL, NULL, _evas_event_counter);
416 _evas_post_event_callback_call(obj->layer->evas); 419 _evas_post_event_callback_call(obj->layer->evas);
417 if (obj->mouse_grabbed > 0) 420 if (obj->mouse_grabbed > 0)
418 obj->layer->evas->pointer.mouse_grabbed -= obj->mouse_grabbed; 421 obj->layer->evas->pointer.mouse_grabbed -= obj->mouse_grabbed;
@@ -426,9 +429,6 @@ evas_object_del(Evas_Object *obj)
426 evas_object_free(obj, 1); 429 evas_object_free(obj, 1);
427 return; 430 return;
428 } 431 }
429 obj->layer->evas->pointer.mouse_grabbed -= obj->mouse_grabbed;
430 obj->mouse_grabbed = 0;
431 obj->mouse_in = 0;
432 evas_object_grabs_cleanup(obj); 432 evas_object_grabs_cleanup(obj);
433 while (obj->clip.clipees) 433 while (obj->clip.clipees)
434 evas_object_clip_unset(obj->clip.clipees->data); 434 evas_object_clip_unset(obj->clip.clipees->data);
@@ -438,7 +438,7 @@ evas_object_del(Evas_Object *obj)
438 if (obj->smart.smart) evas_object_smart_del(obj); 438 if (obj->smart.smart) evas_object_smart_del(obj);
439 evas_object_map_set(obj, NULL); 439 evas_object_map_set(obj, NULL);
440 _evas_object_event_new(); 440 _evas_object_event_new();
441 evas_object_event_callback_call(obj, EVAS_CALLBACK_FREE, NULL); 441 evas_object_event_callback_call(obj, EVAS_CALLBACK_FREE, NULL, _evas_event_counter);
442 _evas_post_event_callback_call(obj->layer->evas); 442 _evas_post_event_callback_call(obj->layer->evas);
443 evas_object_smart_cleanup(obj); 443 evas_object_smart_cleanup(obj);
444 obj->delete_me = 1; 444 obj->delete_me = 1;
@@ -449,18 +449,38 @@ EAPI void
449evas_object_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y) 449evas_object_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y)
450{ 450{
451 int is, was = 0, pass = 0, freeze = 0; 451 int is, was = 0, pass = 0, freeze = 0;
452 int nx = 0, ny = 0;
452 453
453 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); 454 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
454 return; 455 return;
455 MAGIC_CHECK_END(); 456 MAGIC_CHECK_END();
456 if (obj->delete_me) return; 457 if (obj->delete_me) return;
457 if (evas_object_intercept_call_move(obj, x, y)) return; 458
459 nx = x;
460 ny = y;
461
462 if (!obj->is_frame)
463 {
464 int fx, fy;
465
466 evas_output_framespace_get(obj->layer->evas, &fx, &fy, NULL, NULL);
467 if (!obj->smart.parent)
468 {
469 nx += fx;
470 ny += fy;
471 }
472 }
473
474 if (evas_object_intercept_call_move(obj, nx, ny)) return;
475
458 if (obj->doing.in_move > 0) 476 if (obj->doing.in_move > 0)
459 { 477 {
460 WRN("evas_object_move() called on object %p when in the middle of moving the same object", obj); 478 WRN("evas_object_move() called on object %p when in the middle of moving the same object", obj);
461 return; 479 return;
462 } 480 }
463 if ((obj->cur.geometry.x == x) && (obj->cur.geometry.y == y)) return; 481
482 if ((obj->cur.geometry.x == nx) && (obj->cur.geometry.y == ny)) return;
483
464 if (obj->layer->evas->events_frozen <= 0) 484 if (obj->layer->evas->events_frozen <= 0)
465 { 485 {
466 pass = evas_event_passes_through(obj); 486 pass = evas_event_passes_through(obj);
@@ -471,13 +491,16 @@ evas_object_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y)
471 obj->layer->evas->pointer.y, 1, 1); 491 obj->layer->evas->pointer.y, 1, 1);
472 } 492 }
473 obj->doing.in_move++; 493 obj->doing.in_move++;
494
474 if (obj->smart.smart) 495 if (obj->smart.smart)
475 { 496 {
476 if (obj->smart.smart->smart_class->move) 497 if (obj->smart.smart->smart_class->move)
477 obj->smart.smart->smart_class->move(obj, x, y); 498 obj->smart.smart->smart_class->move(obj, nx, ny);
478 } 499 }
479 obj->cur.geometry.x = x; 500
480 obj->cur.geometry.y = y; 501 obj->cur.geometry.x = nx;
502 obj->cur.geometry.y = ny;
503
481//// obj->cur.cache.geometry.validity = 0; 504//// obj->cur.cache.geometry.validity = 0;
482 obj->changed_move = 1; 505 obj->changed_move = 1;
483 evas_object_change(obj); 506 evas_object_change(obj);
@@ -509,19 +532,40 @@ EAPI void
509evas_object_resize(Evas_Object *obj, Evas_Coord w, Evas_Coord h) 532evas_object_resize(Evas_Object *obj, Evas_Coord w, Evas_Coord h)
510{ 533{
511 int is, was = 0, pass = 0, freeze =0; 534 int is, was = 0, pass = 0, freeze =0;
535 int nw = 0, nh = 0;
512 536
513 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); 537 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
514 return; 538 return;
515 MAGIC_CHECK_END(); 539 MAGIC_CHECK_END();
516 if (obj->delete_me) return; 540 if (obj->delete_me) return;
517 if (w < 0) w = 0; if (h < 0) h = 0; 541 if (w < 0) w = 0; if (h < 0) h = 0;
518 if (evas_object_intercept_call_resize(obj, w, h)) return; 542
543 nw = w;
544 nh = h;
545 if (!obj->is_frame)
546 {
547 int fw, fh;
548
549 evas_output_framespace_get(obj->layer->evas, NULL, NULL, &fw, &fh);
550 if (!obj->smart.parent)
551 {
552 nw = w - fw;
553 nh = h - fh;
554 if (nw < 0) nw = 0;
555 if (nh < 0) nh = 0;
556 }
557 }
558
559 if (evas_object_intercept_call_resize(obj, nw, nh)) return;
560
519 if (obj->doing.in_resize > 0) 561 if (obj->doing.in_resize > 0)
520 { 562 {
521 WRN("evas_object_resize() called on object %p when in the middle of resizing the same object", obj); 563 WRN("evas_object_resize() called on object %p when in the middle of resizing the same object", obj);
522 return; 564 return;
523 } 565 }
524 if ((obj->cur.geometry.w == w) && (obj->cur.geometry.h == h)) return; 566
567 if ((obj->cur.geometry.w == nw) && (obj->cur.geometry.h == nh)) return;
568
525 if (obj->layer->evas->events_frozen <= 0) 569 if (obj->layer->evas->events_frozen <= 0)
526 { 570 {
527 pass = evas_event_passes_through(obj); 571 pass = evas_event_passes_through(obj);
@@ -532,13 +576,16 @@ evas_object_resize(Evas_Object *obj, Evas_Coord w, Evas_Coord h)
532 obj->layer->evas->pointer.y, 1, 1); 576 obj->layer->evas->pointer.y, 1, 1);
533 } 577 }
534 obj->doing.in_resize++; 578 obj->doing.in_resize++;
579
535 if (obj->smart.smart) 580 if (obj->smart.smart)
536 { 581 {
537 if (obj->smart.smart->smart_class->resize) 582 if (obj->smart.smart->smart_class->resize)
538 obj->smart.smart->smart_class->resize(obj, w, h); 583 obj->smart.smart->smart_class->resize(obj, nw, nh);
539 } 584 }
540 obj->cur.geometry.w = w; 585
541 obj->cur.geometry.h = h; 586 obj->cur.geometry.w = nw;
587 obj->cur.geometry.h = nh;
588
542//// obj->cur.cache.geometry.validity = 0; 589//// obj->cur.cache.geometry.validity = 0;
543 evas_object_change(obj); 590 evas_object_change(obj);
544 evas_object_clip_dirty(obj); 591 evas_object_clip_dirty(obj);
@@ -581,6 +628,7 @@ evas_object_geometry_get(const Evas_Object *obj, Evas_Coord *x, Evas_Coord *y, E
581 if (x) *x = 0; if (y) *y = 0; if (w) *w = 0; if (h) *h = 0; 628 if (x) *x = 0; if (y) *y = 0; if (w) *w = 0; if (h) *h = 0;
582 return; 629 return;
583 } 630 }
631
584 if (x) *x = obj->cur.geometry.x; 632 if (x) *x = obj->cur.geometry.x;
585 if (y) *y = obj->cur.geometry.y; 633 if (y) *y = obj->cur.geometry.y;
586 if (w) *w = obj->cur.geometry.w; 634 if (w) *w = obj->cur.geometry.w;
@@ -1084,8 +1132,7 @@ evas_object_render_op_set(Evas_Object *obj, Evas_Render_Op render_op)
1084 return; 1132 return;
1085 MAGIC_CHECK_END(); 1133 MAGIC_CHECK_END();
1086 if (obj->delete_me) return; 1134 if (obj->delete_me) return;
1087 if ((Evas_Render_Op)obj->cur.render_op == render_op) 1135 if (obj->cur.render_op == render_op) return;
1088 return;
1089 obj->cur.render_op = render_op; 1136 obj->cur.render_op = render_op;
1090 evas_object_change(obj); 1137 evas_object_change(obj);
1091} 1138}
@@ -1317,3 +1364,20 @@ evas_object_static_clip_get(const Evas_Object *obj)
1317 return obj->is_static_clip; 1364 return obj->is_static_clip;
1318} 1365}
1319 1366
1367EAPI void
1368evas_object_is_frame_object_set(Evas_Object *obj, Eina_Bool is_frame)
1369{
1370 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
1371 return;
1372 MAGIC_CHECK_END();
1373 obj->is_frame = is_frame;
1374}
1375
1376EAPI Eina_Bool
1377evas_object_is_frame_object_get(Evas_Object *obj)
1378{
1379 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
1380 return EINA_FALSE;
1381 MAGIC_CHECK_END();
1382 return obj->is_frame;
1383}
diff --git a/libraries/evas/src/lib/canvas/evas_object_smart.c b/libraries/evas/src/lib/canvas/evas_object_smart.c
index a7dfcdf..69d7f3b 100644
--- a/libraries/evas/src/lib/canvas/evas_object_smart.c
+++ b/libraries/evas/src/lib/canvas/evas_object_smart.c
@@ -402,6 +402,37 @@ evas_object_smart_callback_del(Evas_Object *obj, const char *event, Evas_Smart_C
402 return NULL; 402 return NULL;
403} 403}
404 404
405EAPI void *
406evas_object_smart_callback_del_full(Evas_Object *obj, const char *event, Evas_Smart_Cb func, const void *data)
407{
408 Evas_Object_Smart *o;
409 Eina_List *l;
410 Evas_Smart_Callback *cb;
411
412 MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
413 return NULL;
414 MAGIC_CHECK_END();
415 o = (Evas_Object_Smart *)(obj->object_data);
416 MAGIC_CHECK(o, Evas_Object_Smart, MAGIC_OBJ_SMART);
417 return NULL;
418 MAGIC_CHECK_END();
419 if (!event) return NULL;
420 EINA_LIST_FOREACH(o->callbacks, l, cb)
421 {
422 if ((!strcmp(cb->event, event)) && (cb->func == func) && (cb->func_data == data))
423 {
424 void *ret;
425
426 ret = cb->func_data;
427 cb->delete_me = 1;
428 o->deletions_waiting = 1;
429 evas_object_smart_callbacks_clear(obj);
430 return ret;
431 }
432 }
433 return NULL;
434}
435
405EAPI void 436EAPI void
406evas_object_smart_callback_call(Evas_Object *obj, const char *event, void *event_info) 437evas_object_smart_callback_call(Evas_Object *obj, const char *event, void *event_info)
407{ 438{
diff --git a/libraries/evas/src/lib/canvas/evas_object_table.c b/libraries/evas/src/lib/canvas/evas_object_table.c
index 6e28fce..cdfa07f 100644
--- a/libraries/evas/src/lib/canvas/evas_object_table.c
+++ b/libraries/evas/src/lib/canvas/evas_object_table.c
@@ -1,5 +1,5 @@
1#include <errno.h>
2#include "evas_common.h" 1#include "evas_common.h"
2#include <errno.h>
3 3
4typedef struct _Evas_Object_Table_Data Evas_Object_Table_Data; 4typedef struct _Evas_Object_Table_Data Evas_Object_Table_Data;
5typedef struct _Evas_Object_Table_Option Evas_Object_Table_Option; 5typedef struct _Evas_Object_Table_Option Evas_Object_Table_Option;
diff --git a/libraries/evas/src/lib/canvas/evas_object_text.c b/libraries/evas/src/lib/canvas/evas_object_text.c
index 6c30fcc..dbe5e08 100644
--- a/libraries/evas/src/lib/canvas/evas_object_text.c
+++ b/libraries/evas/src/lib/canvas/evas_object_text.c
@@ -531,8 +531,9 @@ _evas_object_text_layout(Evas_Object *obj, Evas_Object_Text *o, const Eina_Unico
531{ 531{
532 EvasBiDiStrIndex *v_to_l = NULL; 532 EvasBiDiStrIndex *v_to_l = NULL;
533 size_t pos, visual_pos; 533 size_t pos, visual_pos;
534 int len = eina_unicode_strlen(text), par_len; 534 int len = eina_unicode_strlen(text);
535#ifdef BIDI_SUPPORT 535#ifdef BIDI_SUPPORT
536 int par_len = len;
536 int *segment_idxs = NULL; 537 int *segment_idxs = NULL;
537 if (o->bidi_delimiters) 538 if (o->bidi_delimiters)
538 segment_idxs = evas_bidi_segment_idxs_get(text, o->bidi_delimiters); 539 segment_idxs = evas_bidi_segment_idxs_get(text, o->bidi_delimiters);
@@ -543,7 +544,6 @@ _evas_object_text_layout(Evas_Object *obj, Evas_Object_Text *o, const Eina_Unico
543#endif 544#endif
544 visual_pos = pos = 0; 545 visual_pos = pos = 0;
545 546
546 par_len = len;
547 while (len > 0) 547 while (len > 0)
548 { 548 {
549 Evas_Font_Instance *script_fi = NULL; 549 Evas_Font_Instance *script_fi = NULL;
diff --git a/libraries/evas/src/lib/canvas/evas_object_textblock.c b/libraries/evas/src/lib/canvas/evas_object_textblock.c
index 7941a45..568911c 100644
--- a/libraries/evas/src/lib/canvas/evas_object_textblock.c
+++ b/libraries/evas/src/lib/canvas/evas_object_textblock.c
@@ -61,13 +61,13 @@
61 * @subsection textblock_layout The layout system 61 * @subsection textblock_layout The layout system
62 * @todo write @ref textblock_layout 62 * @todo write @ref textblock_layout
63 */ 63 */
64#include <stdlib.h>
65
66#include "evas_common.h" 64#include "evas_common.h"
67#include "evas_private.h" 65#include "evas_private.h"
66#include <stdlib.h>
68 67
69#ifdef HAVE_LINEBREAK 68#ifdef HAVE_LINEBREAK
70#include "linebreak.h" 69#include "linebreak.h"
70#include "wordbreak.h"
71#endif 71#endif
72 72
73/* save typing */ 73/* save typing */
@@ -78,12 +78,19 @@
78static const char o_type[] = "textblock"; 78static const char o_type[] = "textblock";
79 79
80/* The char to be inserted instead of visible formats */ 80/* The char to be inserted instead of visible formats */
81#define EVAS_TEXTBLOCK_REPLACEMENT_CHAR 0xFFFC 81#define _REPLACEMENT_CHAR 0xFFFC
82#define _PARAGRAPH_SEPARATOR 0x2029 82#define _PARAGRAPH_SEPARATOR 0x2029
83#define _NEWLINE '\n'
84#define _TAB '\t'
85
86#define _REPLACEMENT_CHAR_UTF8 "\xEF\xBF\xBC"
87#define _PARAGRAPH_SEPARATOR_UTF8 "\xE2\x80\xA9"
88#define _NEWLINE_UTF8 "\n"
89#define _TAB_UTF8 "\t"
83#define EVAS_TEXTBLOCK_IS_VISIBLE_FORMAT_CHAR(ch) \ 90#define EVAS_TEXTBLOCK_IS_VISIBLE_FORMAT_CHAR(ch) \
84 (((ch) == EVAS_TEXTBLOCK_REPLACEMENT_CHAR) || \ 91 (((ch) == _REPLACEMENT_CHAR) || \
85 ((ch) == '\n') || \ 92 ((ch) == _NEWLINE) || \
86 ((ch) == '\t') || \ 93 ((ch) == _TAB) || \
87 ((ch) == _PARAGRAPH_SEPARATOR)) 94 ((ch) == _PARAGRAPH_SEPARATOR))
88 95
89/* private struct for textblock object internal data */ 96/* private struct for textblock object internal data */
@@ -101,6 +108,12 @@ typedef struct _Evas_Object_Textblock Evas_Object_Textblock;
101typedef struct _Evas_Object_Style_Tag Evas_Object_Style_Tag; 108typedef struct _Evas_Object_Style_Tag Evas_Object_Style_Tag;
102/** 109/**
103 * @internal 110 * @internal
111 * @typedef Evas_Object_Style_Tag
112 * The structure used for finding style tags.
113 */
114typedef struct _Evas_Object_Style_Tag_Base Evas_Object_Style_Tag_Base;
115/**
116 * @internal
104 * @typedef Evas_Object_Textblock_Node_Text 117 * @typedef Evas_Object_Textblock_Node_Text
105 * A text node. 118 * A text node.
106 */ 119 */
@@ -195,21 +208,26 @@ typedef struct _Evas_Object_Textblock_Format Evas_Object_Textblock_Format;
195 * Returns true if closer is the closer of base. 208 * Returns true if closer is the closer of base.
196 */ 209 */
197#define _FORMAT_IS_CLOSER_OF(base, closer, closer_len) \ 210#define _FORMAT_IS_CLOSER_OF(base, closer, closer_len) \
198 (!strncmp(base + 1, closer, closer_len) && \ 211 (!strncmp(base, closer, closer_len) && \
199 (!base[closer_len + 1] || \ 212 (!base[closer_len] || \
200 (base[closer_len + 1] == '=') || \ 213 (base[closer_len] == '=') || \
201 _is_white(base[closer_len + 1]))) 214 _is_white(base[closer_len])))
202 215
203/*FIXME: document the structs and struct items. */ 216/*FIXME: document the structs and struct items. */
204struct _Evas_Object_Style_Tag 217struct _Evas_Object_Style_Tag_Base
205{ 218{
206 EINA_INLIST;
207 char *tag; 219 char *tag;
208 char *replace; 220 char *replace;
209 size_t tag_len; 221 size_t tag_len;
210 size_t replace_len; 222 size_t replace_len;
211}; 223};
212 224
225struct _Evas_Object_Style_Tag
226{
227 EINA_INLIST;
228 Evas_Object_Style_Tag_Base tag;
229};
230
213struct _Evas_Object_Textblock_Node_Text 231struct _Evas_Object_Textblock_Node_Text
214{ 232{
215 EINA_INLIST; 233 EINA_INLIST;
@@ -229,11 +247,18 @@ struct _Evas_Object_Textblock_Node_Format
229 Evas_Object_Textblock_Node_Text *text_node; 247 Evas_Object_Textblock_Node_Text *text_node;
230 size_t offset; 248 size_t offset;
231 unsigned char anchor : 2; 249 unsigned char anchor : 2;
250 Eina_Bool opener : 1;
251 Eina_Bool own_closer : 1;
232 Eina_Bool visible : 1; 252 Eina_Bool visible : 1;
233 Eina_Bool format_change : 1; 253 Eina_Bool format_change : 1;
234 Eina_Bool is_new : 1; 254 Eina_Bool is_new : 1;
235}; 255};
236 256
257/* The default tags to use */
258static const Evas_Object_Style_Tag_Base default_tags[] = {
259 { "b", "+ font_weight=Bold", 1, 18 },
260 { "i", "+ font_style=Italic", 1, 19 }};
261
237#define ANCHOR_NONE 0 262#define ANCHOR_NONE 0
238#define ANCHOR_A 1 263#define ANCHOR_A 1
239#define ANCHOR_ITEM 2 264#define ANCHOR_ITEM 2
@@ -538,8 +563,8 @@ _style_replace(Evas_Textblock_Style *ts, const char *style_text)
538 563
539 tag = (Evas_Object_Style_Tag *)ts->tags; 564 tag = (Evas_Object_Style_Tag *)ts->tags;
540 ts->tags = (Evas_Object_Style_Tag *)eina_inlist_remove(EINA_INLIST_GET(ts->tags), EINA_INLIST_GET(tag)); 565 ts->tags = (Evas_Object_Style_Tag *)eina_inlist_remove(EINA_INLIST_GET(ts->tags), EINA_INLIST_GET(tag));
541 free(tag->tag); 566 free(tag->tag.tag);
542 free(tag->replace); 567 free(tag->tag.replace);
543 free(tag); 568 free(tag);
544 } 569 }
545 ts->default_tag = NULL; 570 ts->default_tag = NULL;
@@ -567,19 +592,38 @@ _style_clear(Evas_Textblock_Style *ts)
567 * @return The replacement string found. 592 * @return The replacement string found.
568 */ 593 */
569static inline const char * 594static inline const char *
570_style_match_tag(Evas_Textblock_Style *ts, const char *s, size_t tag_len, size_t *replace_len) 595_style_match_tag(const Evas_Textblock_Style *ts, const char *s, size_t tag_len, size_t *replace_len)
571{ 596{
572 Evas_Object_Style_Tag *tag; 597 Evas_Object_Style_Tag *tag;
573 598
599 /* Try the style tags */
574 EINA_INLIST_FOREACH(ts->tags, tag) 600 EINA_INLIST_FOREACH(ts->tags, tag)
575 { 601 {
576 if (tag->tag_len != tag_len) continue; 602 if (tag->tag.tag_len != tag_len) continue;
577 if (!strncmp(tag->tag, s, tag_len)) 603 if (!strncmp(tag->tag.tag, s, tag_len))
578 { 604 {
579 *replace_len = tag->replace_len; 605 *replace_len = tag->tag.replace_len;
580 return tag->replace; 606 return tag->tag.replace;
581 } 607 }
582 } 608 }
609
610 /* Try the default tags */
611 {
612 size_t i;
613 const Evas_Object_Style_Tag_Base *btag;
614 for (btag = default_tags, i = 0 ;
615 i < (sizeof(default_tags) / sizeof(default_tags[0])) ;
616 btag++, i++)
617 {
618 if (btag->tag_len != tag_len) continue;
619 if (!strncmp(btag->tag, s, tag_len))
620 {
621 *replace_len = btag->replace_len;
622 return btag->replace;
623 }
624 }
625 }
626
583 *replace_len = 0; 627 *replace_len = 0;
584 return NULL; 628 return NULL;
585} 629}
@@ -1689,8 +1733,8 @@ _format_fill(Evas_Object *obj, Evas_Object_Textblock_Format *fmt, const char *st
1689 1733
1690 s = str; 1734 s = str;
1691 1735
1692 /* get rid of anything +s or -s off the start of the string */ 1736 /* get rid of any spaces at the start of the string */
1693 while ((*s == ' ') || (*s == '+') || (*s == '-')) s++; 1737 while (*s == ' ') s++;
1694 1738
1695 while ((item = _format_parse(&s))) 1739 while ((item = _format_parse(&s)))
1696 { 1740 {
@@ -2131,7 +2175,6 @@ _layout_format_pop(Ctxt *c, const char *format)
2131 if ((c->format_stack) && (c->format_stack->next)) 2175 if ((c->format_stack) && (c->format_stack->next))
2132 { 2176 {
2133 Eina_List *redo_nodes = NULL; 2177 Eina_List *redo_nodes = NULL;
2134 format++; /* Skip the '-' */
2135 2178
2136 /* Generic pop, should just pop. */ 2179 /* Generic pop, should just pop. */
2137 if (((format[0] == ' ') && !format[1]) || 2180 if (((format[0] == ' ') && !format[1]) ||
@@ -2994,21 +3037,29 @@ _format_finalize(Evas_Object *obj, Evas_Object_Textblock_Format *fmt)
2994 * @def _IS_TAB(item) 3037 * @def _IS_TAB(item)
2995 */ 3038 */
2996#define _IS_TAB(item) \ 3039#define _IS_TAB(item) \
2997 (!strcmp(item, "\t") || !strcmp(item, "\\t")) 3040 (!strcmp(item, "tab") || !strcmp(item, "\t") || !strcmp(item, "\\t"))
2998/** 3041/**
2999 * @internal 3042 * @internal
3000 * Returns true if the item is a line spearator, false otherwise 3043 * Returns true if the item is a line spearator, false otherwise
3001 * @def _IS_LINE_SEPARATOR(item) 3044 * @def _IS_LINE_SEPARATOR(item)
3002 */ 3045 */
3003#define _IS_LINE_SEPARATOR(item) \ 3046#define _IS_LINE_SEPARATOR(item) \
3004 (!strcmp(item, "\n") || !strcmp(item, "\\n")) 3047 (!strcmp(item, "br") || !strcmp(item, "\n") || !strcmp(item, "\\n"))
3005/** 3048/**
3006 * @internal 3049 * @internal
3007 * Returns true if the item is a paragraph separator, false otherwise 3050 * Returns true if the item is a paragraph separator, false otherwise
3008 * @def _IS_PARAGRAPH_SEPARATOR(item) 3051 * @def _IS_PARAGRAPH_SEPARATOR(item)
3009 */ 3052 */
3053#define _IS_PARAGRAPH_SEPARATOR_SIMPLE(item) \
3054 (!strcmp(item, "ps"))
3055/**
3056 * @internal
3057 * Returns true if the item is a paragraph separator, false otherwise
3058 * takes legacy mode into account.
3059 * @def _IS_PARAGRAPH_SEPARATOR(item)
3060 */
3010#define _IS_PARAGRAPH_SEPARATOR(o, item) \ 3061#define _IS_PARAGRAPH_SEPARATOR(o, item) \
3011 (!strcmp(item, "ps") || \ 3062 (_IS_PARAGRAPH_SEPARATOR_SIMPLE(item) || \
3012 (o->legacy_newline && _IS_LINE_SEPARATOR(item))) /* Paragraph separator */ 3063 (o->legacy_newline && _IS_LINE_SEPARATOR(item))) /* Paragraph separator */
3013 3064
3014/** 3065/**
@@ -3041,7 +3092,7 @@ _layout_do_format(const Evas_Object *obj __UNUSED__, Ctxt *c,
3041 int handled = 0; 3092 int handled = 0;
3042 3093
3043 s = n->format; 3094 s = n->format;
3044 if (!strncmp(s, "+ item ", 7)) 3095 if (!strncmp(s, "item ", 5))
3045 { 3096 {
3046 // one of: 3097 // one of:
3047 // item size=20x10 href=name 3098 // item size=20x10 href=name
@@ -3133,16 +3184,14 @@ _layout_do_format(const Evas_Object *obj __UNUSED__, Ctxt *c,
3133 if (!handled) 3184 if (!handled)
3134 { 3185 {
3135 Eina_Bool push_fmt = EINA_FALSE; 3186 Eina_Bool push_fmt = EINA_FALSE;
3136 if (s[0] == '+') 3187 if (n->opener && !n->own_closer)
3137 { 3188 {
3138 fmt = _layout_format_push(c, fmt, n); 3189 fmt = _layout_format_push(c, fmt, n);
3139 s++;
3140 push_fmt = EINA_TRUE; 3190 push_fmt = EINA_TRUE;
3141 } 3191 }
3142 else if (s[0] == '-') 3192 else if (!n->opener)
3143 { 3193 {
3144 fmt = _layout_format_pop(c, n->orig_format); 3194 fmt = _layout_format_pop(c, n->orig_format);
3145 s++;
3146 } 3195 }
3147 while ((item = _format_parse(&s))) 3196 while ((item = _format_parse(&s)))
3148 { 3197 {
@@ -3166,7 +3215,7 @@ _layout_do_format(const Evas_Object *obj __UNUSED__, Ctxt *c,
3166 3215
3167 fi->parent.w = fi->parent.adv = 0; 3216 fi->parent.w = fi->parent.adv = 0;
3168 } 3217 }
3169 else if ((!strcmp(item, "\t")) || (!strcmp(item, "\\t"))) 3218 else if (_IS_TAB(item))
3170 { 3219 {
3171 Evas_Object_Textblock_Format_Item *fi; 3220 Evas_Object_Textblock_Format_Item *fi;
3172 3221
@@ -3215,28 +3264,33 @@ _layout_update_par(Ctxt *c)
3215/* -1 means no wrap */ 3264/* -1 means no wrap */
3216static int 3265static int
3217_layout_get_charwrap(Ctxt *c, Evas_Object_Textblock_Format *fmt, 3266_layout_get_charwrap(Ctxt *c, Evas_Object_Textblock_Format *fmt,
3218 const Evas_Object_Textblock_Text_Item *ti, size_t line_start, 3267 const Evas_Object_Textblock_Item *it, size_t line_start,
3219 const char *breaks) 3268 const char *breaks)
3220{ 3269{
3221 int wrap; 3270 int wrap;
3222 size_t uwrap; 3271 size_t uwrap;
3223 size_t len = eina_ustrbuf_length_get(ti->parent.text_node->unicode); 3272 size_t len = eina_ustrbuf_length_get(it->text_node->unicode);
3224 /* Currently not being used, because it doesn't contain relevant 3273 /* Currently not being used, because it doesn't contain relevant
3225 * information */ 3274 * information */
3226 (void) breaks; 3275 (void) breaks;
3227 3276
3228 { 3277 {
3229 wrap = _layout_text_cutoff_get(c, fmt, ti); 3278 if (it->type == EVAS_TEXTBLOCK_ITEM_FORMAT)
3279 wrap = 0;
3280 else
3281 wrap = _layout_text_cutoff_get(c, fmt, _ITEM_TEXT(it));
3282
3230 if (wrap < 0) 3283 if (wrap < 0)
3231 return -1; 3284 return -1;
3232 uwrap = (size_t) wrap + ti->parent.text_pos; 3285 uwrap = (size_t) wrap + it->text_pos;
3233 } 3286 }
3234 3287
3235 3288
3236 if (uwrap == line_start) 3289 if ((uwrap == line_start) && (it->type == EVAS_TEXTBLOCK_ITEM_TEXT))
3237 { 3290 {
3238 uwrap = ti->parent.text_pos + 3291 uwrap = it->text_pos +
3239 (size_t) evas_common_text_props_cluster_next(&ti->text_props, wrap); 3292 (size_t) evas_common_text_props_cluster_next(
3293 &_ITEM_TEXT(it)->text_props, wrap);
3240 } 3294 }
3241 if ((uwrap <= line_start) || (uwrap > len)) 3295 if ((uwrap <= line_start) || (uwrap > len))
3242 return -1; 3296 return -1;
@@ -3259,16 +3313,16 @@ _layout_get_charwrap(Ctxt *c, Evas_Object_Textblock_Format *fmt,
3259#endif 3313#endif
3260static int 3314static int
3261_layout_get_word_mixwrap_common(Ctxt *c, Evas_Object_Textblock_Format *fmt, 3315_layout_get_word_mixwrap_common(Ctxt *c, Evas_Object_Textblock_Format *fmt,
3262 const Evas_Object_Textblock_Text_Item *ti, Eina_Bool mixed_wrap, 3316 const Evas_Object_Textblock_Item *it, Eina_Bool mixed_wrap,
3263 size_t line_start, const char *breaks) 3317 size_t line_start, const char *breaks)
3264{ 3318{
3265 Eina_Bool wrap_after = EINA_FALSE; 3319 Eina_Bool wrap_after = EINA_FALSE;
3266 size_t wrap; 3320 size_t wrap;
3267 size_t orig_wrap; 3321 size_t orig_wrap;
3268 const Eina_Unicode *str = eina_ustrbuf_string_get( 3322 const Eina_Unicode *str = eina_ustrbuf_string_get(
3269 ti->parent.text_node->unicode); 3323 it->text_node->unicode);
3270 int item_start = ti->parent.text_pos; 3324 int item_start = it->text_pos;
3271 size_t len = eina_ustrbuf_length_get(ti->parent.text_node->unicode); 3325 size_t len = eina_ustrbuf_length_get(it->text_node->unicode);
3272#ifndef HAVE_LINEBREAK 3326#ifndef HAVE_LINEBREAK
3273 /* Not used without liblinebreak ATM. */ 3327 /* Not used without liblinebreak ATM. */
3274 (void) breaks; 3328 (void) breaks;
@@ -3276,7 +3330,10 @@ _layout_get_word_mixwrap_common(Ctxt *c, Evas_Object_Textblock_Format *fmt,
3276 3330
3277 { 3331 {
3278 int swrap = -1; 3332 int swrap = -1;
3279 swrap = _layout_text_cutoff_get(c, fmt, ti); 3333 if (it->type == EVAS_TEXTBLOCK_ITEM_FORMAT)
3334 swrap = 0;
3335 else
3336 swrap = _layout_text_cutoff_get(c, fmt, _ITEM_TEXT(it));
3280 /* Avoiding too small textblocks to even contain one char. 3337 /* Avoiding too small textblocks to even contain one char.
3281 * FIXME: This can cause breaking inside ligatures. */ 3338 * FIXME: This can cause breaking inside ligatures. */
3282 3339
@@ -3331,7 +3388,7 @@ _layout_get_word_mixwrap_common(Ctxt *c, Evas_Object_Textblock_Format *fmt,
3331 { 3388 {
3332 if (mixed_wrap) 3389 if (mixed_wrap)
3333 { 3390 {
3334 return _layout_get_charwrap(c, fmt, ti, 3391 return _layout_get_charwrap(c, fmt, it,
3335 line_start, breaks); 3392 line_start, breaks);
3336 } 3393 }
3337 else 3394 else
@@ -3362,20 +3419,20 @@ _layout_get_word_mixwrap_common(Ctxt *c, Evas_Object_Textblock_Format *fmt,
3362/* -1 means no wrap */ 3419/* -1 means no wrap */
3363static int 3420static int
3364_layout_get_wordwrap(Ctxt *c, Evas_Object_Textblock_Format *fmt, 3421_layout_get_wordwrap(Ctxt *c, Evas_Object_Textblock_Format *fmt,
3365 const Evas_Object_Textblock_Text_Item *ti, size_t line_start, 3422 const Evas_Object_Textblock_Item *it, size_t line_start,
3366 const char *breaks) 3423 const char *breaks)
3367{ 3424{
3368 return _layout_get_word_mixwrap_common(c, fmt, ti, EINA_FALSE, line_start, 3425 return _layout_get_word_mixwrap_common(c, fmt, it, EINA_FALSE, line_start,
3369 breaks); 3426 breaks);
3370} 3427}
3371 3428
3372/* -1 means no wrap */ 3429/* -1 means no wrap */
3373static int 3430static int
3374_layout_get_mixedwrap(Ctxt *c, Evas_Object_Textblock_Format *fmt, 3431_layout_get_mixedwrap(Ctxt *c, Evas_Object_Textblock_Format *fmt,
3375 const Evas_Object_Textblock_Text_Item *ti, size_t line_start, 3432 const Evas_Object_Textblock_Item *it, size_t line_start,
3376 const char *breaks) 3433 const char *breaks)
3377{ 3434{
3378 return _layout_get_word_mixwrap_common(c, fmt, ti, EINA_TRUE, line_start, 3435 return _layout_get_word_mixwrap_common(c, fmt, it, EINA_TRUE, line_start,
3379 breaks); 3436 breaks);
3380} 3437}
3381 3438
@@ -3503,7 +3560,7 @@ _layout_paragraph_reorder_lines(Evas_Object_Textblock_Paragraph *par)
3503 3560
3504static void 3561static void
3505_layout_paragraph_render(Evas_Object_Textblock *o, 3562_layout_paragraph_render(Evas_Object_Textblock *o,
3506 Evas_Object_Textblock_Paragraph *par) 3563 Evas_Object_Textblock_Paragraph *par)
3507{ 3564{
3508 if (par->rendered) 3565 if (par->rendered)
3509 return; 3566 return;
@@ -3521,6 +3578,8 @@ _layout_paragraph_render(Evas_Object_Textblock *o,
3521 par->bidi_props = NULL; 3578 par->bidi_props = NULL;
3522 } 3579 }
3523 } 3580 }
3581#else
3582 (void) o;
3524#endif 3583#endif
3525} 3584}
3526 3585
@@ -3656,120 +3715,127 @@ _layout_par(Ctxt *c)
3656 else if ((it->format->wrap_word || it->format->wrap_char || 3715 else if ((it->format->wrap_word || it->format->wrap_char ||
3657 it->format->wrap_mixed) && it->text_node) 3716 it->format->wrap_mixed) && it->text_node)
3658 { 3717 {
3659 if (it->type == EVAS_TEXTBLOCK_ITEM_FORMAT) 3718 size_t line_start;
3719 size_t it_len;
3720
3721 it_len = (it->type == EVAS_TEXTBLOCK_ITEM_FORMAT) ?
3722 1 : _ITEM_TEXT(it)->text_props.text_len;
3723
3724
3725#ifdef HAVE_LINEBREAK
3726 /* If we haven't calculated the linebreaks yet,
3727 * do */
3728 if (!line_breaks)
3660 { 3729 {
3661 /* Don't wrap if it's the only item */ 3730 /* Only relevant in those cases */
3662 if (c->ln->items) 3731 if (it->format->wrap_word || it->format->wrap_mixed)
3663 { 3732 {
3664 /*FIXME: I should handle format correctly, 3733 const char *lang;
3665 i.e verify we are allowed to break here */ 3734 lang = (it->format->font.fdesc) ?
3666 _layout_line_advance(c, it->format); 3735 it->format->font.fdesc->lang : "";
3667 wrap = -1; 3736 size_t len =
3737 eina_ustrbuf_length_get(
3738 it->text_node->unicode);
3739 line_breaks = malloc(len);
3740 set_linebreaks_utf32((const utf32_t *)
3741 eina_ustrbuf_string_get(
3742 it->text_node->unicode),
3743 len, lang, line_breaks);
3668 } 3744 }
3669 } 3745 }
3746#endif
3747 if (c->ln->items)
3748 line_start = c->ln->items->text_pos;
3670 else 3749 else
3671 { 3750 line_start = it->text_pos;
3672 Evas_Object_Textblock_Text_Item *ti = _ITEM_TEXT(it);
3673 size_t line_start;
3674 3751
3675#ifdef HAVE_LINEBREAK 3752 adv_line = 1;
3676 /* If we haven't calculated the linebreaks yet, 3753 /* If we don't already have a wrap point from before */
3677 * do */ 3754 if (wrap < 0)
3678 if (!line_breaks) 3755 {
3679 { 3756 if (it->format->wrap_word)
3680 /* Only relevant in those cases */ 3757 wrap = _layout_get_wordwrap(c, it->format, it,
3681 if (it->format->wrap_word || it->format->wrap_mixed) 3758 line_start, line_breaks);
3682 { 3759 else if (it->format->wrap_char)
3683 const char *lang; 3760 wrap = _layout_get_charwrap(c, it->format, it,
3684 lang = (it->format->font.fdesc) ? 3761 line_start, line_breaks);
3685 it->format->font.fdesc->lang : ""; 3762 else if (it->format->wrap_mixed)
3686 size_t len = 3763 wrap = _layout_get_mixedwrap(c, it->format, it,
3687 eina_ustrbuf_length_get( 3764 line_start, line_breaks);
3688 it->text_node->unicode);
3689 line_breaks = malloc(len);
3690 set_linebreaks_utf32((const utf32_t *)
3691 eina_ustrbuf_string_get(
3692 it->text_node->unicode),
3693 len, lang, line_breaks);
3694 }
3695 }
3696#endif
3697 if (c->ln->items)
3698 line_start = c->ln->items->text_pos;
3699 else 3765 else
3700 line_start = ti->parent.text_pos; 3766 wrap = -1;
3701 3767 }
3702 adv_line = 1;
3703 /* If we don't already have a wrap point from before */
3704 if (wrap < 0)
3705 {
3706 if (it->format->wrap_word)
3707 wrap = _layout_get_wordwrap(c, it->format, ti,
3708 line_start, line_breaks);
3709 else if (it->format->wrap_char)
3710 wrap = _layout_get_charwrap(c, it->format, ti,
3711 line_start, line_breaks);
3712 else if (it->format->wrap_mixed)
3713 wrap = _layout_get_mixedwrap(c, it->format, ti,
3714 line_start, line_breaks);
3715 else
3716 wrap = -1;
3717 }
3718 3768
3719 /* If it's before the item, rollback and apply. 3769 /* If it's before the item, rollback and apply.
3720 if it's in the item, cut. 3770 if it's in the item, cut.
3721 If it's after the item, delay the cut */ 3771 If it's after the item, delay the cut */
3722 if (wrap > 0) 3772 if (wrap > 0)
3773 {
3774 size_t uwrap = (size_t) wrap;
3775 if (uwrap < it->text_pos)
3723 { 3776 {
3724 size_t uwrap = (size_t) wrap; 3777 /* Rollback latest additions, and cut that
3725 if (uwrap < ti->parent.text_pos) 3778 item */
3779 i = eina_list_prev(i);
3780 it = eina_list_data_get(i);
3781 while (uwrap < it->text_pos)
3726 { 3782 {
3727 /* Rollback latest additions, and cut that
3728 item */
3729 i = eina_list_prev(i);
3730 it = eina_list_data_get(i);
3731 while (uwrap < it->text_pos)
3732 {
3733 c->ln->items = _ITEM(
3734 eina_inlist_remove(
3735 EINA_INLIST_GET(c->ln->items),
3736 EINA_INLIST_GET(it)));
3737 i = eina_list_prev(i);
3738 it = eina_list_data_get(i);
3739 }
3740 c->x = it->x;
3741 c->ln->items = _ITEM( 3783 c->ln->items = _ITEM(
3742 eina_inlist_remove( 3784 eina_inlist_remove(
3743 EINA_INLIST_GET(c->ln->items), 3785 EINA_INLIST_GET(c->ln->items),
3744 EINA_INLIST_GET(it))); 3786 EINA_INLIST_GET(it)));
3745 continue; 3787 i = eina_list_prev(i);
3788 it = eina_list_data_get(i);
3746 } 3789 }
3747 /* If it points to the end, it means the previous 3790 c->x = it->x;
3748 * char is a whitespace we should remove, so this 3791 c->ln->items = _ITEM(
3749 * is a wanted cutting point. */ 3792 eina_inlist_remove(
3750 else if (uwrap > ti->parent.text_pos + 3793 EINA_INLIST_GET(c->ln->items),
3751 ti->text_props.text_len) 3794 EINA_INLIST_GET(it)));
3752 wrap = -1; /* Delay the cut in a smart way 3795 continue;
3753 i.e use the item_pos as the line_start, because
3754 there's already no cut before*/
3755 else
3756 wrap -= ti->parent.text_pos; /* Cut here */
3757 } 3796 }
3758 3797 /* If it points to the end, it means the previous
3759 if (wrap > 0) 3798 * char is a whitespace we should remove, so this
3799 * is a wanted cutting point. */
3800 else if (uwrap > it->text_pos + it_len)
3760 { 3801 {
3761 _layout_item_text_split_strip_white(c, ti, i, wrap); 3802 /* FIXME: Should redo the ellipsis handling.
3762 } 3803 * If we can do ellipsis, just cut here. */
3763 else if (wrap == 0) 3804 if (it->format->ellipsis == 1.0)
3805 {
3806 _layout_handle_ellipsis(c, it, i);
3807 ret = 1;
3808 goto end;
3809 }
3810 else
3811 {
3812 /* Delay the cut in a smart way i.e use the
3813 item_pos as the line_start, because
3814 there's already no cut before*/
3815 wrap = -1;
3816 }
3817 }
3818 else
3819 wrap -= it->text_pos; /* Cut here */
3820 }
3821
3822 if (wrap > 0)
3823 {
3824 if (it->type == EVAS_TEXTBLOCK_ITEM_TEXT)
3764 { 3825 {
3765 /* Should wrap before the item */ 3826 _layout_item_text_split_strip_white(c,
3766 adv_line = 0; 3827 _ITEM_TEXT(it), i, wrap);
3767 redo_item = 1;
3768 _layout_line_advance(c, it->format);
3769 } 3828 }
3770 /* Reset wrap */
3771 wrap = -1;
3772 } 3829 }
3830 else if (wrap == 0)
3831 {
3832 /* Should wrap before the item */
3833 adv_line = 0;
3834 redo_item = 1;
3835 _layout_line_advance(c, it->format);
3836 }
3837 /* Reset wrap */
3838 wrap = -1;
3773 } 3839 }
3774 } 3840 }
3775 3841
@@ -3844,18 +3910,16 @@ _format_changes_invalidate_text_nodes(Ctxt *c)
3844 const char *fstr = fnode->orig_format; 3910 const char *fstr = fnode->orig_format;
3845 /* balance < 0 means we gave up and everything should be 3911 /* balance < 0 means we gave up and everything should be
3846 * invalidated */ 3912 * invalidated */
3847 if (*fstr == '+') 3913 if (fnode->opener && !fnode->own_closer)
3848 { 3914 {
3849 balance++; 3915 balance++;
3850 if (!fstack) 3916 if (!fstack)
3851 start_n = fnode->text_node; 3917 start_n = fnode->text_node;
3852 fstack = eina_list_prepend(fstack, fnode); 3918 fstack = eina_list_prepend(fstack, fnode);
3853 } 3919 }
3854 else if (*fstr == '-') 3920 else if (!fnode->opener)
3855 { 3921 {
3856 size_t fstr_len; 3922 size_t fstr_len;
3857 /* Skip the '-' */
3858 fstr++;
3859 fstr_len = strlen(fstr); 3923 fstr_len = strlen(fstr);
3860 /* Generic popper, just pop */ 3924 /* Generic popper, just pop */
3861 if (((fstr[0] == ' ') && !fstr[1]) || !fstr[0]) 3925 if (((fstr[0] == ' ') && !fstr[1]) || !fstr[0])
@@ -4429,12 +4493,12 @@ evas_textblock_style_set(Evas_Textblock_Style *ts, const char *text)
4429 { 4493 {
4430 if (!key_start) 4494 if (!key_start)
4431 { 4495 {
4432 if (!isspace(*p)) 4496 if (!isspace((unsigned char)(*p)))
4433 key_start = p; 4497 key_start = p;
4434 } 4498 }
4435 else if (!key_stop) 4499 else if (!key_stop)
4436 { 4500 {
4437 if ((*p == '=') || (isspace(*p))) 4501 if ((*p == '=') || (isspace((unsigned char)(*p))))
4438 key_stop = p; 4502 key_stop = p;
4439 } 4503 }
4440 else if (!val_start) 4504 else if (!val_start)
@@ -4479,10 +4543,10 @@ evas_textblock_style_set(Evas_Textblock_Style *ts, const char *text)
4479 tag = calloc(1, sizeof(Evas_Object_Style_Tag)); 4543 tag = calloc(1, sizeof(Evas_Object_Style_Tag));
4480 if (tag) 4544 if (tag)
4481 { 4545 {
4482 tag->tag = tags; 4546 tag->tag.tag = tags;
4483 tag->replace = replaces; 4547 tag->tag.replace = replaces;
4484 tag->tag_len = tag_len; 4548 tag->tag.tag_len = tag_len;
4485 tag->replace_len = replace_len; 4549 tag->tag.replace_len = replace_len;
4486 ts->tags = (Evas_Object_Style_Tag *)eina_inlist_append(EINA_INLIST_GET(ts->tags), EINA_INLIST_GET(tag)); 4550 ts->tags = (Evas_Object_Style_Tag *)eina_inlist_append(EINA_INLIST_GET(ts->tags), EINA_INLIST_GET(tag));
4487 } 4551 }
4488 else 4552 else
@@ -4689,7 +4753,11 @@ _escaped_char_match(const char *s, int *adv)
4689 while ((*mc) && (*sc)) 4753 while ((*mc) && (*sc))
4690 { 4754 {
4691 if ((unsigned char)*sc < (unsigned char)*mc) return NULL; 4755 if ((unsigned char)*sc < (unsigned char)*mc) return NULL;
4692 if (*sc != *mc) match = 0; 4756 if (*sc != *mc)
4757 {
4758 match = 0;
4759 break;
4760 }
4693 mc++; 4761 mc++;
4694 sc++; 4762 sc++;
4695 } 4763 }
@@ -4723,7 +4791,7 @@ _escaped_char_get(const char *s, const char *s_end)
4723 int base = 10; 4791 int base = 10;
4724 s += 2; /* Skip "&#" */ 4792 s += 2; /* Skip "&#" */
4725 4793
4726 if (tolower(*s) == 'x') 4794 if (tolower((unsigned char)(*s)) == 'x')
4727 { 4795 {
4728 s++; 4796 s++;
4729 base = 16; 4797 base = 16;
@@ -4876,6 +4944,7 @@ evas_object_textblock_text_markup_prepend(Evas_Textblock_Cursor *cur, const char
4876 * NULL is reached. */ 4944 * NULL is reached. */
4877 for (;;) 4945 for (;;)
4878 { 4946 {
4947 size_t text_len;
4879 /* If we got to the end of string or just finished/started tag 4948 /* If we got to the end of string or just finished/started tag
4880 * or escape sequence handling. */ 4949 * or escape sequence handling. */
4881 if ((*p == 0) || 4950 if ((*p == 0) ||
@@ -4953,14 +5022,22 @@ evas_object_textblock_text_markup_prepend(Evas_Textblock_Cursor *cur, const char
4953 } 5022 }
4954 } 5023 }
4955 /* Unicode object replcament char */ 5024 /* Unicode object replcament char */
4956 else if (!strncmp("\xEF\xBF\xBC", p, 3)) 5025 else if (!strncmp(_REPLACEMENT_CHAR_UTF8, p,
5026 text_len = strlen(_REPLACEMENT_CHAR_UTF8)) ||
5027 !strncmp(_NEWLINE_UTF8, p,
5028 text_len = strlen(_NEWLINE_UTF8)) ||
5029 !strncmp(_TAB_UTF8, p,
5030 text_len = strlen(_TAB_UTF8)) ||
5031 !strncmp(_PARAGRAPH_SEPARATOR_UTF8, p,
5032 text_len = strlen(_PARAGRAPH_SEPARATOR_UTF8)))
4957 { 5033 {
4958 /*FIXME: currently just remove them, maybe do something 5034 /*FIXME: currently just remove them, maybe do something
4959 * fancier in the future, atm it breaks if this char 5035 * fancier in the future, atm it breaks if this char
4960 * is inside <> */ 5036 * is inside <> */
4961 _prepend_text_run(cur, s, p); 5037 _prepend_text_run(cur, s, p);
4962 p += 2; /* it's also advanced later in this loop need +3 5038 /* it's also advanced later in this loop need +text_len
4963 * in total*/ 5039 in total*/
5040 p += text_len - 1;
4964 s = p + 1; /* One after the end of the replacement char */ 5041 s = p + 1; /* One after the end of the replacement char */
4965 } 5042 }
4966 p++; 5043 p++;
@@ -4979,19 +5056,19 @@ evas_object_textblock_text_markup_prepend(Evas_Textblock_Cursor *cur, const char
4979 * @param fnode the format node to process. 5056 * @param fnode the format node to process.
4980 */ 5057 */
4981static void 5058static void
4982_markup_get_format_append(Evas_Object_Textblock *o __UNUSED__, Eina_Strbuf *txt, Evas_Object_Textblock_Node_Format *fnode) 5059_markup_get_format_append(Eina_Strbuf *txt, Evas_Object_Textblock_Node_Format *fnode)
4983{ 5060{
4984 eina_strbuf_append_char(txt, '<'); 5061 eina_strbuf_append_char(txt, '<');
4985 { 5062 {
4986 const char *s; 5063 const char *s;
4987 int pop = 0;
4988 5064
4989 // FIXME: need to escape 5065 // FIXME: need to escape
4990 s = fnode->orig_format; 5066 s = fnode->orig_format;
4991 if (*s == '-') pop = 1; 5067 if (!fnode->opener && !fnode->own_closer)
4992 while ((*s == ' ') || (*s == '+') || (*s == '-')) s++; 5068 eina_strbuf_append_char(txt, '/');
4993 if (pop) eina_strbuf_append_char(txt, '/');
4994 eina_strbuf_append(txt, s); 5069 eina_strbuf_append(txt, s);
5070 if (fnode->own_closer)
5071 eina_strbuf_append_char(txt, '/');
4995 } 5072 }
4996 eina_strbuf_append_char(txt, '>'); 5073 eina_strbuf_append_char(txt, '>');
4997} 5074}
@@ -5061,7 +5138,7 @@ evas_object_textblock_text_markup_get(const Evas_Object *obj)
5061 tmp_ch = text[off]; 5138 tmp_ch = text[off];
5062 text[off] = 0; /* Null terminate the part of the string */ 5139 text[off] = 0; /* Null terminate the part of the string */
5063 _markup_get_text_append(txt, text); 5140 _markup_get_text_append(txt, text);
5064 _markup_get_format_append(o, txt, fnode); 5141 _markup_get_format_append(txt, fnode);
5065 text[off] = tmp_ch; /* Restore the char */ 5142 text[off] = tmp_ch; /* Restore the char */
5066 text += off; 5143 text += off;
5067 if (fnode->visible) 5144 if (fnode->visible)
@@ -5086,6 +5163,190 @@ evas_object_textblock_text_markup_get(const Evas_Object *obj)
5086 return o->markup_text; 5163 return o->markup_text;
5087} 5164}
5088 5165
5166EAPI char *
5167evas_textblock_text_markup_to_utf8(const Evas_Object *obj, const char *text)
5168{
5169 /* FIXME: Redundant and awful, should be merged with markup_prepend */
5170 Eina_Strbuf *sbuf;
5171 char *s, *p, *ret;
5172 char *tag_start, *tag_end, *esc_start, *esc_end;
5173
5174 if (!text) return NULL;
5175
5176
5177 tag_start = tag_end = esc_start = esc_end = NULL;
5178 sbuf = eina_strbuf_new();
5179 p = (char *)text;
5180 s = p;
5181 /* This loop goes through all of the mark up text until it finds format
5182 * tags, escape sequences or the terminating NULL. When it finds either
5183 * of those, it appends the text found up until that point to the textblock
5184 * proccesses whatever found. It repeats itself until the termainating
5185 * NULL is reached. */
5186 for (;;)
5187 {
5188 /* If we got to the end of string or just finished/started tag
5189 * or escape sequence handling. */
5190 if ((*p == 0) ||
5191 (tag_end) || (esc_end) ||
5192 (tag_start) || (esc_start))
5193 {
5194 if (tag_end)
5195 {
5196 /* If we reached to a tag ending, analyze the tag */
5197 char *ttag;
5198 size_t ttag_len;
5199
5200 tag_start++; /* Skip the < */
5201 tag_end--; /* Skip the > */
5202 if ((tag_end > tag_start) && (*(tag_end - 1) == '/'))
5203 {
5204 tag_end --; /* Skip the terminating '/' */
5205 while (*(tag_end - 1) == ' ')
5206 tag_end--; /* skip trailing ' ' */
5207 }
5208
5209 ttag_len = tag_end - tag_start;
5210
5211 ttag = malloc(ttag_len + 1);
5212 if (ttag)
5213 {
5214 const char *match = NULL;
5215 size_t replace_len;
5216 memcpy(ttag, tag_start, ttag_len);
5217 ttag[ttag_len] = 0;
5218
5219
5220 if (obj)
5221 {
5222 match = _style_match_tag(
5223 evas_object_textblock_style_get(obj),
5224 ttag, ttag_len, &replace_len);
5225 }
5226
5227 if (!match) match = ttag;
5228
5229 if (_IS_PARAGRAPH_SEPARATOR_SIMPLE(match))
5230 eina_strbuf_append(sbuf, _PARAGRAPH_SEPARATOR_UTF8);
5231 else if (_IS_LINE_SEPARATOR(match))
5232 eina_strbuf_append(sbuf, _NEWLINE_UTF8);
5233 else if (_IS_TAB(match))
5234 eina_strbuf_append(sbuf, _TAB_UTF8);
5235 else if (!strncmp(match, "item", 4))
5236 eina_strbuf_append(sbuf, _REPLACEMENT_CHAR_UTF8);
5237
5238 free(ttag);
5239 }
5240 tag_start = tag_end = NULL;
5241 }
5242 else if (esc_end)
5243 {
5244 const char *escape;
5245
5246 escape = _escaped_char_get(esc_start, esc_end + 1);
5247 eina_strbuf_append(sbuf, escape);
5248 esc_start = esc_end = NULL;
5249 }
5250 else if (*p == 0)
5251 {
5252 eina_strbuf_append_length(sbuf, s, p - s);
5253 s = NULL;
5254 }
5255 if (*p == 0)
5256 break;
5257 }
5258 if (*p == '<')
5259 {
5260 if (!esc_start)
5261 {
5262 /* Append the text prior to this to the textblock and
5263 * mark the start of the tag */
5264 tag_start = p;
5265 tag_end = NULL;
5266 eina_strbuf_append_length(sbuf, s, p - s);
5267 s = NULL;
5268 }
5269 }
5270 else if (*p == '>')
5271 {
5272 if (tag_start)
5273 {
5274 tag_end = p + 1;
5275 s = p + 1;
5276 }
5277 }
5278 else if (*p == '&')
5279 {
5280 if (!tag_start)
5281 {
5282 /* Append the text prior to this to the textblock and mark
5283 * the start of the escape sequence */
5284 esc_start = p;
5285 esc_end = NULL;
5286 eina_strbuf_append_length(sbuf, s, p - s);
5287 s = NULL;
5288 }
5289 }
5290 else if (*p == ';')
5291 {
5292 if (esc_start)
5293 {
5294 esc_end = p;
5295 s = p + 1;
5296 }
5297 }
5298 p++;
5299 }
5300
5301 ret = eina_strbuf_string_steal(sbuf);
5302 eina_strbuf_free(sbuf);
5303 return ret;
5304}
5305
5306EAPI char *
5307evas_textblock_text_utf8_to_markup(const Evas_Object *obj, const char *text)
5308{
5309 Eina_Strbuf *sbuf;
5310 char *str = NULL;
5311 int ch, pos = 0, pos2 = 0;
5312
5313 (void) obj;
5314
5315 if (!text) return NULL;
5316
5317 sbuf = eina_strbuf_new();
5318
5319 for (;;)
5320 {
5321 pos = pos2;
5322 pos2 = evas_string_char_next_get(text, pos2, &ch);
5323 if ((ch <= 0) || (pos2 <= 0)) break;
5324
5325 if (ch == _NEWLINE)
5326 eina_strbuf_append(sbuf, "<br/>");
5327 else if (ch == _TAB)
5328 eina_strbuf_append(sbuf, "<tab/>");
5329 else if (ch == '<')
5330 eina_strbuf_append(sbuf, "&lt;");
5331 else if (ch == '>')
5332 eina_strbuf_append(sbuf, "&gt;");
5333 else if (ch == '&')
5334 eina_strbuf_append(sbuf, "&amp;");
5335 else if (ch == _PARAGRAPH_SEPARATOR)
5336 eina_strbuf_append(sbuf, "<ps/>");
5337 else if (ch == _REPLACEMENT_CHAR)
5338 eina_strbuf_append(sbuf, "&#xfffc;");
5339 else
5340 {
5341 eina_strbuf_append_length(sbuf, text + pos, pos2 - pos);
5342 }
5343 }
5344 str = eina_strbuf_string_steal(sbuf);
5345 eina_strbuf_free(sbuf);
5346 return str;
5347
5348}
5349
5089/* cursors */ 5350/* cursors */
5090 5351
5091/** 5352/**
@@ -5453,15 +5714,13 @@ evas_textblock_node_format_remove_pair(Evas_Object *obj,
5453 { 5714 {
5454 const char *fstr = fmt->orig_format; 5715 const char *fstr = fmt->orig_format;
5455 5716
5456 if (fstr && (*fstr == '+')) 5717 if (fmt->opener && !fmt->own_closer)
5457 { 5718 {
5458 fstack = eina_list_prepend(fstack, fmt); 5719 fstack = eina_list_prepend(fstack, fmt);
5459 } 5720 }
5460 else if (fstr && (*fstr == '-')) 5721 else if (fstr && !fmt->opener)
5461 { 5722 {
5462 size_t fstr_len; 5723 size_t fstr_len;
5463 /* Skip the '-' */
5464 fstr++;
5465 fstr_len = strlen(fstr); 5724 fstr_len = strlen(fstr);
5466 /* Generic popper, just pop */ 5725 /* Generic popper, just pop */
5467 if (((fstr[0] == ' ') && !fstr[1]) || !fstr[0]) 5726 if (((fstr[0] == ' ') && !fstr[1]) || !fstr[0])
@@ -5708,6 +5967,111 @@ evas_textblock_cursor_format_prev(Evas_Textblock_Cursor *cur)
5708 return EINA_FALSE; 5967 return EINA_FALSE;
5709} 5968}
5710 5969
5970#ifdef HAVE_LINEBREAK
5971
5972/* BREAK_AFTER: true if we can break after the current char.
5973 * Both macros assume str[i] is not the terminating nul */
5974#define BREAK_AFTER(i) \
5975 (breaks[i] == WORDBREAK_BREAK)
5976
5977#else
5978
5979#define BREAK_AFTER(i) \
5980 ((!str[i + 1]) || \
5981 (_is_white(str[i]) && !_is_white(str[i + 1])) || \
5982 (!_is_white(str[i]) && _is_white(str[i + 1])))
5983
5984#endif
5985
5986EAPI Eina_Bool
5987evas_textblock_cursor_word_start(Evas_Textblock_Cursor *cur)
5988{
5989 const Eina_Unicode *text;
5990 size_t i;
5991#ifdef HAVE_LINEBREAK
5992 char *breaks;
5993#endif
5994
5995 if (!cur) return EINA_FALSE;
5996 if (!cur->node) return EINA_FALSE;
5997
5998 text = eina_ustrbuf_string_get(cur->node->unicode);
5999
6000#ifdef HAVE_LINEBREAK
6001 {
6002 const char *lang = ""; /* FIXME: get lang */
6003 size_t len = eina_ustrbuf_length_get(cur->node->unicode);
6004 breaks = malloc(len);
6005 set_wordbreaks_utf32((const utf32_t *) text, len, lang, breaks);
6006 }
6007#endif
6008
6009 i = cur->pos;
6010
6011 /* Skip the first one. This ensures we don't point to the nul, and also
6012 * we just don't care about it anyway. */
6013 if (i > 0) i--;
6014
6015 for ( ; i > 0 ; i--)
6016 {
6017 if (BREAK_AFTER(i))
6018 {
6019 /* Advance to the current char */
6020 i++;
6021 break;
6022 }
6023 }
6024
6025 cur->pos = i;
6026
6027#ifdef HAVE_LINEBREAK
6028 free(breaks);
6029#endif
6030 return EINA_TRUE;
6031}
6032
6033EAPI Eina_Bool
6034evas_textblock_cursor_word_end(Evas_Textblock_Cursor *cur)
6035{
6036 const Eina_Unicode *text;
6037 size_t i;
6038#ifdef HAVE_LINEBREAK
6039 char *breaks;
6040#endif
6041
6042 if (!cur) return EINA_FALSE;
6043 if (!cur->node) return EINA_FALSE;
6044
6045 text = eina_ustrbuf_string_get(cur->node->unicode);
6046
6047#ifdef HAVE_LINEBREAK
6048 {
6049 const char *lang = ""; /* FIXME: get lang */
6050 size_t len = eina_ustrbuf_length_get(cur->node->unicode);
6051 breaks = malloc(len);
6052 set_wordbreaks_utf32((const utf32_t *) text, len, lang, breaks);
6053 }
6054#endif
6055
6056 i = cur->pos;
6057
6058 for ( ; text[i] ; i++)
6059 {
6060 if (BREAK_AFTER(i))
6061 {
6062 /* This is the one to break after. */
6063 break;
6064 }
6065 }
6066
6067 cur->pos = i;
6068
6069#ifdef HAVE_LINEBREAK
6070 free(breaks);
6071#endif
6072 return EINA_TRUE;;
6073}
6074
5711EAPI Eina_Bool 6075EAPI Eina_Bool
5712evas_textblock_cursor_char_next(Evas_Textblock_Cursor *cur) 6076evas_textblock_cursor_char_next(Evas_Textblock_Cursor *cur)
5713{ 6077{
@@ -5887,10 +6251,9 @@ _evas_textblock_format_is_visible(Evas_Object_Textblock_Node_Format *fnode,
5887 fnode->anchor = ANCHOR_NONE; 6251 fnode->anchor = ANCHOR_NONE;
5888 if (!s) return; 6252 if (!s) return;
5889 6253
5890 if (s[0] == '+' || s[0] == '-') 6254 if (!fnode->own_closer)
5891 { 6255 {
5892 is_opener = (s[0] == '+'); 6256 is_opener = fnode->opener;
5893 s++;
5894 fnode->format_change = EINA_TRUE; 6257 fnode->format_change = EINA_TRUE;
5895 } 6258 }
5896 6259
@@ -5902,6 +6265,8 @@ _evas_textblock_format_is_visible(Evas_Object_Textblock_Node_Format *fnode,
5902 * closing */ 6265 * closing */
5903 if ((!strncmp(item, "\n", itlen) || !strncmp(item, "\\n", itlen)) || 6266 if ((!strncmp(item, "\n", itlen) || !strncmp(item, "\\n", itlen)) ||
5904 (!strncmp(item, "\t", itlen) || !strncmp(item, "\\t", itlen)) || 6267 (!strncmp(item, "\t", itlen) || !strncmp(item, "\\t", itlen)) ||
6268 (!strncmp(item, "br", itlen) && (itlen >= 2)) ||
6269 (!strncmp(item, "tab", itlen) && (itlen >= 3)) ||
5905 (!strncmp(item, "ps", itlen) && (itlen >= 2)) || 6270 (!strncmp(item, "ps", itlen) && (itlen >= 2)) ||
5906 (!strncmp(item, "item", itlen) && (itlen >= 4) && is_opener)) 6271 (!strncmp(item, "item", itlen) && (itlen >= 4) && is_opener))
5907 { 6272 {
@@ -5986,19 +6351,17 @@ _evas_textblock_node_format_remove_matching(Evas_Object_Textblock *o,
5986 } 6351 }
5987 6352
5988 6353
5989 if (fstr && (*fstr == '+')) 6354 if (fmt->opener && !fmt->own_closer)
5990 { 6355 {
5991 formats = eina_list_prepend(formats, fmt); 6356 formats = eina_list_prepend(formats, fmt);
5992 } 6357 }
5993 else if (fstr && (*fstr == '-')) 6358 else if (fstr && !fmt->opener)
5994 { 6359 {
5995 Evas_Object_Textblock_Node_Format *fnode; 6360 Evas_Object_Textblock_Node_Format *fnode;
5996 size_t fstr_len; 6361 size_t fstr_len;
5997 /* Skip the '-' */
5998 fstr++;
5999 fstr_len = strlen(fstr); 6362 fstr_len = strlen(fstr);
6000 /* Generic popper, just pop */ 6363 /* Generic popper, just pop (if there's anything to pop). */
6001 if (((fstr[0] == ' ') && !fstr[1]) || !fstr[0]) 6364 if (formats && (((fstr[0] == ' ') && !fstr[1]) || !fstr[0]))
6002 { 6365 {
6003 fnode = eina_list_data_get(formats); 6366 fnode = eina_list_data_get(formats);
6004 formats = eina_list_remove_list(formats, formats); 6367 formats = eina_list_remove_list(formats, formats);
@@ -6855,6 +7218,7 @@ _evas_textblock_node_format_new(Evas_Object_Textblock *o, const char *_format)
6855{ 7218{
6856 Evas_Object_Textblock_Node_Format *n; 7219 Evas_Object_Textblock_Node_Format *n;
6857 const char *format = _format; 7220 const char *format = _format;
7221 const char *pre_stripped_format = NULL;
6858 7222
6859 n = calloc(1, sizeof(Evas_Object_Textblock_Node_Format)); 7223 n = calloc(1, sizeof(Evas_Object_Textblock_Node_Format));
6860 /* Create orig_format and format */ 7224 /* Create orig_format and format */
@@ -6866,62 +7230,80 @@ _evas_textblock_node_format_new(Evas_Object_Textblock *o, const char *_format)
6866 7230
6867 format++; /* Advance after '<' */ 7231 format++; /* Advance after '<' */
6868 format_len = strlen(format); 7232 format_len = strlen(format);
6869 if (format[format_len - 1] == '>') 7233 if ((format_len > 0) && format[format_len - 1] == '>')
6870 format_len--; /* We don't care about '>' */ 7234 {
7235 format_len--; /* We don't care about '>' */
7236 /* Check if it closes itself. Skip the </> case. */
7237 if ((format_len > 1) && format[format_len - 1] == '/')
7238 {
7239 format_len--; /* We don't care about '/' */
7240 n->own_closer = EINA_TRUE;
7241 }
7242 }
6871 7243
6872 match = _style_match_tag(o->style, format, format_len, &replace_len); 7244 match = _style_match_tag(o->style, format, format_len, &replace_len);
6873 if (match) 7245 if (match)
6874 { 7246 {
6875 if ((match[0] == '+') || (match[0] == '-')) 7247 if (match[0] != '-')
6876 {
6877 char *norm_format;
6878 norm_format = malloc(format_len + 2 + 1);
6879 memcpy(norm_format, match, 2);
6880 memcpy(norm_format + 2, format, format_len);
6881 norm_format[format_len + 2] = '\0';
6882 n->orig_format =
6883 eina_stringshare_add_length(norm_format, format_len + 2);
6884 free(norm_format);
6885 }
6886 else
6887 { 7248 {
6888 n->orig_format = 7249 n->opener = EINA_TRUE;
6889 eina_stringshare_add_length(format, format_len); 7250 if (match[0] != '+')
7251 {
7252 n->own_closer = EINA_TRUE;
7253 }
6890 } 7254 }
6891 n->format = eina_stringshare_add(match); 7255
7256 pre_stripped_format = match;
6892 } 7257 }
6893 else 7258 else
6894 { 7259 {
6895 char *norm_format; 7260 if (format[0] == '/')
6896
6897 norm_format = malloc(format_len + 2 + 1);
6898 if (norm_format)
6899 { 7261 {
6900 if (format[0] == '/') 7262 format++;
6901 { 7263 format_len--;
6902 memcpy(norm_format, "- ", 2); 7264 }
6903 memcpy(norm_format + 2, format + 1, format_len - 1); 7265 else
6904 norm_format[format_len + 2 - 1] = '\0'; 7266 {
6905 } 7267 n->opener = EINA_TRUE;
6906 else
6907 {
6908 memcpy(norm_format, "+ ", 2);
6909 memcpy(norm_format + 2, format, format_len);
6910 norm_format[format_len + 2] = '\0';
6911 }
6912 n->orig_format = eina_stringshare_add(norm_format);
6913 free(norm_format);
6914 } 7268 }
6915 n->format = eina_stringshare_ref(n->orig_format);
6916 } 7269 }
7270
7271 n->orig_format = eina_stringshare_add_length(format, format_len);
7272
7273 if (!pre_stripped_format)
7274 pre_stripped_format = n->orig_format;
6917 } 7275 }
6918 /* Just use as is, it's a special format. */ 7276 /* Just use as is, it's a special format. */
6919 else 7277 else
6920 { 7278 {
6921 n->orig_format = eina_stringshare_add(format); 7279 const char *tmp = format;
6922 n->format = eina_stringshare_ref(n->orig_format); 7280 if (format[0] != '-')
7281 {
7282 n->opener = EINA_TRUE;
7283 if (format[0] != '+')
7284 {
7285 n->own_closer = EINA_TRUE;
7286 }
7287 }
7288 if ((*tmp == '+') || (*tmp == '-'))
7289 {
7290 tmp++;
7291 while (*tmp == ' ') tmp++;
7292 }
7293 n->orig_format = eina_stringshare_add(tmp);
7294 pre_stripped_format = n->orig_format;
6923 } 7295 }
6924 7296
7297 /* Strip format */
7298 {
7299 const char *tmp = pre_stripped_format;
7300 if ((*tmp == '+') || (*tmp == '-'))
7301 {
7302 tmp++;
7303 while (*tmp == ' ') tmp++;
7304 }
7305 n->format = eina_stringshare_add(tmp);
7306 }
6925 format = n->format; 7307 format = n->format;
6926 7308
6927 _evas_textblock_format_is_visible(n, format); 7309 _evas_textblock_format_is_visible(n, format);
@@ -7051,11 +7433,11 @@ evas_textblock_cursor_format_append(Evas_Textblock_Cursor *cur, const char *form
7051 if (_IS_PARAGRAPH_SEPARATOR(o, format)) 7433 if (_IS_PARAGRAPH_SEPARATOR(o, format))
7052 insert_char = _PARAGRAPH_SEPARATOR; 7434 insert_char = _PARAGRAPH_SEPARATOR;
7053 else if (_IS_LINE_SEPARATOR(format)) 7435 else if (_IS_LINE_SEPARATOR(format))
7054 insert_char = '\n'; 7436 insert_char = _NEWLINE;
7055 else if (_IS_TAB(format)) 7437 else if (_IS_TAB(format))
7056 insert_char = '\t'; 7438 insert_char = _TAB;
7057 else 7439 else
7058 insert_char = EVAS_TEXTBLOCK_REPLACEMENT_CHAR; 7440 insert_char = _REPLACEMENT_CHAR;
7059 7441
7060 eina_ustrbuf_insert_char(cur->node->unicode, insert_char, cur->pos); 7442 eina_ustrbuf_insert_char(cur->node->unicode, insert_char, cur->pos);
7061 7443
@@ -7142,7 +7524,7 @@ evas_textblock_cursor_char_delete(Evas_Textblock_Cursor *cur)
7142 should_merge = EINA_TRUE; 7524 should_merge = EINA_TRUE;
7143 } 7525 }
7144 /* If a singnular, mark as invisible, so we'll delete it. */ 7526 /* If a singnular, mark as invisible, so we'll delete it. */
7145 if (!format || ((*format != '+') && (*format != '-'))) 7527 if (!format || last_fmt->own_closer)
7146 { 7528 {
7147 last_fmt->visible = EINA_FALSE; 7529 last_fmt->visible = EINA_FALSE;
7148 } 7530 }
@@ -7271,60 +7653,40 @@ evas_textblock_cursor_range_delete(Evas_Textblock_Cursor *cur1, Evas_Textblock_C
7271EAPI char * 7653EAPI char *
7272evas_textblock_cursor_content_get(const Evas_Textblock_Cursor *cur) 7654evas_textblock_cursor_content_get(const Evas_Textblock_Cursor *cur)
7273{ 7655{
7274 const Eina_Unicode *ustr;
7275 Eina_Unicode buf[2];
7276 char *s;
7277 if (!cur || !cur->node) return NULL; 7656 if (!cur || !cur->node) return NULL;
7278 if (evas_textblock_cursor_format_is_visible_get(cur)) 7657 if (evas_textblock_cursor_format_is_visible_get(cur))
7279 { 7658 {
7280 size_t len; 7659 Eina_Strbuf *buf;
7281 const char *fstr; 7660 Evas_Object_Textblock_Node_Format *fnode;
7282 char *ret; 7661 char *ret;
7283 int pop = 0; 7662 fnode = _evas_textblock_node_visible_at_pos_get(
7284 fstr = evas_textblock_node_format_text_get( 7663 evas_textblock_cursor_format_get(cur));
7285 _evas_textblock_node_visible_at_pos_get(
7286 evas_textblock_cursor_format_get(cur)));
7287
7288 if (!fstr)
7289 return NULL;
7290 7664
7291 if (*fstr == '-') pop = 1; 7665 buf = eina_strbuf_new();
7292 while ((*fstr == ' ') || (*fstr == '+') || (*fstr == '-')) fstr++; 7666 _markup_get_format_append(buf, fnode);
7293 len = strlen(fstr); 7667 ret = eina_strbuf_string_steal(buf);
7294 7668 eina_strbuf_free(buf);
7295 {
7296 char *tmp;
7297 if (pop)
7298 {
7299 ret = tmp = malloc(len + 3 + 1); /* </> and the null */
7300 memcpy(tmp, "</", 2);
7301 tmp += 2;
7302 }
7303 else
7304 {
7305 ret = tmp = malloc(len + 2 + 1); /* <> and the null */
7306 *tmp = '<';
7307 tmp++;
7308 }
7309 memcpy(tmp, fstr, len);
7310 memcpy(tmp + len, ">", 2); /* Including the null */
7311 }
7312 7669
7313 return ret; 7670 return ret;
7314 } 7671 }
7672 else
7673 {
7674 const Eina_Unicode *ustr;
7675 Eina_Unicode buf[2];
7676 char *s;
7315 7677
7316 ustr = eina_ustrbuf_string_get(cur->node->unicode); 7678 ustr = eina_ustrbuf_string_get(cur->node->unicode);
7317 buf[0] = ustr[cur->pos]; 7679 buf[0] = ustr[cur->pos];
7318 buf[1] = 0; 7680 buf[1] = 0;
7319 s = eina_unicode_unicode_to_utf8(buf, NULL); 7681 s = eina_unicode_unicode_to_utf8(buf, NULL);
7320 7682
7321 return s; 7683 return s;
7684 }
7322} 7685}
7323 7686
7324static char * 7687static char *
7325_evas_textblock_cursor_range_text_markup_get(const Evas_Textblock_Cursor *cur1, const Evas_Textblock_Cursor *_cur2) 7688_evas_textblock_cursor_range_text_markup_get(const Evas_Textblock_Cursor *cur1, const Evas_Textblock_Cursor *_cur2)
7326{ 7689{
7327 Evas_Object_Textblock *o;
7328 Evas_Object_Textblock_Node_Text *tnode; 7690 Evas_Object_Textblock_Node_Text *tnode;
7329 Eina_Strbuf *buf; 7691 Eina_Strbuf *buf;
7330 Evas_Textblock_Cursor *cur2; 7692 Evas_Textblock_Cursor *cur2;
@@ -7333,7 +7695,6 @@ _evas_textblock_cursor_range_text_markup_get(const Evas_Textblock_Cursor *cur1,
7333 if (!cur1 || !cur1->node) return NULL; 7695 if (!cur1 || !cur1->node) return NULL;
7334 if (!_cur2 || !_cur2->node) return NULL; 7696 if (!_cur2 || !_cur2->node) return NULL;
7335 if (cur1->obj != _cur2->obj) return NULL; 7697 if (cur1->obj != _cur2->obj) return NULL;
7336 o = (Evas_Object_Textblock *)(cur1->obj->object_data);
7337 if (evas_textblock_cursor_compare(cur1, _cur2) > 0) 7698 if (evas_textblock_cursor_compare(cur1, _cur2) > 0)
7338 { 7699 {
7339 const Evas_Textblock_Cursor *tc; 7700 const Evas_Textblock_Cursor *tc;
@@ -7401,7 +7762,7 @@ _evas_textblock_cursor_range_text_markup_get(const Evas_Textblock_Cursor *cur1,
7401 tmp_ch = text[off]; 7762 tmp_ch = text[off];
7402 text[off] = 0; /* Null terminate the part of the string */ 7763 text[off] = 0; /* Null terminate the part of the string */
7403 _markup_get_text_append(buf, text); 7764 _markup_get_text_append(buf, text);
7404 _markup_get_format_append(o, buf, fnode); 7765 _markup_get_format_append(buf, fnode);
7405 text[off] = tmp_ch; /* Restore the char */ 7766 text[off] = tmp_ch; /* Restore the char */
7406 text += off; 7767 text += off;
7407 if (fnode->visible) 7768 if (fnode->visible)
@@ -7623,8 +7984,27 @@ evas_textblock_cursor_format_get(const Evas_Textblock_Cursor *cur)
7623EAPI const char * 7984EAPI const char *
7624evas_textblock_node_format_text_get(const Evas_Object_Textblock_Node_Format *fmt) 7985evas_textblock_node_format_text_get(const Evas_Object_Textblock_Node_Format *fmt)
7625{ 7986{
7987 static char *ret = NULL;
7988 char *tmp;
7989
7626 if (!fmt) return NULL; 7990 if (!fmt) return NULL;
7627 return fmt->orig_format; 7991
7992 if (ret) free(ret);
7993 ret = malloc(strlen(fmt->orig_format) + 2 + 1);
7994 tmp = ret;
7995
7996 if (fmt->opener && !fmt->own_closer)
7997 {
7998 *(tmp++) = '+';
7999 *(tmp++) = ' ';
8000 }
8001 else if (!fmt->opener)
8002 {
8003 *(tmp++) = '-';
8004 *(tmp++) = ' ';
8005 }
8006 strcpy(tmp, fmt->orig_format);
8007 return ret;
7628} 8008}
7629 8009
7630EAPI void 8010EAPI void
@@ -7673,7 +8053,9 @@ evas_textblock_cursor_geometry_get(const Evas_Textblock_Cursor *cur, Evas_Coord
7673 * the position of the previous */ 8053 * the position of the previous */
7674 if ((cur->pos > 0) && !_evas_textblock_cursor_is_at_the_end(cur)) 8054 if ((cur->pos > 0) && !_evas_textblock_cursor_is_at_the_end(cur))
7675 { 8055 {
8056#ifdef BIDI_SUPPORT
7676 Eina_Bool before_char = EINA_FALSE; 8057 Eina_Bool before_char = EINA_FALSE;
8058#endif
7677 cur2.obj = cur->obj; 8059 cur2.obj = cur->obj;
7678 evas_textblock_cursor_copy(cur, &cur2); 8060 evas_textblock_cursor_copy(cur, &cur2);
7679 evas_textblock_cursor_char_prev(&cur2); 8061 evas_textblock_cursor_char_prev(&cur2);
@@ -7683,12 +8065,16 @@ evas_textblock_cursor_geometry_get(const Evas_Textblock_Cursor *cur, Evas_Coord
7683 if (!fmt || !_IS_LINE_SEPARATOR(fmt->format)) 8065 if (!fmt || !_IS_LINE_SEPARATOR(fmt->format))
7684 { 8066 {
7685 dir_cur = &cur2; 8067 dir_cur = &cur2;
8068#ifdef BIDI_SUPPORT
7686 before_char = EINA_FALSE; 8069 before_char = EINA_FALSE;
8070#endif
7687 } 8071 }
8072#ifdef BIDI_SUPPORT
7688 else 8073 else
7689 { 8074 {
7690 before_char = EINA_TRUE; 8075 before_char = EINA_TRUE;
7691 } 8076 }
8077#endif
7692 ret = evas_textblock_cursor_pen_geometry_get( 8078 ret = evas_textblock_cursor_pen_geometry_get(
7693 dir_cur, &x, &y, &w, &h); 8079 dir_cur, &x, &y, &w, &h);
7694#ifdef BIDI_SUPPORT 8080#ifdef BIDI_SUPPORT
@@ -8788,6 +9174,7 @@ evas_object_textblock_init(Evas_Object *obj)
8788 { 9174 {
8789 linebreak_init = EINA_TRUE; 9175 linebreak_init = EINA_TRUE;
8790 init_linebreak(); 9176 init_linebreak();
9177 init_wordbreak();
8791 } 9178 }
8792#endif 9179#endif
8793 9180
diff --git a/libraries/evas/src/lib/canvas/evas_render.c b/libraries/evas/src/lib/canvas/evas_render.c
index 0abee97..cdedaec 100644
--- a/libraries/evas/src/lib/canvas/evas_render.c
+++ b/libraries/evas/src/lib/canvas/evas_render.c
@@ -1139,7 +1139,7 @@ evas_render_mapped(Evas *e, Evas_Object *obj, void *context, void *surface,
1139 } 1139 }
1140 } 1140 }
1141 } 1141 }
1142 if (surface == e->engine.data.output) 1142// if (surface == e->engine.data.output)
1143 e->engine.func->context_clip_clip(e->engine.data.output, 1143 e->engine.func->context_clip_clip(e->engine.data.output,
1144 e->engine.data.context, 1144 e->engine.data.context,
1145 ecx, ecy, ecw, ech); 1145 ecx, ecy, ecw, ech);
@@ -1360,6 +1360,8 @@ evas_render_updates_internal(Evas *e,
1360 1360
1361 RD("[--- RENDER EVAS (size: %ix%i)\n", e->viewport.w, e->viewport.h); 1361 RD("[--- RENDER EVAS (size: %ix%i)\n", e->viewport.w, e->viewport.h);
1362 1362
1363 evas_event_callback_call(e, EVAS_CALLBACK_RENDER_PRE, NULL);
1364
1363 /* Check if the modified object mean recalculating every thing */ 1365 /* Check if the modified object mean recalculating every thing */
1364 if (!e->invalidate) 1366 if (!e->invalidate)
1365 _evas_render_check_pending_objects(&e->pending_objects, e); 1367 _evas_render_check_pending_objects(&e->pending_objects, e);
@@ -1399,6 +1401,7 @@ evas_render_updates_internal(Evas *e,
1399 _evas_render_prev_cur_clip_cache_add(e, obj); 1401 _evas_render_prev_cur_clip_cache_add(e, obj);
1400 } 1402 }
1401 eina_array_clean(&e->restack_objects); 1403 eina_array_clean(&e->restack_objects);
1404
1402 /* phase 3. add exposes */ 1405 /* phase 3. add exposes */
1403 EINA_LIST_FREE(e->damages, r) 1406 EINA_LIST_FREE(e->damages, r)
1404 { 1407 {
@@ -1406,7 +1409,20 @@ evas_render_updates_internal(Evas *e,
1406 r->x, r->y, r->w, r->h); 1409 r->x, r->y, r->w, r->h);
1407 eina_rectangle_free(r); 1410 eina_rectangle_free(r);
1408 } 1411 }
1409 /* phase 4. output & viewport changes */ 1412
1413 /* phase 4. framespace, output & viewport changes */
1414 if (e->framespace.changed)
1415 {
1416 int fx, fy, fw, fh;
1417
1418 fx = e->viewport.x - e->framespace.x;
1419 fy = e->viewport.y - e->framespace.y;
1420 fw = e->viewport.w + e->framespace.w;
1421 fh = e->viewport.h + e->framespace.h;
1422 e->engine.func->output_redraws_rect_add(e->engine.data.output,
1423 fx, fy, fw, fh);
1424 }
1425
1410 if (e->viewport.changed) 1426 if (e->viewport.changed)
1411 { 1427 {
1412 e->engine.func->output_redraws_rect_add(e->engine.data.output, 1428 e->engine.func->output_redraws_rect_add(e->engine.data.output,
@@ -1431,6 +1447,7 @@ evas_render_updates_internal(Evas *e,
1431 0, 0, 1447 0, 0,
1432 e->output.w, e->output.h); 1448 e->output.w, e->output.h);
1433 } 1449 }
1450
1434 /* phase 5. add obscures */ 1451 /* phase 5. add obscures */
1435 EINA_LIST_FOREACH(e->obscures, ll, r) 1452 EINA_LIST_FOREACH(e->obscures, ll, r)
1436 { 1453 {
@@ -1562,13 +1579,6 @@ evas_render_updates_internal(Evas *e,
1562 else 1579 else
1563 e->engine.func->context_mask_unset(e->engine.data.output, 1580 e->engine.func->context_mask_unset(e->engine.data.output,
1564 e->engine.data.context); 1581 e->engine.data.context);
1565 if (obj->cur.clipper)
1566 e->engine.func->context_clip_set(e->engine.data.output,
1567 e->engine.data.context,
1568 x, y, w, h);
1569 else
1570 e->engine.func->context_clip_unset(e->engine.data.output,
1571 e->engine.data.context);
1572#if 1 /* FIXME: this can slow things down... figure out optimum... coverage */ 1582#if 1 /* FIXME: this can slow things down... figure out optimum... coverage */
1573 for (j = offset; j < e->temporary_objects.count; ++j) 1583 for (j = offset; j < e->temporary_objects.count; ++j)
1574 { 1584 {
@@ -1671,6 +1681,7 @@ evas_render_updates_internal(Evas *e,
1671 e->changed = 0; 1681 e->changed = 0;
1672 e->viewport.changed = 0; 1682 e->viewport.changed = 0;
1673 e->output.changed = 0; 1683 e->output.changed = 0;
1684 e->framespace.changed = 0;
1674 e->invalidate = 0; 1685 e->invalidate = 0;
1675 1686
1676 /* If their are some object to restack or some object to delete, 1687 /* If their are some object to restack or some object to delete,
@@ -1686,6 +1697,8 @@ evas_render_updates_internal(Evas *e,
1686 } 1697 }
1687 1698
1688 evas_module_clean(); 1699 evas_module_clean();
1700
1701 evas_event_callback_call(e, EVAS_CALLBACK_RENDER_POST, NULL);
1689 1702
1690 RD("---]\n"); 1703 RD("---]\n");
1691 1704
diff --git a/libraries/evas/src/lib/cserve/Makefile.in b/libraries/evas/src/lib/cserve/Makefile.in
index 74b5ff9..7599ca2 100644
--- a/libraries/evas/src/lib/cserve/Makefile.in
+++ b/libraries/evas/src/lib/cserve/Makefile.in
@@ -198,8 +198,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
198PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 198PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
199PIXMAN_LIBS = @PIXMAN_LIBS@ 199PIXMAN_LIBS = @PIXMAN_LIBS@
200PKG_CONFIG = @PKG_CONFIG@ 200PKG_CONFIG = @PKG_CONFIG@
201PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
202PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
203PNG_CFLAGS = @PNG_CFLAGS@ 201PNG_CFLAGS = @PNG_CFLAGS@
204PNG_LIBS = @PNG_LIBS@ 202PNG_LIBS = @PNG_LIBS@
205RANLIB = @RANLIB@ 203RANLIB = @RANLIB@
@@ -216,6 +214,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
216VALGRIND_LIBS = @VALGRIND_LIBS@ 214VALGRIND_LIBS = @VALGRIND_LIBS@
217VERSION = @VERSION@ 215VERSION = @VERSION@
218VMAJ = @VMAJ@ 216VMAJ = @VMAJ@
217WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
218WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
219WIN32_CFLAGS = @WIN32_CFLAGS@ 219WIN32_CFLAGS = @WIN32_CFLAGS@
220WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 220WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
221XCB_CFLAGS = @XCB_CFLAGS@ 221XCB_CFLAGS = @XCB_CFLAGS@
@@ -297,6 +297,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
297evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 297evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
298evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 298evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
299evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 299evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
300evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
301evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
302evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
303evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
300evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 304evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
301evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 305evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
302evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 306evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/lib/engines/Makefile.in b/libraries/evas/src/lib/engines/Makefile.in
index 12e28c1..4c3c1da 100644
--- a/libraries/evas/src/lib/engines/Makefile.in
+++ b/libraries/evas/src/lib/engines/Makefile.in
@@ -208,8 +208,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
208PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 208PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
209PIXMAN_LIBS = @PIXMAN_LIBS@ 209PIXMAN_LIBS = @PIXMAN_LIBS@
210PKG_CONFIG = @PKG_CONFIG@ 210PKG_CONFIG = @PKG_CONFIG@
211PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
212PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
213PNG_CFLAGS = @PNG_CFLAGS@ 211PNG_CFLAGS = @PNG_CFLAGS@
214PNG_LIBS = @PNG_LIBS@ 212PNG_LIBS = @PNG_LIBS@
215RANLIB = @RANLIB@ 213RANLIB = @RANLIB@
@@ -226,6 +224,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
226VALGRIND_LIBS = @VALGRIND_LIBS@ 224VALGRIND_LIBS = @VALGRIND_LIBS@
227VERSION = @VERSION@ 225VERSION = @VERSION@
228VMAJ = @VMAJ@ 226VMAJ = @VMAJ@
227WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
228WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
229WIN32_CFLAGS = @WIN32_CFLAGS@ 229WIN32_CFLAGS = @WIN32_CFLAGS@
230WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 230WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
231XCB_CFLAGS = @XCB_CFLAGS@ 231XCB_CFLAGS = @XCB_CFLAGS@
@@ -307,6 +307,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
307evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 307evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
308evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 308evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
309evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 309evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
310evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
311evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
312evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
313evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
310evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 314evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
311evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 315evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
312evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 316evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/lib/engines/common/Makefile.in b/libraries/evas/src/lib/engines/common/Makefile.in
index b0162df..7d1f20a 100644
--- a/libraries/evas/src/lib/engines/common/Makefile.in
+++ b/libraries/evas/src/lib/engines/common/Makefile.in
@@ -252,8 +252,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
252PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 252PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
253PIXMAN_LIBS = @PIXMAN_LIBS@ 253PIXMAN_LIBS = @PIXMAN_LIBS@
254PKG_CONFIG = @PKG_CONFIG@ 254PKG_CONFIG = @PKG_CONFIG@
255PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
256PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
257PNG_CFLAGS = @PNG_CFLAGS@ 255PNG_CFLAGS = @PNG_CFLAGS@
258PNG_LIBS = @PNG_LIBS@ 256PNG_LIBS = @PNG_LIBS@
259RANLIB = @RANLIB@ 257RANLIB = @RANLIB@
@@ -270,6 +268,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
270VALGRIND_LIBS = @VALGRIND_LIBS@ 268VALGRIND_LIBS = @VALGRIND_LIBS@
271VERSION = @VERSION@ 269VERSION = @VERSION@
272VMAJ = @VMAJ@ 270VMAJ = @VMAJ@
271WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
272WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
273WIN32_CFLAGS = @WIN32_CFLAGS@ 273WIN32_CFLAGS = @WIN32_CFLAGS@
274WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 274WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
275XCB_CFLAGS = @XCB_CFLAGS@ 275XCB_CFLAGS = @XCB_CFLAGS@
@@ -351,6 +351,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
351evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 351evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
352evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 352evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
353evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 353evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
354evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
355evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
356evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
357evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
354evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 358evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
355evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 359evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
356evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 360evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/lib/engines/common/evas_convert_rgb_16.c b/libraries/evas/src/lib/engines/common/evas_convert_rgb_16.c
index b30ec1e..796ff17 100644
--- a/libraries/evas/src/lib/engines/common/evas_convert_rgb_16.c
+++ b/libraries/evas/src/lib/engines/common/evas_convert_rgb_16.c
@@ -117,7 +117,7 @@ evas_common_convert_rgba2_to_16bpp_rgb_565_dith (DATA32 *src, DATA8 *dst, int sr
117 } 117 }
118#endif 118#endif
119 return; 119 return;
120 pal = 0; 120 (void)pal;
121#else 121#else
122 DATA16 *d = (DATA16 *)dst; 122 DATA16 *d = (DATA16 *)dst;
123 int w0 = w; 123 int w0 = w;
@@ -144,7 +144,7 @@ evas_common_convert_rgba2_to_16bpp_rgb_565_dith (DATA32 *src, DATA8 *dst, int sr
144 d += dst_jump; 144 d += dst_jump;
145 } 145 }
146 return; 146 return;
147 pal = 0; 147 (void)pal;
148#endif 148#endif
149} 149}
150#endif 150#endif
@@ -216,7 +216,7 @@ evas_common_convert_rgba_to_16bpp_rgb_565_dith (DATA32 *src, DATA8 *dst, int src
216 } 216 }
217#endif 217#endif
218 return; 218 return;
219 pal = 0; 219 (void)pal;
220#else 220#else
221 DATA16 *d = (DATA16 *)dst; 221 DATA16 *d = (DATA16 *)dst;
222 int w0 = w; 222 int w0 = w;
@@ -233,7 +233,7 @@ evas_common_convert_rgba_to_16bpp_rgb_565_dith (DATA32 *src, DATA8 *dst, int src
233 d += dst_jump; 233 d += dst_jump;
234 } 234 }
235 return; 235 return;
236 pal = 0; 236 (void)pal;
237#endif 237#endif
238} 238}
239#endif 239#endif
@@ -295,7 +295,7 @@ evas_common_convert_rgba2_to_16bpp_rgb_565_dith_rot_180 (DATA32 *src, DATA8 *dst
295 295
296 CONVERT_LOOP2_END_ROT_180(); 296 CONVERT_LOOP2_END_ROT_180();
297 return; 297 return;
298 pal = 0; 298 (void)pal;
299} 299}
300#endif 300#endif
301#endif 301#endif
@@ -333,7 +333,7 @@ evas_common_convert_rgba_to_16bpp_rgb_565_dith_rot_180 (DATA32 *src, DATA8 *dst,
333 333
334 CONVERT_LOOP_END_ROT_180(); 334 CONVERT_LOOP_END_ROT_180();
335 return; 335 return;
336 pal = 0; 336 (void)pal;
337} 337}
338#endif 338#endif
339#endif 339#endif
@@ -394,7 +394,7 @@ evas_common_convert_rgba2_to_16bpp_rgb_565_dith_rot_270 (DATA32 *src, DATA8 *dst
394 394
395 CONVERT_LOOP2_END_ROT_270(); 395 CONVERT_LOOP2_END_ROT_270();
396 return; 396 return;
397 pal = 0; 397 (void)pal;
398} 398}
399#endif 399#endif
400#endif 400#endif
@@ -432,7 +432,7 @@ evas_common_convert_rgba_to_16bpp_rgb_565_dith_rot_270 (DATA32 *src, DATA8 *dst,
432 432
433 CONVERT_LOOP_END_ROT_270(); 433 CONVERT_LOOP_END_ROT_270();
434 return; 434 return;
435 pal = 0; 435 (void)pal;
436} 436}
437#endif 437#endif
438#endif 438#endif
@@ -493,7 +493,7 @@ evas_common_convert_rgba2_to_16bpp_rgb_565_dith_rot_90 (DATA32 *src, DATA8 *dst,
493 493
494 CONVERT_LOOP2_END_ROT_90(); 494 CONVERT_LOOP2_END_ROT_90();
495 return; 495 return;
496 pal = 0; 496 (void)pal;
497} 497}
498#endif 498#endif
499#endif 499#endif
@@ -531,7 +531,7 @@ evas_common_convert_rgba_to_16bpp_rgb_565_dith_rot_90 (DATA32 *src, DATA8 *dst,
531 531
532 CONVERT_LOOP_END_ROT_90(); 532 CONVERT_LOOP_END_ROT_90();
533 return; 533 return;
534 pal = 0; 534 (void)pal;
535} 535}
536#endif 536#endif
537#endif 537#endif
@@ -592,7 +592,7 @@ evas_common_convert_rgba2_to_16bpp_bgr_565_dith (DATA32 *src, DATA8 *dst, int sr
592 592
593 CONVERT_LOOP2_END_ROT_0(); 593 CONVERT_LOOP2_END_ROT_0();
594 return; 594 return;
595 pal = 0; 595 (void)pal;
596} 596}
597#endif 597#endif
598#endif 598#endif
@@ -630,7 +630,7 @@ evas_common_convert_rgba_to_16bpp_bgr_565_dith (DATA32 *src, DATA8 *dst, int src
630 630
631 CONVERT_LOOP_END_ROT_0(); 631 CONVERT_LOOP_END_ROT_0();
632 return; 632 return;
633 pal = 0; 633 (void)pal;
634} 634}
635#endif 635#endif
636#endif 636#endif
@@ -691,7 +691,7 @@ evas_common_convert_rgba2_to_16bpp_bgr_565_dith_rot_180 (DATA32 *src, DATA8 *dst
691 691
692 CONVERT_LOOP2_END_ROT_180(); 692 CONVERT_LOOP2_END_ROT_180();
693 return; 693 return;
694 pal = 0; 694 (void)pal;
695} 695}
696#endif 696#endif
697#endif 697#endif
@@ -731,7 +731,7 @@ evas_common_convert_rgba_to_16bpp_bgr_565_dith_rot_180 (DATA32 *src, DATA8 *dst,
731 731
732 CONVERT_LOOP_END_ROT_180(); 732 CONVERT_LOOP_END_ROT_180();
733 return; 733 return;
734 pal = 0; 734 (void)pal;
735} 735}
736#endif 736#endif
737#endif 737#endif
@@ -792,7 +792,7 @@ evas_common_convert_rgba2_to_16bpp_bgr_565_dith_rot_270 (DATA32 *src, DATA8 *dst
792 792
793 CONVERT_LOOP2_END_ROT_270(); 793 CONVERT_LOOP2_END_ROT_270();
794 return; 794 return;
795 pal = 0; 795 (void)pal;
796} 796}
797#endif 797#endif
798#endif 798#endif
@@ -830,7 +830,7 @@ evas_common_convert_rgba_to_16bpp_bgr_565_dith_rot_270 (DATA32 *src, DATA8 *dst,
830 830
831 CONVERT_LOOP_END_ROT_270(); 831 CONVERT_LOOP_END_ROT_270();
832 return; 832 return;
833 pal = 0; 833 (void)pal;
834} 834}
835#endif 835#endif
836#endif 836#endif
@@ -891,7 +891,7 @@ evas_common_convert_rgba2_to_16bpp_bgr_565_dith_rot_90 (DATA32 *src, DATA8 *dst,
891 891
892 CONVERT_LOOP2_END_ROT_90(); 892 CONVERT_LOOP2_END_ROT_90();
893 return; 893 return;
894 pal = 0; 894 (void)pal;
895} 895}
896#endif 896#endif
897#endif 897#endif
@@ -929,7 +929,7 @@ evas_common_convert_rgba_to_16bpp_bgr_565_dith_rot_90 (DATA32 *src, DATA8 *dst,
929 929
930 CONVERT_LOOP_END_ROT_90(); 930 CONVERT_LOOP_END_ROT_90();
931 return; 931 return;
932 pal = 0; 932 (void)pal;
933} 933}
934#endif 934#endif
935#endif 935#endif
@@ -988,7 +988,7 @@ evas_common_convert_rgba2_to_16bpp_rgb_444_dith (DATA32 *src, DATA8 *dst, int sr
988 988
989 CONVERT_LOOP2_END_ROT_0(); 989 CONVERT_LOOP2_END_ROT_0();
990 return; 990 return;
991 pal = 0; 991 (void)pal;
992} 992}
993#endif 993#endif
994#endif 994#endif
@@ -1025,7 +1025,7 @@ evas_common_convert_rgba_to_16bpp_rgb_444_dith (DATA32 *src, DATA8 *dst, int src
1025 1025
1026 CONVERT_LOOP_END_ROT_0(); 1026 CONVERT_LOOP_END_ROT_0();
1027 return; 1027 return;
1028 pal = 0; 1028 (void)pal;
1029} 1029}
1030#endif 1030#endif
1031#endif 1031#endif
@@ -1084,7 +1084,7 @@ evas_common_convert_rgba2_to_16bpp_rgb_444_dith_rot_180 (DATA32 *src, DATA8 *dst
1084 1084
1085 CONVERT_LOOP2_END_ROT_180(); 1085 CONVERT_LOOP2_END_ROT_180();
1086 return; 1086 return;
1087 pal = 0; 1087 (void)pal;
1088} 1088}
1089#endif 1089#endif
1090#endif 1090#endif
@@ -1121,7 +1121,7 @@ evas_common_convert_rgba_to_16bpp_rgb_444_dith_rot_180 (DATA32 *src, DATA8 *dst,
1121 1121
1122 CONVERT_LOOP_END_ROT_180(); 1122 CONVERT_LOOP_END_ROT_180();
1123 return; 1123 return;
1124 pal = 0; 1124 (void)pal;
1125} 1125}
1126#endif 1126#endif
1127#endif 1127#endif
@@ -1180,7 +1180,7 @@ evas_common_convert_rgba2_to_16bpp_rgb_444_dith_rot_270 (DATA32 *src, DATA8 *dst
1180 1180
1181 CONVERT_LOOP2_END_ROT_270(); 1181 CONVERT_LOOP2_END_ROT_270();
1182 return; 1182 return;
1183 pal = 0; 1183 (void)pal;
1184} 1184}
1185#endif 1185#endif
1186#endif 1186#endif
@@ -1217,7 +1217,7 @@ evas_common_convert_rgba_to_16bpp_rgb_444_dith_rot_270 (DATA32 *src, DATA8 *dst,
1217 1217
1218 CONVERT_LOOP_END_ROT_270(); 1218 CONVERT_LOOP_END_ROT_270();
1219 return; 1219 return;
1220 pal = 0; 1220 (void)pal;
1221} 1221}
1222#endif 1222#endif
1223#endif 1223#endif
@@ -1276,7 +1276,7 @@ evas_common_convert_rgba2_to_16bpp_rgb_444_dith_rot_90 (DATA32 *src, DATA8 *dst,
1276 1276
1277 CONVERT_LOOP2_END_ROT_90(); 1277 CONVERT_LOOP2_END_ROT_90();
1278 return; 1278 return;
1279 pal = 0; 1279 (void)pal;
1280} 1280}
1281#endif 1281#endif
1282#endif 1282#endif
@@ -1313,7 +1313,7 @@ evas_common_convert_rgba_to_16bpp_rgb_444_dith_rot_90 (DATA32 *src, DATA8 *dst,
1313 1313
1314 CONVERT_LOOP_END_ROT_90(); 1314 CONVERT_LOOP_END_ROT_90();
1315 return; 1315 return;
1316 pal = 0; 1316 (void)pal;
1317} 1317}
1318#endif 1318#endif
1319#endif 1319#endif
@@ -1372,7 +1372,7 @@ evas_common_convert_rgba2_to_16bpp_rgb_454645_dith (DATA32 *src, DATA8 *dst, int
1372 1372
1373 CONVERT_LOOP2_END_ROT_0(); 1373 CONVERT_LOOP2_END_ROT_0();
1374 return; 1374 return;
1375 pal = 0; 1375 (void)pal;
1376} 1376}
1377#endif 1377#endif
1378#endif 1378#endif
@@ -1409,7 +1409,7 @@ evas_common_convert_rgba_to_16bpp_rgb_454645_dith (DATA32 *src, DATA8 *dst, int
1409 1409
1410 CONVERT_LOOP_END_ROT_0(); 1410 CONVERT_LOOP_END_ROT_0();
1411 return; 1411 return;
1412 pal = 0; 1412 (void)pal;
1413} 1413}
1414#endif 1414#endif
1415#endif 1415#endif
@@ -1468,7 +1468,7 @@ evas_common_convert_rgba2_to_16bpp_rgb_454645_dith_rot_180 (DATA32 *src, DATA8 *
1468 1468
1469 CONVERT_LOOP2_END_ROT_180(); 1469 CONVERT_LOOP2_END_ROT_180();
1470 return; 1470 return;
1471 pal = 0; 1471 (void)pal;
1472} 1472}
1473#endif 1473#endif
1474#endif 1474#endif
@@ -1505,7 +1505,7 @@ evas_common_convert_rgba_to_16bpp_rgb_454645_dith_rot_180 (DATA32 *src, DATA8 *d
1505 1505
1506 CONVERT_LOOP_END_ROT_180(); 1506 CONVERT_LOOP_END_ROT_180();
1507 return; 1507 return;
1508 pal = 0; 1508 (void)pal;
1509} 1509}
1510#endif 1510#endif
1511#endif 1511#endif
@@ -1565,7 +1565,7 @@ evas_common_convert_rgba2_to_16bpp_rgb_454645_dith_rot_270 (DATA32 *src, DATA8 *
1565 1565
1566 CONVERT_LOOP2_END_ROT_270(); 1566 CONVERT_LOOP2_END_ROT_270();
1567 return; 1567 return;
1568 pal = 0; 1568 (void)pal;
1569} 1569}
1570#endif 1570#endif
1571#endif 1571#endif
@@ -1602,7 +1602,7 @@ evas_common_convert_rgba_to_16bpp_rgb_454645_dith_rot_270 (DATA32 *src, DATA8 *d
1602 1602
1603 CONVERT_LOOP_END_ROT_270(); 1603 CONVERT_LOOP_END_ROT_270();
1604 return; 1604 return;
1605 pal = 0; 1605 (void)pal;
1606} 1606}
1607#endif 1607#endif
1608#endif 1608#endif
@@ -1661,7 +1661,7 @@ evas_common_convert_rgba2_to_16bpp_rgb_454645_dith_rot_90 (DATA32 *src, DATA8 *d
1661 1661
1662 CONVERT_LOOP2_END_ROT_90(); 1662 CONVERT_LOOP2_END_ROT_90();
1663 return; 1663 return;
1664 pal = 0; 1664 (void)pal;
1665} 1665}
1666#endif 1666#endif
1667#endif 1667#endif
@@ -1698,7 +1698,7 @@ evas_common_convert_rgba_to_16bpp_rgb_454645_dith_rot_90 (DATA32 *src, DATA8 *ds
1698 1698
1699 CONVERT_LOOP_END_ROT_90(); 1699 CONVERT_LOOP_END_ROT_90();
1700 return; 1700 return;
1701 pal = 0; 1701 (void)pal;
1702} 1702}
1703#endif 1703#endif
1704#endif 1704#endif
@@ -1757,7 +1757,7 @@ evas_common_convert_rgba2_to_16bpp_rgb_555_dith (DATA32 *src, DATA8 *dst, int sr
1757 1757
1758 CONVERT_LOOP2_END_ROT_0(); 1758 CONVERT_LOOP2_END_ROT_0();
1759 return; 1759 return;
1760 pal = 0; 1760 (void)pal;
1761} 1761}
1762#endif 1762#endif
1763#endif 1763#endif
@@ -1794,7 +1794,7 @@ evas_common_convert_rgba_to_16bpp_rgb_555_dith (DATA32 *src, DATA8 *dst, int src
1794 1794
1795 CONVERT_LOOP_END_ROT_0(); 1795 CONVERT_LOOP_END_ROT_0();
1796 return; 1796 return;
1797 pal = 0; 1797 (void)pal;
1798} 1798}
1799#endif 1799#endif
1800#endif 1800#endif
@@ -1853,7 +1853,7 @@ evas_common_convert_rgba2_to_16bpp_rgb_555_dith_rot_180 (DATA32 *src, DATA8 *dst
1853 1853
1854 CONVERT_LOOP2_END_ROT_180(); 1854 CONVERT_LOOP2_END_ROT_180();
1855 return; 1855 return;
1856 pal = 0; 1856 (void)pal;
1857} 1857}
1858#endif 1858#endif
1859#endif 1859#endif
@@ -1890,7 +1890,7 @@ evas_common_convert_rgba_to_16bpp_rgb_555_dith_rot_180 (DATA32 *src, DATA8 *dst,
1890 1890
1891 CONVERT_LOOP_END_ROT_180(); 1891 CONVERT_LOOP_END_ROT_180();
1892 return; 1892 return;
1893 pal = 0; 1893 (void)pal;
1894} 1894}
1895#endif 1895#endif
1896#endif 1896#endif
@@ -1949,7 +1949,7 @@ evas_common_convert_rgba2_to_16bpp_rgb_555_dith_rot_270 (DATA32 *src, DATA8 *dst
1949 1949
1950 CONVERT_LOOP2_END_ROT_270(); 1950 CONVERT_LOOP2_END_ROT_270();
1951 return; 1951 return;
1952 pal = 0; 1952 (void)pal;
1953} 1953}
1954#endif 1954#endif
1955#endif 1955#endif
@@ -1986,7 +1986,7 @@ evas_common_convert_rgba_to_16bpp_rgb_555_dith_rot_270 (DATA32 *src, DATA8 *dst,
1986 1986
1987 CONVERT_LOOP_END_ROT_270(); 1987 CONVERT_LOOP_END_ROT_270();
1988 return; 1988 return;
1989 pal = 0; 1989 (void)pal;
1990} 1990}
1991#endif 1991#endif
1992#endif 1992#endif
@@ -2045,7 +2045,7 @@ evas_common_convert_rgba2_to_16bpp_rgb_555_dith_rot_90 (DATA32 *src, DATA8 *dst,
2045 2045
2046 CONVERT_LOOP2_END_ROT_90(); 2046 CONVERT_LOOP2_END_ROT_90();
2047 return; 2047 return;
2048 pal = 0; 2048 (void)pal;
2049} 2049}
2050#endif 2050#endif
2051#endif 2051#endif
@@ -2082,7 +2082,7 @@ evas_common_convert_rgba_to_16bpp_rgb_555_dith_rot_90 (DATA32 *src, DATA8 *dst,
2082 2082
2083 CONVERT_LOOP_END_ROT_90(); 2083 CONVERT_LOOP_END_ROT_90();
2084 return; 2084 return;
2085 pal = 0; 2085 (void)pal;
2086} 2086}
2087#endif 2087#endif
2088#endif 2088#endif
diff --git a/libraries/evas/src/lib/engines/common/evas_convert_rgb_32.c b/libraries/evas/src/lib/engines/common/evas_convert_rgb_32.c
index 41dac6f..0401a4a 100644
--- a/libraries/evas/src/lib/engines/common/evas_convert_rgb_32.c
+++ b/libraries/evas/src/lib/engines/common/evas_convert_rgb_32.c
@@ -48,15 +48,167 @@ evas_common_convert_rgba_to_32bpp_rgb_8888_rot_180 (DATA32 *src, DATA8 *dst, int
48#endif 48#endif
49#endif 49#endif
50 50
51#ifdef TILE_ROTATE
52#define FAST_SIMPLE_ROTATE(suffix, pix_type) \
53 static void \
54 blt_rotated_90_trivial_##suffix(pix_type *dst, \
55 int dst_stride, \
56 const pix_type *src, \
57 int src_stride, \
58 int w, \
59 int h) \
60 { \
61 int x, y; \
62 for (y = 0; y < h; y++) \
63 { \
64 const pix_type *s = src + (h - y - 1); \
65 pix_type *d = dst + (dst_stride * y); \
66 for (x = 0; x < w; x++) \
67 { \
68 *d++ = *s; \
69 s += src_stride; \
70 } \
71 } \
72 } \
73 static void \
74 blt_rotated_270_trivial_##suffix(pix_type *dst, \
75 int dst_stride, \
76 const pix_type *src, \
77 int src_stride, \
78 int w, \
79 int h) \
80 { \
81 int x, y; \
82 for (y = 0; y < h; y++) \
83 { \
84 const pix_type *s = src + (src_stride * (w - 1)) + y; \
85 pix_type *d = dst + (dst_stride * y); \
86 for (x = 0; x < w; x++) \
87 { \
88 *d++ = *s; \
89 s -= src_stride; \
90 } \
91 } \
92 } \
93 static void \
94 blt_rotated_90_##suffix(pix_type *dst, \
95 int dst_stride, \
96 const pix_type *src, \
97 int src_stride, \
98 int w, \
99 int h) \
100 { \
101 int x, leading_pixels = 0, trailing_pixels = 0; \
102 const int TILE_SIZE = TILE_CACHE_LINE_SIZE / sizeof(pix_type); \
103 if ((uintptr_t)dst & (TILE_CACHE_LINE_SIZE - 1)) \
104 { \
105 leading_pixels = TILE_SIZE - \
106 (((uintptr_t)dst & (TILE_CACHE_LINE_SIZE - 1)) / sizeof(pix_type)); \
107 if (leading_pixels > w) \
108 leading_pixels = w; \
109 blt_rotated_90_trivial_##suffix(dst, \
110 dst_stride, \
111 src, \
112 src_stride, \
113 leading_pixels, \
114 h); \
115 dst += leading_pixels; \
116 src += leading_pixels * src_stride; \
117 w -= leading_pixels; \
118 } \
119 if ((uintptr_t)(dst + w) & (TILE_CACHE_LINE_SIZE - 1)) \
120 { \
121 trailing_pixels = (((uintptr_t)(dst + w) & \
122 (TILE_CACHE_LINE_SIZE - 1)) / sizeof(pix_type)); \
123 if (trailing_pixels > w) \
124 trailing_pixels = w; \
125 w -= trailing_pixels; \
126 } \
127 for (x = 0; x < w; x += TILE_SIZE) \
128 { \
129 blt_rotated_90_trivial_##suffix(dst + x, \
130 dst_stride, \
131 src + (src_stride * x), \
132 src_stride, \
133 TILE_SIZE, \
134 h); \
135 } \
136 if (trailing_pixels) \
137 blt_rotated_90_trivial_##suffix(dst + w, \
138 dst_stride, \
139 src + (w * src_stride), \
140 src_stride, \
141 trailing_pixels, \
142 h); \
143 } \
144 static void \
145 blt_rotated_270_##suffix(pix_type *dst, \
146 int dst_stride, \
147 const pix_type *src, \
148 int src_stride, \
149 int w, \
150 int h) \
151 { \
152 int x, leading_pixels = 0, trailing_pixels = 0; \
153 const int TILE_SIZE = TILE_CACHE_LINE_SIZE / sizeof(pix_type); \
154 if ((uintptr_t)dst & (TILE_CACHE_LINE_SIZE - 1)) \
155 { \
156 leading_pixels = TILE_SIZE - \
157 (((uintptr_t)dst & (TILE_CACHE_LINE_SIZE - 1)) / sizeof(pix_type)); \
158 if (leading_pixels > w) \
159 leading_pixels = w; \
160 blt_rotated_270_trivial_##suffix(dst, \
161 dst_stride, \
162 src + (src_stride * (w - leading_pixels)), \
163 src_stride, \
164 leading_pixels, \
165 h); \
166 dst += leading_pixels; \
167 w -= leading_pixels; \
168 } \
169 if ((uintptr_t)(dst + w) & (TILE_CACHE_LINE_SIZE - 1)) \
170 { \
171 trailing_pixels = (((uintptr_t)(dst + w) & \
172 (TILE_CACHE_LINE_SIZE - 1)) / sizeof(pix_type)); \
173 if (trailing_pixels > w) \
174 trailing_pixels = w; \
175 w -= trailing_pixels; \
176 src += trailing_pixels * src_stride; \
177 } \
178 for (x = 0; x < w; x += TILE_SIZE) \
179 { \
180 blt_rotated_270_trivial_##suffix(dst + x, \
181 dst_stride, \
182 src + (src_stride * (w - x - TILE_SIZE)), \
183 src_stride, \
184 TILE_SIZE, \
185 h); \
186 } \
187 if (trailing_pixels) \
188 blt_rotated_270_trivial_##suffix(dst + w, \
189 dst_stride, \
190 src - (trailing_pixels * src_stride), \
191 src_stride, \
192 trailing_pixels, \
193 h); \
194 }
195
196FAST_SIMPLE_ROTATE(8888, DATA8)
197#endif
198
199
51#ifdef BUILD_CONVERT_32_RGB_8888 200#ifdef BUILD_CONVERT_32_RGB_8888
52#ifdef BUILD_CONVERT_32_RGB_ROT270 201#ifdef BUILD_CONVERT_32_RGB_ROT270
53void 202void
54evas_common_convert_rgba_to_32bpp_rgb_8888_rot_270 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x __UNUSED__, int dith_y __UNUSED__, DATA8 *pal __UNUSED__) 203evas_common_convert_rgba_to_32bpp_rgb_8888_rot_270 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x __UNUSED__, int dith_y __UNUSED__, DATA8 *pal __UNUSED__)
55{ 204{
205#ifdef TILE_ROTATE
206 blt_rotated_270_8888((DATA8 *)dst, dst_jump+w, (const DATA8 *)src, src_jump+h, w, h) ;
207#else
56 DATA32 *src_ptr; 208 DATA32 *src_ptr;
57 DATA32 *dst_ptr; 209 DATA32 *dst_ptr;
58 int x, y; 210 int x, y;
59 211
60 dst_ptr = (DATA32 *)dst; 212 dst_ptr = (DATA32 *)dst;
61 213
62 CONVERT_LOOP_START_ROT_270(); 214 CONVERT_LOOP_START_ROT_270();
@@ -64,6 +216,7 @@ evas_common_convert_rgba_to_32bpp_rgb_8888_rot_270 (DATA32 *src, DATA8 *dst, int
64 *dst_ptr = *src_ptr; 216 *dst_ptr = *src_ptr;
65 217
66 CONVERT_LOOP_END_ROT_270(); 218 CONVERT_LOOP_END_ROT_270();
219#endif
67 return; 220 return;
68} 221}
69#endif 222#endif
@@ -74,106 +227,118 @@ evas_common_convert_rgba_to_32bpp_rgb_8888_rot_270 (DATA32 *src, DATA8 *dst, int
74void 227void
75evas_common_convert_rgba_to_32bpp_rgb_8888_rot_90 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x __UNUSED__, int dith_y __UNUSED__, DATA8 *pal __UNUSED__) 228evas_common_convert_rgba_to_32bpp_rgb_8888_rot_90 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x __UNUSED__, int dith_y __UNUSED__, DATA8 *pal __UNUSED__)
76{ 229{
77#ifndef BUILD_NEON 230# ifndef BUILD_NEON
231# ifdef TILE_ROTATE
232 blt_rotated_90_8888((DATA8 *)dst, dst_jump+w, (const DATA8 *)src, src_jump+h, w, h) ;
233# else
78 DATA32 *src_ptr; 234 DATA32 *src_ptr;
79 DATA32 *dst_ptr; 235 DATA32 *dst_ptr;
80 int x, y; 236 int x, y;
81 237
82 dst_ptr = (DATA32 *)dst; 238 dst_ptr = (DATA32 *)dst;
83 CONVERT_LOOP_START_ROT_90(); 239 CONVERT_LOOP_START_ROT_90();
84 240
85 *dst_ptr = *src_ptr; 241 *dst_ptr = *src_ptr;
86 242
87 CONVERT_LOOP_END_ROT_90(); 243 CONVERT_LOOP_END_ROT_90();
88#else 244# endif
245
246# else
247
248# ifdef TILE_ROTATE
249 blt_rotated_90_8888((DATA8 *)dst, dst_jump+w, (const DATA8 *)src, src_jump+h, w, h) ;
250# else
89 if ((w & 1) || (h & 1)) 251 if ((w & 1) || (h & 1))
90 { 252 {
91 /* Rarely (if ever) if ever: so slow path is fine */ 253 /* Rarely (if ever) if ever: so slow path is fine */
92 DATA32 *src_ptr; 254 DATA32 *src_ptr;
93 DATA32 *dst_ptr; 255 DATA32 *dst_ptr;
94 int x, y; 256 int x, y;
95 257
96 dst_ptr = (DATA32 *)dst; 258 dst_ptr = (DATA32 *)dst;
97 CONVERT_LOOP_START_ROT_90(); 259 CONVERT_LOOP_START_ROT_90();
98 260
99 *dst_ptr = *src_ptr; 261 *dst_ptr = *src_ptr;
100 262
101 CONVERT_LOOP_END_ROT_90(); 263 CONVERT_LOOP_END_ROT_90();
102 } else { 264 }
103#define AP "convert_rgba32_rot_90_" 265 else
104 asm volatile ( 266 {
105 ".fpu neon \n\t" 267# define AP "convert_rgba32_rot_90_"
106 " mov %[s1], %[src] \n\t" 268 asm volatile (
107 " add %[s1], %[h],lsl #2 \n\t" 269 ".fpu neon \n\t"
108 " sub %[s1], #8 \n\t" 270 " mov %[s1], %[src] \n\t"
109 271 " add %[s1], %[s1], %[h],lsl #2 \n\t"
110 " mov %[s2], %[src] \n\t" 272 " sub %[s1], #8 \n\t"
111 " add %[s2], %[h], lsl #3 \n\t" 273
112 " add %[s2], %[sjmp], lsr #1 \n\t" 274 " mov %[s2], %[src] \n\t"
113 " sub %[s2], #8 \n\t" 275 " add %[s2], %[s2], %[h], lsl #3 \n\t"
114 276 " add %[s2], %[s2], %[sjmp], lsr #1 \n\t"
115 " mov %[d1], %[dst] \n\t" 277 " sub %[s2], #8 \n\t"
116 278
117 " add %[d2], %[d1], %[djmp] \n\t" 279 " mov %[d1], %[dst] \n\t"
118 " add %[d2], %[w], lsl #2 \n\t" 280
119 281 " add %[d2], %[d1], %[djmp] \n\t"
120 " mov %[sadv], %[h], lsl #3 \n\t" 282 " add %[d2], %[d2], %[w], lsl #2 \n\t"
121 " add %[sadv], %[sjmp], lsl #1 \n\t" 283
122 284 " mov %[sadv], %[h], lsl #3 \n\t"
123 " mov %[y], #0 \n\t" 285 " add %[sadv], %[sadv], %[sjmp], lsl #1\n\t"
124 " mov %[x], #0 \n\t" 286
125 AP"loop: \n\t" 287 " mov %[y], #0 \n\t"
126 " vld1.u32 d0, [%[s1]] \n\t" 288 " mov %[x], #0 \n\t"
127 " vld1.u32 d1, [%[s2]] \n\t" 289 AP"loop: \n\t"
128 " add %[x], #2 \n\t" 290 " vld1.u32 d0, [%[s1]] \n\t"
129 " add %[s1], %[sadv] \n\t" 291 " vld1.u32 d1, [%[s2]] \n\t"
130 " add %[s2], %[sadv] \n\t" 292 " add %[x], #2 \n\t"
131 " vtrn.u32 d0, d1 \n\t" 293 " add %[s1], %[sadv] \n\t"
132 " cmp %[x], %[w] \n\t" 294 " add %[s2], %[sadv] \n\t"
133 " vst1.u32 d1, [%[d1]]! \n\t" 295 " vtrn.u32 d0, d1 \n\t"
134 " vst1.u32 d0, [%[d2]]! \n\t" 296 " cmp %[x], %[w] \n\t"
135 " blt "AP"loop \n\t" 297 " vst1.u32 d1, [%[d1]]! \n\t"
136 298 " vst1.u32 d0, [%[d2]]! \n\t"
137 " mov %[x], #0 \n\t" 299 " blt "AP"loop \n\t"
138 " add %[d1], %[djmp] \n\t" 300
139 " add %[d1], %[w], lsl #2 \n\t" 301 " mov %[x], #0 \n\t"
140 " add %[d2], %[djmp] \n\t" 302 " add %[d1], %[djmp] \n\t"
141 " add %[d2], %[w], lsl #2 \n\t" 303 " add %[d1], %[d1], %[w], lsl #2 \n\t"
142 304 " add %[d2], %[djmp] \n\t"
143 " mov %[s1], %[src] \n\t" 305 " add %[d2], %[d2], %[w], lsl #2 \n\t"
144 " add %[s1], %[h], lsl #2 \n\t" 306
145 " sub %[s1], %[y], lsl #2 \n\t" 307 " mov %[s1], %[src] \n\t"
146 " sub %[s1], #16 \n\t" 308 " add %[s1], %[s1], %[h], lsl #2 \n\t"
147 309 " sub %[s1], %[s1], %[y], lsl #2 \n\t"
148 " add %[s2], %[s1], %[h], lsl #2 \n\t" 310 " sub %[s1], #16 \n\t"
149 " add %[s2], %[sjmp], lsl #2 \n\t" 311
150 312 " add %[s2], %[s1], %[h], lsl #2 \n\t"
151 " add %[y], #2 \n\t" 313 " add %[s2], %[s2], %[sjmp], lsl #2 \n\t"
152 314
153 " cmp %[y], %[h] \n\t" 315 " add %[y], #2 \n\t"
154 " blt "AP"loop \n\t" 316
155 317 " cmp %[y], %[h] \n\t"
156 : // Out 318 " blt "AP"loop \n\t"
157 : [s1] "r" (1), 319
158 [s2] "r" (11), 320 : // Out
159 [d1] "r" (2), 321 : [s1] "r" (1),
160 [d2] "r" (12), 322 [s2] "r" (11),
161 [src] "r" (src), 323 [d1] "r" (2),
162 [dst] "r" (dst), 324 [d2] "r" (12),
163 [x] "r" (3), 325 [src] "r" (src),
164 [y] "r" (4), 326 [dst] "r" (dst),
165 [w] "r" (w), 327 [x] "r" (3),
166 [h] "r" (h), 328 [y] "r" (4),
167 [sadv] "r" (5), 329 [w] "r" (w),
168 [sjmp] "r" (src_jump * 4), 330 [h] "r" (h),
169 [djmp] "r" (dst_jump * 4 * 2) 331 [sadv] "r" (5),
170 : "d0", "d1", "memory", "cc"// Clober 332 [sjmp] "r" (src_jump * 4),
171 333 [djmp] "r" (dst_jump * 4 * 2)
172 334 : "d0", "d1", "memory", "cc"// Clober
173 ); 335
174 } 336
175#undef AP 337 );
176#endif 338 }
339# undef AP
340# endif
341# endif
177 return; 342 return;
178} 343}
179#endif 344#endif
@@ -448,7 +613,7 @@ evas_common_convert_rgba_to_32bpp_rgb_666(DATA32 *src, DATA8 *dst, int src_jump,
448 613
449 CONVERT_LOOP_START_ROT_0(); 614 CONVERT_LOOP_START_ROT_0();
450 615
451 *dst_ptr = 616 *dst_ptr =
452 (((R_VAL(src_ptr) << 12) | (B_VAL(src_ptr) >> 2)) & 0x03f03f) | 617 (((R_VAL(src_ptr) << 12) | (B_VAL(src_ptr) >> 2)) & 0x03f03f) |
453 ((G_VAL(src_ptr) << 4) & 0x000fc0); 618 ((G_VAL(src_ptr) << 4) & 0x000fc0);
454 619
diff --git a/libraries/evas/src/lib/engines/common/evas_convert_yuv.c b/libraries/evas/src/lib/engines/common/evas_convert_yuv.c
index a0d155c..000cb01 100644
--- a/libraries/evas/src/lib/engines/common/evas_convert_yuv.c
+++ b/libraries/evas/src/lib/engines/common/evas_convert_yuv.c
@@ -1091,7 +1091,7 @@ _evas_nv12tiledtorgb_raster(unsigned char **yuv, unsigned char *rgb, int w, int
1091 const int offset_value[2] = { 0, 64 * 16 }; 1091 const int offset_value[2] = { 0, 64 * 16 };
1092 int mb_x, mb_y, mb_w, mb_h; 1092 int mb_x, mb_y, mb_w, mb_h;
1093 int base_h; 1093 int base_h;
1094 int uv_x, uv_y, uv_step; 1094 int uv_x, uv_step;
1095 int stride; 1095 int stride;
1096 1096
1097 /* Idea iterate over each macroblock and convert each of them using _evas_nv12torgb_raster */ 1097 /* Idea iterate over each macroblock and convert each of them using _evas_nv12torgb_raster */
@@ -1128,7 +1128,7 @@ _evas_nv12tiledtorgb_raster(unsigned char **yuv, unsigned char *rgb, int w, int
1128 base_h = (mb_h >> 1) + (mb_h & 0x1); 1128 base_h = (mb_h >> 1) + (mb_h & 0x1);
1129 stride = w * sizeof (int); 1129 stride = w * sizeof (int);
1130 1130
1131 uv_x = 0; uv_y = 0; 1131 uv_x = 0;
1132 1132
1133 /* In this format we linearize macroblock on two line to form a Z and it's invert */ 1133 /* In this format we linearize macroblock on two line to form a Z and it's invert */
1134 for (mb_y = 0; mb_y < (mb_h >> 1); mb_y++) 1134 for (mb_y = 0; mb_y < (mb_h >> 1); mb_y++)
diff --git a/libraries/evas/src/lib/engines/common/evas_cpu.c b/libraries/evas/src/lib/engines/common/evas_cpu.c
index cff8b2b..fe90c5b 100644
--- a/libraries/evas/src/lib/engines/common/evas_cpu.c
+++ b/libraries/evas/src/lib/engines/common/evas_cpu.c
@@ -74,6 +74,7 @@ evas_common_cpu_sse3_test(void)
74#endif 74#endif
75} 75}
76 76
77#ifdef BUILD_ALTIVEC
77void 78void
78evas_common_cpu_altivec_test(void) 79evas_common_cpu_altivec_test(void)
79{ 80{
@@ -85,6 +86,7 @@ evas_common_cpu_altivec_test(void)
85#endif /* __VEC__ */ 86#endif /* __VEC__ */
86#endif /* __POWERPC__ */ 87#endif /* __POWERPC__ */
87} 88}
89#endif /* BUILD_ALTIVEC */
88 90
89void 91void
90evas_common_cpu_neon_test(void) 92evas_common_cpu_neon_test(void)
@@ -177,6 +179,7 @@ evas_common_cpu_init(void)
177#endif /* BUILD_SSE3 */ 179#endif /* BUILD_SSE3 */
178#endif /* BUILD_SSE */ 180#endif /* BUILD_SSE */
179#endif /* BUILD_MMX */ 181#endif /* BUILD_MMX */
182#ifdef BUILD_ALTIVEC
180#ifdef __POWERPC__ 183#ifdef __POWERPC__
181#ifdef __VEC__ 184#ifdef __VEC__
182 cpu_feature_mask |= CPU_FEATURE_ALTIVEC * 185 cpu_feature_mask |= CPU_FEATURE_ALTIVEC *
@@ -186,6 +189,7 @@ evas_common_cpu_init(void)
186 cpu_feature_mask &= ~CPU_FEATURE_ALTIVEC; 189 cpu_feature_mask &= ~CPU_FEATURE_ALTIVEC;
187#endif /* __VEC__ */ 190#endif /* __VEC__ */
188#endif /* __POWERPC__ */ 191#endif /* __POWERPC__ */
192#endif /* BUILD_ALTIVEC */
189#ifdef __SPARC__ 193#ifdef __SPARC__
190 cpu_feature_mask |= CPU_FEATURE_VIS * 194 cpu_feature_mask |= CPU_FEATURE_VIS *
191 evas_common_cpu_feature_test(evas_common_cpu_vis_test); 195 evas_common_cpu_feature_test(evas_common_cpu_vis_test);
diff --git a/libraries/evas/src/lib/engines/common/evas_draw_main.c b/libraries/evas/src/lib/engines/common/evas_draw_main.c
index 7652708..def19a8 100644
--- a/libraries/evas/src/lib/engines/common/evas_draw_main.c
+++ b/libraries/evas/src/lib/engines/common/evas_draw_main.c
@@ -75,6 +75,14 @@ evas_common_draw_context_free(RGBA_Draw_Context *dc)
75{ 75{
76 if (!dc) return; 76 if (!dc) return;
77 77
78#ifdef HAVE_PIXMAN
79 if (dc->col.pixman_color_image)
80 {
81 pixman_image_unref(dc->col.pixman_color_image);
82 dc->col.pixman_color_image = NULL;
83 }
84#endif
85
78 evas_common_draw_context_apply_clean_cutouts(&dc->cutout); 86 evas_common_draw_context_apply_clean_cutouts(&dc->cutout);
79 free(dc); 87 free(dc);
80} 88}
@@ -133,6 +141,20 @@ evas_common_draw_context_set_color(RGBA_Draw_Context *dc, int r, int g, int b, i
133 G_VAL(&(dc->col.col)) = (DATA8)g; 141 G_VAL(&(dc->col.col)) = (DATA8)g;
134 B_VAL(&(dc->col.col)) = (DATA8)b; 142 B_VAL(&(dc->col.col)) = (DATA8)b;
135 A_VAL(&(dc->col.col)) = (DATA8)a; 143 A_VAL(&(dc->col.col)) = (DATA8)a;
144#ifdef HAVE_PIXMAN
145 if (dc && dc->col.pixman_color_image)
146 pixman_image_unref(dc->col.pixman_color_image);
147
148 pixman_color_t pixman_color;
149
150 pixman_color.alpha = (dc->col.col & 0xff000000) >> 16;
151 pixman_color.red = (dc->col.col & 0x00ff0000) >> 8;
152 pixman_color.green = (dc->col.col & 0x0000ff00);
153 pixman_color.blue = (dc->col.col & 0x000000ff) << 8;
154
155 dc->col.pixman_color_image = pixman_image_create_solid_fill(&pixman_color);
156#endif
157
136} 158}
137 159
138EAPI void 160EAPI void
@@ -159,12 +181,42 @@ evas_common_draw_context_set_mask(RGBA_Draw_Context *dc, RGBA_Image *mask, int x
159 dc->mask.y = y; 181 dc->mask.y = y;
160 dc->mask.w = w; 182 dc->mask.w = w;
161 dc->mask.h = h; 183 dc->mask.h = h;
184
185#ifdef HAVE_PIXMAN
186 if (mask->pixman.im)
187 pixman_image_unref(mask->pixman.im);
188
189 if (mask->cache_entry.flags.alpha)
190 {
191 mask->pixman.im = pixman_image_create_bits(PIXMAN_a8r8g8b8, w, h,
192 (uint32_t *)mask->mask.mask,
193 w * 4);
194 }
195 else
196 {
197 mask->pixman.im = pixman_image_create_bits(PIXMAN_x8r8g8b8, w, h,
198 (uint32_t *)mask->mask.mask,
199 w * 4);
200 }
201#endif
202
162} 203}
163 204
164EAPI void 205EAPI void
165evas_common_draw_context_unset_mask(RGBA_Draw_Context *dc) 206evas_common_draw_context_unset_mask(RGBA_Draw_Context *dc)
166{ 207{
167 dc->mask.mask = NULL; 208 dc->mask.mask = NULL;
209
210#ifdef HAVE_PIXMAN
211 RGBA_Image *mask;
212 mask = (RGBA_Image *)dc->mask.mask;
213
214 if (mask && mask->pixman.im)
215 {
216 pixman_image_unref(mask->pixman.im);
217 mask->pixman.im = NULL;
218 }
219#endif
168} 220}
169 221
170 222
@@ -179,32 +231,32 @@ evas_common_draw_context_add_cutout(RGBA_Draw_Context *dc, int x, int y, int w,
179 { 231 {
180#if 1 // this is a bit faster 232#if 1 // this is a bit faster
181 int xa1, xa2, xb1, xb2; 233 int xa1, xa2, xb1, xb2;
182 234
183 xa1 = x; 235 xa1 = x;
184 xa2 = xa1 + w - 1; 236 xa2 = xa1 + w - 1;
185 xb1 = dc->clip.x; 237 xb1 = dc->clip.x;
186 if (xa2 < xb1) return; 238 if (xa2 < xb1) return;
187 xb2 = xb1 + dc->clip.w - 1; 239 xb2 = xb1 + dc->clip.w - 1;
188 if (xa1 >= xb2) return; 240 if (xa1 >= xb2) return;
189 if (xa2 > xb2) xa2 = xb2; 241 if (xa2 > xb2) xa2 = xb2;
190 if (xb1 > xa1) xa1 = xb1; 242 if (xb1 > xa1) xa1 = xb1;
191 x = xa1; 243 x = xa1;
192 w = xa2 - xa1 + 1; 244 w = xa2 - xa1 + 1;
193 245
194 xa1 = y; 246 xa1 = y;
195 xa2 = xa1 + h - 1; 247 xa2 = xa1 + h - 1;
196 xb1 = dc->clip.y; 248 xb1 = dc->clip.y;
197 if (xa2 < xb1) return; 249 if (xa2 < xb1) return;
198 xb2 = xb1 + dc->clip.h - 1; 250 xb2 = xb1 + dc->clip.h - 1;
199 if (xa1 >= xb2) return; 251 if (xa1 >= xb2) return;
200 if (xa2 > xb2) xa2 = xb2; 252 if (xa2 > xb2) xa2 = xb2;
201 if (xb1 > xa1) xa1 = xb1; 253 if (xb1 > xa1) xa1 = xb1;
202 y = xa1; 254 y = xa1;
203 h = xa2 - xa1 + 1; 255 h = xa2 - xa1 + 1;
204#else 256#else
205 RECTS_CLIP_TO_RECT(x, y, w, h, 257 RECTS_CLIP_TO_RECT(x, y, w, h,
206 dc->clip.x, dc->clip.y, dc->clip.w, dc->clip.h); 258 dc->clip.x, dc->clip.y, dc->clip.w, dc->clip.h);
207#endif 259#endif
208 if ((w < 1) || (h < 1)) return; 260 if ((w < 1) || (h < 1)) return;
209 } 261 }
210 evas_common_draw_context_cutouts_add(&dc->cutout, x, y, w, h); 262 evas_common_draw_context_cutouts_add(&dc->cutout, x, y, w, h);
@@ -513,7 +565,7 @@ evas_common_draw_context_apply_cutouts(RGBA_Draw_Context *dc)
513 565
514 if (!dc->clip.use) return NULL; 566 if (!dc->clip.use) return NULL;
515 if ((dc->clip.w <= 0) || (dc->clip.h <= 0)) return NULL; 567 if ((dc->clip.w <= 0) || (dc->clip.h <= 0)) return NULL;
516 568
517 569
518 res = evas_common_draw_context_cutouts_new(); 570 res = evas_common_draw_context_cutouts_new();
519 evas_common_draw_context_cutouts_add(res, dc->clip.x, dc->clip.y, dc->clip.w, dc->clip.h); 571 evas_common_draw_context_cutouts_add(res, dc->clip.x, dc->clip.y, dc->clip.w, dc->clip.h);
diff --git a/libraries/evas/src/lib/engines/common/evas_font_draw.c b/libraries/evas/src/lib/engines/common/evas_font_draw.c
index 94aa085..638cdfe 100644
--- a/libraries/evas/src/lib/engines/common/evas_font_draw.c
+++ b/libraries/evas/src/lib/engines/common/evas_font_draw.c
@@ -22,7 +22,7 @@
22 22
23static int max_cached_words = WORD_CACHE_NWORDS; 23static int max_cached_words = WORD_CACHE_NWORDS;
24 24
25struct prword 25struct prword
26{ 26{
27 EINA_INLIST; 27 EINA_INLIST;
28 struct cinfo *cinfo; 28 struct cinfo *cinfo;
@@ -34,16 +34,16 @@ struct prword
34 int baseline; 34 int baseline;
35}; 35};
36 36
37struct cinfo 37struct cinfo
38{ 38{
39 FT_UInt index; 39 FT_UInt index;
40 struct 40 struct
41 { 41 {
42 int x, y; 42 int x, y;
43 } pos; 43 } pos;
44 int posx; 44 int posx;
45 RGBA_Font_Glyph *fg; 45 RGBA_Font_Glyph *fg;
46 struct 46 struct
47 { 47 {
48 int w,h; 48 int w,h;
49 int rows; 49 int rows;
@@ -77,11 +77,11 @@ evas_common_font_draw_init(void)
77#ifdef EVAS_FRAME_QUEUING 77#ifdef EVAS_FRAME_QUEUING
78EAPI void 78EAPI void
79evas_common_font_draw_finish(void) 79evas_common_font_draw_finish(void)
80{ 80{
81} 81}
82#endif 82#endif
83 83
84/* 84/*
85 * BiDi handling: We receive the shaped string + other props from text_props, 85 * BiDi handling: We receive the shaped string + other props from text_props,
86 * we need to reorder it so we'll have the visual string (the way we draw) 86 * we need to reorder it so we'll have the visual string (the way we draw)
87 * and then for kerning we have to switch the order of the kerning query (as the prev 87 * and then for kerning we have to switch the order of the kerning query (as the prev
@@ -89,7 +89,7 @@ evas_common_font_draw_finish(void)
89 */ 89 */
90static void 90static void
91evas_common_font_draw_internal(RGBA_Image *dst, RGBA_Draw_Context *dc, RGBA_Font *fn __UNUSED__, int x, int y, 91evas_common_font_draw_internal(RGBA_Image *dst, RGBA_Draw_Context *dc, RGBA_Font *fn __UNUSED__, int x, int y,
92 const Evas_Text_Props *text_props, RGBA_Gfx_Func func, int ext_x, int ext_y, int ext_w, 92 const Evas_Text_Props *text_props, RGBA_Gfx_Func func, int ext_x, int ext_y, int ext_w,
93 int ext_h, int im_w, int im_h __UNUSED__) 93 int ext_h, int im_w, int im_h __UNUSED__)
94{ 94{
95 DATA32 *im; 95 DATA32 *im;
@@ -136,7 +136,7 @@ evas_common_font_draw_internal(RGBA_Image *dst, RGBA_Draw_Context *dc, RGBA_Font
136 { 136 {
137 xrun -= x + xrun - ext_x - ext_w; 137 xrun -= x + xrun - ext_x - ext_w;
138 } 138 }
139 if (x < ext_x) 139 if (x < ext_x)
140 { 140 {
141 int excess = ext_x - x; 141 int excess = ext_x - x;
142 xstart = excess - 1; 142 xstart = excess - 1;
@@ -244,10 +244,29 @@ evas_common_font_draw_internal(RGBA_Image *dst, RGBA_Draw_Context *dc, RGBA_Font
244 if (j < w) j = w; 244 if (j < w) j = w;
245 h = fg->glyph_out->bitmap.rows; 245 h = fg->glyph_out->bitmap.rows;
246 /* 246 /*
247 if ((fg->glyph_out->bitmap.pixel_mode == ft_pixel_mode_grays) 247 if ((fg->glyph_out->bitmap.pixel_mode == ft_pixel_mode_grays)
248 && (fg->glyph_out->bitmap.num_grays == 256) 248 && (fg->glyph_out->bitmap.num_grays == 256)
249 ) 249 )
250 */ 250 */
251
252#ifdef HAVE_PIXMAN
253# ifdef PIXMAN_FONT
254 int index;
255 DATA32 *font_alpha_buffer;
256 pixman_image_t *font_mask_image;
257
258 font_alpha_buffer = alloca(w * h * sizeof(DATA32));
259 for (index = 0; index < (w * h); index++)
260 font_alpha_buffer[index] = data[index] << 24;
261
262 font_mask_image = pixman_image_create_bits(PIXMAN_a8r8g8b8, w, h,
263 font_alpha_buffer,
264 w * sizeof(DATA32));
265
266 if (!font_mask_image) return;
267# endif
268#endif
269
251 { 270 {
252 if ((j > 0) && (chr_x + w > ext_x)) 271 if ((j > 0) && (chr_x + w > ext_x))
253 { 272 {
@@ -255,44 +274,63 @@ evas_common_font_draw_internal(RGBA_Image *dst, RGBA_Draw_Context *dc, RGBA_Font
255 { 274 {
256 /* ext glyph draw */ 275 /* ext glyph draw */
257 dc->font_ext.func.gl_draw(dc->font_ext.data, 276 dc->font_ext.func.gl_draw(dc->font_ext.data,
258 (void *)dst, 277 (void *)dst,
259 dc, fg, chr_x, 278 dc, fg, chr_x,
260 y - (chr_y - y)); 279 y - (chr_y - y));
261 } 280 }
262 else 281 else
263 { 282 {
264 if ((fg->glyph_out->bitmap.num_grays == 256) && 283 if ((fg->glyph_out->bitmap.num_grays == 256) &&
265 (fg->glyph_out->bitmap.pixel_mode == FT_PIXEL_MODE_GRAY)) 284 (fg->glyph_out->bitmap.pixel_mode == FT_PIXEL_MODE_GRAY))
266 { 285 {
267 for (i = 0; i < h; i++) 286#ifdef HAVE_PIXMAN
287# ifdef PIXMAN_FONT
288 if ((dst->pixman.im) &&
289 (dc->col.pixman_color_image))
290 pixman_image_composite(PIXMAN_OP_OVER,
291 dc->col.pixman_color_image,
292 font_mask_image,
293 dst->pixman.im,
294 chr_x,
295 y - (chr_y - y),
296 0, 0,
297 chr_x,
298 y - (chr_y - y),
299 w, h);
300 else
301# endif
302#endif
268 { 303 {
269 int dx, dy; 304 for (i = 0; i < h; i++)
270 int in_x, in_w; 305 {
271 306 int dx, dy;
272 in_x = 0; 307 int in_x, in_w;
273 in_w = 0; 308
274 dx = chr_x; 309 in_x = 0;
275 dy = y - (chr_y - i - y); 310 in_w = 0;
311 dx = chr_x;
312 dy = y - (chr_y - i - y);
276#ifdef EVAS_SLI 313#ifdef EVAS_SLI
277 if (((dy) % dc->sli.h) == dc->sli.y) 314 if (((dy) % dc->sli.h) == dc->sli.y)
278#endif 315#endif
279 {
280 if ((dx < (ext_x + ext_w)) &&
281 (dy >= (ext_y)) &&
282 (dy < (ext_y + ext_h)))
283 { 316 {
284 if (dx + w > (ext_x + ext_w)) 317 if ((dx < (ext_x + ext_w)) &&
285 in_w += (dx + w) - (ext_x + ext_w); 318 (dy >= (ext_y)) &&
286 if (dx < ext_x) 319 (dy < (ext_y + ext_h)))
287 { 320 {
288 in_w += ext_x - dx; 321 if (dx + w > (ext_x + ext_w))
289 in_x = ext_x - dx; 322 in_w += (dx + w) - (ext_x + ext_w);
290 dx = ext_x; 323 if (dx < ext_x)
291 } 324 {
292 if (in_w < w) 325 in_w += ext_x - dx;
293 { 326 in_x = ext_x - dx;
294 func(NULL, data + (i * j) + in_x, dc->col.col, 327 dx = ext_x;
295 im + (dy * im_w) + dx, w - in_w); 328 }
329 if (in_w < w)
330 {
331 func(NULL, data + (i * j) + in_x, dc->col.col,
332 im + (dy * im_w) + dx, w - in_w);
333 }
296 } 334 }
297 } 335 }
298 } 336 }
@@ -309,7 +347,7 @@ evas_common_font_draw_internal(RGBA_Image *dst, RGBA_Draw_Context *dc, RGBA_Font
309 { 347 {
310 int dx, dy; 348 int dx, dy;
311 int in_x, in_w, end; 349 int in_x, in_w, end;
312 350
313 in_x = 0; 351 in_x = 0;
314 in_w = 0; 352 in_w = 0;
315 dx = chr_x; 353 dx = chr_x;
@@ -333,8 +371,8 @@ evas_common_font_draw_internal(RGBA_Image *dst, RGBA_Draw_Context *dc, RGBA_Font
333 dp++; 371 dp++;
334 } 372 }
335 if ((dx < (ext_x + ext_w)) && 373 if ((dx < (ext_x + ext_w)) &&
336 (dy >= (ext_y)) && 374 (dy >= (ext_y)) &&
337 (dy < (ext_y + ext_h))) 375 (dy < (ext_y + ext_h)))
338 { 376 {
339 if (dx + w > (ext_x + ext_w)) 377 if (dx + w > (ext_x + ext_w))
340 in_w += (dx + w) - (ext_x + ext_w); 378 in_w += (dx + w) - (ext_x + ext_w);
@@ -347,7 +385,7 @@ evas_common_font_draw_internal(RGBA_Image *dst, RGBA_Draw_Context *dc, RGBA_Font
347 if (in_w < w) 385 if (in_w < w)
348 { 386 {
349 func(NULL, tmpbuf + in_x, dc->col.col, 387 func(NULL, tmpbuf + in_x, dc->col.col,
350 im + (dy * im_w) + dx, w - in_w); 388 im + (dy * im_w) + dx, w - in_w);
351 } 389 }
352 } 390 }
353 } 391 }
@@ -356,6 +394,11 @@ evas_common_font_draw_internal(RGBA_Image *dst, RGBA_Draw_Context *dc, RGBA_Font
356 } 394 }
357 } 395 }
358 } 396 }
397#ifdef HAVE_PIXMAN
398# ifdef PIXMAN_FONT
399 pixman_image_unref(font_mask_image);
400# endif
401#endif
359 } 402 }
360 else 403 else
361 break; 404 break;
@@ -573,7 +616,7 @@ evas_font_word_prerender(RGBA_Draw_Context *dc, const Evas_Text_Props *text_prop
573 } 616 }
574 } 617 }
575 } 618 }
576 else 619 else
577 { 620 {
578 im = NULL; 621 im = NULL;
579 } 622 }
@@ -599,7 +642,7 @@ evas_font_word_prerender(RGBA_Draw_Context *dc, const Evas_Text_Props *text_prop
599 { 642 {
600 struct prword *last = (struct prword *)(words->last); 643 struct prword *last = (struct prword *)(words->last);
601 644
602 if (last) 645 if (last)
603 { 646 {
604 if (last->im) free(last->im); 647 if (last->im) free(last->im);
605 if (last->cinfo) free(last->cinfo); 648 if (last->cinfo) free(last->cinfo);
diff --git a/libraries/evas/src/lib/engines/common/evas_font_main.c b/libraries/evas/src/lib/engines/common/evas_font_main.c
index 64b1d5e..7b3dabe 100644
--- a/libraries/evas/src/lib/engines/common/evas_font_main.c
+++ b/libraries/evas/src/lib/engines/common/evas_font_main.c
@@ -39,8 +39,6 @@ evas_common_font_init(void)
39EAPI void 39EAPI void
40evas_common_font_shutdown(void) 40evas_common_font_shutdown(void)
41{ 41{
42 int error;
43
44 if (initialised < 1) return; 42 if (initialised < 1) return;
45 initialised--; 43 initialised--;
46 if (initialised != 0) return; 44 if (initialised != 0) return;
@@ -53,7 +51,7 @@ evas_common_font_shutdown(void)
53 evas_common_font_cache_set(0); 51 evas_common_font_cache_set(0);
54 evas_common_font_flush(); 52 evas_common_font_flush();
55 53
56 error = FT_Done_FreeType(evas_ft_lib); 54 FT_Done_FreeType(evas_ft_lib);
57#ifdef EVAS_FRAME_QUEUING 55#ifdef EVAS_FRAME_QUEUING
58 evas_common_font_draw_finish(); 56 evas_common_font_draw_finish();
59#endif 57#endif
diff --git a/libraries/evas/src/lib/engines/common/evas_image_data.c b/libraries/evas/src/lib/engines/common/evas_image_data.c
index 10b3988..2815ff8 100644
--- a/libraries/evas/src/lib/engines/common/evas_image_data.c
+++ b/libraries/evas/src/lib/engines/common/evas_image_data.c
@@ -1,3 +1,7 @@
1#ifdef HAVE_CONFIG_H
2# include <config.h>
3#endif
4
1#include <assert.h> 5#include <assert.h>
2 6
3#include "evas_common.h" 7#include "evas_common.h"
diff --git a/libraries/evas/src/lib/engines/common/evas_image_load.c b/libraries/evas/src/lib/engines/common/evas_image_load.c
index c7eff3f..21ac5d4 100644
--- a/libraries/evas/src/lib/engines/common/evas_image_load.c
+++ b/libraries/evas/src/lib/engines/common/evas_image_load.c
@@ -1,3 +1,7 @@
1#ifdef HAVE_CONFIG_H
2# include <config.h>
3#endif
4
1#include <sys/types.h> 5#include <sys/types.h>
2#include <sys/stat.h> 6#include <sys/stat.h>
3#include <unistd.h> 7#include <unistd.h>
diff --git a/libraries/evas/src/lib/engines/common/evas_image_main.c b/libraries/evas/src/lib/engines/common/evas_image_main.c
index d4d847c..d2f8c0b 100644
--- a/libraries/evas/src/lib/engines/common/evas_image_main.c
+++ b/libraries/evas/src/lib/engines/common/evas_image_main.c
@@ -145,7 +145,7 @@ _evas_common_rgba_image_new(void)
145#endif 145#endif
146 146
147 evas_common_rgba_image_scalecache_init(&im->cache_entry); 147 evas_common_rgba_image_scalecache_init(&im->cache_entry);
148 148
149 return &im->cache_entry; 149 return &im->cache_entry;
150} 150}
151 151
@@ -161,7 +161,7 @@ _evas_common_rgba_image_delete(Image_Entry *ie)
161 LKD(im->cache_entry.ref_fq_del); 161 LKD(im->cache_entry.ref_fq_del);
162 eina_condition_free(&(im->cache_entry.cond_fq_del)); 162 eina_condition_free(&(im->cache_entry.cond_fq_del));
163# endif 163# endif
164#endif 164#endif
165 evas_common_rgba_image_scalecache_shutdown(&im->cache_entry); 165 evas_common_rgba_image_scalecache_shutdown(&im->cache_entry);
166 if (ie->info.module) evas_module_unref((Evas_Module *)ie->info.module); 166 if (ie->info.module) evas_module_unref((Evas_Module *)ie->info.module);
167 /* memset the image to 0x99 because i recently saw a segv where an 167 /* memset the image to 0x99 because i recently saw a segv where an
@@ -173,13 +173,13 @@ _evas_common_rgba_image_delete(Image_Entry *ie)
173// memset(im, 0x99, sizeof(im)); 173// memset(im, 0x99, sizeof(im));
174#ifdef EVAS_CSERVE 174#ifdef EVAS_CSERVE
175 if (ie->data1) evas_cserve_image_free(ie); 175 if (ie->data1) evas_cserve_image_free(ie);
176#endif 176#endif
177/* 177/*
178 * FIXME: This doesn't seem to be needed... But I'm not sure why. 178 * FIXME: This doesn't seem to be needed... But I'm not sure why.
179 * -- nash 179 * -- nash
180 { 180 {
181 Filtered_Image *fi; 181 Filtered_Image *fi;
182 182
183 EINA_LIST_FREE(im->filtered, fi) 183 EINA_LIST_FREE(im->filtered, fi)
184 { 184 {
185 free(fi->key); 185 free(fi->key);
@@ -249,8 +249,8 @@ evas_common_rgba_image_unload(Image_Entry *ie)
249#endif 249#endif
250 return; 250 return;
251 } 251 }
252#endif 252#endif
253 253
254 if (im->image.data && !im->image.no_free) 254 if (im->image.data && !im->image.no_free)
255 free(im->image.data); 255 free(im->image.data);
256 im->image.data = NULL; 256 im->image.data = NULL;
@@ -266,18 +266,19 @@ void
266_evas_common_rgba_image_post_surface(Image_Entry *ie) 266_evas_common_rgba_image_post_surface(Image_Entry *ie)
267{ 267{
268#ifdef HAVE_PIXMAN 268#ifdef HAVE_PIXMAN
269 RGBA_Image *im = (RGBA_Image *) ie; 269# ifdef PIXMAN_IMAGE
270 270 RGBA_Image *im = (RGBA_Image *)ie;
271
271 if (im->pixman.im) pixman_image_unref(im->pixman.im); 272 if (im->pixman.im) pixman_image_unref(im->pixman.im);
272 if (im->cache_entry.flags.alpha) 273 if (im->cache_entry.flags.alpha)
273 { 274 {
274 im->pixman.im = pixman_image_create_bits 275 im->pixman.im = pixman_image_create_bits
275 ( 276 (
276// FIXME: endianess determines this 277// FIXME: endianess determines this
277 PIXMAN_a8r8g8b8, 278 PIXMAN_a8r8g8b8,
278// PIXMAN_b8g8r8a8, 279// PIXMAN_b8g8r8a8,
279 im->cache_entry.w, im->cache_entry.h, 280 im->cache_entry.w, im->cache_entry.h,
280 im->image.data, 281 im->image.data,
281 im->cache_entry.w * 4 282 im->cache_entry.w * 4
282 ); 283 );
283 } 284 }
@@ -285,16 +286,19 @@ _evas_common_rgba_image_post_surface(Image_Entry *ie)
285 { 286 {
286 im->pixman.im = pixman_image_create_bits 287 im->pixman.im = pixman_image_create_bits
287 ( 288 (
288// FIXME: endianess determines this 289// FIXME: endianess determines this
289 PIXMAN_x8r8g8b8, 290 PIXMAN_x8r8g8b8,
290// PIXMAN_b8g8r8x8, 291// PIXMAN_b8g8r8x8,
291 im->cache_entry.w, im->cache_entry.h, 292 im->cache_entry.w, im->cache_entry.h,
292 im->image.data, 293 im->image.data,
293 im->cache_entry.w * 4 294 im->cache_entry.w * 4
294 ); 295 );
295 } 296 }
297# else
298 (void)ie;
299# endif
296#else 300#else
297 ie = NULL; 301 (void)ie;
298#endif 302#endif
299} 303}
300 304
@@ -306,7 +310,7 @@ _evas_common_rgba_image_surface_alloc(Image_Entry *ie, unsigned int w, unsigned
306 310
307#ifdef EVAS_CSERVE 311#ifdef EVAS_CSERVE
308 if (ie->data1) return 0; 312 if (ie->data1) return 0;
309#endif 313#endif
310 if (im->image.no_free) return 0; 314 if (im->image.no_free) return 0;
311 315
312 if (im->flags & RGBA_IMAGE_ALPHA_ONLY) 316 if (im->flags & RGBA_IMAGE_ALPHA_ONLY)
@@ -328,7 +332,7 @@ _evas_common_rgba_image_surface_alloc(Image_Entry *ie, unsigned int w, unsigned
328# endif 332# endif
329#endif 333#endif
330 _evas_common_rgba_image_post_surface(ie); 334 _evas_common_rgba_image_post_surface(ie);
331 335
332 return 0; 336 return 0;
333} 337}
334 338
@@ -338,12 +342,14 @@ _evas_common_rgba_image_surface_delete(Image_Entry *ie)
338 RGBA_Image *im = (RGBA_Image *) ie; 342 RGBA_Image *im = (RGBA_Image *) ie;
339 343
340#ifdef HAVE_PIXMAN 344#ifdef HAVE_PIXMAN
345# ifdef PIXMAN_IMAGE
341 if (im->pixman.im) 346 if (im->pixman.im)
342 { 347 {
343 pixman_image_unref(im->pixman.im); 348 pixman_image_unref(im->pixman.im);
344 im->pixman.im = NULL; 349 im->pixman.im = NULL;
345 } 350 }
346#endif 351# endif
352#endif
347 if (ie->file) 353 if (ie->file)
348 DBG("unload: [%p] %s %s", ie, ie->file, ie->key); 354 DBG("unload: [%p] %s %s", ie, ie->file, ie->key);
349 if ((im->cs.data) && (im->image.data)) 355 if ((im->cs.data) && (im->image.data))
@@ -364,7 +370,7 @@ _evas_common_rgba_image_surface_delete(Image_Entry *ie)
364#ifdef EVAS_CSERVE 370#ifdef EVAS_CSERVE
365 else if (ie->data1) 371 else if (ie->data1)
366 evas_cserve_image_free(ie); 372 evas_cserve_image_free(ie);
367#endif 373#endif
368 374
369 im->image.data = NULL; 375 im->image.data = NULL;
370 ie->allocated.w = 0; 376 ie->allocated.w = 0;
@@ -391,7 +397,7 @@ _evas_common_rgba_image_dirty_region(Image_Entry* ie, unsigned int x __UNUSED__,
391 397
392#ifdef EVAS_CSERVE 398#ifdef EVAS_CSERVE
393 if (ie->data1) evas_cserve_image_free(ie); 399 if (ie->data1) evas_cserve_image_free(ie);
394#endif 400#endif
395 im->flags |= RGBA_IMAGE_IS_DIRTY; 401 im->flags |= RGBA_IMAGE_IS_DIRTY;
396 evas_common_rgba_image_scalecache_dirty(&im->cache_entry); 402 evas_common_rgba_image_scalecache_dirty(&im->cache_entry);
397} 403}
@@ -411,13 +417,13 @@ _evas_common_rgba_image_dirty(Image_Entry *ie_dst, const Image_Entry *ie_src)
411 { 417 {
412#ifdef EVAS_CSERVE 418#ifdef EVAS_CSERVE
413 if (ie_src->data1) evas_cserve_image_free((Image_Entry*) ie_src); 419 if (ie_src->data1) evas_cserve_image_free((Image_Entry*) ie_src);
414#endif 420#endif
415 return 1; 421 return 1;
416 } 422 }
417 423
418#ifdef EVAS_CSERVE 424#ifdef EVAS_CSERVE
419 if (ie_src->data1) evas_cserve_image_free((Image_Entry*) ie_src); 425 if (ie_src->data1) evas_cserve_image_free((Image_Entry*) ie_src);
420#endif 426#endif
421 evas_common_image_colorspace_normalize(src); 427 evas_common_image_colorspace_normalize(src);
422 evas_common_image_colorspace_normalize(dst); 428 evas_common_image_colorspace_normalize(dst);
423/* evas_common_blit_rectangle(src, dst, 0, 0, src->cache_entry.w, src->cache_entry.h, 0, 0); */ 429/* evas_common_blit_rectangle(src, dst, 0, 0, src->cache_entry.w, src->cache_entry.h, 0, 0); */
@@ -431,18 +437,18 @@ _evas_common_rgba_image_ram_usage(Image_Entry *ie)
431{ 437{
432 RGBA_Image *im = (RGBA_Image *)ie; 438 RGBA_Image *im = (RGBA_Image *)ie;
433 int size = sizeof(struct _RGBA_Image); 439 int size = sizeof(struct _RGBA_Image);
434 440
435 if (ie->cache_key) size += strlen(ie->cache_key); 441 if (ie->cache_key) size += strlen(ie->cache_key);
436 if (ie->file) size += strlen(ie->file); 442 if (ie->file) size += strlen(ie->file);
437 if (ie->key) size += strlen(ie->key); 443 if (ie->key) size += strlen(ie->key);
438 444
439 if (im->image.data) 445 if (im->image.data)
440 { 446 {
441#ifdef EVAS_CSERVE 447#ifdef EVAS_CSERVE
442 if ((!im->image.no_free) || (ie->data1)) 448 if ((!im->image.no_free) || (ie->data1))
443#else 449#else
444 if ((!im->image.no_free)) 450 if ((!im->image.no_free))
445#endif 451#endif
446 size += im->cache_entry.w * im->cache_entry.h * sizeof(DATA32); 452 size += im->cache_entry.w * im->cache_entry.h * sizeof(DATA32);
447 } 453 }
448 size += evas_common_rgba_image_scalecache_usage_get(&im->cache_entry); 454 size += evas_common_rgba_image_scalecache_usage_get(&im->cache_entry);
@@ -590,7 +596,7 @@ evas_common_image_colorspace_normalize(RGBA_Image *im)
590 { 596 {
591#ifdef EVAS_CSERVE 597#ifdef EVAS_CSERVE
592 if (((Image_Entry *)im)->data1) evas_cserve_image_free(&im->cache_entry); 598 if (((Image_Entry *)im)->data1) evas_cserve_image_free(&im->cache_entry);
593#endif 599#endif
594 if (!im->image.no_free) free(im->image.data); 600 if (!im->image.no_free) free(im->image.data);
595 im->image.data = im->cs.data; 601 im->image.data = im->cs.data;
596 im->cs.no_free = im->image.no_free; 602 im->cs.no_free = im->image.no_free;
diff --git a/libraries/evas/src/lib/engines/common/evas_image_scalecache.c b/libraries/evas/src/lib/engines/common/evas_image_scalecache.c
index 24a4f2d..e4e4790 100644
--- a/libraries/evas/src/lib/engines/common/evas_image_scalecache.c
+++ b/libraries/evas/src/lib/engines/common/evas_image_scalecache.c
@@ -48,9 +48,7 @@ struct _Scaleitem
48#ifdef SCALECACHE 48#ifdef SCALECACHE
49static unsigned long long use_counter = 0; 49static unsigned long long use_counter = 0;
50 50
51#ifdef BUILD_PTHREAD
52static LK(cache_lock); 51static LK(cache_lock);
53#endif
54static Eina_Inlist *cache_list = NULL; 52static Eina_Inlist *cache_list = NULL;
55static unsigned int cache_size = 0; 53static unsigned int cache_size = 0;
56static int init = 0; 54static int init = 0;
diff --git a/libraries/evas/src/lib/engines/common/evas_line_main.c b/libraries/evas/src/lib/engines/common/evas_line_main.c
index 04401cb..aacf805 100644
--- a/libraries/evas/src/lib/engines/common/evas_line_main.c
+++ b/libraries/evas/src/lib/engines/common/evas_line_main.c
@@ -109,9 +109,24 @@ _evas_draw_point(RGBA_Image *dst, RGBA_Draw_Context *dc, int x, int y)
109 return; 109 return;
110 if ((dc->clip.use) && (!IN_RECT(x, y, dc->clip.x, dc->clip.y, dc->clip.w, dc->clip.h))) 110 if ((dc->clip.use) && (!IN_RECT(x, y, dc->clip.x, dc->clip.y, dc->clip.w, dc->clip.h)))
111 return; 111 return;
112 pfunc = evas_common_gfx_func_composite_color_pt_get(dc->col.col, dst, dc->render_op); 112#ifdef HAVE_PIXMAN
113 if (pfunc) 113# ifdef PIXMAN_LINE
114 pfunc(0, 255, dc->col.col, dst->image.data + (dst->cache_entry.w * y) + x); 114 pixman_op_t op = PIXMAN_OP_SRC;
115
116 if (dc->render_op == _EVAS_RENDER_BLEND)
117 op = PIXMAN_OP_OVER;
118
119 if ((dst->pixman.im) && (dc->col.pixman_color_image))
120 pixman_image_composite(op, dc->col.pixman_color_image, NULL,
121 dst->pixman.im, x, y, 0, 0, x, y, 1, 1);
122 else
123# endif
124#endif
125 {
126 pfunc = evas_common_gfx_func_composite_color_pt_get(dc->col.col, dst, dc->render_op);
127 if (pfunc)
128 pfunc(0, 255, dc->col.col, dst->image.data + (dst->cache_entry.w * y) + x);
129 }
115} 130}
116 131
117/* 132/*
@@ -130,6 +145,14 @@ _evas_draw_simple_line(RGBA_Image *dst, RGBA_Draw_Context *dc, int x0, int y0, i
130 RGBA_Gfx_Pt_Func pfunc; 145 RGBA_Gfx_Pt_Func pfunc;
131 RGBA_Gfx_Func sfunc; 146 RGBA_Gfx_Func sfunc;
132 147
148#ifdef HAVE_PIXMAN
149# ifdef PIXMAN_LINE
150 pixman_op_t op = PIXMAN_OP_SRC; // _EVAS_RENDER_COPY
151 if (dc->render_op == _EVAS_RENDER_BLEND)
152 op = PIXMAN_OP_OVER;
153# endif
154#endif
155
133 dstw = dst->cache_entry.w; 156 dstw = dst->cache_entry.w;
134 color = dc->col.col; 157 color = dc->col.col;
135 158
@@ -172,12 +195,30 @@ _evas_draw_simple_line(RGBA_Image *dst, RGBA_Draw_Context *dc, int x0, int y0, i
172 195
173 len = x1 - x0 + 1; 196 len = x1 - x0 + 1;
174 p = dst->image.data + (dstw * y0) + x0; 197 p = dst->image.data + (dstw * y0) + x0;
175 sfunc = evas_common_gfx_func_composite_color_span_get(color, dst, len, dc->render_op); 198#ifdef HAVE_PIXMAN
176 if (sfunc) 199# ifdef PIXMAN_LINE
177 sfunc(NULL, NULL, color, p, len); 200 if ((dst->pixman.im) && (dc->col.pixman_color_image) &&
178 } 201 (!dc->mask.mask))
179 } 202 pixman_image_composite(op, dc->col.pixman_color_image,
180 return; 203 NULL, dst->pixman.im,
204 x0, y0, 0, 0, x0, y0, len, 1);
205 else if ((dst->pixman.im) && (dc->col.pixman_color_image) &&
206 (dc->mask.mask))
207 pixman_image_composite(op, dc->col.pixman_color_image,
208 dc->mask.mask->pixman.im,
209 dst->pixman.im,
210 x0, y0, 0, 0, x0, y0, len, 1);
211 else
212# endif
213#endif
214 {
215 sfunc = evas_common_gfx_func_composite_color_span_get(color, dst, len, dc->render_op);
216 if (sfunc)
217 sfunc(NULL, NULL, color, p, len);
218 }
219 }
220 }
221 return;
181 } 222 }
182 223
183 pfunc = evas_common_gfx_func_composite_color_pt_get(color, dst, dc->render_op); 224 pfunc = evas_common_gfx_func_composite_color_pt_get(color, dst, dc->render_op);
@@ -192,17 +233,34 @@ _evas_draw_simple_line(RGBA_Image *dst, RGBA_Draw_Context *dc, int x0, int y0, i
192 233
193 len = y1 - y0 + 1; 234 len = y1 - y0 + 1;
194 p = dst->image.data + (dstw * y0) + x0; 235 p = dst->image.data + (dstw * y0) + x0;
195 while (len--) 236#ifdef HAVE_PIXMAN
196 { 237# ifdef PIXMAN_LINE
238 if ((dst->pixman.im) && (dc->col.pixman_color_image) &&
239 (!dc->mask.mask))
240 pixman_image_composite(op, dc->col.pixman_color_image,
241 NULL, dst->pixman.im,
242 x0, y0, 0, 0, x0, y0, 1, len);
243 else if ((dst->pixman.im) && (dc->col.pixman_color_image) &&
244 (dc->mask.mask))
245 pixman_image_composite(op, dc->col.pixman_color_image,
246 dc->mask.mask->pixman.im, dst->pixman.im,
247 x0, y0, 0, 0, x0, y0, 1, len);
248 else
249# endif
250#endif
251 {
252 while (len--)
253 {
197#ifdef EVAS_SLI 254#ifdef EVAS_SLI
198 if (((y1 + 1 - len) % dc->sli.h) == dc->sli.y) 255 if (((y1 + 1 - len) % dc->sli.h) == dc->sli.y)
199#endif 256#endif
200 { 257 {
201 pfunc(0, 255, color, p); 258 pfunc(0, 255, color, p);
202 } 259 }
203 p += dstw; 260 p += dstw;
204 } 261 }
205 } 262 }
263 }
206 return; 264 return;
207 } 265 }
208 266
@@ -281,16 +339,52 @@ _evas_draw_simple_line(RGBA_Image *dst, RGBA_Draw_Context *dc, int x0, int y0, i
281 if (dx > 0) dstw--; 339 if (dx > 0) dstw--;
282 else dstw++; 340 else dstw++;
283 } 341 }
284 342#ifdef HAVE_PIXMAN
343# ifdef PIXMAN_LINE
344 int pixman_x_position = x0;
345 int pixman_y_position = y0;
346 int x_unit = dstw - dst->cache_entry.w;
347# endif
348#endif
349
350
285 while (len--) 351 while (len--)
286 { 352 {
287#ifdef EVAS_SLI 353#ifdef EVAS_SLI
288 if (((y1 + 1 - len) % dc->sli.h) == dc->sli.y) 354 if (((y1 + 1 - len) % dc->sli.h) == dc->sli.y)
289#endif 355#endif
290 { 356 {
291 pfunc(0, 255, color, p); 357#ifdef HAVE_PIXMAN
292 } 358# ifdef PIXMAN_LINE
293 p += dstw; 359 if ((dst->pixman.im) && (dc->col.pixman_color_image) &&
360 (!dc->mask.mask))
361 pixman_image_composite(op, dc->col.pixman_color_image,
362 NULL, dst->pixman.im,
363 pixman_x_position,
364 pixman_y_position,
365 0, 0, pixman_x_position,
366 pixman_y_position, 1, 1);
367 else if ((dst->pixman.im) && (dc->col.pixman_color_image) &&
368 (dc->mask.mask))
369 pixman_image_composite(op, dc->col.pixman_color_image,
370 dc->mask.mask->pixman.im,
371 dst->pixman.im,
372 pixman_x_position,
373 pixman_y_position, 0, 0,
374 pixman_x_position,
375 pixman_y_position, 1, 1);
376 else
377# endif
378#endif
379 pfunc(0, 255, color, p);
380 }
381#ifdef HAVE_PIXMAN
382# ifdef PIXMAN_LINE
383 pixman_x_position += x_unit;
384 pixman_y_position += 1;
385# endif
386#endif
387 p += dstw;
294 } 388 }
295 } 389 }
296} 390}
@@ -456,6 +550,31 @@ _evas_draw_line(RGBA_Image *dst, RGBA_Draw_Context *dc, int x0, int y0, int x1,
456 dx = x1 - x0; 550 dx = x1 - x0;
457 dy = y1 - y0; 551 dy = y1 - y0;
458 552
553#ifdef HAVE_PIXMAN
554# ifdef PIXMAN_LINE
555 int pix_x;
556 int pix_y;
557 int pix_x_unit;
558 int pix_y_unit;
559
560 pixman_op_t op = PIXMAN_OP_SRC; // _EVAS_RENDER_COPY
561 if (dc->render_op == _EVAS_RENDER_BLEND)
562 op = PIXMAN_OP_OVER;
563 pix_x = x0;
564 pix_y = y0;
565
566 if (dx < 0)
567 pix_x_unit = -1;
568 else
569 pix_x_unit = 1;
570
571 if (dy < 0)
572 pix_y_unit = -1;
573 else
574 pix_y_unit = 1;
575# endif
576#endif
577
459 if ( (dx == 0) || (dy == 0) || (dx == dy) || (dx == -dy) ) 578 if ( (dx == 0) || (dy == 0) || (dx == dy) || (dx == -dy) )
460 { 579 {
461 _evas_draw_simple_line(dst, dc, x0, y0, x1, y1); 580 _evas_draw_simple_line(dst, dc, x0, y0, x1, y1);
@@ -494,6 +613,11 @@ _evas_draw_line(RGBA_Image *dst, RGBA_Draw_Context *dc, int x0, int y0, int x1,
494 prev_y = y; 613 prev_y = y;
495 p += dh; 614 p += dh;
496 py += dely; 615 py += dely;
616#ifdef HAVE_PIXMAN
617# ifdef PIXMAN_LINE
618 pix_y += pix_y_unit;
619# endif
620#endif
497 } 621 }
498 if (!p1_in) 622 if (!p1_in)
499 { 623 {
@@ -509,12 +633,37 @@ _evas_draw_line(RGBA_Image *dst, RGBA_Draw_Context *dc, int x0, int y0, int x1,
509#endif 633#endif
510 { 634 {
511 if (IN_RANGE(px, py, clw, clh)) 635 if (IN_RANGE(px, py, clw, clh))
512 pfunc(0, 255, color, p); 636 {
513 } 637#ifdef HAVE_PIXMAN
514 next_x: 638# ifdef PIXMAN_LINE
515 yy += dyy; 639 if ((dst->pixman.im) && (dc->col.pixman_color_image) &&
516 px++; 640 (!dc->mask.mask))
517 p++; 641 pixman_image_composite(op, dc->col.pixman_color_image,
642 NULL, dst->pixman.im,
643 pix_x, pix_y, 0, 0,
644 pix_x, pix_y, 1, 1);
645 else if ((dst->pixman.im) && (dc->col.pixman_color_image) &&
646 (dc->mask.mask))
647 pixman_image_composite(op, dc->col.pixman_color_image,
648 dc->mask.mask->pixman.im,
649 dst->pixman.im,
650 pix_x, pix_y, 0, 0,
651 pix_x, pix_y, 1, 1);
652 else
653# endif
654#endif
655 pfunc(0, 255, color, p);
656 }
657 }
658next_x:
659 yy += dyy;
660 px++;
661 p++;
662#ifdef HAVE_PIXMAN
663# ifdef PIXMAN_LINE
664 pix_x += pix_x_unit;
665# endif
666#endif
518 } 667 }
519 return; 668 return;
520 } 669 }
@@ -529,9 +678,14 @@ _evas_draw_line(RGBA_Image *dst, RGBA_Draw_Context *dc, int x0, int y0, int x1,
529 x += ((xx - (x << 16)) >> 15); 678 x += ((xx - (x << 16)) >> 15);
530 if (prev_x != x) 679 if (prev_x != x)
531 { 680 {
532 prev_x = x; 681 prev_x = x;
533 px += delx; 682 px += delx;
534 p += delx; 683 p += delx;
684#ifdef HAVE_PIXMAN
685# ifdef PIXMAN_LINE
686 pix_x += pix_x_unit;
687# endif
688#endif
535 } 689 }
536 if (!p1_in) 690 if (!p1_in)
537 { 691 {
@@ -547,12 +701,38 @@ _evas_draw_line(RGBA_Image *dst, RGBA_Draw_Context *dc, int x0, int y0, int x1,
547#endif 701#endif
548 { 702 {
549 if (IN_RANGE(px, py, clw, clh)) 703 if (IN_RANGE(px, py, clw, clh))
550 pfunc(0, 255, color, p); 704 {
551 } 705#ifdef HAVE_PIXMAN
552 next_y: 706# ifdef PIXMAN_LINE
707 if ((dst->pixman.im) && (dc->col.pixman_color_image) &&
708 (!dc->mask.mask))
709 pixman_image_composite(op, dc->col.pixman_color_image,
710 NULL, dst->pixman.im,
711 pix_x, pix_y, 0, 0,
712 pix_x, pix_y, 1, 1);
713 else if ((dst->pixman.im) && (dc->col.pixman_color_image) &&
714 (dc->mask.mask))
715 pixman_image_composite(op, dc->col.pixman_color_image,
716 dc->mask.mask->pixman.im,
717 dst->pixman.im,
718 pix_x, pix_y, 0, 0,
719 pix_x, pix_y, 1, 1);
720 else
721# endif
722#endif
723 pfunc(0, 255, color, p);
724 }
725 }
726next_y:
553 xx += dxx; 727 xx += dxx;
554 py++; 728 py++;
555 p += dstw; 729 p += dstw;
730#ifdef HAVE_PIXMAN
731# ifdef PIXMAN_LINE
732 pix_y += pix_y_unit;
733# endif
734#endif
735
556 } 736 }
557} 737}
558 738
@@ -568,12 +748,43 @@ _evas_draw_line_aa(RGBA_Image *dst, RGBA_Draw_Context *dc, int x0, int y0, int x
568 DATA32 *p, *data, color; 748 DATA32 *p, *data, color;
569 RGBA_Gfx_Pt_Func pfunc; 749 RGBA_Gfx_Pt_Func pfunc;
570 750
751 dx = x1 - x0;
752 dy = y1 - y0;
753
754#ifdef HAVE_PIXMAN
755# ifdef PIXMAN_LINE
756 int pix_x;
757 int pix_y;
758 int pix_x_unit;
759 int pix_y_unit;
760
761 pixman_image_t *aa_mask_image;
762 int alpha_data_buffer;
763
764 pixman_op_t op = PIXMAN_OP_SRC; // _EVAS_RENDER_COPY
765 if (dc->render_op == _EVAS_RENDER_BLEND)
766 op = PIXMAN_OP_OVER;
767 pix_x = x0;
768 pix_y = y0;
769
770 if (dx < 0)
771 pix_x_unit = -1;
772 else
773 pix_x_unit = 1;
774
775 if (dy < 0)
776 pix_y_unit = -1;
777 else
778 pix_y_unit = 1;
779# endif
780#endif
571 if (y0 > y1) 781 if (y0 > y1)
572 EXCHANGE_POINTS(x0, y0, x1, y1); 782 EXCHANGE_POINTS(x0, y0, x1, y1);
783
573 dx = x1 - x0; 784 dx = x1 - x0;
574 dy = y1 - y0; 785 dy = y1 - y0;
575 786
576 if ( (dx == 0) || (dy == 0) || (dx == dy) || (dx == -dy) ) 787 if ((dx == 0) || (dy == 0) || (dx == dy) || (dx == -dy))
577 { 788 {
578 _evas_draw_simple_line(dst, dc, x0, y0, x1, y1); 789 _evas_draw_simple_line(dst, dc, x0, y0, x1, y1);
579 return; 790 return;
@@ -609,9 +820,14 @@ _evas_draw_line_aa(RGBA_Image *dst, RGBA_Draw_Context *dc, int x0, int y0, int x
609 y = (yy >> 16); 820 y = (yy >> 16);
610 if (prev_y != y) 821 if (prev_y != y)
611 { 822 {
612 prev_y = y; 823 prev_y = y;
613 p += dh; 824 p += dh;
614 py += dely; 825 py += dely;
826#ifdef HAVE_PIXMAN
827# ifdef PIXMAN_LINE
828 pix_y += pix_y_unit;
829# endif
830#endif
615 } 831 }
616 if (!p1_in) 832 if (!p1_in)
617 { 833 {
@@ -624,39 +840,109 @@ _evas_draw_line_aa(RGBA_Image *dst, RGBA_Draw_Context *dc, int x0, int y0, int x
624 } 840 }
625 if (px < clw) 841 if (px < clw)
626 { 842 {
627 aa = ((yy - (y << 16)) >> 8); 843 aa = ((yy - (y << 16)) >> 8);
628 if ((py) < clh) 844 if ((py) < clh)
629 pfunc(0, 255 - aa, color, p); 845 {
630 if ((py + 1) < clh) 846#ifdef HAVE_PIXMAN
631 pfunc(0, aa, color, p + dstw); 847# ifdef PIXMAN_LINE
632 } 848 alpha_data_buffer = 255 - aa;
633 849 aa_mask_image = pixman_image_create_bits(PIXMAN_a8, 1, 1,
634 next_x: 850 (uint32_t *)&alpha_data_buffer, 4);
635 yy += dyy; 851
636 px++; 852 if ((dst->pixman.im) && (dc->col.pixman_color_image ) &&
637 p++; 853 (!dc->mask.mask))
854 pixman_image_composite(PIXMAN_OP_OVER,
855 dc->col.pixman_color_image,
856 aa_mask_image, dst->pixman.im,
857 pix_x, pix_y, 0, 0,
858 pix_x, pix_y, 1, 1);
859 else if ((dst->pixman.im) && (dc->col.pixman_color_image) &&
860 (dc->mask.mask) )
861 pixman_image_composite(op, dc->col.pixman_color_image,
862 dc->mask.mask->pixman.im,
863 dst->pixman.im,
864 pix_x, pix_y, 0, 0,
865 pix_x, pix_y, 1, 1);
866 else
867# endif
868#endif
869 pfunc(0, 255 - aa, color, p);
870#ifdef HAVE_PIXMAN
871# ifdef PIXMAN_LINE
872 pixman_image_unref(aa_mask_image);
873# endif
874#endif
875 }
876 if ((py + 1) < clh)
877 {
878#ifdef HAVE_PIXMAN
879# ifdef PIXMAN_LINE
880 alpha_data_buffer = aa;
881 aa_mask_image = pixman_image_create_bits(PIXMAN_a8, 1, 1,
882 (uint32_t *)&alpha_data_buffer, 4);
883
884 if ((dst->pixman.im) && (dc->col.pixman_color_image) &&
885 (!dc->mask.mask))
886 pixman_image_composite(PIXMAN_OP_OVER,
887 dc->col.pixman_color_image,
888 aa_mask_image, dst->pixman.im,
889 pix_x, pix_y + 1, 0, 0,
890 pix_x, pix_y + 1, 1, 1);
891 else if ((dst->pixman.im) && (dc->col.pixman_color_image) &&
892 (dc->mask.mask))
893 pixman_image_composite(op, dc->col.pixman_color_image,
894 dc->mask.mask->pixman.im,
895 dst->pixman.im,
896 pix_x, pix_y + 1, 0, 0,
897 pix_x, pix_y + 1, 1, 1);
898 else
899# endif
900#endif
901 pfunc(0, aa, color, p + dstw);
902#ifdef HAVE_PIXMAN
903# ifdef PIXMAN_LINE
904 pixman_image_unref(aa_mask_image);
905# endif
906#endif
907 }
908 }
909
910next_x:
911 yy += dyy;
912 px++;
913 p++;
914#ifdef HAVE_PIXMAN
915# ifdef PIXMAN_LINE
916 pix_x += pix_x_unit;
917# endif
918#endif
638 } 919 }
639 return; 920 return;
640 } 921 }
641 922
642 /* steep: y-parametric */ 923 /* steep: y-parametric */
643 SETUP_LINE_STEEP; 924 SETUP_LINE_STEEP;
644 925
645 while (py < by) 926 while (py < by)
646 { 927 {
647 DATA8 aa; 928 DATA8 aa;
648 929
649 x = (xx >> 16); 930 x = (xx >> 16);
650 if (prev_x != x) 931 if (prev_x != x)
651 { 932 {
652 prev_x = x; 933 prev_x = x;
653 px += delx; 934 px += delx;
654 p += delx; 935 p += delx;
936#ifdef HAVE_PIXMAN
937# ifdef PIXMAN_LINE
938 pix_x += pix_x_unit;
939# endif
940#endif
655 } 941 }
656 if (!p1_in) 942 if (!p1_in)
657 { 943 {
658 if ((px < 0) && (delx < 0)) return; 944 if ((px < 0) && (delx < 0)) return;
659 if ((px > rx) && (delx > 0)) return; 945 if ((px > rx) && (delx > 0)) return;
660 } 946 }
661 if (!p0_in) 947 if (!p0_in)
662 { 948 {
@@ -664,15 +950,80 @@ _evas_draw_line_aa(RGBA_Image *dst, RGBA_Draw_Context *dc, int x0, int y0, int x
664 } 950 }
665 if (py < clh) 951 if (py < clh)
666 { 952 {
667 aa = ((xx - (x << 16)) >> 8); 953 aa = ((xx - (x << 16)) >> 8);
668 if ((px) < clw) 954 if ((px) < clw)
669 pfunc(0, 255 - aa, color, p); 955 {
670 if ((px + 1) < clw) 956#ifdef HAVE_PIXMAN
671 pfunc(0, aa, color, p + 1); 957# ifdef PIXMAN_LINE
672 } 958 alpha_data_buffer = 255 - aa;
959 aa_mask_image = pixman_image_create_bits(PIXMAN_a8, 1, 1, (uint32_t *)&alpha_data_buffer, 4);
960
961 if ((dst->pixman.im) && (dc->col.pixman_color_image) &&
962 (!dc->mask.mask))
963 pixman_image_composite(PIXMAN_OP_OVER,
964 dc->col.pixman_color_image,
965 aa_mask_image, dst->pixman.im,
966 pix_x, pix_y, 0, 0,
967 pix_x, pix_y, 1, 1);
968 else if ((dst->pixman.im) && (dc->col.pixman_color_image) &&
969 (dc->mask.mask))
970 pixman_image_composite(op, dc->col.pixman_color_image,
971 dc->mask.mask->pixman.im,
972 dst->pixman.im,
973 pix_x, pix_y, 0, 0,
974 pix_x, pix_y, 1, 1);
975 else
976# endif
977#endif
978 pfunc(0, 255 - aa, color, p);
979#ifdef HAVE_PIXMAN
980# ifdef PIXMAN_LINE
981 pixman_image_unref(aa_mask_image);
982# endif
983#endif
984
985 }
986 if ((px + 1) < clw)
987 {
988#ifdef HAVE_PIXMAN
989# ifdef PIXMAN_LINE
990 alpha_data_buffer = aa;
991 aa_mask_image = pixman_image_create_bits(PIXMAN_a8, 1, 1,
992 (uint32_t *)&alpha_data_buffer, 4);
993
994 if ((dst->pixman.im) && (dc->col.pixman_color_image) &&
995 (!dc->mask.mask))
996 pixman_image_composite(PIXMAN_OP_OVER,
997 dc->col.pixman_color_image,
998 aa_mask_image, dst->pixman.im,
999 pix_x + 1, pix_y, 0, 0,
1000 pix_x + 1, pix_y, 1, 1);
1001 else if ((dst->pixman.im) && (dc->col.pixman_color_image) &&
1002 (dc->mask.mask))
1003 pixman_image_composite(op, dc->col.pixman_color_image,
1004 dc->mask.mask->pixman.im,
1005 dst->pixman.im,
1006 pix_x + 1, pix_y, 0, 0,
1007 pix_x + 1, pix_y, 1, 1);
1008 else
1009# endif
1010#endif
1011 pfunc(0, aa, color, p + 1);
1012#ifdef HAVE_PIXMAN
1013# ifdef PIXMAN_LINE
1014 pixman_image_unref(aa_mask_image);
1015# endif
1016#endif
1017 }
1018 }
673 next_y: 1019 next_y:
674 xx += dxx; 1020 xx += dxx;
675 py++; 1021 py++;
676 p += dstw; 1022 p += dstw;
1023#ifdef HAVE_PIXMAN
1024# ifdef PIXMAN_LINE
1025 pix_y += pix_y_unit;
1026# endif
1027#endif
677 } 1028 }
678} 1029}
diff --git a/libraries/evas/src/lib/engines/common/evas_op_add/Makefile.in b/libraries/evas/src/lib/engines/common/evas_op_add/Makefile.in
index 4c721f9..78e893d 100644
--- a/libraries/evas/src/lib/engines/common/evas_op_add/Makefile.in
+++ b/libraries/evas/src/lib/engines/common/evas_op_add/Makefile.in
@@ -166,8 +166,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
166PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 166PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
167PIXMAN_LIBS = @PIXMAN_LIBS@ 167PIXMAN_LIBS = @PIXMAN_LIBS@
168PKG_CONFIG = @PKG_CONFIG@ 168PKG_CONFIG = @PKG_CONFIG@
169PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
170PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
171PNG_CFLAGS = @PNG_CFLAGS@ 169PNG_CFLAGS = @PNG_CFLAGS@
172PNG_LIBS = @PNG_LIBS@ 170PNG_LIBS = @PNG_LIBS@
173RANLIB = @RANLIB@ 171RANLIB = @RANLIB@
@@ -184,6 +182,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
184VALGRIND_LIBS = @VALGRIND_LIBS@ 182VALGRIND_LIBS = @VALGRIND_LIBS@
185VERSION = @VERSION@ 183VERSION = @VERSION@
186VMAJ = @VMAJ@ 184VMAJ = @VMAJ@
185WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
186WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
187WIN32_CFLAGS = @WIN32_CFLAGS@ 187WIN32_CFLAGS = @WIN32_CFLAGS@
188WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 188WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
189XCB_CFLAGS = @XCB_CFLAGS@ 189XCB_CFLAGS = @XCB_CFLAGS@
@@ -265,6 +265,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
265evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 265evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
266evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 266evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
267evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 267evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
268evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
269evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
270evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
271evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
268evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 272evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
269evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 273evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
270evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 274evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/lib/engines/common/evas_op_blend/Makefile.in b/libraries/evas/src/lib/engines/common/evas_op_blend/Makefile.in
index e796ef2..e00dac8 100644
--- a/libraries/evas/src/lib/engines/common/evas_op_blend/Makefile.in
+++ b/libraries/evas/src/lib/engines/common/evas_op_blend/Makefile.in
@@ -203,8 +203,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
203PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 203PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
204PIXMAN_LIBS = @PIXMAN_LIBS@ 204PIXMAN_LIBS = @PIXMAN_LIBS@
205PKG_CONFIG = @PKG_CONFIG@ 205PKG_CONFIG = @PKG_CONFIG@
206PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
207PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
208PNG_CFLAGS = @PNG_CFLAGS@ 206PNG_CFLAGS = @PNG_CFLAGS@
209PNG_LIBS = @PNG_LIBS@ 207PNG_LIBS = @PNG_LIBS@
210RANLIB = @RANLIB@ 208RANLIB = @RANLIB@
@@ -221,6 +219,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
221VALGRIND_LIBS = @VALGRIND_LIBS@ 219VALGRIND_LIBS = @VALGRIND_LIBS@
222VERSION = @VERSION@ 220VERSION = @VERSION@
223VMAJ = @VMAJ@ 221VMAJ = @VMAJ@
222WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
223WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
224WIN32_CFLAGS = @WIN32_CFLAGS@ 224WIN32_CFLAGS = @WIN32_CFLAGS@
225WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 225WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
226XCB_CFLAGS = @XCB_CFLAGS@ 226XCB_CFLAGS = @XCB_CFLAGS@
@@ -302,6 +302,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
302evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 302evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
303evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 303evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
304evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 304evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
305evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
306evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
307evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
308evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
305evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 309evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
306evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 310evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
307evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 311evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_color_sse3.c b/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_color_sse3.c
index 64d5a86..1843265 100644
--- a/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_color_sse3.c
+++ b/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_color_sse3.c
@@ -53,7 +53,8 @@ _op_blend_c_dp_sse3(DATA32 *s __UNUSED__, DATA8 *m __UNUSED__, DATA32 c, DATA32
53static void 53static void
54init_blend_color_span_funcs_sse3(void) 54init_blend_color_span_funcs_sse3(void)
55{ 55{
56 op_blend_span_funcs[SP_N][SM_N][SC][DP][CPU_SSE3] = _op_blend_c_dp_sse3; 56// FIXME: BUGGY BUGGY Core i5 750 (32bit), 4.5.2 (Ubuntu/Linaro 4.5.2-8ubuntu4), ello (text and rectangle)
57// op_blend_span_funcs[SP_N][SM_N][SC][DP][CPU_SSE3] = _op_blend_c_dp_sse3;
57 op_blend_span_funcs[SP_N][SM_N][SC_AA][DP][CPU_SSE3] = _op_blend_caa_dp_sse3; 58 op_blend_span_funcs[SP_N][SM_N][SC_AA][DP][CPU_SSE3] = _op_blend_caa_dp_sse3;
58 59
59// FIXME: BUGGY BUGGY Core i5 750 (32bit), 4.5.2 (Ubuntu/Linaro 4.5.2-8ubuntu4), ello (text and rectangle) 60// FIXME: BUGGY BUGGY Core i5 750 (32bit), 4.5.2 (Ubuntu/Linaro 4.5.2-8ubuntu4), ello (text and rectangle)
diff --git a/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_mask_color_sse3.c b/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_mask_color_sse3.c
index 83230e5..5883d15 100644
--- a/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_mask_color_sse3.c
+++ b/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_mask_color_sse3.c
@@ -168,7 +168,8 @@ _op_blend_mas_can_dp_sse3(DATA32 *s __UNUSED__, DATA8 *m, DATA32 c, DATA32 *d, i
168static void 168static void
169init_blend_mask_color_span_funcs_sse3(void) 169init_blend_mask_color_span_funcs_sse3(void)
170{ 170{
171 op_blend_span_funcs[SP_N][SM_AS][SC][DP][CPU_SSE3] = _op_blend_mas_c_dp_sse3; 171// FIXME: BUGGY BUGGY Core i5 750 (32bit), 4.5.2 (Ubuntu/Linaro 4.5.2-8ubuntu4), ello (text and rectangle)
172// op_blend_span_funcs[SP_N][SM_AS][SC][DP][CPU_SSE3] = _op_blend_mas_c_dp_sse3;
172 op_blend_span_funcs[SP_N][SM_AS][SC_N][DP][CPU_SSE3] = _op_blend_mas_cn_dp_sse3; 173 op_blend_span_funcs[SP_N][SM_AS][SC_N][DP][CPU_SSE3] = _op_blend_mas_cn_dp_sse3;
173 op_blend_span_funcs[SP_N][SM_AS][SC_AN][DP][CPU_SSE3] = _op_blend_mas_can_dp_sse3; 174 op_blend_span_funcs[SP_N][SM_AS][SC_AN][DP][CPU_SSE3] = _op_blend_mas_can_dp_sse3;
174 op_blend_span_funcs[SP_N][SM_AS][SC_AA][DP][CPU_SSE3] = _op_blend_mas_caa_dp_sse3; 175 op_blend_span_funcs[SP_N][SM_AS][SC_AA][DP][CPU_SSE3] = _op_blend_mas_caa_dp_sse3;
diff --git a/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_pixel_sse3.c b/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_pixel_sse3.c
index 2e72fec..69c597c 100644
--- a/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_pixel_sse3.c
+++ b/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_pixel_sse3.c
@@ -146,7 +146,6 @@ init_blend_pixel_span_funcs_sse3(void)
146 op_blend_span_funcs[SP_AS][SM_N][SC_N][DP][CPU_SSE3] = _op_blend_pas_dp_sse3; 146 op_blend_span_funcs[SP_AS][SM_N][SC_N][DP][CPU_SSE3] = _op_blend_pas_dp_sse3;
147 op_blend_span_funcs[SP_AN][SM_N][SC_N][DP][CPU_SSE3] = _op_blend_pan_dp_sse3; 147 op_blend_span_funcs[SP_AN][SM_N][SC_N][DP][CPU_SSE3] = _op_blend_pan_dp_sse3;
148 148
149
150// FIXME: BUGGY BUGGY Core i5 750 (32bit), 4.5.2 (Ubuntu/Linaro 4.5.2-8ubuntu4), ello (text and rectangle) 149// FIXME: BUGGY BUGGY Core i5 750 (32bit), 4.5.2 (Ubuntu/Linaro 4.5.2-8ubuntu4), ello (text and rectangle)
151// op_blend_span_funcs[SP][SM_N][SC_N][DP_AN][CPU_SSE3] = _op_blend_p_dpan_sse3; 150// op_blend_span_funcs[SP][SM_N][SC_N][DP_AN][CPU_SSE3] = _op_blend_p_dpan_sse3;
152 op_blend_span_funcs[SP_AS][SM_N][SC_N][DP_AN][CPU_SSE3] = _op_blend_pas_dpan_sse3; 151 op_blend_span_funcs[SP_AS][SM_N][SC_N][DP_AN][CPU_SSE3] = _op_blend_pas_dpan_sse3;
diff --git a/libraries/evas/src/lib/engines/common/evas_op_copy/Makefile.in b/libraries/evas/src/lib/engines/common/evas_op_copy/Makefile.in
index 52658a4..40536c0 100644
--- a/libraries/evas/src/lib/engines/common/evas_op_copy/Makefile.in
+++ b/libraries/evas/src/lib/engines/common/evas_op_copy/Makefile.in
@@ -166,8 +166,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
166PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 166PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
167PIXMAN_LIBS = @PIXMAN_LIBS@ 167PIXMAN_LIBS = @PIXMAN_LIBS@
168PKG_CONFIG = @PKG_CONFIG@ 168PKG_CONFIG = @PKG_CONFIG@
169PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
170PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
171PNG_CFLAGS = @PNG_CFLAGS@ 169PNG_CFLAGS = @PNG_CFLAGS@
172PNG_LIBS = @PNG_LIBS@ 170PNG_LIBS = @PNG_LIBS@
173RANLIB = @RANLIB@ 171RANLIB = @RANLIB@
@@ -184,6 +182,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
184VALGRIND_LIBS = @VALGRIND_LIBS@ 182VALGRIND_LIBS = @VALGRIND_LIBS@
185VERSION = @VERSION@ 183VERSION = @VERSION@
186VMAJ = @VMAJ@ 184VMAJ = @VMAJ@
185WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
186WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
187WIN32_CFLAGS = @WIN32_CFLAGS@ 187WIN32_CFLAGS = @WIN32_CFLAGS@
188WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 188WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
189XCB_CFLAGS = @XCB_CFLAGS@ 189XCB_CFLAGS = @XCB_CFLAGS@
@@ -265,6 +265,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
265evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 265evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
266evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 266evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
267evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 267evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
268evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
269evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
270evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
271evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
268evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 272evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
269evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 273evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
270evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 274evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/lib/engines/common/evas_op_mask/Makefile.in b/libraries/evas/src/lib/engines/common/evas_op_mask/Makefile.in
index 0ccd7f3..d5764b1 100644
--- a/libraries/evas/src/lib/engines/common/evas_op_mask/Makefile.in
+++ b/libraries/evas/src/lib/engines/common/evas_op_mask/Makefile.in
@@ -166,8 +166,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
166PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 166PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
167PIXMAN_LIBS = @PIXMAN_LIBS@ 167PIXMAN_LIBS = @PIXMAN_LIBS@
168PKG_CONFIG = @PKG_CONFIG@ 168PKG_CONFIG = @PKG_CONFIG@
169PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
170PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
171PNG_CFLAGS = @PNG_CFLAGS@ 169PNG_CFLAGS = @PNG_CFLAGS@
172PNG_LIBS = @PNG_LIBS@ 170PNG_LIBS = @PNG_LIBS@
173RANLIB = @RANLIB@ 171RANLIB = @RANLIB@
@@ -184,6 +182,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
184VALGRIND_LIBS = @VALGRIND_LIBS@ 182VALGRIND_LIBS = @VALGRIND_LIBS@
185VERSION = @VERSION@ 183VERSION = @VERSION@
186VMAJ = @VMAJ@ 184VMAJ = @VMAJ@
185WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
186WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
187WIN32_CFLAGS = @WIN32_CFLAGS@ 187WIN32_CFLAGS = @WIN32_CFLAGS@
188WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 188WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
189XCB_CFLAGS = @XCB_CFLAGS@ 189XCB_CFLAGS = @XCB_CFLAGS@
@@ -265,6 +265,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
265evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 265evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
266evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 266evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
267evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 267evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
268evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
269evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
270evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
271evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
268evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 272evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
269evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 273evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
270evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 274evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/lib/engines/common/evas_op_mul/Makefile.in b/libraries/evas/src/lib/engines/common/evas_op_mul/Makefile.in
index f239cf7..d5452fe 100644
--- a/libraries/evas/src/lib/engines/common/evas_op_mul/Makefile.in
+++ b/libraries/evas/src/lib/engines/common/evas_op_mul/Makefile.in
@@ -166,8 +166,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
166PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 166PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
167PIXMAN_LIBS = @PIXMAN_LIBS@ 167PIXMAN_LIBS = @PIXMAN_LIBS@
168PKG_CONFIG = @PKG_CONFIG@ 168PKG_CONFIG = @PKG_CONFIG@
169PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
170PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
171PNG_CFLAGS = @PNG_CFLAGS@ 169PNG_CFLAGS = @PNG_CFLAGS@
172PNG_LIBS = @PNG_LIBS@ 170PNG_LIBS = @PNG_LIBS@
173RANLIB = @RANLIB@ 171RANLIB = @RANLIB@
@@ -184,6 +182,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
184VALGRIND_LIBS = @VALGRIND_LIBS@ 182VALGRIND_LIBS = @VALGRIND_LIBS@
185VERSION = @VERSION@ 183VERSION = @VERSION@
186VMAJ = @VMAJ@ 184VMAJ = @VMAJ@
185WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
186WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
187WIN32_CFLAGS = @WIN32_CFLAGS@ 187WIN32_CFLAGS = @WIN32_CFLAGS@
188WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 188WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
189XCB_CFLAGS = @XCB_CFLAGS@ 189XCB_CFLAGS = @XCB_CFLAGS@
@@ -265,6 +265,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
265evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 265evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
266evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 266evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
267evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 267evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
268evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
269evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
270evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
271evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
268evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 272evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
269evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 273evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
270evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 274evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/lib/engines/common/evas_op_sub/Makefile.in b/libraries/evas/src/lib/engines/common/evas_op_sub/Makefile.in
index b68ed3b..4b93b1b 100644
--- a/libraries/evas/src/lib/engines/common/evas_op_sub/Makefile.in
+++ b/libraries/evas/src/lib/engines/common/evas_op_sub/Makefile.in
@@ -166,8 +166,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
166PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 166PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
167PIXMAN_LIBS = @PIXMAN_LIBS@ 167PIXMAN_LIBS = @PIXMAN_LIBS@
168PKG_CONFIG = @PKG_CONFIG@ 168PKG_CONFIG = @PKG_CONFIG@
169PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
170PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
171PNG_CFLAGS = @PNG_CFLAGS@ 169PNG_CFLAGS = @PNG_CFLAGS@
172PNG_LIBS = @PNG_LIBS@ 170PNG_LIBS = @PNG_LIBS@
173RANLIB = @RANLIB@ 171RANLIB = @RANLIB@
@@ -184,6 +182,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
184VALGRIND_LIBS = @VALGRIND_LIBS@ 182VALGRIND_LIBS = @VALGRIND_LIBS@
185VERSION = @VERSION@ 183VERSION = @VERSION@
186VMAJ = @VMAJ@ 184VMAJ = @VMAJ@
185WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
186WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
187WIN32_CFLAGS = @WIN32_CFLAGS@ 187WIN32_CFLAGS = @WIN32_CFLAGS@
188WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 188WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
189XCB_CFLAGS = @XCB_CFLAGS@ 189XCB_CFLAGS = @XCB_CFLAGS@
@@ -265,6 +265,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
265evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 265evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
266evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 266evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
267evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 267evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
268evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
269evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
270evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
271evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
268evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 272evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
269evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 273evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
270evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 274evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/lib/engines/common/evas_polygon_main.c b/libraries/evas/src/lib/engines/common/evas_polygon_main.c
index bca3f83..ea0bf13 100644
--- a/libraries/evas/src/lib/engines/common/evas_polygon_main.c
+++ b/libraries/evas/src/lib/engines/common/evas_polygon_main.c
@@ -1,3 +1,7 @@
1#ifdef HAVE_CONFIG_H
2# include <config.h>
3#endif
4
1#include <math.h> 5#include <math.h>
2 6
3#include "evas_common.h" 7#include "evas_common.h"
@@ -133,6 +137,14 @@ evas_common_polygon_draw(RGBA_Image *dst, RGBA_Draw_Context *dc, RGBA_Polygon_Po
133 int ext_x, ext_y, ext_w, ext_h; 137 int ext_x, ext_y, ext_w, ext_h;
134 int *sorted_index; 138 int *sorted_index;
135 139
140#ifdef HAVE_PIXMAN
141# ifdef PIXMAN_POLY
142 pixman_op_t op = PIXMAN_OP_SRC; // _EVAS_RENDER_COPY
143 if (dc->render_op == _EVAS_RENDER_BLEND)
144 op = PIXMAN_OP_OVER;
145# endif
146#endif
147
136 ext_x = 0; 148 ext_x = 0;
137 ext_y = 0; 149 ext_y = 0;
138 ext_w = dst->cache_entry.w; 150 ext_w = dst->cache_entry.w;
@@ -279,10 +291,30 @@ evas_common_polygon_draw(RGBA_Image *dst, RGBA_Draw_Context *dc, RGBA_Polygon_Po
279 if (((span->y) % dc->sli.h) == dc->sli.y) 291 if (((span->y) % dc->sli.h) == dc->sli.y)
280#endif 292#endif
281 { 293 {
282 ptr = dst->image.data + (span->y * (dst->cache_entry.w)) + span->x; 294#ifdef HAVE_PIXMAN
283 func(NULL, NULL, dc->col.col, ptr, span->w); 295# ifdef PIXMAN_POLY
284 } 296 if ((dst->pixman.im) && (dc->col.pixman_color_image) &&
285 } 297 (!dc->mask.mask))
298 pixman_image_composite(op, dc->col.pixman_color_image,
299 NULL, dst->pixman.im,
300 span->x, span->y, 0, 0,
301 span->x, span->y, span->w, 1);
302 else if ((dst->pixman.im) && (dc->col.pixman_color_image) &&
303 (dc->mask.mask))
304 pixman_image_composite(op, dc->col.pixman_color_image,
305 dc->mask.mask->pixman.im,
306 dst->pixman.im,
307 span->x, span->y, 0, 0,
308 span->x, span->y, span->w, 1);
309 else
310# endif
311#endif
312 {
313 ptr = dst->image.data + (span->y * (dst->cache_entry.w)) + span->x;
314 func(NULL, NULL, dc->col.col, ptr, span->w);
315 }
316 }
317 }
286 while (spans) 318 while (spans)
287 { 319 {
288 span = (RGBA_Span *)spans; 320 span = (RGBA_Span *)spans;
diff --git a/libraries/evas/src/lib/engines/common/evas_rectangle_main.c b/libraries/evas/src/lib/engines/common/evas_rectangle_main.c
index 28aaf16..fc25fd0 100644
--- a/libraries/evas/src/lib/engines/common/evas_rectangle_main.c
+++ b/libraries/evas/src/lib/engines/common/evas_rectangle_main.c
@@ -58,16 +58,34 @@ rectangle_draw_internal(RGBA_Image *dst, RGBA_Draw_Context *dc, int x, int y, in
58 RECTS_CLIP_TO_RECT(x, y, w, h, dc->clip.x, dc->clip.y, dc->clip.w, dc->clip.h); 58 RECTS_CLIP_TO_RECT(x, y, w, h, dc->clip.x, dc->clip.y, dc->clip.w, dc->clip.h);
59 if ((w <= 0) || (h <= 0)) return; 59 if ((w <= 0) || (h <= 0)) return;
60 60
61 func = evas_common_gfx_func_composite_color_span_get(dc->col.col, dst, w, dc->render_op); 61#ifdef HAVE_PIXMAN
62 ptr = dst->image.data + (y * dst->cache_entry.w) + x; 62# ifdef PIXMAN_RECT
63 for (yy = 0; yy < h; yy++) 63 pixman_op_t op = PIXMAN_OP_SRC; // _EVAS_RENDER_COPY
64
65 if (dc->render_op == _EVAS_RENDER_BLEND)
66 op = PIXMAN_OP_OVER;
67
68 if ((dst->pixman.im) && (dc->col.pixman_color_image))
64 { 69 {
70 pixman_image_composite(op, dc->col.pixman_color_image, NULL,
71 dst->pixman.im, x, y, 0, 0,
72 x, y, w, h);
73 }
74 else
75# endif
76#endif
77 {
78 func = evas_common_gfx_func_composite_color_span_get(dc->col.col, dst, w, dc->render_op);
79 ptr = dst->image.data + (y * dst->cache_entry.w) + x;
80 for (yy = 0; yy < h; yy++)
81 {
65#ifdef EVAS_SLI 82#ifdef EVAS_SLI
66 if (((yy + y) % dc->sli.h) == dc->sli.y) 83 if (((yy + y) % dc->sli.h) == dc->sli.y)
67#endif 84#endif
68 { 85 {
69 func(NULL, NULL, dc->col.col, ptr, w); 86 func(NULL, NULL, dc->col.col, ptr, w);
70 } 87 }
71 ptr += dst->cache_entry.w; 88 ptr += dst->cache_entry.w;
89 }
72 } 90 }
73} 91}
diff --git a/libraries/evas/src/lib/engines/common/evas_scale_sample.c b/libraries/evas/src/lib/engines/common/evas_scale_sample.c
index 54b8e92..a8951b8 100644
--- a/libraries/evas/src/lib/engines/common/evas_scale_sample.c
+++ b/libraries/evas/src/lib/engines/common/evas_scale_sample.c
@@ -154,7 +154,7 @@ scale_rgba_in_to_out_clip_sample_internal(RGBA_Image *src, RGBA_Image *dst,
154 dst_clip_w = m_clip_w; 154 dst_clip_w = m_clip_w;
155 dst_clip_h = m_clip_h; 155 dst_clip_h = m_clip_h;
156 } 156 }
157 157
158 if (dst_clip_x < dst_region_x) 158 if (dst_clip_x < dst_region_x)
159 { 159 {
160 dst_clip_w += dst_clip_x - dst_region_x; 160 dst_clip_w += dst_clip_x - dst_region_x;
@@ -258,7 +258,7 @@ scale_rgba_in_to_out_clip_sample_internal(RGBA_Image *src, RGBA_Image *dst,
258 func = evas_common_gfx_func_composite_pixel_mask_span_get(src, dst, dst_clip_w, dc->render_op); 258 func = evas_common_gfx_func_composite_pixel_mask_span_get(src, dst, dst_clip_w, dc->render_op);
259 maskobj = dc->mask.mask; 259 maskobj = dc->mask.mask;
260 mask = maskobj->mask.mask; 260 mask = maskobj->mask.mask;
261/* 261/*
262 if (1 || dst_region_w > src_region_w || dst_region_h > src_region_h){ 262 if (1 || dst_region_w > src_region_w || dst_region_h > src_region_h){
263 printf("Mask w/h: %d/%d\n",maskobj->cache_entry.w, 263 printf("Mask w/h: %d/%d\n",maskobj->cache_entry.w,
264 maskobj->cache_entry.h); 264 maskobj->cache_entry.h);
@@ -276,26 +276,47 @@ scale_rgba_in_to_out_clip_sample_internal(RGBA_Image *src, RGBA_Image *dst,
276 if ((dst_region_w == src_region_w) && (dst_region_h == src_region_h)) 276 if ((dst_region_w == src_region_w) && (dst_region_h == src_region_h))
277 { 277 {
278#ifdef HAVE_PIXMAN 278#ifdef HAVE_PIXMAN
279 if ((1) && 279# ifdef PIXMAN_IMAGE_SCALE_SAMPLE
280 (src->pixman.im) && (dst->pixman.im) && 280 if ((src->pixman.im) && (dst->pixman.im) && (!dc->mask.mask) &&
281 ((!dc->mul.use) || 281 ((!dc->mul.use) ||
282 ((dc->mul.use) && (dc->mul.col == 0xffffffff))) && 282 ((dc->mul.use) && (dc->mul.col == 0xffffffff))) &&
283 ((dc->render_op == _EVAS_RENDER_COPY) || 283 ((dc->render_op == _EVAS_RENDER_COPY) ||
284 (dc->render_op == _EVAS_RENDER_BLEND)) 284 (dc->render_op == _EVAS_RENDER_BLEND)))
285 )
286 { 285 {
287 pixman_op_t op = PIXMAN_OP_SRC; // _EVAS_RENDER_COPY 286 pixman_op_t op = PIXMAN_OP_SRC; // _EVAS_RENDER_COPY
288 if (dc->render_op == _EVAS_RENDER_BLEND) op = PIXMAN_OP_OVER; 287 if (dc->render_op == _EVAS_RENDER_BLEND)
288 op = PIXMAN_OP_OVER;
289
289 pixman_image_composite(op, 290 pixman_image_composite(op,
290 src->pixman.im, NULL, 291 src->pixman.im, NULL,
291 dst->pixman.im, 292 dst->pixman.im,
292 (dst_clip_x - dst_region_x) + src_region_x, 293 (dst_clip_x - dst_region_x) + src_region_x,
293 (dst_clip_y - dst_region_y) + src_region_y, 294 (dst_clip_y - dst_region_y) + src_region_y,
294 0, 0, 295 0, 0,
295 dst_clip_x, dst_clip_y, 296 dst_clip_x, dst_clip_y,
297 dst_clip_w, dst_clip_h);
298 }
299 else if ((src->pixman.im) && (dst->pixman.im) &&
300 (dc->mask.mask) && (dc->mask.mask->pixman.im) &&
301 ((dc->render_op == _EVAS_RENDER_COPY) ||
302 (dc->render_op == _EVAS_RENDER_BLEND)))
303 {
304 // In case of pixel and color operation.
305 pixman_op_t op = PIXMAN_OP_SRC; // _EVAS_RENDER_COPY
306 if (dc->render_op == _EVAS_RENDER_BLEND)
307 op = PIXMAN_OP_OVER;
308
309 pixman_image_composite(op,
310 src->pixman.im, dc->mask.mask->pixman.im,
311 dst->pixman.im,
312 (dst_clip_x - dst_region_x) + src_region_x,
313 (dst_clip_y - dst_region_y) + src_region_y,
314 0, 0,
315 dst_clip_x, dst_clip_y,
296 dst_clip_w, dst_clip_h); 316 dst_clip_w, dst_clip_h);
297 } 317 }
298 else 318 else
319# endif
299#endif 320#endif
300 { 321 {
301 ptr = src_data + ((dst_clip_y - dst_region_y + src_region_y) * src_w) + (dst_clip_x - dst_region_x) + src_region_x; 322 ptr = src_data + ((dst_clip_y - dst_region_y + src_region_y) * src_w) + (dst_clip_x - dst_region_x) + src_region_x;
@@ -322,59 +343,59 @@ scale_rgba_in_to_out_clip_sample_internal(RGBA_Image *src, RGBA_Image *dst,
322 } 343 }
323 else 344 else
324 { 345 {
325 /* fill scale tables */ 346 /* fill scale tables */
326 for (x = 0; x < dst_clip_w; x++) 347 for (x = 0; x < dst_clip_w; x++)
327 lin_ptr[x] = (((x + dst_clip_x - dst_region_x) * src_region_w) / dst_region_w) + src_region_x; 348 lin_ptr[x] = (((x + dst_clip_x - dst_region_x) * src_region_w) / dst_region_w) + src_region_x;
328 for (y = 0; y < dst_clip_h; y++) 349 for (y = 0; y < dst_clip_h; y++)
329 row_ptr[y] = src_data + (((((y + dst_clip_y - dst_region_y) * src_region_h) / dst_region_h) 350 row_ptr[y] = src_data + (((((y + dst_clip_y - dst_region_y) * src_region_h) / dst_region_h)
330 + src_region_y) * src_w); 351 + src_region_y) * src_w);
331 /* scale to dst */ 352 /* scale to dst */
332 dptr = dst_ptr; 353 dptr = dst_ptr;
333#ifdef DIRECT_SCALE 354#ifdef DIRECT_SCALE
334 if ((!src->cache_entry.flags.alpha) && 355 if ((!src->cache_entry.flags.alpha) &&
335 (!dst->cache_entry.flags.alpha) && 356 (!dst->cache_entry.flags.alpha) &&
336 (!dc->mul.use)) 357 (!dc->mul.use))
337 { 358 {
338 for (y = 0; y < dst_clip_h; y++) 359 for (y = 0; y < dst_clip_h; y++)
339 { 360 {
340#ifdef EVAS_SLI 361# ifdef EVAS_SLI
341 if (((y + dst_clip_y) % dc->sli.h) == dc->sli.y) 362 if (((y + dst_clip_y) % dc->sli.h) == dc->sli.y)
342#endif 363# endif
343 { 364 {
344 dst_ptr = dptr; 365 dst_ptr = dptr;
345 for (x = 0; x < dst_clip_w; x++) 366 for (x = 0; x < dst_clip_w; x++)
346 { 367 {
347 ptr = row_ptr[y] + lin_ptr[x]; 368 ptr = row_ptr[y] + lin_ptr[x];
348 *dst_ptr = *ptr; 369 *dst_ptr = *ptr;
349 dst_ptr++; 370 dst_ptr++;
350 } 371 }
351 } 372 }
352 dptr += dst_w; 373 dptr += dst_w;
353 } 374 }
354 } 375 }
355 else 376 else
356#endif 377#endif
357 { 378 {
358 /* a scanline buffer */ 379 /* a scanline buffer */
359 buf = alloca(dst_clip_w * sizeof(DATA32)); 380 buf = alloca(dst_clip_w * sizeof(DATA32));
360 for (y = 0; y < dst_clip_h; y++) 381 for (y = 0; y < dst_clip_h; y++)
361 { 382 {
362#ifdef EVAS_SLI 383#ifdef EVAS_SLI
363 if (((y + dst_clip_y) % dc->sli.h) == dc->sli.y) 384 if (((y + dst_clip_y) % dc->sli.h) == dc->sli.y)
364#endif 385#endif
365 { 386 {
366 dst_ptr = buf; 387 dst_ptr = buf;
367 for (x = 0; x < dst_clip_w; x++) 388 for (x = 0; x < dst_clip_w; x++)
368 { 389 {
369 ptr = row_ptr[y] + lin_ptr[x]; 390 ptr = row_ptr[y] + lin_ptr[x];
370 *dst_ptr = *ptr; 391 *dst_ptr = *ptr;
371 dst_ptr++; 392 dst_ptr++;
372 } 393 }
373 /* * blend here [clip_w *] buf -> dptr * */ 394 /* * blend here [clip_w *] buf -> dptr * */
374 func(buf, NULL, dc->mul.col, dptr, dst_clip_w); 395 func(buf, NULL, dc->mul.col, dptr, dst_clip_w);
375 } 396 }
376 dptr += dst_w; 397 dptr += dst_w;
377 } 398 }
378 } 399 }
379 } 400 }
380} 401}
diff --git a/libraries/evas/src/lib/engines/common/evas_tiler.c b/libraries/evas/src/lib/engines/common/evas_tiler.c
index 0bbe811..ff359a4 100644
--- a/libraries/evas/src/lib/engines/common/evas_tiler.c
+++ b/libraries/evas/src/lib/engines/common/evas_tiler.c
@@ -19,7 +19,9 @@ static inline list_node_t *rect_list_add_split_fuzzy(list_t *rects, list_node_t
19static inline void rect_list_merge_rects(list_t *rects, list_t *to_merge, int accepted_error); 19static inline void rect_list_merge_rects(list_t *rects, list_t *to_merge, int accepted_error);
20static inline void rect_list_add_split_fuzzy_and_merge(list_t *rects, list_node_t *node, int split_accepted_error, int merge_accepted_error); 20static inline void rect_list_add_split_fuzzy_and_merge(list_t *rects, list_node_t *node, int split_accepted_error, int merge_accepted_error);
21static inline void rect_print(const rect_t r); 21static inline void rect_print(const rect_t r);
22#if 0
22static inline void rect_list_print(const list_t rects); 23static inline void rect_list_print(const list_t rects);
24#endif
23 25
24static const list_node_t list_node_zeroed = { NULL }; 26static const list_node_t list_node_zeroed = { NULL };
25static const list_t list_zeroed = { NULL, NULL }; 27static const list_t list_zeroed = { NULL, NULL };
@@ -117,6 +119,7 @@ rect_print(const rect_t r)
117 INF("<rect(%d, %d, %d, %d)>", r.left, r.top, r.width, r.height); 119 INF("<rect(%d, %d, %d, %d)>", r.left, r.top, r.width, r.height);
118} 120}
119 121
122#if 0
120static inline void 123static inline void
121rect_list_print(const list_t rects) 124rect_list_print(const list_t rects)
122{ 125{
@@ -143,6 +146,7 @@ rect_list_print(const list_t rects)
143 } 146 }
144 putchar(']'); 147 putchar(']');
145} 148}
149#endif
146 150
147static inline void 151static inline void
148rect_list_append_node(list_t *rects, list_node_t *node) 152rect_list_append_node(list_t *rects, list_node_t *node)
diff --git a/libraries/evas/src/lib/engines/common/language/evas_bidi_utils.c b/libraries/evas/src/lib/engines/common/language/evas_bidi_utils.c
index 9f7859b..002cfbe 100644
--- a/libraries/evas/src/lib/engines/common/language/evas_bidi_utils.c
+++ b/libraries/evas/src/lib/engines/common/language/evas_bidi_utils.c
@@ -1,3 +1,7 @@
1#ifdef HAVE_CONFIG_H
2# include <config.h>
3#endif
4
1#include <string.h> 5#include <string.h>
2#include <stdlib.h> 6#include <stdlib.h>
3 7
diff --git a/libraries/evas/src/lib/engines/common/language/evas_language_utils.c b/libraries/evas/src/lib/engines/common/language/evas_language_utils.c
index 9c9b3e3..b362f10 100644
--- a/libraries/evas/src/lib/engines/common/language/evas_language_utils.c
+++ b/libraries/evas/src/lib/engines/common/language/evas_language_utils.c
@@ -13,6 +13,12 @@
13 * 13 *
14 * @{ 14 * @{
15 */ 15 */
16#ifdef HAVE_CONFIG_H
17# include <config.h>
18#endif
19
20#include <stdlib.h>
21
16#include <Eina.h> 22#include <Eina.h>
17 23
18#include "evas_language_utils.h" 24#include "evas_language_utils.h"
diff --git a/libraries/evas/src/lib/engines/common_16/Makefile.in b/libraries/evas/src/lib/engines/common_16/Makefile.in
index 9097a8d..313cbda 100644
--- a/libraries/evas/src/lib/engines/common_16/Makefile.in
+++ b/libraries/evas/src/lib/engines/common_16/Makefile.in
@@ -201,8 +201,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
201PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 201PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
202PIXMAN_LIBS = @PIXMAN_LIBS@ 202PIXMAN_LIBS = @PIXMAN_LIBS@
203PKG_CONFIG = @PKG_CONFIG@ 203PKG_CONFIG = @PKG_CONFIG@
204PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
205PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
206PNG_CFLAGS = @PNG_CFLAGS@ 204PNG_CFLAGS = @PNG_CFLAGS@
207PNG_LIBS = @PNG_LIBS@ 205PNG_LIBS = @PNG_LIBS@
208RANLIB = @RANLIB@ 206RANLIB = @RANLIB@
@@ -219,6 +217,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
219VALGRIND_LIBS = @VALGRIND_LIBS@ 217VALGRIND_LIBS = @VALGRIND_LIBS@
220VERSION = @VERSION@ 218VERSION = @VERSION@
221VMAJ = @VMAJ@ 219VMAJ = @VMAJ@
220WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
221WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
222WIN32_CFLAGS = @WIN32_CFLAGS@ 222WIN32_CFLAGS = @WIN32_CFLAGS@
223WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 223WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
224XCB_CFLAGS = @XCB_CFLAGS@ 224XCB_CFLAGS = @XCB_CFLAGS@
@@ -300,6 +300,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
300evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 300evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
301evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 301evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
302evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 302evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
303evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
304evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
305evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
306evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
303evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 307evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
304evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 308evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
305evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 309evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/lib/engines/common_8/Makefile.in b/libraries/evas/src/lib/engines/common_8/Makefile.in
index 06c13de..7fa4fbb 100644
--- a/libraries/evas/src/lib/engines/common_8/Makefile.in
+++ b/libraries/evas/src/lib/engines/common_8/Makefile.in
@@ -200,8 +200,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
200PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 200PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
201PIXMAN_LIBS = @PIXMAN_LIBS@ 201PIXMAN_LIBS = @PIXMAN_LIBS@
202PKG_CONFIG = @PKG_CONFIG@ 202PKG_CONFIG = @PKG_CONFIG@
203PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
204PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
205PNG_CFLAGS = @PNG_CFLAGS@ 203PNG_CFLAGS = @PNG_CFLAGS@
206PNG_LIBS = @PNG_LIBS@ 204PNG_LIBS = @PNG_LIBS@
207RANLIB = @RANLIB@ 205RANLIB = @RANLIB@
@@ -218,6 +216,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
218VALGRIND_LIBS = @VALGRIND_LIBS@ 216VALGRIND_LIBS = @VALGRIND_LIBS@
219VERSION = @VERSION@ 217VERSION = @VERSION@
220VMAJ = @VMAJ@ 218VMAJ = @VMAJ@
219WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
220WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
221WIN32_CFLAGS = @WIN32_CFLAGS@ 221WIN32_CFLAGS = @WIN32_CFLAGS@
222WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 222WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
223XCB_CFLAGS = @XCB_CFLAGS@ 223XCB_CFLAGS = @XCB_CFLAGS@
@@ -299,6 +299,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
299evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 299evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
300evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 300evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
301evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 301evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
302evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
303evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
304evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
305evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
302evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 306evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
303evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 307evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
304evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 308evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/lib/file/Makefile.in b/libraries/evas/src/lib/file/Makefile.in
index 599d980..2ac89b1 100644
--- a/libraries/evas/src/lib/file/Makefile.in
+++ b/libraries/evas/src/lib/file/Makefile.in
@@ -196,8 +196,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
196PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 196PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
197PIXMAN_LIBS = @PIXMAN_LIBS@ 197PIXMAN_LIBS = @PIXMAN_LIBS@
198PKG_CONFIG = @PKG_CONFIG@ 198PKG_CONFIG = @PKG_CONFIG@
199PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
200PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
201PNG_CFLAGS = @PNG_CFLAGS@ 199PNG_CFLAGS = @PNG_CFLAGS@
202PNG_LIBS = @PNG_LIBS@ 200PNG_LIBS = @PNG_LIBS@
203RANLIB = @RANLIB@ 201RANLIB = @RANLIB@
@@ -214,6 +212,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
214VALGRIND_LIBS = @VALGRIND_LIBS@ 212VALGRIND_LIBS = @VALGRIND_LIBS@
215VERSION = @VERSION@ 213VERSION = @VERSION@
216VMAJ = @VMAJ@ 214VMAJ = @VMAJ@
215WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
216WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
217WIN32_CFLAGS = @WIN32_CFLAGS@ 217WIN32_CFLAGS = @WIN32_CFLAGS@
218WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 218WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
219XCB_CFLAGS = @XCB_CFLAGS@ 219XCB_CFLAGS = @XCB_CFLAGS@
@@ -295,6 +295,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
295evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 295evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
296evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 296evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
297evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 297evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
298evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
299evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
300evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
301evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
298evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 302evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
299evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 303evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
300evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 304evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/lib/file/evas_module.c b/libraries/evas/src/lib/file/evas_module.c
index 6b4d4f6..21d5cd0 100644
--- a/libraries/evas/src/lib/file/evas_module.c
+++ b/libraries/evas/src/lib/file/evas_module.c
@@ -285,7 +285,7 @@ evas_module_register(const Evas_Module_Api *module, Evas_Module_Type type)
285 if (type == EVAS_MODULE_TYPE_ENGINE) 285 if (type == EVAS_MODULE_TYPE_ENGINE)
286 { 286 {
287 eina_array_push(evas_engines, em); 287 eina_array_push(evas_engines, em);
288 em->id_engine = eina_array_count_get(evas_engines); 288 em->id_engine = eina_array_count(evas_engines);
289 } 289 }
290 290
291 eina_hash_direct_add(evas_modules[type], module->name, em); 291 eina_hash_direct_add(evas_modules[type], module->name, em);
@@ -398,7 +398,7 @@ Evas_Module *
398evas_module_engine_get(int render_method) 398evas_module_engine_get(int render_method)
399{ 399{
400 if ((render_method <= 0) || 400 if ((render_method <= 0) ||
401 ((unsigned int)render_method > eina_array_count_get(evas_engines))) 401 ((unsigned int)render_method > eina_array_count(evas_engines)))
402 return NULL; 402 return NULL;
403 return eina_array_data_get(evas_engines, render_method - 1); 403 return eina_array_data_get(evas_engines, render_method - 1);
404} 404}
diff --git a/libraries/evas/src/lib/file/evas_path.c b/libraries/evas/src/lib/file/evas_path.c
index ff13e20..c663c16 100644
--- a/libraries/evas/src/lib/file/evas_path.c
+++ b/libraries/evas/src/lib/file/evas_path.c
@@ -123,7 +123,7 @@ evas_file_path_list(char *path, const char *match, int match_case)
123 else 123 else
124 files = eina_list_append(files, strdup(info->path + info->name_start)); 124 files = eina_list_append(files, strdup(info->path + info->name_start));
125 } 125 }
126 eina_iterator_free(it); 126 if (it) eina_iterator_free(it);
127 return files; 127 return files;
128} 128}
129 129
diff --git a/libraries/evas/src/lib/include/Makefile.in b/libraries/evas/src/lib/include/Makefile.in
index 9d5c371..21f0099 100644
--- a/libraries/evas/src/lib/include/Makefile.in
+++ b/libraries/evas/src/lib/include/Makefile.in
@@ -166,8 +166,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
166PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 166PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
167PIXMAN_LIBS = @PIXMAN_LIBS@ 167PIXMAN_LIBS = @PIXMAN_LIBS@
168PKG_CONFIG = @PKG_CONFIG@ 168PKG_CONFIG = @PKG_CONFIG@
169PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
170PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
171PNG_CFLAGS = @PNG_CFLAGS@ 169PNG_CFLAGS = @PNG_CFLAGS@
172PNG_LIBS = @PNG_LIBS@ 170PNG_LIBS = @PNG_LIBS@
173RANLIB = @RANLIB@ 171RANLIB = @RANLIB@
@@ -184,6 +182,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
184VALGRIND_LIBS = @VALGRIND_LIBS@ 182VALGRIND_LIBS = @VALGRIND_LIBS@
185VERSION = @VERSION@ 183VERSION = @VERSION@
186VMAJ = @VMAJ@ 184VMAJ = @VMAJ@
185WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
186WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
187WIN32_CFLAGS = @WIN32_CFLAGS@ 187WIN32_CFLAGS = @WIN32_CFLAGS@
188WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 188WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
189XCB_CFLAGS = @XCB_CFLAGS@ 189XCB_CFLAGS = @XCB_CFLAGS@
@@ -265,6 +265,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
265evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 265evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
266evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 266evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
267evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 267evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
268evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
269evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
270evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
271evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
268evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 272evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
269evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 273evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
270evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 274evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/lib/include/evas_common.h b/libraries/evas/src/lib/include/evas_common.h
index f817202..a9063e6 100644
--- a/libraries/evas/src/lib/include/evas_common.h
+++ b/libraries/evas/src/lib/include/evas_common.h
@@ -1,9 +1,9 @@
1#ifndef EVAS_COMMON_H 1#ifndef EVAS_COMMON_H
2#define EVAS_COMMON_H 2#define EVAS_COMMON_H
3 3
4#ifdef HAVE_CONFIG_H 4//#ifdef HAVE_CONFIG_H
5# include "config.h" /* so that EAPI in Evas.h is correctly defined */ 5#include "config.h" /* so that EAPI in Evas.h is correctly defined */
6#endif 6//#endif
7 7
8#ifdef HAVE_EVIL 8#ifdef HAVE_EVIL
9# include <Evil.h> 9# include <Evil.h>
@@ -138,8 +138,6 @@ extern EAPI int _evas_log_dom_global;
138# define BUILD_PTHREAD 138# define BUILD_PTHREAD
139#endif 139#endif
140 140
141#ifdef BUILD_PTHREAD
142
143#define LK(x) Eina_Lock x 141#define LK(x) Eina_Lock x
144#define LKI(x) eina_lock_new(&(x)) 142#define LKI(x) eina_lock_new(&(x))
145#define LKD(x) eina_lock_free(&(x)) 143#define LKD(x) eina_lock_free(&(x))
@@ -148,42 +146,28 @@ extern EAPI int _evas_log_dom_global;
148#define LKU(x) eina_lock_release(&(x)) 146#define LKU(x) eina_lock_release(&(x))
149#define LKDBG(x) eina_lock_debug(&(x)) 147#define LKDBG(x) eina_lock_debug(&(x))
150 148
149/* for rwlocks */
150#define RWLK(x) Eina_RWLock x
151#define RWLKI(x) eina_rwlock_new(&(x))
152#define RWLKD(x) eina_rwlock_free(&(x))
153#define RDLKL(x) eina_rwlock_take_read(&(x))
154#define WRLKL(x) eina_rwlock_take_write(&(x))
155#define RWLKU(x) eina_rwlock_release(&(x))
156
157#ifdef BUILD_PTHREAD
158
151# define TH(x) pthread_t x 159# define TH(x) pthread_t x
152# define THI(x) int x 160# define THI(x) int x
153# define TH_MAX 8 161# define TH_MAX 8
154 162
155/* for rwlocks */
156#define RWLK(x) pthread_rwlock_t x
157#define RWLKI(x) pthread_rwlock_init(&(x), NULL)
158#define RWLKD(x) pthread_rwlock_destroy(&(x))
159#define RDLKL(x) pthread_rwlock_rdlock(&(x))
160#define WRLKL(x) pthread_rwlock_wrlock(&(x))
161#define RWLKU(x) pthread_rwlock_unlock(&(x))
162
163
164// even though in theory having every Nth rendered line done by a different 163// even though in theory having every Nth rendered line done by a different
165// thread might even out load across threads - it actually slows things down. 164// thread might even out load across threads - it actually slows things down.
166//#define EVAS_SLI 1 165//#define EVAS_SLI 1
167 166
168#else 167#else
169# define LK(x)
170# define LKI(x)
171# define LKD(x)
172# define LKL(x)
173# define LKT(x) 1
174# define LKU(x)
175# define TH(x) 168# define TH(x)
176# define THI(x) 169# define THI(x)
177# define TH_MAX 0 170# define TH_MAX 0
178# define LKDBG(x)
179
180/* for rwlocks */
181#define RWLK(x)
182#define RWLKI(x)
183#define RWLKD(x)
184#define RDLKL(x)
185#define WRLKL(x)
186#define RWLKU(x)
187 171
188#endif 172#endif
189 173
@@ -338,6 +322,21 @@ void *alloca (size_t);
338#define pld(addr, off) 322#define pld(addr, off)
339#endif /* __ARMEL__ */ 323#endif /* __ARMEL__ */
340 324
325// these here are in config.h - just here for documentation
326//#ifdef __ARM_ARCH__
327// *IF* you enable pixman, this determines which things pixman will do
328////#define PIXMAN_FONT 1
329////#define PIXMAN_RECT 1
330////#define PIXMAN_LINE 1
331////#define PIXMAN_POLY 1
332//#define PIXMAN_IMAGE 1
333//#define PIXMAN_IMAGE_SCALE_SAMPLE 1
334//#endif
335// not related to pixman but an alternate rotate code
336//#define TILE_ROTATE 1
337
338#define TILE_CACHE_LINE_SIZE 64
339
341/*****************************************************************************/ 340/*****************************************************************************/
342 341
343#define UNROLL2(op...) op op 342#define UNROLL2(op...) op op
@@ -678,6 +677,9 @@ struct _RGBA_Draw_Context
678 DATA32 col; 677 DATA32 col;
679 } mul; 678 } mul;
680 struct { 679 struct {
680#ifdef HAVE_PIXMAN
681 pixman_image_t *pixman_color_image;
682#endif
681 DATA32 col; 683 DATA32 col;
682 } col; 684 } col;
683 struct RGBA_Draw_Context_clip { 685 struct RGBA_Draw_Context_clip {
@@ -1032,14 +1034,14 @@ struct _Tilebuf
1032 int x, y, w, h; 1034 int x, y, w, h;
1033 } prev_add, prev_del; 1035 } prev_add, prev_del;
1034#ifdef RECTUPDATE 1036#ifdef RECTUPDATE
1035/* 1037/*
1036 Regionbuf *rb; 1038 Regionbuf *rb;
1037 */ 1039 */
1038#elif defined(EVAS_RECT_SPLIT) 1040#elif defined(EVAS_RECT_SPLIT)
1039 int need_merge; 1041 int need_merge;
1040 list_t rects; 1042 list_t rects;
1041#else 1043#else
1042/* 1044/*
1043 struct { 1045 struct {
1044 int w, h; 1046 int w, h;
1045 Tilebuf_Tile *tiles; 1047 Tilebuf_Tile *tiles;
diff --git a/libraries/evas/src/lib/include/evas_private.h b/libraries/evas/src/lib/include/evas_private.h
index 90498d0..84c1d36 100644
--- a/libraries/evas/src/lib/include/evas_private.h
+++ b/libraries/evas/src/lib/include/evas_private.h
@@ -301,12 +301,13 @@ struct _Evas
301 struct { 301 struct {
302 unsigned char inside : 1; 302 unsigned char inside : 1;
303 int mouse_grabbed; 303 int mouse_grabbed;
304 int downs;
304 DATA32 button; 305 DATA32 button;
305 Evas_Coord x, y; 306 Evas_Coord x, y;
307 int nogrep;
306 struct { 308 struct {
307 Eina_List *in; 309 Eina_List *in;
308 } object; 310 } object;
309
310 } pointer; 311 } pointer;
311 312
312 struct { 313 struct {
@@ -320,6 +321,12 @@ struct _Evas
320 unsigned char changed : 1; 321 unsigned char changed : 1;
321 } output; 322 } output;
322 323
324 struct
325 {
326 Evas_Coord x, y, w, h;
327 Eina_Bool changed : 1;
328 } framespace;
329
323 Eina_List *damages; 330 Eina_List *damages;
324 Eina_List *obscures; 331 Eina_List *obscures;
325 332
@@ -331,6 +338,7 @@ struct _Evas
331 338
332 int walking_list; 339 int walking_list;
333 int events_frozen; 340 int events_frozen;
341 Evas_Event_Flags default_event_flags;
334 342
335 struct { 343 struct {
336 Evas_Module *module; 344 Evas_Module *module;
@@ -577,7 +585,7 @@ struct _Evas_Object
577 unsigned char recalculate_cycle; 585 unsigned char recalculate_cycle;
578 Eina_Clist calc_entry; 586 Eina_Clist calc_entry;
579 587
580 Evas_Object_Pointer_Mode pointer_mode : 1; 588 Evas_Object_Pointer_Mode pointer_mode : 2;
581 589
582 Eina_Bool store : 1; 590 Eina_Bool store : 1;
583 Eina_Bool pass_events : 1; 591 Eina_Bool pass_events : 1;
@@ -608,6 +616,8 @@ struct _Evas_Object
608 Eina_Bool changed_move_only : 1; 616 Eina_Bool changed_move_only : 1;
609 Eina_Bool changed_nomove : 1; 617 Eina_Bool changed_nomove : 1;
610 Eina_Bool del_ref : 1; 618 Eina_Bool del_ref : 1;
619
620 Eina_Bool is_frame : 1;
611}; 621};
612 622
613struct _Evas_Func_Node 623struct _Evas_Func_Node
@@ -772,6 +782,7 @@ struct _Evas_Func
772 char *(*image_format_get) (void *data, void *image); 782 char *(*image_format_get) (void *data, void *image);
773 void (*image_colorspace_set) (void *data, void *image, int cspace); 783 void (*image_colorspace_set) (void *data, void *image, int cspace);
774 int (*image_colorspace_get) (void *data, void *image); 784 int (*image_colorspace_get) (void *data, void *image);
785 Eina_Bool (*image_can_region_get) (void *data, void *image);
775 void (*image_mask_create) (void *data, void *image); 786 void (*image_mask_create) (void *data, void *image);
776 void *(*image_native_set) (void *data, void *image, void *native); 787 void *(*image_native_set) (void *data, void *image, void *native);
777 void *(*image_native_get) (void *data, void *image); 788 void *(*image_native_get) (void *data, void *image);
@@ -861,6 +872,7 @@ struct _Evas_Image_Load_Func
861 Eina_Bool (*file_head) (Image_Entry *ie, const char *file, const char *key, int *error); 872 Eina_Bool (*file_head) (Image_Entry *ie, const char *file, const char *key, int *error);
862 Eina_Bool (*file_data) (Image_Entry *ie, const char *file, const char *key, int *error); 873 Eina_Bool (*file_data) (Image_Entry *ie, const char *file, const char *key, int *error);
863 double (*frame_duration) (Image_Entry *ie, const char *file, const int start, const int frame_num); 874 double (*frame_duration) (Image_Entry *ie, const char *file, const int start, const int frame_num);
875 Eina_Bool do_region;
864}; 876};
865 877
866struct _Evas_Image_Save_Func 878struct _Evas_Image_Save_Func
@@ -904,7 +916,7 @@ void evas_object_clip_across_check(Evas_Object *obj);
904void evas_object_clip_across_clippees_check(Evas_Object *obj); 916void evas_object_clip_across_clippees_check(Evas_Object *obj);
905void evas_object_mapped_clip_across_mark(Evas_Object *obj); 917void evas_object_mapped_clip_across_mark(Evas_Object *obj);
906void evas_event_callback_call(Evas *e, Evas_Callback_Type type, void *event_info); 918void evas_event_callback_call(Evas *e, Evas_Callback_Type type, void *event_info);
907void evas_object_event_callback_call(Evas_Object *obj, Evas_Callback_Type type, void *event_info); 919void evas_object_event_callback_call(Evas_Object *obj, Evas_Callback_Type type, void *event_info, int event_id);
908Eina_List *evas_event_objects_event_list(Evas *e, Evas_Object *stop, int x, int y); 920Eina_List *evas_event_objects_event_list(Evas *e, Evas_Object *stop, int x, int y);
909int evas_mem_free(int mem_required); 921int evas_mem_free(int mem_required);
910int evas_mem_degrade(int mem_required); 922int evas_mem_degrade(int mem_required);
diff --git a/libraries/evas/src/modules/Makefile.in b/libraries/evas/src/modules/Makefile.in
index 9cd0201..e4f1cbc 100644
--- a/libraries/evas/src/modules/Makefile.in
+++ b/libraries/evas/src/modules/Makefile.in
@@ -206,8 +206,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
206PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 206PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
207PIXMAN_LIBS = @PIXMAN_LIBS@ 207PIXMAN_LIBS = @PIXMAN_LIBS@
208PKG_CONFIG = @PKG_CONFIG@ 208PKG_CONFIG = @PKG_CONFIG@
209PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
210PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
211PNG_CFLAGS = @PNG_CFLAGS@ 209PNG_CFLAGS = @PNG_CFLAGS@
212PNG_LIBS = @PNG_LIBS@ 210PNG_LIBS = @PNG_LIBS@
213RANLIB = @RANLIB@ 211RANLIB = @RANLIB@
@@ -224,6 +222,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
224VALGRIND_LIBS = @VALGRIND_LIBS@ 222VALGRIND_LIBS = @VALGRIND_LIBS@
225VERSION = @VERSION@ 223VERSION = @VERSION@
226VMAJ = @VMAJ@ 224VMAJ = @VMAJ@
225WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
226WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
227WIN32_CFLAGS = @WIN32_CFLAGS@ 227WIN32_CFLAGS = @WIN32_CFLAGS@
228WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 228WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
229XCB_CFLAGS = @XCB_CFLAGS@ 229XCB_CFLAGS = @XCB_CFLAGS@
@@ -305,6 +305,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
305evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 305evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
306evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 306evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
307evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 307evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
308evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
309evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
310evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
311evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
308evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 312evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
309evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 313evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
310evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 314evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/engines/Makefile.am b/libraries/evas/src/modules/engines/Makefile.am
index 7d870a1..42585cc 100644
--- a/libraries/evas/src/modules/engines/Makefile.am
+++ b/libraries/evas/src/modules/engines/Makefile.am
@@ -68,4 +68,9 @@ endif
68if !EVAS_STATIC_BUILD_SOFTWARE_X11 68if !EVAS_STATIC_BUILD_SOFTWARE_X11
69SUBDIRS += software_x11 69SUBDIRS += software_x11
70endif 70endif
71 71if !EVAS_STATIC_BUILD_WAYLAND_SHM
72SUBDIRS += wayland_shm
73endif
74if !EVAS_STATIC_BUILD_WAYLAND_EGL
75SUBDIRS += wayland_egl
76endif
diff --git a/libraries/evas/src/modules/engines/Makefile.in b/libraries/evas/src/modules/engines/Makefile.in
index 3994fca..5820026 100644
--- a/libraries/evas/src/modules/engines/Makefile.in
+++ b/libraries/evas/src/modules/engines/Makefile.in
@@ -54,6 +54,8 @@ host_triplet = @host@
54@EVAS_STATIC_BUILD_SOFTWARE_DDRAW_FALSE@am__append_19 = software_ddraw 54@EVAS_STATIC_BUILD_SOFTWARE_DDRAW_FALSE@am__append_19 = software_ddraw
55@EVAS_STATIC_BUILD_SOFTWARE_GDI_FALSE@am__append_20 = software_gdi 55@EVAS_STATIC_BUILD_SOFTWARE_GDI_FALSE@am__append_20 = software_gdi
56@EVAS_STATIC_BUILD_SOFTWARE_X11_FALSE@am__append_21 = software_x11 56@EVAS_STATIC_BUILD_SOFTWARE_X11_FALSE@am__append_21 = software_x11
57@EVAS_STATIC_BUILD_WAYLAND_SHM_FALSE@am__append_22 = wayland_shm
58@EVAS_STATIC_BUILD_WAYLAND_EGL_FALSE@am__append_23 = wayland_egl
57subdir = src/modules/engines 59subdir = src/modules/engines
58DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in 60DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
59ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 61ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -102,7 +104,7 @@ DIST_SUBDIRS = software_generic buffer direct3d directfb fb psl1ght \
102 gl_common gl_x11 gl_sdl gl_cocoa software_8 software_8_x11 \ 104 gl_common gl_x11 gl_sdl gl_cocoa software_8 software_8_x11 \
103 software_16 software_16_ddraw software_16_wince \ 105 software_16 software_16_ddraw software_16_wince \
104 software_16_x11 software_sdl software_16_sdl software_ddraw \ 106 software_16_x11 software_sdl software_16_sdl software_ddraw \
105 software_gdi software_x11 107 software_gdi software_x11 wayland_shm wayland_egl
106DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) 108DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
107am__relativize = \ 109am__relativize = \
108 dir0=`pwd`; \ 110 dir0=`pwd`; \
@@ -231,8 +233,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 233PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
232PIXMAN_LIBS = @PIXMAN_LIBS@ 234PIXMAN_LIBS = @PIXMAN_LIBS@
233PKG_CONFIG = @PKG_CONFIG@ 235PKG_CONFIG = @PKG_CONFIG@
234PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
235PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
236PNG_CFLAGS = @PNG_CFLAGS@ 236PNG_CFLAGS = @PNG_CFLAGS@
237PNG_LIBS = @PNG_LIBS@ 237PNG_LIBS = @PNG_LIBS@
238RANLIB = @RANLIB@ 238RANLIB = @RANLIB@
@@ -249,6 +249,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
249VALGRIND_LIBS = @VALGRIND_LIBS@ 249VALGRIND_LIBS = @VALGRIND_LIBS@
250VERSION = @VERSION@ 250VERSION = @VERSION@
251VMAJ = @VMAJ@ 251VMAJ = @VMAJ@
252WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
253WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
252WIN32_CFLAGS = @WIN32_CFLAGS@ 254WIN32_CFLAGS = @WIN32_CFLAGS@
253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 255WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
254XCB_CFLAGS = @XCB_CFLAGS@ 256XCB_CFLAGS = @XCB_CFLAGS@
@@ -330,6 +332,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 332evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 333evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 334evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
335evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
336evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
337evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
338evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
333evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 339evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
334evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 340evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
335evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 341evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
@@ -411,7 +417,8 @@ SUBDIRS = $(am__append_1) $(am__append_2) $(am__append_3) \
411 $(am__append_10) $(am__append_11) $(am__append_12) \ 417 $(am__append_10) $(am__append_11) $(am__append_12) \
412 $(am__append_13) $(am__append_14) $(am__append_15) \ 418 $(am__append_13) $(am__append_14) $(am__append_15) \
413 $(am__append_16) $(am__append_17) $(am__append_18) \ 419 $(am__append_16) $(am__append_17) $(am__append_18) \
414 $(am__append_19) $(am__append_20) $(am__append_21) 420 $(am__append_19) $(am__append_20) $(am__append_21) \
421 $(am__append_22) $(am__append_23)
415all: all-recursive 422all: all-recursive
416 423
417.SUFFIXES: 424.SUFFIXES:
diff --git a/libraries/evas/src/modules/engines/buffer/Makefile.in b/libraries/evas/src/modules/engines/buffer/Makefile.in
index 2311344..ec9c0b8 100644
--- a/libraries/evas/src/modules/engines/buffer/Makefile.in
+++ b/libraries/evas/src/modules/engines/buffer/Makefile.in
@@ -240,8 +240,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
240PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 240PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
241PIXMAN_LIBS = @PIXMAN_LIBS@ 241PIXMAN_LIBS = @PIXMAN_LIBS@
242PKG_CONFIG = @PKG_CONFIG@ 242PKG_CONFIG = @PKG_CONFIG@
243PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
244PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
245PNG_CFLAGS = @PNG_CFLAGS@ 243PNG_CFLAGS = @PNG_CFLAGS@
246PNG_LIBS = @PNG_LIBS@ 244PNG_LIBS = @PNG_LIBS@
247RANLIB = @RANLIB@ 245RANLIB = @RANLIB@
@@ -258,6 +256,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
258VALGRIND_LIBS = @VALGRIND_LIBS@ 256VALGRIND_LIBS = @VALGRIND_LIBS@
259VERSION = @VERSION@ 257VERSION = @VERSION@
260VMAJ = @VMAJ@ 258VMAJ = @VMAJ@
259WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
260WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
261WIN32_CFLAGS = @WIN32_CFLAGS@ 261WIN32_CFLAGS = @WIN32_CFLAGS@
262WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 262WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
263XCB_CFLAGS = @XCB_CFLAGS@ 263XCB_CFLAGS = @XCB_CFLAGS@
@@ -339,6 +339,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
339evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 339evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
340evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 340evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
341evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 341evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
342evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
343evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
344evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
345evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
342evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 346evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
343evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 347evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
344evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 348evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/engines/direct3d/Makefile.in b/libraries/evas/src/modules/engines/direct3d/Makefile.in
index 03d892e..85baff8 100644
--- a/libraries/evas/src/modules/engines/direct3d/Makefile.in
+++ b/libraries/evas/src/modules/engines/direct3d/Makefile.in
@@ -293,8 +293,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
293PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 293PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
294PIXMAN_LIBS = @PIXMAN_LIBS@ 294PIXMAN_LIBS = @PIXMAN_LIBS@
295PKG_CONFIG = @PKG_CONFIG@ 295PKG_CONFIG = @PKG_CONFIG@
296PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
297PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
298PNG_CFLAGS = @PNG_CFLAGS@ 296PNG_CFLAGS = @PNG_CFLAGS@
299PNG_LIBS = @PNG_LIBS@ 297PNG_LIBS = @PNG_LIBS@
300RANLIB = @RANLIB@ 298RANLIB = @RANLIB@
@@ -311,6 +309,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
311VALGRIND_LIBS = @VALGRIND_LIBS@ 309VALGRIND_LIBS = @VALGRIND_LIBS@
312VERSION = @VERSION@ 310VERSION = @VERSION@
313VMAJ = @VMAJ@ 311VMAJ = @VMAJ@
312WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
313WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
314WIN32_CFLAGS = @WIN32_CFLAGS@ 314WIN32_CFLAGS = @WIN32_CFLAGS@
315WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 315WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
316XCB_CFLAGS = @XCB_CFLAGS@ 316XCB_CFLAGS = @XCB_CFLAGS@
@@ -392,6 +392,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
392evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 392evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
393evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 393evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
394evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 394evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
395evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
396evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
397evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
398evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
395evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 399evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
396evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 400evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
397evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 401evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/engines/directfb/Makefile.in b/libraries/evas/src/modules/engines/directfb/Makefile.in
index cd5651a..df2f63b 100644
--- a/libraries/evas/src/modules/engines/directfb/Makefile.in
+++ b/libraries/evas/src/modules/engines/directfb/Makefile.in
@@ -240,8 +240,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
240PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 240PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
241PIXMAN_LIBS = @PIXMAN_LIBS@ 241PIXMAN_LIBS = @PIXMAN_LIBS@
242PKG_CONFIG = @PKG_CONFIG@ 242PKG_CONFIG = @PKG_CONFIG@
243PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
244PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
245PNG_CFLAGS = @PNG_CFLAGS@ 243PNG_CFLAGS = @PNG_CFLAGS@
246PNG_LIBS = @PNG_LIBS@ 244PNG_LIBS = @PNG_LIBS@
247RANLIB = @RANLIB@ 245RANLIB = @RANLIB@
@@ -258,6 +256,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
258VALGRIND_LIBS = @VALGRIND_LIBS@ 256VALGRIND_LIBS = @VALGRIND_LIBS@
259VERSION = @VERSION@ 257VERSION = @VERSION@
260VMAJ = @VMAJ@ 258VMAJ = @VMAJ@
259WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
260WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
261WIN32_CFLAGS = @WIN32_CFLAGS@ 261WIN32_CFLAGS = @WIN32_CFLAGS@
262WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 262WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
263XCB_CFLAGS = @XCB_CFLAGS@ 263XCB_CFLAGS = @XCB_CFLAGS@
@@ -339,6 +339,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
339evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 339evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
340evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 340evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
341evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 341evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
342evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
343evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
344evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
345evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
342evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 346evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
343evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 347evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
344evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 348evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/engines/fb/Makefile.in b/libraries/evas/src/modules/engines/fb/Makefile.in
index aec24ff..1e82b34 100644
--- a/libraries/evas/src/modules/engines/fb/Makefile.in
+++ b/libraries/evas/src/modules/engines/fb/Makefile.in
@@ -244,8 +244,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
244PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 244PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
245PIXMAN_LIBS = @PIXMAN_LIBS@ 245PIXMAN_LIBS = @PIXMAN_LIBS@
246PKG_CONFIG = @PKG_CONFIG@ 246PKG_CONFIG = @PKG_CONFIG@
247PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
248PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
249PNG_CFLAGS = @PNG_CFLAGS@ 247PNG_CFLAGS = @PNG_CFLAGS@
250PNG_LIBS = @PNG_LIBS@ 248PNG_LIBS = @PNG_LIBS@
251RANLIB = @RANLIB@ 249RANLIB = @RANLIB@
@@ -262,6 +260,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
262VALGRIND_LIBS = @VALGRIND_LIBS@ 260VALGRIND_LIBS = @VALGRIND_LIBS@
263VERSION = @VERSION@ 261VERSION = @VERSION@
264VMAJ = @VMAJ@ 262VMAJ = @VMAJ@
263WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
264WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
265WIN32_CFLAGS = @WIN32_CFLAGS@ 265WIN32_CFLAGS = @WIN32_CFLAGS@
266WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 266WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
267XCB_CFLAGS = @XCB_CFLAGS@ 267XCB_CFLAGS = @XCB_CFLAGS@
@@ -343,6 +343,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
343evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 343evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
344evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 344evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
345evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 345evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
346evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
347evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
348evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
349evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
346evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 350evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
347evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 351evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
348evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 352evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/engines/gl_cocoa/Makefile.in b/libraries/evas/src/modules/engines/gl_cocoa/Makefile.in
index ceea03d..6e616f4 100644
--- a/libraries/evas/src/modules/engines/gl_cocoa/Makefile.in
+++ b/libraries/evas/src/modules/engines/gl_cocoa/Makefile.in
@@ -258,8 +258,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
258PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 258PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
259PIXMAN_LIBS = @PIXMAN_LIBS@ 259PIXMAN_LIBS = @PIXMAN_LIBS@
260PKG_CONFIG = @PKG_CONFIG@ 260PKG_CONFIG = @PKG_CONFIG@
261PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
262PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
263PNG_CFLAGS = @PNG_CFLAGS@ 261PNG_CFLAGS = @PNG_CFLAGS@
264PNG_LIBS = @PNG_LIBS@ 262PNG_LIBS = @PNG_LIBS@
265RANLIB = @RANLIB@ 263RANLIB = @RANLIB@
@@ -276,6 +274,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
276VALGRIND_LIBS = @VALGRIND_LIBS@ 274VALGRIND_LIBS = @VALGRIND_LIBS@
277VERSION = @VERSION@ 275VERSION = @VERSION@
278VMAJ = @VMAJ@ 276VMAJ = @VMAJ@
277WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
278WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
279WIN32_CFLAGS = @WIN32_CFLAGS@ 279WIN32_CFLAGS = @WIN32_CFLAGS@
280WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 280WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
281XCB_CFLAGS = @XCB_CFLAGS@ 281XCB_CFLAGS = @XCB_CFLAGS@
@@ -357,6 +357,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
357evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 357evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
358evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 358evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
359evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 359evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
360evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
361evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
362evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
363evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
360evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 364evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
361evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 365evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
362evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 366evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/engines/gl_common/Makefile.in b/libraries/evas/src/modules/engines/gl_common/Makefile.in
index 61ed478..27284f9 100644
--- a/libraries/evas/src/modules/engines/gl_common/Makefile.in
+++ b/libraries/evas/src/modules/engines/gl_common/Makefile.in
@@ -245,8 +245,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
245PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 245PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
246PIXMAN_LIBS = @PIXMAN_LIBS@ 246PIXMAN_LIBS = @PIXMAN_LIBS@
247PKG_CONFIG = @PKG_CONFIG@ 247PKG_CONFIG = @PKG_CONFIG@
248PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
249PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
250PNG_CFLAGS = @PNG_CFLAGS@ 248PNG_CFLAGS = @PNG_CFLAGS@
251PNG_LIBS = @PNG_LIBS@ 249PNG_LIBS = @PNG_LIBS@
252RANLIB = @RANLIB@ 250RANLIB = @RANLIB@
@@ -263,6 +261,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
263VALGRIND_LIBS = @VALGRIND_LIBS@ 261VALGRIND_LIBS = @VALGRIND_LIBS@
264VERSION = @VERSION@ 262VERSION = @VERSION@
265VMAJ = @VMAJ@ 263VMAJ = @VMAJ@
264WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
265WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
266WIN32_CFLAGS = @WIN32_CFLAGS@ 266WIN32_CFLAGS = @WIN32_CFLAGS@
267WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 267WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
268XCB_CFLAGS = @XCB_CFLAGS@ 268XCB_CFLAGS = @XCB_CFLAGS@
@@ -344,6 +344,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
344evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 344evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
345evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 345evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
346evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 346evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
347evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
348evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
349evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
350evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
347evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 351evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
348evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 352evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
349evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 353evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/engines/gl_common/evas_gl_common.h b/libraries/evas/src/modules/engines/gl_common/evas_gl_common.h
index a088748..051fb3b 100644
--- a/libraries/evas/src/modules/engines/gl_common/evas_gl_common.h
+++ b/libraries/evas/src/modules/engines/gl_common/evas_gl_common.h
@@ -15,7 +15,7 @@
15 15
16#define GL_GLEXT_PROTOTYPES 16#define GL_GLEXT_PROTOTYPES
17 17
18#ifdef BUILD_ENGINE_GL_QUARTZ 18#ifdef BUILD_ENGINE_GL_COCOA
19# include <OpenGL/gl.h> 19# include <OpenGL/gl.h>
20# include <OpenGL/glext.h> 20# include <OpenGL/glext.h>
21#else 21#else
diff --git a/libraries/evas/src/modules/engines/gl_common/evas_gl_texture.c b/libraries/evas/src/modules/engines/gl_common/evas_gl_texture.c
index c99f4bd..8162cd1 100644
--- a/libraries/evas/src/modules/engines/gl_common/evas_gl_texture.c
+++ b/libraries/evas/src/modules/engines/gl_common/evas_gl_texture.c
@@ -109,7 +109,9 @@ _tex_format_index(GLuint format)
109static void 109static void
110_tex_2d(int intfmt, int w, int h, int fmt, int type) 110_tex_2d(int intfmt, int w, int h, int fmt, int type)
111{ 111{
112#ifdef GL_TEXTURE_INTERNAL_FORMAT
112 int intfmtret = -1; 113 int intfmtret = -1;
114#endif
113 glTexImage2D(GL_TEXTURE_2D, 0, intfmt, w, h, 0, fmt, type, NULL); 115 glTexImage2D(GL_TEXTURE_2D, 0, intfmt, w, h, 0, fmt, type, NULL);
114 GLERR(__FUNCTION__, __FILE__, __LINE__, ""); 116 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
115#ifdef GL_TEXTURE_INTERNAL_FORMAT 117#ifdef GL_TEXTURE_INTERNAL_FORMAT
@@ -479,7 +481,6 @@ _pool_tex_dynamic_new(Evas_Engine_GL_Context *gc, int w, int h, int intformat, i
479#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX) 481#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
480 int fmt; // EGL_MAP_GL_TEXTURE_RGBA_SEC or EGL_MAP_GL_TEXTURE_RGB_SEC or bust 482 int fmt; // EGL_MAP_GL_TEXTURE_RGBA_SEC or EGL_MAP_GL_TEXTURE_RGB_SEC or bust
481 int pixtype; // EGL_MAP_GL_TEXTURE_UNSIGNED_BYTE_SEC or bust 483 int pixtype; // EGL_MAP_GL_TEXTURE_UNSIGNED_BYTE_SEC or bust
482 int glformat;
483 int attr[] = 484 int attr[] =
484 { 485 {
485 EGL_MAP_GL_TEXTURE_WIDTH_SEC, 32, 486 EGL_MAP_GL_TEXTURE_WIDTH_SEC, 32,
@@ -914,7 +915,7 @@ evas_gl_common_texture_update(Evas_GL_Texture *tex, RGBA_Image *im)
914 tpix = alloca(im->cache_entry.h * sizeof(DATA32)); 915 tpix = alloca(im->cache_entry.h * sizeof(DATA32));
915 pd = tpix; 916 pd = tpix;
916 ps = im->image.data; 917 ps = im->image.data;
917 for (i = 0; i < im->cache_entry.h; i++) 918 for (i = 0; i < (int)im->cache_entry.h; i++)
918 { 919 {
919 *pd = *ps; 920 *pd = *ps;
920 pd++; 921 pd++;
@@ -929,7 +930,7 @@ evas_gl_common_texture_update(Evas_GL_Texture *tex, RGBA_Image *im)
929 tpix); 930 tpix);
930 pd = tpix; 931 pd = tpix;
931 ps = im->image.data + (im->cache_entry.w - 1); 932 ps = im->image.data + (im->cache_entry.w - 1);
932 for (i = 0; i < im->cache_entry.h; i++) 933 for (i = 0; i < (int)im->cache_entry.h; i++)
933 { 934 {
934 *pd = *ps; 935 *pd = *ps;
935 pd++; 936 pd++;
diff --git a/libraries/evas/src/modules/engines/gl_sdl/Makefile.in b/libraries/evas/src/modules/engines/gl_sdl/Makefile.in
index 5d4135d..bfb29ac 100644
--- a/libraries/evas/src/modules/engines/gl_sdl/Makefile.in
+++ b/libraries/evas/src/modules/engines/gl_sdl/Makefile.in
@@ -239,8 +239,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
239PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 239PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
240PIXMAN_LIBS = @PIXMAN_LIBS@ 240PIXMAN_LIBS = @PIXMAN_LIBS@
241PKG_CONFIG = @PKG_CONFIG@ 241PKG_CONFIG = @PKG_CONFIG@
242PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
243PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
244PNG_CFLAGS = @PNG_CFLAGS@ 242PNG_CFLAGS = @PNG_CFLAGS@
245PNG_LIBS = @PNG_LIBS@ 243PNG_LIBS = @PNG_LIBS@
246RANLIB = @RANLIB@ 244RANLIB = @RANLIB@
@@ -257,6 +255,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
257VALGRIND_LIBS = @VALGRIND_LIBS@ 255VALGRIND_LIBS = @VALGRIND_LIBS@
258VERSION = @VERSION@ 256VERSION = @VERSION@
259VMAJ = @VMAJ@ 257VMAJ = @VMAJ@
258WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
259WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
260WIN32_CFLAGS = @WIN32_CFLAGS@ 260WIN32_CFLAGS = @WIN32_CFLAGS@
261WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 261WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
262XCB_CFLAGS = @XCB_CFLAGS@ 262XCB_CFLAGS = @XCB_CFLAGS@
@@ -338,6 +338,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
338evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 338evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
339evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 339evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
340evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 340evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
341evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
342evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
343evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
344evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
341evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 345evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
342evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 346evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
343evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 347evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/engines/gl_x11/Makefile.in b/libraries/evas/src/modules/engines/gl_x11/Makefile.in
index f589e61..ad4944e 100644
--- a/libraries/evas/src/modules/engines/gl_x11/Makefile.in
+++ b/libraries/evas/src/modules/engines/gl_x11/Makefile.in
@@ -242,8 +242,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
242PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 242PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
243PIXMAN_LIBS = @PIXMAN_LIBS@ 243PIXMAN_LIBS = @PIXMAN_LIBS@
244PKG_CONFIG = @PKG_CONFIG@ 244PKG_CONFIG = @PKG_CONFIG@
245PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
246PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
247PNG_CFLAGS = @PNG_CFLAGS@ 245PNG_CFLAGS = @PNG_CFLAGS@
248PNG_LIBS = @PNG_LIBS@ 246PNG_LIBS = @PNG_LIBS@
249RANLIB = @RANLIB@ 247RANLIB = @RANLIB@
@@ -260,6 +258,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
260VALGRIND_LIBS = @VALGRIND_LIBS@ 258VALGRIND_LIBS = @VALGRIND_LIBS@
261VERSION = @VERSION@ 259VERSION = @VERSION@
262VMAJ = @VMAJ@ 260VMAJ = @VMAJ@
261WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
262WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
263WIN32_CFLAGS = @WIN32_CFLAGS@ 263WIN32_CFLAGS = @WIN32_CFLAGS@
264WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 264WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
265XCB_CFLAGS = @XCB_CFLAGS@ 265XCB_CFLAGS = @XCB_CFLAGS@
@@ -341,6 +341,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
341evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 341evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
342evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 342evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
343evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 343evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
344evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
345evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
346evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
347evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
344evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 348evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
345evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 349evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
346evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 350evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/engines/gl_x11/evas_engine.c b/libraries/evas/src/modules/engines/gl_x11/evas_engine.c
index 38e0c13..fbbd1a2 100644
--- a/libraries/evas/src/modules/engines/gl_x11/evas_engine.c
+++ b/libraries/evas/src/modules/engines/gl_x11/evas_engine.c
@@ -584,25 +584,30 @@ _extensions_init(Render_Engine *re)
584 584
585#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX) 585#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
586 // EGL Extensions 586 // EGL Extensions
587 evasglexts = glsym_eglQueryString(re->win->egl_disp, EGL_EXTENSIONS); 587 if (glsym_eglQueryString)
588 {
589 evasglexts = glsym_eglQueryString(re->win->egl_disp, EGL_EXTENSIONS);
588#else 590#else
589 evasglexts = glXQueryExtensionsString(re->info->info.display, 591 if (glsym_glXQueryExtensionsString)
590 re->info->info.screen); 592 {
593 evasglexts = glXQueryExtensionsString(re->info->info.display,
594 re->info->info.screen);
591#endif 595#endif
592 596
593 DBG("--------EvasGL Extensions----------"); 597 DBG("--------EvasGL Extensions----------");
594 for (i = 0; _evasgl_ext_entries[i].name != NULL; i++) 598 for (i = 0; _evasgl_ext_entries[i].name != NULL; i++)
595 {
596 if ( (strstr(evasglexts, _evasgl_ext_entries[i].name) != NULL) ||
597 (strstr(evasglexts, _evasgl_ext_entries[i].real_name) != NULL) )
598 { 599 {
599 _evasgl_ext_entries[i].supported = 1; 600 if ( (strstr(evasglexts, _evasgl_ext_entries[i].name) != NULL) ||
600 strcat(_evasgl_ext_string, _evasgl_ext_entries[i].name); 601 (strstr(evasglexts, _evasgl_ext_entries[i].real_name) != NULL) )
601 strcat(_evasgl_ext_string, " "); 602 {
602 DBG("\t%s", _evasgl_ext_entries[i].name); 603 _evasgl_ext_entries[i].supported = 1;
604 strcat(_evasgl_ext_string, _evasgl_ext_entries[i].name);
605 strcat(_evasgl_ext_string, " ");
606 DBG("\t%s", _evasgl_ext_entries[i].name);
607 }
603 } 608 }
609 DBG(" ");
604 } 610 }
605 DBG(" ");
606} 611}
607 612
608int _evas_engine_GL_X11_log_dom = -1; 613int _evas_engine_GL_X11_log_dom = -1;
@@ -1125,12 +1130,12 @@ eng_output_redraws_rect_add(void *data, int x, int y, int w, int h)
1125 eng_window_use(re->win); 1130 eng_window_use(re->win);
1126 evas_gl_common_context_resize(re->win->gl_context, re->win->w, re->win->h, re->win->rot); 1131 evas_gl_common_context_resize(re->win->gl_context, re->win->w, re->win->h, re->win->rot);
1127 evas_common_tilebuf_add_redraw(re->tb, x, y, w, h); 1132 evas_common_tilebuf_add_redraw(re->tb, x, y, w, h);
1128/* 1133
1129 RECTS_CLIP_TO_RECT(x, y, w, h, 0, 0, re->win->w, re->win->h); 1134 RECTS_CLIP_TO_RECT(x, y, w, h, 0, 0, re->win->w, re->win->h);
1130 if ((w <= 0) || (h <= 0)) return; 1135 if ((w <= 0) || (h <= 0)) return;
1131 if (!re->win->draw.redraw) 1136 if (!re->win->draw.redraw)
1132 { 1137 {
1133#if 0 1138#if 1
1134 re->win->draw.x1 = x; 1139 re->win->draw.x1 = x;
1135 re->win->draw.y1 = y; 1140 re->win->draw.y1 = y;
1136 re->win->draw.x2 = x + w - 1; 1141 re->win->draw.x2 = x + w - 1;
@@ -1150,11 +1155,10 @@ eng_output_redraws_rect_add(void *data, int x, int y, int w, int h)
1150 if ((y + h - 1) > re->win->draw.y2) re->win->draw.y2 = y + h - 1; 1155 if ((y + h - 1) > re->win->draw.y2) re->win->draw.y2 = y + h - 1;
1151 } 1156 }
1152 re->win->draw.redraw = 1; 1157 re->win->draw.redraw = 1;
1153 */
1154} 1158}
1155 1159
1156static void 1160static void
1157eng_output_redraws_rect_del(void *data __UNUSED__, int x __UNUSED__, int y __UNUSED__, int w __UNUSED__, int h __UNUSED__) 1161eng_output_redraws_rect_del(void *data, int x, int y, int w, int h)
1158{ 1162{
1159 Render_Engine *re; 1163 Render_Engine *re;
1160 1164
@@ -1244,10 +1248,10 @@ eng_output_redraws_next_update_get(void *data, int *x, int *y, int *w, int *h, i
1244//#define FRAMECOUNT 1 1248//#define FRAMECOUNT 1
1245 1249
1246#ifdef FRAMECOUNT 1250#ifdef FRAMECOUNT
1247double 1251static double
1248get_time(void) 1252get_time(void)
1249{ 1253{
1250 struct timeval timev; 1254 struct timeval timev;
1251 1255
1252 gettimeofday(&timev, NULL); 1256 gettimeofday(&timev, NULL);
1253 return (double)timev.tv_sec + (((double)timev.tv_usec) / 1000000); 1257 return (double)timev.tv_sec + (((double)timev.tv_usec) / 1000000);
@@ -1391,44 +1395,46 @@ eng_output_flush(void *data)
1391 { 1395 {
1392 re->info->callback.pre_swap(re->info->callback.data, re->evas); 1396 re->info->callback.pre_swap(re->info->callback.data, re->evas);
1393 } 1397 }
1394/* 1398#if 1
1395 if ((1) 1399 if (1)
1396// (re->win->draw.x1 == 0) && 1400#else
1397// (re->win->draw.y1 == 0) && 1401 if ((re->win->draw.x1 == 0) && (re->win->draw.y1 == 0) && (re->win->draw.x2 == (re->win->w - 1)) && (re->win->draw.y2 == (re->win->h - 1)))
1398// (re->win->draw.x2 == (re->win->w - 1)) && 1402#endif
1399// (re->win->draw.y2 == (re->win->h - 1))
1400 )
1401 */
1402 { 1403 {
1404// double t, t2 = 0.0;
1405// t = get_time();
1403 glXSwapBuffers(re->win->disp, re->win->win); 1406 glXSwapBuffers(re->win->disp, re->win->win);
1404 if (!safe_native) glXWaitGL(); 1407// t = get_time() - t;
1408// if (!safe_native)
1409// {
1410// t2 = get_time();
1411// glXWaitGL();
1412// t2 = get_time() - t2;
1413// }
1414// printf("swap: %3.5f (%3.5fms), x wait gl: %3.5f (%3.5fms)\n",
1415// t, t * 1000.0, t2, t2 * 1000.0);
1405 } 1416 }
1406/*
1407 else 1417 else
1408 { 1418 {
1409// FIXME: this doesn't work.. why oh why? 1419// FIXME: this doesn't work.. why oh why?
1410 int sx, sy, sw, sh; 1420 int sx, sy, sw, sh;
1411 1421
1412 // fimxe - reset when done
1413// glEnable(GL_SCISSOR_TEST);
1414 glDrawBuffer(GL_FRONT);
1415
1416 sx = re->win->draw.x1; 1422 sx = re->win->draw.x1;
1417 sy = re->win->draw.y1; 1423 sy = re->win->draw.y1;
1418 sw = (re->win->draw.x2 - re->win->draw.x1) + 1; 1424 sw = (re->win->draw.x2 - re->win->draw.x1) + 1;
1419 sh = (re->win->draw.y2 - re->win->draw.y1) + 1; 1425 sh = (re->win->draw.y2 - re->win->draw.y1) + 1;
1420 sy = re->win->h - sy - sh; 1426 sy = re->win->h - sy - sh;
1421 1427
1422// glScissor(sx, sy, sw, sh); 1428 glBitmap(0, 0, 0, 0, sx, re->win->h - sy, NULL);
1423 glRasterPos2i(sx, re->win->h - sy); 1429 glEnable(GL_SCISSOR_TEST);
1430 glScissor(sx, sy, sw, sh);
1431 glDrawBuffer(GL_FRONT);
1424 glCopyPixels(sx, sy, sw, sh, GL_COLOR); 1432 glCopyPixels(sx, sy, sw, sh, GL_COLOR);
1425 glRasterPos2i(0, 0);
1426
1427// glDisable(GL_SCISSOR_TEST);
1428 glDrawBuffer(GL_BACK); 1433 glDrawBuffer(GL_BACK);
1434 glDisable(GL_SCISSOR_TEST);
1435 glBitmap(0, 0, 0, 0, 0, 0, NULL);
1429 glFlush(); 1436 glFlush();
1430 } 1437 }
1431 */
1432 if (re->info->callback.post_swap) 1438 if (re->info->callback.post_swap)
1433 { 1439 {
1434 re->info->callback.post_swap(re->info->callback.data, re->evas); 1440 re->info->callback.post_swap(re->info->callback.data, re->evas);
@@ -3469,7 +3475,10 @@ evgl_evasglCreateImage(int target, void* buffer, int *attrib_list)
3469 attrib_list); 3475 attrib_list);
3470 } 3476 }
3471 else 3477 else
3472 ERR("Invalid Engine... (Can't acccess EGL Display)\n"); 3478 {
3479 ERR("Invalid Engine... (Can't acccess EGL Display)\n");
3480 return NULL;
3481 }
3473} 3482}
3474 3483
3475static void 3484static void
@@ -3826,6 +3835,18 @@ eng_image_animated_frame_set(void *data __UNUSED__, void *image, int frame_index
3826 return EINA_TRUE; 3835 return EINA_TRUE;
3827} 3836}
3828 3837
3838static Eina_Bool
3839eng_image_can_region_get(void *data __UNUSED__, void *image)
3840{
3841 Evas_GL_Image *gim = image;
3842 Image_Entry *im;
3843 if (!gim) return EINA_FALSE;
3844 im = (Image_Entry *)gim->im;
3845 if (!im) return EINA_FALSE;
3846 return ((Evas_Image_Load_Func*) im->info.loader)->do_region;
3847}
3848
3849
3829static void 3850static void
3830eng_image_max_size_get(void *data, int *maxw, int *maxh) 3851eng_image_max_size_get(void *data, int *maxw, int *maxh)
3831{ 3852{
@@ -3903,6 +3924,7 @@ module_open(Evas_Module *em)
3903 ORD(image_format_get); 3924 ORD(image_format_get);
3904 ORD(image_colorspace_set); 3925 ORD(image_colorspace_set);
3905 ORD(image_colorspace_get); 3926 ORD(image_colorspace_get);
3927 ORD(image_can_region_get);
3906 ORD(image_mask_create); 3928 ORD(image_mask_create);
3907 ORD(image_native_set); 3929 ORD(image_native_set);
3908 ORD(image_native_get); 3930 ORD(image_native_get);
diff --git a/libraries/evas/src/modules/engines/gl_x11/evas_x_main.c b/libraries/evas/src/modules/engines/gl_x11/evas_x_main.c
index 323c976..c29ab67 100644
--- a/libraries/evas/src/modules/engines/gl_x11/evas_x_main.c
+++ b/libraries/evas/src/modules/engines/gl_x11/evas_x_main.c
@@ -531,13 +531,13 @@ eng_window_free(Evas_GL_X11_Window *gw)
531#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX) 531#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
532 if (gw->egl_surface[0] != EGL_NO_SURFACE) 532 if (gw->egl_surface[0] != EGL_NO_SURFACE)
533 eglDestroySurface(gw->egl_disp, gw->egl_surface[0]); 533 eglDestroySurface(gw->egl_disp, gw->egl_surface[0]);
534 eglMakeCurrent(gw->egl_disp, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
534 if (ref == 0) 535 if (ref == 0)
535 { 536 {
536 if (context) eglDestroyContext(gw->egl_disp, context); 537 if (context) eglDestroyContext(gw->egl_disp, context);
537 eglTerminate(gw->egl_disp); 538 eglTerminate(gw->egl_disp);
538 context = EGL_NO_CONTEXT; 539 context = EGL_NO_CONTEXT;
539 } 540 }
540 eglMakeCurrent(gw->egl_disp, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
541#else 541#else
542 if (gw->glxwin) glXDestroyWindow(gw->disp, gw->glxwin); 542 if (gw->glxwin) glXDestroyWindow(gw->disp, gw->glxwin);
543 if (ref == 0) 543 if (ref == 0)
diff --git a/libraries/evas/src/modules/engines/psl1ght/Makefile.in b/libraries/evas/src/modules/engines/psl1ght/Makefile.in
index 6b553ac..f8524a4 100644
--- a/libraries/evas/src/modules/engines/psl1ght/Makefile.in
+++ b/libraries/evas/src/modules/engines/psl1ght/Makefile.in
@@ -240,8 +240,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
240PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 240PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
241PIXMAN_LIBS = @PIXMAN_LIBS@ 241PIXMAN_LIBS = @PIXMAN_LIBS@
242PKG_CONFIG = @PKG_CONFIG@ 242PKG_CONFIG = @PKG_CONFIG@
243PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
244PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
245PNG_CFLAGS = @PNG_CFLAGS@ 243PNG_CFLAGS = @PNG_CFLAGS@
246PNG_LIBS = @PNG_LIBS@ 244PNG_LIBS = @PNG_LIBS@
247RANLIB = @RANLIB@ 245RANLIB = @RANLIB@
@@ -258,6 +256,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
258VALGRIND_LIBS = @VALGRIND_LIBS@ 256VALGRIND_LIBS = @VALGRIND_LIBS@
259VERSION = @VERSION@ 257VERSION = @VERSION@
260VMAJ = @VMAJ@ 258VMAJ = @VMAJ@
259WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
260WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
261WIN32_CFLAGS = @WIN32_CFLAGS@ 261WIN32_CFLAGS = @WIN32_CFLAGS@
262WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 262WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
263XCB_CFLAGS = @XCB_CFLAGS@ 263XCB_CFLAGS = @XCB_CFLAGS@
@@ -339,6 +339,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
339evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 339evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
340evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 340evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
341evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 341evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
342evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
343evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
344evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
345evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
342evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 346evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
343evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 347evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
344evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 348evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/engines/software_16/Makefile.in b/libraries/evas/src/modules/engines/software_16/Makefile.in
index 1fc95cf..88164e1 100644
--- a/libraries/evas/src/modules/engines/software_16/Makefile.in
+++ b/libraries/evas/src/modules/engines/software_16/Makefile.in
@@ -235,8 +235,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
235PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 235PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
236PIXMAN_LIBS = @PIXMAN_LIBS@ 236PIXMAN_LIBS = @PIXMAN_LIBS@
237PKG_CONFIG = @PKG_CONFIG@ 237PKG_CONFIG = @PKG_CONFIG@
238PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
239PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
240PNG_CFLAGS = @PNG_CFLAGS@ 238PNG_CFLAGS = @PNG_CFLAGS@
241PNG_LIBS = @PNG_LIBS@ 239PNG_LIBS = @PNG_LIBS@
242RANLIB = @RANLIB@ 240RANLIB = @RANLIB@
@@ -253,6 +251,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
253VALGRIND_LIBS = @VALGRIND_LIBS@ 251VALGRIND_LIBS = @VALGRIND_LIBS@
254VERSION = @VERSION@ 252VERSION = @VERSION@
255VMAJ = @VMAJ@ 253VMAJ = @VMAJ@
254WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
255WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
256WIN32_CFLAGS = @WIN32_CFLAGS@ 256WIN32_CFLAGS = @WIN32_CFLAGS@
257WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 257WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
258XCB_CFLAGS = @XCB_CFLAGS@ 258XCB_CFLAGS = @XCB_CFLAGS@
@@ -334,6 +334,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
334evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 334evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
335evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 335evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
336evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 336evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
337evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
338evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
339evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
340evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
337evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 341evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
338evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 342evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
339evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 343evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/engines/software_16_ddraw/Makefile.in b/libraries/evas/src/modules/engines/software_16_ddraw/Makefile.in
index f588c4f..0039410 100644
--- a/libraries/evas/src/modules/engines/software_16_ddraw/Makefile.in
+++ b/libraries/evas/src/modules/engines/software_16_ddraw/Makefile.in
@@ -265,8 +265,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
265PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 265PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
266PIXMAN_LIBS = @PIXMAN_LIBS@ 266PIXMAN_LIBS = @PIXMAN_LIBS@
267PKG_CONFIG = @PKG_CONFIG@ 267PKG_CONFIG = @PKG_CONFIG@
268PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
269PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
270PNG_CFLAGS = @PNG_CFLAGS@ 268PNG_CFLAGS = @PNG_CFLAGS@
271PNG_LIBS = @PNG_LIBS@ 269PNG_LIBS = @PNG_LIBS@
272RANLIB = @RANLIB@ 270RANLIB = @RANLIB@
@@ -283,6 +281,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
283VALGRIND_LIBS = @VALGRIND_LIBS@ 281VALGRIND_LIBS = @VALGRIND_LIBS@
284VERSION = @VERSION@ 282VERSION = @VERSION@
285VMAJ = @VMAJ@ 283VMAJ = @VMAJ@
284WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
285WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
286WIN32_CFLAGS = @WIN32_CFLAGS@ 286WIN32_CFLAGS = @WIN32_CFLAGS@
287WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 287WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
288XCB_CFLAGS = @XCB_CFLAGS@ 288XCB_CFLAGS = @XCB_CFLAGS@
@@ -364,6 +364,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
364evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 364evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
365evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 365evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
366evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 366evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
367evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
368evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
369evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
370evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
367evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 371evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
368evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 372evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
369evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 373evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/engines/software_16_sdl/Makefile.in b/libraries/evas/src/modules/engines/software_16_sdl/Makefile.in
index 219e392..6ebf0db 100644
--- a/libraries/evas/src/modules/engines/software_16_sdl/Makefile.in
+++ b/libraries/evas/src/modules/engines/software_16_sdl/Makefile.in
@@ -238,8 +238,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
238PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 238PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
239PIXMAN_LIBS = @PIXMAN_LIBS@ 239PIXMAN_LIBS = @PIXMAN_LIBS@
240PKG_CONFIG = @PKG_CONFIG@ 240PKG_CONFIG = @PKG_CONFIG@
241PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
242PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
243PNG_CFLAGS = @PNG_CFLAGS@ 241PNG_CFLAGS = @PNG_CFLAGS@
244PNG_LIBS = @PNG_LIBS@ 242PNG_LIBS = @PNG_LIBS@
245RANLIB = @RANLIB@ 243RANLIB = @RANLIB@
@@ -256,6 +254,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
256VALGRIND_LIBS = @VALGRIND_LIBS@ 254VALGRIND_LIBS = @VALGRIND_LIBS@
257VERSION = @VERSION@ 255VERSION = @VERSION@
258VMAJ = @VMAJ@ 256VMAJ = @VMAJ@
257WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
258WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
259WIN32_CFLAGS = @WIN32_CFLAGS@ 259WIN32_CFLAGS = @WIN32_CFLAGS@
260WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 260WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
261XCB_CFLAGS = @XCB_CFLAGS@ 261XCB_CFLAGS = @XCB_CFLAGS@
@@ -337,6 +337,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
337evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 337evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
338evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 338evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
339evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 339evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
340evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
341evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
342evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
343evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
340evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 344evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
341evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 345evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
342evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 346evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/engines/software_16_wince/Makefile.in b/libraries/evas/src/modules/engines/software_16_wince/Makefile.in
index 571891e..95c484e 100644
--- a/libraries/evas/src/modules/engines/software_16_wince/Makefile.in
+++ b/libraries/evas/src/modules/engines/software_16_wince/Makefile.in
@@ -271,8 +271,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
271PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 271PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
272PIXMAN_LIBS = @PIXMAN_LIBS@ 272PIXMAN_LIBS = @PIXMAN_LIBS@
273PKG_CONFIG = @PKG_CONFIG@ 273PKG_CONFIG = @PKG_CONFIG@
274PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
275PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
276PNG_CFLAGS = @PNG_CFLAGS@ 274PNG_CFLAGS = @PNG_CFLAGS@
277PNG_LIBS = @PNG_LIBS@ 275PNG_LIBS = @PNG_LIBS@
278RANLIB = @RANLIB@ 276RANLIB = @RANLIB@
@@ -289,6 +287,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
289VALGRIND_LIBS = @VALGRIND_LIBS@ 287VALGRIND_LIBS = @VALGRIND_LIBS@
290VERSION = @VERSION@ 288VERSION = @VERSION@
291VMAJ = @VMAJ@ 289VMAJ = @VMAJ@
290WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
291WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
292WIN32_CFLAGS = @WIN32_CFLAGS@ 292WIN32_CFLAGS = @WIN32_CFLAGS@
293WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 293WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
294XCB_CFLAGS = @XCB_CFLAGS@ 294XCB_CFLAGS = @XCB_CFLAGS@
@@ -370,6 +370,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
370evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 370evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
371evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 371evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
372evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 372evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
373evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
374evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
375evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
376evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
373evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 377evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
374evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 378evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
375evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 379evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/engines/software_16_x11/Makefile.in b/libraries/evas/src/modules/engines/software_16_x11/Makefile.in
index be43dad..3232681 100644
--- a/libraries/evas/src/modules/engines/software_16_x11/Makefile.in
+++ b/libraries/evas/src/modules/engines/software_16_x11/Makefile.in
@@ -244,8 +244,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
244PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 244PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
245PIXMAN_LIBS = @PIXMAN_LIBS@ 245PIXMAN_LIBS = @PIXMAN_LIBS@
246PKG_CONFIG = @PKG_CONFIG@ 246PKG_CONFIG = @PKG_CONFIG@
247PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
248PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
249PNG_CFLAGS = @PNG_CFLAGS@ 247PNG_CFLAGS = @PNG_CFLAGS@
250PNG_LIBS = @PNG_LIBS@ 248PNG_LIBS = @PNG_LIBS@
251RANLIB = @RANLIB@ 249RANLIB = @RANLIB@
@@ -262,6 +260,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
262VALGRIND_LIBS = @VALGRIND_LIBS@ 260VALGRIND_LIBS = @VALGRIND_LIBS@
263VERSION = @VERSION@ 261VERSION = @VERSION@
264VMAJ = @VMAJ@ 262VMAJ = @VMAJ@
263WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
264WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
265WIN32_CFLAGS = @WIN32_CFLAGS@ 265WIN32_CFLAGS = @WIN32_CFLAGS@
266WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 266WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
267XCB_CFLAGS = @XCB_CFLAGS@ 267XCB_CFLAGS = @XCB_CFLAGS@
@@ -343,6 +343,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
343evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 343evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
344evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 344evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
345evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 345evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
346evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
347evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
348evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
349evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
346evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 350evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
347evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 351evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
348evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 352evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/engines/software_8/Makefile.in b/libraries/evas/src/modules/engines/software_8/Makefile.in
index bf16fcf..3ee42fd 100644
--- a/libraries/evas/src/modules/engines/software_8/Makefile.in
+++ b/libraries/evas/src/modules/engines/software_8/Makefile.in
@@ -234,8 +234,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
234PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 234PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
235PIXMAN_LIBS = @PIXMAN_LIBS@ 235PIXMAN_LIBS = @PIXMAN_LIBS@
236PKG_CONFIG = @PKG_CONFIG@ 236PKG_CONFIG = @PKG_CONFIG@
237PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
238PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
239PNG_CFLAGS = @PNG_CFLAGS@ 237PNG_CFLAGS = @PNG_CFLAGS@
240PNG_LIBS = @PNG_LIBS@ 238PNG_LIBS = @PNG_LIBS@
241RANLIB = @RANLIB@ 239RANLIB = @RANLIB@
@@ -252,6 +250,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
252VALGRIND_LIBS = @VALGRIND_LIBS@ 250VALGRIND_LIBS = @VALGRIND_LIBS@
253VERSION = @VERSION@ 251VERSION = @VERSION@
254VMAJ = @VMAJ@ 252VMAJ = @VMAJ@
253WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
254WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
255WIN32_CFLAGS = @WIN32_CFLAGS@ 255WIN32_CFLAGS = @WIN32_CFLAGS@
256WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 256WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
257XCB_CFLAGS = @XCB_CFLAGS@ 257XCB_CFLAGS = @XCB_CFLAGS@
@@ -333,6 +333,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
333evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 333evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
334evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 334evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
335evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 335evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
336evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
337evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
338evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
339evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
336evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 340evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
337evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 341evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
338evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 342evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/engines/software_8_x11/Makefile.in b/libraries/evas/src/modules/engines/software_8_x11/Makefile.in
index fa88a4d..22577af 100644
--- a/libraries/evas/src/modules/engines/software_8_x11/Makefile.in
+++ b/libraries/evas/src/modules/engines/software_8_x11/Makefile.in
@@ -244,8 +244,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
244PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 244PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
245PIXMAN_LIBS = @PIXMAN_LIBS@ 245PIXMAN_LIBS = @PIXMAN_LIBS@
246PKG_CONFIG = @PKG_CONFIG@ 246PKG_CONFIG = @PKG_CONFIG@
247PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
248PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
249PNG_CFLAGS = @PNG_CFLAGS@ 247PNG_CFLAGS = @PNG_CFLAGS@
250PNG_LIBS = @PNG_LIBS@ 248PNG_LIBS = @PNG_LIBS@
251RANLIB = @RANLIB@ 249RANLIB = @RANLIB@
@@ -262,6 +260,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
262VALGRIND_LIBS = @VALGRIND_LIBS@ 260VALGRIND_LIBS = @VALGRIND_LIBS@
263VERSION = @VERSION@ 261VERSION = @VERSION@
264VMAJ = @VMAJ@ 262VMAJ = @VMAJ@
263WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
264WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
265WIN32_CFLAGS = @WIN32_CFLAGS@ 265WIN32_CFLAGS = @WIN32_CFLAGS@
266WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 266WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
267XCB_CFLAGS = @XCB_CFLAGS@ 267XCB_CFLAGS = @XCB_CFLAGS@
@@ -343,6 +343,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
343evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 343evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
344evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 344evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
345evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 345evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
346evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
347evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
348evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
349evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
346evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 350evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
347evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 351evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
348evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 352evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/engines/software_ddraw/Makefile.in b/libraries/evas/src/modules/engines/software_ddraw/Makefile.in
index be4c977..da65f92 100644
--- a/libraries/evas/src/modules/engines/software_ddraw/Makefile.in
+++ b/libraries/evas/src/modules/engines/software_ddraw/Makefile.in
@@ -266,8 +266,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
266PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 266PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
267PIXMAN_LIBS = @PIXMAN_LIBS@ 267PIXMAN_LIBS = @PIXMAN_LIBS@
268PKG_CONFIG = @PKG_CONFIG@ 268PKG_CONFIG = @PKG_CONFIG@
269PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
270PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
271PNG_CFLAGS = @PNG_CFLAGS@ 269PNG_CFLAGS = @PNG_CFLAGS@
272PNG_LIBS = @PNG_LIBS@ 270PNG_LIBS = @PNG_LIBS@
273RANLIB = @RANLIB@ 271RANLIB = @RANLIB@
@@ -284,6 +282,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
284VALGRIND_LIBS = @VALGRIND_LIBS@ 282VALGRIND_LIBS = @VALGRIND_LIBS@
285VERSION = @VERSION@ 283VERSION = @VERSION@
286VMAJ = @VMAJ@ 284VMAJ = @VMAJ@
285WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
286WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
287WIN32_CFLAGS = @WIN32_CFLAGS@ 287WIN32_CFLAGS = @WIN32_CFLAGS@
288WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 288WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
289XCB_CFLAGS = @XCB_CFLAGS@ 289XCB_CFLAGS = @XCB_CFLAGS@
@@ -365,6 +365,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
365evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 365evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
366evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 366evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
367evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 367evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
368evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
369evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
370evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
371evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
368evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 372evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
369evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 373evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
370evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 374evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/engines/software_gdi/Makefile.in b/libraries/evas/src/modules/engines/software_gdi/Makefile.in
index 5dea632..a2421ef 100644
--- a/libraries/evas/src/modules/engines/software_gdi/Makefile.in
+++ b/libraries/evas/src/modules/engines/software_gdi/Makefile.in
@@ -249,8 +249,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
249PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 249PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
250PIXMAN_LIBS = @PIXMAN_LIBS@ 250PIXMAN_LIBS = @PIXMAN_LIBS@
251PKG_CONFIG = @PKG_CONFIG@ 251PKG_CONFIG = @PKG_CONFIG@
252PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
253PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
254PNG_CFLAGS = @PNG_CFLAGS@ 252PNG_CFLAGS = @PNG_CFLAGS@
255PNG_LIBS = @PNG_LIBS@ 253PNG_LIBS = @PNG_LIBS@
256RANLIB = @RANLIB@ 254RANLIB = @RANLIB@
@@ -267,6 +265,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
267VALGRIND_LIBS = @VALGRIND_LIBS@ 265VALGRIND_LIBS = @VALGRIND_LIBS@
268VERSION = @VERSION@ 266VERSION = @VERSION@
269VMAJ = @VMAJ@ 267VMAJ = @VMAJ@
268WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
269WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
270WIN32_CFLAGS = @WIN32_CFLAGS@ 270WIN32_CFLAGS = @WIN32_CFLAGS@
271WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 271WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
272XCB_CFLAGS = @XCB_CFLAGS@ 272XCB_CFLAGS = @XCB_CFLAGS@
@@ -348,6 +348,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
348evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 348evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
349evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 349evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
350evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 350evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
351evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
352evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
353evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
354evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
351evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 355evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
352evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 356evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
353evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 357evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/engines/software_generic/Makefile.in b/libraries/evas/src/modules/engines/software_generic/Makefile.in
index 6d75f23..4f66536 100644
--- a/libraries/evas/src/modules/engines/software_generic/Makefile.in
+++ b/libraries/evas/src/modules/engines/software_generic/Makefile.in
@@ -236,8 +236,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
236PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 236PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
237PIXMAN_LIBS = @PIXMAN_LIBS@ 237PIXMAN_LIBS = @PIXMAN_LIBS@
238PKG_CONFIG = @PKG_CONFIG@ 238PKG_CONFIG = @PKG_CONFIG@
239PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
240PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
241PNG_CFLAGS = @PNG_CFLAGS@ 239PNG_CFLAGS = @PNG_CFLAGS@
242PNG_LIBS = @PNG_LIBS@ 240PNG_LIBS = @PNG_LIBS@
243RANLIB = @RANLIB@ 241RANLIB = @RANLIB@
@@ -254,6 +252,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
254VALGRIND_LIBS = @VALGRIND_LIBS@ 252VALGRIND_LIBS = @VALGRIND_LIBS@
255VERSION = @VERSION@ 253VERSION = @VERSION@
256VMAJ = @VMAJ@ 254VMAJ = @VMAJ@
255WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
256WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
257WIN32_CFLAGS = @WIN32_CFLAGS@ 257WIN32_CFLAGS = @WIN32_CFLAGS@
258WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 258WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
259XCB_CFLAGS = @XCB_CFLAGS@ 259XCB_CFLAGS = @XCB_CFLAGS@
@@ -335,6 +335,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
335evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 335evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
336evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 336evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
337evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 337evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
338evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
339evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
340evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
341evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
338evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 342evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
339evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 343evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
340evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 344evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/engines/software_generic/evas_engine.c b/libraries/evas/src/modules/engines/software_generic/evas_engine.c
index b2c53c5..48944dd 100644
--- a/libraries/evas/src/modules/engines/software_generic/evas_engine.c
+++ b/libraries/evas/src/modules/engines/software_generic/evas_engine.c
@@ -1,6 +1,275 @@
1#include "evas_common.h" /* Also includes international specific stuff */ 1#include "evas_common.h" /* Also includes international specific stuff */
2#include "evas_private.h" 2#include "evas_private.h"
3 3
4#ifdef HAVE_DLSYM
5# include <dlfcn.h> /* dlopen,dlclose,etc */
6
7# define EVAS_GL 1
8# define EVAS_GL_NO_GL_H_CHECK 1
9# include "Evas_GL.h"
10
11#else
12# warning software_generic will not be able to have Evas_GL API.
13#endif
14
15#ifdef EVAS_GL
16//----------------------------------//
17// OSMesa...
18
19#define OSMESA_MAJOR_VERSION 6
20#define OSMESA_MINOR_VERSION 5
21#define OSMESA_PATCH_VERSION 0
22
23/*
24 * Values for the format parameter of OSMesaCreateContext()
25 * New in version 2.0.
26 */
27#define OSMESA_COLOR_INDEX GL_COLOR_INDEX
28#define OSMESA_RGBA GL_RGBA
29#define OSMESA_BGRA 0x1
30#define OSMESA_ARGB 0x2
31#define OSMESA_RGB GL_RGB
32#define OSMESA_BGR 0x4
33#define OSMESA_RGB_565 0x5
34
35
36/*
37 * OSMesaPixelStore() parameters:
38 * New in version 2.0.
39 */
40#define OSMESA_ROW_LENGTH 0x10
41#define OSMESA_Y_UP 0x11
42
43
44/*
45 * Accepted by OSMesaGetIntegerv:
46 */
47#define OSMESA_WIDTH 0x20
48#define OSMESA_HEIGHT 0x21
49#define OSMESA_FORMAT 0x22
50#define OSMESA_TYPE 0x23
51#define OSMESA_MAX_WIDTH 0x24 /* new in 4.0 */
52#define OSMESA_MAX_HEIGHT 0x25 /* new in 4.0 */
53
54
55typedef void (*OSMESAproc)();
56typedef struct osmesa_context *OSMesaContext;
57#endif
58
59typedef struct _Render_Engine_GL_Surface Render_Engine_GL_Surface;
60typedef struct _Render_Engine_GL_Context Render_Engine_GL_Context;
61
62struct _Render_Engine_GL_Surface
63{
64 int initialized;
65 int w, h;
66
67#ifdef EVAS_GL
68 GLenum internal_fmt;
69#endif
70 int internal_cpp; // Component per pixel. ie. RGB = 3
71
72 int depth_bits;
73 int stencil_bits;
74
75 // Data
76 void *buffer;
77
78 Render_Engine_GL_Context *current_ctx;
79};
80
81#ifdef EVAS_GL
82struct _Render_Engine_GL_Context
83{
84 int initialized;
85
86 OSMesaContext context;
87
88 Render_Engine_GL_Context *share_ctx;
89
90 Render_Engine_GL_Surface *current_sfc;
91};
92
93//------------------------------------------------------//
94typedef void (*_eng_fn) (void );
95typedef _eng_fn (*glsym_func_eng_fn) ();
96typedef void (*glsym_func_void) ();
97typedef unsigned int (*glsym_func_uint) ();
98typedef int (*glsym_func_int) ();
99typedef unsigned char (*glsym_func_uchar) ();
100typedef unsigned char *(*glsym_func_uchar_ptr) ();
101typedef const unsigned char *(*glsym_func_const_uchar_ptr) ();
102typedef char const *(*glsym_func_char_const_ptr) ();
103typedef GLboolean (*glsym_func_bool) ();
104typedef OSMesaContext (*glsym_func_osm_ctx) ();
105//------------------------------------------------------//
106
107/* Function table for GL APIs */
108static Evas_GL_API gl_funcs;
109static void *gl_lib_handle;
110static int gl_lib_is_gles = 0;
111static Evas_GL_API gl_funcs;
112
113//------------------------------------------------------//
114// OSMesa APIS...
115static OSMesaContext (*_sym_OSMesaCreateContextExt) (GLenum format, GLint depthBits, GLint stencilBits, GLint accumBits, OSMesaContext sharelist) = NULL;
116static void (*_sym_OSMesaDestroyContext) (OSMesaContext ctx) = NULL;
117static GLboolean (*_sym_OSMesaMakeCurrent) (OSMesaContext ctx, void *buffer, GLenum type, GLsizei width, GLsizei height) = NULL;
118static void (*_sym_OSMesaPixelStore) (GLint pname, GLint value) = NULL;
119static OSMESAproc (*_sym_OSMesaGetProcAddress) (const char *funcName);
120
121
122//------------------------------------------------------//
123// GLES 2.0 APIs...
124static void (*_sym_glActiveTexture) (GLenum texture) = NULL;
125static void (*_sym_glAttachShader) (GLuint program, GLuint shader) = NULL;
126static void (*_sym_glBindAttribLocation) (GLuint program, GLuint index, const char* name) = NULL;
127static void (*_sym_glBindBuffer) (GLenum target, GLuint buffer) = NULL;
128static void (*_sym_glBindFramebuffer) (GLenum target, GLuint framebuffer) = NULL;
129static void (*_sym_glBindRenderbuffer) (GLenum target, GLuint renderbuffer) = NULL;
130static void (*_sym_glBindTexture) (GLenum target, GLuint texture) = NULL;
131static void (*_sym_glBlendColor) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) = NULL;
132static void (*_sym_glBlendEquation) (GLenum mode) = NULL;
133static void (*_sym_glBlendEquationSeparate) (GLenum modeRGB, GLenum modeAlpha) = NULL;
134static void (*_sym_glBlendFunc) (GLenum sfactor, GLenum dfactor) = NULL;
135static void (*_sym_glBlendFuncSeparate) (GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha) = NULL;
136static void (*_sym_glBufferData) (GLenum target, GLsizeiptr size, const void* data, GLenum usage) = NULL;
137static void (*_sym_glBufferSubData) (GLenum target, GLintptr offset, GLsizeiptr size, const void* data) = NULL;
138static GLenum (*_sym_glCheckFramebufferStatus) (GLenum target) = NULL;
139static void (*_sym_glClear) (GLbitfield mask) = NULL;
140static void (*_sym_glClearColor) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) = NULL;
141static void (*_sym_glClearDepthf) (GLclampf depth) = NULL;
142static void (*_sym_glClearStencil) (GLint s) = NULL;
143static void (*_sym_glColorMask) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha) = NULL;
144static void (*_sym_glCompileShader) (GLuint shader) = NULL;
145static void (*_sym_glCompressedTexImage2D) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void* data) = NULL;
146static void (*_sym_glCompressedTexSubImage2D) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void* data) = NULL;
147static void (*_sym_glCopyTexImage2D) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border) = NULL;
148static void (*_sym_glCopyTexSubImage2D) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height) = NULL;
149static GLuint (*_sym_glCreateProgram) (void) = NULL;
150static GLuint (*_sym_glCreateShader) (GLenum type) = NULL;
151static void (*_sym_glCullFace) (GLenum mode) = NULL;
152static void (*_sym_glDeleteBuffers) (GLsizei n, const GLuint* buffers) = NULL;
153static void (*_sym_glDeleteFramebuffers) (GLsizei n, const GLuint* framebuffers) = NULL;
154static void (*_sym_glDeleteProgram) (GLuint program) = NULL;
155static void (*_sym_glDeleteRenderbuffers) (GLsizei n, const GLuint* renderbuffers) = NULL;
156static void (*_sym_glDeleteShader) (GLuint shader) = NULL;
157static void (*_sym_glDeleteTextures) (GLsizei n, const GLuint* textures) = NULL;
158static void (*_sym_glDepthFunc) (GLenum func) = NULL;
159static void (*_sym_glDepthMask) (GLboolean flag) = NULL;
160static void (*_sym_glDepthRangef) (GLclampf zNear, GLclampf zFar) = NULL;
161static void (*_sym_glDetachShader) (GLuint program, GLuint shader) = NULL;
162static void (*_sym_glDisable) (GLenum cap) = NULL;
163static void (*_sym_glDisableVertexAttribArray) (GLuint index) = NULL;
164static void (*_sym_glDrawArrays) (GLenum mode, GLint first, GLsizei count) = NULL;
165static void (*_sym_glDrawElements) (GLenum mode, GLsizei count, GLenum type, const void* indices) = NULL;
166static void (*_sym_glEnable) (GLenum cap) = NULL;
167static void (*_sym_glEnableVertexAttribArray) (GLuint index) = NULL;
168static void (*_sym_glFinish) (void) = NULL;
169static void (*_sym_glFlush) (void) = NULL;
170static void (*_sym_glFramebufferRenderbuffer) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer) = NULL;
171static void (*_sym_glFramebufferTexture2D) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level) = NULL;
172static void (*_sym_glFrontFace) (GLenum mode) = NULL;
173static void (*_sym_glGenBuffers) (GLsizei n, GLuint* buffers) = NULL;
174static void (*_sym_glGenerateMipmap) (GLenum target) = NULL;
175static void (*_sym_glGenFramebuffers) (GLsizei n, GLuint* framebuffers) = NULL;
176static void (*_sym_glGenRenderbuffers) (GLsizei n, GLuint* renderbuffers) = NULL;
177static void (*_sym_glGenTextures) (GLsizei n, GLuint* textures) = NULL;
178static void (*_sym_glGetActiveAttrib) (GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, char* name) = NULL;
179static void (*_sym_glGetActiveUniform) (GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, char* name) = NULL;
180static void (*_sym_glGetAttachedShaders) (GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders) = NULL;
181static int (*_sym_glGetAttribLocation) (GLuint program, const char* name) = NULL;
182static void (*_sym_glGetBooleanv) (GLenum pname, GLboolean* params) = NULL;
183static void (*_sym_glGetBufferParameteriv) (GLenum target, GLenum pname, GLint* params) = NULL;
184static GLenum (*_sym_glGetError) (void) = NULL;
185static void (*_sym_glGetFloatv) (GLenum pname, GLfloat* params) = NULL;
186static void (*_sym_glGetFramebufferAttachmentParameteriv) (GLenum target, GLenum attachment, GLenum pname, GLint* params) = NULL;
187static void (*_sym_glGetIntegerv) (GLenum pname, GLint* params) = NULL;
188static void (*_sym_glGetProgramiv) (GLuint program, GLenum pname, GLint* params) = NULL;
189static void (*_sym_glGetProgramInfoLog) (GLuint program, GLsizei bufsize, GLsizei* length, char* infolog) = NULL;
190static void (*_sym_glGetRenderbufferParameteriv) (GLenum target, GLenum pname, GLint* params) = NULL;
191static void (*_sym_glGetShaderiv) (GLuint shader, GLenum pname, GLint* params) = NULL;
192static void (*_sym_glGetShaderInfoLog) (GLuint shader, GLsizei bufsize, GLsizei* length, char* infolog) = NULL;
193static void (*_sym_glGetShaderPrecisionFormat) (GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision) = NULL;
194static void (*_sym_glGetShaderSource) (GLuint shader, GLsizei bufsize, GLsizei* length, char* source) = NULL;
195static const GLubyte *(*_sym_glGetString) (GLenum name) = NULL;
196static void (*_sym_glGetTexParameterfv) (GLenum target, GLenum pname, GLfloat* params) = NULL;
197static void (*_sym_glGetTexParameteriv) (GLenum target, GLenum pname, GLint* params) = NULL;
198static void (*_sym_glGetUniformfv) (GLuint program, GLint location, GLfloat* params) = NULL;
199static void (*_sym_glGetUniformiv) (GLuint program, GLint location, GLint* params) = NULL;
200static int (*_sym_glGetUniformLocation) (GLuint program, const char* name) = NULL;
201static void (*_sym_glGetVertexAttribfv) (GLuint index, GLenum pname, GLfloat* params) = NULL;
202static void (*_sym_glGetVertexAttribiv) (GLuint index, GLenum pname, GLint* params) = NULL;
203static void (*_sym_glGetVertexAttribPointerv) (GLuint index, GLenum pname, void** pointer) = NULL;
204static void (*_sym_glHint) (GLenum target, GLenum mode) = NULL;
205static GLboolean (*_sym_glIsBuffer) (GLuint buffer) = NULL;
206static GLboolean (*_sym_glIsEnabled) (GLenum cap) = NULL;
207static GLboolean (*_sym_glIsFramebuffer) (GLuint framebuffer) = NULL;
208static GLboolean (*_sym_glIsProgram) (GLuint program) = NULL;
209static GLboolean (*_sym_glIsRenderbuffer) (GLuint renderbuffer) = NULL;
210static GLboolean (*_sym_glIsShader) (GLuint shader) = NULL;
211static GLboolean (*_sym_glIsTexture) (GLuint texture) = NULL;
212static void (*_sym_glLineWidth) (GLfloat width) = NULL;
213static void (*_sym_glLinkProgram) (GLuint program) = NULL;
214static void (*_sym_glPixelStorei) (GLenum pname, GLint param) = NULL;
215static void (*_sym_glPolygonOffset) (GLfloat factor, GLfloat units) = NULL;
216static void (*_sym_glReadPixels) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void* pixels) = NULL;
217static void (*_sym_glReleaseShaderCompiler) (void) = NULL;
218static void (*_sym_glRenderbufferStorage) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height) = NULL;
219static void (*_sym_glSampleCoverage) (GLclampf value, GLboolean invert) = NULL;
220static void (*_sym_glScissor) (GLint x, GLint y, GLsizei width, GLsizei height) = NULL;
221static void (*_sym_glShaderBinary) (GLsizei n, const GLuint* shaders, GLenum binaryformat, const void* binary, GLsizei length) = NULL;
222static void (*_sym_glShaderSource) (GLuint shader, GLsizei count, const char** string, const GLint* length) = NULL;
223static void (*_sym_glStencilFunc) (GLenum func, GLint ref, GLuint mask) = NULL;
224static void (*_sym_glStencilFuncSeparate) (GLenum face, GLenum func, GLint ref, GLuint mask) = NULL;
225static void (*_sym_glStencilMask) (GLuint mask) = NULL;
226static void (*_sym_glStencilMaskSeparate) (GLenum face, GLuint mask) = NULL;
227static void (*_sym_glStencilOp) (GLenum fail, GLenum zfail, GLenum zpass) = NULL;
228static void (*_sym_glStencilOpSeparate) (GLenum face, GLenum fail, GLenum zfail, GLenum zpass) = NULL;
229static void (*_sym_glTexImage2D) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void* pixels) = NULL;
230static void (*_sym_glTexParameterf) (GLenum target, GLenum pname, GLfloat param) = NULL;
231static void (*_sym_glTexParameterfv) (GLenum target, GLenum pname, const GLfloat* params) = NULL;
232static void (*_sym_glTexParameteri) (GLenum target, GLenum pname, GLint param) = NULL;
233static void (*_sym_glTexParameteriv) (GLenum target, GLenum pname, const GLint* params) = NULL;
234static void (*_sym_glTexSubImage2D) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void* pixels) = NULL;
235static void (*_sym_glUniform1f) (GLint location, GLfloat x) = NULL;
236static void (*_sym_glUniform1fv) (GLint location, GLsizei count, const GLfloat* v) = NULL;
237static void (*_sym_glUniform1i) (GLint location, GLint x) = NULL;
238static void (*_sym_glUniform1iv) (GLint location, GLsizei count, const GLint* v) = NULL;
239static void (*_sym_glUniform2f) (GLint location, GLfloat x, GLfloat y) = NULL;
240static void (*_sym_glUniform2fv) (GLint location, GLsizei count, const GLfloat* v) = NULL;
241static void (*_sym_glUniform2i) (GLint location, GLint x, GLint y) = NULL;
242static void (*_sym_glUniform2iv) (GLint location, GLsizei count, const GLint* v) = NULL;
243static void (*_sym_glUniform3f) (GLint location, GLfloat x, GLfloat y, GLfloat z) = NULL;
244static void (*_sym_glUniform3fv) (GLint location, GLsizei count, const GLfloat* v) = NULL;
245static void (*_sym_glUniform3i) (GLint location, GLint x, GLint y, GLint z) = NULL;
246static void (*_sym_glUniform3iv) (GLint location, GLsizei count, const GLint* v) = NULL;
247static void (*_sym_glUniform4f) (GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w) = NULL;
248static void (*_sym_glUniform4fv) (GLint location, GLsizei count, const GLfloat* v) = NULL;
249static void (*_sym_glUniform4i) (GLint location, GLint x, GLint y, GLint z, GLint w) = NULL;
250static void (*_sym_glUniform4iv) (GLint location, GLsizei count, const GLint* v) = NULL;
251static void (*_sym_glUniformMatrix2fv) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) = NULL;
252static void (*_sym_glUniformMatrix3fv) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) = NULL;
253static void (*_sym_glUniformMatrix4fv) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) = NULL;
254static void (*_sym_glUseProgram) (GLuint program) = NULL;
255static void (*_sym_glValidateProgram) (GLuint program) = NULL;
256static void (*_sym_glVertexAttrib1f) (GLuint indx, GLfloat x) = NULL;
257static void (*_sym_glVertexAttrib1fv) (GLuint indx, const GLfloat* values) = NULL;
258static void (*_sym_glVertexAttrib2f) (GLuint indx, GLfloat x, GLfloat y) = NULL;
259static void (*_sym_glVertexAttrib2fv) (GLuint indx, const GLfloat* values) = NULL;
260static void (*_sym_glVertexAttrib3f) (GLuint indx, GLfloat x, GLfloat y, GLfloat z) = NULL;
261static void (*_sym_glVertexAttrib3fv) (GLuint indx, const GLfloat* values) = NULL;
262static void (*_sym_glVertexAttrib4f) (GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w) = NULL;
263static void (*_sym_glVertexAttrib4fv) (GLuint indx, const GLfloat* values) = NULL;
264static void (*_sym_glVertexAttribPointer) (GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void* ptr) = NULL;
265static void (*_sym_glViewport) (GLint x, GLint y, GLsizei width, GLsizei height) = NULL;
266
267// GLES Extensions...
268/* static void (*_sym_glGetProgramBinary) (GLuint a, GLsizei b, GLsizei* c, GLenum* d, void* e) = NULL; */
269/* static void (*_sym_glProgramBinary) (GLuint a, GLenum b, const void* c, GLint d) = NULL; */
270/* static void (*_sym_glProgramParameteri) (GLuint a, GLuint b, GLint d) = NULL; */
271#endif
272
4/* 273/*
5 ***** 274 *****
6 ** 275 **
@@ -258,6 +527,15 @@ eng_image_colorspace_get(void *data __UNUSED__, void *image)
258 return im->space; 527 return im->space;
259} 528}
260 529
530static Eina_Bool
531eng_image_can_region_get(void *data __UNUSED__, void *image)
532{
533 Image_Entry *im;
534 if (!image) return EINA_FALSE;
535 im = image;
536 return ((Evas_Image_Load_Func*) im->info.loader)->do_region;
537}
538
261static void 539static void
262eng_image_mask_create(void *data __UNUSED__, void *image) 540eng_image_mask_create(void *data __UNUSED__, void *image)
263{ 541{
@@ -349,7 +627,37 @@ eng_image_colorspace_set(void *data __UNUSED__, void *image, int cspace)
349static void * 627static void *
350eng_image_native_set(void *data __UNUSED__, void *image, void *native __UNUSED__) 628eng_image_native_set(void *data __UNUSED__, void *image, void *native __UNUSED__)
351{ 629{
352 return image; 630 //return image;
631 Evas_Native_Surface *ns = native;
632 Image_Entry *im = image, *im2 = NULL;
633
634 if (!im)
635 {
636 if ((!ns) && (ns->data.x11.visual))
637 {
638 im = evas_cache_image_data(evas_common_image_cache_get(),
639 im->w, im->h,
640 ns->data.x11.visual, 1,
641 EVAS_COLORSPACE_ARGB8888);
642 return im;
643 }
644 else
645 return NULL;
646 }
647
648 if ((!ns) && (!im)) return im;
649
650 if (!ns) return im;
651
652 im2 = evas_cache_image_data(evas_common_image_cache_get(),
653 im->w, im->h,
654 ns->data.x11.visual, 1,
655 EVAS_COLORSPACE_ARGB8888);
656 evas_cache_image_drop(im);
657 im = im2;
658
659 return im;
660
353} 661}
354 662
355static void * 663static void *
@@ -1035,6 +1343,311 @@ eng_image_load_error_get(void *data __UNUSED__, void *image)
1035 return im->cache_entry.load_error; 1343 return im->cache_entry.load_error;
1036} 1344}
1037 1345
1346//------------ Evas GL engine code ---------------//
1347static void *
1348eng_gl_surface_create(void *data __UNUSED__, void *config, int w, int h)
1349{
1350#ifdef EVAS_GL
1351 Render_Engine_GL_Surface *sfc;
1352 Evas_GL_Config *cfg;
1353
1354 sfc = calloc(1, sizeof(Render_Engine_GL_Surface));
1355 if (!sfc) return NULL;
1356
1357 cfg = (Evas_GL_Config *)config;
1358
1359 sfc->initialized = 0;
1360 sfc->w = w;
1361 sfc->h = h;
1362
1363 // Color Format
1364 switch (cfg->color_format)
1365 {
1366
1367 case EVAS_GL_RGB_888:
1368 sfc->internal_fmt = OSMESA_RGB;
1369 sfc->internal_cpp = 3;
1370 break;
1371 case EVAS_GL_RGBA_8888:
1372 sfc->internal_fmt = OSMESA_BGRA;
1373 sfc->internal_cpp = 4;
1374 break;
1375 default:
1376 sfc->internal_fmt = OSMESA_RGBA;
1377 sfc->internal_cpp = 4;
1378 break;
1379 }
1380
1381 // Depth Bits
1382 switch (cfg->depth_bits)
1383 {
1384 case EVAS_GL_DEPTH_BIT_8:
1385 sfc->depth_bits = 8;
1386 break;
1387 case EVAS_GL_DEPTH_BIT_16:
1388 sfc->depth_bits = 16;
1389 break;
1390 case EVAS_GL_DEPTH_BIT_24:
1391 sfc->depth_bits = 24;
1392 break;
1393 case EVAS_GL_DEPTH_BIT_32:
1394 sfc->depth_bits = 32;
1395 break;
1396 case EVAS_GL_DEPTH_NONE:
1397 default:
1398 sfc->depth_bits = 0;
1399 break;
1400 }
1401
1402 // Stencil Bits
1403 switch (cfg->stencil_bits)
1404 {
1405 case EVAS_GL_STENCIL_BIT_1:
1406 sfc->stencil_bits = 1;
1407 break;
1408 case EVAS_GL_STENCIL_BIT_2:
1409 sfc->stencil_bits = 2;
1410 break;
1411 case EVAS_GL_STENCIL_BIT_4:
1412 sfc->stencil_bits = 4;
1413 break;
1414 case EVAS_GL_STENCIL_BIT_8:
1415 sfc->stencil_bits = 8;
1416 break;
1417 case EVAS_GL_STENCIL_BIT_16:
1418 sfc->stencil_bits = 16;
1419 break;
1420 case EVAS_GL_STENCIL_NONE:
1421 default:
1422 sfc->stencil_bits = 0;
1423 break;
1424 }
1425
1426 sfc->buffer = malloc(sizeof(unsigned char)*sfc->internal_cpp*w*h);
1427
1428 if (!sfc->buffer)
1429 {
1430 free(sfc);
1431 return NULL;
1432 }
1433
1434 return sfc;
1435#else
1436 (void) config;
1437 (void) w;
1438 (void) h;
1439 return NULL;
1440#endif
1441}
1442
1443static int
1444eng_gl_surface_destroy(void *data __UNUSED__, void *surface)
1445{
1446#ifdef EVAS_GL
1447 Render_Engine_GL_Surface *sfc;
1448
1449 sfc = (Render_Engine_GL_Surface*)surface;
1450
1451 if (!sfc) return 0;
1452
1453 if (sfc->buffer) free(sfc->buffer);
1454
1455 free(sfc);
1456
1457 surface = NULL;
1458
1459 return 1;
1460#else
1461 (void) surface;
1462 return 1;
1463#endif
1464}
1465
1466static void *
1467eng_gl_context_create(void *data __UNUSED__, void *share_context)
1468{
1469#ifdef EVAS_GL
1470 Render_Engine_GL_Context *ctx;
1471 Render_Engine_GL_Context *share_ctx;
1472
1473 ctx = calloc(1, sizeof(Render_Engine_GL_Context));
1474
1475 if (!ctx) return NULL;
1476
1477 share_ctx = (Render_Engine_GL_Context *)share_context;
1478
1479 ctx->share_ctx = share_ctx;
1480
1481 /*
1482 if (share_ctx)
1483 ctx->context = OSMesaCreateContextExt( OSMESA_RGBA, 8, 0, 0, share_ctx->context );
1484 else
1485 ctx->context = OSMesaCreateContextExt( OSMESA_RGBA, 8, 0, 0, NULL );
1486
1487
1488 if (!ctx->context)
1489 {
1490 ERR("Error creating OSMesa Context.");
1491 free(ctx);
1492 return NULL;
1493 }
1494 */
1495
1496 ctx->initialized = 0;
1497
1498 return ctx;
1499#else
1500 (void) share_context;
1501 return NULL;
1502#endif
1503}
1504
1505static int
1506eng_gl_context_destroy(void *data __UNUSED__, void *context)
1507{
1508#ifdef EVAS_GL
1509 Render_Engine_GL_Context *ctx;
1510
1511 ctx = (Render_Engine_GL_Context*)context;
1512
1513 if (!ctx) return 0;
1514
1515 _sym_OSMesaDestroyContext(ctx->context);
1516
1517 free(ctx);
1518 context = NULL;
1519
1520 return 1;
1521#else
1522 (void) context;
1523 return 0;
1524#endif
1525}
1526
1527static int
1528eng_gl_make_current(void *data __UNUSED__, void *surface, void *context)
1529{
1530#ifdef EVAS_GL
1531 Render_Engine_GL_Surface *sfc;
1532 Render_Engine_GL_Context *ctx;
1533 OSMesaContext share_ctx;
1534 GLboolean ret;
1535
1536 sfc = (Render_Engine_GL_Surface*)surface;
1537 ctx = (Render_Engine_GL_Context*)context;
1538
1539 // Unset surface/context
1540 if ((!sfc) || (!ctx))
1541 {
1542 if (ctx) ctx->current_sfc = NULL;
1543 if (sfc) sfc->current_ctx = NULL;
1544 return 1;
1545 }
1546
1547 // Initialize Context if it hasn't been.
1548 if (!ctx->initialized)
1549 {
1550 if (ctx->share_ctx)
1551 share_ctx = ctx->share_ctx->context;
1552 else
1553 share_ctx = NULL;
1554
1555 ctx->context = _sym_OSMesaCreateContextExt(sfc->internal_fmt,
1556 sfc->depth_bits,
1557 sfc->stencil_bits,
1558 0,
1559 share_ctx);
1560 if (!ctx->context)
1561 {
1562 ERR("Error initializing context.");
1563 return 0;
1564 }
1565
1566 ctx->initialized = 1;
1567 }
1568
1569
1570 // Call MakeCurrent
1571 ret = _sym_OSMesaMakeCurrent(ctx->context, sfc->buffer, GL_UNSIGNED_BYTE,
1572 sfc->w, sfc->h);
1573
1574 if (ret == GL_FALSE)
1575 {
1576 ERR("Error doing MakeCurrent.");
1577 return 0;
1578 }
1579
1580 _sym_OSMesaPixelStore(OSMESA_Y_UP, 0);
1581
1582 // Set the current surface/context
1583 ctx->current_sfc = sfc;
1584 sfc->current_ctx = ctx;
1585
1586 return 1;
1587#else
1588 (void) surface;
1589 (void) context;
1590 return 1;
1591#endif
1592}
1593
1594// FIXME!!! Implement later
1595static void *
1596eng_gl_string_query(void *data __UNUSED__, int name __UNUSED__)
1597{
1598 return NULL;
1599}
1600
1601static void *
1602eng_gl_proc_address_get(void *data __UNUSED__, const char *name)
1603{
1604#ifdef EVAS_GL
1605 if (_sym_OSMesaGetProcAddress) return _sym_OSMesaGetProcAddress(name);
1606 return dlsym(RTLD_DEFAULT, name);
1607#else
1608 (void) name;
1609 return NULL;
1610#endif
1611}
1612
1613static int
1614eng_gl_native_surface_get(void *data __UNUSED__, void *surface, void *native_surface)
1615{
1616#ifdef EVAS_GL
1617 Render_Engine_GL_Surface *sfc;
1618 Evas_Native_Surface *ns;
1619
1620 sfc = (Render_Engine_GL_Surface*)surface;
1621 ns = (Evas_Native_Surface*)native_surface;
1622
1623 if (!sfc) return 0;
1624
1625 ns->type = EVAS_NATIVE_SURFACE_OPENGL;
1626 ns->version = EVAS_NATIVE_SURFACE_VERSION;
1627 ns->data.x11.visual = sfc->buffer;
1628
1629 return 1;
1630#else
1631 (void) surface;
1632 (void) native_surface;
1633 return 1;
1634#endif
1635}
1636
1637
1638static void *
1639eng_gl_api_get(void *data __UNUSED__)
1640{
1641#ifdef EVAS_GL
1642 return &gl_funcs;
1643#else
1644 return NULL;
1645#endif
1646}
1647
1648//------------------------------------------------//
1649
1650
1038/* 1651/*
1039 ***** 1652 *****
1040 ** 1653 **
@@ -1112,6 +1725,7 @@ static Evas_Func func =
1112 eng_image_format_get, 1725 eng_image_format_get,
1113 eng_image_colorspace_set, 1726 eng_image_colorspace_set,
1114 eng_image_colorspace_get, 1727 eng_image_colorspace_get,
1728 eng_image_can_region_get,
1115 eng_image_mask_create, 1729 eng_image_mask_create,
1116 eng_image_native_set, 1730 eng_image_native_set,
1117 eng_image_native_get, 1731 eng_image_native_get,
@@ -1161,15 +1775,15 @@ static Evas_Func func =
1161 eng_image_filtered_save, 1775 eng_image_filtered_save,
1162 eng_image_filtered_free, 1776 eng_image_filtered_free,
1163#endif 1777#endif
1164 NULL, // FIXME: need software mesa for gl rendering <- gl_surface_create 1778 NULL, // need software mesa for gl rendering <- gl_surface_create
1165 NULL, // FIXME: need software mesa for gl rendering <- gl_surface_destroy 1779 NULL, // need software mesa for gl rendering <- gl_surface_destroy
1166 NULL, // FIXME: need software mesa for gl rendering <- gl_context_create 1780 NULL, // need software mesa for gl rendering <- gl_context_create
1167 NULL, // FIXME: need software mesa for gl rendering <- gl_context_destroy 1781 NULL, // need software mesa for gl rendering <- gl_context_destroy
1168 NULL, // FIXME: need software mesa for gl rendering <- gl_make_current 1782 NULL, // need software mesa for gl rendering <- gl_make_current
1169 NULL, // FIXME: need software mesa for gl rendering <- gl_string_query 1783 NULL, // need software mesa for gl rendering <- gl_string_query
1170 NULL, // FIXME: need software mesa for gl rendering <- gl_proc_address_get 1784 NULL, // need software mesa for gl rendering <- gl_proc_address_get
1171 NULL, // FIXME: need software mesa for gl rendering <- gl_native_surface_get 1785 NULL, // need software mesa for gl rendering <- gl_native_surface_get
1172 NULL, // FIXME: need software mesa for gl rendering <- gl_api_get 1786 NULL, // need software mesa for gl rendering <- gl_api_get
1173 eng_image_load_error_get, 1787 eng_image_load_error_get,
1174 eng_font_run_font_end_get, 1788 eng_font_run_font_end_get,
1175 eng_image_animated_get, 1789 eng_image_animated_get,
@@ -1182,6 +1796,981 @@ static Evas_Func func =
1182 /* FUTURE software generic calls go here */ 1796 /* FUTURE software generic calls go here */
1183}; 1797};
1184 1798
1799
1800//----------------------------------------------------------------//
1801// //
1802// Load Symbols //
1803// //
1804//----------------------------------------------------------------//
1805#ifdef EVAS_GL
1806static void
1807sym_missing(void)
1808{
1809 ERR("GL symbols missing!\n");
1810}
1811
1812static int
1813glue_sym_init(void)
1814{
1815 //------------------------------------------------//
1816 // Use eglGetProcAddress
1817#define FINDSYM(dst, sym, typ) \
1818 if (!dst) dst = (typeof(dst))dlsym(gl_lib_handle, sym); \
1819 if (!dst) \
1820 { \
1821 ERR("Symbol not found %s\n", sym); \
1822 return 0; \
1823 }
1824#define FALLBAK(dst, typ) if (!dst) dst = (typeof(dst))sym_missing;
1825
1826 //------------------------------------------------------//
1827 // OSMesa APIs...
1828 FINDSYM(_sym_OSMesaCreateContextExt, "OSMesaCreateContextExt", glsym_func_osm_ctx);
1829 FALLBAK(_sym_OSMesaCreateContextExt, glsym_func_void);
1830
1831 FINDSYM(_sym_OSMesaDestroyContext, "OSMesaDestroyContext", glsym_func_void);
1832 FALLBAK(_sym_OSMesaDestroyContext, glsym_func_void);
1833
1834 FINDSYM(_sym_OSMesaMakeCurrent, "OSMesaMakeCurrent", glsym_func_bool);
1835 FALLBAK(_sym_OSMesaMakeCurrent, glsym_func_void);
1836
1837 FINDSYM(_sym_OSMesaPixelStore, "OSMesaPixelStore", glsym_func_void);
1838 FALLBAK(_sym_OSMesaPixelStore, glsym_func_void);
1839
1840 FINDSYM(_sym_OSMesaGetProcAddress, "OSMesaGetProcAddress", glsym_func_eng_fn);
1841 FALLBAK(_sym_OSMesaGetProcAddress, glsym_func_void);
1842
1843#undef FINDSYM
1844#undef FALLBAK
1845
1846 return 1;
1847}
1848
1849static int
1850gl_sym_init(void)
1851{
1852 //------------------------------------------------//
1853#define FINDSYM(dst, sym, typ) \
1854 if (!dst) dst = (typeof(dst))dlsym(gl_lib_handle, sym); \
1855 if (!dst) DBG("Symbol not found %s\n", sym);
1856#define FALLBAK(dst, typ) if (!dst) dst = (typeof(dst))sym_missing;
1857
1858
1859 //------------------------------------------------------//
1860 // GLES 2.0 APIs...
1861 FINDSYM(_sym_glActiveTexture, "glActiveTexture", glsym_func_void);
1862 FALLBAK(_sym_glActiveTexture, glsym_func_void);
1863
1864 FINDSYM(_sym_glAttachShader, "glAttachShader", glsym_func_void);
1865 FALLBAK(_sym_glAttachShader, glsym_func_void);
1866
1867 FINDSYM(_sym_glBindAttribLocation, "glBindAttribLocation", glsym_func_void);
1868 FALLBAK(_sym_glBindAttribLocation, glsym_func_void);
1869
1870 FINDSYM(_sym_glBindBuffer, "glBindBuffer", glsym_func_void);
1871 FALLBAK(_sym_glBindBuffer, glsym_func_void);
1872
1873 FINDSYM(_sym_glBindFramebuffer, "glBindFramebuffer", glsym_func_void);
1874 FALLBAK(_sym_glBindFramebuffer, glsym_func_void);
1875
1876 FINDSYM(_sym_glBindRenderbuffer, "glBindRenderbuffer", glsym_func_void);
1877 FALLBAK(_sym_glBindRenderbuffer, glsym_func_void);
1878
1879 FINDSYM(_sym_glBindTexture, "glBindTexture", glsym_func_void);
1880 FALLBAK(_sym_glBindTexture, glsym_func_void);
1881
1882 FINDSYM(_sym_glBlendColor, "glBlendColor", glsym_func_void);
1883 FALLBAK(_sym_glBlendColor, glsym_func_void);
1884
1885 FINDSYM(_sym_glBlendEquation, "glBlendEquation", glsym_func_void);
1886 FALLBAK(_sym_glBlendEquation, glsym_func_void);
1887
1888 FINDSYM(_sym_glBlendEquationSeparate, "glBlendEquationSeparate", glsym_func_void);
1889 FALLBAK(_sym_glBlendEquationSeparate, glsym_func_void);
1890
1891 FINDSYM(_sym_glBlendFunc, "glBlendFunc", glsym_func_void);
1892 FALLBAK(_sym_glBlendFunc, glsym_func_void);
1893
1894 FINDSYM(_sym_glBlendFuncSeparate, "glBlendFuncSeparate", glsym_func_void);
1895 FALLBAK(_sym_glBlendFuncSeparate, glsym_func_void);
1896
1897 FINDSYM(_sym_glBufferData, "glBufferData", glsym_func_void);
1898 FALLBAK(_sym_glBufferData, glsym_func_void);
1899
1900 FINDSYM(_sym_glBufferSubData, "glBufferSubData", glsym_func_void);
1901 FALLBAK(_sym_glBufferSubData, glsym_func_void);
1902
1903 FINDSYM(_sym_glCheckFramebufferStatus, "glCheckFramebufferStatus", glsym_func_uint);
1904 FALLBAK(_sym_glCheckFramebufferStatus, glsym_func_uint);
1905
1906 FINDSYM(_sym_glClear, "glClear", glsym_func_void);
1907 FALLBAK(_sym_glClear, glsym_func_void);
1908
1909 FINDSYM(_sym_glClearColor, "glClearColor", glsym_func_void);
1910 FALLBAK(_sym_glClearColor, glsym_func_void);
1911
1912 FINDSYM(_sym_glClearDepthf, "glClearDepthf", glsym_func_void);
1913 FINDSYM(_sym_glClearDepthf, "glClearDepth", glsym_func_void);
1914 FALLBAK(_sym_glClearDepthf, glsym_func_void);
1915
1916 FINDSYM(_sym_glClearStencil, "glClearStencil", glsym_func_void);
1917 FALLBAK(_sym_glClearStencil, glsym_func_void);
1918
1919 FINDSYM(_sym_glColorMask, "glColorMask", glsym_func_void);
1920 FALLBAK(_sym_glColorMask, glsym_func_void);
1921
1922 FINDSYM(_sym_glCompileShader, "glCompileShader", glsym_func_void);
1923 FALLBAK(_sym_glCompileShader, glsym_func_void);
1924
1925 FINDSYM(_sym_glCompressedTexImage2D, "glCompressedTexImage2D", glsym_func_void);
1926 FALLBAK(_sym_glCompressedTexImage2D, glsym_func_void);
1927
1928 FINDSYM(_sym_glCompressedTexSubImage2D, "glCompressedTexSubImage2D", glsym_func_void);
1929 FALLBAK(_sym_glCompressedTexSubImage2D, glsym_func_void);
1930
1931 FINDSYM(_sym_glCopyTexImage2D, "glCopyTexImage2D", glsym_func_void);
1932 FALLBAK(_sym_glCopyTexImage2D, glsym_func_void);
1933
1934 FINDSYM(_sym_glCopyTexSubImage2D, "glCopyTexSubImage2D", glsym_func_void);
1935 FALLBAK(_sym_glCopyTexSubImage2D, glsym_func_void);
1936
1937 FINDSYM(_sym_glCreateProgram, "glCreateProgram", glsym_func_uint);
1938 FALLBAK(_sym_glCreateProgram, glsym_func_uint);
1939
1940 FINDSYM(_sym_glCreateShader, "glCreateShader", glsym_func_uint);
1941 FALLBAK(_sym_glCreateShader, glsym_func_uint);
1942
1943 FINDSYM(_sym_glCullFace, "glCullFace", glsym_func_void);
1944 FALLBAK(_sym_glCullFace, glsym_func_void);
1945
1946 FINDSYM(_sym_glDeleteBuffers, "glDeleteBuffers", glsym_func_void);
1947 FALLBAK(_sym_glDeleteBuffers, glsym_func_void);
1948
1949 FINDSYM(_sym_glDeleteFramebuffers, "glDeleteFramebuffers", glsym_func_void);
1950 FALLBAK(_sym_glDeleteFramebuffers, glsym_func_void);
1951
1952 FINDSYM(_sym_glDeleteProgram, "glDeleteProgram", glsym_func_void);
1953 FALLBAK(_sym_glDeleteProgram, glsym_func_void);
1954
1955 FINDSYM(_sym_glDeleteRenderbuffers, "glDeleteRenderbuffers", glsym_func_void);
1956 FALLBAK(_sym_glDeleteRenderbuffers, glsym_func_void);
1957
1958 FINDSYM(_sym_glDeleteShader, "glDeleteShader", glsym_func_void);
1959 FALLBAK(_sym_glDeleteShader, glsym_func_void);
1960
1961 FINDSYM(_sym_glDeleteTextures, "glDeleteTextures", glsym_func_void);
1962 FALLBAK(_sym_glDeleteTextures, glsym_func_void);
1963
1964 FINDSYM(_sym_glDepthFunc, "glDepthFunc", glsym_func_void);
1965 FALLBAK(_sym_glDepthFunc, glsym_func_void);
1966
1967 FINDSYM(_sym_glDepthMask, "glDepthMask", glsym_func_void);
1968 FALLBAK(_sym_glDepthMask, glsym_func_void);
1969
1970 FINDSYM(_sym_glDepthRangef, "glDepthRangef", glsym_func_void);
1971 FINDSYM(_sym_glDepthRangef, "glDepthRange", glsym_func_void);
1972 FALLBAK(_sym_glDepthRangef, glsym_func_void);
1973
1974 FINDSYM(_sym_glDetachShader, "glDetachShader", glsym_func_void);
1975 FALLBAK(_sym_glDetachShader, glsym_func_void);
1976
1977 FINDSYM(_sym_glDisable, "glDisable", glsym_func_void);
1978 FALLBAK(_sym_glDisable, glsym_func_void);
1979
1980 FINDSYM(_sym_glDisableVertexAttribArray, "glDisableVertexAttribArray", glsym_func_void);
1981 FALLBAK(_sym_glDisableVertexAttribArray, glsym_func_void);
1982
1983 FINDSYM(_sym_glDrawArrays, "glDrawArrays", glsym_func_void);
1984 FALLBAK(_sym_glDrawArrays, glsym_func_void);
1985
1986 FINDSYM(_sym_glDrawElements, "glDrawElements", glsym_func_void);
1987 FALLBAK(_sym_glDrawElements, glsym_func_void);
1988
1989 FINDSYM(_sym_glEnable, "glEnable", glsym_func_void);
1990 FALLBAK(_sym_glEnable, glsym_func_void);
1991
1992 FINDSYM(_sym_glEnableVertexAttribArray, "glEnableVertexAttribArray", glsym_func_void);
1993 FALLBAK(_sym_glEnableVertexAttribArray, glsym_func_void);
1994
1995 FINDSYM(_sym_glFinish, "glFinish", glsym_func_void);
1996 FALLBAK(_sym_glFinish, glsym_func_void);
1997
1998 FINDSYM(_sym_glFlush, "glFlush", glsym_func_void);
1999 FALLBAK(_sym_glFlush, glsym_func_void);
2000
2001 FINDSYM(_sym_glFramebufferRenderbuffer, "glFramebufferRenderbuffer", glsym_func_void);
2002 FALLBAK(_sym_glFramebufferRenderbuffer, glsym_func_void);
2003
2004 FINDSYM(_sym_glFramebufferTexture2D, "glFramebufferTexture2D", glsym_func_void);
2005 FALLBAK(_sym_glFramebufferTexture2D, glsym_func_void);
2006
2007 FINDSYM(_sym_glFrontFace, "glFrontFace", glsym_func_void);
2008 FALLBAK(_sym_glFrontFace, glsym_func_void);
2009
2010 FINDSYM(_sym_glGenBuffers, "glGenBuffers", glsym_func_void);
2011 FALLBAK(_sym_glGenBuffers, glsym_func_void);
2012
2013 FINDSYM(_sym_glGenerateMipmap, "glGenerateMipmap", glsym_func_void);
2014 FALLBAK(_sym_glGenerateMipmap, glsym_func_void);
2015
2016 FINDSYM(_sym_glGenFramebuffers, "glGenFramebuffers", glsym_func_void);
2017 FALLBAK(_sym_glGenFramebuffers, glsym_func_void);
2018
2019 FINDSYM(_sym_glGenRenderbuffers, "glGenRenderbuffers", glsym_func_void);
2020 FALLBAK(_sym_glGenRenderbuffers, glsym_func_void);
2021
2022 FINDSYM(_sym_glGenTextures, "glGenTextures", glsym_func_void);
2023 FALLBAK(_sym_glGenTextures, glsym_func_void);
2024
2025 FINDSYM(_sym_glGetActiveAttrib, "glGetActiveAttrib", glsym_func_void);
2026 FALLBAK(_sym_glGetActiveAttrib, glsym_func_void);
2027
2028 FINDSYM(_sym_glGetActiveUniform, "glGetActiveUniform", glsym_func_void);
2029 FALLBAK(_sym_glGetActiveUniform, glsym_func_void);
2030
2031 FINDSYM(_sym_glGetAttachedShaders, "glGetAttachedShaders", glsym_func_void);
2032 FALLBAK(_sym_glGetAttachedShaders, glsym_func_void);
2033
2034 FINDSYM(_sym_glGetAttribLocation, "glGetAttribLocation", glsym_func_int);
2035 FALLBAK(_sym_glGetAttribLocation, glsym_func_int);
2036
2037 FINDSYM(_sym_glGetBooleanv, "glGetBooleanv", glsym_func_void);
2038 FALLBAK(_sym_glGetBooleanv, glsym_func_void);
2039
2040 FINDSYM(_sym_glGetBufferParameteriv, "glGetBufferParameteriv", glsym_func_void);
2041 FALLBAK(_sym_glGetBufferParameteriv, glsym_func_void);
2042
2043 FINDSYM(_sym_glGetError, "glGetError", glsym_func_uint);
2044 FALLBAK(_sym_glGetError, glsym_func_uint);
2045
2046 FINDSYM(_sym_glGetFloatv, "glGetFloatv", glsym_func_void);
2047 FALLBAK(_sym_glGetFloatv, glsym_func_void);
2048
2049 FINDSYM(_sym_glGetFramebufferAttachmentParameteriv, "glGetFramebufferAttachmentParameteriv", glsym_func_void);
2050 FALLBAK(_sym_glGetFramebufferAttachmentParameteriv, glsym_func_void);
2051
2052 FINDSYM(_sym_glGetIntegerv, "glGetIntegerv", glsym_func_void);
2053 FALLBAK(_sym_glGetIntegerv, glsym_func_void);
2054
2055 FINDSYM(_sym_glGetProgramiv, "glGetProgramiv", glsym_func_void);
2056 FALLBAK(_sym_glGetProgramiv, glsym_func_void);
2057
2058 FINDSYM(_sym_glGetProgramInfoLog, "glGetProgramInfoLog", glsym_func_void);
2059 FALLBAK(_sym_glGetProgramInfoLog, glsym_func_void);
2060
2061 FINDSYM(_sym_glGetRenderbufferParameteriv, "glGetRenderbufferParameteriv", glsym_func_void);
2062 FALLBAK(_sym_glGetRenderbufferParameteriv, glsym_func_void);
2063
2064 FINDSYM(_sym_glGetShaderiv, "glGetShaderiv", glsym_func_void);
2065 FALLBAK(_sym_glGetShaderiv, glsym_func_void);
2066
2067 FINDSYM(_sym_glGetShaderInfoLog, "glGetShaderInfoLog", glsym_func_void);
2068 FALLBAK(_sym_glGetShaderInfoLog, glsym_func_void);
2069
2070 FINDSYM(_sym_glGetShaderPrecisionFormat, "glGetShaderPrecisionFormat", glsym_func_void);
2071 FALLBAK(_sym_glGetShaderPrecisionFormat, glsym_func_void);
2072
2073 FINDSYM(_sym_glGetShaderSource, "glGetShaderSource", glsym_func_void);
2074 FALLBAK(_sym_glGetShaderSource, glsym_func_void);
2075
2076 FINDSYM(_sym_glGetString, "glGetString", glsym_func_uchar_ptr);
2077 FALLBAK(_sym_glGetString, glsym_func_const_uchar_ptr);
2078
2079 FINDSYM(_sym_glGetTexParameterfv, "glGetTexParameterfv", glsym_func_void);
2080 FALLBAK(_sym_glGetTexParameterfv, glsym_func_void);
2081
2082 FINDSYM(_sym_glGetTexParameteriv, "glGetTexParameteriv", glsym_func_void);
2083 FALLBAK(_sym_glGetTexParameteriv, glsym_func_void);
2084
2085 FINDSYM(_sym_glGetUniformfv, "glGetUniformfv", glsym_func_void);
2086 FALLBAK(_sym_glGetUniformfv, glsym_func_void);
2087
2088 FINDSYM(_sym_glGetUniformiv, "glGetUniformiv", glsym_func_void);
2089 FALLBAK(_sym_glGetUniformiv, glsym_func_void);
2090
2091 FINDSYM(_sym_glGetUniformLocation, "glGetUniformLocation", glsym_func_int);
2092 FALLBAK(_sym_glGetUniformLocation, glsym_func_int);
2093
2094 FINDSYM(_sym_glGetVertexAttribfv, "glGetVertexAttribfv", glsym_func_void);
2095 FALLBAK(_sym_glGetVertexAttribfv, glsym_func_void);
2096
2097 FINDSYM(_sym_glGetVertexAttribiv, "glGetVertexAttribiv", glsym_func_void);
2098 FALLBAK(_sym_glGetVertexAttribiv, glsym_func_void);
2099
2100 FINDSYM(_sym_glGetVertexAttribPointerv, "glGetVertexAttribPointerv", glsym_func_void);
2101 FALLBAK(_sym_glGetVertexAttribPointerv, glsym_func_void);
2102
2103 FINDSYM(_sym_glHint, "glHint", glsym_func_void);
2104 FALLBAK(_sym_glHint, glsym_func_void);
2105
2106 FINDSYM(_sym_glIsBuffer, "glIsBuffer", glsym_func_uchar);
2107 FALLBAK(_sym_glIsBuffer, glsym_func_uchar);
2108
2109 FINDSYM(_sym_glIsEnabled, "glIsEnabled", glsym_func_uchar);
2110 FALLBAK(_sym_glIsEnabled, glsym_func_uchar);
2111
2112 FINDSYM(_sym_glIsFramebuffer, "glIsFramebuffer", glsym_func_uchar);
2113 FALLBAK(_sym_glIsFramebuffer, glsym_func_uchar);
2114
2115 FINDSYM(_sym_glIsProgram, "glIsProgram", glsym_func_uchar);
2116 FALLBAK(_sym_glIsProgram, glsym_func_uchar);
2117
2118 FINDSYM(_sym_glIsRenderbuffer, "glIsRenderbuffer", glsym_func_uchar);
2119 FALLBAK(_sym_glIsRenderbuffer, glsym_func_uchar);
2120
2121 FINDSYM(_sym_glIsShader, "glIsShader", glsym_func_uchar);
2122 FALLBAK(_sym_glIsShader, glsym_func_uchar);
2123
2124 FINDSYM(_sym_glIsTexture, "glIsTexture", glsym_func_uchar);
2125 FALLBAK(_sym_glIsTexture, glsym_func_uchar);
2126
2127 FINDSYM(_sym_glLineWidth, "glLineWidth", glsym_func_void);
2128 FALLBAK(_sym_glLineWidth, glsym_func_void);
2129
2130 FINDSYM(_sym_glLinkProgram, "glLinkProgram", glsym_func_void);
2131 FALLBAK(_sym_glLinkProgram, glsym_func_void);
2132
2133 FINDSYM(_sym_glPixelStorei, "glPixelStorei", glsym_func_void);
2134 FALLBAK(_sym_glPixelStorei, glsym_func_void);
2135
2136 FINDSYM(_sym_glPolygonOffset, "glPolygonOffset", glsym_func_void);
2137 FALLBAK(_sym_glPolygonOffset, glsym_func_void);
2138
2139 FINDSYM(_sym_glReadPixels, "glReadPixels", glsym_func_void);
2140 FALLBAK(_sym_glReadPixels, glsym_func_void);
2141
2142 FINDSYM(_sym_glReleaseShaderCompiler, "glReleaseShaderCompiler", glsym_func_void);
2143 FALLBAK(_sym_glReleaseShaderCompiler, glsym_func_void);
2144
2145 FINDSYM(_sym_glRenderbufferStorage, "glRenderbufferStorage", glsym_func_void);
2146 FALLBAK(_sym_glRenderbufferStorage, glsym_func_void);
2147
2148 FINDSYM(_sym_glSampleCoverage, "glSampleCoverage", glsym_func_void);
2149 FALLBAK(_sym_glSampleCoverage, glsym_func_void);
2150
2151 FINDSYM(_sym_glScissor, "glScissor", glsym_func_void);
2152 FALLBAK(_sym_glScissor, glsym_func_void);
2153
2154 FINDSYM(_sym_glShaderBinary, "glShaderBinary", glsym_func_void);
2155 FALLBAK(_sym_glShaderBinary, glsym_func_void);
2156
2157 FINDSYM(_sym_glShaderSource, "glShaderSource", glsym_func_void);
2158 FALLBAK(_sym_glShaderSource, glsym_func_void);
2159
2160 FINDSYM(_sym_glStencilFunc, "glStencilFunc", glsym_func_void);
2161 FALLBAK(_sym_glStencilFunc, glsym_func_void);
2162
2163 FINDSYM(_sym_glStencilFuncSeparate, "glStencilFuncSeparate", glsym_func_void);
2164 FALLBAK(_sym_glStencilFuncSeparate, glsym_func_void);
2165
2166 FINDSYM(_sym_glStencilMask, "glStencilMask", glsym_func_void);
2167 FALLBAK(_sym_glStencilMask, glsym_func_void);
2168
2169 FINDSYM(_sym_glStencilMaskSeparate, "glStencilMaskSeparate", glsym_func_void);
2170 FALLBAK(_sym_glStencilMaskSeparate, glsym_func_void);
2171
2172 FINDSYM(_sym_glStencilOp, "glStencilOp", glsym_func_void);
2173 FALLBAK(_sym_glStencilOp, glsym_func_void);
2174
2175 FINDSYM(_sym_glStencilOpSeparate, "glStencilOpSeparate", glsym_func_void);
2176 FALLBAK(_sym_glStencilOpSeparate, glsym_func_void);
2177
2178 FINDSYM(_sym_glTexImage2D, "glTexImage2D", glsym_func_void);
2179 FALLBAK(_sym_glTexImage2D, glsym_func_void);
2180
2181 FINDSYM(_sym_glTexParameterf, "glTexParameterf", glsym_func_void);
2182 FALLBAK(_sym_glTexParameterf, glsym_func_void);
2183
2184 FINDSYM(_sym_glTexParameterfv, "glTexParameterfv", glsym_func_void);
2185 FALLBAK(_sym_glTexParameterfv, glsym_func_void);
2186
2187 FINDSYM(_sym_glTexParameteri, "glTexParameteri", glsym_func_void);
2188 FALLBAK(_sym_glTexParameteri, glsym_func_void);
2189
2190 FINDSYM(_sym_glTexParameteriv, "glTexParameteriv", glsym_func_void);
2191 FALLBAK(_sym_glTexParameteriv, glsym_func_void);
2192
2193 FINDSYM(_sym_glTexSubImage2D, "glTexSubImage2D", glsym_func_void);
2194 FALLBAK(_sym_glTexSubImage2D, glsym_func_void);
2195
2196 FINDSYM(_sym_glUniform1f, "glUniform1f", glsym_func_void);
2197 FALLBAK(_sym_glUniform1f, glsym_func_void);
2198
2199 FINDSYM(_sym_glUniform1fv, "glUniform1fv", glsym_func_void);
2200 FALLBAK(_sym_glUniform1fv, glsym_func_void);
2201
2202 FINDSYM(_sym_glUniform1i, "glUniform1i", glsym_func_void);
2203 FALLBAK(_sym_glUniform1i, glsym_func_void);
2204
2205 FINDSYM(_sym_glUniform1iv, "glUniform1iv", glsym_func_void);
2206 FALLBAK(_sym_glUniform1iv, glsym_func_void);
2207
2208 FINDSYM(_sym_glUniform2f, "glUniform2f", glsym_func_void);
2209 FALLBAK(_sym_glUniform2f, glsym_func_void);
2210
2211 FINDSYM(_sym_glUniform2fv, "glUniform2fv", glsym_func_void);
2212 FALLBAK(_sym_glUniform2fv, glsym_func_void);
2213
2214 FINDSYM(_sym_glUniform2i, "glUniform2i", glsym_func_void);
2215 FALLBAK(_sym_glUniform2i, glsym_func_void);
2216
2217 FINDSYM(_sym_glUniform2iv, "glUniform2iv", glsym_func_void);
2218 FALLBAK(_sym_glUniform2iv, glsym_func_void);
2219
2220 FINDSYM(_sym_glUniform3f, "glUniform3f", glsym_func_void);
2221 FALLBAK(_sym_glUniform3f, glsym_func_void);
2222
2223 FINDSYM(_sym_glUniform3fv, "glUniform3fv", glsym_func_void);
2224 FALLBAK(_sym_glUniform3fv, glsym_func_void);
2225
2226 FINDSYM(_sym_glUniform3i, "glUniform3i", glsym_func_void);
2227 FALLBAK(_sym_glUniform3i, glsym_func_void);
2228
2229 FINDSYM(_sym_glUniform3iv, "glUniform3iv", glsym_func_void);
2230 FALLBAK(_sym_glUniform3iv, glsym_func_void);
2231
2232 FINDSYM(_sym_glUniform4f, "glUniform4f", glsym_func_void);
2233 FALLBAK(_sym_glUniform4f, glsym_func_void);
2234
2235 FINDSYM(_sym_glUniform4fv, "glUniform4fv", glsym_func_void);
2236 FALLBAK(_sym_glUniform4fv, glsym_func_void);
2237
2238 FINDSYM(_sym_glUniform4i, "glUniform4i", glsym_func_void);
2239 FALLBAK(_sym_glUniform4i, glsym_func_void);
2240
2241 FINDSYM(_sym_glUniform4iv, "glUniform4iv", glsym_func_void);
2242 FALLBAK(_sym_glUniform4iv, glsym_func_void);
2243
2244 FINDSYM(_sym_glUniformMatrix2fv, "glUniformMatrix2fv", glsym_func_void);
2245 FALLBAK(_sym_glUniformMatrix2fv, glsym_func_void);
2246
2247 FINDSYM(_sym_glUniformMatrix3fv, "glUniformMatrix3fv", glsym_func_void);
2248 FALLBAK(_sym_glUniformMatrix3fv, glsym_func_void);
2249
2250 FINDSYM(_sym_glUniformMatrix4fv, "glUniformMatrix4fv", glsym_func_void);
2251 FALLBAK(_sym_glUniformMatrix4fv, glsym_func_void);
2252
2253 FINDSYM(_sym_glUseProgram, "glUseProgram", glsym_func_void);
2254 FALLBAK(_sym_glUseProgram, glsym_func_void);
2255
2256 FINDSYM(_sym_glValidateProgram, "glValidateProgram", glsym_func_void);
2257 FALLBAK(_sym_glValidateProgram, glsym_func_void);
2258
2259 FINDSYM(_sym_glVertexAttrib1f, "glVertexAttrib1f", glsym_func_void);
2260 FALLBAK(_sym_glVertexAttrib1f, glsym_func_void);
2261
2262 FINDSYM(_sym_glVertexAttrib1fv, "glVertexAttrib1fv", glsym_func_void);
2263 FALLBAK(_sym_glVertexAttrib1fv, glsym_func_void);
2264
2265 FINDSYM(_sym_glVertexAttrib2f, "glVertexAttrib2f", glsym_func_void);
2266 FALLBAK(_sym_glVertexAttrib2f, glsym_func_void);
2267
2268 FINDSYM(_sym_glVertexAttrib2fv, "glVertexAttrib2fv", glsym_func_void);
2269 FALLBAK(_sym_glVertexAttrib2fv, glsym_func_void);
2270
2271 FINDSYM(_sym_glVertexAttrib3f, "glVertexAttrib3f", glsym_func_void);
2272 FALLBAK(_sym_glVertexAttrib3f, glsym_func_void);
2273
2274 FINDSYM(_sym_glVertexAttrib3fv, "glVertexAttrib3fv", glsym_func_void);
2275 FALLBAK(_sym_glVertexAttrib3fv, glsym_func_void);
2276
2277 FINDSYM(_sym_glVertexAttrib4f, "glVertexAttrib4f", glsym_func_void);
2278 FALLBAK(_sym_glVertexAttrib4f, glsym_func_void);
2279
2280 FINDSYM(_sym_glVertexAttrib4fv, "glVertexAttrib4fv", glsym_func_void);
2281 FALLBAK(_sym_glVertexAttrib4fv, glsym_func_void);
2282
2283 FINDSYM(_sym_glVertexAttribPointer, "glVertexAttribPointer", glsym_func_void);
2284 FALLBAK(_sym_glVertexAttribPointer, glsym_func_void);
2285
2286 FINDSYM(_sym_glViewport, "glViewport", glsym_func_void);
2287 FALLBAK(_sym_glViewport, glsym_func_void);
2288
2289#undef FINDSYM
2290#undef FALLBAK
2291
2292 // Checking to see if this function exists is a poor but reasonable way to
2293 // check if it's gles but it works for now
2294 if (_sym_glGetShaderPrecisionFormat != (typeof(_sym_glGetShaderPrecisionFormat))sym_missing )
2295 {
2296 DBG("GL Library is GLES.");
2297 gl_lib_is_gles = 1;
2298 }
2299
2300 return 1;
2301}
2302
2303//--------------------------------------------------------------//
2304// Wrapped GL APIs to handle desktop compatibility
2305
2306// Stripping precision code from GLES shader for desktop compatibility
2307// Code adopted from Meego GL code. Temporary Fix.
2308static const char *
2309opengl_strtok(const char *s, int *n, char **saveptr, char *prevbuf)
2310{
2311 char *start;
2312 char *ret;
2313 char *p;
2314 int retlen;
2315 static const char *delim = " \t\n\r/";
2316
2317 if (prevbuf) free(prevbuf);
2318
2319 if (s)
2320 *saveptr = (char *)s;
2321 else
2322 {
2323 if (!(*saveptr) || !(*n))
2324 return NULL;
2325 s = *saveptr;
2326 }
2327
2328 for (; *n && strchr(delim, *s); s++, (*n)--)
2329 {
2330 if (*s == '/' && *n > 1)
2331 {
2332 if (s[1] == '/')
2333 {
2334 do
2335 {
2336 s++, (*n)--;
2337 }
2338 while (*n > 1 && s[1] != '\n' && s[1] != '\r');
2339 }
2340 else if (s[1] == '*')
2341 {
2342 do
2343 {
2344 s++, (*n)--;
2345 }
2346 while (*n > 2 && (s[1] != '*' || s[2] != '/'));
2347 s++, (*n)--;
2348 }
2349 }
2350 }
2351
2352 start = (char *)s;
2353 for (; *n && *s && !strchr(delim, *s); s++, (*n)--);
2354 if (*n > 0) s++, (*n)--;
2355
2356 *saveptr = (char *)s;
2357
2358 retlen = s - start;
2359 ret = malloc(retlen + 1);
2360 p = ret;
2361
2362 while (retlen > 0)
2363 {
2364 if (*start == '/' && retlen > 1)
2365 {
2366 if (start[1] == '/')
2367 {
2368 do
2369 {
2370 start++, retlen--;
2371 }
2372 while (retlen > 1 && start[1] != '\n' && start[1] != '\r');
2373 start++, retlen--;
2374 continue;
2375 }
2376 else if (start[1] == '*')
2377 {
2378 do
2379 {
2380 start++, retlen--;
2381 }
2382 while (retlen > 2 && (start[1] != '*' || start[2] != '/'));
2383 start += 3, retlen -= 3;
2384 continue;
2385 }
2386 }
2387 *(p++) = *(start++), retlen--;
2388 }
2389
2390 *p = 0;
2391 return ret;
2392}
2393
2394static char *
2395patch_gles_shader(const char *source, int length, int *patched_len)
2396{
2397 char *saveptr = NULL;
2398 char *sp;
2399 char *p = NULL;
2400
2401 if (!length) length = strlen(source);
2402
2403 *patched_len = 0;
2404 int patched_size = length;
2405 char *patched = malloc(patched_size + 1);
2406
2407 if (!patched) return NULL;
2408
2409 p = (char *)opengl_strtok(source, &length, &saveptr, NULL);
2410 for (; p; p = (char *)opengl_strtok(0, &length, &saveptr, p))
2411 {
2412 if (!strncmp(p, "lowp", 4) || !strncmp(p, "mediump", 7) || !strncmp(p, "highp", 5))
2413 {
2414 continue;
2415 }
2416 else if (!strncmp(p, "precision", 9))
2417 {
2418 while ((p = (char *)opengl_strtok(0, &length, &saveptr, p)) && !strchr(p, ';'));
2419 }
2420 else
2421 {
2422 if (!strncmp(p, "gl_MaxVertexUniformVectors", 26))
2423 {
2424 p = "(gl_MaxVertexUniformComponents / 4)";
2425 }
2426 else if (!strncmp(p, "gl_MaxFragmentUniformVectors", 28))
2427 {
2428 p = "(gl_MaxFragmentUniformComponents / 4)";
2429 }
2430 else if (!strncmp(p, "gl_MaxVaryingVectors", 20))
2431 {
2432 p = "(gl_MaxVaryingFloats / 4)";
2433 }
2434
2435 int new_len = strlen(p);
2436 if (*patched_len + new_len > patched_size)
2437 {
2438 patched_size *= 2;
2439 patched = realloc(patched, patched_size + 1);
2440
2441 if (!patched)
2442 return NULL;
2443 }
2444
2445 memcpy(patched + *patched_len, p, new_len);
2446 *patched_len += new_len;
2447 }
2448 }
2449
2450 patched[*patched_len] = 0;
2451 /* check that we don't leave dummy preprocessor lines */
2452 for (sp = patched; *sp;)
2453 {
2454 for (; *sp == ' ' || *sp == '\t'; sp++);
2455 if (!strncmp(sp, "#define", 7))
2456 {
2457 for (p = sp + 7; *p == ' ' || *p == '\t'; p++);
2458 if (*p == '\n' || *p == '\r' || *p == '/')
2459 {
2460 memset(sp, 0x20, 7);
2461 }
2462 }
2463 for (; *sp && *sp != '\n' && *sp != '\r'; sp++);
2464 for (; *sp == '\n' || *sp == '\r'; sp++);
2465 }
2466 return patched;
2467}
2468
2469static void
2470evgl_glShaderSource(GLuint shader, GLsizei count, const char** string, const GLint* length)
2471{
2472 int i = 0, len = 0;
2473
2474 char **s = malloc(count * sizeof(char*));
2475 GLint *l = malloc(count * sizeof(GLint));
2476
2477 memset(s, 0, count * sizeof(char*));
2478 memset(l, 0, count * sizeof(GLint));
2479
2480 for (i = 0; i < count; ++i)
2481 {
2482 if (length)
2483 {
2484 len = length[i];
2485 if (len < 0)
2486 len = string[i] ? strlen(string[i]) : 0;
2487 }
2488 else
2489 len = string[i] ? strlen(string[i]) : 0;
2490
2491 if (string[i])
2492 {
2493 s[i] = patch_gles_shader(string[i], len, &l[i]);
2494 if (!s[i])
2495 {
2496 while(i)
2497 free(s[--i]);
2498 free(l);
2499 free(s);
2500
2501 DBG("Patching Shader Failed.");
2502 return;
2503 }
2504 }
2505 else
2506 {
2507 s[i] = NULL;
2508 l[i] = 0;
2509 }
2510 }
2511
2512 _sym_glShaderSource(shader, count, (const char **)s, l);
2513
2514 while(i)
2515 free(s[--i]);
2516 free(l);
2517 free(s);
2518}
2519
2520
2521static void
2522evgl_glGetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision)
2523{
2524 if (range)
2525 {
2526 range[0] = -126; // floor(log2(FLT_MIN))
2527 range[1] = 127; // floor(log2(FLT_MAX))
2528 }
2529 if (precision)
2530 {
2531 precision[0] = 24; // floor(-log2((1.0/16777218.0)));
2532 }
2533 return;
2534 shadertype = precisiontype = 0;
2535}
2536
2537static void
2538evgl_glReleaseShaderCompiler(void)
2539{
2540 DBG("Not supported in Desktop GL");
2541 return;
2542}
2543
2544static void
2545evgl_glShaderBinary(GLsizei n __UNUSED__, const GLuint* shaders __UNUSED__, GLenum binaryformat __UNUSED__, const void* binary __UNUSED__, GLsizei length __UNUSED__)
2546{
2547 // FIXME: need to dlsym/getprocaddress for this
2548 DBG("Not supported in Desktop GL");
2549 return;
2550 //n = binaryformat = length = 0;
2551 //shaders = binary = 0;
2552}
2553#endif
2554//--------------------------------------------------------------//
2555
2556
2557#ifdef EVAS_GL
2558static void
2559override_gl_apis(Evas_GL_API *api)
2560{
2561
2562 api->version = EVAS_GL_API_VERSION;
2563
2564#define ORD(f) EVAS_API_OVERRIDE(f, api, _sym_)
2565 // GLES 2.0
2566 ORD(glActiveTexture);
2567 ORD(glAttachShader);
2568 ORD(glBindAttribLocation);
2569 ORD(glBindBuffer);
2570 ORD(glBindTexture);
2571 ORD(glBlendColor);
2572 ORD(glBlendEquation);
2573 ORD(glBlendEquationSeparate);
2574 ORD(glBlendFunc);
2575 ORD(glBlendFuncSeparate);
2576 ORD(glBufferData);
2577 ORD(glBufferSubData);
2578 ORD(glCheckFramebufferStatus);
2579 ORD(glClear);
2580 ORD(glClearColor);
2581 ORD(glClearDepthf);
2582 ORD(glClearStencil);
2583 ORD(glColorMask);
2584 ORD(glCompileShader);
2585 ORD(glCompressedTexImage2D);
2586 ORD(glCompressedTexSubImage2D);
2587 ORD(glCopyTexImage2D);
2588 ORD(glCopyTexSubImage2D);
2589 ORD(glCreateProgram);
2590 ORD(glCreateShader);
2591 ORD(glCullFace);
2592 ORD(glDeleteBuffers);
2593 ORD(glDeleteFramebuffers);
2594 ORD(glDeleteProgram);
2595 ORD(glDeleteRenderbuffers);
2596 ORD(glDeleteShader);
2597 ORD(glDeleteTextures);
2598 ORD(glDepthFunc);
2599 ORD(glDepthMask);
2600 ORD(glDepthRangef);
2601 ORD(glDetachShader);
2602 ORD(glDisable);
2603 ORD(glDisableVertexAttribArray);
2604 ORD(glDrawArrays);
2605 ORD(glDrawElements);
2606 ORD(glEnable);
2607 ORD(glEnableVertexAttribArray);
2608 ORD(glFinish);
2609 ORD(glFlush);
2610 ORD(glFramebufferRenderbuffer);
2611 ORD(glFramebufferTexture2D);
2612 ORD(glFrontFace);
2613 ORD(glGenBuffers);
2614 ORD(glGenerateMipmap);
2615 ORD(glGenFramebuffers);
2616 ORD(glGenRenderbuffers);
2617 ORD(glGenTextures);
2618 ORD(glGetActiveAttrib);
2619 ORD(glGetActiveUniform);
2620 ORD(glGetAttachedShaders);
2621 ORD(glGetAttribLocation);
2622 ORD(glGetBooleanv);
2623 ORD(glGetBufferParameteriv);
2624 ORD(glGetError);
2625 ORD(glGetFloatv);
2626 ORD(glGetFramebufferAttachmentParameteriv);
2627 ORD(glGetIntegerv);
2628 ORD(glGetProgramiv);
2629 ORD(glGetProgramInfoLog);
2630 ORD(glGetRenderbufferParameteriv);
2631 ORD(glGetShaderiv);
2632 ORD(glGetShaderInfoLog);
2633 ORD(glGetShaderPrecisionFormat);
2634 ORD(glGetShaderSource);
2635 ORD(glGetString); // FIXME
2636 ORD(glGetTexParameterfv);
2637 ORD(glGetTexParameteriv);
2638 ORD(glGetUniformfv);
2639 ORD(glGetUniformiv);
2640 ORD(glGetUniformLocation);
2641 ORD(glGetVertexAttribfv);
2642 ORD(glGetVertexAttribiv);
2643 ORD(glGetVertexAttribPointerv);
2644 ORD(glHint);
2645 ORD(glIsBuffer);
2646 ORD(glIsEnabled);
2647 ORD(glIsFramebuffer);
2648 ORD(glIsProgram);
2649 ORD(glIsRenderbuffer);
2650 ORD(glIsShader);
2651 ORD(glIsTexture);
2652 ORD(glLineWidth);
2653 ORD(glLinkProgram);
2654 ORD(glPixelStorei);
2655 ORD(glPolygonOffset);
2656 ORD(glReadPixels);
2657 ORD(glReleaseShaderCompiler);
2658 ORD(glRenderbufferStorage);
2659 ORD(glSampleCoverage);
2660 ORD(glScissor);
2661 ORD(glShaderBinary);
2662 ORD(glShaderSource);
2663 ORD(glStencilFunc);
2664 ORD(glStencilFuncSeparate);
2665 ORD(glStencilMask);
2666 ORD(glStencilMaskSeparate);
2667 ORD(glStencilOp);
2668 ORD(glStencilOpSeparate);
2669 ORD(glTexImage2D);
2670 ORD(glTexParameterf);
2671 ORD(glTexParameterfv);
2672 ORD(glTexParameteri);
2673 ORD(glTexParameteriv);
2674 ORD(glTexSubImage2D);
2675 ORD(glUniform1f);
2676 ORD(glUniform1fv);
2677 ORD(glUniform1i);
2678 ORD(glUniform1iv);
2679 ORD(glUniform2f);
2680 ORD(glUniform2fv);
2681 ORD(glUniform2i);
2682 ORD(glUniform2iv);
2683 ORD(glUniform3f);
2684 ORD(glUniform3fv);
2685 ORD(glUniform3i);
2686 ORD(glUniform3iv);
2687 ORD(glUniform4f);
2688 ORD(glUniform4fv);
2689 ORD(glUniform4i);
2690 ORD(glUniform4iv);
2691 ORD(glUniformMatrix2fv);
2692 ORD(glUniformMatrix3fv);
2693 ORD(glUniformMatrix4fv);
2694 ORD(glUseProgram);
2695 ORD(glValidateProgram);
2696 ORD(glVertexAttrib1f);
2697 ORD(glVertexAttrib1fv);
2698 ORD(glVertexAttrib2f);
2699 ORD(glVertexAttrib2fv);
2700 ORD(glVertexAttrib3f);
2701 ORD(glVertexAttrib3fv);
2702 ORD(glVertexAttrib4f);
2703 ORD(glVertexAttrib4fv);
2704 ORD(glVertexAttribPointer);
2705 ORD(glViewport);
2706#undef ORD
2707
2708#define ORD(f) EVAS_API_OVERRIDE(f, &gl_funcs, evgl_)
2709 if (!gl_lib_is_gles)
2710 {
2711 // Override functions wrapped by Evas_GL
2712 // GLES2.0 API compat on top of desktop gl
2713 ORD(glGetShaderPrecisionFormat);
2714 ORD(glReleaseShaderCompiler);
2715 ORD(glShaderBinary);
2716 }
2717
2718 ORD(glShaderSource); // Do precision stripping in both cases
2719#undef ORD
2720}
2721#endif
2722
2723//-------------------------------------------//
2724static int
2725gl_lib_init(void)
2726{
2727#ifdef EVAS_GL
2728 // dlopen OSMesa
2729 gl_lib_handle = dlopen("libOSMesa.so.1", RTLD_NOW);
2730 if (!gl_lib_handle) gl_lib_handle = dlopen("libOSMesa.so", RTLD_NOW);
2731 if (!gl_lib_handle)
2732 {
2733 DBG("Unable to open libOSMesa: %s", dlerror());
2734 return 0;
2735 }
2736
2737 //------------------------------------------------//
2738 if (!glue_sym_init()) return 0;
2739 if (!gl_sym_init()) return 0;
2740
2741 override_gl_apis(&gl_funcs);
2742
2743 return 1;
2744#else
2745 return 0;
2746#endif
2747}
2748
2749
2750static void
2751init_gl(void)
2752{
2753 DBG("Initializing Software OpenGL APIs...\n");
2754
2755 if (!gl_lib_init())
2756 DBG("Unable to support EvasGL in this engine module. Install OSMesa to get it running");
2757 else
2758 {
2759#define ORD(f) EVAS_API_OVERRIDE(f, &func, eng_)
2760 ORD(gl_surface_create);
2761 ORD(gl_surface_destroy);
2762 ORD(gl_context_create);
2763 ORD(gl_context_destroy);
2764 ORD(gl_make_current);
2765 ORD(gl_string_query); // FIXME: Need to implement
2766 ORD(gl_proc_address_get); // FIXME: Need to implement
2767 ORD(gl_native_surface_get);
2768 ORD(gl_api_get);
2769#undef ORD
2770 }
2771}
2772
2773
1185/* 2774/*
1186 ***** 2775 *****
1187 ** 2776 **
@@ -1201,6 +2790,9 @@ module_open(Evas_Module *em)
1201 EINA_LOG_ERR("Can not create a module log domain."); 2790 EINA_LOG_ERR("Can not create a module log domain.");
1202 return 0; 2791 return 0;
1203 } 2792 }
2793
2794 init_gl();
2795
1204 em->functions = (void *)(&func); 2796 em->functions = (void *)(&func);
1205 cpunum = eina_cpu_count(); 2797 cpunum = eina_cpu_count();
1206 return 1; 2798 return 1;
diff --git a/libraries/evas/src/modules/engines/software_sdl/Makefile.in b/libraries/evas/src/modules/engines/software_sdl/Makefile.in
index d1052c1..f63f3eb 100644
--- a/libraries/evas/src/modules/engines/software_sdl/Makefile.in
+++ b/libraries/evas/src/modules/engines/software_sdl/Makefile.in
@@ -241,8 +241,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
241PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 241PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
242PIXMAN_LIBS = @PIXMAN_LIBS@ 242PIXMAN_LIBS = @PIXMAN_LIBS@
243PKG_CONFIG = @PKG_CONFIG@ 243PKG_CONFIG = @PKG_CONFIG@
244PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
245PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
246PNG_CFLAGS = @PNG_CFLAGS@ 244PNG_CFLAGS = @PNG_CFLAGS@
247PNG_LIBS = @PNG_LIBS@ 245PNG_LIBS = @PNG_LIBS@
248RANLIB = @RANLIB@ 246RANLIB = @RANLIB@
@@ -259,6 +257,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
259VALGRIND_LIBS = @VALGRIND_LIBS@ 257VALGRIND_LIBS = @VALGRIND_LIBS@
260VERSION = @VERSION@ 258VERSION = @VERSION@
261VMAJ = @VMAJ@ 259VMAJ = @VMAJ@
260WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
261WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
262WIN32_CFLAGS = @WIN32_CFLAGS@ 262WIN32_CFLAGS = @WIN32_CFLAGS@
263WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 263WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
264XCB_CFLAGS = @XCB_CFLAGS@ 264XCB_CFLAGS = @XCB_CFLAGS@
@@ -340,6 +340,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
340evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 340evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
341evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 341evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
342evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 342evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
343evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
344evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
345evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
346evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
343evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 347evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
344evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 348evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
345evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 349evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/engines/software_x11/Makefile.in b/libraries/evas/src/modules/engines/software_x11/Makefile.in
index f5c73af..5fd2971 100644
--- a/libraries/evas/src/modules/engines/software_x11/Makefile.in
+++ b/libraries/evas/src/modules/engines/software_x11/Makefile.in
@@ -282,8 +282,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
282PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 282PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
283PIXMAN_LIBS = @PIXMAN_LIBS@ 283PIXMAN_LIBS = @PIXMAN_LIBS@
284PKG_CONFIG = @PKG_CONFIG@ 284PKG_CONFIG = @PKG_CONFIG@
285PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
286PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
287PNG_CFLAGS = @PNG_CFLAGS@ 285PNG_CFLAGS = @PNG_CFLAGS@
288PNG_LIBS = @PNG_LIBS@ 286PNG_LIBS = @PNG_LIBS@
289RANLIB = @RANLIB@ 287RANLIB = @RANLIB@
@@ -300,6 +298,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
300VALGRIND_LIBS = @VALGRIND_LIBS@ 298VALGRIND_LIBS = @VALGRIND_LIBS@
301VERSION = @VERSION@ 299VERSION = @VERSION@
302VMAJ = @VMAJ@ 300VMAJ = @VMAJ@
301WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
302WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
303WIN32_CFLAGS = @WIN32_CFLAGS@ 303WIN32_CFLAGS = @WIN32_CFLAGS@
304WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 304WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
305XCB_CFLAGS = @XCB_CFLAGS@ 305XCB_CFLAGS = @XCB_CFLAGS@
@@ -381,6 +381,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
381evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 381evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
382evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 382evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
383evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 383evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
384evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
385evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
386evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
387evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
384evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 388evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
385evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 389evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
386evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 390evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/engines/software_x11/evas_xlib_outbuf.c b/libraries/evas/src/modules/engines/software_x11/evas_xlib_outbuf.c
index 1b1d3d9..24c45df 100644
--- a/libraries/evas/src/modules/engines/software_x11/evas_xlib_outbuf.c
+++ b/libraries/evas/src/modules/engines/software_x11/evas_xlib_outbuf.c
@@ -579,6 +579,8 @@ evas_software_xlib_outbuf_new_region_for_update(Outbuf *buf, int x, int y, int w
579 free(obr); 579 free(obr);
580 return NULL; 580 return NULL;
581 } 581 }
582 im->cache_entry.w = w;
583 im->cache_entry.h = h;
582 im->cache_entry.flags.alpha |= alpha ? 1 : 0; 584 im->cache_entry.flags.alpha |= alpha ? 1 : 0;
583 evas_cache_image_surface_alloc(&im->cache_entry, w, h); 585 evas_cache_image_surface_alloc(&im->cache_entry, w, h);
584 im->extended_info = obr; 586 im->extended_info = obr;
diff --git a/libraries/evas/src/modules/engines/wayland_egl/Evas_Engine_Wayland_Egl.h b/libraries/evas/src/modules/engines/wayland_egl/Evas_Engine_Wayland_Egl.h
new file mode 100644
index 0000000..92ffe25
--- /dev/null
+++ b/libraries/evas/src/modules/engines/wayland_egl/Evas_Engine_Wayland_Egl.h
@@ -0,0 +1,42 @@
1#ifndef _EVAS_ENGINE_WAYLAND_EGL_H
2#define _EVAS_ENGINE_WAYLAND_EGL_H
3
4#include <wayland-client.h>
5
6typedef struct _Evas_Engine_Info_Wayland_Egl Evas_Engine_Info_Wayland_Egl;
7
8struct _Evas_Engine_Info_Wayland_Egl
9{
10 /* PRIVATE - don't mess with this baby or evas will poke its tongue out */
11 /* at you and make nasty noises */
12 Evas_Engine_Info magic;
13
14 /* engine specific data & parameters it needs to set up */
15 struct {
16 struct wl_display *display;
17 struct wl_surface *surface;
18 int depth;
19 int screen;
20 int rotation;
21 unsigned int destination_alpha : 1;
22 } info;
23 /* engine specific function calls to query stuff about the destination */
24 /* engine (what visual & colormap & depth to use, performance info etc. */
25 struct {
26 int (*best_depth_get) (Evas_Engine_Info_Wayland_Egl *einfo);
27 } func;
28
29 struct {
30 void (*pre_swap) (void *data, Evas *e);
31 void (*post_swap) (void *data, Evas *e);
32
33 void *data; // data for callback calls
34 } callback;
35
36 /* non-blocking or blocking mode */
37 Evas_Engine_Render_Mode render_mode;
38
39 unsigned char vsync : 1; // does nothing right now
40 unsigned char indirect : 1; // use indirect rendering
41};
42#endif
diff --git a/libraries/evas/src/modules/engines/wayland_egl/Makefile.am b/libraries/evas/src/modules/engines/wayland_egl/Makefile.am
new file mode 100644
index 0000000..100614f
--- /dev/null
+++ b/libraries/evas/src/modules/engines/wayland_egl/Makefile.am
@@ -0,0 +1,47 @@
1
2MAINTAINERCLEANFILES = Makefile.in
3
4AM_CPPFLAGS = \
5-I. \
6-I$(top_srcdir)/src/lib \
7-I$(top_srcdir)/src/lib/include \
8-I$(top_srcdir)/src/modules/engines/gl_common \
9@FREETYPE_CFLAGS@ \
10@PIXMAN_CFLAGS@ \
11@EINA_CFLAGS@ \
12@GL_EET_CFLAGS@ \
13@evas_engine_wayland_egl_cflags@
14
15if BUILD_ENGINE_WAYLAND_EGL
16
17WAYLAND_EGL_SOURCES = \
18evas_engine.c \
19evas_wl_main.c
20
21WAYLAND_EGL_LIBADD = @FREETYPE_LIBS@ @GL_EET_LIBS@ @EINA_LIBS@ @evas_engine_wayland_egl_libs@ $(top_builddir)/src/modules/engines/gl_common/libevas_engine_gl_common.la
22
23includes_HEADERS = Evas_Engine_Wayland_Egl.h
24includesdir = $(includedir)/evas-@VMAJ@
25
26if !EVAS_STATIC_BUILD_WAYLAND_EGL
27
28pkgdir = $(libdir)/evas/modules/engines/wayland_egl/$(MODULE_ARCH)
29pkg_LTLIBRARIES = module.la
30
31module_la_SOURCES = $(WAYLAND_EGL_SOURCES)
32module_la_LIBADD = $(WAYLAND_EGL_LIBADD) $(top_builddir)/src/lib/libevas.la
33module_la_LDFLAGS = -no-undefined -module -avoid-version
34module_la_LIBTOOLFLAGS = --tag=disable-static
35
36
37else
38
39noinst_LTLIBRARIES = libevas_engine_wayland_egl.la
40
41libevas_engine_wayland_egl_la_SOURCES = $(WAYLAND_EGL_SOURCES)
42libevas_engine_wayland_egl_la_LIBADD = $(WAYLAND_EGL_LIBADD)
43
44endif
45endif
46
47EXTRA_DIST = evas_engine.h
diff --git a/libraries/evas/src/modules/engines/wayland_egl/Makefile.in b/libraries/evas/src/modules/engines/wayland_egl/Makefile.in
new file mode 100644
index 0000000..0df0c63
--- /dev/null
+++ b/libraries/evas/src/modules/engines/wayland_egl/Makefile.in
@@ -0,0 +1,816 @@
1# Makefile.in generated by automake 1.11.1 from Makefile.am.
2# @configure_input@
3
4# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
5# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
6# Inc.
7# This Makefile.in is free software; the Free Software Foundation
8# gives unlimited permission to copy and/or distribute it,
9# with or without modifications, as long as this notice is preserved.
10
11# This program is distributed in the hope that it will be useful,
12# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
13# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
14# PARTICULAR PURPOSE.
15
16@SET_MAKE@
17
18
19VPATH = @srcdir@
20pkgdatadir = $(datadir)/@PACKAGE@
21pkgincludedir = $(includedir)/@PACKAGE@
22pkglibdir = $(libdir)/@PACKAGE@
23pkglibexecdir = $(libexecdir)/@PACKAGE@
24am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
25install_sh_DATA = $(install_sh) -c -m 644
26install_sh_PROGRAM = $(install_sh) -c
27install_sh_SCRIPT = $(install_sh) -c
28INSTALL_HEADER = $(INSTALL_DATA)
29transform = $(program_transform_name)
30NORMAL_INSTALL = :
31PRE_INSTALL = :
32POST_INSTALL = :
33NORMAL_UNINSTALL = :
34PRE_UNINSTALL = :
35POST_UNINSTALL = :
36build_triplet = @build@
37host_triplet = @host@
38subdir = src/modules/engines/wayland_egl
39DIST_COMMON = $(am__includes_HEADERS_DIST) $(srcdir)/Makefile.am \
40 $(srcdir)/Makefile.in
41ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
42am__aclocal_m4_deps = $(top_srcdir)/m4/efl_attribute.m4 \
43 $(top_srcdir)/m4/efl_coverage.m4 \
44 $(top_srcdir)/m4/efl_doxygen.m4 \
45 $(top_srcdir)/m4/efl_fnmatch.m4 \
46 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \
47 $(top_srcdir)/m4/evas_check_engine.m4 \
48 $(top_srcdir)/m4/evas_check_loader.m4 \
49 $(top_srcdir)/m4/evas_converter.m4 \
50 $(top_srcdir)/m4/evas_dither.m4 \
51 $(top_srcdir)/m4/evas_scaler.m4 $(top_srcdir)/m4/libtool.m4 \
52 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
53 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
54 $(top_srcdir)/configure.ac
55am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
56 $(ACLOCAL_M4)
57mkinstalldirs = $(install_sh) -d
58CONFIG_HEADER = $(top_builddir)/config.h
59CONFIG_CLEAN_FILES =
60CONFIG_CLEAN_VPATH_FILES =
61am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
62am__vpath_adj = case $$p in \
63 $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
64 *) f=$$p;; \
65 esac;
66am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
67am__install_max = 40
68am__nobase_strip_setup = \
69 srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
70am__nobase_strip = \
71 for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
72am__nobase_list = $(am__nobase_strip_setup); \
73 for p in $$list; do echo "$$p $$p"; done | \
74 sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
75 $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
76 if (++n[$$2] == $(am__install_max)) \
77 { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
78 END { for (dir in files) print dir, files[dir] }'
79am__base_list = \
80 sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
81 sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
82am__installdirs = "$(DESTDIR)$(pkgdir)" "$(DESTDIR)$(includesdir)"
83LTLIBRARIES = $(noinst_LTLIBRARIES) $(pkg_LTLIBRARIES)
84@BUILD_ENGINE_WAYLAND_EGL_TRUE@am__DEPENDENCIES_1 = $(top_builddir)/src/modules/engines/gl_common/libevas_engine_gl_common.la
85@BUILD_ENGINE_WAYLAND_EGL_TRUE@@EVAS_STATIC_BUILD_WAYLAND_EGL_TRUE@libevas_engine_wayland_egl_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
86am__libevas_engine_wayland_egl_la_SOURCES_DIST = evas_engine.c \
87 evas_wl_main.c
88@BUILD_ENGINE_WAYLAND_EGL_TRUE@am__objects_1 = evas_engine.lo \
89@BUILD_ENGINE_WAYLAND_EGL_TRUE@ evas_wl_main.lo
90@BUILD_ENGINE_WAYLAND_EGL_TRUE@@EVAS_STATIC_BUILD_WAYLAND_EGL_TRUE@am_libevas_engine_wayland_egl_la_OBJECTS = $(am__objects_1)
91libevas_engine_wayland_egl_la_OBJECTS = \
92 $(am_libevas_engine_wayland_egl_la_OBJECTS)
93AM_V_lt = $(am__v_lt_$(V))
94am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
95am__v_lt_0 = --silent
96@BUILD_ENGINE_WAYLAND_EGL_TRUE@@EVAS_STATIC_BUILD_WAYLAND_EGL_TRUE@am_libevas_engine_wayland_egl_la_rpath =
97@BUILD_ENGINE_WAYLAND_EGL_TRUE@@EVAS_STATIC_BUILD_WAYLAND_EGL_FALSE@module_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
98@BUILD_ENGINE_WAYLAND_EGL_TRUE@@EVAS_STATIC_BUILD_WAYLAND_EGL_FALSE@ $(top_builddir)/src/lib/libevas.la
99am__module_la_SOURCES_DIST = evas_engine.c evas_wl_main.c
100@BUILD_ENGINE_WAYLAND_EGL_TRUE@am__objects_2 = \
101@BUILD_ENGINE_WAYLAND_EGL_TRUE@ module_la-evas_engine.lo \
102@BUILD_ENGINE_WAYLAND_EGL_TRUE@ module_la-evas_wl_main.lo
103@BUILD_ENGINE_WAYLAND_EGL_TRUE@@EVAS_STATIC_BUILD_WAYLAND_EGL_FALSE@am_module_la_OBJECTS = $(am__objects_2)
104module_la_OBJECTS = $(am_module_la_OBJECTS)
105module_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
106 $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
107 $(AM_CFLAGS) $(CFLAGS) $(module_la_LDFLAGS) $(LDFLAGS) -o $@
108@BUILD_ENGINE_WAYLAND_EGL_TRUE@@EVAS_STATIC_BUILD_WAYLAND_EGL_FALSE@am_module_la_rpath = -rpath \
109@BUILD_ENGINE_WAYLAND_EGL_TRUE@@EVAS_STATIC_BUILD_WAYLAND_EGL_FALSE@ $(pkgdir)
110DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
111depcomp = $(SHELL) $(top_srcdir)/depcomp
112am__depfiles_maybe = depfiles
113am__mv = mv -f
114COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
115 $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
116LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
117 $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
118 $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
119 $(AM_CFLAGS) $(CFLAGS)
120AM_V_CC = $(am__v_CC_$(V))
121am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
122am__v_CC_0 = @echo " CC " $@;
123AM_V_at = $(am__v_at_$(V))
124am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
125am__v_at_0 = @
126CCLD = $(CC)
127LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
128 $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
129 $(AM_LDFLAGS) $(LDFLAGS) -o $@
130AM_V_CCLD = $(am__v_CCLD_$(V))
131am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
132am__v_CCLD_0 = @echo " CCLD " $@;
133AM_V_GEN = $(am__v_GEN_$(V))
134am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
135am__v_GEN_0 = @echo " GEN " $@;
136SOURCES = $(libevas_engine_wayland_egl_la_SOURCES) \
137 $(module_la_SOURCES)
138DIST_SOURCES = $(am__libevas_engine_wayland_egl_la_SOURCES_DIST) \
139 $(am__module_la_SOURCES_DIST)
140am__includes_HEADERS_DIST = Evas_Engine_Wayland_Egl.h
141HEADERS = $(includes_HEADERS)
142ETAGS = etags
143CTAGS = ctags
144DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
145ACLOCAL = @ACLOCAL@
146ALLOCA = @ALLOCA@
147AMTAR = @AMTAR@
148AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
149AR = @AR@
150AS = @AS@
151AUTOCONF = @AUTOCONF@
152AUTOHEADER = @AUTOHEADER@
153AUTOMAKE = @AUTOMAKE@
154AWK = @AWK@
155CC = @CC@
156CCDEPMODE = @CCDEPMODE@
157CFLAGS = @CFLAGS@
158CHECK_CFLAGS = @CHECK_CFLAGS@
159CHECK_LIBS = @CHECK_LIBS@
160CPP = @CPP@
161CPPFLAGS = @CPPFLAGS@
162CXX = @CXX@
163CXXCPP = @CXXCPP@
164CXXDEPMODE = @CXXDEPMODE@
165CXXFLAGS = @CXXFLAGS@
166CYGPATH_W = @CYGPATH_W@
167DEFS = @DEFS@
168DEPDIR = @DEPDIR@
169DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@
170DIRECTFB_LIBS = @DIRECTFB_LIBS@
171DLLTOOL = @DLLTOOL@
172DSYMUTIL = @DSYMUTIL@
173DUMPBIN = @DUMPBIN@
174ECHO_C = @ECHO_C@
175ECHO_N = @ECHO_N@
176ECHO_T = @ECHO_T@
177ECORE_EVAS_CFLAGS = @ECORE_EVAS_CFLAGS@
178ECORE_EVAS_LIBS = @ECORE_EVAS_LIBS@
179EDB_CFLAGS = @EDB_CFLAGS@
180EDB_LIBS = @EDB_LIBS@
181EDJE_CFLAGS = @EDJE_CFLAGS@
182EDJE_LIBS = @EDJE_LIBS@
183EET_CFLAGS = @EET_CFLAGS@
184EET_LIBS = @EET_LIBS@
185EFL_COVERAGE_CFLAGS = @EFL_COVERAGE_CFLAGS@
186EFL_COVERAGE_LIBS = @EFL_COVERAGE_LIBS@
187EFL_FNMATCH_LIBS = @EFL_FNMATCH_LIBS@
188EGREP = @EGREP@
189EINA_CFLAGS = @EINA_CFLAGS@
190EINA_LIBS = @EINA_LIBS@
191EVAS_CFLAGS = @EVAS_CFLAGS@
192EVAS_LIBS = @EVAS_LIBS@
193EVAS_SSE3_CFLAGS = @EVAS_SSE3_CFLAGS@
194EVIL_CFLAGS = @EVIL_CFLAGS@
195EVIL_LIBS = @EVIL_LIBS@
196EXEEXT = @EXEEXT@
197FGREP = @FGREP@
198FONTCONFIG_CFLAGS = @FONTCONFIG_CFLAGS@
199FONTCONFIG_LIBS = @FONTCONFIG_LIBS@
200FREETYPE_CFLAGS = @FREETYPE_CFLAGS@
201FREETYPE_LIBS = @FREETYPE_LIBS@
202FRIBIDI_CFLAGS = @FRIBIDI_CFLAGS@
203FRIBIDI_LIBS = @FRIBIDI_LIBS@
204GL_EET_CFLAGS = @GL_EET_CFLAGS@
205GL_EET_LIBS = @GL_EET_LIBS@
206GREP = @GREP@
207HARFBUZZ_CFLAGS = @HARFBUZZ_CFLAGS@
208HARFBUZZ_LIBS = @HARFBUZZ_LIBS@
209INSTALL = @INSTALL@
210INSTALL_DATA = @INSTALL_DATA@
211INSTALL_PROGRAM = @INSTALL_PROGRAM@
212INSTALL_SCRIPT = @INSTALL_SCRIPT@
213INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
214LD = @LD@
215LDFLAGS = @LDFLAGS@
216LIBOBJS = @LIBOBJS@
217LIBS = @LIBS@
218LIBTOOL = @LIBTOOL@
219LINEBREAK_CFLAGS = @LINEBREAK_CFLAGS@
220LINEBREAK_LIBS = @LINEBREAK_LIBS@
221LIPO = @LIPO@
222LN_S = @LN_S@
223LTLIBOBJS = @LTLIBOBJS@
224MAKEINFO = @MAKEINFO@
225MKDIR_P = @MKDIR_P@
226MODULE_ARCH = @MODULE_ARCH@
227NM = @NM@
228NMEDIT = @NMEDIT@
229OBJC = @OBJC@
230OBJCDEPMODE = @OBJCDEPMODE@
231OBJCFLAGS = @OBJCFLAGS@
232OBJDUMP = @OBJDUMP@
233OBJEXT = @OBJEXT@
234OTOOL = @OTOOL@
235OTOOL64 = @OTOOL64@
236PACKAGE = @PACKAGE@
237PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
238PACKAGE_NAME = @PACKAGE_NAME@
239PACKAGE_STRING = @PACKAGE_STRING@
240PACKAGE_TARNAME = @PACKAGE_TARNAME@
241PACKAGE_URL = @PACKAGE_URL@
242PACKAGE_VERSION = @PACKAGE_VERSION@
243PATH_SEPARATOR = @PATH_SEPARATOR@
244PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
245PIXMAN_LIBS = @PIXMAN_LIBS@
246PKG_CONFIG = @PKG_CONFIG@
247PNG_CFLAGS = @PNG_CFLAGS@
248PNG_LIBS = @PNG_LIBS@
249RANLIB = @RANLIB@
250SDL_CFLAGS = @SDL_CFLAGS@
251SDL_LIBS = @SDL_LIBS@
252SED = @SED@
253SET_MAKE = @SET_MAKE@
254SHELL = @SHELL@
255SHM_OPEN_LINK = @SHM_OPEN_LINK@
256STRIP = @STRIP@
257SVG_CFLAGS = @SVG_CFLAGS@
258SVG_LIBS = @SVG_LIBS@
259VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
260VALGRIND_LIBS = @VALGRIND_LIBS@
261VERSION = @VERSION@
262VMAJ = @VMAJ@
263WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
264WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
265WIN32_CFLAGS = @WIN32_CFLAGS@
266WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
267XCB_CFLAGS = @XCB_CFLAGS@
268XCB_GL_CFLAGS = @XCB_GL_CFLAGS@
269XCB_GL_LIBS = @XCB_GL_LIBS@
270XCB_LIBS = @XCB_LIBS@
271XEXT_CFLAGS = @XEXT_CFLAGS@
272XEXT_LIBS = @XEXT_LIBS@
273XMKMF = @XMKMF@
274X_CFLAGS = @X_CFLAGS@
275X_EXTRA_LIBS = @X_EXTRA_LIBS@
276X_LIBS = @X_LIBS@
277X_PRE_LIBS = @X_PRE_LIBS@
278abs_builddir = @abs_builddir@
279abs_srcdir = @abs_srcdir@
280abs_top_builddir = @abs_top_builddir@
281abs_top_srcdir = @abs_top_srcdir@
282ac_ct_CC = @ac_ct_CC@
283ac_ct_CXX = @ac_ct_CXX@
284ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
285ac_ct_OBJC = @ac_ct_OBJC@
286altivec_cflags = @altivec_cflags@
287am__include = @am__include@
288am__leading_dot = @am__leading_dot@
289am__quote = @am__quote@
290am__tar = @am__tar@
291am__untar = @am__untar@
292bindir = @bindir@
293build = @build@
294build_alias = @build_alias@
295build_cpu = @build_cpu@
296build_os = @build_os@
297build_vendor = @build_vendor@
298builddir = @builddir@
299datadir = @datadir@
300datarootdir = @datarootdir@
301dlopen_libs = @dlopen_libs@
302docdir = @docdir@
303dvidir = @dvidir@
304edje_cc = @edje_cc@
305efl_doxygen = @efl_doxygen@
306efl_have_doxygen = @efl_have_doxygen@
307evas_engine_buffer_cflags = @evas_engine_buffer_cflags@
308evas_engine_buffer_libs = @evas_engine_buffer_libs@
309evas_engine_direct3d_cflags = @evas_engine_direct3d_cflags@
310evas_engine_direct3d_libs = @evas_engine_direct3d_libs@
311evas_engine_directfb_cflags = @evas_engine_directfb_cflags@
312evas_engine_directfb_libs = @evas_engine_directfb_libs@
313evas_engine_fb_cflags = @evas_engine_fb_cflags@
314evas_engine_fb_libs = @evas_engine_fb_libs@
315evas_engine_gl_cocoa_cflags = @evas_engine_gl_cocoa_cflags@
316evas_engine_gl_cocoa_libs = @evas_engine_gl_cocoa_libs@
317evas_engine_gl_common_libs = @evas_engine_gl_common_libs@
318evas_engine_gl_sdl_cflags = @evas_engine_gl_sdl_cflags@
319evas_engine_gl_sdl_libs = @evas_engine_gl_sdl_libs@
320evas_engine_gl_xcb_cflags = @evas_engine_gl_xcb_cflags@
321evas_engine_gl_xcb_libs = @evas_engine_gl_xcb_libs@
322evas_engine_gl_xlib_cflags = @evas_engine_gl_xlib_cflags@
323evas_engine_gl_xlib_libs = @evas_engine_gl_xlib_libs@
324evas_engine_psl1ght_cflags = @evas_engine_psl1ght_cflags@
325evas_engine_psl1ght_libs = @evas_engine_psl1ght_libs@
326evas_engine_software_16_ddraw_cflags = @evas_engine_software_16_ddraw_cflags@
327evas_engine_software_16_ddraw_libs = @evas_engine_software_16_ddraw_libs@
328evas_engine_software_16_sdl_cflags = @evas_engine_software_16_sdl_cflags@
329evas_engine_software_16_sdl_libs = @evas_engine_software_16_sdl_libs@
330evas_engine_software_16_wince_cflags = @evas_engine_software_16_wince_cflags@
331evas_engine_software_16_wince_libs = @evas_engine_software_16_wince_libs@
332evas_engine_software_16_x11_cflags = @evas_engine_software_16_x11_cflags@
333evas_engine_software_16_x11_libs = @evas_engine_software_16_x11_libs@
334evas_engine_software_8_x11_cflags = @evas_engine_software_8_x11_cflags@
335evas_engine_software_8_x11_libs = @evas_engine_software_8_x11_libs@
336evas_engine_software_ddraw_cflags = @evas_engine_software_ddraw_cflags@
337evas_engine_software_ddraw_libs = @evas_engine_software_ddraw_libs@
338evas_engine_software_gdi_cflags = @evas_engine_software_gdi_cflags@
339evas_engine_software_gdi_libs = @evas_engine_software_gdi_libs@
340evas_engine_software_sdl_cflags = @evas_engine_software_sdl_cflags@
341evas_engine_software_sdl_libs = @evas_engine_software_sdl_libs@
342evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
343evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
344evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
345evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
346evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
347evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
348evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
349evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
350evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
351evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
352evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
353evas_image_loader_edb_libs = @evas_image_loader_edb_libs@
354evas_image_loader_eet_cflags = @evas_image_loader_eet_cflags@
355evas_image_loader_eet_libs = @evas_image_loader_eet_libs@
356evas_image_loader_generic_cflags = @evas_image_loader_generic_cflags@
357evas_image_loader_generic_libs = @evas_image_loader_generic_libs@
358evas_image_loader_gif_cflags = @evas_image_loader_gif_cflags@
359evas_image_loader_gif_libs = @evas_image_loader_gif_libs@
360evas_image_loader_ico_cflags = @evas_image_loader_ico_cflags@
361evas_image_loader_ico_libs = @evas_image_loader_ico_libs@
362evas_image_loader_jpeg_cflags = @evas_image_loader_jpeg_cflags@
363evas_image_loader_jpeg_libs = @evas_image_loader_jpeg_libs@
364evas_image_loader_pmaps_cflags = @evas_image_loader_pmaps_cflags@
365evas_image_loader_pmaps_libs = @evas_image_loader_pmaps_libs@
366evas_image_loader_png_cflags = @evas_image_loader_png_cflags@
367evas_image_loader_png_libs = @evas_image_loader_png_libs@
368evas_image_loader_psd_cflags = @evas_image_loader_psd_cflags@
369evas_image_loader_psd_libs = @evas_image_loader_psd_libs@
370evas_image_loader_svg_cflags = @evas_image_loader_svg_cflags@
371evas_image_loader_svg_libs = @evas_image_loader_svg_libs@
372evas_image_loader_tga_cflags = @evas_image_loader_tga_cflags@
373evas_image_loader_tga_libs = @evas_image_loader_tga_libs@
374evas_image_loader_tiff_cflags = @evas_image_loader_tiff_cflags@
375evas_image_loader_tiff_libs = @evas_image_loader_tiff_libs@
376evas_image_loader_wbmp_cflags = @evas_image_loader_wbmp_cflags@
377evas_image_loader_wbmp_libs = @evas_image_loader_wbmp_libs@
378evas_image_loader_xpm_cflags = @evas_image_loader_xpm_cflags@
379evas_image_loader_xpm_libs = @evas_image_loader_xpm_libs@
380exec_prefix = @exec_prefix@
381have_evas_engine_gl_x11 = @have_evas_engine_gl_x11@
382have_evas_engine_gl_xcb = @have_evas_engine_gl_xcb@
383have_evas_engine_gl_xlib = @have_evas_engine_gl_xlib@
384have_evas_engine_software_x11 = @have_evas_engine_software_x11@
385have_evas_engine_software_xcb = @have_evas_engine_software_xcb@
386have_evas_engine_software_xlib = @have_evas_engine_software_xlib@
387have_lcov = @have_lcov@
388host = @host@
389host_alias = @host_alias@
390host_cpu = @host_cpu@
391host_os = @host_os@
392host_vendor = @host_vendor@
393htmldir = @htmldir@
394includedir = @includedir@
395infodir = @infodir@
396install_sh = @install_sh@
397libdir = @libdir@
398libexecdir = @libexecdir@
399localedir = @localedir@
400localstatedir = @localstatedir@
401lt_ECHO = @lt_ECHO@
402lt_enable_auto_import = @lt_enable_auto_import@
403mandir = @mandir@
404mkdir_p = @mkdir_p@
405oldincludedir = @oldincludedir@
406pdfdir = @pdfdir@
407pkgconfig_requires_private = @pkgconfig_requires_private@
408prefix = @prefix@
409program_transform_name = @program_transform_name@
410psdir = @psdir@
411pthread_cflags = @pthread_cflags@
412pthread_libs = @pthread_libs@
413release_info = @release_info@
414requirement_evas = @requirement_evas@
415sbindir = @sbindir@
416sharedstatedir = @sharedstatedir@
417srcdir = @srcdir@
418sysconfdir = @sysconfdir@
419target_alias = @target_alias@
420top_build_prefix = @top_build_prefix@
421top_builddir = @top_builddir@
422top_srcdir = @top_srcdir@
423version_info = @version_info@
424MAINTAINERCLEANFILES = Makefile.in
425AM_CPPFLAGS = \
426-I. \
427-I$(top_srcdir)/src/lib \
428-I$(top_srcdir)/src/lib/include \
429-I$(top_srcdir)/src/modules/engines/gl_common \
430@FREETYPE_CFLAGS@ \
431@PIXMAN_CFLAGS@ \
432@EINA_CFLAGS@ \
433@GL_EET_CFLAGS@ \
434@evas_engine_wayland_egl_cflags@
435
436@BUILD_ENGINE_WAYLAND_EGL_TRUE@WAYLAND_EGL_SOURCES = \
437@BUILD_ENGINE_WAYLAND_EGL_TRUE@evas_engine.c \
438@BUILD_ENGINE_WAYLAND_EGL_TRUE@evas_wl_main.c
439
440@BUILD_ENGINE_WAYLAND_EGL_TRUE@WAYLAND_EGL_LIBADD = @FREETYPE_LIBS@ @GL_EET_LIBS@ @EINA_LIBS@ @evas_engine_wayland_egl_libs@ $(top_builddir)/src/modules/engines/gl_common/libevas_engine_gl_common.la
441@BUILD_ENGINE_WAYLAND_EGL_TRUE@includes_HEADERS = Evas_Engine_Wayland_Egl.h
442@BUILD_ENGINE_WAYLAND_EGL_TRUE@includesdir = $(includedir)/evas-@VMAJ@
443@BUILD_ENGINE_WAYLAND_EGL_TRUE@@EVAS_STATIC_BUILD_WAYLAND_EGL_FALSE@pkgdir = $(libdir)/evas/modules/engines/wayland_egl/$(MODULE_ARCH)
444@BUILD_ENGINE_WAYLAND_EGL_TRUE@@EVAS_STATIC_BUILD_WAYLAND_EGL_FALSE@pkg_LTLIBRARIES = module.la
445@BUILD_ENGINE_WAYLAND_EGL_TRUE@@EVAS_STATIC_BUILD_WAYLAND_EGL_FALSE@module_la_SOURCES = $(WAYLAND_EGL_SOURCES)
446@BUILD_ENGINE_WAYLAND_EGL_TRUE@@EVAS_STATIC_BUILD_WAYLAND_EGL_FALSE@module_la_LIBADD = $(WAYLAND_EGL_LIBADD) $(top_builddir)/src/lib/libevas.la
447@BUILD_ENGINE_WAYLAND_EGL_TRUE@@EVAS_STATIC_BUILD_WAYLAND_EGL_FALSE@module_la_LDFLAGS = -no-undefined -module -avoid-version
448@BUILD_ENGINE_WAYLAND_EGL_TRUE@@EVAS_STATIC_BUILD_WAYLAND_EGL_FALSE@module_la_LIBTOOLFLAGS = --tag=disable-static
449@BUILD_ENGINE_WAYLAND_EGL_TRUE@@EVAS_STATIC_BUILD_WAYLAND_EGL_TRUE@noinst_LTLIBRARIES = libevas_engine_wayland_egl.la
450@BUILD_ENGINE_WAYLAND_EGL_TRUE@@EVAS_STATIC_BUILD_WAYLAND_EGL_TRUE@libevas_engine_wayland_egl_la_SOURCES = $(WAYLAND_EGL_SOURCES)
451@BUILD_ENGINE_WAYLAND_EGL_TRUE@@EVAS_STATIC_BUILD_WAYLAND_EGL_TRUE@libevas_engine_wayland_egl_la_LIBADD = $(WAYLAND_EGL_LIBADD)
452EXTRA_DIST = evas_engine.h
453all: all-am
454
455.SUFFIXES:
456.SUFFIXES: .c .lo .o .obj
457$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
458 @for dep in $?; do \
459 case '$(am__configure_deps)' in \
460 *$$dep*) \
461 ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
462 && { if test -f $@; then exit 0; else break; fi; }; \
463 exit 1;; \
464 esac; \
465 done; \
466 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/modules/engines/wayland_egl/Makefile'; \
467 $(am__cd) $(top_srcdir) && \
468 $(AUTOMAKE) --gnu src/modules/engines/wayland_egl/Makefile
469.PRECIOUS: Makefile
470Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
471 @case '$?' in \
472 *config.status*) \
473 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
474 *) \
475 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
476 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
477 esac;
478
479$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
480 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
481
482$(top_srcdir)/configure: $(am__configure_deps)
483 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
484$(ACLOCAL_M4): $(am__aclocal_m4_deps)
485 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
486$(am__aclocal_m4_deps):
487
488clean-noinstLTLIBRARIES:
489 -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
490 @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
491 dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
492 test "$$dir" != "$$p" || dir=.; \
493 echo "rm -f \"$${dir}/so_locations\""; \
494 rm -f "$${dir}/so_locations"; \
495 done
496install-pkgLTLIBRARIES: $(pkg_LTLIBRARIES)
497 @$(NORMAL_INSTALL)
498 test -z "$(pkgdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgdir)"
499 @list='$(pkg_LTLIBRARIES)'; test -n "$(pkgdir)" || list=; \
500 list2=; for p in $$list; do \
501 if test -f $$p; then \
502 list2="$$list2 $$p"; \
503 else :; fi; \
504 done; \
505 test -z "$$list2" || { \
506 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkgdir)'"; \
507 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkgdir)"; \
508 }
509
510uninstall-pkgLTLIBRARIES:
511 @$(NORMAL_UNINSTALL)
512 @list='$(pkg_LTLIBRARIES)'; test -n "$(pkgdir)" || list=; \
513 for p in $$list; do \
514 $(am__strip_dir) \
515 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkgdir)/$$f'"; \
516 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkgdir)/$$f"; \
517 done
518
519clean-pkgLTLIBRARIES:
520 -test -z "$(pkg_LTLIBRARIES)" || rm -f $(pkg_LTLIBRARIES)
521 @list='$(pkg_LTLIBRARIES)'; for p in $$list; do \
522 dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
523 test "$$dir" != "$$p" || dir=.; \
524 echo "rm -f \"$${dir}/so_locations\""; \
525 rm -f "$${dir}/so_locations"; \
526 done
527libevas_engine_wayland_egl.la: $(libevas_engine_wayland_egl_la_OBJECTS) $(libevas_engine_wayland_egl_la_DEPENDENCIES)
528 $(AM_V_CCLD)$(LINK) $(am_libevas_engine_wayland_egl_la_rpath) $(libevas_engine_wayland_egl_la_OBJECTS) $(libevas_engine_wayland_egl_la_LIBADD) $(LIBS)
529module.la: $(module_la_OBJECTS) $(module_la_DEPENDENCIES)
530 $(AM_V_CCLD)$(module_la_LINK) $(am_module_la_rpath) $(module_la_OBJECTS) $(module_la_LIBADD) $(LIBS)
531
532mostlyclean-compile:
533 -rm -f *.$(OBJEXT)
534
535distclean-compile:
536 -rm -f *.tab.c
537
538@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_engine.Plo@am__quote@
539@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_wl_main.Plo@am__quote@
540@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_engine.Plo@am__quote@
541@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_wl_main.Plo@am__quote@
542
543.c.o:
544@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
545@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
546@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
547@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
548@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
549@am__fastdepCC_FALSE@ $(COMPILE) -c $<
550
551.c.obj:
552@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
553@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
554@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
555@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
556@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
557@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
558
559.c.lo:
560@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
561@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
562@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
563@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
564@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
565@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
566
567module_la-evas_engine.lo: evas_engine.c
568@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT module_la-evas_engine.lo -MD -MP -MF $(DEPDIR)/module_la-evas_engine.Tpo -c -o module_la-evas_engine.lo `test -f 'evas_engine.c' || echo '$(srcdir)/'`evas_engine.c
569@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_engine.Tpo $(DEPDIR)/module_la-evas_engine.Plo
570@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
571@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='evas_engine.c' object='module_la-evas_engine.lo' libtool=yes @AMDEPBACKSLASH@
572@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
573@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o module_la-evas_engine.lo `test -f 'evas_engine.c' || echo '$(srcdir)/'`evas_engine.c
574
575module_la-evas_wl_main.lo: evas_wl_main.c
576@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT module_la-evas_wl_main.lo -MD -MP -MF $(DEPDIR)/module_la-evas_wl_main.Tpo -c -o module_la-evas_wl_main.lo `test -f 'evas_wl_main.c' || echo '$(srcdir)/'`evas_wl_main.c
577@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_wl_main.Tpo $(DEPDIR)/module_la-evas_wl_main.Plo
578@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
579@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='evas_wl_main.c' object='module_la-evas_wl_main.lo' libtool=yes @AMDEPBACKSLASH@
580@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
581@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o module_la-evas_wl_main.lo `test -f 'evas_wl_main.c' || echo '$(srcdir)/'`evas_wl_main.c
582
583mostlyclean-libtool:
584 -rm -f *.lo
585
586clean-libtool:
587 -rm -rf .libs _libs
588install-includesHEADERS: $(includes_HEADERS)
589 @$(NORMAL_INSTALL)
590 test -z "$(includesdir)" || $(MKDIR_P) "$(DESTDIR)$(includesdir)"
591 @list='$(includes_HEADERS)'; test -n "$(includesdir)" || list=; \
592 for p in $$list; do \
593 if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
594 echo "$$d$$p"; \
595 done | $(am__base_list) | \
596 while read files; do \
597 echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includesdir)'"; \
598 $(INSTALL_HEADER) $$files "$(DESTDIR)$(includesdir)" || exit $$?; \
599 done
600
601uninstall-includesHEADERS:
602 @$(NORMAL_UNINSTALL)
603 @list='$(includes_HEADERS)'; test -n "$(includesdir)" || list=; \
604 files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
605 test -n "$$files" || exit 0; \
606 echo " ( cd '$(DESTDIR)$(includesdir)' && rm -f" $$files ")"; \
607 cd "$(DESTDIR)$(includesdir)" && rm -f $$files
608
609ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
610 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
611 unique=`for i in $$list; do \
612 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
613 done | \
614 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
615 END { if (nonempty) { for (i in files) print i; }; }'`; \
616 mkid -fID $$unique
617tags: TAGS
618
619TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
620 $(TAGS_FILES) $(LISP)
621 set x; \
622 here=`pwd`; \
623 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
624 unique=`for i in $$list; do \
625 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
626 done | \
627 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
628 END { if (nonempty) { for (i in files) print i; }; }'`; \
629 shift; \
630 if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
631 test -n "$$unique" || unique=$$empty_fix; \
632 if test $$# -gt 0; then \
633 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
634 "$$@" $$unique; \
635 else \
636 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
637 $$unique; \
638 fi; \
639 fi
640ctags: CTAGS
641CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
642 $(TAGS_FILES) $(LISP)
643 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
644 unique=`for i in $$list; do \
645 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
646 done | \
647 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
648 END { if (nonempty) { for (i in files) print i; }; }'`; \
649 test -z "$(CTAGS_ARGS)$$unique" \
650 || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
651 $$unique
652
653GTAGS:
654 here=`$(am__cd) $(top_builddir) && pwd` \
655 && $(am__cd) $(top_srcdir) \
656 && gtags -i $(GTAGS_ARGS) "$$here"
657
658distclean-tags:
659 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
660
661distdir: $(DISTFILES)
662 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
663 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
664 list='$(DISTFILES)'; \
665 dist_files=`for file in $$list; do echo $$file; done | \
666 sed -e "s|^$$srcdirstrip/||;t" \
667 -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
668 case $$dist_files in \
669 */*) $(MKDIR_P) `echo "$$dist_files" | \
670 sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
671 sort -u` ;; \
672 esac; \
673 for file in $$dist_files; do \
674 if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
675 if test -d $$d/$$file; then \
676 dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
677 if test -d "$(distdir)/$$file"; then \
678 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
679 fi; \
680 if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
681 cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
682 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
683 fi; \
684 cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
685 else \
686 test -f "$(distdir)/$$file" \
687 || cp -p $$d/$$file "$(distdir)/$$file" \
688 || exit 1; \
689 fi; \
690 done
691check-am: all-am
692check: check-am
693all-am: Makefile $(LTLIBRARIES) $(HEADERS)
694installdirs:
695 for dir in "$(DESTDIR)$(pkgdir)" "$(DESTDIR)$(includesdir)"; do \
696 test -z "$$dir" || $(MKDIR_P) "$$dir"; \
697 done
698install: install-am
699install-exec: install-exec-am
700install-data: install-data-am
701uninstall: uninstall-am
702
703install-am: all-am
704 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
705
706installcheck: installcheck-am
707install-strip:
708 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
709 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
710 `test -z '$(STRIP)' || \
711 echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
712mostlyclean-generic:
713
714clean-generic:
715
716distclean-generic:
717 -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
718 -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
719
720maintainer-clean-generic:
721 @echo "This command is intended for maintainers to use"
722 @echo "it deletes files that may require special tools to rebuild."
723 -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
724clean: clean-am
725
726clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
727 clean-pkgLTLIBRARIES mostlyclean-am
728
729distclean: distclean-am
730 -rm -rf ./$(DEPDIR)
731 -rm -f Makefile
732distclean-am: clean-am distclean-compile distclean-generic \
733 distclean-tags
734
735dvi: dvi-am
736
737dvi-am:
738
739html: html-am
740
741html-am:
742
743info: info-am
744
745info-am:
746
747install-data-am: install-includesHEADERS install-pkgLTLIBRARIES
748
749install-dvi: install-dvi-am
750
751install-dvi-am:
752
753install-exec-am:
754
755install-html: install-html-am
756
757install-html-am:
758
759install-info: install-info-am
760
761install-info-am:
762
763install-man:
764
765install-pdf: install-pdf-am
766
767install-pdf-am:
768
769install-ps: install-ps-am
770
771install-ps-am:
772
773installcheck-am:
774
775maintainer-clean: maintainer-clean-am
776 -rm -rf ./$(DEPDIR)
777 -rm -f Makefile
778maintainer-clean-am: distclean-am maintainer-clean-generic
779
780mostlyclean: mostlyclean-am
781
782mostlyclean-am: mostlyclean-compile mostlyclean-generic \
783 mostlyclean-libtool
784
785pdf: pdf-am
786
787pdf-am:
788
789ps: ps-am
790
791ps-am:
792
793uninstall-am: uninstall-includesHEADERS uninstall-pkgLTLIBRARIES
794
795.MAKE: install-am install-strip
796
797.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
798 clean-libtool clean-noinstLTLIBRARIES clean-pkgLTLIBRARIES \
799 ctags distclean distclean-compile distclean-generic \
800 distclean-libtool distclean-tags distdir dvi dvi-am html \
801 html-am info info-am install install-am install-data \
802 install-data-am install-dvi install-dvi-am install-exec \
803 install-exec-am install-html install-html-am \
804 install-includesHEADERS install-info install-info-am \
805 install-man install-pdf install-pdf-am install-pkgLTLIBRARIES \
806 install-ps install-ps-am install-strip installcheck \
807 installcheck-am installdirs maintainer-clean \
808 maintainer-clean-generic mostlyclean mostlyclean-compile \
809 mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
810 tags uninstall uninstall-am uninstall-includesHEADERS \
811 uninstall-pkgLTLIBRARIES
812
813
814# Tell versions [3.59,3.63) of GNU make to not export all variables.
815# Otherwise a system limit (for SysV at least) may be exceeded.
816.NOEXPORT:
diff --git a/libraries/evas/src/modules/engines/wayland_egl/evas_engine.c b/libraries/evas/src/modules/engines/wayland_egl/evas_engine.c
new file mode 100644
index 0000000..d2a6a0d
--- /dev/null
+++ b/libraries/evas/src/modules/engines/wayland_egl/evas_engine.c
@@ -0,0 +1,3174 @@
1#include "evas_common.h" /* Also includes international specific stuff */
2#include "evas_engine.h"
3
4#ifdef HAVE_DLSYM
5# include <dlfcn.h> /* dlopen,dlclose,etc */
6#else
7# error gl_x11 should not get compiled if dlsym is not found on the system!
8#endif
9
10#define EVAS_GL_NO_GL_H_CHECK 1
11#include "Evas_GL.h"
12
13typedef struct _Render_Engine Render_Engine;
14typedef struct _Render_Engine_GL_Surface Render_Engine_GL_Surface;
15typedef struct _Render_Engine_GL_Context Render_Engine_GL_Context;
16typedef struct _Render_Engine_GL_Resource Render_Engine_GL_Resource;
17typedef struct _Extension_Entry Extension_Entry;
18
19struct _Render_Engine
20{
21 Evas_GL_Wl_Window *win;
22 Evas_Engine_Info_Wayland_Egl *info;
23 Evas *evas;
24 Tilebuf *tb;
25 int end;
26 int w, h;
27 int vsync;
28
29};
30
31struct _Render_Engine_GL_Surface
32{
33 int initialized;
34 int fbo_attached;
35 int w, h;
36 int depth_bits;
37 int stencil_bits;
38
39 // Render target texture/buffers
40 GLuint rt_tex;
41 GLint rt_internal_fmt;
42 GLenum rt_fmt;
43 GLuint rb_depth;
44 GLenum rb_depth_fmt;
45 GLuint rb_stencil;
46 GLenum rb_stencil_fmt;
47
48 Render_Engine_GL_Context *current_ctx;
49};
50
51struct _Render_Engine_GL_Context
52{
53 int initialized;
54 EGLContext context;
55 GLuint context_fbo;
56 GLuint current_fbo;
57
58 Render_Engine_GL_Surface *current_sfc;
59};
60
61// Resources used per thread
62struct _Render_Engine_GL_Resource
63{
64 // Resource context/surface per Thread in TLS for evasgl use
65 EGLContext context;
66 EGLSurface surface;
67};
68
69// Extension Handling
70struct _Extension_Entry
71{
72 const char *name;
73 const char *real_name;
74 int supported;
75};
76
77static int initted = 0;
78static int gl_wins = 0;
79static Render_Engine_GL_Context *current_evgl_ctx;
80static Render_Engine *current_engine;
81
82static char _gl_ext_string[1024];
83static char _evasgl_ext_string[1024];
84
85// Resource context/surface per Thread in TLS for evasgl use
86static Eina_TLS resource_key;
87static Eina_List *resource_list;
88LK(resource_lock);
89
90typedef void (*_eng_fn) (void);
91typedef _eng_fn (*glsym_func_eng_fn) ();
92typedef void (*glsym_func_void) ();
93typedef void *(*glsym_func_void_ptr) ();
94typedef int (*glsym_func_int) ();
95typedef unsigned int (*glsym_func_uint) ();
96typedef unsigned char (*glsym_func_uchar) ();
97typedef unsigned char *(*glsym_func_uchar_ptr) ();
98typedef const char *(*glsym_func_const_char_ptr) ();
99
100#ifndef EGL_NATIVE_PIXMAP_KHR
101# define EGL_NATIVE_PIXMAP_KHR 0x30b0
102#endif
103_eng_fn (*glsym_eglGetProcAddress) (const char *a) = NULL;
104void (*glsym_eglBindTexImage) (EGLDisplay a, EGLSurface b, int c) = NULL;
105void (*glsym_eglReleaseTexImage) (EGLDisplay a, EGLSurface b, int c) = NULL;
106void *(*glsym_eglCreateImage) (EGLDisplay a, EGLContext b, EGLenum c, EGLClientBuffer d, const int *e) = NULL;
107void (*glsym_eglDestroyImage) (EGLDisplay a, void *b) = NULL;
108void (*glsym_glEGLImageTargetTexture2DOES) (int a, void *b) = NULL;
109void (*glsym_glEGLImageTargetRenderbufferStorageOES) (int a, void *b) = NULL;
110void *(*glsym_eglMapImageSEC) (void *a, void *b) = NULL;
111unsigned int (*glsym_eglUnmapImageSEC) (void *a, void *b) = NULL;
112const char *(*glsym_eglQueryString) (EGLDisplay a, int name) = NULL;
113
114unsigned int (*glsym_eglLockSurface) (EGLDisplay a, EGLSurface b, const int *attrib_list) = NULL;
115unsigned int (*glsym_eglUnlockSurface) (EGLDisplay a, EGLSurface b) = NULL;
116
117// GLES2 Extensions
118void (*glsym_glGetProgramBinaryOES) (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary) = NULL;
119void (*glsym_glProgramBinaryOES) (GLuint program, GLenum binaryFormat, const void *binary, GLint length) = NULL;
120void* (*glsym_glMapBufferOES) (GLenum target, GLenum access) = NULL;
121unsigned char (*glsym_glUnmapBufferOES) (GLenum target) = NULL;
122void (*glsym_glGetBufferPointervOES) (GLenum target, GLenum pname, void** params) = NULL;
123void (*glsym_glTexImage3DOES) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void* pixels) = NULL;
124void (*glsym_glTexSubImage3DOES) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void* pixels) = NULL;
125void (*glsym_glCopyTexSubImage3DOES) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height) = NULL;
126void (*glsym_glCompressedTexImage3DOES) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void* data) = NULL;
127void (*glsym_glCompressedTexSubImage3DOES) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void* data) = NULL;
128void (*glsym_glFramebufferTexture3DOES) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset) = NULL;
129void (*glsym_glGetPerfMonitorGroupsAMD) (GLint* numGroups, GLsizei groupsSize, GLuint* groups) = NULL;
130void (*glsym_glGetPerfMonitorCountersAMD) (GLuint group, GLint* numCounters, GLint* maxActiveCounters, GLsizei counterSize, GLuint* counters) = NULL;
131void (*glsym_glGetPerfMonitorGroupStringAMD) (GLuint group, GLsizei bufSize, GLsizei* length, char* groupString) = NULL;
132void (*glsym_glGetPerfMonitorCounterStringAMD) (GLuint group, GLuint counter, GLsizei bufSize, GLsizei* length, char* counterString) = NULL;
133void (*glsym_glGetPerfMonitorCounterInfoAMD) (GLuint group, GLuint counter, GLenum pname, void* data) = NULL;
134void (*glsym_glGenPerfMonitorsAMD) (GLsizei n, GLuint* monitors) = NULL;
135void (*glsym_glDeletePerfMonitorsAMD) (GLsizei n, GLuint* monitors) = NULL;
136void (*glsym_glSelectPerfMonitorCountersAMD) (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint* countersList) = NULL;
137void (*glsym_glBeginPerfMonitorAMD) (GLuint monitor) = NULL;
138void (*glsym_glEndPerfMonitorAMD) (GLuint monitor) = NULL;
139void (*glsym_glGetPerfMonitorCounterDataAMD) (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint* data, GLint* bytesWritten) = NULL;
140void (*glsym_glDiscardFramebufferEXT) (GLenum target, GLsizei numAttachments, const GLenum* attachments) = NULL;
141void (*glsym_glMultiDrawArraysEXT) (GLenum mode, GLint* first, GLsizei* count, GLsizei primcount) = NULL;
142void (*glsym_glMultiDrawElementsEXT) (GLenum mode, const GLsizei* count, GLenum type, const GLvoid** indices, GLsizei primcount) = NULL;
143void (*glsym_glDeleteFencesNV) (GLsizei n, const GLuint* fences) = NULL;
144void (*glsym_glGenFencesNV) (GLsizei n, GLuint* fences) = NULL;
145unsigned char (*glsym_glIsFenceNV) (GLuint fence) = NULL;
146unsigned char (*glsym_glTestFenceNV) (GLuint fence) = NULL;
147void (*glsym_glGetFenceivNV) (GLuint fence, GLenum pname, GLint* params) = NULL;
148void (*glsym_glFinishFenceNV) (GLuint fence) = NULL;
149void (*glsym_glSetFenceNV) (GLuint, GLenum) = NULL;
150void (*glsym_glGetDriverControlsQCOM) (GLint* num, GLsizei size, GLuint* driverControls) = NULL;
151void (*glsym_glGetDriverControlStringQCOM) (GLuint driverControl, GLsizei bufSize, GLsizei* length, char* driverControlString) = NULL;
152void (*glsym_glEnableDriverControlQCOM) (GLuint driverControl) = NULL;
153void (*glsym_glDisableDriverControlQCOM) (GLuint driverControl) = NULL;
154void (*glsym_glExtGetTexturesQCOM) (GLuint* textures, GLint maxTextures, GLint* numTextures) = NULL;
155void (*glsym_glExtGetBuffersQCOM) (GLuint* buffers, GLint maxBuffers, GLint* numBuffers) = NULL;
156void (*glsym_glExtGetRenderbuffersQCOM) (GLuint* renderbuffers, GLint maxRenderbuffers, GLint* numRenderbuffers) = NULL;
157void (*glsym_glExtGetFramebuffersQCOM) (GLuint* framebuffers, GLint maxFramebuffers, GLint* numFramebuffers) = NULL;
158void (*glsym_glExtGetTexLevelParameterivQCOM) (GLuint texture, GLenum face, GLint level, GLenum pname, GLint* params) = NULL;
159void (*glsym_glExtTexObjectStateOverrideiQCOM) (GLenum target, GLenum pname, GLint param) = NULL;
160void (*glsym_glExtGetTexSubImageQCOM) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, void* texels) = NULL;
161void (*glsym_glExtGetBufferPointervQCOM) (GLenum target, void** params) = NULL;
162void (*glsym_glExtGetShadersQCOM) (GLuint* shaders, GLint maxShaders, GLint* numShaders) = NULL;
163void (*glsym_glExtGetProgramsQCOM) (GLuint* programs, GLint maxPrograms, GLint* numPrograms) = NULL;
164unsigned char (*glsym_glExtIsProgramBinaryQCOM) (GLuint program) = NULL;
165void (*glsym_glExtGetProgramBinarySourceQCOM) (GLuint program, GLenum shadertype, char* source, GLint* length) = NULL;
166
167
168//------ GLES 2.0 Extensions supported in EvasGL -----//
169static Extension_Entry _gl_ext_entries[] = {
170 //--- Function Extensions ---//
171 { "GL_OES_get_program_binary", "get_program_binary", 0 },
172 { "GL_OES_mapbuffer", "mapbuffer", 0 },
173 { "GL_OES_texture_3D", "texture_3D", 0 },
174 { "AMD_performance_monitor", "AMD_performance_monitor", 0 },
175 { "GL_EXT_discard_framebuffer", "discard_framebuffer", 0 },
176 { "GL_EXT_multi_draw_arrays", "multi_draw_arrays", 0 },
177 { "GL_NV_fence", "NV_fence", 0 },
178 { "GL_QCOM_driver_control", "QCOM_driver_control", 0 },
179 { "GL_QCOM_extended_get", "QCOM_extended_get", 0 },
180 { "GL_QCOM_extended_get2", "QCOM_extended_get2", 0 },
181
182 //--- Define Extensions ---//
183 { "GL_OES_compressed_ETC1_RGB8_texture", "compressed_ETC1_RGB8_texture", 0 },
184 { "GL_OES_compressed_paletted_texture", "compressed_paletted_texture", 0 },
185 { "GL_OES_depth24", "depth24", 0 },
186 { "GL_OES_depth32", "depth32", 0 },
187 { "GL_OES_EvasGL_image", "EGL_image", 0 },
188 { "GL_OES_packed_depth_stencil", "packed_depth_stencil", 0 },
189 { "GL_OES_rgb8_rgba8", "rgb8_rgba8", 0 },
190 { "GL_OES_standard_derivatives", "standard_derivatives", 0 },
191 { "GL_OES_stencil1", "stencil1", 0 },
192 { "GL_OES_stencil4", "stencil4", 0 },
193 { "GL_OES_texture_float", "texture_float", 0 },
194 { "GL_OES_texture_half_float", "texture_half_float", 0 },
195 { "GL_OES_texture_half_float_linear", "texture_half_float_linear", 0 },
196 { "GL_OES_texture_npot", "texture_npot", 0 },
197 { "GL_OES_vertex_half_float", "vertex_half_float", 0 },
198 { "GL_OES_vertex_type_10_10_10_2", "vertex_type_10_10_10_2", 0 },
199 { "GL_AMD_compressed_3DC_texture", "compressed_3DC_texture", 0 },
200 { "GL_AMD_compressed_ATC_texture", "compressed_ATC_texture", 0 },
201 { "GL_AMD_program_binary_Z400", "program_binary_Z400", 0 },
202 { "GL_EXT_blend_minmax", "blend_minmax", 0 },
203 { "GL_EXT_read_format_bgra", "read_format_bgra", 0 },
204 { "GL_EXT_texture_filter_anisotropic", "texture_filter_anisotrophic", 0 },
205 { "GL_EXT_texture_format_BGRA8888", "texture_format_BGRA8888", 0 },
206 { "GL_EXT_texture_type_2_10_10_10_REV", "texture_type_2_10_10_10_rev", 0 },
207 { "GL_IMG_program_binary", "IMG_program_binary", 0 },
208 { "GL_IMG_read_format", "IMG_read_format", 0 },
209 { "GL_IMG_shader_binary", "IMG_shader_binary", 0 },
210 { "GL_IMG_texture_compression_pvrtc", "IMG_texture_compression_pvrtc", 0 },
211 { "GL_QCOM_perfmon_global_mode", "QCOM_perfmon_global_mode", 0 },
212 { "GL_QCOM_writeonly_rendering", "QCOM_writeonly_rendering", 0 },
213 { NULL, NULL, 0}
214};
215
216//------ Extensions supported in EvasGL -----//
217static Extension_Entry _evasgl_ext_entries[] = {
218 { "EvasGL_KHR_image", "EGL_KHR_image", 0 },
219 { "EvasGL_KHR_vg_parent_image", "EGL_KHR_vg_parent_image", 0 },
220 { "EvasGL_KHR_gl_texture_2D_image", "EGL_KHR_gl_texture_2D_image", 0 },
221 { "EvasGL_KHR_gl_texture_cubemap_image", "EGL_KHR_gl_texture_cubemap_image", 0 },
222 { "EvasGL_KHR_gl_texture_3D_image", "EGL_KHR_gl_texture_3D_image", 0 },
223 { "EvasGL_KHR_gl_renderbuffer_image", "EGL_KHR_gl_renderbuffer_image", 0 },
224 { NULL, NULL, 0 }
225};
226
227static void
228_sym_init(void)
229{
230 static int done = 0;
231
232 if (done) return;
233
234#define FINDSYM(dst, sym, typ) \
235 if ((!dst) && (glsym_eglGetProcAddress)) dst = (typ)glsym_eglGetProcAddress(sym); \
236 if (!dst) dst = (typ)dlsym(RTLD_DEFAULT, sym)
237
238 FINDSYM(glsym_eglGetProcAddress, "eglGetProcAddress", glsym_func_eng_fn);
239 FINDSYM(glsym_eglGetProcAddress, "eglGetProcAddressEXT", glsym_func_eng_fn);
240 FINDSYM(glsym_eglGetProcAddress, "eglGetProcAddressARB", glsym_func_eng_fn);
241 FINDSYM(glsym_eglGetProcAddress, "eglGetProcAddressKHR", glsym_func_eng_fn);
242
243 FINDSYM(glsym_eglBindTexImage, "eglBindTexImage", glsym_func_void);
244 FINDSYM(glsym_eglBindTexImage, "eglBindTexImageEXT", glsym_func_void);
245 FINDSYM(glsym_eglBindTexImage, "eglBindTexImageARB", glsym_func_void);
246 FINDSYM(glsym_eglBindTexImage, "eglBindTexImageKHR", glsym_func_void);
247
248 FINDSYM(glsym_eglReleaseTexImage, "eglReleaseTexImage", glsym_func_void);
249 FINDSYM(glsym_eglReleaseTexImage, "eglReleaseTexImageEXT", glsym_func_void);
250 FINDSYM(glsym_eglReleaseTexImage, "eglReleaseTexImageARB", glsym_func_void);
251 FINDSYM(glsym_eglReleaseTexImage, "eglReleaseTexImageKHR", glsym_func_void);
252
253 FINDSYM(glsym_eglCreateImage, "eglCreateImage", glsym_func_void_ptr);
254 FINDSYM(glsym_eglCreateImage, "eglCreateImageEXT", glsym_func_void_ptr);
255 FINDSYM(glsym_eglCreateImage, "eglCreateImageARB", glsym_func_void_ptr);
256 FINDSYM(glsym_eglCreateImage, "eglCreateImageKHR", glsym_func_void_ptr);
257
258 FINDSYM(glsym_eglDestroyImage, "eglDestroyImage", glsym_func_void);
259 FINDSYM(glsym_eglDestroyImage, "eglDestroyImageEXT", glsym_func_void);
260 FINDSYM(glsym_eglDestroyImage, "eglDestroyImageARB", glsym_func_void);
261 FINDSYM(glsym_eglDestroyImage, "eglDestroyImageKHR", glsym_func_void);
262
263 FINDSYM(glsym_glEGLImageTargetTexture2DOES, "glEGLImageTargetTexture2DOES", glsym_func_void);
264
265 FINDSYM(glsym_glEGLImageTargetRenderbufferStorageOES, "glEGLImageTargetRenderbufferStorageOES", glsym_func_void);
266
267 FINDSYM(glsym_eglMapImageSEC, "eglMapImageSEC", glsym_func_void_ptr);
268 FINDSYM(glsym_eglUnmapImageSEC, "eglUnmapImageSEC", glsym_func_uint);
269
270 FINDSYM(glsym_eglQueryString, "eglQueryString", glsym_func_const_char_ptr);
271
272 FINDSYM(glsym_eglLockSurface, "eglLockSurface", glsym_func_uint);
273 FINDSYM(glsym_eglLockSurface, "eglLockSurfaceEXT", glsym_func_uint);
274 FINDSYM(glsym_eglLockSurface, "eglLockSurfaceARB", glsym_func_uint);
275 FINDSYM(glsym_eglLockSurface, "eglLockSurfaceKHR", glsym_func_uint);
276
277 FINDSYM(glsym_eglUnlockSurface, "eglUnlockSurface", glsym_func_uint);
278 FINDSYM(glsym_eglUnlockSurface, "eglUnlockSurfaceEXT", glsym_func_uint);
279 FINDSYM(glsym_eglUnlockSurface, "eglUnlockSurfaceARB", glsym_func_uint);
280 FINDSYM(glsym_eglUnlockSurface, "eglUnlockSurfaceKHR", glsym_func_uint);
281
282 //----------- GLES 2.0 Extensions ------------//
283 // If the symbol's not found, they get set to NULL
284 // If one of the functions in the extension exists, the extension in supported
285 /* GL_OES_get_program_binary */
286 FINDSYM(glsym_glGetProgramBinaryOES, "glGetProgramBinary", glsym_func_void);
287 FINDSYM(glsym_glGetProgramBinaryOES, "glGetProgramBinaryEXT", glsym_func_void);
288 FINDSYM(glsym_glGetProgramBinaryOES, "glGetProgramBinaryARB", glsym_func_void);
289 FINDSYM(glsym_glGetProgramBinaryOES, "glGetProgramBinaryOES", glsym_func_void);
290
291 FINDSYM(glsym_glProgramBinaryOES, "glProgramBinary", glsym_func_void);
292 FINDSYM(glsym_glProgramBinaryOES, "glProgramBinaryEXT", glsym_func_void);
293 FINDSYM(glsym_glProgramBinaryOES, "glProgramBinaryARB", glsym_func_void);
294 FINDSYM(glsym_glProgramBinaryOES, "glProgramBinaryOES", glsym_func_void);
295
296 // Check the first function to see if the extension is supported...
297 if (glsym_glGetProgramBinaryOES) _gl_ext_entries[0].supported = 1;
298
299 /* GL_OES_mapbuffer */
300 FINDSYM(glsym_glMapBufferOES, "glMapBuffer", glsym_func_void_ptr);
301 FINDSYM(glsym_glMapBufferOES, "glMapBufferEXT", glsym_func_void_ptr);
302 FINDSYM(glsym_glMapBufferOES, "glMapBufferARB", glsym_func_void_ptr);
303 FINDSYM(glsym_glMapBufferOES, "glMapBufferOES", glsym_func_void_ptr);
304
305 FINDSYM(glsym_glUnmapBufferOES, "glUnmapBuffer", glsym_func_uchar);
306 FINDSYM(glsym_glUnmapBufferOES, "glUnmapBufferEXT", glsym_func_uchar);
307 FINDSYM(glsym_glUnmapBufferOES, "glUnmapBufferARB", glsym_func_uchar);
308 FINDSYM(glsym_glUnmapBufferOES, "glUnmapBufferOES", glsym_func_uchar);
309
310 FINDSYM(glsym_glGetBufferPointervOES, "glGetBufferPointerv", glsym_func_void);
311 FINDSYM(glsym_glGetBufferPointervOES, "glGetBufferPointervEXT", glsym_func_void);
312 FINDSYM(glsym_glGetBufferPointervOES, "glGetBufferPointervARB", glsym_func_void);
313 FINDSYM(glsym_glGetBufferPointervOES, "glGetBufferPointervOES", glsym_func_void);
314
315 if (glsym_glMapBufferOES) _gl_ext_entries[1].supported = 1;
316
317 /* GL_OES_texture_3D */
318 FINDSYM(glsym_glTexImage3DOES, "glTexImage3D", glsym_func_void);
319 FINDSYM(glsym_glTexImage3DOES, "glTexImage3DEXT", glsym_func_void);
320 FINDSYM(glsym_glTexImage3DOES, "glTexImage3DARB", glsym_func_void);
321 FINDSYM(glsym_glTexImage3DOES, "glTexImage3DOES", glsym_func_void);
322
323 FINDSYM(glsym_glTexSubImage3DOES, "glTexSubImage3D", glsym_func_void);
324 FINDSYM(glsym_glTexSubImage3DOES, "glTexSubImage3DEXT", glsym_func_void);
325 FINDSYM(glsym_glTexSubImage3DOES, "glTexSubImage3DARB", glsym_func_void);
326 FINDSYM(glsym_glTexSubImage3DOES, "glTexSubImage3DOES", glsym_func_void);
327
328 FINDSYM(glsym_glCopyTexSubImage3DOES, "glCopyTexSubImage3D", glsym_func_void);
329 FINDSYM(glsym_glCopyTexSubImage3DOES, "glCopyTexSubImage3DARB", glsym_func_void);
330 FINDSYM(glsym_glCopyTexSubImage3DOES, "glCopyTexSubImage3DEXT", glsym_func_void);
331 FINDSYM(glsym_glCopyTexSubImage3DOES, "glCopyTexSubImage3DOES", glsym_func_void);
332
333 FINDSYM(glsym_glCompressedTexImage3DOES, "glCompressedTexImage3D", glsym_func_void);
334 FINDSYM(glsym_glCompressedTexImage3DOES, "glCompressedTexImage3DARB", glsym_func_void);
335 FINDSYM(glsym_glCompressedTexImage3DOES, "glCompressedTexImage3DEXT", glsym_func_void);
336 FINDSYM(glsym_glCompressedTexImage3DOES, "glCompressedTexImage3DOES", glsym_func_void);
337
338 FINDSYM(glsym_glCompressedTexSubImage3DOES, "glCompressedTexSubImage3D", glsym_func_void);
339 FINDSYM(glsym_glCompressedTexSubImage3DOES, "glCompressedTexSubImage3DARB", glsym_func_void);
340 FINDSYM(glsym_glCompressedTexSubImage3DOES, "glCompressedTexSubImage3DEXT", glsym_func_void);
341 FINDSYM(glsym_glCompressedTexSubImage3DOES, "glCompressedTexSubImage3DOES", glsym_func_void);
342
343 FINDSYM(glsym_glFramebufferTexture3DOES, "glFramebufferTexture3D", glsym_func_void);
344 FINDSYM(glsym_glFramebufferTexture3DOES, "glFramebufferTexture3DARB", glsym_func_void);
345 FINDSYM(glsym_glFramebufferTexture3DOES, "glFramebufferTexture3DEXT", glsym_func_void);
346 FINDSYM(glsym_glFramebufferTexture3DOES, "glFramebufferTexture3DOES", glsym_func_void);
347
348 if (glsym_glTexSubImage3DOES) _gl_ext_entries[2].supported = 1;
349
350 /* AMD_performance_monitor */
351 FINDSYM(glsym_glGetPerfMonitorGroupsAMD, "glGetPerfMonitorGroupsAMD", glsym_func_void);
352 FINDSYM(glsym_glGetPerfMonitorCountersAMD, "glGetPerfMonitorCountersAMD", glsym_func_void);
353 FINDSYM(glsym_glGetPerfMonitorGroupStringAMD, "glGetPerfMonitorGroupStringAMD", glsym_func_void);
354 FINDSYM(glsym_glGetPerfMonitorCounterStringAMD, "glGetPerfMonitorCounterStringAMD", glsym_func_void);
355 FINDSYM(glsym_glGetPerfMonitorCounterInfoAMD, "glGetPerfMonitorCounterInfoAMD", glsym_func_void);
356 FINDSYM(glsym_glGenPerfMonitorsAMD, "glGenPerfMonitorsAMD", glsym_func_void);
357 FINDSYM(glsym_glDeletePerfMonitorsAMD, "glDeletePerfMonitorsAMD", glsym_func_void);
358 FINDSYM(glsym_glSelectPerfMonitorCountersAMD, "glSelectPerfMonitorCountersAMD", glsym_func_void);
359 FINDSYM(glsym_glBeginPerfMonitorAMD, "glBeginPerfMonitorAMD", glsym_func_void);
360 FINDSYM(glsym_glEndPerfMonitorAMD, "glEndPerfMonitorAMD", glsym_func_void);
361 FINDSYM(glsym_glGetPerfMonitorCounterDataAMD, "glGetPerfMonitorCounterDataAMD", glsym_func_void);
362
363 if (glsym_glGetPerfMonitorGroupsAMD) _gl_ext_entries[3].supported = 1;
364
365 /* GL_EXT_discard_framebuffer */
366 FINDSYM(glsym_glDiscardFramebufferEXT, "glDiscardFramebuffer", glsym_func_void);
367 FINDSYM(glsym_glDiscardFramebufferEXT, "glDiscardFramebufferARB", glsym_func_void);
368 FINDSYM(glsym_glDiscardFramebufferEXT, "glDiscardFramebufferEXT", glsym_func_void);
369
370 if (glsym_glDiscardFramebufferEXT) _gl_ext_entries[4].supported = 1;
371
372 /* GL_EXT_multi_draw_arrays */
373 FINDSYM(glsym_glMultiDrawArraysEXT, "glMultiDrawArrays", glsym_func_void);
374 FINDSYM(glsym_glMultiDrawArraysEXT, "glMultiDrawArraysARB", glsym_func_void);
375 FINDSYM(glsym_glMultiDrawArraysEXT, "glMultiDrawArraysEXT", glsym_func_void);
376
377 FINDSYM(glsym_glMultiDrawElementsEXT, "glMultiDrawElements", glsym_func_void);
378 FINDSYM(glsym_glMultiDrawElementsEXT, "glMultiDrawElementsARB", glsym_func_void);
379 FINDSYM(glsym_glMultiDrawElementsEXT, "glMultiDrawElementsEXT", glsym_func_void);
380
381 if (glsym_glMultiDrawArraysEXT) _gl_ext_entries[5].supported = 1;
382
383 /* GL_NV_fence */
384 FINDSYM(glsym_glDeleteFencesNV, "glDeleteFencesNV", glsym_func_void);
385 FINDSYM(glsym_glGenFencesNV, "glGenFencesNV", glsym_func_void);
386 FINDSYM(glsym_glIsFenceNV, "glIsFenceNV", glsym_func_uchar);
387 FINDSYM(glsym_glTestFenceNV, "glTestFenceNV", glsym_func_uchar);
388 FINDSYM(glsym_glGetFenceivNV, "glGetFenceivNV", glsym_func_void);
389 FINDSYM(glsym_glFinishFenceNV, "glFinishFenceNV", glsym_func_void);
390 FINDSYM(glsym_glSetFenceNV, "glSetFenceNV", glsym_func_void);
391
392 if (glsym_glDeleteFencesNV) _gl_ext_entries[6].supported = 1;
393
394 /* GL_QCOM_driver_control */
395 FINDSYM(glsym_glGetDriverControlsQCOM, "glGetDriverControlsQCOM", glsym_func_void);
396 FINDSYM(glsym_glGetDriverControlStringQCOM, "glGetDriverControlStringQCOM", glsym_func_void);
397 FINDSYM(glsym_glEnableDriverControlQCOM, "glEnableDriverControlQCOM", glsym_func_void);
398 FINDSYM(glsym_glDisableDriverControlQCOM, "glDisableDriverControlQCOM", glsym_func_void);
399
400 if (glsym_glGetDriverControlsQCOM) _gl_ext_entries[7].supported = 1;
401
402 /* GL_QCOM_extended_get */
403 FINDSYM(glsym_glExtGetTexturesQCOM, "glExtGetTexturesQCOM", glsym_func_void);
404 FINDSYM(glsym_glExtGetBuffersQCOM, "glExtGetBuffersQCOM", glsym_func_void);
405 FINDSYM(glsym_glExtGetRenderbuffersQCOM, "glExtGetRenderbuffersQCOM", glsym_func_void);
406 FINDSYM(glsym_glExtGetFramebuffersQCOM, "glExtGetFramebuffersQCOM", glsym_func_void);
407 FINDSYM(glsym_glExtGetTexLevelParameterivQCOM, "glExtGetTexLevelParameterivQCOM", glsym_func_void);
408 FINDSYM(glsym_glExtTexObjectStateOverrideiQCOM, "glExtTexObjectStateOverrideiQCOM", glsym_func_void);
409 FINDSYM(glsym_glExtGetTexSubImageQCOM, "glExtGetTexSubImageQCOM", glsym_func_void);
410 FINDSYM(glsym_glExtGetBufferPointervQCOM, "glExtGetBufferPointervQCOM", glsym_func_void);
411
412 if (glsym_glExtGetTexturesQCOM) _gl_ext_entries[8].supported = 1;
413
414 /* GL_QCOM_extended_get2 */
415 FINDSYM(glsym_glExtGetShadersQCOM, "glExtGetShadersQCOM", glsym_func_void);
416 FINDSYM(glsym_glExtGetProgramsQCOM, "glExtGetProgramsQCOM", glsym_func_void);
417 FINDSYM(glsym_glExtIsProgramBinaryQCOM, "glExtIsProgramBinaryQCOM", glsym_func_uchar);
418 FINDSYM(glsym_glExtGetProgramBinarySourceQCOM, "glExtGetProgramBinarySourceQCOM", glsym_func_void);
419
420 if (glsym_glExtGetShadersQCOM) _gl_ext_entries[9].supported = 1;
421}
422
423static void
424_extensions_init(Render_Engine *re)
425{
426 int i;
427 const char *glexts, *evasglexts;
428
429 memset(_gl_ext_string, 0, 1024);
430 memset(_evasgl_ext_string, 0, 1024);
431
432 // GLES 2.0 Extensions
433 glexts = (const char*)glGetString(GL_EXTENSIONS);
434
435 DBG("--------GLES 2.0 Extensions--------");
436 for (i = 0; _gl_ext_entries[i].name != NULL; i++)
437 {
438 if ( (strstr(glexts, _gl_ext_entries[i].name) != NULL) ||
439 (strstr(glexts, _gl_ext_entries[i].real_name) != NULL) )
440 {
441 _gl_ext_entries[i].supported = 1;
442 strcat(_gl_ext_string, _gl_ext_entries[i].name);
443 strcat(_gl_ext_string, " ");
444 DBG("\t%s", _gl_ext_entries[i].name);
445 }
446
447 }
448 DBG(" ");
449
450 // EGL Extensions
451 evasglexts = glsym_eglQueryString(re->win->egl_disp, EGL_EXTENSIONS);
452
453 DBG("--------EvasGL Extensions----------");
454 for (i = 0; _evasgl_ext_entries[i].name != NULL; i++)
455 {
456 if ( (strstr(evasglexts, _evasgl_ext_entries[i].name) != NULL) ||
457 (strstr(evasglexts, _evasgl_ext_entries[i].real_name) != NULL) )
458 {
459 _evasgl_ext_entries[i].supported = 1;
460 strcat(_evasgl_ext_string, _evasgl_ext_entries[i].name);
461 strcat(_evasgl_ext_string, " ");
462 DBG("\t%s", _evasgl_ext_entries[i].name);
463 }
464 }
465 DBG(" ");
466}
467
468int _evas_engine_wl_egl_log_dom = -1;
469
470/* function tables - filled in later (func and parent func) */
471static Evas_Func func, pfunc;
472
473/* Function table for GL APIs */
474static Evas_GL_API gl_funcs;
475
476static void *
477eng_info(Evas *e)
478{
479 Evas_Engine_Info_Wayland_Egl *info;
480
481 info = calloc(1, sizeof(Evas_Engine_Info_Wayland_Egl));
482 info->magic.magic = rand();
483 info->func.best_depth_get = eng_best_depth_get;
484 info->render_mode = EVAS_RENDER_MODE_BLOCKING;
485 return info;
486 e = NULL;
487}
488
489static void
490eng_info_free(Evas *e __UNUSED__, void *info)
491{
492 Evas_Engine_Info_Wayland_Egl *in;
493// dont free! why bother? its not worth it
494// eina_log_domain_unregister(_evas_engine_GL_X11_log_dom);
495 in = (Evas_Engine_Info_Wayland_Egl *)info;
496 free(in);
497}
498
499static int
500_re_wincheck(Render_Engine *re)
501{
502 if (!re) return 0;
503 if (re->win->surf) return 1;
504 eng_window_resurf(re->win);
505 if (!re->win->surf)
506 {
507 ERR("GL engine can't re-create window surface!");
508 }
509 return 0;
510}
511
512static void
513_re_winfree(Render_Engine *re)
514{
515 if (!re->win->surf) return;
516 eng_window_unsurf(re->win);
517}
518
519static Render_Engine_GL_Resource *
520_create_internal_glue_resources(void *data)
521{
522 Render_Engine *re;
523 Render_Engine_GL_Resource *rsc;
524
525 if (!(re = (Render_Engine *)data)) return NULL;
526
527 rsc = calloc(1, sizeof(Render_Engine_GL_Resource));
528 if (!rsc) return NULL;
529
530 // EGL
531 int context_attrs[3];
532 context_attrs[0] = EGL_CONTEXT_CLIENT_VERSION;
533 context_attrs[1] = 2;
534 context_attrs[2] = EGL_NONE;
535
536 // Create resource surface for EGL
537 rsc->surface =
538 eglCreateWindowSurface(re->win->egl_disp, re->win->egl_config,
539 (EGLNativeWindowType)re->win->win, NULL);
540 if (!rsc->surface)
541 {
542 ERR("Creating internal resource surface failed.");
543 free(rsc);
544 return NULL;
545 }
546
547 // Create a resource context for EGL
548 rsc->context =
549 eglCreateContext(re->win->egl_disp, re->win->egl_config,
550 re->win->egl_context[0], context_attrs);
551 if (!rsc->context)
552 {
553 ERR("Internal Resource Context Creations Failed.");
554 free(rsc);
555 return NULL;
556 }
557
558 // Add to the resource resource list for cleanup
559 LKL(resource_lock);
560 resource_list = eina_list_prepend(resource_list, rsc);
561 LKU(resource_lock);
562
563 // Set the resource in TLS
564 if (eina_tls_set(resource_key, (void*)rsc) == EINA_FALSE)
565 {
566 ERR("Failed setting TLS Resource");
567 free(rsc);
568 return NULL;
569 }
570
571 return rsc;
572}
573
574static int
575_destroy_internal_glue_resources(void *data)
576{
577 Render_Engine *re = (Render_Engine *)data;
578 Eina_List *l;
579 Render_Engine_GL_Resource *rsc;
580
581 // EGL
582 // Delete the Resources
583 LKL(resource_lock);
584 EINA_LIST_FOREACH(resource_list, l, rsc)
585 {
586 if (rsc->surface) eglDestroySurface(re->win->egl_disp, rsc->surface);
587 if (rsc->context) eglDestroyContext(re->win->egl_disp, rsc->context);
588 free(rsc);
589 }
590 eina_list_free(resource_list);
591 LKU(resource_lock);
592
593 // Destroy TLS
594 eina_tls_free(resource_key);
595
596 return 1;
597}
598
599static int
600eng_setup(Evas *e, void *in)
601{
602 Render_Engine *re;
603 Evas_Engine_Info_Wayland_Egl *info;
604
605 info = (Evas_Engine_Info_Wayland_Egl *)in;
606 if (!e->engine.data.output)
607 {
608 re = calloc(1, sizeof(Render_Engine));
609 if (!re) return 0;
610 re->info = info;
611 re->evas = e;
612 e->engine.data.output = re;
613 re->w = e->output.w;
614 re->h = e->output.h;
615
616 re->win = eng_window_new(re->info->info.display,
617 re->info->info.surface,
618 re->info->info.screen,
619 re->info->info.depth, re->w, re->h,
620 re->info->indirect,
621 re->info->info.destination_alpha,
622 re->info->info.rotation);
623 if (!re->win)
624 {
625 free(re);
626 e->engine.data.output = NULL;
627 return 0;
628 }
629
630 gl_wins++;
631 if (!initted)
632 {
633 evas_common_cpu_init();
634 evas_common_blend_init();
635 evas_common_image_init();
636 evas_common_convert_init();
637 evas_common_scale_init();
638 evas_common_rectangle_init();
639 evas_common_polygon_init();
640 evas_common_line_init();
641 evas_common_font_init();
642 evas_common_draw_init();
643 evas_common_tilebuf_init();
644
645 // Initialize TLS
646 if (eina_tls_new(&resource_key) == EINA_FALSE)
647 ERR("Error creating tls key");
648
649 DBG("TLS KEY create... %d", resource_key);
650
651 initted = 1;
652 }
653 }
654 else
655 {
656 if (!(re = e->engine.data.output)) return 0;
657 if (_re_wincheck(re))
658 {
659 if ((re->info->info.display != re->win->disp) ||
660 (re->info->info.surface != re->win->surface) ||
661 (re->info->info.screen != re->win->screen) ||
662 (re->info->info.depth != re->win->depth) ||
663 (re->info->info.destination_alpha != re->win->alpha) ||
664 (re->info->info.rotation != re->win->rot))
665 {
666 int inc = 0;
667
668 /* if we already have a window surface, check for NULL input surface.
669 * this will mean we are hiding the window and should destroy
670 * things properly */
671 if ((re->win->surface) && (re->info->info.surface = NULL))
672 {
673 if (re->win)
674 {
675 eng_window_free(re->win);
676 gl_wins--;
677 }
678 free(re);
679 e->engine.data.output = NULL;
680 return 0;
681 }
682
683 if (re->win)
684 {
685 re->win->gl_context->references++;
686 eng_window_free(re->win);
687 inc = 1;
688 gl_wins--;
689 }
690 re->w = e->output.w;
691 re->h = e->output.h;
692 re->win = eng_window_new(re->info->info.display,
693 re->info->info.surface,
694 re->info->info.screen,
695 re->info->info.depth,
696 re->w, re->h,
697 re->info->indirect,
698 re->info->info.destination_alpha,
699 re->info->info.rotation);
700 eng_window_use(re->win);
701 if (re->win) gl_wins++;
702 if ((re->win) && (inc))
703 re->win->gl_context->references--;
704 }
705 else if ((re->win->w != e->output.w) ||
706 (re->win->h != e->output.h))
707 {
708 re->w = e->output.w;
709 re->h = e->output.h;
710 re->win->w = e->output.w;
711 re->win->h = e->output.h;
712 eng_window_use(re->win);
713 evas_gl_common_context_resize(re->win->gl_context,
714 re->win->w, re->win->h,
715 re->win->rot);
716 }
717 }
718 }
719
720 if (!re->win)
721 {
722 free(re);
723 e->engine.data.output = NULL;
724 return 0;
725 }
726
727 if (!e->engine.data.output)
728 {
729 if (re->win)
730 {
731 eng_window_free(re->win);
732 gl_wins--;
733 }
734 free(re);
735 e->engine.data.output = NULL;
736 return 0;
737 }
738 re->tb = evas_common_tilebuf_new(re->win->w, re->win->h);
739 if (!re->tb)
740 {
741 if (re->win)
742 {
743 eng_window_free(re->win);
744 gl_wins--;
745 }
746 free(re);
747 e->engine.data.output = NULL;
748 return 0;
749 }
750 evas_common_tilebuf_set_tile_size(re->tb, TILESIZE, TILESIZE);
751
752 if (!e->engine.data.context)
753 {
754 e->engine.data.context =
755 e->engine.func->context_new(e->engine.data.output);
756 }
757
758 eng_window_use(re->win);
759
760 re->vsync = 0;
761 _sym_init();
762 _extensions_init(re);
763
764 // This is used in extensions. Not pretty but can't get display otherwise.
765 current_engine = re;
766
767 return 1;
768}
769
770static void
771eng_output_free(void *data)
772{
773 Render_Engine *re;
774
775 re = (Render_Engine *)data;
776
777 if (re)
778 {
779#if 0
780 // Destroy the resource surface
781 // Only required for EGL case
782 if (re->surface)
783 eglDestroySurface(re->win->egl_disp, re->surface);
784
785 // Destroy the resource context
786 _destroy_internal_context(re, context);
787#endif
788 if (re->win)
789 {
790 if ((initted == 1) && (gl_wins == 1))
791 _destroy_internal_glue_resources(re);
792 eng_window_free(re->win);
793 gl_wins--;
794 }
795 evas_common_tilebuf_free(re->tb);
796 free(re);
797 }
798 if ((initted == 1) && (gl_wins == 0))
799 {
800 evas_common_image_shutdown();
801 evas_common_font_shutdown();
802 initted = 0;
803 }
804}
805
806static void
807eng_output_resize(void *data, int w, int h)
808{
809 Render_Engine *re;
810
811 re = (Render_Engine *)data;
812 re->win->w = w;
813 re->win->h = h;
814 eng_window_use(re->win);
815
816 if (re->win->win)
817 wl_egl_window_resize(re->win->win, w, h, 0, 0);
818
819 evas_gl_common_context_resize(re->win->gl_context, w, h, re->win->rot);
820 evas_common_tilebuf_free(re->tb);
821 re->tb = evas_common_tilebuf_new(w, h);
822 if (re->tb)
823 evas_common_tilebuf_set_tile_size(re->tb, TILESIZE, TILESIZE);
824}
825
826static void
827eng_output_tile_size_set(void *data, int w, int h)
828{
829 Render_Engine *re;
830
831 re = (Render_Engine *)data;
832 evas_common_tilebuf_set_tile_size(re->tb, w, h);
833}
834
835static void
836eng_output_redraws_rect_add(void *data, int x, int y, int w, int h)
837{
838 Render_Engine *re;
839
840 re = (Render_Engine *)data;
841 eng_window_use(re->win);
842 evas_gl_common_context_resize(re->win->gl_context, re->win->w, re->win->h, re->win->rot);
843 evas_common_tilebuf_add_redraw(re->tb, x, y, w, h);
844
845 RECTS_CLIP_TO_RECT(x, y, w, h, 0, 0, re->win->w, re->win->h);
846 if ((w <= 0) || (h <= 0)) return;
847 if (!re->win->draw.redraw)
848 {
849#if 1
850 re->win->draw.x1 = x;
851 re->win->draw.y1 = y;
852 re->win->draw.x2 = x + w - 1;
853 re->win->draw.y2 = y + h - 1;
854#else
855 re->win->draw.x1 = 0;
856 re->win->draw.y1 = 0;
857 re->win->draw.x2 = re->win->w - 1;
858 re->win->draw.y2 = re->win->h - 1;
859#endif
860 }
861 else
862 {
863 if (x < re->win->draw.x1) re->win->draw.x1 = x;
864 if (y < re->win->draw.y1) re->win->draw.y1 = y;
865 if ((x + w - 1) > re->win->draw.x2) re->win->draw.x2 = x + w - 1;
866 if ((y + h - 1) > re->win->draw.y2) re->win->draw.y2 = y + h - 1;
867 }
868 re->win->draw.redraw = 1;
869}
870
871static void
872eng_output_redraws_rect_del(void *data, int x, int y, int w, int h)
873{
874 Render_Engine *re;
875
876 re = (Render_Engine *)data;
877 evas_common_tilebuf_del_redraw(re->tb, x, y, w, h);
878}
879
880static void
881eng_output_redraws_clear(void *data)
882{
883 Render_Engine *re;
884
885 re = (Render_Engine *)data;
886 evas_common_tilebuf_clear(re->tb);
887/* re->win->draw.redraw = 0;*/
888// INF("GL: finish update cycle!");
889}
890
891/* vsync games - not for now though */
892#define VSYNC_TO_SCREEN 1
893
894static void *
895eng_output_redraws_next_update_get(void *data, int *x, int *y, int *w, int *h, int *cx, int *cy, int *cw, int *ch)
896{
897 Render_Engine *re;
898 Tilebuf_Rect *rects;
899
900 re = (Render_Engine *)data;
901 /* get the upate rect surface - return engine data as dummy */
902 rects = evas_common_tilebuf_get_render_rects(re->tb);
903 if (rects)
904 {
905 evas_common_tilebuf_free_render_rects(rects);
906 evas_common_tilebuf_clear(re->tb);
907 eng_window_use(re->win);
908 if (!_re_wincheck(re)) return NULL;
909 evas_gl_common_context_flush(re->win->gl_context);
910 evas_gl_common_context_newframe(re->win->gl_context);
911 if (x) *x = 0;
912 if (y) *y = 0;
913 if (w) *w = re->win->w;
914 if (h) *h = re->win->h;
915 if (cx) *cx = 0;
916 if (cy) *cy = 0;
917 if (cw) *cw = re->win->w;
918 if (ch) *ch = re->win->h;
919 return re->win->gl_context->def_surface;
920 }
921 return NULL;
922}
923
924//#define FRAMECOUNT 1
925
926#ifdef FRAMECOUNT
927static double
928get_time(void)
929{
930 struct timeval timev;
931
932 gettimeofday(&timev, NULL);
933 return (double)timev.tv_sec + (((double)timev.tv_usec) / 1000000);
934}
935#endif
936
937static int safe_native = -1;
938
939static void
940eng_output_redraws_next_update_push(void *data, void *surface __UNUSED__, int x __UNUSED__, int y __UNUSED__, int w __UNUSED__, int h __UNUSED__)
941{
942 Render_Engine *re;
943#ifdef FRAMECOUNT
944 static double pt = 0.0;
945 double ta, tb;
946#endif
947
948 re = (Render_Engine *)data;
949 /* put back update surface.. in this case just unflag redraw */
950 if (!_re_wincheck(re)) return;
951 re->win->draw.redraw = 0;
952 re->win->draw.drew = 1;
953 evas_gl_common_context_flush(re->win->gl_context);
954 if (safe_native == -1)
955 {
956 const char *s;
957
958 s = getenv("EVAS_GL_SAFE_NATIVE");
959 safe_native = 0;
960 if (s)
961 safe_native = atoi(s);
962 else
963 {
964 s = (const char *)glGetString(GL_RENDERER);
965 if (s)
966 {
967 if (strstr(s, "PowerVR SGX 540") || strstr(s, "Mali-400 MP"))
968 safe_native = 1;
969 }
970 }
971 }
972 // this is needed to make sure all previous rendering is flushed to
973 // buffers/surfaces
974# ifdef FRAMECOUNT
975 double t0 = get_time();
976 ta = t0 - pt;
977 pt = t0;
978# endif
979 // previous rendering should be done and swapped
980 if (!safe_native) eglWaitNative(EGL_CORE_NATIVE_ENGINE);
981# ifdef FRAMECOUNT
982 double t1 = get_time();
983 tb = t1 - t0;
984 printf("... %1.5f -> %1.5f | ", ta, tb);
985# endif
986 if (eglGetError() != EGL_SUCCESS)
987 {
988 printf("Error: eglWaitNative(EGL_CORE_NATIVE_ENGINE) fail.\n");
989 }
990}
991
992static void
993eng_output_flush(void *data)
994{
995 Render_Engine *re;
996
997 re = (Render_Engine *)data;
998 if (!_re_wincheck(re)) return;
999 if (!re->win->draw.drew) return;
1000//x// printf("frame -> flush\n");
1001 re->win->draw.drew = 0;
1002 eng_window_use(re->win);
1003
1004# ifdef FRAMECOUNT
1005 double t0 = get_time();
1006# endif
1007
1008 if (!re->vsync)
1009 {
1010 if (re->info->vsync) eglSwapInterval(re->win->egl_disp, 1);
1011 else eglSwapInterval(re->win->egl_disp, 0);
1012 re->vsync = 1;
1013 }
1014
1015 if (re->info->callback.pre_swap)
1016 re->info->callback.pre_swap(re->info->callback.data, re->evas);
1017
1018 eglSwapBuffers(re->win->egl_disp, re->win->egl_surface[0]);
1019 if (!safe_native) eglWaitGL();
1020
1021 if (re->info->callback.post_swap)
1022 re->info->callback.post_swap(re->info->callback.data, re->evas);
1023
1024 if (eglGetError() != EGL_SUCCESS)
1025 printf("Error: eglSwapBuffers() fail.\n");
1026
1027# ifdef FRAMECOUNT
1028 double t1 = get_time();
1029 printf("%1.5f\n", t1 - t0);
1030# endif
1031}
1032
1033static void
1034eng_output_idle_flush(void *data)
1035{
1036 Render_Engine *re;
1037
1038 re = (Render_Engine *)data;
1039}
1040
1041static void
1042eng_output_dump(void *data)
1043{
1044 Render_Engine *re;
1045
1046 re = (Render_Engine *)data;
1047 evas_common_image_image_all_unload();
1048 evas_common_font_font_all_unload();
1049 evas_gl_common_image_all_unload(re->win->gl_context);
1050 _re_winfree(re);
1051}
1052
1053static void
1054eng_context_cutout_add(void *data __UNUSED__, void *context, int x, int y, int w, int h)
1055{
1056// Render_Engine *re;
1057//
1058// re = (Render_Engine *)data;
1059// re->win->gl_context->dc = context;
1060 evas_common_draw_context_add_cutout(context, x, y, w, h);
1061}
1062
1063static void
1064eng_context_cutout_clear(void *data __UNUSED__, void *context)
1065{
1066// Render_Engine *re;
1067//
1068// re = (Render_Engine *)data;
1069// re->win->gl_context->dc = context;
1070 evas_common_draw_context_clear_cutouts(context);
1071}
1072
1073static void
1074eng_rectangle_draw(void *data, void *context, void *surface, int x, int y, int w, int h)
1075{
1076 Render_Engine *re;
1077
1078 re = (Render_Engine *)data;
1079 eng_window_use(re->win);
1080 evas_gl_common_context_target_surface_set(re->win->gl_context, surface);
1081 re->win->gl_context->dc = context;
1082 evas_gl_common_rect_draw(re->win->gl_context, x, y, w, h);
1083}
1084
1085static void
1086eng_line_draw(void *data, void *context, void *surface, int x1, int y1, int x2, int y2)
1087{
1088 Render_Engine *re;
1089
1090 re = (Render_Engine *)data;
1091 eng_window_use(re->win);
1092 evas_gl_common_context_target_surface_set(re->win->gl_context, surface);
1093 re->win->gl_context->dc = context;
1094 evas_gl_common_line_draw(re->win->gl_context, x1, y1, x2, y2);
1095}
1096
1097static void *
1098eng_polygon_point_add(void *data, void *context __UNUSED__, void *polygon, int x, int y)
1099{
1100 Render_Engine *re;
1101
1102 re = (Render_Engine *)data;
1103 return evas_gl_common_poly_point_add(polygon, x, y);
1104}
1105
1106static void *
1107eng_polygon_points_clear(void *data, void *context __UNUSED__, void *polygon)
1108{
1109 Render_Engine *re;
1110
1111 re = (Render_Engine *)data;
1112 return evas_gl_common_poly_points_clear(polygon);
1113}
1114
1115static void
1116eng_polygon_draw(void *data, void *context, void *surface __UNUSED__, void *polygon, int x, int y)
1117{
1118 Render_Engine *re;
1119
1120 re = (Render_Engine *)data;
1121 eng_window_use(re->win);
1122 evas_gl_common_context_target_surface_set(re->win->gl_context, surface);
1123 re->win->gl_context->dc = context;
1124 evas_gl_common_poly_draw(re->win->gl_context, polygon, x, y);
1125}
1126
1127static int
1128eng_image_alpha_get(void *data __UNUSED__, void *image)
1129{
1130// Render_Engine *re;
1131 Evas_GL_Image *im;
1132
1133// re = (Render_Engine *)data;
1134 if (!image) return 1;
1135 im = image;
1136 return im->alpha;
1137}
1138
1139static int
1140eng_image_colorspace_get(void *data __UNUSED__, void *image)
1141{
1142// Render_Engine *re;
1143 Evas_GL_Image *im;
1144
1145// re = (Render_Engine *)data;
1146 if (!image) return EVAS_COLORSPACE_ARGB8888;
1147 im = image;
1148 return im->cs.space;
1149}
1150
1151static void
1152eng_image_mask_create(void *data __UNUSED__, void *image)
1153{
1154 Evas_GL_Image *im;
1155
1156 if (!image) return;
1157 im = image;
1158 if (!im->im->image.data)
1159 evas_cache_image_load_data(&im->im->cache_entry);
1160 if (!im->tex)
1161 im->tex = evas_gl_common_texture_new(im->gc, im->im);
1162}
1163
1164
1165static void *
1166eng_image_alpha_set(void *data, void *image, int has_alpha)
1167{
1168 Render_Engine *re;
1169 Evas_GL_Image *im;
1170
1171 re = (Render_Engine *)data;
1172 if (!image) return NULL;
1173 im = image;
1174 if (im->alpha == has_alpha) return image;
1175 if (im->native.data)
1176 {
1177 im->alpha = has_alpha;
1178 return image;
1179 }
1180 eng_window_use(re->win);
1181 if ((im->tex) && (im->tex->pt->dyn.img))
1182 {
1183 im->alpha = has_alpha;
1184 im->tex->alpha = im->alpha;
1185 return image;
1186 }
1187 /* FIXME: can move to gl_common */
1188 if (im->cs.space != EVAS_COLORSPACE_ARGB8888) return im;
1189 if ((has_alpha) && (im->im->cache_entry.flags.alpha)) return image;
1190 else if ((!has_alpha) && (!im->im->cache_entry.flags.alpha)) return image;
1191 if (im->references > 1)
1192 {
1193 Evas_GL_Image *im_new;
1194
1195 im_new = evas_gl_common_image_new_from_copied_data
1196 (im->gc, im->im->cache_entry.w, im->im->cache_entry.h,
1197 im->im->image.data,
1198 eng_image_alpha_get(data, image),
1199 eng_image_colorspace_get(data, image));
1200 if (!im_new) return im;
1201 evas_gl_common_image_free(im);
1202 im = im_new;
1203 }
1204 else
1205 evas_gl_common_image_dirty(im, 0, 0, 0, 0);
1206 return evas_gl_common_image_alpha_set(im, has_alpha ? 1 : 0);
1207// im->im->cache_entry.flags.alpha = has_alpha ? 1 : 0;
1208// return image;
1209}
1210
1211static void *
1212eng_image_border_set(void *data __UNUSED__, void *image, int l __UNUSED__, int r __UNUSED__, int t __UNUSED__, int b __UNUSED__)
1213{
1214// Render_Engine *re;
1215//
1216// re = (Render_Engine *)data;
1217 return image;
1218}
1219
1220static void
1221eng_image_border_get(void *data __UNUSED__, void *image __UNUSED__, int *l __UNUSED__, int *r __UNUSED__, int *t __UNUSED__, int *b __UNUSED__)
1222{
1223// Render_Engine *re;
1224//
1225// re = (Render_Engine *)data;
1226}
1227
1228static char *
1229eng_image_comment_get(void *data __UNUSED__, void *image, char *key __UNUSED__)
1230{
1231// Render_Engine *re;
1232 Evas_GL_Image *im;
1233
1234// re = (Render_Engine *)data;
1235 if (!image) return NULL;
1236 im = image;
1237 if (!im->im) return NULL;
1238 return im->im->info.comment;
1239}
1240
1241static char *
1242eng_image_format_get(void *data __UNUSED__, void *image)
1243{
1244// Render_Engine *re;
1245 Evas_GL_Image *im;
1246
1247// re = (Render_Engine *)data;
1248 im = image;
1249 return NULL;
1250}
1251
1252static void
1253eng_image_colorspace_set(void *data, void *image, int cspace)
1254{
1255 Render_Engine *re;
1256 Evas_GL_Image *im;
1257
1258 re = (Render_Engine *)data;
1259 if (!image) return;
1260 im = image;
1261 if (im->native.data) return;
1262 /* FIXME: can move to gl_common */
1263 if (im->cs.space == cspace) return;
1264 eng_window_use(re->win);
1265 evas_cache_image_colorspace(&im->im->cache_entry, cspace);
1266 switch (cspace)
1267 {
1268 case EVAS_COLORSPACE_ARGB8888:
1269 if (im->cs.data)
1270 {
1271 if (!im->cs.no_free) free(im->cs.data);
1272 im->cs.data = NULL;
1273 im->cs.no_free = 0;
1274 }
1275 break;
1276 case EVAS_COLORSPACE_YCBCR422P601_PL:
1277 case EVAS_COLORSPACE_YCBCR422P709_PL:
1278 case EVAS_COLORSPACE_YCBCR422601_PL:
1279 case EVAS_COLORSPACE_YCBCR420NV12601_PL:
1280 case EVAS_COLORSPACE_YCBCR420TM12601_PL:
1281 if (im->tex) evas_gl_common_texture_free(im->tex);
1282 im->tex = NULL;
1283 if (im->cs.data)
1284 {
1285 if (!im->cs.no_free) free(im->cs.data);
1286 }
1287 if (im->im->cache_entry.h > 0)
1288 im->cs.data =
1289 calloc(1, im->im->cache_entry.h * sizeof(unsigned char *) * 2);
1290 else
1291 im->cs.data = NULL;
1292 im->cs.no_free = 0;
1293 break;
1294 default:
1295 abort();
1296 break;
1297 }
1298 im->cs.space = cspace;
1299}
1300
1301/////////////////////////////////////////////////////////////////////////
1302//
1303//
1304typedef struct _Native Native;
1305
1306struct _Native
1307{
1308 Evas_Native_Surface ns;
1309 struct wl_egl_pixmap *pixmap;
1310
1311 void *egl_surface;
1312};
1313
1314// FIXME: this is enabled so updates happen - but its SLOOOOOOOOOOOOOOOW
1315// (i am sure this is the reason) not to mention seemingly superfluous. but
1316// i need to enable it for it to work on fglrx at least. havent tried nvidia.
1317//
1318// why is this the case? does anyone know? has anyone tried it on other gfx
1319// drivers?
1320//
1321//#define GLX_TEX_PIXMAP_RECREATE 1
1322
1323static void
1324_native_bind_cb(void *data, void *image)
1325{
1326 Evas_GL_Image *im = image;
1327 Native *n = im->native.data;
1328
1329 if (n->egl_surface)
1330 {
1331 if (glsym_glEGLImageTargetTexture2DOES)
1332 {
1333 glsym_glEGLImageTargetTexture2DOES(GL_TEXTURE_2D, n->egl_surface);
1334 if (eglGetError() != EGL_SUCCESS)
1335 ERR("glEGLImageTargetTexture2DOES() failed.");
1336 }
1337 else
1338 ERR("Try glEGLImageTargetTexture2DOES on EGL with no support");
1339 }
1340 return;
1341 data = NULL;
1342}
1343
1344static void
1345_native_unbind_cb(void *data, void *image)
1346{
1347 Evas_GL_Image *im = image;
1348 /* Native *n = im->native.data; */
1349
1350 /* if (n->ns.type == EVAS_NATIVE_SURFACE_X11) */
1351 /* { */
1352 /* // nothing */
1353 /* } */
1354 /* else if (n->ns.type == EVAS_NATIVE_SURFACE_OPENGL) */
1355 /* { */
1356 /* glBindTexture(GL_TEXTURE_2D, 0); */
1357 /* GLERR(__FUNCTION__, __FILE__, __LINE__, ""); */
1358 /* } */
1359 return;
1360 data = NULL;
1361}
1362
1363static void
1364_native_free_cb(void *data, void *image)
1365{
1366 Render_Engine *re = data;
1367 Evas_GL_Image *im = image;
1368 Native *n = im->native.data;
1369 uint32_t texid;
1370// uint32_t pmid, texid;
1371
1372 /* eina_hash_del(re->win->gl_context->shared->native_pm_hash, &pmid, im); */
1373 if (n->egl_surface)
1374 {
1375 if (glsym_eglDestroyImage)
1376 {
1377 glsym_eglDestroyImage(re->win->egl_disp, n->egl_surface);
1378 if (eglGetError() != EGL_SUCCESS)
1379 ERR("eglDestroyImage() failed.");
1380 }
1381 else
1382 ERR("Try eglDestroyImage on EGL with no support");
1383 }
1384
1385 im->native.data = NULL;
1386 im->native.func.data = NULL;
1387 im->native.func.bind = NULL;
1388 im->native.func.unbind = NULL;
1389 im->native.func.free = NULL;
1390 free(n);
1391}
1392
1393static void *
1394eng_image_native_set(void *data, void *image, void *native)
1395{
1396 Render_Engine *re = (Render_Engine *)data;
1397 Evas_Native_Surface *ns = native;
1398 Evas_GL_Image *im = image, *im2 = NULL;
1399 Native *n = NULL;
1400// uint32_t pmid;
1401// uint32_t texid;
1402 unsigned int tex = 0;
1403 unsigned int fbo = 0;
1404
1405 if (!im)
1406 {
1407 if ((!ns) && (ns->type == EVAS_NATIVE_SURFACE_OPENGL))
1408 {
1409 im = evas_gl_common_image_new_from_data(re->win->gl_context,
1410 ns->data.opengl.w,
1411 ns->data.opengl.h,
1412 NULL, 1,
1413 EVAS_COLORSPACE_ARGB8888);
1414 }
1415 else
1416 return NULL;
1417 }
1418
1419 if (ns)
1420 {
1421 /* vis = ns->data.x11.visual; */
1422 /* pm = ns->data.x11.pixmap; */
1423 if (im->native.data)
1424 {
1425 Evas_Native_Surface *ens = im->native.data;
1426 /* if ((ens->data.x11.visual == vis) && */
1427 /* (ens->data.x11.pixmap == pm)) */
1428 return im;
1429 }
1430 }
1431 if ((!ns) && (!im->native.data)) return im;
1432
1433 eng_window_use(re->win);
1434
1435 if (im->native.data)
1436 {
1437 if (im->native.func.free)
1438 im->native.func.free(im->native.func.data, im);
1439 evas_gl_common_image_native_disable(im);
1440 }
1441
1442 if (!ns) return im;
1443
1444 /* if (ns->type == EVAS_NATIVE_SURFACE_X11) */
1445 /* { */
1446 /* pmid = pm; */
1447 /* im2 = eina_hash_find(re->win->gl_context->shared->native_pm_hash, &pmid); */
1448 if (im2 == im) return im;
1449 if (im2)
1450 {
1451 n = im2->native.data;
1452 if (n)
1453 {
1454 evas_gl_common_image_ref(im2);
1455 evas_gl_common_image_free(im);
1456 return im2;
1457 }
1458 }
1459
1460 im2 = evas_gl_common_image_new_from_data(re->win->gl_context,
1461 im->w, im->h, NULL, im->alpha,
1462 EVAS_COLORSPACE_ARGB8888);
1463 evas_gl_common_image_free(im);
1464 im = im2;
1465 /* if (native) */
1466 /* { */
1467 /* n = calloc(1, sizeof(Native)); */
1468 /* if (n) */
1469 /* { */
1470 /* EGLConfig egl_config; */
1471 /* int config_attrs[20]; */
1472 /* int num_config, i = 0; */
1473
1474 /* eina_hash_add(re->win->gl_context->shared->native_pm_hash, &pmid, im); */
1475
1476 /* config_attrs[i++] = EGL_RED_SIZE; */
1477 /* config_attrs[i++] = 8; */
1478 /* config_attrs[i++] = EGL_GREEN_SIZE; */
1479 /* config_attrs[i++] = 8; */
1480 /* config_attrs[i++] = EGL_BLUE_SIZE; */
1481 /* config_attrs[i++] = 8; */
1482 /* config_attrs[i++] = EGL_ALPHA_SIZE; */
1483 /* config_attrs[i++] = 8; */
1484 /* config_attrs[i++] = EGL_DEPTH_SIZE; */
1485 /* config_attrs[i++] = 0; */
1486 /* config_attrs[i++] = EGL_STENCIL_SIZE; */
1487 /* config_attrs[i++] = 0; */
1488 /* config_attrs[i++] = EGL_RENDERABLE_TYPE; */
1489 /* config_attrs[i++] = EGL_OPENGL_ES2_BIT; */
1490 /* config_attrs[i++] = EGL_SURFACE_TYPE; */
1491 /* config_attrs[i++] = EGL_PIXMAP_BIT; */
1492 /* config_attrs[i++] = EGL_NONE; */
1493
1494 /* if (!eglChooseConfig(re->win->egl_disp, config_attrs, */
1495 /* &egl_config, 1, &num_config)) */
1496 /* ERR("eglChooseConfig() failed for, num_config = %i", num_config); */
1497 /* memcpy(&(n->ns), ns, sizeof(Evas_Native_Surface)); */
1498 /* n->pixmap = pm; */
1499 /* if (glsym_eglCreateImage) */
1500 /* n->egl_surface = glsym_eglCreateImage(re->win->egl_disp, */
1501 /* EGL_NO_CONTEXT, */
1502 /* EGL_NATIVE_PIXMAP_KHR, */
1503 /* (void *)pm, */
1504 /* NULL); */
1505 /* else */
1506 /* ERR("Try eglCreateImage on EGL with no support"); */
1507 /* if (!n->egl_surface) */
1508 /* ERR("eglCreatePixmapSurface() for 0x%x failed", (unsigned int)pm); */
1509 /* im->native.yinvert = 1; */
1510 /* im->native.loose = 0; */
1511 /* im->native.data = n; */
1512 /* im->native.func.data = re; */
1513 /* im->native.func.bind = _native_bind_cb; */
1514 /* im->native.func.unbind = _native_unbind_cb; */
1515 /* im->native.func.free = _native_free_cb; */
1516 /* im->native.target = GL_TEXTURE_2D; */
1517 /* im->native.mipmap = 0; */
1518 /* evas_gl_common_image_native_enable(im); */
1519 /* } */
1520 /* } */
1521 return im;
1522}
1523
1524static void *
1525eng_image_native_get(void *data __UNUSED__, void *image)
1526{
1527 Evas_GL_Image *im = image;
1528 Native *n;
1529 if (!im) return NULL;
1530 n = im->native.data;
1531 if (!n) return NULL;
1532 return &(n->ns);
1533}
1534
1535#if 0 // filtering disabled
1536static void
1537eng_image_draw_filtered(void *data, void *context, void *surface,
1538 void *image, Evas_Filter_Info *filter)
1539{
1540 Render_Engine *re = data;
1541
1542 if (!image) return;
1543 eng_window_use(re->win);
1544 evas_gl_common_context_target_surface_set(re->win->gl_context, surface);
1545 re->win->gl_context->dc = context;
1546
1547 evas_gl_common_filter_draw(re->win->gl_context, image, filter);
1548}
1549
1550static Filtered_Image *
1551eng_image_filtered_get(void *im, uint8_t *key, size_t keylen)
1552{
1553 return evas_gl_common_image_filtered_get(im, key, keylen);
1554}
1555
1556static Filtered_Image *
1557eng_image_filtered_save(void *im, void *fim, uint8_t *key, size_t keylen)
1558{
1559 return evas_gl_common_image_filtered_save(im, fim, key, keylen);
1560}
1561
1562static void
1563eng_image_filtered_free(void *im, Filtered_Image *fim)
1564{
1565 evas_gl_common_image_filtered_free(im, fim);
1566}
1567#endif
1568
1569static void *
1570eng_image_load(void *data, const char *file, const char *key, int *error, Evas_Image_Load_Opts *lo)
1571{
1572 Render_Engine *re;
1573
1574 re = (Render_Engine *)data;
1575 *error = EVAS_LOAD_ERROR_NONE;
1576 eng_window_use(re->win);
1577 return evas_gl_common_image_load(re->win->gl_context, file, key, lo, error);
1578}
1579
1580static void *
1581eng_image_new_from_data(void *data, int w, int h, DATA32 *image_data, int alpha, int cspace)
1582{
1583 Render_Engine *re;
1584
1585 re = (Render_Engine *)data;
1586 eng_window_use(re->win);
1587 return evas_gl_common_image_new_from_data(re->win->gl_context, w, h, image_data, alpha, cspace);
1588}
1589
1590static void *
1591eng_image_new_from_copied_data(void *data, int w, int h, DATA32 *image_data, int alpha, int cspace)
1592{
1593 Render_Engine *re;
1594
1595 re = (Render_Engine *)data;
1596 eng_window_use(re->win);
1597 return evas_gl_common_image_new_from_copied_data(re->win->gl_context, w, h, image_data, alpha, cspace);
1598}
1599
1600static void
1601eng_image_free(void *data, void *image)
1602{
1603 Render_Engine *re;
1604
1605 re = (Render_Engine *)data;
1606 if (!image) return;
1607 eng_window_use(re->win);
1608 evas_gl_common_image_free(image);
1609}
1610
1611static void
1612eng_image_size_get(void *data __UNUSED__, void *image, int *w, int *h)
1613{
1614 if (!image)
1615 {
1616 *w = 0;
1617 *h = 0;
1618 return;
1619 }
1620 if (w) *w = ((Evas_GL_Image *)image)->w;
1621 if (h) *h = ((Evas_GL_Image *)image)->h;
1622}
1623
1624static void *
1625eng_image_size_set(void *data, void *image, int w, int h)
1626{
1627 Render_Engine *re;
1628 Evas_GL_Image *im = image;
1629 Evas_GL_Image *im_old;
1630
1631 re = (Render_Engine *)data;
1632 if (!im) return NULL;
1633 if (im->native.data)
1634 {
1635 im->w = w;
1636 im->h = h;
1637 return image;
1638 }
1639 eng_window_use(re->win);
1640 if ((im->tex) && (im->tex->pt->dyn.img))
1641 {
1642 evas_gl_common_texture_free(im->tex);
1643 im->tex = NULL;
1644 im->w = w;
1645 im->h = h;
1646 im->tex = evas_gl_common_texture_dynamic_new(im->gc, im);
1647 return image;
1648 }
1649 im_old = image;
1650
1651 switch (eng_image_colorspace_get(data, image))
1652 {
1653 case EVAS_COLORSPACE_YCBCR422P601_PL:
1654 case EVAS_COLORSPACE_YCBCR422P709_PL:
1655 case EVAS_COLORSPACE_YCBCR422601_PL:
1656 case EVAS_COLORSPACE_YCBCR420NV12601_PL:
1657 case EVAS_COLORSPACE_YCBCR420TM12601_PL:
1658 w &= ~0x1;
1659 break;
1660 }
1661
1662 if ((im_old) &&
1663 ((int)im_old->im->cache_entry.w == w) &&
1664 ((int)im_old->im->cache_entry.h == h))
1665 return image;
1666 if (im_old)
1667 {
1668 im = evas_gl_common_image_new(re->win->gl_context, w, h,
1669 eng_image_alpha_get(data, image),
1670 eng_image_colorspace_get(data, image));
1671 /*
1672 evas_common_load_image_data_from_file(im_old->im);
1673 if (im_old->im->image->data)
1674 {
1675 evas_common_blit_rectangle(im_old->im, im->im, 0, 0, w, h, 0, 0);
1676 evas_common_cpu_end_opt();
1677 }
1678 */
1679 evas_gl_common_image_free(im_old);
1680 }
1681 else
1682 im = evas_gl_common_image_new(re->win->gl_context, w, h, 1, EVAS_COLORSPACE_ARGB8888);
1683 return im;
1684}
1685
1686static void *
1687eng_image_dirty_region(void *data, void *image, int x, int y, int w, int h)
1688{
1689 Render_Engine *re;
1690 Evas_GL_Image *im = image;
1691
1692 re = (Render_Engine *)data;
1693 if (!image) return NULL;
1694 if (im->native.data) return image;
1695 eng_window_use(re->win);
1696 evas_gl_common_image_dirty(image, x, y, w, h);
1697 return image;
1698}
1699
1700static void *
1701eng_image_data_get(void *data, void *image, int to_write, DATA32 **image_data, int *err)
1702{
1703 Render_Engine *re;
1704 Evas_GL_Image *im;
1705 int error;
1706
1707 re = (Render_Engine *)data;
1708 if (!image)
1709 {
1710 *image_data = NULL;
1711 if (err) *err = EVAS_LOAD_ERROR_GENERIC;
1712 return NULL;
1713 }
1714 im = image;
1715 if (im->native.data)
1716 {
1717 *image_data = NULL;
1718 if (err) *err = EVAS_LOAD_ERROR_NONE;
1719 return im;
1720 }
1721
1722 eng_window_use(re->win);
1723
1724 if ((im->tex) && (im->tex->pt) && (im->tex->pt->dyn.img) && (im->cs.space == EVAS_COLORSPACE_ARGB8888))
1725 {
1726 if (im->tex->pt->dyn.checked_out > 0)
1727 {
1728 im->tex->pt->dyn.checked_out++;
1729 *image_data = im->tex->pt->dyn.data;
1730 if (err) *err = EVAS_LOAD_ERROR_NONE;
1731 return im;
1732 }
1733 *image_data = im->tex->pt->dyn.data = glsym_eglMapImageSEC(re->win->egl_disp, im->tex->pt->dyn.img);
1734
1735 if (!im->tex->pt->dyn.data)
1736 {
1737 if (err) *err = EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED;
1738 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
1739 return im;
1740 }
1741 im->tex->pt->dyn.checked_out++;
1742
1743 if (err) *err = EVAS_LOAD_ERROR_NONE;
1744 return im;
1745 }
1746
1747 /* Engine can fail to create texture after cache drop like eng_image_content_hint_set function,
1748 so it is need to add code which check im->im's NULL value*/
1749
1750 if (!im->im)
1751 {
1752 *image_data = NULL;
1753 if (err) *err = EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED;
1754 return NULL;
1755 }
1756
1757 error = evas_cache_image_load_data(&im->im->cache_entry);
1758 switch (im->cs.space)
1759 {
1760 case EVAS_COLORSPACE_ARGB8888:
1761 if (to_write)
1762 {
1763 if (im->references > 1)
1764 {
1765 Evas_GL_Image *im_new;
1766
1767 im_new = evas_gl_common_image_new_from_copied_data
1768 (im->gc, im->im->cache_entry.w, im->im->cache_entry.h,
1769 im->im->image.data,
1770 eng_image_alpha_get(data, image),
1771 eng_image_colorspace_get(data, image));
1772 if (!im_new)
1773 {
1774 *image_data = NULL;
1775 if (err) *err = EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED;
1776 return NULL;
1777 }
1778 evas_gl_common_image_free(im);
1779 im = im_new;
1780 }
1781 else
1782 evas_gl_common_image_dirty(im, 0, 0, 0, 0);
1783 }
1784 *image_data = im->im->image.data;
1785 break;
1786 case EVAS_COLORSPACE_YCBCR422P601_PL:
1787 case EVAS_COLORSPACE_YCBCR422P709_PL:
1788 case EVAS_COLORSPACE_YCBCR422601_PL:
1789 case EVAS_COLORSPACE_YCBCR420NV12601_PL:
1790 case EVAS_COLORSPACE_YCBCR420TM12601_PL:
1791 *image_data = im->cs.data;
1792 break;
1793 default:
1794 abort();
1795 break;
1796 }
1797 if (err) *err = error;
1798 return im;
1799}
1800
1801static void *
1802eng_image_data_put(void *data, void *image, DATA32 *image_data)
1803{
1804 Render_Engine *re;
1805 Evas_GL_Image *im, *im2;
1806
1807 re = (Render_Engine *)data;
1808 if (!image) return NULL;
1809 im = image;
1810 if (im->native.data) return image;
1811 eng_window_use(re->win);
1812 if ((im->tex) && (im->tex->pt)
1813 && (im->tex->pt->dyn.data)
1814 && (im->cs.space == EVAS_COLORSPACE_ARGB8888))
1815 {
1816 int w, h;
1817
1818 if (im->tex->pt->dyn.data == image_data)
1819 {
1820 im->tex->pt->dyn.checked_out--;
1821 if (im->tex->pt->dyn.checked_out == 0)
1822 glsym_eglUnmapImageSEC(re->win->egl_disp, im->tex->pt->dyn.img);
1823 return image;
1824 }
1825
1826 w = im->im->cache_entry.w;
1827 h = im->im->cache_entry.h;
1828 im2 = eng_image_new_from_data(data, w, h, image_data,
1829 eng_image_alpha_get(data, image),
1830 eng_image_colorspace_get(data, image));
1831 if (!im2) return im;
1832 evas_gl_common_image_free(im);
1833 im = im2;
1834 evas_gl_common_image_dirty(im, 0, 0, 0, 0);
1835 return im;
1836 }
1837 switch (im->cs.space)
1838 {
1839 case EVAS_COLORSPACE_ARGB8888:
1840 if (image_data != im->im->image.data)
1841 {
1842 int w, h;
1843
1844 w = im->im->cache_entry.w;
1845 h = im->im->cache_entry.h;
1846 im2 = eng_image_new_from_data(data, w, h, image_data,
1847 eng_image_alpha_get(data, image),
1848 eng_image_colorspace_get(data, image));
1849 if (!im2) return im;
1850 evas_gl_common_image_free(im);
1851 im = im2;
1852 }
1853 break;
1854 case EVAS_COLORSPACE_YCBCR422P601_PL:
1855 case EVAS_COLORSPACE_YCBCR422P709_PL:
1856 case EVAS_COLORSPACE_YCBCR422601_PL:
1857 case EVAS_COLORSPACE_YCBCR420NV12601_PL:
1858 case EVAS_COLORSPACE_YCBCR420TM12601_PL:
1859 if (image_data != im->cs.data)
1860 {
1861 if (im->cs.data)
1862 {
1863 if (!im->cs.no_free) free(im->cs.data);
1864 }
1865 im->cs.data = image_data;
1866 }
1867 evas_gl_common_image_dirty(im, 0, 0, 0, 0);
1868 break;
1869 default:
1870 abort();
1871 break;
1872 }
1873 return im;
1874}
1875
1876static void
1877eng_image_data_preload_request(void *data __UNUSED__, void *image, const void *target)
1878{
1879 Evas_GL_Image *gim = image;
1880 RGBA_Image *im;
1881
1882 if (!gim) return;
1883 if (gim->native.data) return;
1884 im = (RGBA_Image *)gim->im;
1885 if (!im) return;
1886 evas_cache_image_preload_data(&im->cache_entry, target);
1887}
1888
1889static void
1890eng_image_data_preload_cancel(void *data __UNUSED__, void *image, const void *target)
1891{
1892 Evas_GL_Image *gim = image;
1893 RGBA_Image *im;
1894
1895 if (!gim) return;
1896 if (gim->native.data) return;
1897 im = (RGBA_Image *)gim->im;
1898 if (!im) return;
1899 evas_cache_image_preload_cancel(&im->cache_entry, target);
1900}
1901
1902static void
1903eng_image_draw(void *data, void *context, void *surface, void *image, int src_x, int src_y, int src_w, int src_h, int dst_x, int dst_y, int dst_w, int dst_h, int smooth)
1904{
1905 Render_Engine *re;
1906
1907 re = (Render_Engine *)data;
1908 if (!image) return;
1909 eng_window_use(re->win);
1910 evas_gl_common_context_target_surface_set(re->win->gl_context, surface);
1911 re->win->gl_context->dc = context;
1912 evas_gl_common_image_draw(re->win->gl_context, image,
1913 src_x, src_y, src_w, src_h,
1914 dst_x, dst_y, dst_w, dst_h,
1915 smooth);
1916}
1917
1918static void
1919eng_image_scale_hint_set(void *data __UNUSED__, void *image, int hint)
1920{
1921 if (image) evas_gl_common_image_scale_hint_set(image, hint);
1922}
1923
1924static int
1925eng_image_scale_hint_get(void *data __UNUSED__, void *image)
1926{
1927 Evas_GL_Image *gim = image;
1928 if (!gim) return EVAS_IMAGE_SCALE_HINT_NONE;
1929 return gim->scale_hint;
1930}
1931
1932static void
1933eng_image_map_draw(void *data, void *context, void *surface, void *image, int npoints, RGBA_Map_Point *p, int smooth, int level)
1934{
1935 Evas_GL_Image *gim = image;
1936 Render_Engine *re;
1937
1938 re = (Render_Engine *)data;
1939 if (!image) return;
1940 eng_window_use(re->win);
1941 evas_gl_common_context_target_surface_set(re->win->gl_context, surface);
1942 re->win->gl_context->dc = context;
1943 if (npoints != 4)
1944 {
1945 // FIXME: nash - you didn't fix this
1946 abort();
1947 }
1948 if ((p[0].x == p[3].x) &&
1949 (p[1].x == p[2].x) &&
1950 (p[0].y == p[1].y) &&
1951 (p[3].y == p[2].y) &&
1952 (p[0].x <= p[1].x) &&
1953 (p[0].y <= p[2].y) &&
1954 (p[0].u == 0) &&
1955 (p[0].v == 0) &&
1956 (p[1].u == (gim->w << FP)) &&
1957 (p[1].v == 0) &&
1958 (p[2].u == (gim->w << FP)) &&
1959 (p[2].v == (gim->h << FP)) &&
1960 (p[3].u == 0) &&
1961 (p[3].v == (gim->h << FP)) &&
1962 (p[0].col == 0xffffffff) &&
1963 (p[1].col == 0xffffffff) &&
1964 (p[2].col == 0xffffffff) &&
1965 (p[3].col == 0xffffffff))
1966 {
1967 int dx, dy, dw, dh;
1968
1969 dx = p[0].x >> FP;
1970 dy = p[0].y >> FP;
1971 dw = (p[2].x >> FP) - dx;
1972 dh = (p[2].y >> FP) - dy;
1973 eng_image_draw(data, context, surface, image,
1974 0, 0, gim->w, gim->h, dx, dy, dw, dh, smooth);
1975 }
1976 else
1977 {
1978 evas_gl_common_image_map_draw(re->win->gl_context, image, npoints, p,
1979 smooth, level);
1980 }
1981}
1982
1983static void *
1984eng_image_map_surface_new(void *data, int w, int h, int alpha)
1985{
1986 Render_Engine *re;
1987
1988 re = (Render_Engine *)data;
1989 return evas_gl_common_image_surface_new(re->win->gl_context, w, h, alpha);
1990}
1991
1992static void
1993eng_image_map_surface_free(void *data __UNUSED__, void *surface)
1994{
1995 evas_gl_common_image_free(surface);
1996}
1997
1998static void
1999eng_image_content_hint_set(void *data __UNUSED__, void *image, int hint)
2000{
2001 if (image) evas_gl_common_image_content_hint_set(image, hint);
2002}
2003
2004static int
2005eng_image_content_hint_get(void *data __UNUSED__, void *image)
2006{
2007 Evas_GL_Image *gim = image;
2008 if (!gim) return EVAS_IMAGE_CONTENT_HINT_NONE;
2009 return gim->content_hint;
2010}
2011
2012static void
2013eng_image_cache_flush(void *data)
2014{
2015 Render_Engine *re;
2016 int tmp_size;
2017
2018 re = (Render_Engine *)data;
2019
2020 tmp_size = evas_common_image_get_cache();
2021 evas_common_image_set_cache(0);
2022 evas_common_rgba_image_scalecache_flush();
2023 evas_gl_common_image_cache_flush(re->win->gl_context);
2024 evas_common_image_set_cache(tmp_size);
2025}
2026
2027static void
2028eng_image_cache_set(void *data, int bytes)
2029{
2030 Render_Engine *re;
2031
2032 re = (Render_Engine *)data;
2033 evas_common_image_set_cache(bytes);
2034 evas_common_rgba_image_scalecache_size_set(bytes);
2035 evas_gl_common_image_cache_flush(re->win->gl_context);
2036}
2037
2038static int
2039eng_image_cache_get(void *data __UNUSED__)
2040{
2041 return evas_common_image_get_cache();
2042}
2043
2044static void
2045eng_image_stride_get(void *data __UNUSED__, void *image, int *stride)
2046{
2047 Evas_GL_Image *im = image;
2048
2049 if ((im->tex) && (im->tex->pt->dyn.img))
2050 *stride = im->tex->pt->dyn.stride;
2051 else
2052 *stride = im->w * 4;
2053}
2054
2055static void
2056eng_font_draw(void *data, void *context, void *surface, Evas_Font_Set *font, int x, int y, int w __UNUSED__, int h __UNUSED__, int ow __UNUSED__, int oh __UNUSED__, const Evas_Text_Props *intl_props)
2057{
2058 Render_Engine *re;
2059
2060 re = (Render_Engine *)data;
2061 eng_window_use(re->win);
2062 evas_gl_common_context_target_surface_set(re->win->gl_context, surface);
2063 re->win->gl_context->dc = context;
2064 {
2065 // FIXME: put im into context so we can free it
2066 static RGBA_Image *im = NULL;
2067
2068 if (!im)
2069 im = (RGBA_Image *)evas_cache_image_empty(evas_common_image_cache_get());
2070 im->cache_entry.w = re->win->w;
2071 im->cache_entry.h = re->win->h;
2072 evas_common_draw_context_font_ext_set(context,
2073 re->win->gl_context,
2074 evas_gl_font_texture_new,
2075 evas_gl_font_texture_free,
2076 evas_gl_font_texture_draw);
2077 evas_common_font_draw(im, context, (RGBA_Font *) font, x, y,
2078 intl_props);
2079 evas_common_draw_context_font_ext_set(context, NULL, NULL, NULL, NULL);
2080 }
2081}
2082
2083static Eina_Bool
2084eng_canvas_alpha_get(void *data, void *info __UNUSED__)
2085{
2086 Render_Engine *re = (Render_Engine *)data;
2087 return re->win->alpha;
2088}
2089
2090static int
2091_set_internal_config(Render_Engine_GL_Surface *sfc, Evas_GL_Config *cfg)
2092{
2093 // Also initialize pixel format here as well...
2094 switch(cfg->color_format)
2095 {
2096 case EVAS_GL_RGB_888:
2097 sfc->rt_fmt = GL_RGB;
2098 sfc->rt_internal_fmt = GL_RGB;
2099 break;
2100 case EVAS_GL_RGBA_8888:
2101 sfc->rt_fmt = GL_RGBA;
2102 sfc->rt_internal_fmt = GL_RGBA;
2103 break;
2104 default:
2105 ERR("Invalid Color Format!");
2106 return 0;
2107 }
2108
2109 switch(cfg->depth_bits)
2110 {
2111 case EVAS_GL_DEPTH_NONE:
2112 break;
2113 case EVAS_GL_DEPTH_BIT_8:
2114 case EVAS_GL_DEPTH_BIT_16:
2115 case EVAS_GL_DEPTH_BIT_24:
2116 // 24 bit doesn't work... just cover it with 16 for now..
2117 sfc->rb_depth_fmt = GL_DEPTH_COMPONENT16;
2118 break;
2119 case EVAS_GL_DEPTH_BIT_32:
2120 default:
2121 ERR("Unsupported Depth Bits Format!");
2122 return 0;
2123 }
2124
2125 switch(cfg->stencil_bits)
2126 {
2127 case EVAS_GL_STENCIL_NONE:
2128 break;
2129 case EVAS_GL_STENCIL_BIT_1:
2130 case EVAS_GL_STENCIL_BIT_2:
2131 case EVAS_GL_STENCIL_BIT_4:
2132 case EVAS_GL_STENCIL_BIT_8:
2133 sfc->rb_stencil_fmt = GL_STENCIL_INDEX8;
2134 break;
2135 case EVAS_GL_STENCIL_BIT_16:
2136 default:
2137 ERR("Unsupported Stencil Bits Format!");
2138 return 0;
2139 }
2140
2141 // Do Packed Depth24_Stencil8 Later...
2142
2143 return 1;
2144}
2145
2146static int
2147_create_rt_buffers(Render_Engine *data __UNUSED__,
2148 Render_Engine_GL_Surface *sfc)
2149{
2150 // Render Target texture
2151 glGenTextures(1, &sfc->rt_tex );
2152
2153 // Depth RenderBuffer - Create storage here...
2154 if (sfc->depth_bits != EVAS_GL_DEPTH_NONE)
2155 glGenRenderbuffers(1, &sfc->rb_depth);
2156
2157 // Stencil RenderBuffer - Create Storage here...
2158 if (sfc->stencil_bits != EVAS_GL_STENCIL_NONE)
2159 glGenRenderbuffers(1, &sfc->rb_stencil);
2160
2161 return 1;
2162}
2163
2164static int
2165_attach_fbo_surface(Render_Engine *data __UNUSED__,
2166 Render_Engine_GL_Surface *sfc,
2167 Render_Engine_GL_Context *ctx)
2168{
2169 int fb_status;
2170
2171 // Initialize Texture
2172 glBindTexture(GL_TEXTURE_2D, sfc->rt_tex );
2173 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
2174 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
2175 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
2176 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
2177 glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, sfc->w, sfc->h, 0,
2178 GL_RGBA, GL_UNSIGNED_BYTE, NULL);
2179 glBindTexture(GL_TEXTURE_2D, 0);
2180
2181
2182 // Attach texture to FBO
2183 glBindFramebuffer(GL_FRAMEBUFFER, ctx->context_fbo);
2184 glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
2185 GL_TEXTURE_2D, sfc->rt_tex, 0);
2186
2187 // Depth RenderBuffer - Attach it to FBO
2188 if (sfc->depth_bits != EVAS_GL_DEPTH_NONE)
2189 {
2190 glBindRenderbuffer(GL_RENDERBUFFER, sfc->rb_depth);
2191 glRenderbufferStorage(GL_RENDERBUFFER, sfc->rb_depth_fmt,
2192 sfc->w, sfc->h);
2193 glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT,
2194 GL_RENDERBUFFER, sfc->rb_depth);
2195 glBindRenderbuffer(GL_RENDERBUFFER, 0);
2196 }
2197
2198 // Stencil RenderBuffer - Attach it to FBO
2199 if (sfc->stencil_bits != EVAS_GL_STENCIL_NONE)
2200 {
2201 glBindRenderbuffer(GL_RENDERBUFFER, sfc->rb_stencil);
2202 glRenderbufferStorage(GL_RENDERBUFFER, sfc->rb_stencil_fmt,
2203 sfc->w, sfc->h);
2204 glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT,
2205 GL_RENDERBUFFER, sfc->rb_stencil);
2206 glBindRenderbuffer(GL_RENDERBUFFER, 0);
2207 }
2208
2209 // Check FBO for completeness
2210 fb_status = glCheckFramebufferStatus(GL_FRAMEBUFFER);
2211 if (fb_status != GL_FRAMEBUFFER_COMPLETE)
2212 {
2213 ERR("FBO not complete!");
2214 return 0;
2215 }
2216
2217 return 1;
2218}
2219
2220
2221static void *
2222eng_gl_surface_create(void *data, void *config, int w, int h)
2223{
2224 Render_Engine *re;
2225 Render_Engine_GL_Surface *sfc;
2226 Render_Engine_GL_Resource *rsc;
2227 Evas_GL_Config *cfg;
2228 int ret;
2229
2230 sfc = calloc(1, sizeof(Render_Engine_GL_Surface));
2231 if (!sfc) return NULL;
2232
2233 re = (Render_Engine *)data;
2234 cfg = (Evas_GL_Config *)config;
2235
2236 sfc->initialized = 0;
2237 sfc->fbo_attached = 0;
2238 sfc->w = w;
2239 sfc->h = h;
2240 sfc->depth_bits = cfg->depth_bits;
2241 sfc->stencil_bits = cfg->stencil_bits;
2242 sfc->rt_tex = 0;
2243 sfc->rb_depth = 0;
2244 sfc->rb_stencil = 0;
2245
2246 // Set the internal format based on the config
2247 if (!_set_internal_config(sfc, cfg))
2248 {
2249 ERR("Unsupported Format!");
2250 free(sfc);
2251 return NULL;
2252 }
2253
2254 // Create internal resource context if it hasn't been created already
2255 if ((rsc = eina_tls_get(resource_key)) == NULL)
2256 {
2257 if ((rsc = _create_internal_glue_resources(re)) == NULL)
2258 {
2259 ERR("Error creating internal resources.");
2260 free(sfc);
2261 return NULL;
2262 }
2263 }
2264
2265 // I'm using evas's original context to create the render target texture
2266 // This is to prevent awkwardness in using native_surface_get() function
2267 // If the rt texture creation is deferred till the context is created and
2268 // make_current called, the user can't call native_surface_get() right
2269 // after the surface is created. hence this is done here using evas' context.
2270 ret = eglMakeCurrent(re->win->egl_disp, rsc->surface, rsc->surface, rsc->context);
2271 if (!ret)
2272 {
2273 ERR("xxxMakeCurrent() failed!");
2274 free(sfc);
2275 return NULL;
2276 }
2277
2278 // Create Render texture
2279 if (!_create_rt_buffers(re, sfc))
2280 {
2281 ERR("_create_rt_buffers() failed.");
2282 free(sfc);
2283 return NULL;
2284 }
2285
2286 ret = eglMakeCurrent(re->win->egl_disp, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
2287 if (!ret)
2288 {
2289 ERR("xxxMakeCurrent() failed!");
2290 free(sfc);
2291 return NULL;
2292 }
2293
2294 return sfc;
2295}
2296
2297static int
2298eng_gl_surface_destroy(void *data, void *surface)
2299{
2300 Render_Engine *re;
2301 Render_Engine_GL_Surface *sfc;
2302 Render_Engine_GL_Resource *rsc;
2303 int ret;
2304
2305 re = (Render_Engine *)data;
2306 sfc = (Render_Engine_GL_Surface*)surface;
2307
2308 if (!sfc) return 0;
2309
2310 if ((rsc = eina_tls_get(resource_key)) == EINA_FALSE) return 0;
2311
2312 ret = eglMakeCurrent(re->win->egl_disp, rsc->surface, rsc->surface, rsc->context);
2313 if (!ret)
2314 {
2315 ERR("xxxMakeCurrent() failed!");
2316 return 0;
2317 }
2318
2319 // Delete FBO/RBO and Texture here
2320 if (sfc->rt_tex)
2321 glDeleteTextures(1, &sfc->rt_tex);
2322
2323 if (sfc->rb_depth)
2324 glDeleteRenderbuffers(1, &sfc->rb_depth);
2325
2326 if (sfc->rb_stencil)
2327 glDeleteRenderbuffers(1, &sfc->rb_stencil);
2328
2329 ret = eglMakeCurrent(re->win->egl_disp, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
2330 if (!ret)
2331 {
2332 ERR("xxxMakeCurrent() failed!");
2333 free(sfc);
2334 return 0;
2335 }
2336
2337 free(sfc);
2338 surface = NULL;
2339
2340 return 1;
2341}
2342
2343static void *
2344eng_gl_context_create(void *data, void *share_context)
2345{
2346 Render_Engine *re;
2347 Render_Engine_GL_Context *ctx;
2348 Render_Engine_GL_Context *share_ctx;
2349 int context_attrs[3];
2350
2351 ctx = calloc(1, sizeof(Render_Engine_GL_Context));
2352
2353 if (!ctx) return NULL;
2354
2355 re = (Render_Engine *)data;
2356 share_ctx = (Render_Engine_GL_Context *)share_context;
2357
2358 // Set the share context to Evas' GL context if share_context is NULL.
2359 // Otherwise set it to the given share_context.
2360
2361 // EGL
2362 context_attrs[0] = EGL_CONTEXT_CLIENT_VERSION;
2363 context_attrs[1] = 2;
2364 context_attrs[2] = EGL_NONE;
2365
2366 if (share_ctx)
2367 {
2368 ctx->context = eglCreateContext(re->win->egl_disp,
2369 re->win->egl_config,
2370 share_ctx->context, // Share Context
2371 context_attrs);
2372 }
2373 else
2374 {
2375 ctx->context = eglCreateContext(re->win->egl_disp,
2376 re->win->egl_config,
2377 re->win->egl_context[0], // Evas' GL Context
2378 context_attrs);
2379 }
2380
2381 if (!ctx->context)
2382 {
2383 ERR("eglCreateContext() fail. code=%#x", eglGetError());
2384 return NULL;
2385 }
2386
2387 ctx->initialized = 0;
2388 ctx->context_fbo = 0;
2389 ctx->current_sfc = NULL;
2390
2391 return ctx;
2392}
2393
2394static int
2395eng_gl_context_destroy(void *data, void *context)
2396{
2397 Render_Engine *re;
2398 Render_Engine_GL_Context *ctx;
2399 Render_Engine_GL_Resource *rsc;
2400 int ret;
2401
2402 re = (Render_Engine *)data;
2403 ctx = (Render_Engine_GL_Context*)context;
2404
2405 if (!ctx) return 0;
2406
2407 if ((rsc = eina_tls_get(resource_key)) == EINA_FALSE) return 0;
2408
2409 // 1. Do a make current with the given context
2410 ret = eglMakeCurrent(re->win->egl_disp, rsc->surface,
2411 rsc->surface, ctx->context);
2412 if (!ret)
2413 {
2414 ERR("xxxMakeCurrent() failed!");
2415 return 0;
2416 }
2417
2418 // 2. Delete the FBO
2419 if (ctx->context_fbo)
2420 glDeleteFramebuffers(1, &ctx->context_fbo);
2421
2422 // 3. Destroy the Context
2423 eglDestroyContext(re->win->egl_disp, ctx->context);
2424
2425 ctx->context = EGL_NO_CONTEXT;
2426
2427 ret = eglMakeCurrent(re->win->egl_disp, EGL_NO_SURFACE,
2428 EGL_NO_SURFACE, EGL_NO_CONTEXT);
2429 if (!ret)
2430 {
2431 ERR("xxxMakeCurrent() failed!");
2432 return 0;
2433 }
2434
2435 free(ctx);
2436 context = NULL;
2437
2438 return 1;
2439}
2440
2441static int
2442eng_gl_make_current(void *data __UNUSED__, void *surface, void *context)
2443{
2444 Render_Engine *re;
2445 Render_Engine_GL_Surface *sfc;
2446 Render_Engine_GL_Context *ctx;
2447 int ret = 0;
2448 Render_Engine_GL_Resource *rsc;
2449
2450 re = (Render_Engine *)data;
2451 sfc = (Render_Engine_GL_Surface*)surface;
2452 ctx = (Render_Engine_GL_Context*)context;
2453
2454 // Unset surface/context
2455 if ((!sfc) || (!ctx))
2456 {
2457 ret = eglMakeCurrent(re->win->egl_disp, EGL_NO_SURFACE,
2458 EGL_NO_SURFACE, EGL_NO_CONTEXT);
2459 if (!ret)
2460 {
2461 ERR("xxxMakeCurrent() failed!");
2462 return 0;
2463 }
2464
2465 if (ctx) ctx->current_sfc = NULL;
2466 if (sfc) sfc->current_ctx = NULL;
2467 current_evgl_ctx = NULL;
2468 return 1;
2469 }
2470
2471 // Do a make current only if it's not already current
2472 if ((rsc = eina_tls_get(resource_key)) == EINA_FALSE) return 0;
2473
2474 if ((eglGetCurrentContext() != ctx->context) ||
2475 (eglGetCurrentSurface(EGL_READ) != rsc->surface) ||
2476 (eglGetCurrentSurface(EGL_DRAW) != rsc->surface) )
2477 {
2478 // Flush remainder of what's in Evas' pipeline
2479 if (re->win) eng_window_use(NULL);
2480
2481 // Do a make current
2482 ret = eglMakeCurrent(re->win->egl_disp, rsc->surface,
2483 rsc->surface, ctx->context);
2484 if (!ret)
2485 {
2486 ERR("xxxMakeCurrent() failed!");
2487 return 0;
2488 }
2489 }
2490
2491 // Create FBO if not already created
2492 if (!ctx->initialized)
2493 {
2494 glGenFramebuffers(1, &ctx->context_fbo);
2495 ctx->initialized = 1;
2496 }
2497
2498 // Attach FBO if it hasn't been attached or if surface changed
2499 if ((!sfc->fbo_attached) || (ctx->current_sfc != sfc))
2500 {
2501 if (!_attach_fbo_surface(re, sfc, ctx))
2502 {
2503 ERR("_attach_fbo_surface() failed.");
2504 return 0;
2505 }
2506
2507 if (ctx->current_fbo)
2508 // Bind to the previously bound buffer
2509 glBindFramebuffer(GL_FRAMEBUFFER, ctx->current_fbo);
2510 else
2511 // Bind FBO
2512 glBindFramebuffer(GL_FRAMEBUFFER, ctx->context_fbo);
2513
2514 sfc->fbo_attached = 1;
2515 }
2516
2517 // Set the current surface/context
2518 ctx->current_sfc = sfc;
2519 sfc->current_ctx = ctx;
2520 current_evgl_ctx = ctx;
2521
2522 return 1;
2523}
2524
2525static void *
2526eng_gl_string_query(void *data __UNUSED__, int name)
2527{
2528 switch(name)
2529 {
2530 case EVAS_GL_EXTENSIONS:
2531 return (void*)_evasgl_ext_string;
2532 default:
2533 return NULL;
2534 };
2535}
2536
2537static void *
2538eng_gl_proc_address_get(void *data __UNUSED__, const char *name)
2539{
2540 if (glsym_eglGetProcAddress) return glsym_eglGetProcAddress(name);
2541 return dlsym(RTLD_DEFAULT, name);
2542}
2543
2544static int
2545eng_gl_native_surface_get(void *data, void *surface, void *native_surface)
2546{
2547 Render_Engine *re;
2548 Render_Engine_GL_Surface *sfc;
2549 Evas_Native_Surface *ns;
2550
2551 re = (Render_Engine *)data;
2552 sfc = (Render_Engine_GL_Surface*)surface;
2553 ns = (Evas_Native_Surface*)native_surface;
2554
2555 ns->type = EVAS_NATIVE_SURFACE_OPENGL;
2556 ns->version = EVAS_NATIVE_SURFACE_VERSION;
2557 ns->data.opengl.texture_id = sfc->rt_tex;
2558 ns->data.opengl.x = 0;
2559 ns->data.opengl.y = 0;
2560 ns->data.opengl.w = sfc->w;
2561 ns->data.opengl.h = sfc->h;
2562
2563 return 1;
2564}
2565
2566
2567static const GLubyte *
2568evgl_glGetString(GLenum name)
2569{
2570 if (name == GL_EXTENSIONS)
2571 return (GLubyte *)_gl_ext_string; //glGetString(GL_EXTENSIONS);
2572 else
2573 return glGetString(name);
2574}
2575
2576static void
2577evgl_glBindFramebuffer(GLenum target, GLuint framebuffer)
2578{
2579 Render_Engine_GL_Context *ctx = current_evgl_ctx;
2580
2581 // Take care of BindFramebuffer 0 issue
2582 if (framebuffer==0)
2583 {
2584 if (ctx)
2585 {
2586 glBindFramebuffer(target, ctx->context_fbo);
2587 ctx->current_fbo = 0;
2588 }
2589 }
2590 else
2591 {
2592 glBindFramebuffer(target, framebuffer);
2593
2594 // Save this for restore when doing make current
2595 if (ctx)
2596 ctx->current_fbo = framebuffer;
2597 }
2598}
2599
2600static void
2601evgl_glBindRenderbuffer(GLenum target, GLuint renderbuffer)
2602{
2603 // Add logic to take care when renderbuffer=0
2604 // On a second thought we don't need this
2605 glBindRenderbuffer(target, renderbuffer);
2606}
2607
2608static void
2609evgl_glClearDepthf(GLclampf depth)
2610{
2611 glClearDepthf(depth);
2612}
2613
2614static void
2615evgl_glDepthRangef(GLclampf zNear, GLclampf zFar)
2616{
2617 glDepthRangef(zNear, zFar);
2618}
2619
2620static void
2621evgl_glGetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision)
2622{
2623 glGetShaderPrecisionFormat(shadertype, precisiontype, range, precision);
2624}
2625
2626static void
2627evgl_glReleaseShaderCompiler(void)
2628{
2629 glReleaseShaderCompiler();
2630}
2631
2632static void
2633evgl_glShaderBinary(GLsizei n, const GLuint* shaders, GLenum binaryformat, const void* binary, GLsizei length)
2634{
2635 glShaderBinary(n, shaders, binaryformat, binary, length);
2636}
2637
2638//--------------------------------//
2639//#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
2640// EGL Extensions
2641static void *
2642evgl_evasglCreateImage(int target, void* buffer, int *attrib_list)
2643{
2644 if (current_engine)
2645 {
2646 return glsym_eglCreateImage(current_engine->win->egl_disp,
2647 EGL_NO_CONTEXT,
2648 target,
2649 buffer,
2650 attrib_list);
2651 }
2652 else
2653 {
2654 ERR("Invalid Engine... (Can't acccess EGL Display)\n");
2655 return NULL;
2656 }
2657}
2658
2659static void
2660evgl_evasglDestroyImage(EvasGLImage image)
2661{
2662 if (current_engine)
2663 glsym_eglDestroyImage(current_engine->win->egl_disp, image);
2664 else
2665 ERR("Invalid Engine... (Can't acccess EGL Display)\n");
2666}
2667
2668static void
2669evgl_glEvasGLImageTargetTexture2DOES(GLenum target, EvasGLImage image)
2670{
2671 glsym_glEGLImageTargetTexture2DOES(target, image);
2672}
2673
2674static void
2675evgl_glEvasGLImageTargetRenderbufferStorageOES(GLenum target, EvasGLImage image)
2676{
2677 glsym_glEGLImageTargetTexture2DOES(target, image);
2678}
2679
2680//--------------------------------//
2681
2682
2683static void *
2684eng_gl_api_get(void *data)
2685{
2686 Render_Engine *re;
2687
2688 re = (Render_Engine *)data;
2689
2690 gl_funcs.version = EVAS_GL_API_VERSION;
2691
2692#define ORD(f) EVAS_API_OVERRIDE(f, &gl_funcs, )
2693 // GLES 2.0
2694 ORD(glActiveTexture);
2695 ORD(glAttachShader);
2696 ORD(glBindAttribLocation);
2697 ORD(glBindBuffer);
2698 ORD(glBindTexture);
2699 ORD(glBlendColor);
2700 ORD(glBlendEquation);
2701 ORD(glBlendEquationSeparate);
2702 ORD(glBlendFunc);
2703 ORD(glBlendFuncSeparate);
2704 ORD(glBufferData);
2705 ORD(glBufferSubData);
2706 ORD(glCheckFramebufferStatus);
2707 ORD(glClear);
2708 ORD(glClearColor);
2709// ORD(glClearDepthf);
2710 ORD(glClearStencil);
2711 ORD(glColorMask);
2712 ORD(glCompileShader);
2713 ORD(glCompressedTexImage2D);
2714 ORD(glCompressedTexSubImage2D);
2715 ORD(glCopyTexImage2D);
2716 ORD(glCopyTexSubImage2D);
2717 ORD(glCreateProgram);
2718 ORD(glCreateShader);
2719 ORD(glCullFace);
2720 ORD(glDeleteBuffers);
2721 ORD(glDeleteFramebuffers);
2722 ORD(glDeleteProgram);
2723 ORD(glDeleteRenderbuffers);
2724 ORD(glDeleteShader);
2725 ORD(glDeleteTextures);
2726 ORD(glDepthFunc);
2727 ORD(glDepthMask);
2728// ORD(glDepthRangef);
2729 ORD(glDetachShader);
2730 ORD(glDisable);
2731 ORD(glDisableVertexAttribArray);
2732 ORD(glDrawArrays);
2733 ORD(glDrawElements);
2734 ORD(glEnable);
2735 ORD(glEnableVertexAttribArray);
2736 ORD(glFinish);
2737 ORD(glFlush);
2738 ORD(glFramebufferRenderbuffer);
2739 ORD(glFramebufferTexture2D);
2740 ORD(glFrontFace);
2741 ORD(glGenBuffers);
2742 ORD(glGenerateMipmap);
2743 ORD(glGenFramebuffers);
2744 ORD(glGenRenderbuffers);
2745 ORD(glGenTextures);
2746 ORD(glGetActiveAttrib);
2747 ORD(glGetActiveUniform);
2748 ORD(glGetAttachedShaders);
2749 ORD(glGetAttribLocation);
2750 ORD(glGetBooleanv);
2751 ORD(glGetBufferParameteriv);
2752 ORD(glGetError);
2753 ORD(glGetFloatv);
2754 ORD(glGetFramebufferAttachmentParameteriv);
2755 ORD(glGetIntegerv);
2756 ORD(glGetProgramiv);
2757 ORD(glGetProgramInfoLog);
2758 ORD(glGetRenderbufferParameteriv);
2759 ORD(glGetShaderiv);
2760 ORD(glGetShaderInfoLog);
2761// ORD(glGetShaderPrecisionFormat);
2762 ORD(glGetShaderSource);
2763// ORD(glGetString);
2764 ORD(glGetTexParameterfv);
2765 ORD(glGetTexParameteriv);
2766 ORD(glGetUniformfv);
2767 ORD(glGetUniformiv);
2768 ORD(glGetUniformLocation);
2769 ORD(glGetVertexAttribfv);
2770 ORD(glGetVertexAttribiv);
2771 ORD(glGetVertexAttribPointerv);
2772 ORD(glHint);
2773 ORD(glIsBuffer);
2774 ORD(glIsEnabled);
2775 ORD(glIsFramebuffer);
2776 ORD(glIsProgram);
2777 ORD(glIsRenderbuffer);
2778 ORD(glIsShader);
2779 ORD(glIsTexture);
2780 ORD(glLineWidth);
2781 ORD(glLinkProgram);
2782 ORD(glPixelStorei);
2783 ORD(glPolygonOffset);
2784 ORD(glReadPixels);
2785// ORD(glReleaseShaderCompiler);
2786 ORD(glRenderbufferStorage);
2787 ORD(glSampleCoverage);
2788 ORD(glScissor);
2789// ORD(glShaderBinary);
2790 ORD(glShaderSource);
2791 ORD(glStencilFunc);
2792 ORD(glStencilFuncSeparate);
2793 ORD(glStencilMask);
2794 ORD(glStencilMaskSeparate);
2795 ORD(glStencilOp);
2796 ORD(glStencilOpSeparate);
2797 ORD(glTexImage2D);
2798 ORD(glTexParameterf);
2799 ORD(glTexParameterfv);
2800 ORD(glTexParameteri);
2801 ORD(glTexParameteriv);
2802 ORD(glTexSubImage2D);
2803 ORD(glUniform1f);
2804 ORD(glUniform1fv);
2805 ORD(glUniform1i);
2806 ORD(glUniform1iv);
2807 ORD(glUniform2f);
2808 ORD(glUniform2fv);
2809 ORD(glUniform2i);
2810 ORD(glUniform2iv);
2811 ORD(glUniform3f);
2812 ORD(glUniform3fv);
2813 ORD(glUniform3i);
2814 ORD(glUniform3iv);
2815 ORD(glUniform4f);
2816 ORD(glUniform4fv);
2817 ORD(glUniform4i);
2818 ORD(glUniform4iv);
2819 ORD(glUniformMatrix2fv);
2820 ORD(glUniformMatrix3fv);
2821 ORD(glUniformMatrix4fv);
2822 ORD(glUseProgram);
2823 ORD(glValidateProgram);
2824 ORD(glVertexAttrib1f);
2825 ORD(glVertexAttrib1fv);
2826 ORD(glVertexAttrib2f);
2827 ORD(glVertexAttrib2fv);
2828 ORD(glVertexAttrib3f);
2829 ORD(glVertexAttrib3fv);
2830 ORD(glVertexAttrib4f);
2831 ORD(glVertexAttrib4fv);
2832 ORD(glVertexAttribPointer);
2833 ORD(glViewport);
2834#undef ORD
2835
2836#define ORD(f) EVAS_API_OVERRIDE(f, &gl_funcs, glsym_)
2837 // Extensions
2838 ORD(glGetProgramBinaryOES);
2839 ORD(glProgramBinaryOES);
2840 ORD(glMapBufferOES);
2841 ORD(glUnmapBufferOES);
2842 ORD(glGetBufferPointervOES);
2843 ORD(glTexImage3DOES);
2844 ORD(glTexSubImage3DOES);
2845 ORD(glCopyTexSubImage3DOES);
2846 ORD(glCompressedTexImage3DOES);
2847 ORD(glCompressedTexSubImage3DOES);
2848 ORD(glFramebufferTexture3DOES);
2849 ORD(glGetPerfMonitorGroupsAMD);
2850 ORD(glGetPerfMonitorCountersAMD);
2851 ORD(glGetPerfMonitorGroupStringAMD);
2852 ORD(glGetPerfMonitorCounterStringAMD);
2853 ORD(glGetPerfMonitorCounterInfoAMD);
2854 ORD(glGenPerfMonitorsAMD);
2855 ORD(glDeletePerfMonitorsAMD);
2856 ORD(glSelectPerfMonitorCountersAMD);
2857 ORD(glBeginPerfMonitorAMD);
2858 ORD(glEndPerfMonitorAMD);
2859 ORD(glGetPerfMonitorCounterDataAMD);
2860 ORD(glDiscardFramebufferEXT);
2861 ORD(glMultiDrawArraysEXT);
2862 ORD(glMultiDrawElementsEXT);
2863 ORD(glDeleteFencesNV);
2864 ORD(glGenFencesNV);
2865 ORD(glIsFenceNV);
2866 ORD(glTestFenceNV);
2867 ORD(glGetFenceivNV);
2868 ORD(glFinishFenceNV);
2869 ORD(glSetFenceNV);
2870 ORD(glGetDriverControlsQCOM);
2871 ORD(glGetDriverControlStringQCOM);
2872 ORD(glEnableDriverControlQCOM);
2873 ORD(glDisableDriverControlQCOM);
2874 ORD(glExtGetTexturesQCOM);
2875 ORD(glExtGetBuffersQCOM);
2876 ORD(glExtGetRenderbuffersQCOM);
2877 ORD(glExtGetFramebuffersQCOM);
2878 ORD(glExtGetTexLevelParameterivQCOM);
2879 ORD(glExtTexObjectStateOverrideiQCOM);
2880 ORD(glExtGetTexSubImageQCOM);
2881 ORD(glExtGetBufferPointervQCOM);
2882 ORD(glExtGetShadersQCOM);
2883 ORD(glExtGetProgramsQCOM);
2884 ORD(glExtIsProgramBinaryQCOM);
2885 ORD(glExtGetProgramBinarySourceQCOM);
2886#undef ORD
2887
2888// Override functions wrapped by Evas_GL
2889#define ORD(f) EVAS_API_OVERRIDE(f, &gl_funcs, evgl_)
2890 ORD(glBindFramebuffer);
2891 ORD(glBindRenderbuffer);
2892
2893 // GLES2.0 API compat on top of desktop gl
2894 ORD(glClearDepthf);
2895 ORD(glDepthRangef);
2896 ORD(glGetShaderPrecisionFormat);
2897 ORD(glReleaseShaderCompiler);
2898 ORD(glShaderBinary);
2899
2900 ORD(glGetString);
2901
2902 // GLES 2.0 Extensions that needs wrapping
2903 ORD(evasglCreateImage);
2904 ORD(evasglDestroyImage);
2905 ORD(glEvasGLImageTargetTexture2DOES);
2906 ORD(glEvasGLImageTargetRenderbufferStorageOES);
2907
2908#undef ORD
2909
2910 return &gl_funcs;
2911}
2912
2913static int
2914eng_image_load_error_get(void *data __UNUSED__, void *image)
2915{
2916 Evas_GL_Image *im;
2917
2918 if (!image) return EVAS_LOAD_ERROR_NONE;
2919 im = image;
2920 return im->im->cache_entry.load_error;
2921}
2922
2923static Eina_Bool
2924eng_image_animated_get(void *data __UNUSED__, void *image)
2925{
2926 Evas_GL_Image *gim = image;
2927 Image_Entry *im;
2928
2929 if (!gim) return EINA_FALSE;
2930 im = (Image_Entry *)gim->im;
2931 if (!im) return EINA_FALSE;
2932
2933 return im->flags.animated;
2934}
2935
2936static int
2937eng_image_animated_frame_count_get(void *data __UNUSED__, void *image)
2938{
2939 Evas_GL_Image *gim = image;
2940 Image_Entry *im;
2941
2942 if (!gim) return -1;
2943 im = (Image_Entry *)gim->im;
2944 if (!im) return -1;
2945
2946 if (!im->flags.animated) return -1;
2947 return im->frame_count;
2948}
2949
2950static Evas_Image_Animated_Loop_Hint
2951eng_image_animated_loop_type_get(void *data __UNUSED__, void *image)
2952{
2953 Evas_GL_Image *gim = image;
2954 Image_Entry *im;
2955
2956 if (!gim) return EVAS_IMAGE_ANIMATED_HINT_NONE;
2957 im = (Image_Entry *)gim->im;
2958 if (!im) return EVAS_IMAGE_ANIMATED_HINT_NONE;
2959
2960 if (!im->flags.animated) return EVAS_IMAGE_ANIMATED_HINT_NONE;
2961 return im->loop_hint;
2962}
2963
2964static int
2965eng_image_animated_loop_count_get(void *data __UNUSED__, void *image)
2966{
2967 Evas_GL_Image *gim = image;
2968 Image_Entry *im;
2969
2970 if (!gim) return -1;
2971 im = (Image_Entry *)gim->im;
2972 if (!im) return -1;
2973
2974 if (!im->flags.animated) return -1;
2975 return im->loop_count;
2976}
2977
2978static double
2979eng_image_animated_frame_duration_get(void *data __UNUSED__, void *image, int start_frame, int frame_num)
2980{
2981 Evas_GL_Image *gim = image;
2982 Image_Entry *im;
2983
2984 if (!gim) return -1;
2985 im = (Image_Entry *)gim->im;
2986 if (!im) return -1;
2987
2988 if (!im->flags.animated) return -1;
2989 return evas_common_load_rgba_image_frame_duration_from_file(im, start_frame, frame_num);
2990}
2991
2992static Eina_Bool
2993eng_image_animated_frame_set(void *data __UNUSED__, void *image, int frame_index)
2994{
2995 Evas_GL_Image *gim = image;
2996 Image_Entry *im;
2997
2998 if (!gim) return EINA_FALSE;
2999 im = (Image_Entry *)gim->im;
3000 if (!im) return EINA_FALSE;
3001
3002 if (!im->flags.animated) return EINA_FALSE;
3003 if (im->cur_frame == frame_index) return EINA_FALSE;
3004
3005 im->cur_frame = frame_index;
3006 return EINA_TRUE;
3007}
3008
3009static Eina_Bool
3010eng_image_can_region_get(void *data __UNUSED__, void *image)
3011{
3012 Evas_GL_Image *gim = image;
3013 Image_Entry *im;
3014 if (!gim) return EINA_FALSE;
3015 im = (Image_Entry *)gim->im;
3016 if (!im) return EINA_FALSE;
3017 return ((Evas_Image_Load_Func*) im->info.loader)->do_region;
3018}
3019
3020
3021static void
3022eng_image_max_size_get(void *data, int *maxw, int *maxh)
3023{
3024 Render_Engine *re = (Render_Engine *)data;
3025 if (maxw) *maxw = re->win->gl_context->shared->info.max_texture_size;
3026 if (maxh) *maxh = re->win->gl_context->shared->info.max_texture_size;
3027}
3028
3029static int
3030module_open(Evas_Module *em)
3031{
3032 static Eina_Bool xrm_inited = EINA_FALSE;
3033 if (!xrm_inited)
3034 {
3035 xrm_inited = EINA_TRUE;
3036 XrmInitialize();
3037 }
3038
3039 if (!em) return 0;
3040 if (!evas_gl_common_module_open()) return 0;
3041 /* get whatever engine module we inherit from */
3042 if (!_evas_module_engine_inherit(&pfunc, "software_generic")) return 0;
3043 if (_evas_engine_wl_egl_log_dom < 0)
3044 {
3045 _evas_engine_wl_egl_log_dom =
3046 eina_log_domain_register("evas-gl_x11", EVAS_DEFAULT_LOG_COLOR);
3047 }
3048
3049 if (_evas_engine_wl_egl_log_dom < 0)
3050 {
3051 EINA_LOG_ERR("Can not create a module log domain.");
3052 return 0;
3053 }
3054 /* store it for later use */
3055 func = pfunc;
3056 /* now to override methods */
3057 #define ORD(f) EVAS_API_OVERRIDE(f, &func, eng_)
3058 ORD(info);
3059 ORD(info_free);
3060 ORD(setup);
3061 ORD(canvas_alpha_get);
3062 ORD(output_free);
3063 ORD(output_resize);
3064 ORD(output_tile_size_set);
3065 ORD(output_redraws_rect_add);
3066 ORD(output_redraws_rect_del);
3067 ORD(output_redraws_clear);
3068 ORD(output_redraws_next_update_get);
3069 ORD(output_redraws_next_update_push);
3070 ORD(context_cutout_add);
3071 ORD(context_cutout_clear);
3072 ORD(output_flush);
3073 ORD(output_idle_flush);
3074 ORD(output_dump);
3075 ORD(rectangle_draw);
3076 ORD(line_draw);
3077 ORD(polygon_point_add);
3078 ORD(polygon_points_clear);
3079 ORD(polygon_draw);
3080
3081 ORD(image_load);
3082 ORD(image_new_from_data);
3083 ORD(image_new_from_copied_data);
3084 ORD(image_free);
3085 ORD(image_size_get);
3086 ORD(image_size_set);
3087 ORD(image_dirty_region);
3088 ORD(image_data_get);
3089 ORD(image_data_put);
3090 ORD(image_data_preload_request);
3091 ORD(image_data_preload_cancel);
3092 ORD(image_alpha_set);
3093 ORD(image_alpha_get);
3094 ORD(image_border_set);
3095 ORD(image_border_get);
3096 ORD(image_draw);
3097 ORD(image_comment_get);
3098 ORD(image_format_get);
3099 ORD(image_colorspace_set);
3100 ORD(image_colorspace_get);
3101 ORD(image_can_region_get);
3102 ORD(image_mask_create);
3103 ORD(image_native_set);
3104 ORD(image_native_get);
3105#if 0 // filtering disabled
3106 ORD(image_draw_filtered);
3107 ORD(image_filtered_get);
3108 ORD(image_filtered_save);
3109 ORD(image_filtered_free);
3110#endif
3111
3112 ORD(font_draw);
3113
3114 ORD(image_scale_hint_set);
3115 ORD(image_scale_hint_get);
3116 ORD(image_stride_get);
3117
3118 ORD(image_map_draw);
3119 ORD(image_map_surface_new);
3120 ORD(image_map_surface_free);
3121
3122 ORD(image_content_hint_set);
3123 ORD(image_content_hint_get);
3124
3125 ORD(image_cache_flush);
3126 ORD(image_cache_set);
3127 ORD(image_cache_get);
3128
3129 ORD(gl_surface_create);
3130 ORD(gl_surface_destroy);
3131 ORD(gl_context_create);
3132 ORD(gl_context_destroy);
3133 ORD(gl_make_current);
3134 ORD(gl_string_query);
3135 ORD(gl_proc_address_get);
3136 ORD(gl_native_surface_get);
3137 ORD(gl_api_get);
3138
3139 ORD(image_load_error_get);
3140
3141 /* now advertise out own api */
3142 ORD(image_animated_get);
3143 ORD(image_animated_frame_count_get);
3144 ORD(image_animated_loop_type_get);
3145 ORD(image_animated_loop_count_get);
3146 ORD(image_animated_frame_duration_get);
3147 ORD(image_animated_frame_set);
3148
3149 ORD(image_max_size_get);
3150
3151 /* now advertise out own api */
3152 em->functions = (void *)(&func);
3153 return 1;
3154}
3155
3156static void
3157module_close(Evas_Module *em __UNUSED__)
3158{
3159 eina_log_domain_unregister(_evas_engine_wl_egl_log_dom);
3160 evas_gl_common_module_close();
3161}
3162
3163static Evas_Module_Api evas_modapi =
3164{
3165 EVAS_MODULE_API_VERSION, "wayland_egl", "none", {module_open, module_close}
3166};
3167
3168EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_ENGINE, engine, gl_x11);
3169
3170#ifndef EVAS_STATIC_BUILD_GL_XLIB
3171EVAS_EINA_MODULE_DEFINE(engine, gl_x11);
3172#endif
3173
3174/* vim:set ts=8 sw=3 sts=3 expandtab cino=>5n-2f0^-2{2(0W1st0 :*/
diff --git a/libraries/evas/src/modules/engines/wayland_egl/evas_engine.h b/libraries/evas/src/modules/engines/wayland_egl/evas_engine.h
new file mode 100644
index 0000000..204d793
--- /dev/null
+++ b/libraries/evas/src/modules/engines/wayland_egl/evas_engine.h
@@ -0,0 +1,82 @@
1#ifndef EVAS_ENGINE_H
2#define EVAS_ENGINE_H
3
4#include "config.h"
5#include "evas_common.h"
6#include "evas_private.h"
7#include "evas_gl_common.h"
8#include "Evas.h"
9#include "Evas_Engine_Wayland_Egl.h"
10
11#define GL_GLEXT_PROTOTYPES
12
13#include <EGL/egl.h>
14#include <GLES2/gl2.h>
15#include <GLES2/gl2ext.h>
16#include <wayland-egl.h>
17
18extern int _evas_engine_wl_egl_log_dom;
19#ifdef ERR
20# undef ERR
21#endif
22#define ERR(...) EINA_LOG_DOM_ERR(_evas_engine_wl_egl_log_dom, __VA_ARGS__)
23
24#ifdef DBG
25# undef DBG
26#endif
27#define DBG(...) EINA_LOG_DOM_DBG(_evas_engine_wl_egl_log_dom, __VA_ARGS__)
28
29#ifdef INF
30# undef INF
31#endif
32#define INF(...) EINA_LOG_DOM_INFO(_evas_engine_wl_egl_log_dom, __VA_ARGS__)
33
34#ifdef WRN
35# undef WRN
36#endif
37#define WRN(...) EINA_LOG_DOM_WARN(_evas_engine_wl_egl_log_dom, __VA_ARGS__)
38
39#ifdef CRIT
40# undef CRIT
41#endif
42#define CRIT(...) EINA_LOG_DOM_CRIT(_evas_engine_wl_egl_log_dom, __VA_ARGS__)
43
44typedef struct _Evas_GL_Wl_Window Evas_GL_Wl_Window;
45
46struct _Evas_GL_Wl_Window
47{
48 struct wl_display *disp;
49 struct wl_egl_window *win;
50 struct wl_surface *surface;
51 int w, h;
52 int screen;
53// XVisualInfo *visualinfo;
54// Visual *visual;
55// Colormap colormap;
56 int depth;
57 int alpha;
58 int rot;
59 Evas_Engine_GL_Context *gl_context;
60 struct {
61 int redraw : 1;
62 int drew : 1;
63 int x1, y1, x2, y2;
64 } draw;
65 EGLContext egl_context[1];
66 EGLSurface egl_surface[1];
67 EGLConfig egl_config;
68 EGLDisplay egl_disp;
69 int surf : 1;
70};
71
72Evas_GL_Wl_Window *eng_window_new(struct wl_display *disp, struct wl_surface *surface, int screen,
73 int depth, int w, int h, int indirect,
74 int alpha, int rot);
75void eng_window_free(Evas_GL_Wl_Window *gw);
76void eng_window_use(Evas_GL_Wl_Window *gw);
77void eng_window_unsurf(Evas_GL_Wl_Window *gw);
78void eng_window_resurf(Evas_GL_Wl_Window *gw);
79
80int eng_best_depth_get(Evas_Engine_Info_Wayland_Egl *einfo);
81
82#endif
diff --git a/libraries/evas/src/modules/engines/wayland_egl/evas_wl_main.c b/libraries/evas/src/modules/engines/wayland_egl/evas_wl_main.c
new file mode 100644
index 0000000..537fcc6
--- /dev/null
+++ b/libraries/evas/src/modules/engines/wayland_egl/evas_wl_main.c
@@ -0,0 +1,323 @@
1#include "evas_engine.h"
2
3static Evas_GL_Wl_Window *_evas_gl_wl_window = NULL;
4
5static EGLContext context = EGL_NO_CONTEXT;
6
7// fixme: something is up/wrong here - dont know what tho...
8//#define NEWGL 1
9
10static int win_count = 0;
11
12Evas_GL_Wl_Window *
13eng_window_new(struct wl_display *disp, struct wl_surface *surface, int screen,
14 int depth, int w, int h, int indirect, int alpha, int rot)
15{
16 Evas_GL_Wl_Window *gw;
17 int context_attrs[3];
18 int config_attrs[40];
19 int major_version, minor_version;
20 int num_config, n = 0;
21 const GLubyte *vendor, *renderer, *version;
22
23 gw = calloc(1, sizeof(Evas_GL_Wl_Window));
24 if (!gw) return NULL;
25
26 win_count++;
27 gw->disp = disp;
28 gw->surface = surface;
29 gw->screen = screen;
30 gw->depth = depth;
31 gw->alpha = alpha;
32 gw->w = w;
33 gw->h = h;
34 gw->rot = rot;
35
36// EGL / GLES
37 context_attrs[0] = EGL_CONTEXT_CLIENT_VERSION;
38 context_attrs[1] = 2;
39 context_attrs[2] = EGL_NONE;
40
41#if defined(GLES_VARIETY_S3C6410)
42 if (gw->visualinfo->depth == 16) // 16bpp
43 {
44 config_attrs[n++] = EGL_SURFACE_TYPE;
45 config_attrs[n++] = EGL_WINDOW_BIT;
46 config_attrs[n++] = EGL_RENDERABLE_TYPE;
47 config_attrs[n++] = EGL_OPENGL_ES2_BIT;
48 config_attrs[n++] = EGL_RED_SIZE;
49 config_attrs[n++] = 5;
50 config_attrs[n++] = EGL_GREEN_SIZE;
51 config_attrs[n++] = 6;
52 config_attrs[n++] = EGL_BLUE_SIZE;
53 config_attrs[n++] = 5;
54 config_attrs[n++] = EGL_DEPTH_SIZE;
55 config_attrs[n++] = 0;
56 config_attrs[n++] = EGL_STENCIL_SIZE;
57 config_attrs[n++] = 0;
58 config_attrs[n++] = EGL_NONE;
59 }
60 else // 24/32bit. no one does 8bpp anymore. and 15bpp... dead
61 {
62 config_attrs[n++] = EGL_SURFACE_TYPE;
63 config_attrs[n++] = EGL_WINDOW_BIT;
64 config_attrs[n++] = EGL_RENDERABLE_TYPE;
65 config_attrs[n++] = EGL_OPENGL_ES2_BIT;
66 config_attrs[n++] = EGL_RED_SIZE;
67 config_attrs[n++] = 8;
68 config_attrs[n++] = EGL_GREEN_SIZE;
69 config_attrs[n++] = 8;
70 config_attrs[n++] = EGL_BLUE_SIZE;
71 config_attrs[n++] = 8;
72 config_attrs[n++] = EGL_DEPTH_SIZE;
73 config_attrs[n++] = 0;
74 config_attrs[n++] = EGL_STENCIL_SIZE;
75 config_attrs[n++] = 0;
76 config_attrs[n++] = EGL_NONE;
77 }
78#elif defined(GLES_VARIETY_SGX)
79 config_attrs[n++] = EGL_SURFACE_TYPE;
80 config_attrs[n++] = EGL_WINDOW_BIT;
81 config_attrs[n++] = EGL_RENDERABLE_TYPE;
82 config_attrs[n++] = EGL_OPENGL_ES2_BIT;
83# if 0
84// FIXME: n900 - omap3 sgx libs break here
85 config_attrs[n++] = EGL_RED_SIZE;
86 config_attrs[n++] = 1;
87 config_attrs[n++] = EGL_GREEN_SIZE;
88 config_attrs[n++] = 1;
89 config_attrs[n++] = EGL_BLUE_SIZE;
90 config_attrs[n++] = 1;
91// FIXME: end n900 breakage
92# endif
93 if (gw->alpha)
94 {
95 config_attrs[n++] = EGL_ALPHA_SIZE;
96 config_attrs[n++] = 1;
97 }
98 else
99 {
100 config_attrs[n++] = EGL_ALPHA_SIZE;
101 config_attrs[n++] = 0;
102 }
103 config_attrs[n++] = EGL_DEPTH_SIZE;
104 config_attrs[n++] = 0;
105 config_attrs[n++] = EGL_STENCIL_SIZE;
106 config_attrs[n++] = 0;
107 config_attrs[n++] = EGL_NONE;
108#endif
109
110 gw->egl_disp = eglGetDisplay((EGLNativeDisplayType)(gw->disp));
111 if (!gw->egl_disp)
112 {
113 ERR("eglGetDisplay() fail. code=%#x", eglGetError());
114 eng_window_free(gw);
115 return NULL;
116 }
117 if (!eglInitialize(gw->egl_disp, &major_version, &minor_version))
118 {
119 ERR("eglInitialize() fail. code=%#x", eglGetError());
120 eng_window_free(gw);
121 return NULL;
122 }
123 eglBindAPI(EGL_OPENGL_ES_API);
124 if (eglGetError() != EGL_SUCCESS)
125 {
126 ERR("eglBindAPI() fail. code=%#x", eglGetError());
127 eng_window_free(gw);
128 return NULL;
129 }
130
131 num_config = 0;
132 if (!eglChooseConfig(gw->egl_disp, config_attrs, &gw->egl_config,
133 1, &num_config) || (num_config != 1))
134 {
135 ERR("eglChooseConfig() fail. code=%#x", eglGetError());
136 eng_window_free(gw);
137 return NULL;
138 }
139
140 gw->win = wl_egl_window_create(gw->surface, gw->w, gw->h);
141
142 gw->egl_surface[0] = eglCreateWindowSurface(gw->egl_disp, gw->egl_config,
143 (EGLNativeWindowType)gw->win,
144 NULL);
145 if (gw->egl_surface[0] == EGL_NO_SURFACE)
146 {
147 ERR("eglCreateWindowSurface() fail for %#x. code=%#x",
148 (unsigned int)gw->win, eglGetError());
149 eng_window_free(gw);
150 return NULL;
151 }
152
153 if (context == EGL_NO_CONTEXT)
154 context = eglCreateContext(gw->egl_disp, gw->egl_config, NULL,
155 context_attrs);
156 gw->egl_context[0] = context;
157 if (gw->egl_context[0] == EGL_NO_CONTEXT)
158 {
159 ERR("eglCreateContext() fail. code=%#x", eglGetError());
160 eng_window_free(gw);
161 return NULL;
162 }
163
164 if (eglMakeCurrent(gw->egl_disp, gw->egl_surface[0], gw->egl_surface[0],
165 gw->egl_context[0]) == EGL_FALSE)
166 {
167 ERR("eglMakeCurrent() fail. code=%#x", eglGetError());
168 eng_window_free(gw);
169 return NULL;
170 }
171
172 vendor = glGetString(GL_VENDOR);
173 renderer = glGetString(GL_RENDERER);
174 version = glGetString(GL_VERSION);
175 if (!vendor) vendor = (unsigned char *)"-UNKNOWN-";
176 if (!renderer) renderer = (unsigned char *)"-UNKNOWN-";
177 if (!version) version = (unsigned char *)"-UNKNOWN-";
178 if (getenv("EVAS_GL_INFO"))
179 {
180 fprintf(stderr, "vendor: %s\n", vendor);
181 fprintf(stderr, "renderer: %s\n", renderer);
182 fprintf(stderr, "version: %s\n", version);
183 }
184
185 gw->gl_context = evas_gl_common_context_new();
186 if (!gw->gl_context)
187 {
188 eng_window_free(gw);
189 return NULL;
190 }
191 gw->gl_context->egldisp = gw->egl_disp;
192 eng_window_use(gw);
193 evas_gl_common_context_resize(gw->gl_context, w, h, rot);
194 gw->surf = 1;
195 return gw;
196 indirect = 0;
197}
198
199void
200eng_window_free(Evas_GL_Wl_Window *gw)
201{
202 int ref = 0;
203
204 win_count--;
205 eng_window_use(gw);
206 if (gw == _evas_gl_wl_window) _evas_gl_wl_window = NULL;
207// if (gw->win) wl_egl_window_destroy(gw->win);
208 if (gw->gl_context)
209 {
210 ref = gw->gl_context->references - 1;
211 evas_gl_common_context_free(gw->gl_context);
212 }
213 if (gw->egl_surface[0] != EGL_NO_SURFACE)
214 eglDestroySurface(gw->egl_disp, gw->egl_surface[0]);
215 eglMakeCurrent(gw->egl_disp, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
216 if (ref == 0)
217 {
218 if (context) eglDestroyContext(gw->egl_disp, context);
219 context = EGL_NO_CONTEXT;
220 eglTerminate(gw->egl_disp);
221 eglReleaseThread();
222 }
223 free(gw);
224}
225
226void
227eng_window_use(Evas_GL_Wl_Window *gw)
228{
229 Eina_Bool force_use = EINA_FALSE;
230
231 if (_evas_gl_wl_window)
232 {
233 if ((eglGetCurrentContext() !=
234 _evas_gl_wl_window->egl_context[0]) ||
235 (eglGetCurrentSurface(EGL_READ) !=
236 _evas_gl_wl_window->egl_surface[0]) ||
237 (eglGetCurrentSurface(EGL_DRAW) !=
238 _evas_gl_wl_window->egl_surface[0]))
239 force_use = EINA_TRUE;
240 }
241 if ((_evas_gl_wl_window != gw) || (force_use))
242 {
243 if (_evas_gl_wl_window)
244 {
245 evas_gl_common_context_use(_evas_gl_wl_window->gl_context);
246 evas_gl_common_context_flush(_evas_gl_wl_window->gl_context);
247 }
248 _evas_gl_wl_window = gw;
249 if (gw)
250 {
251 // EGL / GLES
252 if (gw->egl_surface[0] != EGL_NO_SURFACE)
253 {
254 if (eglMakeCurrent(gw->egl_disp, gw->egl_surface[0],
255 gw->egl_surface[0],
256 gw->egl_context[0]) == EGL_FALSE)
257 {
258 ERR("eglMakeCurrent() failed!");
259 }
260 }
261 }
262 }
263 if (gw) evas_gl_common_context_use(gw->gl_context);
264}
265
266void
267eng_window_unsurf(Evas_GL_Wl_Window *gw)
268{
269 if (!gw->surf) return;
270 if (!getenv("EVAS_GL_WIN_RESURF")) return;
271 if (getenv("EVAS_GL_INFO")) printf("unsurf %p\n", gw);
272
273 if (_evas_gl_wl_window)
274 evas_gl_common_context_flush(_evas_gl_wl_window->gl_context);
275 if (_evas_gl_wl_window == gw)
276 {
277 eglMakeCurrent(gw->egl_disp, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
278 if (gw->egl_surface[0] != EGL_NO_SURFACE)
279 eglDestroySurface(gw->egl_disp, gw->egl_surface[0]);
280 gw->egl_surface[0] = EGL_NO_SURFACE;
281 _evas_gl_wl_window = NULL;
282 }
283 gw->surf = 0;
284}
285
286void
287eng_window_resurf(Evas_GL_Wl_Window *gw)
288{
289 if (gw->surf) return;
290 if (getenv("EVAS_GL_INFO")) printf("resurf %p\n", gw);
291
292 gw->egl_surface[0] =
293 eglCreateWindowSurface(gw->egl_disp, gw->egl_config,
294 (EGLNativeWindowType)gw->win, NULL);
295
296 if (gw->egl_surface[0] == EGL_NO_SURFACE)
297 {
298 ERR("eglCreateWindowSurface() fail for %#x. code=%#x",
299 (unsigned int)gw->win, eglGetError());
300 return;
301 }
302 if (eglMakeCurrent(gw->egl_disp, gw->egl_surface[0], gw->egl_surface[0],
303 gw->egl_context[0]) == EGL_FALSE)
304 {
305 ERR("eglMakeCurrent() failed!");
306 }
307 gw->surf = 1;
308}
309
310int
311eng_best_depth_get(Evas_Engine_Info_Wayland_Egl *einfo)
312{
313 if (!einfo) return 0;
314 if (!einfo->info.display) return 0;
315 return 32;
316 /* if (!_evas_gl_x11_vi) eng_best_visual_get(einfo); */
317 /* if (!_evas_gl_x11_vi) return 0; */
318 /* if (einfo->info.destination_alpha) */
319 /* { */
320 /* if (_evas_gl_x11_rgba_vi) return _evas_gl_x11_rgba_vi->depth; */
321 /* } */
322 /* return _evas_gl_x11_vi->depth; */
323}
diff --git a/libraries/evas/src/modules/engines/wayland_shm/Evas_Engine_Wayland_Shm.h b/libraries/evas/src/modules/engines/wayland_shm/Evas_Engine_Wayland_Shm.h
new file mode 100644
index 0000000..b34b2c1
--- /dev/null
+++ b/libraries/evas/src/modules/engines/wayland_shm/Evas_Engine_Wayland_Shm.h
@@ -0,0 +1,20 @@
1#ifndef _EVAS_ENGINE_WAYLAND_SHM_H
2# define _EVAS_ENGINE_WAYLAND_SHM_H
3
4typedef struct _Evas_Engine_Info_Wayland_Shm Evas_Engine_Info_Wayland_Shm;
5struct _Evas_Engine_Info_Wayland_Shm
6{
7 Evas_Engine_Info magic;
8
9 struct
10 {
11 void *dest;
12 int rotation;
13
14 unsigned char debug : 1;
15 } info;
16
17 Evas_Engine_Render_Mode render_mode;
18};
19
20#endif
diff --git a/libraries/evas/src/modules/engines/wayland_shm/Makefile.am b/libraries/evas/src/modules/engines/wayland_shm/Makefile.am
new file mode 100644
index 0000000..455b82c
--- /dev/null
+++ b/libraries/evas/src/modules/engines/wayland_shm/Makefile.am
@@ -0,0 +1,45 @@
1
2MAINTAINERCLEANFILES = Makefile.in
3
4AM_CPPFLAGS = \
5-I. \
6-I$(top_srcdir)/src/lib \
7-I$(top_srcdir)/src/lib/include \
8-I$(top_srcdir)/src/modules/engines \
9@FREETYPE_CFLAGS@ \
10@EINA_CFLAGS@ \
11@evas_engine_wayland_shm_cflags@
12
13if BUILD_ENGINE_WAYLAND_SHM
14
15WAYLAND_SHM_SOURCES = \
16evas_engine.c \
17evas_outbuf.c
18
19WAYLAND_SHM_LIBADD = @FREETYPE_LIBS@ @EINA_LIBS@ @evas_engine_wayland_shm_libs@
20
21includes_HEADERS = Evas_Engine_Wayland_Shm.h
22includesdir = $(includedir)/evas-@VMAJ@
23
24if !EVAS_STATIC_BUILD_WAYLAND_SHM
25
26pkgdir = $(libdir)/evas/modules/engines/wayland_shm/$(MODULE_ARCH)
27pkg_LTLIBRARIES = module.la
28
29module_la_SOURCES = $(WAYLAND_SHM_SOURCES)
30module_la_LIBADD = $(WAYLAND_SHM_LIBADD) $(top_builddir)/src/lib/libevas.la
31module_la_LDFLAGS = -no-undefined -module -avoid-version
32module_la_LIBTOOLFLAGS = --tag=disable-static
33
34else
35
36noinst_LTLIBRARIES = libevas_engine_wayland_shm.la
37
38libevas_engine_wayland_shm_la_SOURCES = $(WAYLAND_SHM_SOURCES)
39libevas_engine_wayland_shm_la_LIBADD = $(WAYLAND_SHM_LIBADD)
40
41endif
42endif
43
44EXTRA_DIST = \
45evas_engine.h
diff --git a/libraries/evas/src/modules/engines/wayland_shm/Makefile.in b/libraries/evas/src/modules/engines/wayland_shm/Makefile.in
new file mode 100644
index 0000000..4d69209
--- /dev/null
+++ b/libraries/evas/src/modules/engines/wayland_shm/Makefile.in
@@ -0,0 +1,816 @@
1# Makefile.in generated by automake 1.11.1 from Makefile.am.
2# @configure_input@
3
4# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
5# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
6# Inc.
7# This Makefile.in is free software; the Free Software Foundation
8# gives unlimited permission to copy and/or distribute it,
9# with or without modifications, as long as this notice is preserved.
10
11# This program is distributed in the hope that it will be useful,
12# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
13# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
14# PARTICULAR PURPOSE.
15
16@SET_MAKE@
17
18
19VPATH = @srcdir@
20pkgdatadir = $(datadir)/@PACKAGE@
21pkgincludedir = $(includedir)/@PACKAGE@
22pkglibdir = $(libdir)/@PACKAGE@
23pkglibexecdir = $(libexecdir)/@PACKAGE@
24am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
25install_sh_DATA = $(install_sh) -c -m 644
26install_sh_PROGRAM = $(install_sh) -c
27install_sh_SCRIPT = $(install_sh) -c
28INSTALL_HEADER = $(INSTALL_DATA)
29transform = $(program_transform_name)
30NORMAL_INSTALL = :
31PRE_INSTALL = :
32POST_INSTALL = :
33NORMAL_UNINSTALL = :
34PRE_UNINSTALL = :
35POST_UNINSTALL = :
36build_triplet = @build@
37host_triplet = @host@
38subdir = src/modules/engines/wayland_shm
39DIST_COMMON = $(am__includes_HEADERS_DIST) $(srcdir)/Makefile.am \
40 $(srcdir)/Makefile.in
41ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
42am__aclocal_m4_deps = $(top_srcdir)/m4/efl_attribute.m4 \
43 $(top_srcdir)/m4/efl_coverage.m4 \
44 $(top_srcdir)/m4/efl_doxygen.m4 \
45 $(top_srcdir)/m4/efl_fnmatch.m4 \
46 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \
47 $(top_srcdir)/m4/evas_check_engine.m4 \
48 $(top_srcdir)/m4/evas_check_loader.m4 \
49 $(top_srcdir)/m4/evas_converter.m4 \
50 $(top_srcdir)/m4/evas_dither.m4 \
51 $(top_srcdir)/m4/evas_scaler.m4 $(top_srcdir)/m4/libtool.m4 \
52 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
53 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
54 $(top_srcdir)/configure.ac
55am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
56 $(ACLOCAL_M4)
57mkinstalldirs = $(install_sh) -d
58CONFIG_HEADER = $(top_builddir)/config.h
59CONFIG_CLEAN_FILES =
60CONFIG_CLEAN_VPATH_FILES =
61am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
62am__vpath_adj = case $$p in \
63 $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
64 *) f=$$p;; \
65 esac;
66am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
67am__install_max = 40
68am__nobase_strip_setup = \
69 srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
70am__nobase_strip = \
71 for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
72am__nobase_list = $(am__nobase_strip_setup); \
73 for p in $$list; do echo "$$p $$p"; done | \
74 sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
75 $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
76 if (++n[$$2] == $(am__install_max)) \
77 { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
78 END { for (dir in files) print dir, files[dir] }'
79am__base_list = \
80 sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
81 sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
82am__installdirs = "$(DESTDIR)$(pkgdir)" "$(DESTDIR)$(includesdir)"
83LTLIBRARIES = $(noinst_LTLIBRARIES) $(pkg_LTLIBRARIES)
84am__DEPENDENCIES_1 =
85@BUILD_ENGINE_WAYLAND_SHM_TRUE@@EVAS_STATIC_BUILD_WAYLAND_SHM_TRUE@libevas_engine_wayland_shm_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
86am__libevas_engine_wayland_shm_la_SOURCES_DIST = evas_engine.c \
87 evas_outbuf.c
88@BUILD_ENGINE_WAYLAND_SHM_TRUE@am__objects_1 = evas_engine.lo \
89@BUILD_ENGINE_WAYLAND_SHM_TRUE@ evas_outbuf.lo
90@BUILD_ENGINE_WAYLAND_SHM_TRUE@@EVAS_STATIC_BUILD_WAYLAND_SHM_TRUE@am_libevas_engine_wayland_shm_la_OBJECTS = $(am__objects_1)
91libevas_engine_wayland_shm_la_OBJECTS = \
92 $(am_libevas_engine_wayland_shm_la_OBJECTS)
93AM_V_lt = $(am__v_lt_$(V))
94am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
95am__v_lt_0 = --silent
96@BUILD_ENGINE_WAYLAND_SHM_TRUE@@EVAS_STATIC_BUILD_WAYLAND_SHM_TRUE@am_libevas_engine_wayland_shm_la_rpath =
97@BUILD_ENGINE_WAYLAND_SHM_TRUE@@EVAS_STATIC_BUILD_WAYLAND_SHM_FALSE@module_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
98@BUILD_ENGINE_WAYLAND_SHM_TRUE@@EVAS_STATIC_BUILD_WAYLAND_SHM_FALSE@ $(top_builddir)/src/lib/libevas.la
99am__module_la_SOURCES_DIST = evas_engine.c evas_outbuf.c
100@BUILD_ENGINE_WAYLAND_SHM_TRUE@am__objects_2 = \
101@BUILD_ENGINE_WAYLAND_SHM_TRUE@ module_la-evas_engine.lo \
102@BUILD_ENGINE_WAYLAND_SHM_TRUE@ module_la-evas_outbuf.lo
103@BUILD_ENGINE_WAYLAND_SHM_TRUE@@EVAS_STATIC_BUILD_WAYLAND_SHM_FALSE@am_module_la_OBJECTS = $(am__objects_2)
104module_la_OBJECTS = $(am_module_la_OBJECTS)
105module_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
106 $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
107 $(AM_CFLAGS) $(CFLAGS) $(module_la_LDFLAGS) $(LDFLAGS) -o $@
108@BUILD_ENGINE_WAYLAND_SHM_TRUE@@EVAS_STATIC_BUILD_WAYLAND_SHM_FALSE@am_module_la_rpath = -rpath \
109@BUILD_ENGINE_WAYLAND_SHM_TRUE@@EVAS_STATIC_BUILD_WAYLAND_SHM_FALSE@ $(pkgdir)
110DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
111depcomp = $(SHELL) $(top_srcdir)/depcomp
112am__depfiles_maybe = depfiles
113am__mv = mv -f
114COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
115 $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
116LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
117 $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
118 $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
119 $(AM_CFLAGS) $(CFLAGS)
120AM_V_CC = $(am__v_CC_$(V))
121am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
122am__v_CC_0 = @echo " CC " $@;
123AM_V_at = $(am__v_at_$(V))
124am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
125am__v_at_0 = @
126CCLD = $(CC)
127LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
128 $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
129 $(AM_LDFLAGS) $(LDFLAGS) -o $@
130AM_V_CCLD = $(am__v_CCLD_$(V))
131am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
132am__v_CCLD_0 = @echo " CCLD " $@;
133AM_V_GEN = $(am__v_GEN_$(V))
134am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
135am__v_GEN_0 = @echo " GEN " $@;
136SOURCES = $(libevas_engine_wayland_shm_la_SOURCES) \
137 $(module_la_SOURCES)
138DIST_SOURCES = $(am__libevas_engine_wayland_shm_la_SOURCES_DIST) \
139 $(am__module_la_SOURCES_DIST)
140am__includes_HEADERS_DIST = Evas_Engine_Wayland_Shm.h
141HEADERS = $(includes_HEADERS)
142ETAGS = etags
143CTAGS = ctags
144DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
145ACLOCAL = @ACLOCAL@
146ALLOCA = @ALLOCA@
147AMTAR = @AMTAR@
148AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
149AR = @AR@
150AS = @AS@
151AUTOCONF = @AUTOCONF@
152AUTOHEADER = @AUTOHEADER@
153AUTOMAKE = @AUTOMAKE@
154AWK = @AWK@
155CC = @CC@
156CCDEPMODE = @CCDEPMODE@
157CFLAGS = @CFLAGS@
158CHECK_CFLAGS = @CHECK_CFLAGS@
159CHECK_LIBS = @CHECK_LIBS@
160CPP = @CPP@
161CPPFLAGS = @CPPFLAGS@
162CXX = @CXX@
163CXXCPP = @CXXCPP@
164CXXDEPMODE = @CXXDEPMODE@
165CXXFLAGS = @CXXFLAGS@
166CYGPATH_W = @CYGPATH_W@
167DEFS = @DEFS@
168DEPDIR = @DEPDIR@
169DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@
170DIRECTFB_LIBS = @DIRECTFB_LIBS@
171DLLTOOL = @DLLTOOL@
172DSYMUTIL = @DSYMUTIL@
173DUMPBIN = @DUMPBIN@
174ECHO_C = @ECHO_C@
175ECHO_N = @ECHO_N@
176ECHO_T = @ECHO_T@
177ECORE_EVAS_CFLAGS = @ECORE_EVAS_CFLAGS@
178ECORE_EVAS_LIBS = @ECORE_EVAS_LIBS@
179EDB_CFLAGS = @EDB_CFLAGS@
180EDB_LIBS = @EDB_LIBS@
181EDJE_CFLAGS = @EDJE_CFLAGS@
182EDJE_LIBS = @EDJE_LIBS@
183EET_CFLAGS = @EET_CFLAGS@
184EET_LIBS = @EET_LIBS@
185EFL_COVERAGE_CFLAGS = @EFL_COVERAGE_CFLAGS@
186EFL_COVERAGE_LIBS = @EFL_COVERAGE_LIBS@
187EFL_FNMATCH_LIBS = @EFL_FNMATCH_LIBS@
188EGREP = @EGREP@
189EINA_CFLAGS = @EINA_CFLAGS@
190EINA_LIBS = @EINA_LIBS@
191EVAS_CFLAGS = @EVAS_CFLAGS@
192EVAS_LIBS = @EVAS_LIBS@
193EVAS_SSE3_CFLAGS = @EVAS_SSE3_CFLAGS@
194EVIL_CFLAGS = @EVIL_CFLAGS@
195EVIL_LIBS = @EVIL_LIBS@
196EXEEXT = @EXEEXT@
197FGREP = @FGREP@
198FONTCONFIG_CFLAGS = @FONTCONFIG_CFLAGS@
199FONTCONFIG_LIBS = @FONTCONFIG_LIBS@
200FREETYPE_CFLAGS = @FREETYPE_CFLAGS@
201FREETYPE_LIBS = @FREETYPE_LIBS@
202FRIBIDI_CFLAGS = @FRIBIDI_CFLAGS@
203FRIBIDI_LIBS = @FRIBIDI_LIBS@
204GL_EET_CFLAGS = @GL_EET_CFLAGS@
205GL_EET_LIBS = @GL_EET_LIBS@
206GREP = @GREP@
207HARFBUZZ_CFLAGS = @HARFBUZZ_CFLAGS@
208HARFBUZZ_LIBS = @HARFBUZZ_LIBS@
209INSTALL = @INSTALL@
210INSTALL_DATA = @INSTALL_DATA@
211INSTALL_PROGRAM = @INSTALL_PROGRAM@
212INSTALL_SCRIPT = @INSTALL_SCRIPT@
213INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
214LD = @LD@
215LDFLAGS = @LDFLAGS@
216LIBOBJS = @LIBOBJS@
217LIBS = @LIBS@
218LIBTOOL = @LIBTOOL@
219LINEBREAK_CFLAGS = @LINEBREAK_CFLAGS@
220LINEBREAK_LIBS = @LINEBREAK_LIBS@
221LIPO = @LIPO@
222LN_S = @LN_S@
223LTLIBOBJS = @LTLIBOBJS@
224MAKEINFO = @MAKEINFO@
225MKDIR_P = @MKDIR_P@
226MODULE_ARCH = @MODULE_ARCH@
227NM = @NM@
228NMEDIT = @NMEDIT@
229OBJC = @OBJC@
230OBJCDEPMODE = @OBJCDEPMODE@
231OBJCFLAGS = @OBJCFLAGS@
232OBJDUMP = @OBJDUMP@
233OBJEXT = @OBJEXT@
234OTOOL = @OTOOL@
235OTOOL64 = @OTOOL64@
236PACKAGE = @PACKAGE@
237PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
238PACKAGE_NAME = @PACKAGE_NAME@
239PACKAGE_STRING = @PACKAGE_STRING@
240PACKAGE_TARNAME = @PACKAGE_TARNAME@
241PACKAGE_URL = @PACKAGE_URL@
242PACKAGE_VERSION = @PACKAGE_VERSION@
243PATH_SEPARATOR = @PATH_SEPARATOR@
244PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
245PIXMAN_LIBS = @PIXMAN_LIBS@
246PKG_CONFIG = @PKG_CONFIG@
247PNG_CFLAGS = @PNG_CFLAGS@
248PNG_LIBS = @PNG_LIBS@
249RANLIB = @RANLIB@
250SDL_CFLAGS = @SDL_CFLAGS@
251SDL_LIBS = @SDL_LIBS@
252SED = @SED@
253SET_MAKE = @SET_MAKE@
254SHELL = @SHELL@
255SHM_OPEN_LINK = @SHM_OPEN_LINK@
256STRIP = @STRIP@
257SVG_CFLAGS = @SVG_CFLAGS@
258SVG_LIBS = @SVG_LIBS@
259VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
260VALGRIND_LIBS = @VALGRIND_LIBS@
261VERSION = @VERSION@
262VMAJ = @VMAJ@
263WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
264WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
265WIN32_CFLAGS = @WIN32_CFLAGS@
266WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
267XCB_CFLAGS = @XCB_CFLAGS@
268XCB_GL_CFLAGS = @XCB_GL_CFLAGS@
269XCB_GL_LIBS = @XCB_GL_LIBS@
270XCB_LIBS = @XCB_LIBS@
271XEXT_CFLAGS = @XEXT_CFLAGS@
272XEXT_LIBS = @XEXT_LIBS@
273XMKMF = @XMKMF@
274X_CFLAGS = @X_CFLAGS@
275X_EXTRA_LIBS = @X_EXTRA_LIBS@
276X_LIBS = @X_LIBS@
277X_PRE_LIBS = @X_PRE_LIBS@
278abs_builddir = @abs_builddir@
279abs_srcdir = @abs_srcdir@
280abs_top_builddir = @abs_top_builddir@
281abs_top_srcdir = @abs_top_srcdir@
282ac_ct_CC = @ac_ct_CC@
283ac_ct_CXX = @ac_ct_CXX@
284ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
285ac_ct_OBJC = @ac_ct_OBJC@
286altivec_cflags = @altivec_cflags@
287am__include = @am__include@
288am__leading_dot = @am__leading_dot@
289am__quote = @am__quote@
290am__tar = @am__tar@
291am__untar = @am__untar@
292bindir = @bindir@
293build = @build@
294build_alias = @build_alias@
295build_cpu = @build_cpu@
296build_os = @build_os@
297build_vendor = @build_vendor@
298builddir = @builddir@
299datadir = @datadir@
300datarootdir = @datarootdir@
301dlopen_libs = @dlopen_libs@
302docdir = @docdir@
303dvidir = @dvidir@
304edje_cc = @edje_cc@
305efl_doxygen = @efl_doxygen@
306efl_have_doxygen = @efl_have_doxygen@
307evas_engine_buffer_cflags = @evas_engine_buffer_cflags@
308evas_engine_buffer_libs = @evas_engine_buffer_libs@
309evas_engine_direct3d_cflags = @evas_engine_direct3d_cflags@
310evas_engine_direct3d_libs = @evas_engine_direct3d_libs@
311evas_engine_directfb_cflags = @evas_engine_directfb_cflags@
312evas_engine_directfb_libs = @evas_engine_directfb_libs@
313evas_engine_fb_cflags = @evas_engine_fb_cflags@
314evas_engine_fb_libs = @evas_engine_fb_libs@
315evas_engine_gl_cocoa_cflags = @evas_engine_gl_cocoa_cflags@
316evas_engine_gl_cocoa_libs = @evas_engine_gl_cocoa_libs@
317evas_engine_gl_common_libs = @evas_engine_gl_common_libs@
318evas_engine_gl_sdl_cflags = @evas_engine_gl_sdl_cflags@
319evas_engine_gl_sdl_libs = @evas_engine_gl_sdl_libs@
320evas_engine_gl_xcb_cflags = @evas_engine_gl_xcb_cflags@
321evas_engine_gl_xcb_libs = @evas_engine_gl_xcb_libs@
322evas_engine_gl_xlib_cflags = @evas_engine_gl_xlib_cflags@
323evas_engine_gl_xlib_libs = @evas_engine_gl_xlib_libs@
324evas_engine_psl1ght_cflags = @evas_engine_psl1ght_cflags@
325evas_engine_psl1ght_libs = @evas_engine_psl1ght_libs@
326evas_engine_software_16_ddraw_cflags = @evas_engine_software_16_ddraw_cflags@
327evas_engine_software_16_ddraw_libs = @evas_engine_software_16_ddraw_libs@
328evas_engine_software_16_sdl_cflags = @evas_engine_software_16_sdl_cflags@
329evas_engine_software_16_sdl_libs = @evas_engine_software_16_sdl_libs@
330evas_engine_software_16_wince_cflags = @evas_engine_software_16_wince_cflags@
331evas_engine_software_16_wince_libs = @evas_engine_software_16_wince_libs@
332evas_engine_software_16_x11_cflags = @evas_engine_software_16_x11_cflags@
333evas_engine_software_16_x11_libs = @evas_engine_software_16_x11_libs@
334evas_engine_software_8_x11_cflags = @evas_engine_software_8_x11_cflags@
335evas_engine_software_8_x11_libs = @evas_engine_software_8_x11_libs@
336evas_engine_software_ddraw_cflags = @evas_engine_software_ddraw_cflags@
337evas_engine_software_ddraw_libs = @evas_engine_software_ddraw_libs@
338evas_engine_software_gdi_cflags = @evas_engine_software_gdi_cflags@
339evas_engine_software_gdi_libs = @evas_engine_software_gdi_libs@
340evas_engine_software_sdl_cflags = @evas_engine_software_sdl_cflags@
341evas_engine_software_sdl_libs = @evas_engine_software_sdl_libs@
342evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
343evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
344evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
345evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
346evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
347evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
348evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
349evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
350evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
351evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
352evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
353evas_image_loader_edb_libs = @evas_image_loader_edb_libs@
354evas_image_loader_eet_cflags = @evas_image_loader_eet_cflags@
355evas_image_loader_eet_libs = @evas_image_loader_eet_libs@
356evas_image_loader_generic_cflags = @evas_image_loader_generic_cflags@
357evas_image_loader_generic_libs = @evas_image_loader_generic_libs@
358evas_image_loader_gif_cflags = @evas_image_loader_gif_cflags@
359evas_image_loader_gif_libs = @evas_image_loader_gif_libs@
360evas_image_loader_ico_cflags = @evas_image_loader_ico_cflags@
361evas_image_loader_ico_libs = @evas_image_loader_ico_libs@
362evas_image_loader_jpeg_cflags = @evas_image_loader_jpeg_cflags@
363evas_image_loader_jpeg_libs = @evas_image_loader_jpeg_libs@
364evas_image_loader_pmaps_cflags = @evas_image_loader_pmaps_cflags@
365evas_image_loader_pmaps_libs = @evas_image_loader_pmaps_libs@
366evas_image_loader_png_cflags = @evas_image_loader_png_cflags@
367evas_image_loader_png_libs = @evas_image_loader_png_libs@
368evas_image_loader_psd_cflags = @evas_image_loader_psd_cflags@
369evas_image_loader_psd_libs = @evas_image_loader_psd_libs@
370evas_image_loader_svg_cflags = @evas_image_loader_svg_cflags@
371evas_image_loader_svg_libs = @evas_image_loader_svg_libs@
372evas_image_loader_tga_cflags = @evas_image_loader_tga_cflags@
373evas_image_loader_tga_libs = @evas_image_loader_tga_libs@
374evas_image_loader_tiff_cflags = @evas_image_loader_tiff_cflags@
375evas_image_loader_tiff_libs = @evas_image_loader_tiff_libs@
376evas_image_loader_wbmp_cflags = @evas_image_loader_wbmp_cflags@
377evas_image_loader_wbmp_libs = @evas_image_loader_wbmp_libs@
378evas_image_loader_xpm_cflags = @evas_image_loader_xpm_cflags@
379evas_image_loader_xpm_libs = @evas_image_loader_xpm_libs@
380exec_prefix = @exec_prefix@
381have_evas_engine_gl_x11 = @have_evas_engine_gl_x11@
382have_evas_engine_gl_xcb = @have_evas_engine_gl_xcb@
383have_evas_engine_gl_xlib = @have_evas_engine_gl_xlib@
384have_evas_engine_software_x11 = @have_evas_engine_software_x11@
385have_evas_engine_software_xcb = @have_evas_engine_software_xcb@
386have_evas_engine_software_xlib = @have_evas_engine_software_xlib@
387have_lcov = @have_lcov@
388host = @host@
389host_alias = @host_alias@
390host_cpu = @host_cpu@
391host_os = @host_os@
392host_vendor = @host_vendor@
393htmldir = @htmldir@
394includedir = @includedir@
395infodir = @infodir@
396install_sh = @install_sh@
397libdir = @libdir@
398libexecdir = @libexecdir@
399localedir = @localedir@
400localstatedir = @localstatedir@
401lt_ECHO = @lt_ECHO@
402lt_enable_auto_import = @lt_enable_auto_import@
403mandir = @mandir@
404mkdir_p = @mkdir_p@
405oldincludedir = @oldincludedir@
406pdfdir = @pdfdir@
407pkgconfig_requires_private = @pkgconfig_requires_private@
408prefix = @prefix@
409program_transform_name = @program_transform_name@
410psdir = @psdir@
411pthread_cflags = @pthread_cflags@
412pthread_libs = @pthread_libs@
413release_info = @release_info@
414requirement_evas = @requirement_evas@
415sbindir = @sbindir@
416sharedstatedir = @sharedstatedir@
417srcdir = @srcdir@
418sysconfdir = @sysconfdir@
419target_alias = @target_alias@
420top_build_prefix = @top_build_prefix@
421top_builddir = @top_builddir@
422top_srcdir = @top_srcdir@
423version_info = @version_info@
424MAINTAINERCLEANFILES = Makefile.in
425AM_CPPFLAGS = \
426-I. \
427-I$(top_srcdir)/src/lib \
428-I$(top_srcdir)/src/lib/include \
429-I$(top_srcdir)/src/modules/engines \
430@FREETYPE_CFLAGS@ \
431@EINA_CFLAGS@ \
432@evas_engine_wayland_shm_cflags@
433
434@BUILD_ENGINE_WAYLAND_SHM_TRUE@WAYLAND_SHM_SOURCES = \
435@BUILD_ENGINE_WAYLAND_SHM_TRUE@evas_engine.c \
436@BUILD_ENGINE_WAYLAND_SHM_TRUE@evas_outbuf.c
437
438@BUILD_ENGINE_WAYLAND_SHM_TRUE@WAYLAND_SHM_LIBADD = @FREETYPE_LIBS@ @EINA_LIBS@ @evas_engine_wayland_shm_libs@
439@BUILD_ENGINE_WAYLAND_SHM_TRUE@includes_HEADERS = Evas_Engine_Wayland_Shm.h
440@BUILD_ENGINE_WAYLAND_SHM_TRUE@includesdir = $(includedir)/evas-@VMAJ@
441@BUILD_ENGINE_WAYLAND_SHM_TRUE@@EVAS_STATIC_BUILD_WAYLAND_SHM_FALSE@pkgdir = $(libdir)/evas/modules/engines/wayland_shm/$(MODULE_ARCH)
442@BUILD_ENGINE_WAYLAND_SHM_TRUE@@EVAS_STATIC_BUILD_WAYLAND_SHM_FALSE@pkg_LTLIBRARIES = module.la
443@BUILD_ENGINE_WAYLAND_SHM_TRUE@@EVAS_STATIC_BUILD_WAYLAND_SHM_FALSE@module_la_SOURCES = $(WAYLAND_SHM_SOURCES)
444@BUILD_ENGINE_WAYLAND_SHM_TRUE@@EVAS_STATIC_BUILD_WAYLAND_SHM_FALSE@module_la_LIBADD = $(WAYLAND_SHM_LIBADD) $(top_builddir)/src/lib/libevas.la
445@BUILD_ENGINE_WAYLAND_SHM_TRUE@@EVAS_STATIC_BUILD_WAYLAND_SHM_FALSE@module_la_LDFLAGS = -no-undefined -module -avoid-version
446@BUILD_ENGINE_WAYLAND_SHM_TRUE@@EVAS_STATIC_BUILD_WAYLAND_SHM_FALSE@module_la_LIBTOOLFLAGS = --tag=disable-static
447@BUILD_ENGINE_WAYLAND_SHM_TRUE@@EVAS_STATIC_BUILD_WAYLAND_SHM_TRUE@noinst_LTLIBRARIES = libevas_engine_wayland_shm.la
448@BUILD_ENGINE_WAYLAND_SHM_TRUE@@EVAS_STATIC_BUILD_WAYLAND_SHM_TRUE@libevas_engine_wayland_shm_la_SOURCES = $(WAYLAND_SHM_SOURCES)
449@BUILD_ENGINE_WAYLAND_SHM_TRUE@@EVAS_STATIC_BUILD_WAYLAND_SHM_TRUE@libevas_engine_wayland_shm_la_LIBADD = $(WAYLAND_SHM_LIBADD)
450EXTRA_DIST = \
451evas_engine.h
452
453all: all-am
454
455.SUFFIXES:
456.SUFFIXES: .c .lo .o .obj
457$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
458 @for dep in $?; do \
459 case '$(am__configure_deps)' in \
460 *$$dep*) \
461 ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
462 && { if test -f $@; then exit 0; else break; fi; }; \
463 exit 1;; \
464 esac; \
465 done; \
466 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/modules/engines/wayland_shm/Makefile'; \
467 $(am__cd) $(top_srcdir) && \
468 $(AUTOMAKE) --gnu src/modules/engines/wayland_shm/Makefile
469.PRECIOUS: Makefile
470Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
471 @case '$?' in \
472 *config.status*) \
473 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
474 *) \
475 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
476 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
477 esac;
478
479$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
480 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
481
482$(top_srcdir)/configure: $(am__configure_deps)
483 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
484$(ACLOCAL_M4): $(am__aclocal_m4_deps)
485 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
486$(am__aclocal_m4_deps):
487
488clean-noinstLTLIBRARIES:
489 -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
490 @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
491 dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
492 test "$$dir" != "$$p" || dir=.; \
493 echo "rm -f \"$${dir}/so_locations\""; \
494 rm -f "$${dir}/so_locations"; \
495 done
496install-pkgLTLIBRARIES: $(pkg_LTLIBRARIES)
497 @$(NORMAL_INSTALL)
498 test -z "$(pkgdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgdir)"
499 @list='$(pkg_LTLIBRARIES)'; test -n "$(pkgdir)" || list=; \
500 list2=; for p in $$list; do \
501 if test -f $$p; then \
502 list2="$$list2 $$p"; \
503 else :; fi; \
504 done; \
505 test -z "$$list2" || { \
506 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkgdir)'"; \
507 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkgdir)"; \
508 }
509
510uninstall-pkgLTLIBRARIES:
511 @$(NORMAL_UNINSTALL)
512 @list='$(pkg_LTLIBRARIES)'; test -n "$(pkgdir)" || list=; \
513 for p in $$list; do \
514 $(am__strip_dir) \
515 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkgdir)/$$f'"; \
516 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkgdir)/$$f"; \
517 done
518
519clean-pkgLTLIBRARIES:
520 -test -z "$(pkg_LTLIBRARIES)" || rm -f $(pkg_LTLIBRARIES)
521 @list='$(pkg_LTLIBRARIES)'; for p in $$list; do \
522 dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
523 test "$$dir" != "$$p" || dir=.; \
524 echo "rm -f \"$${dir}/so_locations\""; \
525 rm -f "$${dir}/so_locations"; \
526 done
527libevas_engine_wayland_shm.la: $(libevas_engine_wayland_shm_la_OBJECTS) $(libevas_engine_wayland_shm_la_DEPENDENCIES)
528 $(AM_V_CCLD)$(LINK) $(am_libevas_engine_wayland_shm_la_rpath) $(libevas_engine_wayland_shm_la_OBJECTS) $(libevas_engine_wayland_shm_la_LIBADD) $(LIBS)
529module.la: $(module_la_OBJECTS) $(module_la_DEPENDENCIES)
530 $(AM_V_CCLD)$(module_la_LINK) $(am_module_la_rpath) $(module_la_OBJECTS) $(module_la_LIBADD) $(LIBS)
531
532mostlyclean-compile:
533 -rm -f *.$(OBJEXT)
534
535distclean-compile:
536 -rm -f *.tab.c
537
538@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_engine.Plo@am__quote@
539@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_outbuf.Plo@am__quote@
540@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_engine.Plo@am__quote@
541@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_outbuf.Plo@am__quote@
542
543.c.o:
544@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
545@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
546@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
547@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
548@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
549@am__fastdepCC_FALSE@ $(COMPILE) -c $<
550
551.c.obj:
552@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
553@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
554@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
555@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
556@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
557@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
558
559.c.lo:
560@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
561@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
562@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
563@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
564@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
565@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
566
567module_la-evas_engine.lo: evas_engine.c
568@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT module_la-evas_engine.lo -MD -MP -MF $(DEPDIR)/module_la-evas_engine.Tpo -c -o module_la-evas_engine.lo `test -f 'evas_engine.c' || echo '$(srcdir)/'`evas_engine.c
569@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_engine.Tpo $(DEPDIR)/module_la-evas_engine.Plo
570@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
571@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='evas_engine.c' object='module_la-evas_engine.lo' libtool=yes @AMDEPBACKSLASH@
572@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
573@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o module_la-evas_engine.lo `test -f 'evas_engine.c' || echo '$(srcdir)/'`evas_engine.c
574
575module_la-evas_outbuf.lo: evas_outbuf.c
576@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT module_la-evas_outbuf.lo -MD -MP -MF $(DEPDIR)/module_la-evas_outbuf.Tpo -c -o module_la-evas_outbuf.lo `test -f 'evas_outbuf.c' || echo '$(srcdir)/'`evas_outbuf.c
577@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_outbuf.Tpo $(DEPDIR)/module_la-evas_outbuf.Plo
578@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
579@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='evas_outbuf.c' object='module_la-evas_outbuf.lo' libtool=yes @AMDEPBACKSLASH@
580@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
581@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o module_la-evas_outbuf.lo `test -f 'evas_outbuf.c' || echo '$(srcdir)/'`evas_outbuf.c
582
583mostlyclean-libtool:
584 -rm -f *.lo
585
586clean-libtool:
587 -rm -rf .libs _libs
588install-includesHEADERS: $(includes_HEADERS)
589 @$(NORMAL_INSTALL)
590 test -z "$(includesdir)" || $(MKDIR_P) "$(DESTDIR)$(includesdir)"
591 @list='$(includes_HEADERS)'; test -n "$(includesdir)" || list=; \
592 for p in $$list; do \
593 if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
594 echo "$$d$$p"; \
595 done | $(am__base_list) | \
596 while read files; do \
597 echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includesdir)'"; \
598 $(INSTALL_HEADER) $$files "$(DESTDIR)$(includesdir)" || exit $$?; \
599 done
600
601uninstall-includesHEADERS:
602 @$(NORMAL_UNINSTALL)
603 @list='$(includes_HEADERS)'; test -n "$(includesdir)" || list=; \
604 files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
605 test -n "$$files" || exit 0; \
606 echo " ( cd '$(DESTDIR)$(includesdir)' && rm -f" $$files ")"; \
607 cd "$(DESTDIR)$(includesdir)" && rm -f $$files
608
609ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
610 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
611 unique=`for i in $$list; do \
612 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
613 done | \
614 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
615 END { if (nonempty) { for (i in files) print i; }; }'`; \
616 mkid -fID $$unique
617tags: TAGS
618
619TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
620 $(TAGS_FILES) $(LISP)
621 set x; \
622 here=`pwd`; \
623 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
624 unique=`for i in $$list; do \
625 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
626 done | \
627 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
628 END { if (nonempty) { for (i in files) print i; }; }'`; \
629 shift; \
630 if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
631 test -n "$$unique" || unique=$$empty_fix; \
632 if test $$# -gt 0; then \
633 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
634 "$$@" $$unique; \
635 else \
636 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
637 $$unique; \
638 fi; \
639 fi
640ctags: CTAGS
641CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
642 $(TAGS_FILES) $(LISP)
643 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
644 unique=`for i in $$list; do \
645 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
646 done | \
647 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
648 END { if (nonempty) { for (i in files) print i; }; }'`; \
649 test -z "$(CTAGS_ARGS)$$unique" \
650 || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
651 $$unique
652
653GTAGS:
654 here=`$(am__cd) $(top_builddir) && pwd` \
655 && $(am__cd) $(top_srcdir) \
656 && gtags -i $(GTAGS_ARGS) "$$here"
657
658distclean-tags:
659 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
660
661distdir: $(DISTFILES)
662 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
663 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
664 list='$(DISTFILES)'; \
665 dist_files=`for file in $$list; do echo $$file; done | \
666 sed -e "s|^$$srcdirstrip/||;t" \
667 -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
668 case $$dist_files in \
669 */*) $(MKDIR_P) `echo "$$dist_files" | \
670 sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
671 sort -u` ;; \
672 esac; \
673 for file in $$dist_files; do \
674 if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
675 if test -d $$d/$$file; then \
676 dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
677 if test -d "$(distdir)/$$file"; then \
678 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
679 fi; \
680 if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
681 cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
682 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
683 fi; \
684 cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
685 else \
686 test -f "$(distdir)/$$file" \
687 || cp -p $$d/$$file "$(distdir)/$$file" \
688 || exit 1; \
689 fi; \
690 done
691check-am: all-am
692check: check-am
693all-am: Makefile $(LTLIBRARIES) $(HEADERS)
694installdirs:
695 for dir in "$(DESTDIR)$(pkgdir)" "$(DESTDIR)$(includesdir)"; do \
696 test -z "$$dir" || $(MKDIR_P) "$$dir"; \
697 done
698install: install-am
699install-exec: install-exec-am
700install-data: install-data-am
701uninstall: uninstall-am
702
703install-am: all-am
704 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
705
706installcheck: installcheck-am
707install-strip:
708 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
709 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
710 `test -z '$(STRIP)' || \
711 echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
712mostlyclean-generic:
713
714clean-generic:
715
716distclean-generic:
717 -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
718 -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
719
720maintainer-clean-generic:
721 @echo "This command is intended for maintainers to use"
722 @echo "it deletes files that may require special tools to rebuild."
723 -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
724clean: clean-am
725
726clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
727 clean-pkgLTLIBRARIES mostlyclean-am
728
729distclean: distclean-am
730 -rm -rf ./$(DEPDIR)
731 -rm -f Makefile
732distclean-am: clean-am distclean-compile distclean-generic \
733 distclean-tags
734
735dvi: dvi-am
736
737dvi-am:
738
739html: html-am
740
741html-am:
742
743info: info-am
744
745info-am:
746
747install-data-am: install-includesHEADERS install-pkgLTLIBRARIES
748
749install-dvi: install-dvi-am
750
751install-dvi-am:
752
753install-exec-am:
754
755install-html: install-html-am
756
757install-html-am:
758
759install-info: install-info-am
760
761install-info-am:
762
763install-man:
764
765install-pdf: install-pdf-am
766
767install-pdf-am:
768
769install-ps: install-ps-am
770
771install-ps-am:
772
773installcheck-am:
774
775maintainer-clean: maintainer-clean-am
776 -rm -rf ./$(DEPDIR)
777 -rm -f Makefile
778maintainer-clean-am: distclean-am maintainer-clean-generic
779
780mostlyclean: mostlyclean-am
781
782mostlyclean-am: mostlyclean-compile mostlyclean-generic \
783 mostlyclean-libtool
784
785pdf: pdf-am
786
787pdf-am:
788
789ps: ps-am
790
791ps-am:
792
793uninstall-am: uninstall-includesHEADERS uninstall-pkgLTLIBRARIES
794
795.MAKE: install-am install-strip
796
797.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
798 clean-libtool clean-noinstLTLIBRARIES clean-pkgLTLIBRARIES \
799 ctags distclean distclean-compile distclean-generic \
800 distclean-libtool distclean-tags distdir dvi dvi-am html \
801 html-am info info-am install install-am install-data \
802 install-data-am install-dvi install-dvi-am install-exec \
803 install-exec-am install-html install-html-am \
804 install-includesHEADERS install-info install-info-am \
805 install-man install-pdf install-pdf-am install-pkgLTLIBRARIES \
806 install-ps install-ps-am install-strip installcheck \
807 installcheck-am installdirs maintainer-clean \
808 maintainer-clean-generic mostlyclean mostlyclean-compile \
809 mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
810 tags uninstall uninstall-am uninstall-includesHEADERS \
811 uninstall-pkgLTLIBRARIES
812
813
814# Tell versions [3.59,3.63) of GNU make to not export all variables.
815# Otherwise a system limit (for SysV at least) may be exceeded.
816.NOEXPORT:
diff --git a/libraries/evas/src/modules/engines/wayland_shm/evas_engine.c b/libraries/evas/src/modules/engines/wayland_shm/evas_engine.c
new file mode 100644
index 0000000..7c55517
--- /dev/null
+++ b/libraries/evas/src/modules/engines/wayland_shm/evas_engine.c
@@ -0,0 +1,370 @@
1#include "evas_common.h"
2#include "evas_private.h"
3#include "evas_engine.h"
4#include "Evas_Engine_Wayland_Shm.h"
5
6/* local structures */
7typedef struct _Render_Engine Render_Engine;
8struct _Render_Engine
9{
10 Tilebuf *tb;
11 Tilebuf_Rect *rects;
12 Outbuf *ob;
13 Eina_Inlist *cur_rect;
14
15 Eina_Bool end : 1;
16
17 void (*outbuf_free)(Outbuf *ob);
18 void (*outbuf_resize)(Outbuf *ob, int w, int h);
19 RGBA_Image *(*outbuf_new_region_for_update)(Outbuf *ob, int x, int y, int w, int h, int *cx, int *cy, int *cw, int *ch);
20 void (*outbuf_push_updated_region)(Outbuf *ob, RGBA_Image *surface, int x, int y, int w, int h);
21 void (*outbuf_free_region_for_update)(Outbuf *ob, RGBA_Image *update);
22};
23
24/* local variables */
25static Evas_Func func, pfunc;
26
27/* external variables */
28int _evas_engine_way_shm_log_dom = -1;
29
30/* local function prototypes */
31static void *_output_setup(int w, int h, int rotation, void *dest);
32
33/* engine function prototypes */
34static void *eng_info(Evas *evas __UNUSED__);
35static void eng_info_free(Evas *evas __UNUSED__, void *info);
36static int eng_setup(Evas *evas, void *info);
37static void eng_output_free(void *data);
38static void eng_output_resize(void *data, int w, int h);
39static void eng_output_tile_size_set(void *data, int w, int h);
40static void eng_output_redraws_rect_add(void *data, int x, int y, int w, int h);
41static void eng_output_redraws_rect_del(void *data, int x, int y, int w, int h);
42static void eng_output_redraws_clear(void *data);
43static void *eng_output_redraws_next_update_get(void *data, int *x, int *y, int *w, int *h, int *cx, int *cy, int *cw, int *ch);
44static void eng_output_redraws_next_update_push(void *data, void *surface, int x, int y, int w, int h);
45static void eng_output_flush(void *data);
46static void eng_output_idle_flush(void *data);
47static Eina_Bool eng_canvas_alpha_get(void *data, void *context __UNUSED__);
48
49/* local functions */
50static void *
51_output_setup(int w, int h, int rotation, void *dest)
52{
53 Render_Engine *re = NULL;
54
55 LOGFN(__FILE__, __LINE__, __FUNCTION__);
56
57 if (!(re = calloc(1, sizeof(Render_Engine)))) return NULL;
58
59 if (!(re->ob = evas_outbuf_setup(w, h, rotation, dest)))
60 {
61 free(re);
62 return NULL;
63 }
64
65 if (!(re->tb = evas_common_tilebuf_new(w, h)))
66 {
67 evas_outbuf_free(re->ob);
68 free(re);
69 return NULL;
70 }
71
72 evas_common_tilebuf_set_tile_size(re->tb, TILESIZE, TILESIZE);
73 return re;
74}
75
76/* engine functions */
77static void *
78eng_info(Evas *evas __UNUSED__)
79{
80 Evas_Engine_Info_Wayland_Shm *info;
81
82 LOGFN(__FILE__, __LINE__, __FUNCTION__);
83
84 if (!(info = calloc(1, sizeof(Evas_Engine_Info_Wayland_Shm))))
85 return NULL;
86
87 info->magic.magic = rand();
88 info->info.debug = EINA_FALSE;
89 info->render_mode = EVAS_RENDER_MODE_BLOCKING;
90
91 return info;
92}
93
94static void
95eng_info_free(Evas *evas __UNUSED__, void *info)
96{
97 Evas_Engine_Info_Wayland_Shm *in;
98
99 LOGFN(__FILE__, __LINE__, __FUNCTION__);
100
101 if (!(in = (Evas_Engine_Info_Wayland_Shm *)info)) return;
102 free(in);
103}
104
105static int
106eng_setup(Evas *evas, void *info)
107{
108 Evas_Engine_Info_Wayland_Shm *in;
109 Render_Engine *re = NULL;
110
111 LOGFN(__FILE__, __LINE__, __FUNCTION__);
112
113 if (!(in = (Evas_Engine_Info_Wayland_Shm *)info)) return 0;
114
115 if (!evas->engine.data.output)
116 {
117 evas_common_cpu_init();
118 evas_common_blend_init();
119 evas_common_image_init();
120 evas_common_convert_init();
121 evas_common_scale_init();
122 evas_common_rectangle_init();
123 evas_common_polygon_init();
124 evas_common_line_init();
125 evas_common_font_init();
126 evas_common_draw_init();
127 evas_common_tilebuf_init();
128
129 re = _output_setup(evas->output.w, evas->output.h,
130 in->info.rotation, in->info.dest);
131 if (!re) return 0;
132
133 re->outbuf_free = evas_outbuf_free;
134 re->outbuf_resize = evas_outbuf_resize;
135 re->outbuf_new_region_for_update = evas_outbuf_new_region_for_update;
136 re->outbuf_push_updated_region = evas_outbuf_push_updated_region;
137 re->outbuf_free_region_for_update = evas_outbuf_free_region_for_update;
138 }
139 else
140 {
141 if (!(re = evas->engine.data.output)) return 0;
142 if (re->ob) re->outbuf_free(re->ob);
143 re->ob = evas_outbuf_setup(evas->output.w, evas->output.h,
144 in->info.rotation, in->info.dest);
145 if (re->tb) evas_common_tilebuf_free(re->tb);
146 if ((re->tb = evas_common_tilebuf_new(evas->output.w, evas->output.h)))
147 evas_common_tilebuf_set_tile_size(re->tb, TILESIZE, TILESIZE);
148 }
149
150 evas->engine.data.output = re;
151
152 if (!evas->engine.data.context)
153 {
154 evas->engine.data.context =
155 evas->engine.func->context_new(evas->engine.data.output);
156 }
157
158 return 1;
159}
160
161static void
162eng_output_free(void *data)
163{
164 Render_Engine *re = NULL;
165
166 LOGFN(__FILE__, __LINE__, __FUNCTION__);
167
168 if ((re = (Render_Engine *)data))
169 {
170 if (re->ob) re->outbuf_free(re->ob);
171 if (re->tb) evas_common_tilebuf_free(re->tb);
172 if (re->rects) evas_common_tilebuf_free_render_rects(re->rects);
173 free(re);
174 }
175 evas_common_font_shutdown();
176 evas_common_image_shutdown();
177}
178
179static void
180eng_output_resize(void *data, int w, int h)
181{
182 Render_Engine *re = NULL;
183
184 LOGFN(__FILE__, __LINE__, __FUNCTION__);
185
186 if (!(re = (Render_Engine *)data)) return;
187
188 if (re->ob) re->outbuf_resize(re->ob, w, h);
189 if (re->tb) evas_common_tilebuf_free(re->tb);
190 if ((re->tb = evas_common_tilebuf_new(w, h)))
191 evas_common_tilebuf_set_tile_size(re->tb, TILESIZE, TILESIZE);
192}
193
194static void
195eng_output_tile_size_set(void *data, int w, int h)
196{
197 Render_Engine *re = NULL;
198
199 if (!(re = (Render_Engine *)data)) return;
200 if (re->tb) evas_common_tilebuf_set_tile_size(re->tb, w, h);
201}
202
203static void
204eng_output_redraws_rect_add(void *data, int x, int y, int w, int h)
205{
206 Render_Engine *re = NULL;
207
208 if (!(re = (Render_Engine *)data)) return;
209 if (re->tb) evas_common_tilebuf_add_redraw(re->tb, x, y, w, h);
210}
211
212static void
213eng_output_redraws_rect_del(void *data, int x, int y, int w, int h)
214{
215 Render_Engine *re = NULL;
216
217 if (!(re = (Render_Engine *)data)) return;
218 if (re->tb) evas_common_tilebuf_del_redraw(re->tb, x, y, w, h);
219}
220
221static void
222eng_output_redraws_clear(void *data)
223{
224 Render_Engine *re = NULL;
225
226 if (!(re = (Render_Engine *)data)) return;
227 if (re->tb) evas_common_tilebuf_clear(re->tb);
228}
229
230static void *
231eng_output_redraws_next_update_get(void *data, int *x, int *y, int *w, int *h, int *cx, int *cy, int *cw, int *ch)
232{
233 Render_Engine *re = NULL;
234 RGBA_Image *surface;
235 Tilebuf_Rect *rect;
236 int ux = 0, uy = 0, uw = 0, uh = 0;
237
238 if (!(re = (Render_Engine *)data)) return NULL;
239 if (re->end)
240 {
241 re->end = EINA_FALSE;
242 return NULL;
243 }
244 if (!re->rects)
245 {
246 re->rects = evas_common_tilebuf_get_render_rects(re->tb);
247 re->cur_rect = EINA_INLIST_GET(re->rects);
248 }
249 if (!re->cur_rect) return NULL;
250 rect = (Tilebuf_Rect *)re->cur_rect;
251 ux = rect->x;
252 uy = rect->y;
253 uw = rect->w;
254 uh = rect->h;
255 re->cur_rect = re->cur_rect->next;
256 if (!re->cur_rect)
257 {
258 evas_common_tilebuf_free_render_rects(re->rects);
259 re->rects = NULL;
260 re->end = EINA_TRUE;
261 }
262 if ((ux + uw) > re->ob->w) uw = re->ob->w - ux;
263 if ((uy + uh) > re->ob->h) uh = re->ob->h - uy;
264 if ((uw <= 0) || (uh <= 0)) return NULL;
265 surface =
266 re->outbuf_new_region_for_update(re->ob, ux, uy, uw, uh, cx, cy, cw, ch);
267 if (x) *x = ux;
268 if (y) *y = uy;
269 if (w) *w = uw;
270 if (h) *h = uh;
271 return surface;
272}
273
274static void
275eng_output_redraws_next_update_push(void *data, void *surface, int x, int y, int w, int h)
276{
277 Render_Engine *re = NULL;
278
279 if (!(re = (Render_Engine *)data)) return;
280#ifdef BUILD_PIPE_RENDER
281 evas_common_pipe_map_begin(surface);
282#endif
283 if (re->ob)
284 {
285 re->outbuf_push_updated_region(re->ob, surface, x, y, w, h);
286 re->outbuf_free_region_for_update(re->ob, surface);
287 }
288 evas_common_cpu_end_opt();
289}
290
291static void
292eng_output_flush(void *data)
293{
294 Render_Engine *re = NULL;
295
296 if (!(re = (Render_Engine *)data)) return;
297}
298
299static void
300eng_output_idle_flush(void *data)
301{
302 Render_Engine *re = NULL;
303
304 if (!(re = (Render_Engine *)data)) return;
305}
306
307static Eina_Bool
308eng_canvas_alpha_get(void *data, void *context __UNUSED__)
309{
310 Render_Engine *re = NULL;
311
312 if (!(re = (Render_Engine *)data)) return EINA_FALSE;
313 return EINA_TRUE;
314}
315
316/* module functions */
317static int
318module_open(Evas_Module *em)
319{
320 if (!em) return 0;
321
322 if (!_evas_module_engine_inherit(&pfunc, "software_generic"))
323 return 0;
324
325 _evas_engine_way_shm_log_dom =
326 eina_log_domain_register("evas-wayland_shm", EVAS_DEFAULT_LOG_COLOR);
327 if (_evas_engine_way_shm_log_dom < 0)
328 {
329 EINA_LOG_ERR("Could not create a module log domain.");
330 return 0;
331 }
332
333 func = pfunc;
334
335#define ORD(f) EVAS_API_OVERRIDE(f, &func, eng_)
336 ORD(info);
337 ORD(info_free);
338 ORD(setup);
339 ORD(canvas_alpha_get);
340 ORD(output_free);
341 ORD(output_resize);
342 ORD(output_tile_size_set);
343 ORD(output_redraws_rect_add);
344 ORD(output_redraws_rect_del);
345 ORD(output_redraws_clear);
346 ORD(output_redraws_next_update_get);
347 ORD(output_redraws_next_update_push);
348 ORD(output_flush);
349 ORD(output_idle_flush);
350
351 em->functions = (void *)(&func);
352 return 1;
353}
354
355static void
356module_close(Evas_Module *em __UNUSED__)
357{
358 eina_log_domain_unregister(_evas_engine_way_shm_log_dom);
359}
360
361static Evas_Module_Api evas_modapi =
362{
363 EVAS_MODULE_API_VERSION, "wayland_shm", "none", {module_open, module_close}
364};
365
366EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_ENGINE, engine, wayland_shm);
367
368#ifndef EVAS_STATIC_BUILD_WAYLAND_SHM
369EVAS_EINA_MODULE_DEFINE(engine, wayland_shm);
370#endif
diff --git a/libraries/evas/src/modules/engines/wayland_shm/evas_engine.h b/libraries/evas/src/modules/engines/wayland_shm/evas_engine.h
new file mode 100644
index 0000000..878851a
--- /dev/null
+++ b/libraries/evas/src/modules/engines/wayland_shm/evas_engine.h
@@ -0,0 +1,60 @@
1#ifndef _EVAS_ENGINE_H
2# define _EVAS_ENGINE_H
3
4//# define LOGFNS 1
5
6# ifdef LOGFNS
7# include <stdio.h>
8# define LOGFN(fl, ln, fn) printf("-EVAS-WL: %25s: %5i - %s\n", fl, ln, fn);
9# else
10# define LOGFN(fl, ln, fn)
11# endif
12
13extern int _evas_engine_way_shm_log_dom;
14
15# ifdef ERR
16# undef ERR
17# endif
18# define ERR(...) EINA_LOG_DOM_ERR(_evas_engine_way_shm_log_dom, __VA_ARGS__)
19
20# ifdef DBG
21# undef DBG
22# endif
23# define DBG(...) EINA_LOG_DOM_DBG(_evas_engine_way_shm_log_dom, __VA_ARGS__)
24
25# ifdef INF
26# undef INF
27# endif
28# define INF(...) EINA_LOG_DOM_INFO(_evas_engine_way_shm_log_dom, __VA_ARGS__)
29
30# ifdef WRN
31# undef WRN
32# endif
33# define WRN(...) EINA_LOG_DOM_WARN(_evas_engine_way_shm_log_dom, __VA_ARGS__)
34
35# ifdef CRIT
36# undef CRIT
37# endif
38# define CRIT(...) EINA_LOG_DOM_CRIT(_evas_engine_way_shm_log_dom, __VA_ARGS__)
39
40typedef struct _Outbuf Outbuf;
41struct _Outbuf
42{
43 int w, h;
44 int rotation;
45
46 struct
47 {
48 void *dest;
49 RGBA_Image *buffer;
50 } priv;
51};
52
53void evas_outbuf_free(Outbuf *ob);
54void evas_outbuf_resize(Outbuf *ob, int w, int h);
55Outbuf *evas_outbuf_setup(int w, int h, int rot, void *dest);
56RGBA_Image *evas_outbuf_new_region_for_update(Outbuf *ob, int x, int y, int w, int h, int *cx, int *cy, int *cw, int *ch);
57void evas_outbuf_push_updated_region(Outbuf *ob, RGBA_Image *update, int x __UNUSED__, int y, int w, int h);
58void evas_outbuf_free_region_for_update(Outbuf *ob, RGBA_Image *update);
59
60#endif
diff --git a/libraries/evas/src/modules/engines/wayland_shm/evas_outbuf.c b/libraries/evas/src/modules/engines/wayland_shm/evas_outbuf.c
new file mode 100644
index 0000000..490a978
--- /dev/null
+++ b/libraries/evas/src/modules/engines/wayland_shm/evas_outbuf.c
@@ -0,0 +1,100 @@
1#include "evas_common.h"
2#include "evas_engine.h"
3
4void
5evas_outbuf_free(Outbuf *ob)
6{
7 if (!ob) return;
8 if (ob->priv.buffer) evas_cache_image_drop(&ob->priv.buffer->cache_entry);
9 free(ob);
10}
11
12void
13evas_outbuf_resize(Outbuf *ob, int w, int h)
14{
15 if (!ob) return;
16 if ((ob->w == w) && (ob->h == h)) return;
17 ob->w = w;
18 ob->h = h;
19 if (ob->priv.buffer) evas_cache_image_drop(&ob->priv.buffer->cache_entry);
20 ob->priv.buffer = NULL;
21}
22
23Outbuf *
24evas_outbuf_setup(int w, int h, int rot, void *dest)
25{
26 Outbuf *ob = NULL;
27
28 if (!(ob = calloc(1, sizeof(Outbuf)))) return NULL;
29
30 ob->w = w;
31 ob->h = h;
32 ob->rotation = rot;
33 ob->priv.dest = dest;
34
35 ob->priv.buffer =
36 (RGBA_Image *)evas_cache_image_data(evas_common_image_cache_get(),
37 w, h, ob->priv.dest,
38 1, EVAS_COLORSPACE_ARGB8888);
39
40 return ob;
41}
42
43RGBA_Image *
44evas_outbuf_new_region_for_update(Outbuf *ob, int x, int y, int w, int h, int *cx, int *cy, int *cw, int *ch)
45{
46 if (ob->priv.buffer)
47 {
48 *cx = x; *cy = y; *cw = w; *ch = h;
49 return ob->priv.buffer;
50 }
51 else
52 {
53 RGBA_Image *im;
54
55 *cx = 0; *cy = 0; *cw = w; *ch = h;
56 im = (RGBA_Image *)evas_cache_image_empty(evas_common_image_cache_get());
57 if (im)
58 {
59 im->cache_entry.flags.alpha = 1;
60 im = (RGBA_Image *)evas_cache_image_size_set(&im->cache_entry, w, h);
61 }
62
63 return im;
64 }
65
66 return NULL;
67}
68
69void
70evas_outbuf_push_updated_region(Outbuf *ob, RGBA_Image *update, int x __UNUSED__, int y, int w, int h)
71{
72 if (!ob->priv.dest) return;
73 if (!ob->priv.buffer)
74 {
75 Gfx_Func_Copy func;
76
77 func = evas_common_draw_func_copy_get(w, 0);
78 if (func)
79 {
80 DATA32 *dst, *src;
81 int yy = 0, bytes = 0;
82
83 bytes = ((w * sizeof(int)) * h);
84 for (yy = 0; yy < h; yy++)
85 {
86 src = update->image.data + (yy * update->cache_entry.w);
87 dst = (DATA32 *)((DATA8 *)(ob->priv.dest) +
88 ((y + yy) * bytes));
89 func(src, dst, w);
90 }
91 }
92 }
93}
94
95void
96evas_outbuf_free_region_for_update(Outbuf *ob, RGBA_Image *update)
97{
98 if (!ob) return;
99 if (update != ob->priv.buffer) evas_cache_image_drop(&update->cache_entry);
100}
diff --git a/libraries/evas/src/modules/loaders/Makefile.in b/libraries/evas/src/modules/loaders/Makefile.in
index 2120a33..454dcd8 100644
--- a/libraries/evas/src/modules/loaders/Makefile.in
+++ b/libraries/evas/src/modules/loaders/Makefile.in
@@ -49,7 +49,7 @@ host_triplet = @host@
49@BUILD_LOADER_WBMP_TRUE@@EVAS_STATIC_BUILD_WBMP_FALSE@am__append_14 = wbmp 49@BUILD_LOADER_WBMP_TRUE@@EVAS_STATIC_BUILD_WBMP_FALSE@am__append_14 = wbmp
50@BUILD_LOADER_XPM_TRUE@@EVAS_STATIC_BUILD_XPM_FALSE@am__append_15 = xpm 50@BUILD_LOADER_XPM_TRUE@@EVAS_STATIC_BUILD_XPM_FALSE@am__append_15 = xpm
51subdir = src/modules/loaders 51subdir = src/modules/loaders
52DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in TODO 52DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
53ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 53ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
54am__aclocal_m4_deps = $(top_srcdir)/m4/efl_attribute.m4 \ 54am__aclocal_m4_deps = $(top_srcdir)/m4/efl_attribute.m4 \
55 $(top_srcdir)/m4/efl_coverage.m4 \ 55 $(top_srcdir)/m4/efl_coverage.m4 \
@@ -222,8 +222,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
222PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 222PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
223PIXMAN_LIBS = @PIXMAN_LIBS@ 223PIXMAN_LIBS = @PIXMAN_LIBS@
224PKG_CONFIG = @PKG_CONFIG@ 224PKG_CONFIG = @PKG_CONFIG@
225PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
226PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
227PNG_CFLAGS = @PNG_CFLAGS@ 225PNG_CFLAGS = @PNG_CFLAGS@
228PNG_LIBS = @PNG_LIBS@ 226PNG_LIBS = @PNG_LIBS@
229RANLIB = @RANLIB@ 227RANLIB = @RANLIB@
@@ -240,6 +238,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
240VALGRIND_LIBS = @VALGRIND_LIBS@ 238VALGRIND_LIBS = @VALGRIND_LIBS@
241VERSION = @VERSION@ 239VERSION = @VERSION@
242VMAJ = @VMAJ@ 240VMAJ = @VMAJ@
241WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
242WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
243WIN32_CFLAGS = @WIN32_CFLAGS@ 243WIN32_CFLAGS = @WIN32_CFLAGS@
244WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 244WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
245XCB_CFLAGS = @XCB_CFLAGS@ 245XCB_CFLAGS = @XCB_CFLAGS@
@@ -321,6 +321,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
321evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 321evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
322evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 322evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
323evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 323evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
324evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
325evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
326evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
327evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
324evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 328evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
325evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 329evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
326evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 330evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/loaders/TODO b/libraries/evas/src/modules/loaders/TODO
deleted file mode 100644
index 3b82543..0000000
--- a/libraries/evas/src/modules/loaders/TODO
+++ /dev/null
@@ -1,5 +0,0 @@
1DONE -> bmp tga ico
2id3 gz bz2 <- extraction loaders
3lbm <- aaah amiga days
4ani <- why>
5
diff --git a/libraries/evas/src/modules/loaders/bmp/Makefile.in b/libraries/evas/src/modules/loaders/bmp/Makefile.in
index f2c3e20..943fb74 100644
--- a/libraries/evas/src/modules/loaders/bmp/Makefile.in
+++ b/libraries/evas/src/modules/loaders/bmp/Makefile.in
@@ -231,8 +231,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
232PIXMAN_LIBS = @PIXMAN_LIBS@ 232PIXMAN_LIBS = @PIXMAN_LIBS@
233PKG_CONFIG = @PKG_CONFIG@ 233PKG_CONFIG = @PKG_CONFIG@
234PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
235PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
236PNG_CFLAGS = @PNG_CFLAGS@ 234PNG_CFLAGS = @PNG_CFLAGS@
237PNG_LIBS = @PNG_LIBS@ 235PNG_LIBS = @PNG_LIBS@
238RANLIB = @RANLIB@ 236RANLIB = @RANLIB@
@@ -249,6 +247,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
249VALGRIND_LIBS = @VALGRIND_LIBS@ 247VALGRIND_LIBS = @VALGRIND_LIBS@
250VERSION = @VERSION@ 248VERSION = @VERSION@
251VMAJ = @VMAJ@ 249VMAJ = @VMAJ@
250WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
251WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
252WIN32_CFLAGS = @WIN32_CFLAGS@ 252WIN32_CFLAGS = @WIN32_CFLAGS@
253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
254XCB_CFLAGS = @XCB_CFLAGS@ 254XCB_CFLAGS = @XCB_CFLAGS@
@@ -330,6 +330,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
333evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
334evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
335evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
336evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
333evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 337evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
334evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 338evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
335evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 339evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/loaders/bmp/evas_image_load_bmp.c b/libraries/evas/src/modules/loaders/bmp/evas_image_load_bmp.c
index 38e3680..6d15783 100644
--- a/libraries/evas/src/modules/loaders/bmp/evas_image_load_bmp.c
+++ b/libraries/evas/src/modules/loaders/bmp/evas_image_load_bmp.c
@@ -21,50 +21,91 @@ static Evas_Image_Load_Func evas_image_load_bmp_func =
21 EINA_TRUE, 21 EINA_TRUE,
22 evas_image_load_file_head_bmp, 22 evas_image_load_file_head_bmp,
23 evas_image_load_file_data_bmp, 23 evas_image_load_file_data_bmp,
24 NULL 24 NULL,
25 EINA_FALSE
25}; 26};
26 27
27static int 28static Eina_Bool
28read_short(FILE *file, short *ret) 29read_short(unsigned char *map, size_t length, size_t *position, short *ret)
29{ 30{
30 unsigned char b[2]; 31 unsigned char b[2];
31 if (fread(b, sizeof(unsigned char), 2, file) != 2) return 0; 32
33 if (*position + 2 > length) return EINA_FALSE;
34 b[0] = map[(*position)++];
35 b[1] = map[(*position)++];
32 *ret = (b[1] << 8) | b[0]; 36 *ret = (b[1] << 8) | b[0];
33 return 1; 37 return EINA_TRUE;
34} 38}
35 39
36static int 40static Eina_Bool
37read_ushort(FILE *file, unsigned short *ret) 41read_ushort(unsigned char *map, size_t length, size_t *position, unsigned short *ret)
38{ 42{
39 unsigned char b[2]; 43 unsigned char b[2];
40 if (fread(b, sizeof(unsigned char), 2, file) != 2) return 0; 44
45 if (*position + 2 > length) return EINA_FALSE;
46 b[0] = map[(*position)++];
47 b[1] = map[(*position)++];
41 *ret = (b[1] << 8) | b[0]; 48 *ret = (b[1] << 8) | b[0];
42 return 1; 49 return EINA_TRUE;
43} 50}
44 51
45static int 52static Eina_Bool
46read_int(FILE *file, int *ret) 53read_int(unsigned char *map, size_t length, size_t *position, int *ret)
47{ 54{
48 unsigned char b[4]; 55 unsigned char b[4];
49 if (fread(b, sizeof(unsigned char), 4, file) != 4) return 0; 56 int i;
57
58 if (*position + 4 > length) return EINA_FALSE;
59 for (i = 0; i < 4; i++)
60 b[i] = map[(*position)++];
50 *ret = ARGB_JOIN(b[3], b[2], b[1], b[0]); 61 *ret = ARGB_JOIN(b[3], b[2], b[1], b[0]);
51 return 1; 62 return EINA_TRUE;
52} 63}
53 64
54static int 65static Eina_Bool
55read_uint(FILE *file, unsigned int *ret) 66read_uint(unsigned char *map, size_t length, size_t *position, unsigned int *ret)
56{ 67{
57 unsigned char b[4]; 68 unsigned char b[4];
58 if (fread(b, sizeof(unsigned char), 4, file) != 4) return 0; 69 int i;
70
71 if (*position + 4 > length) return EINA_FALSE;
72 for (i = 0; i < 4; i++)
73 b[i] = map[(*position)++];
59 *ret = ARGB_JOIN(b[3], b[2], b[1], b[0]); 74 *ret = ARGB_JOIN(b[3], b[2], b[1], b[0]);
60 return 1; 75 return EINA_TRUE;
76}
77
78static Eina_Bool
79read_uchar(unsigned char *map, size_t length, size_t *position, unsigned char *ret)
80{
81 if (*position + 1 > length) return EINA_FALSE;
82 *ret = map[(*position)++];
83 return EINA_TRUE;
84}
85
86static Eina_Bool
87read_skip(size_t length, size_t *position, int skip)
88{
89 if (*position + skip > length) return EINA_FALSE;
90 *position += skip;
91 return EINA_TRUE;
92}
93
94static Eina_Bool
95read_mem(unsigned char *map, size_t length, size_t *position, void *buffer, int size)
96{
97 if (*position + size > length) return EINA_FALSE;
98 memcpy(buffer, map + *position, size);
99 *position += size;
100 return EINA_TRUE;
61} 101}
62 102
63static Eina_Bool 103static Eina_Bool
64evas_image_load_file_head_bmp(Image_Entry *ie, const char *file, const char *key __UNUSED__, int *error) 104evas_image_load_file_head_bmp(Image_Entry *ie, const char *file, const char *key __UNUSED__, int *error)
65{ 105{
66 FILE *f; 106 Eina_File *f;
67 char buf[4096]; 107 void *map = NULL;
108 size_t position = 0;
68 char hasa = 0; 109 char hasa = 0;
69 int w = 0, h = 0, planes = 0, bit_count = 0, 110 int w = 0, h = 0, planes = 0, bit_count = 0,
70 image_size = 0, comp = 0, hdpi = 0, vdpi = 0, 111 image_size = 0, comp = 0, hdpi = 0, vdpi = 0,
@@ -76,7 +117,7 @@ evas_image_load_file_head_bmp(Image_Entry *ie, const char *file, const char *key
76 unsigned int bmpsize; 117 unsigned int bmpsize;
77 unsigned short res1, res2; 118 unsigned short res1, res2;
78 119
79 f = fopen(file, "rb"); 120 f = eina_file_open(file, 0);
80 if (!f) 121 if (!f)
81 { 122 {
82 *error = EVAS_LOAD_ERROR_DOES_NOT_EXIST; 123 *error = EVAS_LOAD_ERROR_DOES_NOT_EXIST;
@@ -84,84 +125,85 @@ evas_image_load_file_head_bmp(Image_Entry *ie, const char *file, const char *key
84 } 125 }
85 126
86 *error = EVAS_LOAD_ERROR_UNKNOWN_FORMAT; 127 *error = EVAS_LOAD_ERROR_UNKNOWN_FORMAT;
87 fseek(f, 0, SEEK_END); 128 fsize = eina_file_size_get(f);
88 fsize = ftell(f);
89 fseek(f, 0, SEEK_SET);
90 if (fsize < 2) goto close_file; 129 if (fsize < 2) goto close_file;
91 130
92 if (fread(buf, 2, 1, f) != 1) goto close_file; 131 map = eina_file_map_all(f, EINA_FILE_SEQUENTIAL);
93 if (strncmp(buf, "BM", 2)) goto close_file; // magic number 132 if (!map) goto close_file;
133
134 if (strncmp(map, "BM", 2)) goto close_file; // magic number
135 position += 2;
94 *error = EVAS_LOAD_ERROR_CORRUPT_FILE; 136 *error = EVAS_LOAD_ERROR_CORRUPT_FILE;
95 if (!read_uint(f, &bmpsize)) goto close_file; 137 if (!read_uint(map, fsize, &position, &bmpsize)) goto close_file;
96 if (!read_ushort(f, &res1)) goto close_file; 138 if (!read_ushort(map, fsize, &position, &res1)) goto close_file;
97 if (!read_ushort(f, &res2)) goto close_file; 139 if (!read_ushort(map, fsize, &position, &res2)) goto close_file;
98 if (!read_uint(f, &offset)) goto close_file; 140 if (!read_uint(map, fsize, &position, &offset)) goto close_file;
99 if (!read_uint(f, &head_size)) goto close_file; 141 if (!read_uint(map, fsize, &position, &head_size)) goto close_file;
100 if (head_size == 12) // OS/2 V1 + Windows 3.0 142 if (head_size == 12) // OS/2 V1 + Windows 3.0
101 { 143 {
102 short tmp; 144 short tmp;
103 145
104 if (!read_short(f, &tmp)) goto close_file; 146 if (!read_short(map, fsize, &position, &tmp)) goto close_file;
105 w = tmp; // width 147 w = tmp; // width
106 if (!read_short(f, &tmp)) goto close_file; 148 if (!read_short(map, fsize, &position, &tmp)) goto close_file;
107 h = tmp; // height 149 h = tmp; // height
108 if (!read_short(f, &tmp)) goto close_file; 150 if (!read_short(map, fsize, &position, &tmp)) goto close_file;
109 planes = tmp; // must be 1 151 planes = tmp; // must be 1
110 if (!read_short(f, &tmp)) goto close_file; 152 if (!read_short(map, fsize, &position, &tmp)) goto close_file;
111 bit_count = tmp; // bits per pixel: 1, 4, 8 & 24 153 bit_count = tmp; // bits per pixel: 1, 4, 8 & 24
112 } 154 }
113 else if (head_size == 64) // OS/2 V2 155 else if (head_size == 64) // OS/2 V2
114 { 156 {
115 short tmp; 157 short tmp;
116 int tmp2; 158 int tmp2;
117 159
118 if (!read_int(f, &tmp2)) goto close_file; 160 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
119 w = tmp2; // width 161 w = tmp2; // width
120 if (!read_int(f, &tmp2)) goto close_file; 162 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
121 h = tmp2; // height 163 h = tmp2; // height
122 if (!read_short(f, &tmp)) goto close_file; 164 if (!read_short(map, fsize, &position, &tmp)) goto close_file;
123 planes = tmp; // must be 1 165 planes = tmp; // must be 1
124 if (!read_short(f, &tmp)) goto close_file; 166 if (!read_short(map, fsize, &position, &tmp)) goto close_file;
125 bit_count = tmp; // bits per pixel: 1, 4, 8, 16, 24 & 32 167 bit_count = tmp; // bits per pixel: 1, 4, 8, 16, 24 & 32
126 if (!read_int(f, &tmp2)) goto close_file; 168 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
127 comp = tmp2; // compression method 169 comp = tmp2; // compression method
128 if (!read_int(f, &tmp2)) goto close_file; 170 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
129 image_size = tmp2; // bitmap data size 171 image_size = tmp2; // bitmap data size
130 if (!read_int(f, &tmp2)) goto close_file; 172 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
131 hdpi = (tmp2 * 254) / 10000; // horizontal pixels/meter 173 hdpi = (tmp2 * 254) / 10000; // horizontal pixels/meter
132 if (!read_int(f, &tmp2)) goto close_file; 174 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
133 vdpi = (tmp2 * 254) / 10000; // vertical pixles/meter 175 vdpi = (tmp2 * 254) / 10000; // vertical pixles/meter
134 if (!read_int(f, &tmp2)) goto close_file; 176 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
135 palette_size = tmp2; // number of palette colors power (2^n - so 0 - 8) 177 palette_size = tmp2; // number of palette colors power (2^n - so 0 - 8)
136 if (!read_int(f, &tmp2)) goto close_file; 178 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
137 important_colors = tmp2; // number of important colors - 0 if all 179 important_colors = tmp2; // number of important colors - 0 if all
138 if (fread(buf, 24, 1, f) != 1) goto close_file; // skip unused header 180 if (!read_skip(fsize, &position, 24)) goto close_file; // skip unused header
139 if (image_size == 0) image_size = fsize - offset; 181 if (image_size == 0) image_size = fsize - offset;
140 } 182 }
141 else if (head_size == 40) // Windows 3.0 + (v3) 183 else if (head_size == 40) // Windows 3.0 + (v3)
142 { 184 {
143 short tmp; 185 short tmp;
144 int tmp2; 186 int tmp2;
145 187
146 if (!read_int(f, &tmp2)) goto close_file; 188 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
147 w = tmp2; // width 189 w = tmp2; // width
148 if (!read_int(f, &tmp2)) goto close_file; 190 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
149 h = tmp2; // height 191 h = tmp2; // height
150 if (!read_short(f, &tmp)) goto close_file; 192 if (!read_short(map, fsize, &position, &tmp)) goto close_file;
151 planes = tmp; // must be 1 193 planes = tmp; // must be 1
152 if (!read_short(f, &tmp)) goto close_file; 194 if (!read_short(map, fsize, &position, &tmp)) goto close_file;
153 bit_count = tmp; // bits per pixel: 1, 4, 8, 16, 24 & 32 195 bit_count = tmp; // bits per pixel: 1, 4, 8, 16, 24 & 32
154 if (!read_int(f, &tmp2)) goto close_file; 196 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
155 comp = tmp2; // compression method 197 comp = tmp2; // compression method
156 if (!read_int(f, &tmp2)) goto close_file; 198 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
157 image_size = tmp2; // bitmap data size 199 image_size = tmp2; // bitmap data size
158 if (!read_int(f, &tmp2)) goto close_file; 200 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
159 hdpi = (tmp2 * 254) / 10000; // horizontal pixels/meter 201 hdpi = (tmp2 * 254) / 10000; // horizontal pixels/meter
160 if (!read_int(f, &tmp2)) goto close_file; 202 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
161 vdpi = (tmp2 * 254) / 10000; // vertical pixles/meter 203 vdpi = (tmp2 * 254) / 10000; // vertical pixles/meter
162 if (!read_int(f, &tmp2)) goto close_file; 204 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
163 palette_size = tmp2; // number of palette colors power (2^n - so 0 - 8) 205 palette_size = tmp2; // number of palette colors power (2^n - so 0 - 8)
164 if (!read_int(f, &tmp2)) goto close_file; 206 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
165 important_colors = tmp2; // number of important colors - 0 if all 207 important_colors = tmp2; // number of important colors - 0 if all
166 if (image_size == 0) image_size = fsize - offset; 208 if (image_size == 0) image_size = fsize - offset;
167 if ((comp == 0) && (bit_count == 32)) hasa = 1; // GIMP seems to store it this way 209 if ((comp == 0) && (bit_count == 32)) hasa = 1; // GIMP seems to store it this way
@@ -170,37 +212,37 @@ evas_image_load_file_head_bmp(Image_Entry *ie, const char *file, const char *key
170 { 212 {
171 short tmp; 213 short tmp;
172 int tmp2; 214 int tmp2;
173 215
174 if (!read_int(f, &tmp2)) goto close_file; 216 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
175 w = tmp2; // width 217 w = tmp2; // width
176 if (!read_int(f, &tmp2)) goto close_file; 218 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
177 h = tmp2; // height 219 h = tmp2; // height
178 if (!read_short(f, &tmp)) goto close_file; 220 if (!read_short(map, fsize, &position, &tmp)) goto close_file;
179 planes = tmp; // must be 1 221 planes = tmp; // must be 1
180 if (!read_short(f, &tmp)) goto close_file; 222 if (!read_short(map, fsize, &position, &tmp)) goto close_file;
181 bit_count = tmp; // bits per pixel: 1, 4, 8, 16, 24 & 32 223 bit_count = tmp; // bits per pixel: 1, 4, 8, 16, 24 & 32
182 if (!read_int(f, &tmp2)) goto close_file; 224 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
183 comp = tmp2; // compression method 225 comp = tmp2; // compression method
184 if (!read_int(f, &tmp2)) goto close_file; 226 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
185 image_size = tmp2; // bitmap data size 227 image_size = tmp2; // bitmap data size
186 if (!read_int(f, &tmp2)) goto close_file; 228 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
187 hdpi = (tmp2 * 254) / 10000; // horizontal pixels/meter 229 hdpi = (tmp2 * 254) / 10000; // horizontal pixels/meter
188 if (!read_int(f, &tmp2)) goto close_file; 230 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
189 vdpi = (tmp2 * 254) / 10000; // vertical pixles/meter 231 vdpi = (tmp2 * 254) / 10000; // vertical pixles/meter
190 if (!read_int(f, &tmp2)) goto close_file; 232 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
191 palette_size = tmp2; // number of palette colors power (2^n - so 0 - 8) 233 palette_size = tmp2; // number of palette colors power (2^n - so 0 - 8)
192 if (!read_int(f, &tmp2)) goto close_file; 234 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
193 important_colors = tmp2; // number of important colors - 0 if all 235 important_colors = tmp2; // number of important colors - 0 if all
194 if (!read_int(f, &tmp2)) goto close_file; 236 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
195 rmask = tmp2; // red mask 237 rmask = tmp2; // red mask
196 if (!read_int(f, &tmp2)) goto close_file; 238 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
197 gmask = tmp2; // green mask 239 gmask = tmp2; // green mask
198 if (!read_int(f, &tmp2)) goto close_file; 240 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
199 bmask = tmp2; // blue mask 241 bmask = tmp2; // blue mask
200 if (!read_int(f, &tmp2)) goto close_file; 242 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
201 amask = tmp2; // alpha mask 243 amask = tmp2; // alpha mask
202 if (fread(buf, 36, 1, f) != 1) goto close_file; // skip unused cie 244 if (!read_skip(fsize, &position, 36)) goto close_file; // skip unused cie
203 if (fread(buf, 12, 1, f) != 1) goto close_file; // skip unused gamma 245 if (!read_skip(fsize, &position, 12)) goto close_file; // skip unused gamma
204 if (image_size == 0) image_size = fsize - offset; 246 if (image_size == 0) image_size = fsize - offset;
205 if ((amask) && (bit_count == 32)) hasa = 1; 247 if ((amask) && (bit_count == 32)) hasa = 1;
206 } 248 }
@@ -208,38 +250,38 @@ evas_image_load_file_head_bmp(Image_Entry *ie, const char *file, const char *key
208 { 250 {
209 short tmp; 251 short tmp;
210 int tmp2; 252 int tmp2;
211 253
212 if (!read_int(f, &tmp2)) goto close_file; 254 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
213 w = tmp2; // width 255 w = tmp2; // width
214 if (!read_int(f, &tmp2)) goto close_file; 256 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
215 h = tmp2; // height 257 h = tmp2; // height
216 if (!read_short(f, &tmp)) goto close_file; 258 if (!read_short(map, fsize, &position, &tmp)) goto close_file;
217 planes = tmp; // must be 1 259 planes = tmp; // must be 1
218 if (!read_short(f, &tmp)) goto close_file; 260 if (!read_short(map, fsize, &position, &tmp)) goto close_file;
219 bit_count = tmp; // bits per pixel: 1, 4, 8, 16, 24 & 32 261 bit_count = tmp; // bits per pixel: 1, 4, 8, 16, 24 & 32
220 if (!read_int(f, &tmp2)) goto close_file; 262 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
221 comp = tmp2; // compression method 263 comp = tmp2; // compression method
222 if (!read_int(f, &tmp2)) goto close_file; 264 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
223 image_size = tmp2; // bitmap data size 265 image_size = tmp2; // bitmap data size
224 if (!read_int(f, &tmp2)) goto close_file; 266 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
225 hdpi = (tmp2 * 254) / 10000; // horizontal pixels/meter 267 hdpi = (tmp2 * 254) / 10000; // horizontal pixels/meter
226 if (!read_int(f, &tmp2)) goto close_file; 268 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
227 vdpi = (tmp2 * 254) / 10000; // vertical pixles/meter 269 vdpi = (tmp2 * 254) / 10000; // vertical pixles/meter
228 if (!read_int(f, &tmp2)) goto close_file; 270 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
229 palette_size = tmp2; // number of palette colors power (2^n - so 0 - 8) 271 palette_size = tmp2; // number of palette colors power (2^n - so 0 - 8)
230 if (!read_int(f, &tmp2)) goto close_file; 272 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
231 important_colors = tmp2; // number of important colors - 0 if all 273 important_colors = tmp2; // number of important colors - 0 if all
232 if (!read_int(f, &tmp2)) goto close_file; 274 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
233 rmask = tmp2; // red mask 275 rmask = tmp2; // red mask
234 if (!read_int(f, &tmp2)) goto close_file; 276 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
235 gmask = tmp2; // green mask 277 gmask = tmp2; // green mask
236 if (!read_int(f, &tmp2)) goto close_file; 278 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
237 bmask = tmp2; // blue mask 279 bmask = tmp2; // blue mask
238 if (!read_int(f, &tmp2)) goto close_file; 280 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
239 amask = tmp2; // alpha mask 281 amask = tmp2; // alpha mask
240 if (fread(buf, 36, 1, f) != 1) goto close_file; // skip unused cie 282 if (!read_skip(fsize, &position, 36)) goto close_file; // skip unused cie
241 if (fread(buf, 12, 1, f) != 1) goto close_file; // skip unused gamma 283 if (!read_skip(fsize, &position, 12)) goto close_file; // skip unused gamma
242 if (fread(buf, 16, 1, f) != 1) goto close_file; // skip others 284 if (!read_skip(fsize, &position, 16)) goto close_file; // skip others
243 if (image_size == 0) image_size = fsize - offset; 285 if (image_size == 0) image_size = fsize - offset;
244 if ((amask) && (bit_count == 32)) hasa = 1; 286 if ((amask) && (bit_count == 32)) hasa = 1;
245 } 287 }
@@ -251,7 +293,7 @@ evas_image_load_file_head_bmp(Image_Entry *ie, const char *file, const char *key
251 h = -h; 293 h = -h;
252 right_way_up = 1; 294 right_way_up = 1;
253 } 295 }
254 296
255 if ((w < 1) || (h < 1) || (w > IMG_MAX_SIZE) || (h > IMG_MAX_SIZE) || 297 if ((w < 1) || (h < 1) || (w > IMG_MAX_SIZE) || (h > IMG_MAX_SIZE) ||
256 IMG_TOO_BIG(w, h)) 298 IMG_TOO_BIG(w, h))
257 { 299 {
@@ -327,21 +369,24 @@ evas_image_load_file_head_bmp(Image_Entry *ie, const char *file, const char *key
327 ie->w = w; 369 ie->w = w;
328 ie->h = h; 370 ie->h = h;
329 if (hasa) ie->flags.alpha = 1; 371 if (hasa) ie->flags.alpha = 1;
330 372
331 fclose(f); 373 eina_file_map_free(f, map);
374 eina_file_close(f);
332 *error = EVAS_LOAD_ERROR_NONE; 375 *error = EVAS_LOAD_ERROR_NONE;
333 return EINA_TRUE; 376 return EINA_TRUE;
334 377
335 close_file: 378 close_file:
336 fclose(f); 379 if (map) eina_file_map_free(f, map);
380 eina_file_close(f);
337 return EINA_FALSE; 381 return EINA_FALSE;
338} 382}
339 383
340static Eina_Bool 384static Eina_Bool
341evas_image_load_file_data_bmp(Image_Entry *ie, const char *file, const char *key __UNUSED__, int *error) 385evas_image_load_file_data_bmp(Image_Entry *ie, const char *file, const char *key __UNUSED__, int *error)
342{ 386{
343 FILE *f; 387 Eina_File *f;
344 char buf[4096]; 388 void *map = NULL;
389 size_t position = 0;
345 unsigned char *buffer = NULL, *buffer_end = NULL, *p; 390 unsigned char *buffer = NULL, *buffer_end = NULL, *p;
346 char hasa = 0; 391 char hasa = 0;
347 int x = 0, y = 0, w = 0, h = 0, planes = 0, bit_count = 0, image_size = 0, 392 int x = 0, y = 0, w = 0, h = 0, planes = 0, bit_count = 0, image_size = 0,
@@ -361,96 +406,96 @@ evas_image_load_file_data_bmp(Image_Entry *ie, const char *file, const char *key
361 int row_size = 0; /* Row size is rounded up to a multiple of 4bytes */ 406 int row_size = 0; /* Row size is rounded up to a multiple of 4bytes */
362 int read_line = 0; /* total read line */ 407 int read_line = 0; /* total read line */
363 408
364 409 f = eina_file_open(file, 0);
365 f = fopen(file, "rb");
366 if (!f) 410 if (!f)
367 { 411 {
368 *error = EVAS_LOAD_ERROR_DOES_NOT_EXIST; 412 *error = EVAS_LOAD_ERROR_DOES_NOT_EXIST;
369 return EINA_FALSE; 413 return EINA_FALSE;
370 } 414 }
371 415
372 *error = EVAS_LOAD_ERROR_UNKNOWN_FORMAT; 416 *error = EVAS_LOAD_ERROR_UNKNOWN_FORMAT;
373 fseek(f, 0, SEEK_END); 417 fsize = eina_file_size_get(f);
374 fsize = ftell(f);
375 fseek(f, 0, SEEK_SET);
376 if (fsize < 2) goto close_file; 418 if (fsize < 2) goto close_file;
419
420 map = eina_file_map_all(f, EINA_FILE_SEQUENTIAL);
421 if (!map) goto close_file;
377 422
378 if (fread(buf, 2, 1, f) != 1) goto close_file; 423 if (strncmp(map, "BM", 2)) goto close_file; // magic number
379 if (strncmp(buf, "BM", 2)) goto close_file; // magic number 424 position += 2;
380 *error = EVAS_LOAD_ERROR_CORRUPT_FILE; 425 *error = EVAS_LOAD_ERROR_CORRUPT_FILE;
381 if (!read_uint(f, &bmpsize)) goto close_file; 426 if (!read_uint(map, fsize, &position, &bmpsize)) goto close_file;
382 if (!read_ushort(f, &res1)) goto close_file; 427 if (!read_ushort(map, fsize, &position, &res1)) goto close_file;
383 if (!read_ushort(f, &res2)) goto close_file; 428 if (!read_ushort(map, fsize, &position, &res2)) goto close_file;
384 if (!read_uint(f, &offset)) goto close_file; 429 if (!read_uint(map, fsize, &position, &offset)) goto close_file;
385 if (!read_uint(f, &head_size)) goto close_file; 430 if (!read_uint(map, fsize, &position, &head_size)) goto close_file;
386 image_size = fsize - offset; 431 image_size = fsize - offset;
387 if (image_size < 1) goto close_file; 432 if (image_size < 1) goto close_file;
388 433
389 if (head_size == 12) // OS/2 V1 + Windows 3.0 434 if (head_size == 12) // OS/2 V1 + Windows 3.0
390 { 435 {
391 short tmp; 436 short tmp;
392 437
393 if (!read_short(f, &tmp)) goto close_file; 438 if (!read_short(map, fsize, &position, &tmp)) goto close_file;
394 w = tmp; // width 439 w = tmp; // width
395 if (!read_short(f, &tmp)) goto close_file; 440 if (!read_short(map, fsize, &position, &tmp)) goto close_file;
396 h = tmp; // height 441 h = tmp; // height
397 if (!read_short(f, &tmp)) goto close_file; 442 if (!read_short(map, fsize, &position, &tmp)) goto close_file;
398 planes = tmp; // must be 1 443 planes = tmp; // must be 1
399 if (!read_short(f, &tmp)) goto close_file; 444 if (!read_short(map, fsize, &position, &tmp)) goto close_file;
400 bit_count = tmp; // bits per pixel: 1, 4, 8 & 24 445 bit_count = tmp; // bits per pixel: 1, 4, 8 & 24
401 } 446 }
402 else if (head_size == 64) // OS/2 V2 447 else if (head_size == 64) // OS/2 V2
403 { 448 {
404 short tmp; 449 short tmp;
405 int tmp2; 450 int tmp2;
406 451
407 if (!read_int(f, &tmp2)) goto close_file; 452 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
408 w = tmp2; // width 453 w = tmp2; // width
409 if (!read_int(f, &tmp2)) goto close_file; 454 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
410 h = tmp2; // height 455 h = tmp2; // height
411 if (!read_short(f, &tmp)) goto close_file; 456 if (!read_short(map, fsize, &position, &tmp)) goto close_file;
412 planes = tmp; // must be 1 457 planes = tmp; // must be 1
413 if (!read_short(f, &tmp)) goto close_file; 458 if (!read_short(map, fsize, &position, &tmp)) goto close_file;
414 bit_count = tmp; // bits per pixel: 1, 4, 8, 16, 24 & 32 459 bit_count = tmp; // bits per pixel: 1, 4, 8, 16, 24 & 32
415 if (!read_int(f, &tmp2)) goto close_file; 460 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
416 comp = tmp2; // compression method 461 comp = tmp2; // compression method
417 if (!read_int(f, &tmp2)) goto close_file; 462 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
418 image_size = tmp2; // bitmap data size 463 image_size = tmp2; // bitmap data size
419 if (!read_int(f, &tmp2)) goto close_file; 464 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
420 hdpi = (tmp2 * 254) / 10000; // horizontal pixels/meter 465 hdpi = (tmp2 * 254) / 10000; // horizontal pixels/meter
421 if (!read_int(f, &tmp2)) goto close_file; 466 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
422 vdpi = (tmp2 * 254) / 10000; // vertical pixles/meter 467 vdpi = (tmp2 * 254) / 10000; // vertical pixles/meter
423 if (!read_int(f, &tmp2)) goto close_file; 468 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
424 palette_size = tmp2; // number of palette colors power (2^n - so 0 - 8) 469 palette_size = tmp2; // number of palette colors power (2^n - so 0 - 8)
425 if (!read_int(f, &tmp2)) goto close_file; 470 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
426 important_colors = tmp2; // number of important colors - 0 if all 471 important_colors = tmp2; // number of important colors - 0 if all
427 if (fread(buf, 24, 1, f) != 1) goto close_file; // skip unused header 472 if (!read_skip(fsize, &position, 24)) goto close_file; // skip unused header
428 if (image_size == 0) image_size = fsize - offset; 473 if (image_size == 0) image_size = fsize - offset;
429 } 474 }
430 else if (head_size == 40) // Windows 3.0 + (v3) 475 else if (head_size == 40) // Windows 3.0 + (v3)
431 { 476 {
432 short tmp; 477 short tmp;
433 int tmp2; 478 int tmp2;
434 479
435 if (!read_int(f, &tmp2)) goto close_file; 480 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
436 w = tmp2; // width 481 w = tmp2; // width
437 if (!read_int(f, &tmp2)) goto close_file; 482 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
438 h = tmp2; // height 483 h = tmp2; // height
439 if (!read_short(f, &tmp)) goto close_file; 484 if (!read_short(map, fsize, &position, &tmp)) goto close_file;
440 planes = tmp; // must be 1 485 planes = tmp; // must be 1
441 if (!read_short(f, &tmp)) goto close_file; 486 if (!read_short(map, fsize, &position, &tmp)) goto close_file;
442 bit_count = tmp; // bits per pixel: 1, 4, 8, 16, 24 & 32 487 bit_count = tmp; // bits per pixel: 1, 4, 8, 16, 24 & 32
443 if (!read_int(f, &tmp2)) goto close_file; 488 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
444 comp = tmp2; // compression method 489 comp = tmp2; // compression method
445 if (!read_int(f, &tmp2)) goto close_file; 490 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
446 image_size = tmp2; // bitmap data size 491 image_size = tmp2; // bitmap data size
447 if (!read_int(f, &tmp2)) goto close_file; 492 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
448 hdpi = (tmp2 * 254) / 10000; // horizontal pixels/meter 493 hdpi = (tmp2 * 254) / 10000; // horizontal pixels/meter
449 if (!read_int(f, &tmp2)) goto close_file; 494 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
450 vdpi = (tmp2 * 254) / 10000; // vertical pixles/meter 495 vdpi = (tmp2 * 254) / 10000; // vertical pixles/meter
451 if (!read_int(f, &tmp2)) goto close_file; 496 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
452 palette_size = tmp2; // number of palette colors power (2^n - so 0 - 8) 497 palette_size = tmp2; // number of palette colors power (2^n - so 0 - 8)
453 if (!read_int(f, &tmp2)) goto close_file; 498 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
454 important_colors = tmp2; // number of important colors - 0 if all 499 important_colors = tmp2; // number of important colors - 0 if all
455 if (image_size == 0) image_size = fsize - offset; 500 if (image_size == 0) image_size = fsize - offset;
456 if ((comp == 0) && (bit_count == 32)) hasa = 1; // GIMP seems to store it this way 501 if ((comp == 0) && (bit_count == 32)) hasa = 1; // GIMP seems to store it this way
@@ -459,37 +504,37 @@ evas_image_load_file_data_bmp(Image_Entry *ie, const char *file, const char *key
459 { 504 {
460 short tmp; 505 short tmp;
461 int tmp2; 506 int tmp2;
462 507
463 if (!read_int(f, &tmp2)) goto close_file; 508 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
464 w = tmp2; // width 509 w = tmp2; // width
465 if (!read_int(f, &tmp2)) goto close_file; 510 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
466 h = tmp2; // height 511 h = tmp2; // height
467 if (!read_short(f, &tmp)) goto close_file; 512 if (!read_short(map, fsize, &position, &tmp)) goto close_file;
468 planes = tmp; // must be 1 513 planes = tmp; // must be 1
469 if (!read_short(f, &tmp)) goto close_file; 514 if (!read_short(map, fsize, &position, &tmp)) goto close_file;
470 bit_count = tmp; // bits per pixel: 1, 4, 8, 16, 24 & 32 515 bit_count = tmp; // bits per pixel: 1, 4, 8, 16, 24 & 32
471 if (!read_int(f, &tmp2)) goto close_file; 516 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
472 comp = tmp2; // compression method 517 comp = tmp2; // compression method
473 if (!read_int(f, &tmp2)) goto close_file; 518 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
474 image_size = tmp2; // bitmap data size 519 image_size = tmp2; // bitmap data size
475 if (!read_int(f, &tmp2)) goto close_file; 520 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
476 hdpi = (tmp2 * 254) / 10000; // horizontal pixels/meter 521 hdpi = (tmp2 * 254) / 10000; // horizontal pixels/meter
477 if (!read_int(f, &tmp2)) goto close_file; 522 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
478 vdpi = (tmp2 * 254) / 10000; // vertical pixles/meter 523 vdpi = (tmp2 * 254) / 10000; // vertical pixles/meter
479 if (!read_int(f, &tmp2)) goto close_file; 524 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
480 palette_size = tmp2; // number of palette colors power (2^n - so 0 - 8) 525 palette_size = tmp2; // number of palette colors power (2^n - so 0 - 8)
481 if (!read_int(f, &tmp2)) goto close_file; 526 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
482 important_colors = tmp2; // number of important colors - 0 if all 527 important_colors = tmp2; // number of important colors - 0 if all
483 if (!read_int(f, &tmp2)) goto close_file; 528 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
484 rmask = tmp2; // red mask 529 rmask = tmp2; // red mask
485 if (!read_int(f, &tmp2)) goto close_file; 530 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
486 gmask = tmp2; // green mask 531 gmask = tmp2; // green mask
487 if (!read_int(f, &tmp2)) goto close_file; 532 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
488 bmask = tmp2; // blue mask 533 bmask = tmp2; // blue mask
489 if (!read_int(f, &tmp2)) goto close_file; 534 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
490 amask = tmp2; // alpha mask 535 amask = tmp2; // alpha mask
491 if (fread(buf, 36, 1, f) != 1) goto close_file; // skip unused cie 536 if (!read_skip(fsize, &position, 36)) goto close_file; // skip unused cie
492 if (fread(buf, 12, 1, f) != 1) goto close_file; // skip unused gamma 537 if (!read_skip(fsize, &position, 12)) goto close_file; // skip unused gamma
493 if (image_size == 0) image_size = fsize - offset; 538 if (image_size == 0) image_size = fsize - offset;
494 if ((amask) && (bit_count == 32)) hasa = 1; 539 if ((amask) && (bit_count == 32)) hasa = 1;
495 } 540 }
@@ -497,38 +542,38 @@ evas_image_load_file_data_bmp(Image_Entry *ie, const char *file, const char *key
497 { 542 {
498 short tmp; 543 short tmp;
499 int tmp2; 544 int tmp2;
500 545
501 if (!read_int(f, &tmp2)) goto close_file; 546 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
502 w = tmp2; // width 547 w = tmp2; // width
503 if (!read_int(f, &tmp2)) goto close_file; 548 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
504 h = tmp2; // height 549 h = tmp2; // height
505 if (!read_short(f, &tmp)) goto close_file; 550 if (!read_short(map, fsize, &position, &tmp)) goto close_file;
506 planes = tmp; // must be 1 551 planes = tmp; // must be 1
507 if (!read_short(f, &tmp)) goto close_file; 552 if (!read_short(map, fsize, &position, &tmp)) goto close_file;
508 bit_count = tmp; // bits per pixel: 1, 4, 8, 16, 24 & 32 553 bit_count = tmp; // bits per pixel: 1, 4, 8, 16, 24 & 32
509 if (!read_int(f, &tmp2)) goto close_file; 554 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
510 comp = tmp2; // compression method 555 comp = tmp2; // compression method
511 if (!read_int(f, &tmp2)) goto close_file; 556 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
512 image_size = tmp2; // bitmap data size 557 image_size = tmp2; // bitmap data size
513 if (!read_int(f, &tmp2)) goto close_file; 558 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
514 hdpi = (tmp2 * 254) / 10000; // horizontal pixels/meter 559 hdpi = (tmp2 * 254) / 10000; // horizontal pixels/meter
515 if (!read_int(f, &tmp2)) goto close_file; 560 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
516 vdpi = (tmp2 * 254) / 10000; // vertical pixles/meter 561 vdpi = (tmp2 * 254) / 10000; // vertical pixles/meter
517 if (!read_int(f, &tmp2)) goto close_file; 562 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
518 palette_size = tmp2; // number of palette colors power (2^n - so 0 - 8) 563 palette_size = tmp2; // number of palette colors power (2^n - so 0 - 8)
519 if (!read_int(f, &tmp2)) goto close_file; 564 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
520 important_colors = tmp2; // number of important colors - 0 if all 565 important_colors = tmp2; // number of important colors - 0 if all
521 if (!read_int(f, &tmp2)) goto close_file; 566 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
522 rmask = tmp2; // red mask 567 rmask = tmp2; // red mask
523 if (!read_int(f, &tmp2)) goto close_file; 568 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
524 gmask = tmp2; // green mask 569 gmask = tmp2; // green mask
525 if (!read_int(f, &tmp2)) goto close_file; 570 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
526 bmask = tmp2; // blue mask 571 bmask = tmp2; // blue mask
527 if (!read_int(f, &tmp2)) goto close_file; 572 if (!read_int(map, fsize, &position, &tmp2)) goto close_file;
528 amask = tmp2; // alpha mask 573 amask = tmp2; // alpha mask
529 if (fread(buf, 36, 1, f) != 1) goto close_file; // skip unused cie 574 if (!read_skip(fsize, &position, 36)) goto close_file; // skip unused cie
530 if (fread(buf, 12, 1, f) != 1) goto close_file; // skip unused gamma 575 if (!read_skip(fsize, &position, 12)) goto close_file; // skip unused gamma
531 if (fread(buf, 16, 1, f) != 1) goto close_file; // skip others 576 if (!read_skip(fsize, &position, 16)) goto close_file; // skip others
532 if (image_size == 0) image_size = fsize - offset; 577 if (image_size == 0) image_size = fsize - offset;
533 if ((amask) && (bit_count == 32)) hasa = 1; 578 if ((amask) && (bit_count == 32)) hasa = 1;
534 } 579 }
@@ -605,17 +650,17 @@ evas_image_load_file_data_bmp(Image_Entry *ie, const char *file, const char *key
605 pal = alloca(256 * 4); 650 pal = alloca(256 * 4);
606 for (i = 0; i < pal_num; i++) 651 for (i = 0; i < pal_num; i++)
607 { 652 {
608 if (fread(&b, 1, 1, f) != 1) goto close_file; 653 if (!read_uchar(map, fsize, &position, &b)) goto close_file;
609 if (fread(&g, 1, 1, f) != 1) goto close_file; 654 if (!read_uchar(map, fsize, &position, &g)) goto close_file;
610 if (fread(&r, 1, 1, f) != 1) goto close_file; 655 if (!read_uchar(map, fsize, &position, &r)) goto close_file;
611 if ((head_size != 12) /*&& (palette_size != 0)*/) 656 if ((head_size != 12) /*&& (palette_size != 0)*/)
612 { // OS/2 V1 doesn't do the pad byte 657 { // OS/2 V1 doesn't do the pad byte
613 if (fread(&a, 1, 1, f) != 1) goto close_file; 658 if (!read_uchar(map, fsize, &position, &a)) goto close_file;
614 } 659 }
615 a = 0xff; // fillin a as solid for paletted images 660 a = 0xff; // fillin a as solid for paletted images
616 pal[i] = ARGB_JOIN(a, r, g, b); 661 pal[i] = ARGB_JOIN(a, r, g, b);
617 } 662 }
618 fseek(f, offset, SEEK_SET); 663 position = offset;
619 664
620 if ((scale_ratio == 1) || (comp !=0)) 665 if ((scale_ratio == 1) || (comp !=0))
621 buffer = malloc(image_size + 8); // add 8 for padding to avoid checks 666 buffer = malloc(image_size + 8); // add 8 for padding to avoid checks
@@ -643,11 +688,11 @@ evas_image_load_file_data_bmp(Image_Entry *ie, const char *file, const char *key
643 688
644 if ((scale_ratio == 1) || (comp !=0)) 689 if ((scale_ratio == 1) || (comp !=0))
645 { 690 {
646 if (fread(buffer, image_size, 1, f) != 1) goto close_file; 691 if (!read_mem(map, fsize, &position, buffer, image_size)) goto close_file;
647 } 692 }
648 else 693 else
649 { 694 {
650 if (fread(buffer, row_size, 1, f) != 1) goto close_file; 695 if (!read_mem(map, fsize, &position, buffer, row_size)) goto close_file;
651 } 696 }
652 697
653 if (bit_count == 1) 698 if (bit_count == 1)
@@ -715,8 +760,8 @@ evas_image_load_file_data_bmp(Image_Entry *ie, const char *file, const char *key
715 read_line += scale_ratio; 760 read_line += scale_ratio;
716 if (read_line >= image_h) break; 761 if (read_line >= image_h) break;
717 762
718 fseek(f, row_size * (scale_ratio - 1), SEEK_CUR); 763 position += row_size * (scale_ratio - 1);
719 if (fread(buffer, row_size, 1, f) != 1) goto close_file; 764 if (!read_mem(map, fsize, &position, buffer, row_size)) goto close_file;
720 p = buffer; 765 p = buffer;
721 buffer_end = buffer + row_size; 766 buffer_end = buffer + row_size;
722 } 767 }
@@ -770,8 +815,8 @@ evas_image_load_file_data_bmp(Image_Entry *ie, const char *file, const char *key
770 read_line += scale_ratio; 815 read_line += scale_ratio;
771 if (read_line >= image_h) break; 816 if (read_line >= image_h) break;
772 817
773 fseek(f, row_size * (scale_ratio - 1), SEEK_CUR); 818 position += row_size * (scale_ratio - 1);
774 if (fread(buffer, row_size, 1, f) != 1) goto close_file; 819 if (!read_mem(map, fsize, &position, buffer, row_size)) goto close_file;
775 p = buffer; 820 p = buffer;
776 buffer_end = buffer + row_size; 821 buffer_end = buffer + row_size;
777 } 822 }
@@ -960,8 +1005,8 @@ evas_image_load_file_data_bmp(Image_Entry *ie, const char *file, const char *key
960 read_line += scale_ratio; 1005 read_line += scale_ratio;
961 if (read_line >= image_h) break; 1006 if (read_line >= image_h) break;
962 1007
963 fseek(f, row_size * (scale_ratio - 1), SEEK_CUR); 1008 position += row_size * (scale_ratio - 1);
964 if (fread(buffer, row_size, 1, f) != 1) goto close_file; 1009 if (!read_mem(map, fsize, &position, buffer, row_size)) goto close_file;
965 p = buffer; 1010 p = buffer;
966 buffer_end = buffer + row_size; 1011 buffer_end = buffer + row_size;
967 } 1012 }
@@ -1088,7 +1133,7 @@ evas_image_load_file_data_bmp(Image_Entry *ie, const char *file, const char *key
1088 { 1133 {
1089 if (comp == 0) // no compression 1134 if (comp == 0) // no compression
1090 { 1135 {
1091 fseek(f, offset, SEEK_SET); 1136 position = offset;
1092 if (scale_ratio == 1) 1137 if (scale_ratio == 1)
1093 buffer = malloc(image_size + 8); // add 8 for padding to avoid checks 1138 buffer = malloc(image_size + 8); // add 8 for padding to avoid checks
1094 else 1139 else
@@ -1106,11 +1151,11 @@ evas_image_load_file_data_bmp(Image_Entry *ie, const char *file, const char *key
1106 p = buffer; 1151 p = buffer;
1107 if (scale_ratio == 1) 1152 if (scale_ratio == 1)
1108 { 1153 {
1109 if (fread(buffer, image_size, 1, f) != 1) goto close_file; 1154 if (!read_mem(map, fsize, &position, buffer, image_size)) goto close_file;
1110 } 1155 }
1111 else 1156 else
1112 { 1157 {
1113 if (fread(buffer, row_size, 1, f) != 1) goto close_file; 1158 if (!read_mem(map, fsize, &position, buffer, row_size)) goto close_file;
1114 } 1159 }
1115 if (bit_count == 16) 1160 if (bit_count == 16)
1116 { 1161 {
@@ -1139,8 +1184,8 @@ evas_image_load_file_data_bmp(Image_Entry *ie, const char *file, const char *key
1139 read_line += scale_ratio; 1184 read_line += scale_ratio;
1140 if (read_line >= image_h) break; 1185 if (read_line >= image_h) break;
1141 1186
1142 fseek(f, row_size * (scale_ratio - 1), SEEK_CUR); 1187 position += row_size * (scale_ratio - 1);
1143 if (fread(buffer, row_size, 1, f) != 1) goto close_file; 1188 if (!read_mem(map, fsize, &position, buffer, row_size)) goto close_file;
1144 p = buffer; 1189 p = buffer;
1145 buffer_end = buffer + row_size; 1190 buffer_end = buffer + row_size;
1146 } 1191 }
@@ -1173,8 +1218,8 @@ evas_image_load_file_data_bmp(Image_Entry *ie, const char *file, const char *key
1173 read_line += scale_ratio; 1218 read_line += scale_ratio;
1174 if (read_line >= image_h) break; 1219 if (read_line >= image_h) break;
1175 1220
1176 fseek(f, row_size * (scale_ratio - 1), SEEK_CUR); 1221 position += row_size * (scale_ratio - 1);
1177 if (fread(buffer, row_size, 1, f) != 1) goto close_file; 1222 if (!read_mem(map, fsize, &position, buffer, row_size)) goto close_file;
1178 p = buffer; 1223 p = buffer;
1179 buffer_end = buffer + row_size; 1224 buffer_end = buffer + row_size;
1180 } 1225 }
@@ -1212,8 +1257,8 @@ evas_image_load_file_data_bmp(Image_Entry *ie, const char *file, const char *key
1212 read_line += scale_ratio; 1257 read_line += scale_ratio;
1213 if (read_line >= image_h) break; 1258 if (read_line >= image_h) break;
1214 1259
1215 fseek(f, row_size * (scale_ratio - 1), SEEK_CUR); 1260 position += row_size * (scale_ratio - 1);
1216 if (fread(buffer, row_size, 1, f) != 1) goto close_file; 1261 if (!read_mem(map, fsize, &position, buffer, row_size)) goto close_file;
1217 p = buffer; 1262 p = buffer;
1218 buffer_end = buffer + row_size; 1263 buffer_end = buffer + row_size;
1219 } 1264 }
@@ -1230,7 +1275,7 @@ evas_image_load_file_data_bmp(Image_Entry *ie, const char *file, const char *key
1230 if (hasa) 1275 if (hasa)
1231 { 1276 {
1232 unsigned int *pixend = surface + (w * h); 1277 unsigned int *pixend = surface + (w * h);
1233 1278
1234 for (pix = surface; pix < pixend; pix++) 1279 for (pix = surface; pix < pixend; pix++)
1235 A_VAL(pix) = 0xff; 1280 A_VAL(pix) = 0xff;
1236 } 1281 }
@@ -1241,11 +1286,11 @@ evas_image_load_file_data_bmp(Image_Entry *ie, const char *file, const char *key
1241 } 1286 }
1242 else if (comp == 3) // bit field 1287 else if (comp == 3) // bit field
1243 { 1288 {
1244 if (!read_uint(f, &rmask)) goto close_file; 1289 if (!read_uint(map, fsize, &position, &rmask)) goto close_file;
1245 if (!read_uint(f, &gmask)) goto close_file; 1290 if (!read_uint(map, fsize, &position, &gmask)) goto close_file;
1246 if (!read_uint(f, &bmask)) goto close_file; 1291 if (!read_uint(map, fsize, &position, &bmask)) goto close_file;
1247 1292
1248 fseek(f, offset, SEEK_SET); 1293 position = offset;
1249 if (scale_ratio == 1) 1294 if (scale_ratio == 1)
1250 buffer = malloc(image_size + 8); // add 8 for padding to avoid checks 1295 buffer = malloc(image_size + 8); // add 8 for padding to avoid checks
1251 else 1296 else
@@ -1264,14 +1309,14 @@ evas_image_load_file_data_bmp(Image_Entry *ie, const char *file, const char *key
1264 p = buffer; 1309 p = buffer;
1265 if (scale_ratio == 1) 1310 if (scale_ratio == 1)
1266 { 1311 {
1267 if (fread(buffer, image_size, 1, f) != 1) goto close_file; 1312 if (!read_mem(map, fsize, &position, buffer, image_size)) goto close_file;
1268 } 1313 }
1269 else 1314 else
1270 { 1315 {
1271 if (fread(buffer, row_size, 1, f) != 1) goto close_file; 1316 if (!read_mem(map, fsize, &position, buffer, row_size)) goto close_file;
1272 } 1317 }
1273 1318
1274 if ((bit_count == 16) && 1319 if ((bit_count == 16) &&
1275 (rmask == 0xf800) && (gmask == 0x07e0) && (bmask == 0x001f) 1320 (rmask == 0xf800) && (gmask == 0x07e0) && (bmask == 0x001f)
1276 ) 1321 )
1277 { 1322 {
@@ -1299,8 +1344,9 @@ evas_image_load_file_data_bmp(Image_Entry *ie, const char *file, const char *key
1299 { 1344 {
1300 read_line += scale_ratio; 1345 read_line += scale_ratio;
1301 if (read_line >= image_h) break; 1346 if (read_line >= image_h) break;
1302 fseek(f, row_size * (scale_ratio - 1), SEEK_CUR); 1347
1303 if (fread(buffer, row_size, 1, f) != 1) goto close_file; 1348 position += row_size * (scale_ratio - 1);
1349 if (!read_mem(map, fsize, &position, buffer, row_size)) goto close_file;
1304 p = buffer; 1350 p = buffer;
1305 buffer_end = buffer + row_size; 1351 buffer_end = buffer + row_size;
1306 } 1352 }
@@ -1338,8 +1384,9 @@ evas_image_load_file_data_bmp(Image_Entry *ie, const char *file, const char *key
1338 { 1384 {
1339 read_line += scale_ratio; 1385 read_line += scale_ratio;
1340 if (read_line >= image_h) break; 1386 if (read_line >= image_h) break;
1341 fseek(f, row_size * (scale_ratio - 1), SEEK_CUR); 1387
1342 if (fread(buffer, row_size, 1, f) != 1) goto close_file; 1388 position += row_size * (scale_ratio - 1);
1389 if (!read_mem(map, fsize, &position, buffer_end, row_size)) goto close_file;
1343 p = buffer; 1390 p = buffer;
1344 buffer_end = buffer + row_size; 1391 buffer_end = buffer + row_size;
1345 } 1392 }
@@ -1375,8 +1422,9 @@ evas_image_load_file_data_bmp(Image_Entry *ie, const char *file, const char *key
1375 { 1422 {
1376 read_line += scale_ratio; 1423 read_line += scale_ratio;
1377 if (read_line >= image_h) break; 1424 if (read_line >= image_h) break;
1378 fseek(f, row_size * (scale_ratio - 1), SEEK_CUR); 1425
1379 if (fread(buffer, row_size, 1, f) != 1) goto close_file; 1426 position += row_size * (scale_ratio - 1);
1427 if (!read_mem(map, fsize, &position, buffer, row_size)) goto close_file;
1380 p = buffer; 1428 p = buffer;
1381 buffer_end = buffer + row_size; 1429 buffer_end = buffer + row_size;
1382 } 1430 }
@@ -1404,10 +1452,12 @@ evas_image_load_file_data_bmp(Image_Entry *ie, const char *file, const char *key
1404 } 1452 }
1405 else 1453 else
1406 goto close_file; 1454 goto close_file;
1407 1455
1408 if (buffer) free(buffer); 1456 if (buffer) free(buffer);
1409 if (scale_surface) free(scale_surface); 1457 if (scale_surface) free(scale_surface);
1410 fclose(f); 1458
1459 eina_file_map_free(f, map);
1460 eina_file_close(f);
1411 1461
1412 evas_common_image_premul(ie); 1462 evas_common_image_premul(ie);
1413 *error = EVAS_LOAD_ERROR_NONE; 1463 *error = EVAS_LOAD_ERROR_NONE;
@@ -1416,7 +1466,8 @@ evas_image_load_file_data_bmp(Image_Entry *ie, const char *file, const char *key
1416 close_file: 1466 close_file:
1417 if (buffer) free(buffer); 1467 if (buffer) free(buffer);
1418 if (scale_surface) free(scale_surface); 1468 if (scale_surface) free(scale_surface);
1419 fclose(f); 1469 if (map) eina_file_map_free(f, map);
1470 eina_file_close(f);
1420 return EINA_FALSE; 1471 return EINA_FALSE;
1421} 1472}
1422 1473
diff --git a/libraries/evas/src/modules/loaders/edb/Makefile.in b/libraries/evas/src/modules/loaders/edb/Makefile.in
index 38c1fa2..87356b4 100644
--- a/libraries/evas/src/modules/loaders/edb/Makefile.in
+++ b/libraries/evas/src/modules/loaders/edb/Makefile.in
@@ -231,8 +231,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
232PIXMAN_LIBS = @PIXMAN_LIBS@ 232PIXMAN_LIBS = @PIXMAN_LIBS@
233PKG_CONFIG = @PKG_CONFIG@ 233PKG_CONFIG = @PKG_CONFIG@
234PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
235PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
236PNG_CFLAGS = @PNG_CFLAGS@ 234PNG_CFLAGS = @PNG_CFLAGS@
237PNG_LIBS = @PNG_LIBS@ 235PNG_LIBS = @PNG_LIBS@
238RANLIB = @RANLIB@ 236RANLIB = @RANLIB@
@@ -249,6 +247,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
249VALGRIND_LIBS = @VALGRIND_LIBS@ 247VALGRIND_LIBS = @VALGRIND_LIBS@
250VERSION = @VERSION@ 248VERSION = @VERSION@
251VMAJ = @VMAJ@ 249VMAJ = @VMAJ@
250WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
251WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
252WIN32_CFLAGS = @WIN32_CFLAGS@ 252WIN32_CFLAGS = @WIN32_CFLAGS@
253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
254XCB_CFLAGS = @XCB_CFLAGS@ 254XCB_CFLAGS = @XCB_CFLAGS@
@@ -330,6 +330,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
333evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
334evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
335evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
336evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
333evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 337evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
334evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 338evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
335evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 339evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/loaders/edb/evas_image_load_edb.c b/libraries/evas/src/modules/loaders/edb/evas_image_load_edb.c
index 94b121e..521161f 100644
--- a/libraries/evas/src/modules/loaders/edb/evas_image_load_edb.c
+++ b/libraries/evas/src/modules/loaders/edb/evas_image_load_edb.c
@@ -16,7 +16,8 @@ static Evas_Image_Load_Func evas_image_load_edb_func =
16 EINA_TRUE, 16 EINA_TRUE,
17 evas_image_load_file_head_edb, 17 evas_image_load_file_head_edb,
18 evas_image_load_file_data_edb, 18 evas_image_load_file_data_edb,
19 NULL 19 NULL,
20 EINA_FALSE
20}; 21};
21 22
22static Eina_Bool 23static Eina_Bool
diff --git a/libraries/evas/src/modules/loaders/eet/Makefile.in b/libraries/evas/src/modules/loaders/eet/Makefile.in
index 6a6c40e..25a30cf 100644
--- a/libraries/evas/src/modules/loaders/eet/Makefile.in
+++ b/libraries/evas/src/modules/loaders/eet/Makefile.in
@@ -231,8 +231,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
232PIXMAN_LIBS = @PIXMAN_LIBS@ 232PIXMAN_LIBS = @PIXMAN_LIBS@
233PKG_CONFIG = @PKG_CONFIG@ 233PKG_CONFIG = @PKG_CONFIG@
234PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
235PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
236PNG_CFLAGS = @PNG_CFLAGS@ 234PNG_CFLAGS = @PNG_CFLAGS@
237PNG_LIBS = @PNG_LIBS@ 235PNG_LIBS = @PNG_LIBS@
238RANLIB = @RANLIB@ 236RANLIB = @RANLIB@
@@ -249,6 +247,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
249VALGRIND_LIBS = @VALGRIND_LIBS@ 247VALGRIND_LIBS = @VALGRIND_LIBS@
250VERSION = @VERSION@ 248VERSION = @VERSION@
251VMAJ = @VMAJ@ 249VMAJ = @VMAJ@
250WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
251WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
252WIN32_CFLAGS = @WIN32_CFLAGS@ 252WIN32_CFLAGS = @WIN32_CFLAGS@
253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
254XCB_CFLAGS = @XCB_CFLAGS@ 254XCB_CFLAGS = @XCB_CFLAGS@
@@ -330,6 +330,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
333evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
334evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
335evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
336evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
333evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 337evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
334evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 338evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
335evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 339evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/loaders/eet/evas_image_load_eet.c b/libraries/evas/src/modules/loaders/eet/evas_image_load_eet.c
index a187b9e..f86246a 100644
--- a/libraries/evas/src/modules/loaders/eet/evas_image_load_eet.c
+++ b/libraries/evas/src/modules/loaders/eet/evas_image_load_eet.c
@@ -16,7 +16,8 @@ Evas_Image_Load_Func evas_image_load_eet_func =
16 EINA_TRUE, 16 EINA_TRUE,
17 evas_image_load_file_head_eet, 17 evas_image_load_file_head_eet,
18 evas_image_load_file_data_eet, 18 evas_image_load_file_data_eet,
19 NULL 19 NULL,
20 EINA_FALSE
20}; 21};
21 22
22 23
diff --git a/libraries/evas/src/modules/loaders/generic/Makefile.in b/libraries/evas/src/modules/loaders/generic/Makefile.in
index 65a0bac..dfd5294 100644
--- a/libraries/evas/src/modules/loaders/generic/Makefile.in
+++ b/libraries/evas/src/modules/loaders/generic/Makefile.in
@@ -232,8 +232,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
232PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 232PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
233PIXMAN_LIBS = @PIXMAN_LIBS@ 233PIXMAN_LIBS = @PIXMAN_LIBS@
234PKG_CONFIG = @PKG_CONFIG@ 234PKG_CONFIG = @PKG_CONFIG@
235PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
236PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
237PNG_CFLAGS = @PNG_CFLAGS@ 235PNG_CFLAGS = @PNG_CFLAGS@
238PNG_LIBS = @PNG_LIBS@ 236PNG_LIBS = @PNG_LIBS@
239RANLIB = @RANLIB@ 237RANLIB = @RANLIB@
@@ -250,6 +248,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
250VALGRIND_LIBS = @VALGRIND_LIBS@ 248VALGRIND_LIBS = @VALGRIND_LIBS@
251VERSION = @VERSION@ 249VERSION = @VERSION@
252VMAJ = @VMAJ@ 250VMAJ = @VMAJ@
251WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
252WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
253WIN32_CFLAGS = @WIN32_CFLAGS@ 253WIN32_CFLAGS = @WIN32_CFLAGS@
254WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 254WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
255XCB_CFLAGS = @XCB_CFLAGS@ 255XCB_CFLAGS = @XCB_CFLAGS@
@@ -331,6 +331,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
331evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 331evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
332evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 332evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
333evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 333evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
334evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
335evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
336evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
337evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
334evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 338evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
335evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 339evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
336evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 340evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/loaders/generic/evas_image_load_generic.c b/libraries/evas/src/modules/loaders/generic/evas_image_load_generic.c
index 88c189d..2bbfd3e 100644
--- a/libraries/evas/src/modules/loaders/generic/evas_image_load_generic.c
+++ b/libraries/evas/src/modules/loaders/generic/evas_image_load_generic.c
@@ -24,7 +24,8 @@ Evas_Image_Load_Func evas_image_load_generic_func =
24 EINA_TRUE, 24 EINA_TRUE,
25 evas_image_load_file_head_generic, 25 evas_image_load_file_head_generic,
26 evas_image_load_file_data_generic, 26 evas_image_load_file_data_generic,
27 NULL 27 NULL,
28 EINA_FALSE
28}; 29};
29 30
30static Eina_Bool 31static Eina_Bool
@@ -117,7 +118,7 @@ _load(Image_Entry *ie, const char *file, const char *key, int *error, Eina_Bool
117 int read_data = 0; 118 int read_data = 0;
118 char *tmpfname = NULL, *shmfname = NULL; 119 char *tmpfname = NULL, *shmfname = NULL;
119 DATA32 *body; 120 DATA32 *body;
120 FILE *f; 121 FILE *f = NULL;
121 122
122 libdir = _evas_module_libdir_get(); 123 libdir = _evas_module_libdir_get();
123 cmd_len = strlen(libdir); 124 cmd_len = strlen(libdir);
@@ -125,6 +126,7 @@ _load(Image_Entry *ie, const char *file, const char *key, int *error, Eina_Bool
125 img_loader = alloca(cmd_len + 1); 126 img_loader = alloca(cmd_len + 1);
126 strcpy(img_loader, libdir); 127 strcpy(img_loader, libdir);
127 strcat(img_loader, loader); 128 strcat(img_loader, loader);
129
128 // params excluding file, key and loadopts 130 // params excluding file, key and loadopts
129 cmd_len += 1024; 131 cmd_len += 1024;
130 cmd_len += strlen(file) * 2; 132 cmd_len += strlen(file) * 2;
@@ -188,6 +190,8 @@ _load(Image_Entry *ie, const char *file, const char *key, int *error, Eina_Bool
188 // will interpret shell stuff and path hunt that will then exec the 190 // will interpret shell stuff and path hunt that will then exec the
189 // program itself that will dynamically link that will again 191 // program itself that will dynamically link that will again
190 // parse the arguments and finally do something... 192 // parse the arguments and finally do something...
193 if (access(decoders[try_count], X_OK)) continue;
194
191 strcpy(cmd, decoders[try_count]); 195 strcpy(cmd, decoders[try_count]);
192 strcat(cmd, " "); 196 strcat(cmd, " ");
193 // filename first arg 197 // filename first arg
diff --git a/libraries/evas/src/modules/loaders/gif/Makefile.in b/libraries/evas/src/modules/loaders/gif/Makefile.in
index 7fcd6a7..f32fcf4 100644
--- a/libraries/evas/src/modules/loaders/gif/Makefile.in
+++ b/libraries/evas/src/modules/loaders/gif/Makefile.in
@@ -231,8 +231,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
232PIXMAN_LIBS = @PIXMAN_LIBS@ 232PIXMAN_LIBS = @PIXMAN_LIBS@
233PKG_CONFIG = @PKG_CONFIG@ 233PKG_CONFIG = @PKG_CONFIG@
234PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
235PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
236PNG_CFLAGS = @PNG_CFLAGS@ 234PNG_CFLAGS = @PNG_CFLAGS@
237PNG_LIBS = @PNG_LIBS@ 235PNG_LIBS = @PNG_LIBS@
238RANLIB = @RANLIB@ 236RANLIB = @RANLIB@
@@ -249,6 +247,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
249VALGRIND_LIBS = @VALGRIND_LIBS@ 247VALGRIND_LIBS = @VALGRIND_LIBS@
250VERSION = @VERSION@ 248VERSION = @VERSION@
251VMAJ = @VMAJ@ 249VMAJ = @VMAJ@
250WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
251WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
252WIN32_CFLAGS = @WIN32_CFLAGS@ 252WIN32_CFLAGS = @WIN32_CFLAGS@
253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
254XCB_CFLAGS = @XCB_CFLAGS@ 254XCB_CFLAGS = @XCB_CFLAGS@
@@ -330,6 +330,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
333evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
334evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
335evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
336evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
333evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 337evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
334evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 338evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
335evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 339evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/loaders/gif/evas_image_load_gif.c b/libraries/evas/src/modules/loaders/gif/evas_image_load_gif.c
index 976df0d..9cd6f6e 100644
--- a/libraries/evas/src/modules/loaders/gif/evas_image_load_gif.c
+++ b/libraries/evas/src/modules/loaders/gif/evas_image_load_gif.c
@@ -50,7 +50,8 @@ static Evas_Image_Load_Func evas_image_load_gif_func =
50 EINA_TRUE, 50 EINA_TRUE,
51 evas_image_load_file_head_gif, 51 evas_image_load_file_head_gif,
52 evas_image_load_file_data_gif, 52 evas_image_load_file_data_gif,
53 evas_image_load_frame_duration_gif 53 evas_image_load_frame_duration_gif,
54 EINA_FALSE
54}; 55};
55#define byte2_to_int(a,b) (((b)<<8)|(a)) 56#define byte2_to_int(a,b) (((b)<<8)|(a))
56 57
diff --git a/libraries/evas/src/modules/loaders/ico/Makefile.in b/libraries/evas/src/modules/loaders/ico/Makefile.in
index 5c26adf..f65ace0 100644
--- a/libraries/evas/src/modules/loaders/ico/Makefile.in
+++ b/libraries/evas/src/modules/loaders/ico/Makefile.in
@@ -231,8 +231,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
232PIXMAN_LIBS = @PIXMAN_LIBS@ 232PIXMAN_LIBS = @PIXMAN_LIBS@
233PKG_CONFIG = @PKG_CONFIG@ 233PKG_CONFIG = @PKG_CONFIG@
234PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
235PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
236PNG_CFLAGS = @PNG_CFLAGS@ 234PNG_CFLAGS = @PNG_CFLAGS@
237PNG_LIBS = @PNG_LIBS@ 235PNG_LIBS = @PNG_LIBS@
238RANLIB = @RANLIB@ 236RANLIB = @RANLIB@
@@ -249,6 +247,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
249VALGRIND_LIBS = @VALGRIND_LIBS@ 247VALGRIND_LIBS = @VALGRIND_LIBS@
250VERSION = @VERSION@ 248VERSION = @VERSION@
251VMAJ = @VMAJ@ 249VMAJ = @VMAJ@
250WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
251WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
252WIN32_CFLAGS = @WIN32_CFLAGS@ 252WIN32_CFLAGS = @WIN32_CFLAGS@
253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
254XCB_CFLAGS = @XCB_CFLAGS@ 254XCB_CFLAGS = @XCB_CFLAGS@
@@ -330,6 +330,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
333evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
334evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
335evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
336evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
333evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 337evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
334evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 338evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
335evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 339evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/loaders/ico/evas_image_load_ico.c b/libraries/evas/src/modules/loaders/ico/evas_image_load_ico.c
index 17a7f7e..6e31191 100644
--- a/libraries/evas/src/modules/loaders/ico/evas_image_load_ico.c
+++ b/libraries/evas/src/modules/loaders/ico/evas_image_load_ico.c
@@ -19,32 +19,57 @@ static Evas_Image_Load_Func evas_image_load_ico_func =
19 EINA_TRUE, 19 EINA_TRUE,
20 evas_image_load_file_head_ico, 20 evas_image_load_file_head_ico,
21 evas_image_load_file_data_ico, 21 evas_image_load_file_data_ico,
22 NULL 22 NULL,
23 EINA_FALSE
23}; 24};
24 25
25static int 26static Eina_Bool
26read_ushort(FILE *file, unsigned short *ret) 27read_ushort(unsigned char *map, size_t length, size_t *position, unsigned short *ret)
27{ 28{
28 unsigned char b[2]; 29 unsigned char b[2];
29 if (fread(b, sizeof(unsigned char), 2, file) != 2) return 0; 30
31 if (*position + 2 > length) return EINA_FALSE;
32 b[0] = map[(*position)++];
33 b[1] = map[(*position)++];
30 *ret = (b[1] << 8) | b[0]; 34 *ret = (b[1] << 8) | b[0];
31 return 1; 35 return EINA_TRUE;
32} 36}
33 37
34static int 38static Eina_Bool
35read_uint(FILE *file, unsigned int *ret) 39read_uint(unsigned char *map, size_t length, size_t *position, unsigned int *ret)
36{ 40{
37 unsigned char b[4]; 41 unsigned char b[4];
38 if (fread(b, sizeof(unsigned char), 4, file) != 4) return 0; 42 unsigned int i;
43
44 if (*position + 4 > length) return EINA_FALSE;
45 for (i = 0; i < 4; i++)
46 b[i] = map[(*position)++];
39 *ret = ARGB_JOIN(b[3], b[2], b[1], b[0]); 47 *ret = ARGB_JOIN(b[3], b[2], b[1], b[0]);
40 return 1; 48 return EINA_TRUE;
49}
50
51static Eina_Bool
52read_uchar(unsigned char *map, size_t length, size_t *position, unsigned char *ret)
53{
54 if (*position + 1 > length) return EINA_FALSE;
55 *ret = map[(*position)++];
56 return EINA_TRUE;
57}
58
59static Eina_Bool
60read_mem(unsigned char *map, size_t length, size_t *position, void *buffer, int size)
61{
62 if (*position + size > length) return EINA_FALSE;
63 memcpy(buffer, map + *position, size);
64 *position += size;
65 return EINA_TRUE;
41} 66}
42 67
43enum 68enum
44{ 69{
45 SMALLEST, 70 SMALLEST,
46 BIGGEST, 71 BIGGEST,
47 SMALLER, 72 SMALLER,
48 BIGGER 73 BIGGER
49}; 74};
50 75
@@ -57,9 +82,11 @@ enum
57static Eina_Bool 82static Eina_Bool
58evas_image_load_file_head_ico(Image_Entry *ie, const char *file, const char *key, int *error) 83evas_image_load_file_head_ico(Image_Entry *ie, const char *file, const char *key, int *error)
59{ 84{
85 Eina_File *f;
86 void *map = NULL;
87 size_t position = 0;
60 unsigned short word; 88 unsigned short word;
61 unsigned char byte; 89 unsigned char byte;
62 FILE *f;
63 int wanted_w = 0, wanted_h = 0, w, h, cols, i, planes = 0, 90 int wanted_w = 0, wanted_h = 0, w, h, cols, i, planes = 0,
64 hot_x = 0, hot_y = 0, bpp = 0, pdelta, search = -1, have_choice = 0, 91 hot_x = 0, hot_y = 0, bpp = 0, pdelta, search = -1, have_choice = 0,
65 hasa = 1; 92 hasa = 1;
@@ -74,7 +101,7 @@ evas_image_load_file_head_ico(Image_Entry *ie, const char *file, const char *key
74 unsigned int bmoffset, bmsize; 101 unsigned int bmoffset, bmsize;
75 } chosen = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; 102 } chosen = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
76 103
77 f = fopen(file, "rb"); 104 f = eina_file_open(file, EINA_FALSE);
78 if (!f) 105 if (!f)
79 { 106 {
80 *error = EVAS_LOAD_ERROR_DOES_NOT_EXIST; 107 *error = EVAS_LOAD_ERROR_DOES_NOT_EXIST;
@@ -82,16 +109,17 @@ evas_image_load_file_head_ico(Image_Entry *ie, const char *file, const char *key
82 } 109 }
83 110
84 *error = EVAS_LOAD_ERROR_UNKNOWN_FORMAT; 111 *error = EVAS_LOAD_ERROR_UNKNOWN_FORMAT;
85 fseek(f, 0, SEEK_END); 112 fsize = eina_file_size_get(f);
86 fsize = ftell(f);
87 fseek(f, 0, SEEK_SET);
88 if (fsize < (6 + 16 + 40)) goto close_file; 113 if (fsize < (6 + 16 + 40)) goto close_file;
89 114
115 map = eina_file_map_all(f, EINA_FILE_SEQUENTIAL);
116 if (!map) goto close_file;
117
90 // key: 118 // key:
91 // NULL == highest res 119 // NULL == highest res
92 // biggest == highest res 120 // biggest == highest res
93 // smallest == lowest res 121 // smallest == lowest res
94 // 122 //
95 // smaller == next size SMALLER than load opts WxH (if possible) 123 // smaller == next size SMALLER than load opts WxH (if possible)
96 // bigger == next size BIGGER than load opts WxH (if possible) 124 // bigger == next size BIGGER than load opts WxH (if possible)
97 // more ? 125 // more ?
@@ -103,10 +131,10 @@ evas_image_load_file_head_ico(Image_Entry *ie, const char *file, const char *key
103 wanted_h = ie->load_opts.h; 131 wanted_h = ie->load_opts.h;
104 search = SMALLER; 132 search = SMALLER;
105 } 133 }
106 134
107 if (!read_ushort(f, &reserved)) goto close_file; 135 if (!read_ushort(map, fsize, &position, &reserved)) goto close_file;
108 if (!read_ushort(f, &type)) goto close_file; 136 if (!read_ushort(map, fsize, &position, &type)) goto close_file;
109 if (!read_ushort(f, &count)) goto close_file; 137 if (!read_ushort(map, fsize, &position, &count)) goto close_file;
110 if (!((reserved == 0) && 138 if (!((reserved == 0) &&
111 ((type == ICON) || (type == CURSOR)) && (count > 0))) 139 ((type == ICON) || (type == CURSOR)) && (count > 0)))
112 goto close_file; 140 goto close_file;
@@ -141,24 +169,25 @@ evas_image_load_file_head_ico(Image_Entry *ie, const char *file, const char *key
141 } 169 }
142 for (i = 0; i < count; i++) 170 for (i = 0; i < count; i++)
143 { 171 {
144 if (fread(&byte, 1, 1, f) != 1) goto close_file; 172 unsigned char tw = 0, th = 0, tcols = 0;
145 w = byte; 173 if (!read_uchar(map, fsize, &position, &tw)) goto close_file;
174 w = tw;
146 if (w <= 0) w = 256; 175 if (w <= 0) w = 256;
147 if (fread(&byte, 1, 1, f) != 1) goto close_file; 176 if (!read_uchar(map, fsize, &position, &th)) goto close_file;
148 h = byte; 177 h = th;
149 if (h <= 0) h = 256; 178 if (h <= 0) h = 256;
150 if (fread(&byte, 1, 1, f) != 1) goto close_file; 179 if (!read_uchar(map, fsize, &position, &tcols)) goto close_file;
151 cols = byte; 180 cols = tcols;
152 if (cols <= 0) cols = 256; 181 if (cols <= 0) cols = 256;
153 if (fread(&byte, 1, 1, f) != 1) goto close_file; 182 if (!read_uchar(map, fsize, &position, &byte)) goto close_file;
154 if (!read_ushort(f, &word)) goto close_file; 183 if (!read_ushort(map, fsize, &position, &word)) goto close_file;
155 if (type == CURSOR) planes = word; 184 if (type == CURSOR) planes = word;
156 else hot_x = word; 185 else hot_x = word;
157 if (!read_ushort(f, &word)) goto close_file; 186 if (!read_ushort(map, fsize, &position, &word)) goto close_file;
158 if (type == CURSOR) bpp = word; 187 if (type == CURSOR) bpp = word;
159 else hot_y = word; 188 else hot_y = word;
160 if (!read_uint(f, &bmsize)) goto close_file; 189 if (!read_uint(map, fsize, &position, &bmsize)) goto close_file;
161 if (!read_uint(f, &bmoffset)) goto close_file; 190 if (!read_uint(map, fsize, &position, &bmoffset)) goto close_file;
162 if ((bmsize <= 0) || (bmoffset <= 0) || (bmoffset >= fsize)) goto close_file; 191 if ((bmsize <= 0) || (bmoffset <= 0) || (bmoffset >= fsize)) goto close_file;
163 if (search == BIGGEST) 192 if (search == BIGGEST)
164 { 193 {
@@ -245,7 +274,7 @@ evas_image_load_file_head_ico(Image_Entry *ie, const char *file, const char *key
245 } 274 }
246 } 275 }
247 if (chosen.bmoffset == 0) goto close_file; 276 if (chosen.bmoffset == 0) goto close_file;
248 if (fseek(f, chosen.bmoffset, SEEK_SET) != 0) goto close_file; 277 position = chosen.bmoffset;
249 278
250 w = chosen.w; 279 w = chosen.w;
251 h = chosen.h; 280 h = chosen.h;
@@ -263,23 +292,28 @@ evas_image_load_file_head_ico(Image_Entry *ie, const char *file, const char *key
263 ie->w = w; 292 ie->w = w;
264 ie->h = h; 293 ie->h = h;
265 if (hasa) ie->flags.alpha = 1; 294 if (hasa) ie->flags.alpha = 1;
266 295
267 fclose(f); 296 eina_file_map_free(f, map);
297 eina_file_close(f);
298
268 *error = EVAS_LOAD_ERROR_NONE; 299 *error = EVAS_LOAD_ERROR_NONE;
269 return EINA_TRUE; 300 return EINA_TRUE;
270 301
271 close_file: 302 close_file:
272 fclose(f); 303 if (map) eina_file_map_free(f, map);
304 eina_file_close(f);
273 return EINA_FALSE; 305 return EINA_FALSE;
274} 306}
275 307
276static Eina_Bool 308static Eina_Bool
277evas_image_load_file_data_ico(Image_Entry *ie, const char *file, const char *key, int *error) 309evas_image_load_file_data_ico(Image_Entry *ie, const char *file, const char *key, int *error)
278{ 310{
311 Eina_File *f;
312 void *map = NULL;
313 size_t position = 0;
279 unsigned short word; 314 unsigned short word;
280 unsigned char byte; 315 unsigned char byte;
281 unsigned int dword; 316 unsigned int dword;
282 FILE *f;
283 int wanted_w = 0, wanted_h = 0, w, h, cols, i, planes = 0, 317 int wanted_w = 0, wanted_h = 0, w, h, cols, i, planes = 0,
284 hot_x = 0, hot_y = 0, bpp = 0, pdelta, search = -1, have_choice = 0, 318 hot_x = 0, hot_y = 0, bpp = 0, pdelta, search = -1, have_choice = 0,
285 stride, pstride, j, right_way_up = 0, diff_size = 0, cols2; 319 stride, pstride, j, right_way_up = 0, diff_size = 0, cols2;
@@ -296,7 +330,7 @@ evas_image_load_file_data_ico(Image_Entry *ie, const char *file, const char *key
296 unsigned int bmoffset, bmsize; 330 unsigned int bmoffset, bmsize;
297 } chosen = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; 331 } chosen = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
298 332
299 f = fopen(file, "rb"); 333 f = eina_file_open(file, EINA_FALSE);
300 if (!f) 334 if (!f)
301 { 335 {
302 *error = EVAS_LOAD_ERROR_DOES_NOT_EXIST; 336 *error = EVAS_LOAD_ERROR_DOES_NOT_EXIST;
@@ -304,11 +338,12 @@ evas_image_load_file_data_ico(Image_Entry *ie, const char *file, const char *key
304 } 338 }
305 339
306 *error = EVAS_LOAD_ERROR_UNKNOWN_FORMAT; 340 *error = EVAS_LOAD_ERROR_UNKNOWN_FORMAT;
307 fseek(f, 0, SEEK_END); 341 fsize = eina_file_size_get(f);
308 fsize = ftell(f);
309 fseek(f, 0, SEEK_SET);
310 if (fsize < (6 + 16 + 40)) goto close_file; 342 if (fsize < (6 + 16 + 40)) goto close_file;
311 343
344 map = eina_file_map_all(f, EINA_FILE_SEQUENTIAL);
345 if (!map) goto close_file;
346
312 // key: 347 // key:
313 // NULL == highest res 348 // NULL == highest res
314 // biggest == highest res 349 // biggest == highest res
@@ -325,11 +360,11 @@ evas_image_load_file_data_ico(Image_Entry *ie, const char *file, const char *key
325 wanted_h = ie->load_opts.h; 360 wanted_h = ie->load_opts.h;
326 search = SMALLER; 361 search = SMALLER;
327 } 362 }
328 363
329 if (!read_ushort(f, &reserved)) goto close_file; 364 if (!read_ushort(map, fsize, &position, &reserved)) goto close_file;
330 if (!read_ushort(f, &type)) goto close_file; 365 if (!read_ushort(map, fsize, &position, &type)) goto close_file;
331 if (!read_ushort(f, &count)) goto close_file; 366 if (!read_ushort(map, fsize, &position, &count)) goto close_file;
332 if (!((reserved == 0) && 367 if (!((reserved == 0) &&
333 ((type == ICON) || (type == CURSOR)) && (count > 0))) 368 ((type == ICON) || (type == CURSOR)) && (count > 0)))
334 goto close_file; 369 goto close_file;
335 *error = EVAS_LOAD_ERROR_CORRUPT_FILE; 370 *error = EVAS_LOAD_ERROR_CORRUPT_FILE;
@@ -363,24 +398,25 @@ evas_image_load_file_data_ico(Image_Entry *ie, const char *file, const char *key
363 } 398 }
364 for (i = 0; i < count; i++) 399 for (i = 0; i < count; i++)
365 { 400 {
366 if (fread(&byte, 1, 1, f) != 1) goto close_file; 401 unsigned char tw = 0, th = 0, tcols = 0;
367 w = byte; 402 if (!read_uchar(map, fsize, &position, &tw)) goto close_file;
403 w = tw;
368 if (w <= 0) w = 256; 404 if (w <= 0) w = 256;
369 if (fread(&byte, 1, 1, f) != 1) goto close_file; 405 if (!read_uchar(map, fsize, &position, &th)) goto close_file;
370 h = byte; 406 h = th;
371 if (h <= 0) h = 256; 407 if (h <= 0) h = 256;
372 if (fread(&byte, 1, 1, f) != 1) goto close_file; 408 if (!read_uchar(map, fsize, &position, &tcols)) goto close_file;
373 cols = byte; 409 cols = tcols;
374 if (cols <= 0) cols = 256; 410 if (cols <= 0) cols = 256;
375 if (fread(&byte, 1, 1, f) != 1) goto close_file; 411 if (!read_uchar(map, fsize, &position, &byte)) goto close_file;
376 if (!read_ushort(f, &word)) goto close_file; 412 if (!read_ushort(map, fsize, &position, &word)) goto close_file;
377 if (type == 1) planes = word; 413 if (type == 1) planes = word;
378 else hot_x = word; 414 else hot_x = word;
379 if (!read_ushort(f, &word)) goto close_file; 415 if (!read_ushort(map, fsize, &position, &word)) goto close_file;
380 if (type == 1) bpp = word; 416 if (type == 1) bpp = word;
381 else hot_y = word; 417 else hot_y = word;
382 if (!read_uint(f, &bmsize)) goto close_file; 418 if (!read_uint(map, fsize, &position, &bmsize)) goto close_file;
383 if (!read_uint(f, &bmoffset)) goto close_file; 419 if (!read_uint(map, fsize, &position, &bmoffset)) goto close_file;
384 if ((bmsize <= 0) || (bmoffset <= 0) || (bmoffset >= fsize)) goto close_file; 420 if ((bmsize <= 0) || (bmoffset <= 0) || (bmoffset >= fsize)) goto close_file;
385 if (search == BIGGEST) 421 if (search == BIGGEST)
386 { 422 {
@@ -467,7 +503,7 @@ evas_image_load_file_data_ico(Image_Entry *ie, const char *file, const char *key
467 } 503 }
468 } 504 }
469 if (chosen.bmoffset == 0) goto close_file; 505 if (chosen.bmoffset == 0) goto close_file;
470 if (fseek(f, chosen.bmoffset, SEEK_SET) != 0) goto close_file; 506 position = chosen.bmoffset;
471 507
472 w = chosen.w; 508 w = chosen.w;
473 h = chosen.h; 509 h = chosen.h;
@@ -477,8 +513,8 @@ evas_image_load_file_data_ico(Image_Entry *ie, const char *file, const char *key
477 if (((int)ie->w != w) || ((int)ie->h != h)) goto close_file; 513 if (((int)ie->w != w) || ((int)ie->h != h)) goto close_file;
478 514
479 // read bmp header time... let's do some checking 515 // read bmp header time... let's do some checking
480 if (!read_uint(f, &dword)) goto close_file; // headersize - dont care 516 if (!read_uint(map, fsize, &position, &dword)) goto close_file; // headersize - dont care
481 if (!read_uint(f, &dword)) goto close_file; // width 517 if (!read_uint(map, fsize, &position, &dword)) goto close_file; // width
482 if (dword > 0) 518 if (dword > 0)
483 { 519 {
484 if ((int)dword != w) 520 if ((int)dword != w)
@@ -487,7 +523,7 @@ evas_image_load_file_data_ico(Image_Entry *ie, const char *file, const char *key
487 diff_size = 1; 523 diff_size = 1;
488 } 524 }
489 } 525 }
490 if (!read_uint(f, &dword)) goto close_file; // height 526 if (!read_uint(map, fsize, &position, &dword)) goto close_file; // height
491 if (dword > 0) 527 if (dword > 0)
492 { 528 {
493 if ((int)dword != (h * 2)) 529 if ((int)dword != (h * 2))
@@ -503,19 +539,19 @@ evas_image_load_file_data_ico(Image_Entry *ie, const char *file, const char *key
503 " May be expanded or cropped.", 539 " May be expanded or cropped.",
504 file, ie->w, ie->h, w, h); 540 file, ie->w, ie->h, w, h);
505 } 541 }
506 if (!read_ushort(f, &word)) goto close_file; // planes 542 if (!read_ushort(map, fsize, &position, &word)) goto close_file; // planes
507 planes2 = word; 543 planes2 = word;
508 if (!read_ushort(f, &word)) goto close_file; // bitcount 544 if (!read_ushort(map, fsize, &position, &word)) goto close_file; // bitcount
509 bitcount = word; 545 bitcount = word;
510 if (!read_uint(f, &dword)) goto close_file; // compression 546 if (!read_uint(map, fsize, &position, &dword)) goto close_file; // compression
511 compression = dword; 547 compression = dword;
512 if (!read_uint(f, &dword)) goto close_file; // imagesize 548 if (!read_uint(map, fsize, &position, &dword)) goto close_file; // imagesize
513 imagesize = dword; 549 imagesize = dword;
514 if (!read_uint(f, &dword)) goto close_file; // z pixels per m 550 if (!read_uint(map, fsize, &position, &dword)) goto close_file; // z pixels per m
515 if (!read_uint(f, &dword)) goto close_file; // y pizels per m 551 if (!read_uint(map, fsize, &position, &dword)) goto close_file; // y pizels per m
516 if (!read_uint(f, &dword)) goto close_file; // colors used 552 if (!read_uint(map, fsize, &position, &dword)) goto close_file; // colors used
517 colorsused = dword; 553 colorsused = dword;
518 if (!read_uint(f, &dword)) goto close_file; // colors important 554 if (!read_uint(map, fsize, &position, &dword)) goto close_file; // colors important
519 colorsimportant = dword; 555 colorsimportant = dword;
520 556
521 evas_cache_image_surface_alloc(ie, ie->w, ie->h); 557 evas_cache_image_surface_alloc(ie, ie->w, ie->h);
@@ -545,11 +581,11 @@ evas_image_load_file_data_ico(Image_Entry *ie, const char *file, const char *key
545 for (i = 0; i < cols; i++) 581 for (i = 0; i < cols; i++)
546 { 582 {
547 unsigned char a, r, g, b; 583 unsigned char a, r, g, b;
548 584
549 if (fread(&b, 1, 1, f) != 1) goto close_file; 585 if (!read_uchar(map, fsize, &position, &b)) goto close_file;
550 if (fread(&g, 1, 1, f) != 1) goto close_file; 586 if (!read_uchar(map, fsize, &position, &g)) goto close_file;
551 if (fread(&r, 1, 1, f) != 1) goto close_file; 587 if (!read_uchar(map, fsize, &position, &r)) goto close_file;
552 if (fread(&a, 1, 1, f) != 1) goto close_file; 588 if (!read_uchar(map, fsize, &position, &a)) goto close_file;
553 a = 0xff; 589 a = 0xff;
554 pal[i] = ARGB_JOIN(a, r, g, b); 590 pal[i] = ARGB_JOIN(a, r, g, b);
555 } 591 }
@@ -563,7 +599,7 @@ evas_image_load_file_data_ico(Image_Entry *ie, const char *file, const char *key
563 { 599 {
564 pix = surface + (i * ie->w); 600 pix = surface + (i * ie->w);
565 if (!right_way_up) pix = surface + ((ie->h - 1 - i) * ie->w); 601 if (!right_way_up) pix = surface + ((ie->h - 1 - i) * ie->w);
566 if (fread(pixbuf, pstride, 1, f) != 1) goto close_file; 602 if (!read_mem(map, fsize, &position, pixbuf, pstride)) goto close_file;
567 p = pixbuf; 603 p = pixbuf;
568 if (i >= (int)ie->h) continue; 604 if (i >= (int)ie->h) continue;
569 for (j = 0; j < w; j++) 605 for (j = 0; j < w; j++)
@@ -613,7 +649,7 @@ evas_image_load_file_data_ico(Image_Entry *ie, const char *file, const char *key
613 { 649 {
614 pix = surface + (i * ie->w); 650 pix = surface + (i * ie->w);
615 if (!right_way_up) pix = surface + ((ie->h - 1 - i) * ie->w); 651 if (!right_way_up) pix = surface + ((ie->h - 1 - i) * ie->w);
616 if (fread(pixbuf, pstride, 1, f) != 1) goto close_file; 652 if (!read_mem(map, fsize, &position, pixbuf, pstride)) goto close_file;
617 p = pixbuf; 653 p = pixbuf;
618 if (i >= (int)ie->h) continue; 654 if (i >= (int)ie->h) continue;
619 for (j = 0; j < w; j++) 655 for (j = 0; j < w; j++)
@@ -639,7 +675,7 @@ evas_image_load_file_data_ico(Image_Entry *ie, const char *file, const char *key
639 { 675 {
640 pix = surface + (i * ie->w); 676 pix = surface + (i * ie->w);
641 if (!right_way_up) pix = surface + ((ie->h - 1 - i) * ie->w); 677 if (!right_way_up) pix = surface + ((ie->h - 1 - i) * ie->w);
642 if (fread(pixbuf, pstride, 1, f) != 1) goto close_file; 678 if (!read_mem(map, fsize, &position, pixbuf, pstride)) goto close_file;
643 p = pixbuf; 679 p = pixbuf;
644 if (i >= (int)ie->h) continue; 680 if (i >= (int)ie->h) continue;
645 for (j = 0; j < w; j++) 681 for (j = 0; j < w; j++)
@@ -658,13 +694,13 @@ evas_image_load_file_data_ico(Image_Entry *ie, const char *file, const char *key
658 { 694 {
659 pix = surface + (i * ie->w); 695 pix = surface + (i * ie->w);
660 if (!right_way_up) pix = surface + ((ie->h - 1 - i) * ie->w); 696 if (!right_way_up) pix = surface + ((ie->h - 1 - i) * ie->w);
661 if (fread(pixbuf, pstride, 1, f) != 1) goto close_file; 697 if (!read_mem(map, fsize, &position, pixbuf, pstride)) goto close_file;
662 p = pixbuf; 698 p = pixbuf;
663 if (i >= (int)ie->h) continue; 699 if (i >= (int)ie->h) continue;
664 for (j = 0; j < w; j++) 700 for (j = 0; j < w; j++)
665 { 701 {
666 unsigned char a, r, g, b; 702 unsigned char a, r, g, b;
667 703
668 if (j >= (int)ie->w) break; 704 if (j >= (int)ie->w) break;
669 b = p[0]; 705 b = p[0];
670 g = p[1]; 706 g = p[1];
@@ -683,13 +719,13 @@ evas_image_load_file_data_ico(Image_Entry *ie, const char *file, const char *key
683 { 719 {
684 pix = surface + (i * ie->w); 720 pix = surface + (i * ie->w);
685 if (!right_way_up) pix = surface + ((ie->h - 1 - i) * ie->w); 721 if (!right_way_up) pix = surface + ((ie->h - 1 - i) * ie->w);
686 if (fread(pixbuf, pstride, 1, f) != 1) goto close_file; 722 if (!read_mem(map, fsize, &position, pixbuf, pstride)) goto close_file;
687 p = pixbuf; 723 p = pixbuf;
688 if (i >= (int)ie->h) continue; 724 if (i >= (int)ie->h) continue;
689 for (j = 0; j < w; j++) 725 for (j = 0; j < w; j++)
690 { 726 {
691 unsigned char a, r, g, b; 727 unsigned char a, r, g, b;
692 728
693 if (j >= (int)ie->w) break; 729 if (j >= (int)ie->w) break;
694 b = p[0]; 730 b = p[0];
695 g = p[1]; 731 g = p[1];
@@ -704,13 +740,13 @@ evas_image_load_file_data_ico(Image_Entry *ie, const char *file, const char *key
704 } 740 }
705 if (!none_zero_alpha) 741 if (!none_zero_alpha)
706 { 742 {
707 if (fread(maskbuf, stride * 4 * h, 1, f) != 1) goto close_file; 743 if (!read_mem(map, fsize, &position, maskbuf, stride * 4 * h)) goto close_file;
708 // apply mask 744 // apply mask
709 pix = surface; 745 pix = surface;
710 for (i = 0; i < h; i++) 746 for (i = 0; i < h; i++)
711 { 747 {
712 unsigned char *m; 748 unsigned char *m;
713 749
714 pix = surface + (i * ie->w); 750 pix = surface + (i * ie->w);
715 if (!right_way_up) pix = surface + ((ie->h - 1 - i) * ie->w); 751 if (!right_way_up) pix = surface + ((ie->h - 1 - i) * ie->w);
716 m = maskbuf + (stride * i * 4); 752 m = maskbuf + (stride * i * 4);
@@ -727,15 +763,17 @@ evas_image_load_file_data_ico(Image_Entry *ie, const char *file, const char *key
727 } 763 }
728 } 764 }
729 } 765 }
730 766
731 fclose(f); 767 eina_file_map_free(f, map);
732 768 eina_file_close(f);
769
733 evas_common_image_premul(ie); 770 evas_common_image_premul(ie);
734 *error = EVAS_LOAD_ERROR_NONE; 771 *error = EVAS_LOAD_ERROR_NONE;
735 return EINA_TRUE; 772 return EINA_TRUE;
736 773
737 close_file: 774 close_file:
738 fclose(f); 775 if (map) eina_file_map_free(f, map);
776 eina_file_close(f);
739 return EINA_FALSE; 777 return EINA_FALSE;
740} 778}
741 779
diff --git a/libraries/evas/src/modules/loaders/jpeg/Makefile.in b/libraries/evas/src/modules/loaders/jpeg/Makefile.in
index ce4b194..7c0ca18 100644
--- a/libraries/evas/src/modules/loaders/jpeg/Makefile.in
+++ b/libraries/evas/src/modules/loaders/jpeg/Makefile.in
@@ -231,8 +231,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
232PIXMAN_LIBS = @PIXMAN_LIBS@ 232PIXMAN_LIBS = @PIXMAN_LIBS@
233PKG_CONFIG = @PKG_CONFIG@ 233PKG_CONFIG = @PKG_CONFIG@
234PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
235PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
236PNG_CFLAGS = @PNG_CFLAGS@ 234PNG_CFLAGS = @PNG_CFLAGS@
237PNG_LIBS = @PNG_LIBS@ 235PNG_LIBS = @PNG_LIBS@
238RANLIB = @RANLIB@ 236RANLIB = @RANLIB@
@@ -249,6 +247,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
249VALGRIND_LIBS = @VALGRIND_LIBS@ 247VALGRIND_LIBS = @VALGRIND_LIBS@
250VERSION = @VERSION@ 248VERSION = @VERSION@
251VMAJ = @VMAJ@ 249VMAJ = @VMAJ@
250WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
251WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
252WIN32_CFLAGS = @WIN32_CFLAGS@ 252WIN32_CFLAGS = @WIN32_CFLAGS@
253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
254XCB_CFLAGS = @XCB_CFLAGS@ 254XCB_CFLAGS = @XCB_CFLAGS@
@@ -330,6 +330,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
333evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
334evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
335evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
336evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
333evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 337evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
334evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 338evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
335evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 339evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/loaders/jpeg/evas_image_load_jpeg.c b/libraries/evas/src/modules/loaders/jpeg/evas_image_load_jpeg.c
index 0dbabab..797c76d 100644
--- a/libraries/evas/src/modules/loaders/jpeg/evas_image_load_jpeg.c
+++ b/libraries/evas/src/modules/loaders/jpeg/evas_image_load_jpeg.c
@@ -46,7 +46,8 @@ static Evas_Image_Load_Func evas_image_load_jpeg_func =
46 EINA_TRUE, 46 EINA_TRUE,
47 evas_image_load_file_head_jpeg, 47 evas_image_load_file_head_jpeg,
48 evas_image_load_file_data_jpeg, 48 evas_image_load_file_data_jpeg,
49 NULL 49 NULL,
50 EINA_TRUE
50}; 51};
51 52
52 53
diff --git a/libraries/evas/src/modules/loaders/pmaps/Makefile.in b/libraries/evas/src/modules/loaders/pmaps/Makefile.in
index de7b779..745e79b 100644
--- a/libraries/evas/src/modules/loaders/pmaps/Makefile.in
+++ b/libraries/evas/src/modules/loaders/pmaps/Makefile.in
@@ -231,8 +231,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
232PIXMAN_LIBS = @PIXMAN_LIBS@ 232PIXMAN_LIBS = @PIXMAN_LIBS@
233PKG_CONFIG = @PKG_CONFIG@ 233PKG_CONFIG = @PKG_CONFIG@
234PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
235PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
236PNG_CFLAGS = @PNG_CFLAGS@ 234PNG_CFLAGS = @PNG_CFLAGS@
237PNG_LIBS = @PNG_LIBS@ 235PNG_LIBS = @PNG_LIBS@
238RANLIB = @RANLIB@ 236RANLIB = @RANLIB@
@@ -249,6 +247,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
249VALGRIND_LIBS = @VALGRIND_LIBS@ 247VALGRIND_LIBS = @VALGRIND_LIBS@
250VERSION = @VERSION@ 248VERSION = @VERSION@
251VMAJ = @VMAJ@ 249VMAJ = @VMAJ@
250WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
251WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
252WIN32_CFLAGS = @WIN32_CFLAGS@ 252WIN32_CFLAGS = @WIN32_CFLAGS@
253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
254XCB_CFLAGS = @XCB_CFLAGS@ 254XCB_CFLAGS = @XCB_CFLAGS@
@@ -330,6 +330,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
333evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
334evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
335evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
336evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
333evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 337evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
334evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 338evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
335evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 339evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/loaders/pmaps/evas_image_load_pmaps.c b/libraries/evas/src/modules/loaders/pmaps/evas_image_load_pmaps.c
index 9ba8f81..393e407 100644
--- a/libraries/evas/src/modules/loaders/pmaps/evas_image_load_pmaps.c
+++ b/libraries/evas/src/modules/loaders/pmaps/evas_image_load_pmaps.c
@@ -19,7 +19,8 @@ Evas_Image_Load_Func evas_image_load_pmaps_func = {
19 EINA_TRUE, 19 EINA_TRUE,
20 evas_image_load_file_head_pmaps, 20 evas_image_load_file_head_pmaps,
21 evas_image_load_file_data_pmaps, 21 evas_image_load_file_data_pmaps,
22 NULL 22 NULL,
23 EINA_FALSE
23}; 24};
24 25
25/* The buffer to load pmaps images */ 26/* The buffer to load pmaps images */
@@ -27,7 +28,9 @@ typedef struct Pmaps_Buffer Pmaps_Buffer;
27 28
28struct Pmaps_Buffer 29struct Pmaps_Buffer
29{ 30{
30 FILE *file; 31 Eina_File *file;
32 void *map;
33 size_t position;
31 34
32 /* the buffer */ 35 /* the buffer */
33 DATA8 buffer[FILE_BUFFER_SIZE]; 36 DATA8 buffer[FILE_BUFFER_SIZE];
@@ -160,13 +163,23 @@ pmaps_buffer_open(Pmaps_Buffer *b, const char *filename, int *error)
160{ 163{
161 size_t len; 164 size_t len;
162 165
163 b->file = fopen(filename, "rb"); 166 b->file = eina_file_open(filename, EINA_FALSE);
164 if (!b->file) 167 if (!b->file)
165 { 168 {
166 *error = EVAS_LOAD_ERROR_DOES_NOT_EXIST; 169 *error = EVAS_LOAD_ERROR_DOES_NOT_EXIST;
167 return EINA_FALSE; 170 return EINA_FALSE;
168 } 171 }
169 172
173 b->map = eina_file_map_all(b->file, EINA_FILE_SEQUENTIAL);
174 if (!b->map)
175 {
176 *error = EVAS_LOAD_ERROR_DOES_NOT_EXIST;
177 eina_file_close(b->file);
178 b->file = NULL;
179 return EINA_FALSE;
180 }
181
182 b->position = 0;
170 *b->buffer = 0; 183 *b->buffer = 0;
171 *b->unread = 0; 184 *b->unread = 0;
172 b->last_buffer = 0; 185 b->last_buffer = 0;
@@ -177,7 +190,9 @@ pmaps_buffer_open(Pmaps_Buffer *b, const char *filename, int *error)
177 if (len < 3) 190 if (len < 3)
178 { 191 {
179 *error = EVAS_LOAD_ERROR_CORRUPT_FILE; 192 *error = EVAS_LOAD_ERROR_CORRUPT_FILE;
180 fclose(b->file); 193 eina_file_map_free(b->file, b->map);
194 eina_file_close(b->file);
195 b->map = NULL;
181 b->file = NULL; 196 b->file = NULL;
182 return EINA_FALSE; 197 return EINA_FALSE;
183 } 198 }
@@ -197,7 +212,12 @@ static void
197pmaps_buffer_close(Pmaps_Buffer *b) 212pmaps_buffer_close(Pmaps_Buffer *b)
198{ 213{
199 if (b->file) 214 if (b->file)
200 fclose(b->file); 215 {
216 if (b->map) eina_file_map_free(b->file, b->map);
217 b->map = NULL;
218 eina_file_close(b->file);
219 b->file = NULL;
220 }
201} 221}
202 222
203static Eina_Bool 223static Eina_Bool
@@ -295,6 +315,7 @@ static size_t
295pmaps_buffer_plain_update(Pmaps_Buffer *b) 315pmaps_buffer_plain_update(Pmaps_Buffer *b)
296{ 316{
297 size_t r; 317 size_t r;
318 size_t max;
298 319
299 /* if we already are in the last buffer we can not update it */ 320 /* if we already are in the last buffer we can not update it */
300 if (b->last_buffer) 321 if (b->last_buffer)
@@ -304,9 +325,14 @@ pmaps_buffer_plain_update(Pmaps_Buffer *b)
304 * stuff */ 325 * stuff */
305 if (b->unread_len) 326 if (b->unread_len)
306 memcpy(b->buffer, b->unread, b->unread_len); 327 memcpy(b->buffer, b->unread, b->unread_len);
307 328
308 r = fread(&b->buffer[b->unread_len], 1, 329 max = FILE_BUFFER_SIZE - b->unread_len - 1;
309 FILE_BUFFER_SIZE - b->unread_len - 1, b->file) + b->unread_len; 330 if (b->position + max > eina_file_size_get(b->file))
331 max = eina_file_size_get(b->file) - b->position;
332
333 memcpy(&b->buffer[b->unread_len], b->map + b->position, max);
334 b->position += max;
335 r = max + b->unread_len;
310 336
311 /* we haven't read anything nor have we bytes in the unread buffer */ 337 /* we haven't read anything nor have we bytes in the unread buffer */
312 if (r == 0) 338 if (r == 0)
@@ -324,7 +350,7 @@ pmaps_buffer_plain_update(Pmaps_Buffer *b)
324 } 350 }
325 351
326 b->buffer[r] = 0; 352 b->buffer[r] = 0;
327 353
328 b->unread[0] = '\0'; 354 b->unread[0] = '\0';
329 b->unread_len = 0; 355 b->unread_len = 0;
330 356
@@ -339,6 +365,7 @@ static size_t
339pmaps_buffer_raw_update(Pmaps_Buffer *b) 365pmaps_buffer_raw_update(Pmaps_Buffer *b)
340{ 366{
341 size_t r; 367 size_t r;
368 size_t max;
342 369
343 if (b->last_buffer) 370 if (b->last_buffer)
344 return 0; 371 return 0;
@@ -346,8 +373,13 @@ pmaps_buffer_raw_update(Pmaps_Buffer *b)
346 if (b->unread_len) 373 if (b->unread_len)
347 memcpy(b->buffer, b->unread, b->unread_len); 374 memcpy(b->buffer, b->unread, b->unread_len);
348 375
349 r = fread(&b->buffer[b->unread_len], 1, FILE_BUFFER_SIZE - b->unread_len, 376 max = FILE_BUFFER_SIZE - b->unread_len;
350 b->file) + b->unread_len; 377 if (b->position + max > eina_file_size_get(b->file))
378 max = eina_file_size_get(b->file) - b->position;
379
380 memcpy(&b->buffer[b->unread_len], b->map + b->position, max);
381 b->position += max;
382 r = max + b->unread_len;
351 383
352 if (r < FILE_BUFFER_SIZE) 384 if (r < FILE_BUFFER_SIZE)
353 { 385 {
diff --git a/libraries/evas/src/modules/loaders/png/Makefile.in b/libraries/evas/src/modules/loaders/png/Makefile.in
index 0717299..3bd4919 100644
--- a/libraries/evas/src/modules/loaders/png/Makefile.in
+++ b/libraries/evas/src/modules/loaders/png/Makefile.in
@@ -231,8 +231,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
232PIXMAN_LIBS = @PIXMAN_LIBS@ 232PIXMAN_LIBS = @PIXMAN_LIBS@
233PKG_CONFIG = @PKG_CONFIG@ 233PKG_CONFIG = @PKG_CONFIG@
234PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
235PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
236PNG_CFLAGS = @PNG_CFLAGS@ 234PNG_CFLAGS = @PNG_CFLAGS@
237PNG_LIBS = @PNG_LIBS@ 235PNG_LIBS = @PNG_LIBS@
238RANLIB = @RANLIB@ 236RANLIB = @RANLIB@
@@ -249,6 +247,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
249VALGRIND_LIBS = @VALGRIND_LIBS@ 247VALGRIND_LIBS = @VALGRIND_LIBS@
250VERSION = @VERSION@ 248VERSION = @VERSION@
251VMAJ = @VMAJ@ 249VMAJ = @VMAJ@
250WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
251WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
252WIN32_CFLAGS = @WIN32_CFLAGS@ 252WIN32_CFLAGS = @WIN32_CFLAGS@
253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
254XCB_CFLAGS = @XCB_CFLAGS@ 254XCB_CFLAGS = @XCB_CFLAGS@
@@ -330,6 +330,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
333evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
334evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
335evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
336evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
333evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 337evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
334evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 338evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
335evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 339evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/loaders/png/evas_image_load_png.c b/libraries/evas/src/modules/loaders/png/evas_image_load_png.c
index a1480ae..3007a57 100644
--- a/libraries/evas/src/modules/loaders/png/evas_image_load_png.c
+++ b/libraries/evas/src/modules/loaders/png/evas_image_load_png.c
@@ -35,7 +35,8 @@ static Evas_Image_Load_Func evas_image_load_png_func =
35 EINA_TRUE, 35 EINA_TRUE,
36 evas_image_load_file_head_png, 36 evas_image_load_file_head_png,
37 evas_image_load_file_data_png, 37 evas_image_load_file_data_png,
38 NULL 38 NULL,
39 EINA_FALSE
39}; 40};
40 41
41static Eina_Bool 42static Eina_Bool
diff --git a/libraries/evas/src/modules/loaders/psd/Makefile.in b/libraries/evas/src/modules/loaders/psd/Makefile.in
index 98d340a..3dc9c38 100644
--- a/libraries/evas/src/modules/loaders/psd/Makefile.in
+++ b/libraries/evas/src/modules/loaders/psd/Makefile.in
@@ -231,8 +231,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
232PIXMAN_LIBS = @PIXMAN_LIBS@ 232PIXMAN_LIBS = @PIXMAN_LIBS@
233PKG_CONFIG = @PKG_CONFIG@ 233PKG_CONFIG = @PKG_CONFIG@
234PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
235PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
236PNG_CFLAGS = @PNG_CFLAGS@ 234PNG_CFLAGS = @PNG_CFLAGS@
237PNG_LIBS = @PNG_LIBS@ 235PNG_LIBS = @PNG_LIBS@
238RANLIB = @RANLIB@ 236RANLIB = @RANLIB@
@@ -249,6 +247,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
249VALGRIND_LIBS = @VALGRIND_LIBS@ 247VALGRIND_LIBS = @VALGRIND_LIBS@
250VERSION = @VERSION@ 248VERSION = @VERSION@
251VMAJ = @VMAJ@ 249VMAJ = @VMAJ@
250WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
251WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
252WIN32_CFLAGS = @WIN32_CFLAGS@ 252WIN32_CFLAGS = @WIN32_CFLAGS@
253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
254XCB_CFLAGS = @XCB_CFLAGS@ 254XCB_CFLAGS = @XCB_CFLAGS@
@@ -330,6 +330,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
333evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
334evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
335evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
336evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
333evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 337evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
334evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 338evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
335evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 339evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/loaders/psd/evas_image_load_psd.c b/libraries/evas/src/modules/loaders/psd/evas_image_load_psd.c
index 5a85e17..27f5f24 100644
--- a/libraries/evas/src/modules/loaders/psd/evas_image_load_psd.c
+++ b/libraries/evas/src/modules/loaders/psd/evas_image_load_psd.c
@@ -61,48 +61,57 @@ enum {
61}; 61};
62 62
63static Eina_Bool get_compressed_channels_length(PSD_Header *Head, 63static Eina_Bool get_compressed_channels_length(PSD_Header *Head,
64 FILE *file, 64 const unsigned char *map, size_t length, size_t *position,
65 unsigned short *rle_table, 65 unsigned short *rle_table,
66 unsigned int *chanlen); 66 unsigned int *chanlen);
67 67
68static int 68static int
69read_ushort(FILE *file, unsigned short *ret) 69read_ushort(const unsigned char *map, size_t length, size_t *position, unsigned short *ret)
70{ 70{
71 unsigned char b[2]; 71 if (*position + 2 > length) return 0;
72 if (fread(b, sizeof(unsigned char), 2, file) != 2) return 0;
73 // FIXME: need to check order 72 // FIXME: need to check order
74 *ret = (b[0] << 8) | b[1]; 73 *ret = (map[(*position) + 0] << 8) | map[(*position) + 1];
74 *position += 2;
75 return 1; 75 return 1;
76} 76}
77 77
78static int 78static int
79read_uint(FILE *file, unsigned int *ret) 79read_uint(const unsigned char *map, size_t length, size_t *position, unsigned int *ret)
80{ 80{
81 unsigned char b[4]; 81 if (*position + 4 > length) return 0;
82 if (fread(b, sizeof(unsigned char), 4, file) != 4) return 0;
83 // FIXME: need to check order 82 // FIXME: need to check order
84 *ret = ARGB_JOIN(b[0], b[1], b[2], b[3]); 83 *ret = ARGB_JOIN(map[(*position) + 0], map[(*position) + 1], map[(*position) + 2], map[(*position) + 3]);
84 *position += 4;
85 return 1;
86}
87
88static int
89read_block(const unsigned char *map, size_t length, size_t *position, void *target, size_t size)
90{
91 if (*position + size > length) return 0;
92 memcpy(target, map + *position, size);
93 *position += size;
85 return 1; 94 return 1;
86} 95}
87 96
88// Internal function used to get the Psd header from the current file. 97// Internal function used to get the Psd header from the current file.
89Eina_Bool 98Eina_Bool
90psd_get_header(PSD_Header *header, FILE * file) 99psd_get_header(PSD_Header *header, const unsigned char *map, size_t length, size_t *position)
91{ 100{
92 unsigned short tmp; 101 unsigned short tmp;
93 102
94#define CHECK_RET(Call, Value) \ 103#define CHECK_RET(Call) \
95 if (Call != Value) return EINA_FALSE; 104 if (!Call) return EINA_FALSE;
96 105
97 CHECK_RET(fread(header->signature, sizeof (unsigned char), 4, file), 4); 106 CHECK_RET(read_block(map, length, position, header->signature, 4));
98 CHECK_RET(read_ushort(file, &header->version), 1); 107 CHECK_RET(read_ushort(map, length, position, &header->version));
99 CHECK_RET(fread(header->reserved, sizeof (unsigned char), 6, file), 6); 108 CHECK_RET(read_block(map, length, position, header->reserved, 6));
100 CHECK_RET(read_ushort(file, &header->channels), 1); 109 CHECK_RET(read_ushort(map, length, position, &header->channels));
101 CHECK_RET(read_uint(file, &header->height), 1); 110 CHECK_RET(read_uint(map, length, position, &header->height));
102 CHECK_RET(read_uint(file, &header->width), 1); 111 CHECK_RET(read_uint(map, length, position, &header->width));
103 CHECK_RET(read_ushort(file, &header->depth), 1); 112 CHECK_RET(read_ushort(map, length, position, &header->depth));
104 113
105 CHECK_RET(read_ushort(file, &tmp), 1); 114 CHECK_RET(read_ushort(map, length, position, &tmp));
106 header->mode = tmp; 115 header->mode = tmp;
107 116
108#undef CHECK_RET 117#undef CHECK_RET
@@ -144,20 +153,35 @@ static Eina_Bool
144evas_image_load_file_head_psd(Image_Entry *ie, const char *FileName, 153evas_image_load_file_head_psd(Image_Entry *ie, const char *FileName,
145 const char *key __UNUSED__, int *error) 154 const char *key __UNUSED__, int *error)
146{ 155{
147 FILE *f; 156 Eina_File *f;
157 void *map;
158 size_t length;
159 size_t position;
148 PSD_Header header; 160 PSD_Header header;
149 Eina_Bool correct; 161 Eina_Bool correct;
150 162
151 *error = EVAS_LOAD_ERROR_NONE; 163 *error = EVAS_LOAD_ERROR_NONE;
152 164
153 f = fopen(FileName, "rb"); 165 f = eina_file_open(FileName, 0);
154 if (f == NULL) 166 if (f == NULL)
155 { 167 {
156 *error = EVAS_LOAD_ERROR_DOES_NOT_EXIST; 168 *error = EVAS_LOAD_ERROR_DOES_NOT_EXIST;
157 return EINA_FALSE; 169 return EINA_FALSE;
158 } 170 }
159 correct = psd_get_header(&header, f); 171
160 fclose(f); 172 map = eina_file_map_all(f, EINA_FILE_SEQUENTIAL);
173 length = eina_file_size_get(f);
174 position = 0;
175 if (!map || length < 1)
176 {
177 eina_file_close(f);
178 *error = EVAS_LOAD_ERROR_CORRUPT_FILE;
179 return EINA_FALSE;
180 }
181 correct = psd_get_header(&header, map, length, &position);
182
183 eina_file_map_free(f, map);
184 eina_file_close(f);
161 185
162 if (!correct || !is_psd(&header)) 186 if (!correct || !is_psd(&header))
163 { 187 {
@@ -174,7 +198,7 @@ evas_image_load_file_head_psd(Image_Entry *ie, const char *FileName,
174} 198}
175 199
176static unsigned int 200static unsigned int
177read_compressed_channel(FILE* file, 201read_compressed_channel(const unsigned char *map, size_t length, size_t *position,
178 const unsigned int channel_length __UNUSED__, 202 const unsigned int channel_length __UNUSED__,
179 unsigned int size, 203 unsigned int size,
180 unsigned char* channel) 204 unsigned char* channel)
@@ -183,19 +207,18 @@ read_compressed_channel(FILE* file,
183 unsigned int i; 207 unsigned int i;
184 char headbyte, c; 208 char headbyte, c;
185 209
186#define CHECK_RET(Call, Value) \ 210#define CHECK_RET(Call) \
187 if (Call != Value) return READ_COMPRESSED_ERROR_FILE_READ_ERROR; 211 if (!Call) return READ_COMPRESSED_ERROR_FILE_READ_ERROR; \
188 212
189 for (i = 0; i < size; ) 213 for (i = 0; i < size; )
190 { 214 {
191 CHECK_RET(fread(&headbyte, 1, 1, file), 1); 215 CHECK_RET(read_block(map, length, position, &headbyte, 1));
192 216
193 if (headbyte >= 0) 217 if (headbyte >= 0)
194 { 218 {
195 if (i + headbyte > size) 219 if (i + headbyte > size)
196 return READ_COMPRESSED_ERROR_FILE_CORRUPT; 220 return READ_COMPRESSED_ERROR_FILE_CORRUPT;
197 221 CHECK_RET(read_block(map, length, position, channel + i, headbyte + 1));
198 CHECK_RET(fread(channel + i, headbyte + 1, 1, file), 1);
199 222
200 i += headbyte + 1; 223 i += headbyte + 1;
201 } 224 }
@@ -203,14 +226,14 @@ read_compressed_channel(FILE* file,
203 { 226 {
204 int run; 227 int run;
205 228
206 CHECK_RET(fread(&c, 1, 1, file), 1); 229 CHECK_RET(read_block(map, length, position, &c, 1));
207 230
208 run = c; 231 run = c;
209 /* if (run == -1) */ 232 /* if (run == -1) */
210 /* return READ_COMPRESSED_ERROR_FILE_READ_ERROR; */ 233 /* return READ_COMPRESSED_ERROR_FILE_READ_ERROR; */
211 234
212 if (i + (-headbyte + 1) > size) 235 if (i + (-headbyte + 1) > size)
213 return READ_COMPRESSED_ERROR_FILE_CORRUPT; 236 return READ_COMPRESSED_ERROR_FILE_CORRUPT;
214 237
215 memset(channel + i, run, -headbyte + 1); 238 memset(channel + i, run, -headbyte + 1);
216 i += -headbyte + 1; 239 i += -headbyte + 1;
@@ -226,7 +249,7 @@ read_compressed_channel(FILE* file,
226Eina_Bool 249Eina_Bool
227psd_get_data(Image_Entry *ie __UNUSED__, 250psd_get_data(Image_Entry *ie __UNUSED__,
228 PSD_Header *head, 251 PSD_Header *head,
229 FILE *f, 252 const unsigned char *map, size_t length, size_t *position,
230 unsigned char *buffer, Eina_Bool compressed, 253 unsigned char *buffer, Eina_Bool compressed,
231 int *error) 254 int *error)
232{ 255{
@@ -268,13 +291,12 @@ psd_get_data(Image_Entry *ie __UNUSED__,
268 { 291 {
269 free(data); 292 free(data);
270 free(channel); 293 free(channel);
271 fprintf(stderr, "unsupported file format.\n");
272 *error = EVAS_LOAD_ERROR_UNKNOWN_FORMAT; 294 *error = EVAS_LOAD_ERROR_UNKNOWN_FORMAT;
273 return EINA_FALSE; 295 return EINA_FALSE;
274 } 296 }
275 297
276#define CHECK_RET(Call, Value) \ 298#define CHECK_RET(Call) \
277 if (Call != Value) \ 299 if (!Call) \
278 { \ 300 { \
279 free(data); \ 301 free(data); \
280 free(channel); \ 302 free(channel); \
@@ -289,7 +311,7 @@ psd_get_data(Image_Entry *ie __UNUSED__,
289 { 311 {
290 unsigned char *tmp = channel; 312 unsigned char *tmp = channel;
291 313
292 CHECK_RET(fread(tmp, pixels_count, 1, f), 1); 314 CHECK_RET(read_block(map, length, position, tmp, pixels_count));
293 315
294 for (y = 0; y < head->height * bps; y += bps) 316 for (y = 0; y < head->height * bps; y += bps)
295 { 317 {
@@ -306,7 +328,7 @@ psd_get_data(Image_Entry *ie __UNUSED__,
306 { 328 {
307 unsigned char *tmp = channel; 329 unsigned char *tmp = channel;
308 330
309 CHECK_RET(fread(channel, pixels_count, 1, f), 1); 331 CHECK_RET(read_block(map, length, position, channel, pixels_count));
310 332
311 for (y = 0; y < head->height * bps; y += bps) 333 for (y = 0; y < head->height * bps; y += bps)
312 { 334 {
@@ -333,7 +355,7 @@ psd_get_data(Image_Entry *ie __UNUSED__,
333 { 355 {
334 unsigned short *shortptr = (unsigned short*) channel; 356 unsigned short *shortptr = (unsigned short*) channel;
335 357
336 CHECK_RET(fread(channel, pixels_count * 2, 1, f), 1); 358 CHECK_RET(read_block(map, length, position, channel, pixels_count * 2));
337 359
338 for (y = 0; y < head->height * bps2; y += bps2) 360 for (y = 0; y < head->height * bps2; y += bps2)
339 { 361 {
@@ -350,7 +372,7 @@ psd_get_data(Image_Entry *ie __UNUSED__,
350 { 372 {
351 unsigned short *shortptr = (unsigned short*) channel; 373 unsigned short *shortptr = (unsigned short*) channel;
352 374
353 CHECK_RET(fread(channel, pixels_count * 2, 1, f), 1); 375 CHECK_RET(read_block(map, length, position, channel, pixels_count * 2));
354 376
355 for (y = 0; y < head->height * bps2; y += bps2) 377 for (y = 0; y < head->height * bps2; y += bps2)
356 { 378 {
@@ -373,7 +395,7 @@ psd_get_data(Image_Entry *ie __UNUSED__,
373 395
374 rle_table = alloca(head->height * head->channel_num * sizeof (unsigned short)); 396 rle_table = alloca(head->height * head->channel_num * sizeof (unsigned short));
375 chanlen = alloca(head->channel_num * sizeof (unsigned int)); 397 chanlen = alloca(head->channel_num * sizeof (unsigned int));
376 if (!get_compressed_channels_length(head, f, rle_table, chanlen)) 398 if (!get_compressed_channels_length(head, map, length, position, rle_table, chanlen))
377 goto file_read_error; 399 goto file_read_error;
378 400
379 for (c = 0; c < numchan; c++) 401 for (c = 0; c < numchan; c++)
@@ -381,7 +403,7 @@ psd_get_data(Image_Entry *ie __UNUSED__,
381 unsigned char *tmp = channel; 403 unsigned char *tmp = channel;
382 int err; 404 int err;
383 405
384 err = read_compressed_channel(f, 406 err = read_compressed_channel(map, length, position,
385 chanlen[c], 407 chanlen[c],
386 pixels_count, 408 pixels_count,
387 channel); 409 channel);
@@ -416,7 +438,7 @@ psd_get_data(Image_Entry *ie __UNUSED__,
416 unsigned char *tmp = channel; 438 unsigned char *tmp = channel;
417 int err; 439 int err;
418 440
419 err = read_compressed_channel(f, 441 err = read_compressed_channel(map, length, position,
420 chanlen[c], 442 chanlen[c],
421 pixels_count, 443 pixels_count,
422 channel); 444 channel);
@@ -482,7 +504,7 @@ psd_get_data(Image_Entry *ie __UNUSED__,
482Eina_Bool 504Eina_Bool
483get_single_channel(Image_Entry *ie __UNUSED__, 505get_single_channel(Image_Entry *ie __UNUSED__,
484 PSD_Header *head, 506 PSD_Header *head,
485 FILE *f, 507 const unsigned char *map, size_t length, size_t *position,
486 unsigned char *buffer, 508 unsigned char *buffer,
487 Eina_Bool compressed) 509 Eina_Bool compressed)
488{ 510{
@@ -496,29 +518,29 @@ get_single_channel(Image_Entry *ie __UNUSED__,
496 bpc = (head->depth / 8); 518 bpc = (head->depth / 8);
497 pixels_count = head->width * head->height; 519 pixels_count = head->width * head->height;
498 520
499#define CHECK_RET(Call, Value) \ 521#define CHECK_RET(Call) \
500 if (Call != Value) return EINA_FALSE; 522 if (!Call) return EINA_FALSE;
501 523
502 if (!compressed) 524 if (!compressed)
503 { 525 {
504 if (bpc == 1) 526 if (bpc == 1)
505 { 527 {
506 CHECK_RET(fread(buffer, pixels_count, 1, f), 1); 528 CHECK_RET(read_block(map, length, position, buffer, pixels_count));
507 } 529 }
508 else 530 else
509 { // Bpc == 2 531 { // Bpc == 2
510 CHECK_RET(fread(buffer, pixels_count * 2, 1, f), 1); 532 CHECK_RET(read_block(map, length, position, buffer, pixels_count * 2));
511 } 533 }
512 } 534 }
513 else 535 else
514 { 536 {
515 for (i = 0; i < (unsigned int)pixels_count; ) 537 for (i = 0; i < (unsigned int)pixels_count; )
516 { 538 {
517 CHECK_RET(fread(&headbyte, 1, 1, f), 1); 539 CHECK_RET(read_block(map, length, position, &headbyte, 1));
518 540
519 if (headbyte >= 0) 541 if (headbyte >= 0)
520 { // && HeadByte <= 127 542 { // && HeadByte <= 127
521 CHECK_RET(fread(buffer + i, headbyte + 1, 1, f), 1); 543 CHECK_RET(read_block(map, length, position, buffer + i, headbyte + 1));
522 544
523 i += headbyte + 1; 545 i += headbyte + 1;
524 } 546 }
@@ -526,7 +548,7 @@ get_single_channel(Image_Entry *ie __UNUSED__,
526 { 548 {
527 int run; 549 int run;
528 550
529 CHECK_RET(fread(&c, 1, 1, f), 1); 551 CHECK_RET(read_block(map, length, position, &c, 1));
530 552
531 run = c; 553 run = c;
532 if (run == -1) return EINA_FALSE; 554 if (run == -1) return EINA_FALSE;
@@ -543,7 +565,7 @@ get_single_channel(Image_Entry *ie __UNUSED__,
543} 565}
544 566
545Eina_Bool 567Eina_Bool
546read_psd_grey(Image_Entry *ie, PSD_Header *head, FILE * f, int *error) 568read_psd_grey(Image_Entry *ie, PSD_Header *head, const unsigned char *map, size_t length, size_t *position, int *error)
547{ 569{
548 unsigned int color_mode, resource_size, misc_info; 570 unsigned int color_mode, resource_size, misc_info;
549 unsigned short compressed; 571 unsigned short compressed;
@@ -552,22 +574,21 @@ read_psd_grey(Image_Entry *ie, PSD_Header *head, FILE * f, int *error)
552 574
553 *error = EVAS_LOAD_ERROR_CORRUPT_FILE; 575 *error = EVAS_LOAD_ERROR_CORRUPT_FILE;
554 576
555#define CHECK_RET(Call, Value) \ 577#define CHECK_RET(Call) \
556 if (Call != Value) return EINA_FALSE; 578 if (!Call) return EINA_FALSE;
557 579
558 CHECK_RET(read_uint(f, &color_mode), 1); 580 CHECK_RET(read_uint(map, length, position, &color_mode));
559 // Skip over the 'color mode data section' 581 // Skip over the 'color mode data section'
560 CHECK_RET(fseek(f, color_mode, SEEK_CUR), 0); 582 *position += color_mode;
561 583
562 CHECK_RET(read_uint(f, &resource_size), 1); 584 CHECK_RET(read_uint(map, length, position, &resource_size));
563 // Read the 'image resources section' 585 // Read the 'image resources section'
586 *position += resource_size;
564 587
565 CHECK_RET(fseek(f, resource_size, SEEK_CUR), 0); 588 CHECK_RET(read_uint(map, length, position, &misc_info));
589 *position += misc_info;
566 590
567 CHECK_RET(read_uint(f, &misc_info), 1); 591 CHECK_RET(read_ushort(map, length, position, &compressed));
568 CHECK_RET(fseek(f, misc_info, SEEK_CUR), 0);
569
570 CHECK_RET(read_ushort(f, &compressed), 1);
571 592
572 ie->w = head->width; 593 ie->w = head->width;
573 ie->h = head->height; 594 ie->h = head->height;
@@ -599,7 +620,7 @@ read_psd_grey(Image_Entry *ie, PSD_Header *head, FILE * f, int *error)
599 goto cleanup_error; 620 goto cleanup_error;
600 } 621 }
601 622
602 if (!psd_get_data(ie, head, f, surface, compressed, error)) 623 if (!psd_get_data(ie, head, map, length, position, surface, compressed, error))
603 goto cleanup_error; 624 goto cleanup_error;
604 625
605 return EINA_TRUE; 626 return EINA_TRUE;
@@ -612,7 +633,7 @@ read_psd_grey(Image_Entry *ie, PSD_Header *head, FILE * f, int *error)
612 633
613 634
614Eina_Bool 635Eina_Bool
615read_psd_indexed(Image_Entry *ie, PSD_Header *head, FILE * f, int *error) 636read_psd_indexed(Image_Entry *ie, PSD_Header *head, const unsigned char *map, size_t length, size_t *position, int *error)
616{ 637{
617 unsigned int color_mode, resource_size, misc_info; 638 unsigned int color_mode, resource_size, misc_info;
618 unsigned short compressed; 639 unsigned short compressed;
@@ -620,11 +641,11 @@ read_psd_indexed(Image_Entry *ie, PSD_Header *head, FILE * f, int *error)
620 641
621 *error = EVAS_LOAD_ERROR_CORRUPT_FILE; 642 *error = EVAS_LOAD_ERROR_CORRUPT_FILE;
622 643
623#define CHECK_RET(Call, Value) \ 644#define CHECK_RET(Call) \
624 if (Call != Value) return EINA_FALSE; 645 if (!(Call)) return EINA_FALSE;
625 646
626 CHECK_RET(read_uint(f, &color_mode), 1); 647 CHECK_RET(read_uint(map, length, position, &color_mode));
627 CHECK_RET((color_mode % 3), 0); 648 CHECK_RET(!(color_mode % 3));
628 /* 649 /*
629 Palette = (unsigned char*)malloc(Colormode); 650 Palette = (unsigned char*)malloc(Colormode);
630 if (Palette == NULL) 651 if (Palette == NULL)
@@ -633,16 +654,16 @@ read_psd_indexed(Image_Entry *ie, PSD_Header *head, FILE * f, int *error)
633 goto cleanup_error; 654 goto cleanup_error;
634 */ 655 */
635 // Skip over the 'color mode data section' 656 // Skip over the 'color mode data section'
636 CHECK_RET(fseek(f, color_mode, SEEK_CUR), 0); 657 *position += color_mode;
637 658
638 // Read the 'image resources section' 659 // Read the 'image resources section'
639 CHECK_RET(read_uint(f, &resource_size), 1); 660 CHECK_RET(read_uint(map, length, position, &resource_size));
640 CHECK_RET(fseek(f, resource_size, SEEK_CUR), 0); 661 *position += resource_size;
641 662
642 CHECK_RET(read_uint(f, &misc_info), 1); 663 CHECK_RET(read_uint(map, length, position, &misc_info));
643 CHECK_RET(fseek(f, misc_info, SEEK_CUR), 0); 664 *position += misc_info;
644 665
645 CHECK_RET(read_ushort(f, &compressed), 1); 666 CHECK_RET(read_ushort(map, length, position, &compressed));
646 667
647 if (head->channels != 1 || head->depth != 8) 668 if (head->channels != 1 || head->depth != 8)
648 { 669 {
@@ -664,7 +685,7 @@ read_psd_indexed(Image_Entry *ie, PSD_Header *head, FILE * f, int *error)
664 return EINA_FALSE; 685 return EINA_FALSE;
665 } 686 }
666 687
667 if (!psd_get_data(ie, head, f, surface, compressed, error)) 688 if (!psd_get_data(ie, head, map, length, position, surface, compressed, error))
668 return EINA_FALSE; 689 return EINA_FALSE;
669 return EINA_TRUE; 690 return EINA_TRUE;
670 691
@@ -672,28 +693,28 @@ read_psd_indexed(Image_Entry *ie, PSD_Header *head, FILE * f, int *error)
672} 693}
673 694
674Eina_Bool 695Eina_Bool
675read_psd_rgb(Image_Entry *ie, PSD_Header *head, FILE *f, int *error) 696read_psd_rgb(Image_Entry *ie, PSD_Header *head, const unsigned char *map, size_t length, size_t *position, int *error)
676{ 697{
677 unsigned int color_mode, resource_size, misc_info; 698 unsigned int color_mode, resource_size, misc_info;
678 unsigned short compressed; 699 unsigned short compressed;
679 unsigned int type; 700 unsigned int type;
680 void *surface; 701 void *surface;
681 702
682#define CHECK_RET(Call, Value) \ 703#define CHECK_RET(Call) \
683 if (Call != Value) return EINA_FALSE; 704 if (!Call) return EINA_FALSE;
684 705
685 CHECK_RET(read_uint(f, &color_mode), 1); 706 CHECK_RET(read_uint(map, length, position, &color_mode));
686 // Skip over the 'color mode data section' 707 // Skip over the 'color mode data section'
687 CHECK_RET(fseek(f, color_mode, SEEK_CUR), 0); 708 *position += color_mode;
688 709
689 // Read the 'image resources section' 710 // Read the 'image resources section'
690 CHECK_RET(read_uint(f, &resource_size), 1); 711 CHECK_RET(read_uint(map, length, position, &resource_size));
691 CHECK_RET(fseek(f, resource_size, SEEK_CUR), 0); 712 *position += resource_size;
692 713
693 CHECK_RET(read_uint(f, &misc_info), 1); 714 CHECK_RET(read_uint(map, length, position, &misc_info));
694 CHECK_RET(fseek(f, misc_info, SEEK_CUR), 0); 715 *position += misc_info;
695 716
696 CHECK_RET(read_ushort(f, &compressed), 1); 717 CHECK_RET(read_ushort(map, length, position, &compressed));
697 718
698 head->channel_num = head->channels; 719 head->channel_num = head->channels;
699 720
@@ -722,7 +743,7 @@ read_psd_rgb(Image_Entry *ie, PSD_Header *head, FILE *f, int *error)
722 goto cleanup_error; 743 goto cleanup_error;
723 } 744 }
724 745
725 if (!psd_get_data(ie, head, f, surface, compressed, error)) 746 if (!psd_get_data(ie, head, map, length, position, surface, compressed, error))
726 goto cleanup_error; 747 goto cleanup_error;
727 748
728 evas_common_image_premul(ie); 749 evas_common_image_premul(ie);
@@ -735,7 +756,7 @@ read_psd_rgb(Image_Entry *ie, PSD_Header *head, FILE *f, int *error)
735} 756}
736 757
737Eina_Bool 758Eina_Bool
738read_psd_cmyk(Image_Entry *ie, PSD_Header *head, FILE *f, int *error) 759read_psd_cmyk(Image_Entry *ie, PSD_Header *head, const unsigned char *map, size_t length, size_t *position, int *error)
739{ 760{
740 unsigned int color_mode, resource_size, misc_info, size, i, j, data_size; 761 unsigned int color_mode, resource_size, misc_info, size, i, j, data_size;
741 unsigned short compressed; 762 unsigned short compressed;
@@ -745,21 +766,21 @@ read_psd_cmyk(Image_Entry *ie, PSD_Header *head, FILE *f, int *error)
745 766
746 *error = EVAS_LOAD_ERROR_CORRUPT_FILE; 767 *error = EVAS_LOAD_ERROR_CORRUPT_FILE;
747 768
748#define CHECK_RET(Call, Value) \ 769#define CHECK_RET(Call) \
749 if (Call != Value) return EINA_FALSE; 770 if (!Call) return EINA_FALSE;
750 771
751 CHECK_RET(read_uint(f, &color_mode), 1); 772 CHECK_RET(read_uint(map, length, position, &color_mode));
752 // Skip over the 'color mode data section' 773 // Skip over the 'color mode data section'
753 CHECK_RET(fseek(f, color_mode, SEEK_CUR), 0); 774 *position += color_mode;
754 775
755 CHECK_RET(read_uint(f, &resource_size), 1); 776 CHECK_RET(read_uint(map, length, position, &resource_size));
756 // Read the 'image resources section' 777 // Read the 'image resources section'
757 CHECK_RET(fseek(f, resource_size, SEEK_CUR), 0); 778 *position += resource_size;
758 779
759 CHECK_RET(read_uint(f, &misc_info), 1); 780 CHECK_RET(read_uint(map, length, position, &misc_info));
760 CHECK_RET(fseek(f, misc_info, SEEK_CUR), 0); 781 *position += misc_info;
761 782
762 CHECK_RET(read_ushort(f, &compressed), 1); 783 CHECK_RET(read_ushort(map, length, position, &compressed));
763 784
764 switch (head->channels) 785 switch (head->channels)
765 { 786 {
@@ -804,14 +825,14 @@ read_psd_cmyk(Image_Entry *ie, PSD_Header *head, FILE *f, int *error)
804 goto cleanup_error; 825 goto cleanup_error;
805 } 826 }
806 827
807 if (!psd_get_data(ie, head, f, surface, compressed, error)) 828 if (!psd_get_data(ie, head, map, length, position, surface, compressed, error))
808 goto cleanup_error; 829 goto cleanup_error;
809 830
810 size = type * ie->w * ie->h; 831 size = type * ie->w * ie->h;
811 kchannel = malloc(size); 832 kchannel = malloc(size);
812 if (kchannel == NULL) 833 if (kchannel == NULL)
813 goto cleanup_error; 834 goto cleanup_error;
814 if (!get_single_channel(ie, head, f, kchannel, compressed)) 835 if (!get_single_channel(ie, head, map, length, position, kchannel, compressed))
815 goto cleanup_error; 836 goto cleanup_error;
816 837
817 data_size = head->channels * type * ie->w * ie->h; 838 data_size = head->channels * type * ie->w * ie->h;
@@ -861,20 +882,34 @@ evas_image_load_file_data_psd(Image_Entry *ie,
861 const char *key __UNUSED__, 882 const char *key __UNUSED__,
862 int *error) 883 int *error)
863{ 884{
864 FILE *f; 885 Eina_File *f;
886 void *map;
887 size_t length;
888 size_t position;
865 PSD_Header header; 889 PSD_Header header;
866 Eina_Bool bpsd = EINA_FALSE; 890 Eina_Bool bpsd = EINA_FALSE;
867 891
868 f = fopen(file, "rb"); 892 f = eina_file_open(file, 0);
869 if (f == NULL) 893 if (f == NULL)
870 { 894 {
871 *error = EVAS_LOAD_ERROR_DOES_NOT_EXIST; 895 *error = EVAS_LOAD_ERROR_DOES_NOT_EXIST;
872 return bpsd; 896 return bpsd;
873 } 897 }
874 898
875 if (!psd_get_header(&header, f) || !is_psd(&header)) 899 map = eina_file_map_all(f, EINA_FILE_SEQUENTIAL);
900 length = eina_file_size_get(f);
901 position = 0;
902 if (!map || length < 1)
903 {
904 eina_file_close(f);
905 *error = EVAS_LOAD_ERROR_CORRUPT_FILE;
906 return EINA_FALSE;
907 }
908
909 if (!psd_get_header(&header, map, length, &position) || !is_psd(&header))
876 { 910 {
877 fclose(f); 911 eina_file_map_free(f, map);
912 eina_file_close(f);
878 *error = EVAS_LOAD_ERROR_GENERIC; 913 *error = EVAS_LOAD_ERROR_GENERIC;
879 return EINA_FALSE; 914 return EINA_FALSE;
880 } 915 }
@@ -887,39 +922,39 @@ evas_image_load_file_data_psd(Image_Entry *ie,
887 switch (header.mode) 922 switch (header.mode)
888 { 923 {
889 case PSD_GREYSCALE: // Greyscale 924 case PSD_GREYSCALE: // Greyscale
890 bpsd = read_psd_grey(ie, &header, f, error); 925 bpsd = read_psd_grey(ie, &header, map, length, &position, error);
891 break; 926 break;
892 case PSD_INDEXED: // Indexed 927 case PSD_INDEXED: // Indexed
893 bpsd = read_psd_indexed(ie, &header, f, error); 928 bpsd = read_psd_indexed(ie, &header, map, length, &position, error);
894 break; 929 break;
895 case PSD_RGB: // RGB 930 case PSD_RGB: // RGB
896 bpsd = read_psd_rgb(ie, &header, f, error); 931 bpsd = read_psd_rgb(ie, &header, map, length, &position, error);
897 break; 932 break;
898 case PSD_CMYK: // CMYK 933 case PSD_CMYK: // CMYK
899 bpsd = read_psd_cmyk(ie, &header, f, error); 934 bpsd = read_psd_cmyk(ie, &header, map, length, &position, error);
900 break; 935 break;
901 default : 936 default :
902 *error = EVAS_LOAD_ERROR_UNKNOWN_FORMAT; 937 *error = EVAS_LOAD_ERROR_UNKNOWN_FORMAT;
903 bpsd = EINA_FALSE; 938 bpsd = EINA_FALSE;
904 } 939 }
905 fclose(f); 940
941 eina_file_map_free(f, map);
942 eina_file_close(f);
906 943
907 return bpsd; 944 return bpsd;
908} 945}
909 946
910static Eina_Bool 947static Eina_Bool
911get_compressed_channels_length(PSD_Header *head, 948get_compressed_channels_length(PSD_Header *head,
912 FILE * file, 949 const unsigned char *map, size_t length, size_t *position,
913 unsigned short *rle_table, 950 unsigned short *rle_table,
914 unsigned int *chanlen) 951 unsigned int *chanlen)
915{ 952{
916 unsigned int j; 953 unsigned int j;
917 unsigned int c; 954 unsigned int c;
918 955
919 if (fread(rle_table, 956 if (!read_block(map, length, position, rle_table,
920 sizeof(unsigned short), 957 sizeof (unsigned short) * head->height * head->channel_num))
921 head->height * head->channel_num,
922 file) != head->height * head->channel_num)
923 return EINA_FALSE; 958 return EINA_FALSE;
924 959
925 memset(chanlen, 0, head->channel_num * sizeof(unsigned int)); 960 memset(chanlen, 0, head->channel_num * sizeof(unsigned int));
@@ -941,7 +976,8 @@ static const Evas_Image_Load_Func evas_image_load_psd_func = {
941 EINA_TRUE, 976 EINA_TRUE,
942 evas_image_load_file_head_psd, 977 evas_image_load_file_head_psd,
943 evas_image_load_file_data_psd, 978 evas_image_load_file_data_psd,
944 NULL 979 NULL,
980 EINA_FALSE
945}; 981};
946 982
947static int 983static int
diff --git a/libraries/evas/src/modules/loaders/svg/Makefile.in b/libraries/evas/src/modules/loaders/svg/Makefile.in
index f81a3c3..b742842 100644
--- a/libraries/evas/src/modules/loaders/svg/Makefile.in
+++ b/libraries/evas/src/modules/loaders/svg/Makefile.in
@@ -231,8 +231,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
232PIXMAN_LIBS = @PIXMAN_LIBS@ 232PIXMAN_LIBS = @PIXMAN_LIBS@
233PKG_CONFIG = @PKG_CONFIG@ 233PKG_CONFIG = @PKG_CONFIG@
234PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
235PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
236PNG_CFLAGS = @PNG_CFLAGS@ 234PNG_CFLAGS = @PNG_CFLAGS@
237PNG_LIBS = @PNG_LIBS@ 235PNG_LIBS = @PNG_LIBS@
238RANLIB = @RANLIB@ 236RANLIB = @RANLIB@
@@ -249,6 +247,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
249VALGRIND_LIBS = @VALGRIND_LIBS@ 247VALGRIND_LIBS = @VALGRIND_LIBS@
250VERSION = @VERSION@ 248VERSION = @VERSION@
251VMAJ = @VMAJ@ 249VMAJ = @VMAJ@
250WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
251WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
252WIN32_CFLAGS = @WIN32_CFLAGS@ 252WIN32_CFLAGS = @WIN32_CFLAGS@
253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
254XCB_CFLAGS = @XCB_CFLAGS@ 254XCB_CFLAGS = @XCB_CFLAGS@
@@ -330,6 +330,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
333evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
334evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
335evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
336evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
333evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 337evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
334evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 338evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
335evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 339evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/loaders/svg/evas_image_load_svg.c b/libraries/evas/src/modules/loaders/svg/evas_image_load_svg.c
index f1c8452..dc0fc8d 100644
--- a/libraries/evas/src/modules/loaders/svg/evas_image_load_svg.c
+++ b/libraries/evas/src/modules/loaders/svg/evas_image_load_svg.c
@@ -13,7 +13,8 @@ Evas_Image_Load_Func evas_image_load_svg_func =
13 EINA_FALSE, 13 EINA_FALSE,
14 evas_image_load_file_head_svg, 14 evas_image_load_file_head_svg,
15 evas_image_load_file_data_svg, 15 evas_image_load_file_data_svg,
16 NULL 16 NULL,
17 EINA_FALSE
17}; 18};
18 19
19static int rsvg_initialized = 0; 20static int rsvg_initialized = 0;
diff --git a/libraries/evas/src/modules/loaders/tga/Makefile.in b/libraries/evas/src/modules/loaders/tga/Makefile.in
index 645c77a..4d822d1 100644
--- a/libraries/evas/src/modules/loaders/tga/Makefile.in
+++ b/libraries/evas/src/modules/loaders/tga/Makefile.in
@@ -231,8 +231,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
232PIXMAN_LIBS = @PIXMAN_LIBS@ 232PIXMAN_LIBS = @PIXMAN_LIBS@
233PKG_CONFIG = @PKG_CONFIG@ 233PKG_CONFIG = @PKG_CONFIG@
234PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
235PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
236PNG_CFLAGS = @PNG_CFLAGS@ 234PNG_CFLAGS = @PNG_CFLAGS@
237PNG_LIBS = @PNG_LIBS@ 235PNG_LIBS = @PNG_LIBS@
238RANLIB = @RANLIB@ 236RANLIB = @RANLIB@
@@ -249,6 +247,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
249VALGRIND_LIBS = @VALGRIND_LIBS@ 247VALGRIND_LIBS = @VALGRIND_LIBS@
250VERSION = @VERSION@ 248VERSION = @VERSION@
251VMAJ = @VMAJ@ 249VMAJ = @VMAJ@
250WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
251WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
252WIN32_CFLAGS = @WIN32_CFLAGS@ 252WIN32_CFLAGS = @WIN32_CFLAGS@
253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
254XCB_CFLAGS = @XCB_CFLAGS@ 254XCB_CFLAGS = @XCB_CFLAGS@
@@ -330,6 +330,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
333evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
334evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
335evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
336evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
333evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 337evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
334evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 338evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
335evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 339evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/loaders/tga/evas_image_load_tga.c b/libraries/evas/src/modules/loaders/tga/evas_image_load_tga.c
index 61b99f6..9b4073c 100644
--- a/libraries/evas/src/modules/loaders/tga/evas_image_load_tga.c
+++ b/libraries/evas/src/modules/loaders/tga/evas_image_load_tga.c
@@ -65,7 +65,8 @@ static Evas_Image_Load_Func evas_image_load_tga_func =
65 EINA_TRUE, 65 EINA_TRUE,
66 evas_image_load_file_head_tga, 66 evas_image_load_file_head_tga,
67 evas_image_load_file_data_tga, 67 evas_image_load_file_data_tga,
68 NULL 68 NULL,
69 EINA_FALSE
69}; 70};
70 71
71static Eina_Bool 72static Eina_Bool
diff --git a/libraries/evas/src/modules/loaders/tiff/Makefile.in b/libraries/evas/src/modules/loaders/tiff/Makefile.in
index a2deea7..2b102a1 100644
--- a/libraries/evas/src/modules/loaders/tiff/Makefile.in
+++ b/libraries/evas/src/modules/loaders/tiff/Makefile.in
@@ -231,8 +231,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
232PIXMAN_LIBS = @PIXMAN_LIBS@ 232PIXMAN_LIBS = @PIXMAN_LIBS@
233PKG_CONFIG = @PKG_CONFIG@ 233PKG_CONFIG = @PKG_CONFIG@
234PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
235PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
236PNG_CFLAGS = @PNG_CFLAGS@ 234PNG_CFLAGS = @PNG_CFLAGS@
237PNG_LIBS = @PNG_LIBS@ 235PNG_LIBS = @PNG_LIBS@
238RANLIB = @RANLIB@ 236RANLIB = @RANLIB@
@@ -249,6 +247,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
249VALGRIND_LIBS = @VALGRIND_LIBS@ 247VALGRIND_LIBS = @VALGRIND_LIBS@
250VERSION = @VERSION@ 248VERSION = @VERSION@
251VMAJ = @VMAJ@ 249VMAJ = @VMAJ@
250WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
251WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
252WIN32_CFLAGS = @WIN32_CFLAGS@ 252WIN32_CFLAGS = @WIN32_CFLAGS@
253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
254XCB_CFLAGS = @XCB_CFLAGS@ 254XCB_CFLAGS = @XCB_CFLAGS@
@@ -330,6 +330,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
333evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
334evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
335evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
336evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
333evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 337evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
334evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 338evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
335evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 339evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/loaders/tiff/evas_image_load_tiff.c b/libraries/evas/src/modules/loaders/tiff/evas_image_load_tiff.c
index b9bea91..e17d5a6 100644
--- a/libraries/evas/src/modules/loaders/tiff/evas_image_load_tiff.c
+++ b/libraries/evas/src/modules/loaders/tiff/evas_image_load_tiff.c
@@ -34,7 +34,8 @@ static Evas_Image_Load_Func evas_image_load_tiff_func =
34 EINA_TRUE, 34 EINA_TRUE,
35 evas_image_load_file_head_tiff, 35 evas_image_load_file_head_tiff,
36 evas_image_load_file_data_tiff, 36 evas_image_load_file_data_tiff,
37 NULL 37 NULL,
38 EINA_FALSE
38}; 39};
39 40
40typedef struct TIFFRGBAImage_Extra TIFFRGBAImage_Extra; 41typedef struct TIFFRGBAImage_Extra TIFFRGBAImage_Extra;
diff --git a/libraries/evas/src/modules/loaders/wbmp/Makefile.in b/libraries/evas/src/modules/loaders/wbmp/Makefile.in
index 41a3bb9..5c01e1c 100644
--- a/libraries/evas/src/modules/loaders/wbmp/Makefile.in
+++ b/libraries/evas/src/modules/loaders/wbmp/Makefile.in
@@ -231,8 +231,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
232PIXMAN_LIBS = @PIXMAN_LIBS@ 232PIXMAN_LIBS = @PIXMAN_LIBS@
233PKG_CONFIG = @PKG_CONFIG@ 233PKG_CONFIG = @PKG_CONFIG@
234PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
235PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
236PNG_CFLAGS = @PNG_CFLAGS@ 234PNG_CFLAGS = @PNG_CFLAGS@
237PNG_LIBS = @PNG_LIBS@ 235PNG_LIBS = @PNG_LIBS@
238RANLIB = @RANLIB@ 236RANLIB = @RANLIB@
@@ -249,6 +247,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
249VALGRIND_LIBS = @VALGRIND_LIBS@ 247VALGRIND_LIBS = @VALGRIND_LIBS@
250VERSION = @VERSION@ 248VERSION = @VERSION@
251VMAJ = @VMAJ@ 249VMAJ = @VMAJ@
250WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
251WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
252WIN32_CFLAGS = @WIN32_CFLAGS@ 252WIN32_CFLAGS = @WIN32_CFLAGS@
253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
254XCB_CFLAGS = @XCB_CFLAGS@ 254XCB_CFLAGS = @XCB_CFLAGS@
@@ -330,6 +330,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
333evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
334evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
335evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
336evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
333evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 337evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
334evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 338evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
335evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 339evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/loaders/wbmp/evas_image_load_wbmp.c b/libraries/evas/src/modules/loaders/wbmp/evas_image_load_wbmp.c
index fa6fab2..54e28d5 100644
--- a/libraries/evas/src/modules/loaders/wbmp/evas_image_load_wbmp.c
+++ b/libraries/evas/src/modules/loaders/wbmp/evas_image_load_wbmp.c
@@ -19,21 +19,22 @@ static Evas_Image_Load_Func evas_image_load_wbmp_func =
19 EINA_TRUE, 19 EINA_TRUE,
20 evas_image_load_file_head_wbmp, 20 evas_image_load_file_head_wbmp,
21 evas_image_load_file_data_wbmp, 21 evas_image_load_file_data_wbmp,
22 NULL 22 NULL,
23 EINA_FALSE
23}; 24};
24 25
25 26
26static int 27static int
27read_mb(unsigned int *data, FILE *f) 28read_mb(unsigned int *data, void *map, size_t length, size_t *position)
28{ 29{
29 int ac = 0, ct; 30 int ac = 0, ct;
30 unsigned char buf; 31 unsigned char buf;
31 32
32 for (ct = 0;;) 33 for (ct = 0;;)
33 { 34 {
34 if ((ct++) == 5) return -1; 35 if ((ct++) == 5) return -1;
35 if ((fread(&buf, 1, 1, f)) < 1) 36 if (*position > length) return -1;
36 return -1; 37 buf = ((unsigned char *) map)[(*position)++];
37 ac = (ac << 7) | (buf & 0x7f); 38 ac = (ac << 7) | (buf & 0x7f);
38 if ((buf & 0x80) == 0) break; 39 if ((buf & 0x80) == 0) break;
39 } 40 }
@@ -44,70 +45,105 @@ read_mb(unsigned int *data, FILE *f)
44static Eina_Bool 45static Eina_Bool
45evas_image_load_file_head_wbmp(Image_Entry *ie, const char *file, const char *key __UNUSED__, int *error) 46evas_image_load_file_head_wbmp(Image_Entry *ie, const char *file, const char *key __UNUSED__, int *error)
46{ 47{
47 FILE *f; 48 Eina_File *f;
49 void *map = NULL;
50 size_t position = 0;
51 size_t length;
48 unsigned int type, w, h; 52 unsigned int type, w, h;
49 unsigned char fixed_header; 53
50 struct stat statbuf;
51
52 *error = EVAS_LOAD_ERROR_GENERIC; 54 *error = EVAS_LOAD_ERROR_GENERIC;
53 f = fopen(file, "rb"); 55 f = eina_file_open(file, 0);
54 if (!f) 56 if (!f)
55 { 57 {
56 *error = EVAS_LOAD_ERROR_DOES_NOT_EXIST; 58 *error = EVAS_LOAD_ERROR_DOES_NOT_EXIST;
57 return EINA_FALSE; 59 return EINA_FALSE;
58 } 60 }
59 61
60 if (stat(file, &statbuf) == -1) goto bail; 62 length = eina_file_size_get(f);
61 if (read_mb(&type, f) < 0) goto bail; 63 if (length <= 4) goto bail;
62 64
65 map = eina_file_map_all(f, EINA_FILE_SEQUENTIAL);
66 if (!map) goto bail;
67
68 if (read_mb(&type, map, length, &position) < 0) goto bail;
69
63 if (type != 0) 70 if (type != 0)
64 { 71 {
65 *error = EVAS_LOAD_ERROR_UNKNOWN_FORMAT; 72 *error = EVAS_LOAD_ERROR_UNKNOWN_FORMAT;
66 goto bail; 73 goto bail;
67 } 74 }
68 75
69 if (fread(&fixed_header, 1, 1, f) != 1) goto bail; 76 position++; /* skipping one byte */
70 if (read_mb(&w, f) < 0) goto bail; 77 if (read_mb(&w, map, length, &position) < 0) goto bail;
71 if (read_mb(&h, f) < 0) goto bail; 78 if (read_mb(&h, map, length, &position) < 0) goto bail;
72 if ((w < 1) || (h < 1) || (w > IMG_MAX_SIZE) || (h > IMG_MAX_SIZE) || 79 if ((w < 1) || (h < 1) || (w > IMG_MAX_SIZE) || (h > IMG_MAX_SIZE) ||
73 IMG_TOO_BIG(w, h)) 80 IMG_TOO_BIG(w, h))
74 { 81 {
75 *error = EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED; 82 *error = EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED;
76 goto bail; 83 goto bail;
77 } 84 }
78 85
79 fclose(f); 86 eina_file_map_free(f, map);
87 eina_file_close(f);
80 ie->w = w; 88 ie->w = w;
81 ie->h = h; 89 ie->h = h;
82 90
83 *error = EVAS_LOAD_ERROR_NONE; 91 *error = EVAS_LOAD_ERROR_NONE;
84 return EINA_TRUE; 92 return EINA_TRUE;
85bail: 93bail:
86 fclose(f); 94 if (map) eina_file_map_free(f, map);
95 eina_file_close(f);
87 return EINA_FALSE; 96 return EINA_FALSE;
88} 97}
89 98
90static Eina_Bool 99static Eina_Bool
91evas_image_load_file_data_wbmp(Image_Entry *ie, const char *file, const char *key __UNUSED__, int *error) 100evas_image_load_file_data_wbmp(Image_Entry *ie, const char *file, const char *key __UNUSED__, int *error)
92{ 101{
93 FILE *f; 102 Eina_File *f;
94 unsigned int dummy, line_length; 103 void *map = NULL;
104 size_t position = 0;
105 size_t length;
106 unsigned int type, w, h;
107 unsigned int line_length;
95 unsigned char *line = NULL; 108 unsigned char *line = NULL;
96 int cur = 0, x, y; 109 int cur = 0, x, y;
97 DATA32 *dst_data; 110 DATA32 *dst_data;
98 111
99 *error = EVAS_LOAD_ERROR_GENERIC; 112 *error = EVAS_LOAD_ERROR_GENERIC;
100 f = fopen(file, "rb"); 113 f = eina_file_open(file, EINA_FALSE);
101 if (!f) 114 if (!f)
102 { 115 {
103 *error = EVAS_LOAD_ERROR_DOES_NOT_EXIST; 116 *error = EVAS_LOAD_ERROR_DOES_NOT_EXIST;
104 return EINA_FALSE; 117 return EINA_FALSE;
105 } 118 }
106 if (read_mb(&dummy, f) < 0) goto bail; 119
107 if (fread(&dummy, 1, 1, f) != 1) goto bail; 120 length = eina_file_size_get(f);
108 if (read_mb(&dummy, f) < 0) goto bail; 121 if (length <= 4) goto bail;
109 if (read_mb(&dummy, f) < 0) goto bail; 122
110 123 map = eina_file_map_all(f, EINA_FILE_SEQUENTIAL);
124 if (!map) goto bail;
125
126 if (read_mb(&type, map, length, &position) < 0) goto bail;
127 position++; /* skipping one byte */
128 if (read_mb(&w, map, length, &position) < 0) goto bail;
129 if (read_mb(&h, map, length, &position) < 0) goto bail;
130
131 if (type != 0)
132 {
133 *error = EVAS_LOAD_ERROR_UNKNOWN_FORMAT;
134 goto bail;
135 }
136
137 if ((w < 1) || (h < 1) || (w > IMG_MAX_SIZE) || (h > IMG_MAX_SIZE) ||
138 IMG_TOO_BIG(w, h))
139 {
140 *error = EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED;
141 goto bail;
142 }
143
144 ie->w = w;
145 ie->h = h;
146
111 evas_cache_image_surface_alloc(ie, ie->w, ie->h); 147 evas_cache_image_surface_alloc(ie, ie->w, ie->h);
112 dst_data = evas_cache_image_pixels(ie); 148 dst_data = evas_cache_image_pixels(ie);
113 if (!dst_data) 149 if (!dst_data)
@@ -115,13 +151,14 @@ evas_image_load_file_data_wbmp(Image_Entry *ie, const char *file, const char *ke
115 *error = EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED; 151 *error = EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED;
116 goto bail; 152 goto bail;
117 } 153 }
118 154
119 line_length = (ie->w + 7) >> 3; 155 line_length = (ie->w + 7) >> 3;
120 line = alloca(line_length); 156
121
122 for (y = 0; y < (int)ie->h; y++) 157 for (y = 0; y < (int)ie->h; y++)
123 { 158 {
124 if (fread(line, 1, line_length, f) != line_length) goto bail; 159 if (position + line_length > length) goto bail;
160 line = ((unsigned char*) map) + position;
161 position += line_length;
125 for (x = 0; x < (int)ie->w; x++) 162 for (x = 0; x < (int)ie->w; x++)
126 { 163 {
127 int idx = x >> 3; 164 int idx = x >> 3;
@@ -131,11 +168,13 @@ evas_image_load_file_data_wbmp(Image_Entry *ie, const char *file, const char *ke
131 cur++; 168 cur++;
132 } 169 }
133 } 170 }
134 fclose(f); 171 eina_file_map_free(f, map);
172 eina_file_close(f);
135 *error = EVAS_LOAD_ERROR_NONE; 173 *error = EVAS_LOAD_ERROR_NONE;
136 return EINA_TRUE; 174 return EINA_TRUE;
137bail: 175bail:
138 fclose(f); 176 if (map) eina_file_map_free(f, map);
177 eina_file_close(f);
139 return EINA_FALSE; 178 return EINA_FALSE;
140} 179}
141 180
diff --git a/libraries/evas/src/modules/loaders/xpm/Makefile.in b/libraries/evas/src/modules/loaders/xpm/Makefile.in
index eba8f60..6383d9e 100644
--- a/libraries/evas/src/modules/loaders/xpm/Makefile.in
+++ b/libraries/evas/src/modules/loaders/xpm/Makefile.in
@@ -231,8 +231,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
232PIXMAN_LIBS = @PIXMAN_LIBS@ 232PIXMAN_LIBS = @PIXMAN_LIBS@
233PKG_CONFIG = @PKG_CONFIG@ 233PKG_CONFIG = @PKG_CONFIG@
234PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
235PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
236PNG_CFLAGS = @PNG_CFLAGS@ 234PNG_CFLAGS = @PNG_CFLAGS@
237PNG_LIBS = @PNG_LIBS@ 235PNG_LIBS = @PNG_LIBS@
238RANLIB = @RANLIB@ 236RANLIB = @RANLIB@
@@ -249,6 +247,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
249VALGRIND_LIBS = @VALGRIND_LIBS@ 247VALGRIND_LIBS = @VALGRIND_LIBS@
250VERSION = @VERSION@ 248VERSION = @VERSION@
251VMAJ = @VMAJ@ 249VMAJ = @VMAJ@
250WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
251WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
252WIN32_CFLAGS = @WIN32_CFLAGS@ 252WIN32_CFLAGS = @WIN32_CFLAGS@
253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
254XCB_CFLAGS = @XCB_CFLAGS@ 254XCB_CFLAGS = @XCB_CFLAGS@
@@ -330,6 +330,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
333evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
334evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
335evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
336evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
333evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 337evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
334evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 338evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
335evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 339evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/loaders/xpm/evas_image_load_xpm.c b/libraries/evas/src/modules/loaders/xpm/evas_image_load_xpm.c
index 3a04f84..c764f6d 100644
--- a/libraries/evas/src/modules/loaders/xpm/evas_image_load_xpm.c
+++ b/libraries/evas/src/modules/loaders/xpm/evas_image_load_xpm.c
@@ -24,16 +24,20 @@ static Evas_Image_Load_Func evas_image_load_xpm_func =
24 EINA_FALSE, 24 EINA_FALSE,
25 evas_image_load_file_head_xpm, 25 evas_image_load_file_head_xpm,
26 evas_image_load_file_data_xpm, 26 evas_image_load_file_data_xpm,
27 NULL 27 NULL,
28 EINA_FALSE
28}; 29};
29 30
30// TODO: REWRITE THIS WITH THREAD SAFE VERSION NOT USING THIS HANDLE!!!! 31static Eina_File *rgb_txt;
31static FILE *rgb_txt = NULL; 32static void *rgb_txt_map;
32 33
33static void 34static void
34xpm_parse_color(char *color, int *r, int *g, int *b) 35xpm_parse_color(char *color, int *r, int *g, int *b)
35{ 36{
36 char buf[4096]; 37 char *tmp;
38 char *max;
39 char *endline;
40 char buf[4096];
37 41
38 /* is a #ff00ff like color */ 42 /* is a #ff00ff like color */
39 if (color[0] == '#') 43 if (color[0] == '#')
@@ -75,20 +79,23 @@ xpm_parse_color(char *color, int *r, int *g, int *b)
75 return; 79 return;
76 } 80 }
77 /* look in rgb txt database */ 81 /* look in rgb txt database */
78 if (!rgb_txt) rgb_txt = fopen("/usr/lib/X11/rgb.txt", "r");
79 if (!rgb_txt) rgb_txt = fopen("/usr/X11/lib/X11/rgb.txt", "r");
80 if (!rgb_txt) rgb_txt = fopen("/usr/X11R6/lib/X11/rgb.txt", "r");
81 if (!rgb_txt) rgb_txt = fopen("/usr/openwin/lib/X11/rgb.txt", "r");
82 if (!rgb_txt) return; 82 if (!rgb_txt) return;
83 fseek(rgb_txt, 0, SEEK_SET); 83 tmp = rgb_txt_map;
84 while (fgets(buf, sizeof(buf), rgb_txt)) 84 max = tmp + eina_file_size_get(rgb_txt);
85
86 while (tmp < max)
85 { 87 {
86 buf[sizeof(buf) - 1] = 0; 88 endline = memchr(tmp, '\n', max - tmp);
87 if (buf[0] != '!') 89 if (!endline) endline = max;
90 if ((*tmp != '!') && ((endline - tmp) < (int) (sizeof(buf) - 1)))
88 { 91 {
89 int rr, gg, bb; 92 int rr, gg, bb;
90 char name[4096]; 93 char name[4096];
91 94
95 /* FIXME: not really efficient */
96 memcpy(buf, tmp, endline - tmp);
97 buf[endline - tmp + 1] = '\0';
98
92 if (sscanf(buf, "%i %i %i %[^\n]", &rr, &gg, &bb, name) == 4) 99 if (sscanf(buf, "%i %i %i %[^\n]", &rr, &gg, &bb, name) == 4)
93 { 100 {
94 if (!strcasecmp(name, color)) 101 if (!strcasecmp(name, color))
@@ -100,33 +107,30 @@ xpm_parse_color(char *color, int *r, int *g, int *b)
100 } 107 }
101 } 108 }
102 } 109 }
110 tmp = endline + 1;
103 } 111 }
104} 112}
105 113
106static void
107xpm_parse_done(void)
108{
109 if (rgb_txt) fclose(rgb_txt);
110 rgb_txt = NULL;
111}
112
113
114/** FIXME: clean this up and make more efficient **/ 114/** FIXME: clean this up and make more efficient **/
115static Eina_Bool 115static Eina_Bool
116evas_image_load_file_xpm(Image_Entry *ie, const char *file, const char *key __UNUSED__, int load_data, int *error) 116evas_image_load_file_xpm(Image_Entry *ie, const char *file, const char *key __UNUSED__, int load_data, int *error)
117{ 117{
118 DATA32 *ptr, *end; 118 DATA32 *ptr, *end;
119 FILE *f; 119 Eina_File *f;
120 const char *map;
121 size_t length;
122 size_t position;
120 123
121 int pc, c, i, j, k, w, h, ncolors, cpp, comment, transp, 124 int pc, c, i, j, k, w, h, ncolors, cpp, comment, transp,
122 quote, context, len, done, r, g, b, backslash, lu1, lu2; 125 quote, context, len, done, r, g, b, backslash, lu1, lu2;
123 char *line, s[256], tok[128], col[256], *tl; 126 char *line = NULL;
127 char s[256], tok[128], col[256], *tl;
124 int lsz = 256; 128 int lsz = 256;
125 struct _cmap { 129 struct _cmap {
126 char str[6]; 130 char str[6];
127 unsigned char transp; 131 unsigned char transp;
128 short r, g, b; 132 short r, g, b;
129 } *cmap; 133 } *cmap = NULL;
130 134
131 short lookup[128 - 32][128 - 32]; 135 short lookup[128 - 32][128 - 32];
132 int count, pixels; 136 int count, pixels;
@@ -138,30 +142,39 @@ evas_image_load_file_xpm(Image_Entry *ie, const char *file, const char *key __UN
138 /* if immediate_load is 1, then dont delay image laoding as below, or */ 142 /* if immediate_load is 1, then dont delay image laoding as below, or */
139 /* already data in this image - dont load it again */ 143 /* already data in this image - dont load it again */
140 144
141 f = fopen(file, "rb"); 145 f = eina_file_open(file, 0);
142 if (!f) 146 if (!f)
143 { 147 {
144 xpm_parse_done(); 148 ERR("XPM ERROR: file failed to open");
145 *error = EVAS_LOAD_ERROR_DOES_NOT_EXIST; 149 *error = EVAS_LOAD_ERROR_DOES_NOT_EXIST;
146 return EINA_FALSE; 150 return EINA_FALSE;
147 } 151 }
148 if (fread(s, 9, 1, f) != 1) 152 length = eina_file_size_get(f);
153 position = 0;
154 if (length < 9)
149 { 155 {
150 fclose(f); 156 ERR("XPM ERROR: file size, %i, is to small", length);
151 xpm_parse_done(); 157 eina_file_close(f);
152 *error = EVAS_LOAD_ERROR_CORRUPT_FILE; 158 *error = EVAS_LOAD_ERROR_CORRUPT_FILE;
153 return EINA_FALSE; 159 return EINA_FALSE;
154 } 160 }
155 rewind(f); 161
156 s[9] = 0; 162 map = eina_file_map_all(f, EINA_FILE_SEQUENTIAL);
157 if (strcmp("/* XPM */", s)) 163 if (!map)
158 { 164 {
159 fclose(f); 165 ERR("XPM ERROR: file failed to mmap");
160 xpm_parse_done(); 166 eina_file_close(f);
161 *error = EVAS_LOAD_ERROR_UNKNOWN_FORMAT; 167 *error = EVAS_LOAD_ERROR_CORRUPT_FILE;
162 return EINA_FALSE; 168 return EINA_FALSE;
163 } 169 }
164 170
171 if (strncmp("/* XPM */", map, 9))
172 {
173 ERR("XPM ERROR: header not found");
174 *error = EVAS_LOAD_ERROR_UNKNOWN_FORMAT;
175 goto on_error;
176 }
177
165 i = 0; 178 i = 0;
166 j = 0; 179 j = 0;
167 cmap = NULL; 180 cmap = NULL;
@@ -178,10 +191,8 @@ evas_image_load_file_xpm(Image_Entry *ie, const char *file, const char *key __UN
178 line = malloc(lsz); 191 line = malloc(lsz);
179 if (!line) 192 if (!line)
180 { 193 {
181 fclose(f);
182 xpm_parse_done();
183 *error = EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED; 194 *error = EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED;
184 return EINA_FALSE; 195 goto on_error;
185 } 196 }
186 197
187 backslash = 0; 198 backslash = 0;
@@ -189,8 +200,8 @@ evas_image_load_file_xpm(Image_Entry *ie, const char *file, const char *key __UN
189 while (!done) 200 while (!done)
190 { 201 {
191 pc = c; 202 pc = c;
192 c = fgetc(f); 203 if (position == length) break ;
193 if (c == EOF) break; 204 c = (char) map[position++];
194 if (!quote) 205 if (!quote)
195 { 206 {
196 if ((pc == '/') && (c == '*')) 207 if ((pc == '/') && (c == '*'))
@@ -215,56 +226,38 @@ evas_image_load_file_xpm(Image_Entry *ie, const char *file, const char *key __UN
215 if (sscanf(line, "%i %i %i %i", &w, &h, &ncolors, &cpp) != 4) 226 if (sscanf(line, "%i %i %i %i", &w, &h, &ncolors, &cpp) != 4)
216 { 227 {
217 ERR("XPM ERROR: XPM file malformed header"); 228 ERR("XPM ERROR: XPM file malformed header");
218 free(line);
219 fclose(f);
220 xpm_parse_done();
221 *error = EVAS_LOAD_ERROR_CORRUPT_FILE; 229 *error = EVAS_LOAD_ERROR_CORRUPT_FILE;
222 return EINA_FALSE; 230 goto on_error;
223 } 231 }
224 if ((ncolors > 32766) || (ncolors < 1)) 232 if ((ncolors > 32766) || (ncolors < 1))
225 { 233 {
226 ERR("XPM ERROR: XPM files with colors > 32766 or < 1 not supported"); 234 ERR("XPM ERROR: XPM files with colors > 32766 or < 1 not supported");
227 free(line);
228 fclose(f);
229 xpm_parse_done();
230 *error = EVAS_LOAD_ERROR_UNKNOWN_FORMAT; 235 *error = EVAS_LOAD_ERROR_UNKNOWN_FORMAT;
231 return EINA_FALSE; 236 goto on_error;
232 } 237 }
233 if ((cpp > 5) || (cpp < 1)) 238 if ((cpp > 5) || (cpp < 1))
234 { 239 {
235 ERR("XPM ERROR: XPM files with characters per pixel > 5 or < 1not supported"); 240 ERR("XPM ERROR: XPM files with characters per pixel > 5 or < 1not supported");
236 free(line);
237 fclose(f);
238 xpm_parse_done();
239 *error = EVAS_LOAD_ERROR_UNKNOWN_FORMAT; 241 *error = EVAS_LOAD_ERROR_UNKNOWN_FORMAT;
240 return EINA_FALSE; 242 goto on_error;
241 } 243 }
242 if ((w > IMG_MAX_SIZE) || (w < 1)) 244 if ((w > IMG_MAX_SIZE) || (w < 1))
243 { 245 {
244 ERR("XPM ERROR: Image width > IMG_MAX_SIZE or < 1 pixels for file"); 246 ERR("XPM ERROR: Image width > IMG_MAX_SIZE or < 1 pixels for file");
245 free(line);
246 fclose(f);
247 xpm_parse_done();
248 *error = EVAS_LOAD_ERROR_GENERIC; 247 *error = EVAS_LOAD_ERROR_GENERIC;
249 return EINA_FALSE; 248 goto on_error;
250 } 249 }
251 if ((h > IMG_MAX_SIZE) || (h < 1)) 250 if ((h > IMG_MAX_SIZE) || (h < 1))
252 { 251 {
253 ERR("XPM ERROR: Image height > IMG_MAX_SIZE or < 1 pixels for file"); 252 ERR("XPM ERROR: Image height > IMG_MAX_SIZE or < 1 pixels for file");
254 free(line);
255 fclose(f);
256 xpm_parse_done();
257 *error = EVAS_LOAD_ERROR_GENERIC; 253 *error = EVAS_LOAD_ERROR_GENERIC;
258 return EINA_FALSE; 254 goto on_error;
259 } 255 }
260 if (IMG_TOO_BIG(w, h)) 256 if (IMG_TOO_BIG(w, h))
261 { 257 {
262 ERR("XPM ERROR: Image just too big to ever allocate"); 258 ERR("XPM ERROR: Image just too big to ever allocate");
263 free(line);
264 fclose(f);
265 xpm_parse_done();
266 *error = EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED; 259 *error = EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED;
267 return EINA_FALSE; 260 goto on_error;
268 } 261 }
269 262
270 if (!cmap) 263 if (!cmap)
@@ -272,11 +265,8 @@ evas_image_load_file_xpm(Image_Entry *ie, const char *file, const char *key __UN
272 cmap = malloc(sizeof(struct _cmap) * ncolors); 265 cmap = malloc(sizeof(struct _cmap) * ncolors);
273 if (!cmap) 266 if (!cmap)
274 { 267 {
275 free(line);
276 fclose(f);
277 xpm_parse_done();
278 *error = EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED; 268 *error = EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED;
279 return EINA_FALSE; 269 goto on_error;
280 } 270 }
281 } 271 }
282 ie->w = w; 272 ie->w = w;
@@ -398,24 +388,16 @@ evas_image_load_file_xpm(Image_Entry *ie, const char *file, const char *key __UN
398 ptr = evas_cache_image_pixels(ie); 388 ptr = evas_cache_image_pixels(ie);
399 if (!ptr) 389 if (!ptr)
400 { 390 {
401 free(cmap);
402 free(line);
403 fclose(f);
404 xpm_parse_done();
405 *error = EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED; 391 *error = EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED;
406 return EINA_FALSE; 392 goto on_error;
407 } 393 }
408 pixels = w * h; 394 pixels = w * h;
409 end = ptr + pixels; 395 end = ptr + pixels;
410 } 396 }
411 else 397 else
412 { 398 {
413 free(cmap);
414 free(line);
415 fclose(f);
416 xpm_parse_done();
417 *error = EVAS_LOAD_ERROR_NONE; 399 *error = EVAS_LOAD_ERROR_NONE;
418 return EINA_TRUE; 400 goto on_success;
419 } 401 }
420 } 402 }
421 else 403 else
@@ -631,13 +613,21 @@ evas_image_load_file_xpm(Image_Entry *ie, const char *file, const char *key __UN
631 break; 613 break;
632 } 614 }
633 615
616 on_success:
634 free(cmap); 617 free(cmap);
635 free(line); 618 free(line);
636 fclose(f);
637 619
638 xpm_parse_done(); 620 eina_file_map_free(f, (void*) map);
621 eina_file_close(f);
622
639 *error = EVAS_LOAD_ERROR_NONE; 623 *error = EVAS_LOAD_ERROR_NONE;
640 return EINA_TRUE; 624 return EINA_TRUE;
625
626 on_error:
627 free(line);
628 eina_file_map_free(f, (void*) map);
629 eina_file_close(f);
630 return EINA_FALSE;
641} 631}
642 632
643static Eina_Bool 633static Eina_Bool
@@ -663,6 +653,14 @@ module_open(Evas_Module *em)
663 EINA_LOG_ERR("Can not create a module log domain."); 653 EINA_LOG_ERR("Can not create a module log domain.");
664 return 0; 654 return 0;
665 } 655 }
656
657 /* Shouldn't we make that PATH configurable ? */
658 rgb_txt = eina_file_open("/usr/lib/X11/rgb.txt", 0);
659 if (!rgb_txt) rgb_txt = eina_file_open("/usr/X11/lib/X11/rgb.txt", 0);
660 if (!rgb_txt) rgb_txt = eina_file_open("/usr/X11R6/lib/X11/rgb.txt", 0);
661 if (!rgb_txt) rgb_txt = eina_file_open("/usr/openwin/lib/X11/rgb.txt", 0);
662 if (rgb_txt)
663 rgb_txt_map = eina_file_map_all(rgb_txt, EINA_FILE_SEQUENTIAL);
666 em->functions = (void *)(&evas_image_load_xpm_func); 664 em->functions = (void *)(&evas_image_load_xpm_func);
667 return 1; 665 return 1;
668} 666}
@@ -670,6 +668,12 @@ module_open(Evas_Module *em)
670static void 668static void
671module_close(Evas_Module *em __UNUSED__) 669module_close(Evas_Module *em __UNUSED__)
672{ 670{
671 if (rgb_txt)
672 {
673 eina_file_map_free(rgb_txt, rgb_txt_map);
674 eina_file_close(rgb_txt);
675 rgb_txt = NULL;
676 }
673 eina_log_domain_unregister(_evas_loader_xpm_log_dom); 677 eina_log_domain_unregister(_evas_loader_xpm_log_dom);
674} 678}
675 679
diff --git a/libraries/evas/src/modules/savers/Makefile.in b/libraries/evas/src/modules/savers/Makefile.in
index 6d64b4c..28236d9 100644
--- a/libraries/evas/src/modules/savers/Makefile.in
+++ b/libraries/evas/src/modules/savers/Makefile.in
@@ -211,8 +211,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
211PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 211PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
212PIXMAN_LIBS = @PIXMAN_LIBS@ 212PIXMAN_LIBS = @PIXMAN_LIBS@
213PKG_CONFIG = @PKG_CONFIG@ 213PKG_CONFIG = @PKG_CONFIG@
214PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
215PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
216PNG_CFLAGS = @PNG_CFLAGS@ 214PNG_CFLAGS = @PNG_CFLAGS@
217PNG_LIBS = @PNG_LIBS@ 215PNG_LIBS = @PNG_LIBS@
218RANLIB = @RANLIB@ 216RANLIB = @RANLIB@
@@ -229,6 +227,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
229VALGRIND_LIBS = @VALGRIND_LIBS@ 227VALGRIND_LIBS = @VALGRIND_LIBS@
230VERSION = @VERSION@ 228VERSION = @VERSION@
231VMAJ = @VMAJ@ 229VMAJ = @VMAJ@
230WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
231WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
232WIN32_CFLAGS = @WIN32_CFLAGS@ 232WIN32_CFLAGS = @WIN32_CFLAGS@
233WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 233WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
234XCB_CFLAGS = @XCB_CFLAGS@ 234XCB_CFLAGS = @XCB_CFLAGS@
@@ -310,6 +310,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
310evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 310evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
311evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 311evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
312evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 312evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
313evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
314evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
315evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
316evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
313evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 317evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
314evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 318evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
315evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 319evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/savers/edb/Makefile.in b/libraries/evas/src/modules/savers/edb/Makefile.in
index e319b56..2ed29ec 100644
--- a/libraries/evas/src/modules/savers/edb/Makefile.in
+++ b/libraries/evas/src/modules/savers/edb/Makefile.in
@@ -231,8 +231,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
232PIXMAN_LIBS = @PIXMAN_LIBS@ 232PIXMAN_LIBS = @PIXMAN_LIBS@
233PKG_CONFIG = @PKG_CONFIG@ 233PKG_CONFIG = @PKG_CONFIG@
234PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
235PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
236PNG_CFLAGS = @PNG_CFLAGS@ 234PNG_CFLAGS = @PNG_CFLAGS@
237PNG_LIBS = @PNG_LIBS@ 235PNG_LIBS = @PNG_LIBS@
238RANLIB = @RANLIB@ 236RANLIB = @RANLIB@
@@ -249,6 +247,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
249VALGRIND_LIBS = @VALGRIND_LIBS@ 247VALGRIND_LIBS = @VALGRIND_LIBS@
250VERSION = @VERSION@ 248VERSION = @VERSION@
251VMAJ = @VMAJ@ 249VMAJ = @VMAJ@
250WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
251WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
252WIN32_CFLAGS = @WIN32_CFLAGS@ 252WIN32_CFLAGS = @WIN32_CFLAGS@
253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
254XCB_CFLAGS = @XCB_CFLAGS@ 254XCB_CFLAGS = @XCB_CFLAGS@
@@ -330,6 +330,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
333evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
334evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
335evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
336evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
333evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 337evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
334evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 338evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
335evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 339evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/savers/eet/Makefile.in b/libraries/evas/src/modules/savers/eet/Makefile.in
index c80e946..6564c18 100644
--- a/libraries/evas/src/modules/savers/eet/Makefile.in
+++ b/libraries/evas/src/modules/savers/eet/Makefile.in
@@ -231,8 +231,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
232PIXMAN_LIBS = @PIXMAN_LIBS@ 232PIXMAN_LIBS = @PIXMAN_LIBS@
233PKG_CONFIG = @PKG_CONFIG@ 233PKG_CONFIG = @PKG_CONFIG@
234PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
235PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
236PNG_CFLAGS = @PNG_CFLAGS@ 234PNG_CFLAGS = @PNG_CFLAGS@
237PNG_LIBS = @PNG_LIBS@ 235PNG_LIBS = @PNG_LIBS@
238RANLIB = @RANLIB@ 236RANLIB = @RANLIB@
@@ -249,6 +247,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
249VALGRIND_LIBS = @VALGRIND_LIBS@ 247VALGRIND_LIBS = @VALGRIND_LIBS@
250VERSION = @VERSION@ 248VERSION = @VERSION@
251VMAJ = @VMAJ@ 249VMAJ = @VMAJ@
250WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
251WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
252WIN32_CFLAGS = @WIN32_CFLAGS@ 252WIN32_CFLAGS = @WIN32_CFLAGS@
253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
254XCB_CFLAGS = @XCB_CFLAGS@ 254XCB_CFLAGS = @XCB_CFLAGS@
@@ -330,6 +330,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
333evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
334evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
335evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
336evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
333evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 337evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
334evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 338evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
335evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 339evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/savers/jpeg/Makefile.in b/libraries/evas/src/modules/savers/jpeg/Makefile.in
index 3c1bd8b..e57c4f9 100644
--- a/libraries/evas/src/modules/savers/jpeg/Makefile.in
+++ b/libraries/evas/src/modules/savers/jpeg/Makefile.in
@@ -231,8 +231,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
232PIXMAN_LIBS = @PIXMAN_LIBS@ 232PIXMAN_LIBS = @PIXMAN_LIBS@
233PKG_CONFIG = @PKG_CONFIG@ 233PKG_CONFIG = @PKG_CONFIG@
234PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
235PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
236PNG_CFLAGS = @PNG_CFLAGS@ 234PNG_CFLAGS = @PNG_CFLAGS@
237PNG_LIBS = @PNG_LIBS@ 235PNG_LIBS = @PNG_LIBS@
238RANLIB = @RANLIB@ 236RANLIB = @RANLIB@
@@ -249,6 +247,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
249VALGRIND_LIBS = @VALGRIND_LIBS@ 247VALGRIND_LIBS = @VALGRIND_LIBS@
250VERSION = @VERSION@ 248VERSION = @VERSION@
251VMAJ = @VMAJ@ 249VMAJ = @VMAJ@
250WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
251WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
252WIN32_CFLAGS = @WIN32_CFLAGS@ 252WIN32_CFLAGS = @WIN32_CFLAGS@
253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
254XCB_CFLAGS = @XCB_CFLAGS@ 254XCB_CFLAGS = @XCB_CFLAGS@
@@ -330,6 +330,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
333evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
334evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
335evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
336evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
333evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 337evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
334evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 338evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
335evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 339evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/savers/png/Makefile.in b/libraries/evas/src/modules/savers/png/Makefile.in
index 3b905a5..da04ff2 100644
--- a/libraries/evas/src/modules/savers/png/Makefile.in
+++ b/libraries/evas/src/modules/savers/png/Makefile.in
@@ -231,8 +231,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
232PIXMAN_LIBS = @PIXMAN_LIBS@ 232PIXMAN_LIBS = @PIXMAN_LIBS@
233PKG_CONFIG = @PKG_CONFIG@ 233PKG_CONFIG = @PKG_CONFIG@
234PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
235PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
236PNG_CFLAGS = @PNG_CFLAGS@ 234PNG_CFLAGS = @PNG_CFLAGS@
237PNG_LIBS = @PNG_LIBS@ 235PNG_LIBS = @PNG_LIBS@
238RANLIB = @RANLIB@ 236RANLIB = @RANLIB@
@@ -249,6 +247,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
249VALGRIND_LIBS = @VALGRIND_LIBS@ 247VALGRIND_LIBS = @VALGRIND_LIBS@
250VERSION = @VERSION@ 248VERSION = @VERSION@
251VMAJ = @VMAJ@ 249VMAJ = @VMAJ@
250WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
251WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
252WIN32_CFLAGS = @WIN32_CFLAGS@ 252WIN32_CFLAGS = @WIN32_CFLAGS@
253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
254XCB_CFLAGS = @XCB_CFLAGS@ 254XCB_CFLAGS = @XCB_CFLAGS@
@@ -330,6 +330,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
333evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
334evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
335evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
336evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
333evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 337evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
334evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 338evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
335evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 339evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/modules/savers/tiff/Makefile.in b/libraries/evas/src/modules/savers/tiff/Makefile.in
index 27acddd..8f4411f 100644
--- a/libraries/evas/src/modules/savers/tiff/Makefile.in
+++ b/libraries/evas/src/modules/savers/tiff/Makefile.in
@@ -231,8 +231,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 231PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
232PIXMAN_LIBS = @PIXMAN_LIBS@ 232PIXMAN_LIBS = @PIXMAN_LIBS@
233PKG_CONFIG = @PKG_CONFIG@ 233PKG_CONFIG = @PKG_CONFIG@
234PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
235PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
236PNG_CFLAGS = @PNG_CFLAGS@ 234PNG_CFLAGS = @PNG_CFLAGS@
237PNG_LIBS = @PNG_LIBS@ 235PNG_LIBS = @PNG_LIBS@
238RANLIB = @RANLIB@ 236RANLIB = @RANLIB@
@@ -249,6 +247,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
249VALGRIND_LIBS = @VALGRIND_LIBS@ 247VALGRIND_LIBS = @VALGRIND_LIBS@
250VERSION = @VERSION@ 248VERSION = @VERSION@
251VMAJ = @VMAJ@ 249VMAJ = @VMAJ@
250WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
251WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
252WIN32_CFLAGS = @WIN32_CFLAGS@ 252WIN32_CFLAGS = @WIN32_CFLAGS@
253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 253WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
254XCB_CFLAGS = @XCB_CFLAGS@ 254XCB_CFLAGS = @XCB_CFLAGS@
@@ -330,6 +330,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 330evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 331evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 332evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
333evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
334evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
335evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
336evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
333evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 337evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
334evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 338evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
335evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 339evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/static_deps/Makefile.in b/libraries/evas/src/static_deps/Makefile.in
index 94f534e..514e79c 100644
--- a/libraries/evas/src/static_deps/Makefile.in
+++ b/libraries/evas/src/static_deps/Makefile.in
@@ -207,8 +207,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
207PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 207PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
208PIXMAN_LIBS = @PIXMAN_LIBS@ 208PIXMAN_LIBS = @PIXMAN_LIBS@
209PKG_CONFIG = @PKG_CONFIG@ 209PKG_CONFIG = @PKG_CONFIG@
210PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
211PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
212PNG_CFLAGS = @PNG_CFLAGS@ 210PNG_CFLAGS = @PNG_CFLAGS@
213PNG_LIBS = @PNG_LIBS@ 211PNG_LIBS = @PNG_LIBS@
214RANLIB = @RANLIB@ 212RANLIB = @RANLIB@
@@ -225,6 +223,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
225VALGRIND_LIBS = @VALGRIND_LIBS@ 223VALGRIND_LIBS = @VALGRIND_LIBS@
226VERSION = @VERSION@ 224VERSION = @VERSION@
227VMAJ = @VMAJ@ 225VMAJ = @VMAJ@
226WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
227WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
228WIN32_CFLAGS = @WIN32_CFLAGS@ 228WIN32_CFLAGS = @WIN32_CFLAGS@
229WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 229WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
230XCB_CFLAGS = @XCB_CFLAGS@ 230XCB_CFLAGS = @XCB_CFLAGS@
@@ -306,6 +306,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
306evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 306evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
307evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 307evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
308evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 308evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
309evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
310evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
311evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
312evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
309evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 313evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
310evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 314evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
311evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 315evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/static_deps/liblinebreak/AUTHORS b/libraries/evas/src/static_deps/liblinebreak/AUTHORS
index 523106f..22786d4 100644
--- a/libraries/evas/src/static_deps/liblinebreak/AUTHORS
+++ b/libraries/evas/src/static_deps/liblinebreak/AUTHORS
@@ -4,3 +4,5 @@ Nikolay Pultsin. Put forward the original requirements on liblinebreak,
4performed tests, and made a lot of suggestions on the initial versions. 4performed tests, and made a lot of suggestions on the initial versions.
5 5
6Thomas Klausner. Autoconfiscated and libtoolized liblinebreak. 6Thomas Klausner. Autoconfiscated and libtoolized liblinebreak.
7
8Tom Hacohen. Added word boundaries support.
diff --git a/libraries/evas/src/static_deps/liblinebreak/Makefile.am b/libraries/evas/src/static_deps/liblinebreak/Makefile.am
index f386455..68e9c4a 100644
--- a/libraries/evas/src/static_deps/liblinebreak/Makefile.am
+++ b/libraries/evas/src/static_deps/liblinebreak/Makefile.am
@@ -1,13 +1,15 @@
1MAINTAINERCLEANFILES = Makefile.in 1MAINTAINERCLEANFILES = Makefile.in
2 2
3#noinst_PROGRAMS = filter_dup 3#noinst_PROGRAMS = filter_dup
4noinst_HEADERS = linebreak.h linebreakdef.h 4noinst_HEADERS = linebreak.h linebreakdef.h wordbreakdef.h wordbreak.h
5noinst_LTLIBRARIES = liblinebreak.la 5noinst_LTLIBRARIES = liblinebreak.la
6 6
7liblinebreak_la_SOURCES = \ 7liblinebreak_la_SOURCES = \
8 linebreak.c \ 8 linebreak.c \
9 linebreakdata.c \ 9 linebreakdata.c \
10 linebreakdef.c 10 linebreakdef.c \
11 wordbreak.c \
12 wordbreakdata.x
11 13
12EXTRA_DIST = \ 14EXTRA_DIST = \
13 LineBreak1.sed \ 15 LineBreak1.sed \
diff --git a/libraries/evas/src/static_deps/liblinebreak/Makefile.in b/libraries/evas/src/static_deps/liblinebreak/Makefile.in
index 909f75e..9d44327 100644
--- a/libraries/evas/src/static_deps/liblinebreak/Makefile.in
+++ b/libraries/evas/src/static_deps/liblinebreak/Makefile.in
@@ -61,7 +61,7 @@ CONFIG_CLEAN_VPATH_FILES =
61LTLIBRARIES = $(noinst_LTLIBRARIES) 61LTLIBRARIES = $(noinst_LTLIBRARIES)
62liblinebreak_la_LIBADD = 62liblinebreak_la_LIBADD =
63am_liblinebreak_la_OBJECTS = linebreak.lo linebreakdata.lo \ 63am_liblinebreak_la_OBJECTS = linebreak.lo linebreakdata.lo \
64 linebreakdef.lo 64 linebreakdef.lo wordbreak.lo
65liblinebreak_la_OBJECTS = $(am_liblinebreak_la_OBJECTS) 65liblinebreak_la_OBJECTS = $(am_liblinebreak_la_OBJECTS)
66AM_V_lt = $(am__v_lt_$(V)) 66AM_V_lt = $(am__v_lt_$(V))
67am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) 67am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
@@ -200,8 +200,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
200PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 200PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
201PIXMAN_LIBS = @PIXMAN_LIBS@ 201PIXMAN_LIBS = @PIXMAN_LIBS@
202PKG_CONFIG = @PKG_CONFIG@ 202PKG_CONFIG = @PKG_CONFIG@
203PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
204PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
205PNG_CFLAGS = @PNG_CFLAGS@ 203PNG_CFLAGS = @PNG_CFLAGS@
206PNG_LIBS = @PNG_LIBS@ 204PNG_LIBS = @PNG_LIBS@
207RANLIB = @RANLIB@ 205RANLIB = @RANLIB@
@@ -218,6 +216,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
218VALGRIND_LIBS = @VALGRIND_LIBS@ 216VALGRIND_LIBS = @VALGRIND_LIBS@
219VERSION = @VERSION@ 217VERSION = @VERSION@
220VMAJ = @VMAJ@ 218VMAJ = @VMAJ@
219WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
220WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
221WIN32_CFLAGS = @WIN32_CFLAGS@ 221WIN32_CFLAGS = @WIN32_CFLAGS@
222WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 222WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
223XCB_CFLAGS = @XCB_CFLAGS@ 223XCB_CFLAGS = @XCB_CFLAGS@
@@ -299,6 +299,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
299evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 299evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
300evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 300evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
301evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 301evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
302evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
303evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
304evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
305evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
302evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 306evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
303evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 307evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
304evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 308evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
@@ -376,12 +380,14 @@ version_info = @version_info@
376MAINTAINERCLEANFILES = Makefile.in 380MAINTAINERCLEANFILES = Makefile.in
377 381
378#noinst_PROGRAMS = filter_dup 382#noinst_PROGRAMS = filter_dup
379noinst_HEADERS = linebreak.h linebreakdef.h 383noinst_HEADERS = linebreak.h linebreakdef.h wordbreakdef.h wordbreak.h
380noinst_LTLIBRARIES = liblinebreak.la 384noinst_LTLIBRARIES = liblinebreak.la
381liblinebreak_la_SOURCES = \ 385liblinebreak_la_SOURCES = \
382 linebreak.c \ 386 linebreak.c \
383 linebreakdata.c \ 387 linebreakdata.c \
384 linebreakdef.c 388 linebreakdef.c \
389 wordbreak.c \
390 wordbreakdata.x
385 391
386EXTRA_DIST = \ 392EXTRA_DIST = \
387 LineBreak1.sed \ 393 LineBreak1.sed \
@@ -446,6 +452,7 @@ distclean-compile:
446@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linebreak.Plo@am__quote@ 452@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linebreak.Plo@am__quote@
447@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linebreakdata.Plo@am__quote@ 453@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linebreakdata.Plo@am__quote@
448@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linebreakdef.Plo@am__quote@ 454@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linebreakdef.Plo@am__quote@
455@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wordbreak.Plo@am__quote@
449 456
450.c.o: 457.c.o:
451@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< 458@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
diff --git a/libraries/evas/src/static_deps/liblinebreak/wordbreak.c b/libraries/evas/src/static_deps/liblinebreak/wordbreak.c
new file mode 100644
index 0000000..bbbb7f4
--- /dev/null
+++ b/libraries/evas/src/static_deps/liblinebreak/wordbreak.c
@@ -0,0 +1,435 @@
1/* vim: set tabstop=4 shiftwidth=4: */
2
3/*
4 * Word breaking in a Unicode sequence. Designed to be used in a
5 * generic text renderer.
6 *
7 * Copyright (C) 2011-2011 Tom Hacohen <tom@stosb.com>
8 *
9 * This software is provided 'as-is', without any express or implied
10 * warranty. In no event will the author be held liable for any damages
11 * arising from the use of this software.
12 *
13 * Permission is granted to anyone to use this software for any purpose,
14 * including commercial applications, and to alter it and redistribute
15 * it freely, subject to the following restrictions:
16 *
17 * 1. The origin of this software must not be misrepresented; you must
18 * not claim that you wrote the original software. If you use this
19 * software in a product, an acknowledgement in the product
20 * documentation would be appreciated but is not required.
21 * 2. Altered source versions must be plainly marked as such, and must
22 * not be misrepresented as being the original software.
23 * 3. This notice may not be removed or altered from any source
24 * distribution.
25 *
26 * The main reference is Unicode Standard Annex 29 (UAX #29):
27 * <URL:http://unicode.org/reports/tr29>
28 *
29 * When this library was designed, this annex was at Revision 17, for
30 * Unicode 6.0.0:
31 * <URL:http://www.unicode.org/reports/tr29/tr29-17.html>
32 *
33 * The Unicode Terms of Use are available at
34 * <URL:http://www.unicode.org/copyright.html>
35 */
36
37/**
38 * @file wordbreak.c
39 *
40 * Implementation of the word breaking algorithm as described in Unicode
41 * Standard Annex 29.
42 *
43 * @version 2.0, 2011/12/12
44 * @author Tom Hacohen
45 */
46
47
48#include <assert.h>
49#include <stddef.h>
50#include <string.h>
51#include "linebreak.h"
52#include "linebreakdef.h"
53
54#include "wordbreak.h"
55#include "wordbreakdata.x"
56
57#define ARRAY_LEN(x) (sizeof(x) / sizeof(x[0]))
58
59/* Init the wordbreak internals. */
60void init_wordbreak(void)
61{
62 /* Currently does nothing, may be needed in the future. */
63 return;
64}
65
66/**
67 * Gets the word breaking class of a character.
68 *
69 * @param ch character to check
70 * @param wbp pointer to the wbp breaking properties array
71 * @param len the size of the wbp array in number of items.
72 * @return the word breaking class if found; \c WBP_Any otherwise
73 */
74static enum WordBreakClass get_char_wb_class(
75 utf32_t ch,
76 struct WordBreakProperties *wbp,
77 size_t len)
78{
79 int min = 0;
80 int max = len - 1;
81 int mid;
82
83 do
84 {
85 mid = (min + max) / 2;
86
87 if (ch < wbp[mid].start)
88 max = mid - 1;
89 else if (ch > wbp[mid].end)
90 min = mid + 1;
91 else
92 return wbp[mid].prop;
93 }
94 while (min <= max);
95
96 return WBP_Any;
97}
98
99/**
100 * Sets the break types in brks starting from posLast up to posStop.
101 *
102 * It sets the inside chars to #WORDBREAK_INSIDECHAR and the rest to brkType.
103 * Assumes brks is initialized - all the cells with #WORDBREAK_NOBREAK are
104 * cells that we really don't want to break after.
105 *
106 * @param s the string
107 * @param brks[out] the breaks array to fill.
108 * @param posStart the start position
109 * @param posEnd the end position
110 * @param len the length of the string
111 * @param brkType the breaks type to use
112 * @param get_next_char function to get the next UTF-32 character
113 */
114static void set_brks_to(const void *s,
115 char *brks,
116 size_t posStart,
117 size_t posEnd,
118 size_t len,
119 char brkType,
120 get_next_char_t get_next_char)
121{
122 size_t posCur = posStart;
123 while (posCur < posEnd)
124 {
125 get_next_char(s, len, &posCur);
126 for ( ; posStart < posCur - 1; ++posStart)
127 {
128 brks[posStart] = WORDBREAK_INSIDECHAR;
129 }
130 assert(posStart == posCur - 1);
131
132 /* Only set it if we haven't set it not to break before. */
133 if (brks[posStart] != WORDBREAK_NOBREAK)
134 brks[posStart] = brkType;
135 posStart = posCur;
136 }
137}
138
139/* Checks to see if newline, cr, or lf. for WB3a and b */
140#define IS_WB3ab(cls) ((cls == WBP_Newline) || (cls == WBP_CR) || \
141 (cls == WBP_LF))
142
143/**
144 * Sets the word breaking information for a generic input string.
145 *
146 * @param[in] s input string
147 * @param[in] len length of the input
148 * @param[in] lang language of the input
149 * @param[out] brks pointer to the output breaking data, containing
150 * #WORDBREAK_BREAK, #WORDBREAK_NOBREAK, or
151 * #WORDBREAK_INSIDEACHAR
152 * @param[in] get_next_char function to get the next UTF-32 character
153 */
154static void set_wordbreaks(
155 const void *s,
156 size_t len,
157 const char *lang,
158 char *brks,
159 get_next_char_t get_next_char)
160{
161 /* Previous class */
162 enum WordBreakClass p_cls = WBP_Undefined;
163 /* Strong previous class. */
164 enum WordBreakClass sp_cls = WBP_Undefined;
165 utf32_t ch;
166 size_t posCur = 0;
167 size_t posCurSt = 0;
168 size_t posLast = 0;
169
170 /* FIXME: unused atm. */
171 (void) lang;
172
173
174 /* Init brks */
175 memset(brks, WORDBREAK_BREAK, len);
176
177 ch = get_next_char(s, len, &posCur);
178
179 /* WB3a, WB3b are implied. */
180 for ( ; ch != EOS ; )
181 {
182 /* Current class */
183 enum WordBreakClass c_cls;
184 c_cls = get_char_wb_class(ch, wb_prop_default,
185 ARRAY_LEN(wb_prop_default));
186
187 switch (c_cls)
188 {
189 case WBP_CR:
190 set_brks_to(s, brks, posLast, posCurSt, len, WORDBREAK_BREAK,
191 get_next_char);
192 sp_cls = c_cls;
193 posLast = posCurSt;
194 break;
195
196 case WBP_LF:
197 if (sp_cls == WBP_CR) /* WB3 */
198 {
199 set_brks_to(s, brks, posLast, posCurSt, len, WORDBREAK_NOBREAK,
200 get_next_char);
201 sp_cls = c_cls;
202 posLast = posCurSt;
203 }
204 sp_cls = c_cls;
205 posLast = posCurSt;
206 break;
207
208 case WBP_Newline:
209 /* WB3a, WB3b */
210 set_brks_to(s, brks, posLast, posCurSt, len, WORDBREAK_BREAK,
211 get_next_char);
212 sp_cls = c_cls;
213 posLast = posCurSt;
214 break;
215
216 case WBP_Extend:
217 case WBP_Format:
218 /* WB4 - If not the first char/after a newline (W3ab),
219 * skip this class, set it to be the same as the prev, and mark
220 * brks not to break before them. */
221 if ((sp_cls == WBP_Undefined) || IS_WB3ab(sp_cls))
222 {
223 set_brks_to(s, brks, posLast, posCurSt, len, WORDBREAK_BREAK,
224 get_next_char);
225 sp_cls = c_cls;
226 }
227 else
228 {
229 /* It's surely not the first */
230 brks[posCurSt - 1] = WORDBREAK_NOBREAK;
231 /* "inherit" the previous class. */
232 c_cls = p_cls;
233 }
234 break;
235
236 case WBP_Katakana:
237 if ((sp_cls == WBP_Katakana) || /* WB13 */
238 (sp_cls == WBP_ExtendNumLet)) /* WB13b */
239 {
240 set_brks_to(s, brks, posLast, posCurSt, len, WORDBREAK_NOBREAK,
241 get_next_char);
242 }
243 /* No rule found, reset */
244 else
245 {
246 set_brks_to(s, brks, posLast, posCurSt, len, WORDBREAK_BREAK,
247 get_next_char);
248 }
249 sp_cls = c_cls;
250 posLast = posCurSt;
251 break;
252
253 case WBP_ALetter:
254 if ((sp_cls == WBP_ALetter) || /* WB5,6,7 */
255 ((sp_cls == WBP_Numeric) && (p_cls == WBP_Numeric)) || /* WB10 */
256 (sp_cls == WBP_ExtendNumLet)) /* WB13b */
257 {
258 set_brks_to(s, brks, posLast, posCurSt, len, WORDBREAK_NOBREAK,
259 get_next_char);
260 }
261 /* No rule found, reset */
262 else
263 {
264 set_brks_to(s, brks, posLast, posCurSt, len, WORDBREAK_BREAK,
265 get_next_char);
266 }
267 sp_cls = c_cls;
268 posLast = posCurSt;
269 break;
270
271 case WBP_MidNumLet:
272 if ((p_cls == WBP_ALetter) || /* WBP6,7 */
273 (p_cls == WBP_Numeric)) /* WBP11,12 */
274 {
275 /* Go on */
276 }
277 else
278 {
279 set_brks_to(s, brks, posLast, posCurSt, len, WORDBREAK_BREAK,
280 get_next_char);
281 sp_cls = c_cls;
282 posLast = posCurSt;
283 }
284 break;
285
286 case WBP_MidLetter:
287 if (p_cls == WBP_ALetter) /* WBP6,7 */
288 {
289 /* Go on */
290 }
291 else
292 {
293 set_brks_to(s, brks, posLast, posCurSt, len, WORDBREAK_BREAK,
294 get_next_char);
295 sp_cls = c_cls;
296 posLast = posCurSt;
297 }
298 break;
299
300 case WBP_MidNum:
301 if (p_cls == WBP_Numeric) /* WBP11,12 */
302 {
303 /* Go on */
304 }
305 else
306 {
307 set_brks_to(s, brks, posLast, posCurSt, len, WORDBREAK_BREAK,
308 get_next_char);
309 sp_cls = c_cls;
310 posLast = posCurSt;
311 }
312 break;
313
314 case WBP_Numeric:
315 if ((sp_cls == WBP_Numeric) || /* WB8,11,12 */
316 ((sp_cls == WBP_ALetter) && (p_cls == WBP_ALetter)) || /* WB9 */
317 (sp_cls == WBP_ExtendNumLet)) /* WB13b */
318 {
319 set_brks_to(s, brks, posLast, posCurSt, len, WORDBREAK_NOBREAK,
320 get_next_char);
321 }
322 /* No rule found, reset */
323 else
324 {
325 set_brks_to(s, brks, posLast, posCurSt, len, WORDBREAK_BREAK,
326 get_next_char);
327 }
328 sp_cls = c_cls;
329 posLast = posCurSt;
330 break;
331
332 case WBP_ExtendNumLet:
333 /* WB13a,13b */
334 if ((sp_cls == p_cls) &&
335 ((p_cls == WBP_ALetter) ||
336 (p_cls == WBP_Numeric) ||
337 (p_cls == WBP_Katakana) ||
338 (p_cls == WBP_ExtendNumLet)))
339 {
340 set_brks_to(s, brks, posLast, posCurSt, len, WORDBREAK_NOBREAK,
341 get_next_char);
342 }
343 /* No rule found, reset */
344 else
345 {
346 set_brks_to(s, brks, posLast, posCurSt, len, WORDBREAK_BREAK,
347 get_next_char);
348 }
349 sp_cls = c_cls;
350 posLast = posCurSt;
351 break;
352
353 case WBP_Any:
354 /* Allow breaks and reset */
355 set_brks_to(s, brks, posLast, posCurSt, len, WORDBREAK_BREAK,
356 get_next_char);
357 sp_cls = c_cls;
358 posLast = posCurSt;
359 break;
360
361 default:
362 /* Error, should never get here! */
363 assert(0);
364 break;
365 }
366
367 p_cls = c_cls;
368 posCurSt = posCur;
369 ch = get_next_char(s, len, &posCur);
370 }
371
372 /* WB2 */
373 set_brks_to(s, brks, posLast, posCur, len, WORDBREAK_BREAK,
374 get_next_char);
375}
376
377/**
378 * Sets the word breaking information for a UTF-8 input string.
379 *
380 * @param[in] s input UTF-8 string
381 * @param[in] len length of the input
382 * @param[in] lang language of the input
383 * @param[out] brks pointer to the output breaking data, containing
384 * #WORDBREAK_BREAK, #WORDBREAK_NOBREAK, or
385 * #WORDBREAK_INSIDEACHAR
386 */
387void set_wordbreaks_utf8(
388 const utf8_t *s,
389 size_t len,
390 const char *lang,
391 char *brks)
392{
393 set_wordbreaks(s, len, lang, brks,
394 (get_next_char_t)lb_get_next_char_utf8);
395}
396
397/**
398 * Sets the word breaking information for a UTF-16 input string.
399 *
400 * @param[in] s input UTF-16 string
401 * @param[in] len length of the input
402 * @param[in] lang language of the input
403 * @param[out] brks pointer to the output breaking data, containing
404 * #WORDBREAK_BREAK, #WORDBREAK_NOBREAK, or
405 * #WORDBREAK_INSIDEACHAR
406 */
407void set_wordbreaks_utf16(
408 const utf16_t *s,
409 size_t len,
410 const char *lang,
411 char *brks)
412{
413 set_wordbreaks(s, len, lang, brks,
414 (get_next_char_t)lb_get_next_char_utf16);
415}
416
417/**
418 * Sets the word breaking information for a UTF-32 input string.
419 *
420 * @param[in] s input UTF-32 string
421 * @param[in] len length of the input
422 * @param[in] lang language of the input
423 * @param[out] brks pointer to the output breaking data, containing
424 * #WORDBREAK_BREAK, #WORDBREAK_NOBREAK, or
425 * #WORDBREAK_INSIDEACHAR
426 */
427void set_wordbreaks_utf32(
428 const utf32_t *s,
429 size_t len,
430 const char *lang,
431 char *brks)
432{
433 set_wordbreaks(s, len, lang, brks,
434 (get_next_char_t)lb_get_next_char_utf32);
435}
diff --git a/libraries/evas/src/static_deps/liblinebreak/wordbreak.h b/libraries/evas/src/static_deps/liblinebreak/wordbreak.h
new file mode 100644
index 0000000..7b7bea7
--- /dev/null
+++ b/libraries/evas/src/static_deps/liblinebreak/wordbreak.h
@@ -0,0 +1,72 @@
1/* vim: set tabstop=4 shiftwidth=4: */
2
3/*
4 * Word breaking in a Unicode sequence. Designed to be used in a
5 * generic text renderer.
6 *
7 * Copyright (C) 2011-2011 Tom Hacohen <tom@stosb.com>
8 *
9 * This software is provided 'as-is', without any express or implied
10 * warranty. In no event will the author be held liable for any damages
11 * arising from the use of this software.
12 *
13 * Permission is granted to anyone to use this software for any purpose,
14 * including commercial applications, and to alter it and redistribute
15 * it freely, subject to the following restrictions:
16 *
17 * 1. The origin of this software must not be misrepresented; you must
18 * not claim that you wrote the original software. If you use this
19 * software in a product, an acknowledgement in the product
20 * documentation would be appreciated but is not required.
21 * 2. Altered source versions must be plainly marked as such, and must
22 * not be misrepresented as being the original software.
23 * 3. This notice may not be removed or altered from any source
24 * distribution.
25 *
26 * The main reference is Unicode Standard Annex 29 (UAX #29):
27 * <URL:http://unicode.org/reports/tr29>
28 *
29 * When this library was designed, this annex was at Revision 17, for
30 * Unicode 6.0.0:
31 * <URL:http://www.unicode.org/reports/tr29/tr29-17.html>
32 *
33 * The Unicode Terms of Use are available at
34 * <URL:http://www.unicode.org/copyright.html>
35 */
36
37/**
38 * @file wordbreak.h
39 *
40 * Header file for the word breaking (segmentation) algorithm.
41 *
42 * @version 2.0, 2011/12/12
43 * @author Tom Hacohen
44 */
45
46#ifndef WORDBREAK_H
47#define WORDBREAK_H
48
49#include <stddef.h>
50#include <linebreak.h>
51
52#ifdef __cplusplus
53extern "C" {
54#endif
55
56#define WORDBREAK_BREAK 0 /* Break found */
57#define WORDBREAK_NOBREAK 1 /**< Break not found */
58#define WORDBREAK_INSIDECHAR 2 /**< A UTF-8/16 sequence is unfinished */
59
60void init_wordbreak(void);
61void set_wordbreaks_utf8(
62 const utf8_t *s, size_t len, const char* lang, char *brks);
63void set_wordbreaks_utf16(
64 const utf16_t *s, size_t len, const char* lang, char *brks);
65void set_wordbreaks_utf32(
66 const utf32_t *s, size_t len, const char* lang, char *brks);
67
68#ifdef __cplusplus
69}
70#endif
71
72#endif
diff --git a/libraries/evas/src/static_deps/liblinebreak/wordbreakdata.x b/libraries/evas/src/static_deps/liblinebreak/wordbreakdata.x
new file mode 100644
index 0000000..c7278ef
--- /dev/null
+++ b/libraries/evas/src/static_deps/liblinebreak/wordbreakdata.x
@@ -0,0 +1,858 @@
1/* The content of this file is generated from:
2# WordBreakProperty-6.0.0.txt
3# Date: 2010-08-19, 00:48:48 GMT [MD]
4*/
5#include "linebreak.h"
6#include "wordbreakdef.h"
7static struct WordBreakProperties wb_prop_default[] = {
8 {0x000A, 0x000A, WBP_LF},
9 {0x000B, 0x000C, WBP_Newline},
10 {0x000D, 0x000D, WBP_CR},
11 {0x0027, 0x0027, WBP_MidNumLet},
12 {0x002C, 0x002C, WBP_MidNum},
13 {0x002E, 0x002E, WBP_MidNumLet},
14 {0x0030, 0x0039, WBP_Numeric},
15 {0x003A, 0x003A, WBP_MidLetter},
16 {0x003B, 0x003B, WBP_MidNum},
17 {0x0041, 0x005A, WBP_ALetter},
18 {0x005F, 0x005F, WBP_ExtendNumLet},
19 {0x0061, 0x007A, WBP_ALetter},
20 {0x0085, 0x0085, WBP_Newline},
21 {0x00AA, 0x00AA, WBP_ALetter},
22 {0x00AD, 0x00AD, WBP_Format},
23 {0x00B5, 0x00B5, WBP_ALetter},
24 {0x00B7, 0x00B7, WBP_MidLetter},
25 {0x00BA, 0x00BA, WBP_ALetter},
26 {0x00C0, 0x00D6, WBP_ALetter},
27 {0x00D8, 0x00F6, WBP_ALetter},
28 {0x00F8, 0x01BA, WBP_ALetter},
29 {0x01BB, 0x01BB, WBP_ALetter},
30 {0x01BC, 0x01BF, WBP_ALetter},
31 {0x01C0, 0x01C3, WBP_ALetter},
32 {0x01C4, 0x0293, WBP_ALetter},
33 {0x0294, 0x0294, WBP_ALetter},
34 {0x0295, 0x02AF, WBP_ALetter},
35 {0x02B0, 0x02C1, WBP_ALetter},
36 {0x02C6, 0x02D1, WBP_ALetter},
37 {0x02E0, 0x02E4, WBP_ALetter},
38 {0x02EC, 0x02EC, WBP_ALetter},
39 {0x02EE, 0x02EE, WBP_ALetter},
40 {0x0300, 0x036F, WBP_Extend},
41 {0x0370, 0x0373, WBP_ALetter},
42 {0x0374, 0x0374, WBP_ALetter},
43 {0x0376, 0x0377, WBP_ALetter},
44 {0x037A, 0x037A, WBP_ALetter},
45 {0x037B, 0x037D, WBP_ALetter},
46 {0x037E, 0x037E, WBP_MidNum},
47 {0x0386, 0x0386, WBP_ALetter},
48 {0x0387, 0x0387, WBP_MidLetter},
49 {0x0388, 0x038A, WBP_ALetter},
50 {0x038C, 0x038C, WBP_ALetter},
51 {0x038E, 0x03A1, WBP_ALetter},
52 {0x03A3, 0x03F5, WBP_ALetter},
53 {0x03F7, 0x0481, WBP_ALetter},
54 {0x0483, 0x0487, WBP_Extend},
55 {0x0488, 0x0489, WBP_Extend},
56 {0x048A, 0x0527, WBP_ALetter},
57 {0x0531, 0x0556, WBP_ALetter},
58 {0x0559, 0x0559, WBP_ALetter},
59 {0x0561, 0x0587, WBP_ALetter},
60 {0x0589, 0x0589, WBP_MidNum},
61 {0x0591, 0x05BD, WBP_Extend},
62 {0x05BF, 0x05BF, WBP_Extend},
63 {0x05C1, 0x05C2, WBP_Extend},
64 {0x05C4, 0x05C5, WBP_Extend},
65 {0x05C7, 0x05C7, WBP_Extend},
66 {0x05D0, 0x05EA, WBP_ALetter},
67 {0x05F0, 0x05F2, WBP_ALetter},
68 {0x05F3, 0x05F3, WBP_ALetter},
69 {0x05F4, 0x05F4, WBP_MidLetter},
70 {0x0600, 0x0603, WBP_Format},
71 {0x060C, 0x060D, WBP_MidNum},
72 {0x0610, 0x061A, WBP_Extend},
73 {0x0620, 0x063F, WBP_ALetter},
74 {0x0640, 0x0640, WBP_ALetter},
75 {0x0641, 0x064A, WBP_ALetter},
76 {0x064B, 0x065F, WBP_Extend},
77 {0x0660, 0x0669, WBP_Numeric},
78 {0x066B, 0x066B, WBP_Numeric},
79 {0x066C, 0x066C, WBP_MidNum},
80 {0x066E, 0x066F, WBP_ALetter},
81 {0x0670, 0x0670, WBP_Extend},
82 {0x0671, 0x06D3, WBP_ALetter},
83 {0x06D5, 0x06D5, WBP_ALetter},
84 {0x06D6, 0x06DC, WBP_Extend},
85 {0x06DD, 0x06DD, WBP_Format},
86 {0x06DF, 0x06E4, WBP_Extend},
87 {0x06E5, 0x06E6, WBP_ALetter},
88 {0x06E7, 0x06E8, WBP_Extend},
89 {0x06EA, 0x06ED, WBP_Extend},
90 {0x06EE, 0x06EF, WBP_ALetter},
91 {0x06F0, 0x06F9, WBP_Numeric},
92 {0x06FA, 0x06FC, WBP_ALetter},
93 {0x06FF, 0x06FF, WBP_ALetter},
94 {0x070F, 0x070F, WBP_Format},
95 {0x0710, 0x0710, WBP_ALetter},
96 {0x0711, 0x0711, WBP_Extend},
97 {0x0712, 0x072F, WBP_ALetter},
98 {0x0730, 0x074A, WBP_Extend},
99 {0x074D, 0x07A5, WBP_ALetter},
100 {0x07A6, 0x07B0, WBP_Extend},
101 {0x07B1, 0x07B1, WBP_ALetter},
102 {0x07C0, 0x07C9, WBP_Numeric},
103 {0x07CA, 0x07EA, WBP_ALetter},
104 {0x07EB, 0x07F3, WBP_Extend},
105 {0x07F4, 0x07F5, WBP_ALetter},
106 {0x07F8, 0x07F8, WBP_MidNum},
107 {0x07FA, 0x07FA, WBP_ALetter},
108 {0x0800, 0x0815, WBP_ALetter},
109 {0x0816, 0x0819, WBP_Extend},
110 {0x081A, 0x081A, WBP_ALetter},
111 {0x081B, 0x0823, WBP_Extend},
112 {0x0824, 0x0824, WBP_ALetter},
113 {0x0825, 0x0827, WBP_Extend},
114 {0x0828, 0x0828, WBP_ALetter},
115 {0x0829, 0x082D, WBP_Extend},
116 {0x0840, 0x0858, WBP_ALetter},
117 {0x0859, 0x085B, WBP_Extend},
118 {0x0900, 0x0902, WBP_Extend},
119 {0x0903, 0x0903, WBP_Extend},
120 {0x0904, 0x0939, WBP_ALetter},
121 {0x093A, 0x093A, WBP_Extend},
122 {0x093B, 0x093B, WBP_Extend},
123 {0x093C, 0x093C, WBP_Extend},
124 {0x093D, 0x093D, WBP_ALetter},
125 {0x093E, 0x0940, WBP_Extend},
126 {0x0941, 0x0948, WBP_Extend},
127 {0x0949, 0x094C, WBP_Extend},
128 {0x094D, 0x094D, WBP_Extend},
129 {0x094E, 0x094F, WBP_Extend},
130 {0x0950, 0x0950, WBP_ALetter},
131 {0x0951, 0x0957, WBP_Extend},
132 {0x0958, 0x0961, WBP_ALetter},
133 {0x0962, 0x0963, WBP_Extend},
134 {0x0966, 0x096F, WBP_Numeric},
135 {0x0971, 0x0971, WBP_ALetter},
136 {0x0972, 0x0977, WBP_ALetter},
137 {0x0979, 0x097F, WBP_ALetter},
138 {0x0981, 0x0981, WBP_Extend},
139 {0x0982, 0x0983, WBP_Extend},
140 {0x0985, 0x098C, WBP_ALetter},
141 {0x098F, 0x0990, WBP_ALetter},
142 {0x0993, 0x09A8, WBP_ALetter},
143 {0x09AA, 0x09B0, WBP_ALetter},
144 {0x09B2, 0x09B2, WBP_ALetter},
145 {0x09B6, 0x09B9, WBP_ALetter},
146 {0x09BC, 0x09BC, WBP_Extend},
147 {0x09BD, 0x09BD, WBP_ALetter},
148 {0x09BE, 0x09C0, WBP_Extend},
149 {0x09C1, 0x09C4, WBP_Extend},
150 {0x09C7, 0x09C8, WBP_Extend},
151 {0x09CB, 0x09CC, WBP_Extend},
152 {0x09CD, 0x09CD, WBP_Extend},
153 {0x09CE, 0x09CE, WBP_ALetter},
154 {0x09D7, 0x09D7, WBP_Extend},
155 {0x09DC, 0x09DD, WBP_ALetter},
156 {0x09DF, 0x09E1, WBP_ALetter},
157 {0x09E2, 0x09E3, WBP_Extend},
158 {0x09E6, 0x09EF, WBP_Numeric},
159 {0x09F0, 0x09F1, WBP_ALetter},
160 {0x0A01, 0x0A02, WBP_Extend},
161 {0x0A03, 0x0A03, WBP_Extend},
162 {0x0A05, 0x0A0A, WBP_ALetter},
163 {0x0A0F, 0x0A10, WBP_ALetter},
164 {0x0A13, 0x0A28, WBP_ALetter},
165 {0x0A2A, 0x0A30, WBP_ALetter},
166 {0x0A32, 0x0A33, WBP_ALetter},
167 {0x0A35, 0x0A36, WBP_ALetter},
168 {0x0A38, 0x0A39, WBP_ALetter},
169 {0x0A3C, 0x0A3C, WBP_Extend},
170 {0x0A3E, 0x0A40, WBP_Extend},
171 {0x0A41, 0x0A42, WBP_Extend},
172 {0x0A47, 0x0A48, WBP_Extend},
173 {0x0A4B, 0x0A4D, WBP_Extend},
174 {0x0A51, 0x0A51, WBP_Extend},
175 {0x0A59, 0x0A5C, WBP_ALetter},
176 {0x0A5E, 0x0A5E, WBP_ALetter},
177 {0x0A66, 0x0A6F, WBP_Numeric},
178 {0x0A70, 0x0A71, WBP_Extend},
179 {0x0A72, 0x0A74, WBP_ALetter},
180 {0x0A75, 0x0A75, WBP_Extend},
181 {0x0A81, 0x0A82, WBP_Extend},
182 {0x0A83, 0x0A83, WBP_Extend},
183 {0x0A85, 0x0A8D, WBP_ALetter},
184 {0x0A8F, 0x0A91, WBP_ALetter},
185 {0x0A93, 0x0AA8, WBP_ALetter},
186 {0x0AAA, 0x0AB0, WBP_ALetter},
187 {0x0AB2, 0x0AB3, WBP_ALetter},
188 {0x0AB5, 0x0AB9, WBP_ALetter},
189 {0x0ABC, 0x0ABC, WBP_Extend},
190 {0x0ABD, 0x0ABD, WBP_ALetter},
191 {0x0ABE, 0x0AC0, WBP_Extend},
192 {0x0AC1, 0x0AC5, WBP_Extend},
193 {0x0AC7, 0x0AC8, WBP_Extend},
194 {0x0AC9, 0x0AC9, WBP_Extend},
195 {0x0ACB, 0x0ACC, WBP_Extend},
196 {0x0ACD, 0x0ACD, WBP_Extend},
197 {0x0AD0, 0x0AD0, WBP_ALetter},
198 {0x0AE0, 0x0AE1, WBP_ALetter},
199 {0x0AE2, 0x0AE3, WBP_Extend},
200 {0x0AE6, 0x0AEF, WBP_Numeric},
201 {0x0B01, 0x0B01, WBP_Extend},
202 {0x0B02, 0x0B03, WBP_Extend},
203 {0x0B05, 0x0B0C, WBP_ALetter},
204 {0x0B0F, 0x0B10, WBP_ALetter},
205 {0x0B13, 0x0B28, WBP_ALetter},
206 {0x0B2A, 0x0B30, WBP_ALetter},
207 {0x0B32, 0x0B33, WBP_ALetter},
208 {0x0B35, 0x0B39, WBP_ALetter},
209 {0x0B3C, 0x0B3C, WBP_Extend},
210 {0x0B3D, 0x0B3D, WBP_ALetter},
211 {0x0B3E, 0x0B3E, WBP_Extend},
212 {0x0B3F, 0x0B3F, WBP_Extend},
213 {0x0B40, 0x0B40, WBP_Extend},
214 {0x0B41, 0x0B44, WBP_Extend},
215 {0x0B47, 0x0B48, WBP_Extend},
216 {0x0B4B, 0x0B4C, WBP_Extend},
217 {0x0B4D, 0x0B4D, WBP_Extend},
218 {0x0B56, 0x0B56, WBP_Extend},
219 {0x0B57, 0x0B57, WBP_Extend},
220 {0x0B5C, 0x0B5D, WBP_ALetter},
221 {0x0B5F, 0x0B61, WBP_ALetter},
222 {0x0B62, 0x0B63, WBP_Extend},
223 {0x0B66, 0x0B6F, WBP_Numeric},
224 {0x0B71, 0x0B71, WBP_ALetter},
225 {0x0B82, 0x0B82, WBP_Extend},
226 {0x0B83, 0x0B83, WBP_ALetter},
227 {0x0B85, 0x0B8A, WBP_ALetter},
228 {0x0B8E, 0x0B90, WBP_ALetter},
229 {0x0B92, 0x0B95, WBP_ALetter},
230 {0x0B99, 0x0B9A, WBP_ALetter},
231 {0x0B9C, 0x0B9C, WBP_ALetter},
232 {0x0B9E, 0x0B9F, WBP_ALetter},
233 {0x0BA3, 0x0BA4, WBP_ALetter},
234 {0x0BA8, 0x0BAA, WBP_ALetter},
235 {0x0BAE, 0x0BB9, WBP_ALetter},
236 {0x0BBE, 0x0BBF, WBP_Extend},
237 {0x0BC0, 0x0BC0, WBP_Extend},
238 {0x0BC1, 0x0BC2, WBP_Extend},
239 {0x0BC6, 0x0BC8, WBP_Extend},
240 {0x0BCA, 0x0BCC, WBP_Extend},
241 {0x0BCD, 0x0BCD, WBP_Extend},
242 {0x0BD0, 0x0BD0, WBP_ALetter},
243 {0x0BD7, 0x0BD7, WBP_Extend},
244 {0x0BE6, 0x0BEF, WBP_Numeric},
245 {0x0C01, 0x0C03, WBP_Extend},
246 {0x0C05, 0x0C0C, WBP_ALetter},
247 {0x0C0E, 0x0C10, WBP_ALetter},
248 {0x0C12, 0x0C28, WBP_ALetter},
249 {0x0C2A, 0x0C33, WBP_ALetter},
250 {0x0C35, 0x0C39, WBP_ALetter},
251 {0x0C3D, 0x0C3D, WBP_ALetter},
252 {0x0C3E, 0x0C40, WBP_Extend},
253 {0x0C41, 0x0C44, WBP_Extend},
254 {0x0C46, 0x0C48, WBP_Extend},
255 {0x0C4A, 0x0C4D, WBP_Extend},
256 {0x0C55, 0x0C56, WBP_Extend},
257 {0x0C58, 0x0C59, WBP_ALetter},
258 {0x0C60, 0x0C61, WBP_ALetter},
259 {0x0C62, 0x0C63, WBP_Extend},
260 {0x0C66, 0x0C6F, WBP_Numeric},
261 {0x0C82, 0x0C83, WBP_Extend},
262 {0x0C85, 0x0C8C, WBP_ALetter},
263 {0x0C8E, 0x0C90, WBP_ALetter},
264 {0x0C92, 0x0CA8, WBP_ALetter},
265 {0x0CAA, 0x0CB3, WBP_ALetter},
266 {0x0CB5, 0x0CB9, WBP_ALetter},
267 {0x0CBC, 0x0CBC, WBP_Extend},
268 {0x0CBD, 0x0CBD, WBP_ALetter},
269 {0x0CBE, 0x0CBE, WBP_Extend},
270 {0x0CBF, 0x0CBF, WBP_Extend},
271 {0x0CC0, 0x0CC4, WBP_Extend},
272 {0x0CC6, 0x0CC6, WBP_Extend},
273 {0x0CC7, 0x0CC8, WBP_Extend},
274 {0x0CCA, 0x0CCB, WBP_Extend},
275 {0x0CCC, 0x0CCD, WBP_Extend},
276 {0x0CD5, 0x0CD6, WBP_Extend},
277 {0x0CDE, 0x0CDE, WBP_ALetter},
278 {0x0CE0, 0x0CE1, WBP_ALetter},
279 {0x0CE2, 0x0CE3, WBP_Extend},
280 {0x0CE6, 0x0CEF, WBP_Numeric},
281 {0x0CF1, 0x0CF2, WBP_ALetter},
282 {0x0D02, 0x0D03, WBP_Extend},
283 {0x0D05, 0x0D0C, WBP_ALetter},
284 {0x0D0E, 0x0D10, WBP_ALetter},
285 {0x0D12, 0x0D3A, WBP_ALetter},
286 {0x0D3D, 0x0D3D, WBP_ALetter},
287 {0x0D3E, 0x0D40, WBP_Extend},
288 {0x0D41, 0x0D44, WBP_Extend},
289 {0x0D46, 0x0D48, WBP_Extend},
290 {0x0D4A, 0x0D4C, WBP_Extend},
291 {0x0D4D, 0x0D4D, WBP_Extend},
292 {0x0D4E, 0x0D4E, WBP_ALetter},
293 {0x0D57, 0x0D57, WBP_Extend},
294 {0x0D60, 0x0D61, WBP_ALetter},
295 {0x0D62, 0x0D63, WBP_Extend},
296 {0x0D66, 0x0D6F, WBP_Numeric},
297 {0x0D7A, 0x0D7F, WBP_ALetter},
298 {0x0D82, 0x0D83, WBP_Extend},
299 {0x0D85, 0x0D96, WBP_ALetter},
300 {0x0D9A, 0x0DB1, WBP_ALetter},
301 {0x0DB3, 0x0DBB, WBP_ALetter},
302 {0x0DBD, 0x0DBD, WBP_ALetter},
303 {0x0DC0, 0x0DC6, WBP_ALetter},
304 {0x0DCA, 0x0DCA, WBP_Extend},
305 {0x0DCF, 0x0DD1, WBP_Extend},
306 {0x0DD2, 0x0DD4, WBP_Extend},
307 {0x0DD6, 0x0DD6, WBP_Extend},
308 {0x0DD8, 0x0DDF, WBP_Extend},
309 {0x0DF2, 0x0DF3, WBP_Extend},
310 {0x0E31, 0x0E31, WBP_Extend},
311 {0x0E34, 0x0E3A, WBP_Extend},
312 {0x0E47, 0x0E4E, WBP_Extend},
313 {0x0E50, 0x0E59, WBP_Numeric},
314 {0x0EB1, 0x0EB1, WBP_Extend},
315 {0x0EB4, 0x0EB9, WBP_Extend},
316 {0x0EBB, 0x0EBC, WBP_Extend},
317 {0x0EC8, 0x0ECD, WBP_Extend},
318 {0x0ED0, 0x0ED9, WBP_Numeric},
319 {0x0F00, 0x0F00, WBP_ALetter},
320 {0x0F18, 0x0F19, WBP_Extend},
321 {0x0F20, 0x0F29, WBP_Numeric},
322 {0x0F35, 0x0F35, WBP_Extend},
323 {0x0F37, 0x0F37, WBP_Extend},
324 {0x0F39, 0x0F39, WBP_Extend},
325 {0x0F3E, 0x0F3F, WBP_Extend},
326 {0x0F40, 0x0F47, WBP_ALetter},
327 {0x0F49, 0x0F6C, WBP_ALetter},
328 {0x0F71, 0x0F7E, WBP_Extend},
329 {0x0F7F, 0x0F7F, WBP_Extend},
330 {0x0F80, 0x0F84, WBP_Extend},
331 {0x0F86, 0x0F87, WBP_Extend},
332 {0x0F88, 0x0F8C, WBP_ALetter},
333 {0x0F8D, 0x0F97, WBP_Extend},
334 {0x0F99, 0x0FBC, WBP_Extend},
335 {0x0FC6, 0x0FC6, WBP_Extend},
336 {0x102B, 0x102C, WBP_Extend},
337 {0x102D, 0x1030, WBP_Extend},
338 {0x1031, 0x1031, WBP_Extend},
339 {0x1032, 0x1037, WBP_Extend},
340 {0x1038, 0x1038, WBP_Extend},
341 {0x1039, 0x103A, WBP_Extend},
342 {0x103B, 0x103C, WBP_Extend},
343 {0x103D, 0x103E, WBP_Extend},
344 {0x1040, 0x1049, WBP_Numeric},
345 {0x1056, 0x1057, WBP_Extend},
346 {0x1058, 0x1059, WBP_Extend},
347 {0x105E, 0x1060, WBP_Extend},
348 {0x1062, 0x1064, WBP_Extend},
349 {0x1067, 0x106D, WBP_Extend},
350 {0x1071, 0x1074, WBP_Extend},
351 {0x1082, 0x1082, WBP_Extend},
352 {0x1083, 0x1084, WBP_Extend},
353 {0x1085, 0x1086, WBP_Extend},
354 {0x1087, 0x108C, WBP_Extend},
355 {0x108D, 0x108D, WBP_Extend},
356 {0x108F, 0x108F, WBP_Extend},
357 {0x1090, 0x1099, WBP_Numeric},
358 {0x109A, 0x109C, WBP_Extend},
359 {0x109D, 0x109D, WBP_Extend},
360 {0x10A0, 0x10C5, WBP_ALetter},
361 {0x10D0, 0x10FA, WBP_ALetter},
362 {0x10FC, 0x10FC, WBP_ALetter},
363 {0x1100, 0x1248, WBP_ALetter},
364 {0x124A, 0x124D, WBP_ALetter},
365 {0x1250, 0x1256, WBP_ALetter},
366 {0x1258, 0x1258, WBP_ALetter},
367 {0x125A, 0x125D, WBP_ALetter},
368 {0x1260, 0x1288, WBP_ALetter},
369 {0x128A, 0x128D, WBP_ALetter},
370 {0x1290, 0x12B0, WBP_ALetter},
371 {0x12B2, 0x12B5, WBP_ALetter},
372 {0x12B8, 0x12BE, WBP_ALetter},
373 {0x12C0, 0x12C0, WBP_ALetter},
374 {0x12C2, 0x12C5, WBP_ALetter},
375 {0x12C8, 0x12D6, WBP_ALetter},
376 {0x12D8, 0x1310, WBP_ALetter},
377 {0x1312, 0x1315, WBP_ALetter},
378 {0x1318, 0x135A, WBP_ALetter},
379 {0x135D, 0x135F, WBP_Extend},
380 {0x1380, 0x138F, WBP_ALetter},
381 {0x13A0, 0x13F4, WBP_ALetter},
382 {0x1401, 0x166C, WBP_ALetter},
383 {0x166F, 0x167F, WBP_ALetter},
384 {0x1681, 0x169A, WBP_ALetter},
385 {0x16A0, 0x16EA, WBP_ALetter},
386 {0x16EE, 0x16F0, WBP_ALetter},
387 {0x1700, 0x170C, WBP_ALetter},
388 {0x170E, 0x1711, WBP_ALetter},
389 {0x1712, 0x1714, WBP_Extend},
390 {0x1720, 0x1731, WBP_ALetter},
391 {0x1732, 0x1734, WBP_Extend},
392 {0x1740, 0x1751, WBP_ALetter},
393 {0x1752, 0x1753, WBP_Extend},
394 {0x1760, 0x176C, WBP_ALetter},
395 {0x176E, 0x1770, WBP_ALetter},
396 {0x1772, 0x1773, WBP_Extend},
397 {0x17B4, 0x17B5, WBP_Format},
398 {0x17B6, 0x17B6, WBP_Extend},
399 {0x17B7, 0x17BD, WBP_Extend},
400 {0x17BE, 0x17C5, WBP_Extend},
401 {0x17C6, 0x17C6, WBP_Extend},
402 {0x17C7, 0x17C8, WBP_Extend},
403 {0x17C9, 0x17D3, WBP_Extend},
404 {0x17DD, 0x17DD, WBP_Extend},
405 {0x17E0, 0x17E9, WBP_Numeric},
406 {0x180B, 0x180D, WBP_Extend},
407 {0x1810, 0x1819, WBP_Numeric},
408 {0x1820, 0x1842, WBP_ALetter},
409 {0x1843, 0x1843, WBP_ALetter},
410 {0x1844, 0x1877, WBP_ALetter},
411 {0x1880, 0x18A8, WBP_ALetter},
412 {0x18A9, 0x18A9, WBP_Extend},
413 {0x18AA, 0x18AA, WBP_ALetter},
414 {0x18B0, 0x18F5, WBP_ALetter},
415 {0x1900, 0x191C, WBP_ALetter},
416 {0x1920, 0x1922, WBP_Extend},
417 {0x1923, 0x1926, WBP_Extend},
418 {0x1927, 0x1928, WBP_Extend},
419 {0x1929, 0x192B, WBP_Extend},
420 {0x1930, 0x1931, WBP_Extend},
421 {0x1932, 0x1932, WBP_Extend},
422 {0x1933, 0x1938, WBP_Extend},
423 {0x1939, 0x193B, WBP_Extend},
424 {0x1946, 0x194F, WBP_Numeric},
425 {0x19B0, 0x19C0, WBP_Extend},
426 {0x19C8, 0x19C9, WBP_Extend},
427 {0x19D0, 0x19D9, WBP_Numeric},
428 {0x1A00, 0x1A16, WBP_ALetter},
429 {0x1A17, 0x1A18, WBP_Extend},
430 {0x1A19, 0x1A1B, WBP_Extend},
431 {0x1A55, 0x1A55, WBP_Extend},
432 {0x1A56, 0x1A56, WBP_Extend},
433 {0x1A57, 0x1A57, WBP_Extend},
434 {0x1A58, 0x1A5E, WBP_Extend},
435 {0x1A60, 0x1A60, WBP_Extend},
436 {0x1A61, 0x1A61, WBP_Extend},
437 {0x1A62, 0x1A62, WBP_Extend},
438 {0x1A63, 0x1A64, WBP_Extend},
439 {0x1A65, 0x1A6C, WBP_Extend},
440 {0x1A6D, 0x1A72, WBP_Extend},
441 {0x1A73, 0x1A7C, WBP_Extend},
442 {0x1A7F, 0x1A7F, WBP_Extend},
443 {0x1A80, 0x1A89, WBP_Numeric},
444 {0x1A90, 0x1A99, WBP_Numeric},
445 {0x1B00, 0x1B03, WBP_Extend},
446 {0x1B04, 0x1B04, WBP_Extend},
447 {0x1B05, 0x1B33, WBP_ALetter},
448 {0x1B34, 0x1B34, WBP_Extend},
449 {0x1B35, 0x1B35, WBP_Extend},
450 {0x1B36, 0x1B3A, WBP_Extend},
451 {0x1B3B, 0x1B3B, WBP_Extend},
452 {0x1B3C, 0x1B3C, WBP_Extend},
453 {0x1B3D, 0x1B41, WBP_Extend},
454 {0x1B42, 0x1B42, WBP_Extend},
455 {0x1B43, 0x1B44, WBP_Extend},
456 {0x1B45, 0x1B4B, WBP_ALetter},
457 {0x1B50, 0x1B59, WBP_Numeric},
458 {0x1B6B, 0x1B73, WBP_Extend},
459 {0x1B80, 0x1B81, WBP_Extend},
460 {0x1B82, 0x1B82, WBP_Extend},
461 {0x1B83, 0x1BA0, WBP_ALetter},
462 {0x1BA1, 0x1BA1, WBP_Extend},
463 {0x1BA2, 0x1BA5, WBP_Extend},
464 {0x1BA6, 0x1BA7, WBP_Extend},
465 {0x1BA8, 0x1BA9, WBP_Extend},
466 {0x1BAA, 0x1BAA, WBP_Extend},
467 {0x1BAE, 0x1BAF, WBP_ALetter},
468 {0x1BB0, 0x1BB9, WBP_Numeric},
469 {0x1BC0, 0x1BE5, WBP_ALetter},
470 {0x1BE6, 0x1BE6, WBP_Extend},
471 {0x1BE7, 0x1BE7, WBP_Extend},
472 {0x1BE8, 0x1BE9, WBP_Extend},
473 {0x1BEA, 0x1BEC, WBP_Extend},
474 {0x1BED, 0x1BED, WBP_Extend},
475 {0x1BEE, 0x1BEE, WBP_Extend},
476 {0x1BEF, 0x1BF1, WBP_Extend},
477 {0x1BF2, 0x1BF3, WBP_Extend},
478 {0x1C00, 0x1C23, WBP_ALetter},
479 {0x1C24, 0x1C2B, WBP_Extend},
480 {0x1C2C, 0x1C33, WBP_Extend},
481 {0x1C34, 0x1C35, WBP_Extend},
482 {0x1C36, 0x1C37, WBP_Extend},
483 {0x1C40, 0x1C49, WBP_Numeric},
484 {0x1C4D, 0x1C4F, WBP_ALetter},
485 {0x1C50, 0x1C59, WBP_Numeric},
486 {0x1C5A, 0x1C77, WBP_ALetter},
487 {0x1C78, 0x1C7D, WBP_ALetter},
488 {0x1CD0, 0x1CD2, WBP_Extend},
489 {0x1CD4, 0x1CE0, WBP_Extend},
490 {0x1CE1, 0x1CE1, WBP_Extend},
491 {0x1CE2, 0x1CE8, WBP_Extend},
492 {0x1CE9, 0x1CEC, WBP_ALetter},
493 {0x1CED, 0x1CED, WBP_Extend},
494 {0x1CEE, 0x1CF1, WBP_ALetter},
495 {0x1CF2, 0x1CF2, WBP_Extend},
496 {0x1D00, 0x1D2B, WBP_ALetter},
497 {0x1D2C, 0x1D61, WBP_ALetter},
498 {0x1D62, 0x1D77, WBP_ALetter},
499 {0x1D78, 0x1D78, WBP_ALetter},
500 {0x1D79, 0x1D9A, WBP_ALetter},
501 {0x1D9B, 0x1DBF, WBP_ALetter},
502 {0x1DC0, 0x1DE6, WBP_Extend},
503 {0x1DFC, 0x1DFF, WBP_Extend},
504 {0x1E00, 0x1F15, WBP_ALetter},
505 {0x1F18, 0x1F1D, WBP_ALetter},
506 {0x1F20, 0x1F45, WBP_ALetter},
507 {0x1F48, 0x1F4D, WBP_ALetter},
508 {0x1F50, 0x1F57, WBP_ALetter},
509 {0x1F59, 0x1F59, WBP_ALetter},
510 {0x1F5B, 0x1F5B, WBP_ALetter},
511 {0x1F5D, 0x1F5D, WBP_ALetter},
512 {0x1F5F, 0x1F7D, WBP_ALetter},
513 {0x1F80, 0x1FB4, WBP_ALetter},
514 {0x1FB6, 0x1FBC, WBP_ALetter},
515 {0x1FBE, 0x1FBE, WBP_ALetter},
516 {0x1FC2, 0x1FC4, WBP_ALetter},
517 {0x1FC6, 0x1FCC, WBP_ALetter},
518 {0x1FD0, 0x1FD3, WBP_ALetter},
519 {0x1FD6, 0x1FDB, WBP_ALetter},
520 {0x1FE0, 0x1FEC, WBP_ALetter},
521 {0x1FF2, 0x1FF4, WBP_ALetter},
522 {0x1FF6, 0x1FFC, WBP_ALetter},
523 {0x200C, 0x200D, WBP_Extend},
524 {0x200E, 0x200F, WBP_Format},
525 {0x2018, 0x2018, WBP_MidNumLet},
526 {0x2019, 0x2019, WBP_MidNumLet},
527 {0x2024, 0x2024, WBP_MidNumLet},
528 {0x2027, 0x2027, WBP_MidLetter},
529 {0x2028, 0x2028, WBP_Newline},
530 {0x2029, 0x2029, WBP_Newline},
531 {0x202A, 0x202E, WBP_Format},
532 {0x203F, 0x2040, WBP_ExtendNumLet},
533 {0x2044, 0x2044, WBP_MidNum},
534 {0x2054, 0x2054, WBP_ExtendNumLet},
535 {0x2060, 0x2064, WBP_Format},
536 {0x206A, 0x206F, WBP_Format},
537 {0x2071, 0x2071, WBP_ALetter},
538 {0x207F, 0x207F, WBP_ALetter},
539 {0x2090, 0x209C, WBP_ALetter},
540 {0x20D0, 0x20DC, WBP_Extend},
541 {0x20DD, 0x20E0, WBP_Extend},
542 {0x20E1, 0x20E1, WBP_Extend},
543 {0x20E2, 0x20E4, WBP_Extend},
544 {0x20E5, 0x20F0, WBP_Extend},
545 {0x2102, 0x2102, WBP_ALetter},
546 {0x2107, 0x2107, WBP_ALetter},
547 {0x210A, 0x2113, WBP_ALetter},
548 {0x2115, 0x2115, WBP_ALetter},
549 {0x2119, 0x211D, WBP_ALetter},
550 {0x2124, 0x2124, WBP_ALetter},
551 {0x2126, 0x2126, WBP_ALetter},
552 {0x2128, 0x2128, WBP_ALetter},
553 {0x212A, 0x212D, WBP_ALetter},
554 {0x212F, 0x2134, WBP_ALetter},
555 {0x2135, 0x2138, WBP_ALetter},
556 {0x2139, 0x2139, WBP_ALetter},
557 {0x213C, 0x213F, WBP_ALetter},
558 {0x2145, 0x2149, WBP_ALetter},
559 {0x214E, 0x214E, WBP_ALetter},
560 {0x2160, 0x2182, WBP_ALetter},
561 {0x2183, 0x2184, WBP_ALetter},
562 {0x2185, 0x2188, WBP_ALetter},
563 {0x24B6, 0x24E9, WBP_ALetter},
564 {0x2C00, 0x2C2E, WBP_ALetter},
565 {0x2C30, 0x2C5E, WBP_ALetter},
566 {0x2C60, 0x2C7C, WBP_ALetter},
567 {0x2C7D, 0x2C7D, WBP_ALetter},
568 {0x2C7E, 0x2CE4, WBP_ALetter},
569 {0x2CEB, 0x2CEE, WBP_ALetter},
570 {0x2CEF, 0x2CF1, WBP_Extend},
571 {0x2D00, 0x2D25, WBP_ALetter},
572 {0x2D30, 0x2D65, WBP_ALetter},
573 {0x2D6F, 0x2D6F, WBP_ALetter},
574 {0x2D7F, 0x2D7F, WBP_Extend},
575 {0x2D80, 0x2D96, WBP_ALetter},
576 {0x2DA0, 0x2DA6, WBP_ALetter},
577 {0x2DA8, 0x2DAE, WBP_ALetter},
578 {0x2DB0, 0x2DB6, WBP_ALetter},
579 {0x2DB8, 0x2DBE, WBP_ALetter},
580 {0x2DC0, 0x2DC6, WBP_ALetter},
581 {0x2DC8, 0x2DCE, WBP_ALetter},
582 {0x2DD0, 0x2DD6, WBP_ALetter},
583 {0x2DD8, 0x2DDE, WBP_ALetter},
584 {0x2DE0, 0x2DFF, WBP_Extend},
585 {0x2E2F, 0x2E2F, WBP_ALetter},
586 {0x3005, 0x3005, WBP_ALetter},
587 {0x302A, 0x302F, WBP_Extend},
588 {0x3031, 0x3035, WBP_Katakana},
589 {0x303B, 0x303B, WBP_ALetter},
590 {0x303C, 0x303C, WBP_ALetter},
591 {0x3099, 0x309A, WBP_Extend},
592 {0x309B, 0x309C, WBP_Katakana},
593 {0x30A0, 0x30A0, WBP_Katakana},
594 {0x30A1, 0x30FA, WBP_Katakana},
595 {0x30FC, 0x30FE, WBP_Katakana},
596 {0x30FF, 0x30FF, WBP_Katakana},
597 {0x3105, 0x312D, WBP_ALetter},
598 {0x3131, 0x318E, WBP_ALetter},
599 {0x31A0, 0x31BA, WBP_ALetter},
600 {0x31F0, 0x31FF, WBP_Katakana},
601 {0x32D0, 0x32FE, WBP_Katakana},
602 {0x3300, 0x3357, WBP_Katakana},
603 {0xA000, 0xA014, WBP_ALetter},
604 {0xA015, 0xA015, WBP_ALetter},
605 {0xA016, 0xA48C, WBP_ALetter},
606 {0xA4D0, 0xA4F7, WBP_ALetter},
607 {0xA4F8, 0xA4FD, WBP_ALetter},
608 {0xA500, 0xA60B, WBP_ALetter},
609 {0xA60C, 0xA60C, WBP_ALetter},
610 {0xA610, 0xA61F, WBP_ALetter},
611 {0xA620, 0xA629, WBP_Numeric},
612 {0xA62A, 0xA62B, WBP_ALetter},
613 {0xA640, 0xA66D, WBP_ALetter},
614 {0xA66E, 0xA66E, WBP_ALetter},
615 {0xA66F, 0xA66F, WBP_Extend},
616 {0xA670, 0xA672, WBP_Extend},
617 {0xA67C, 0xA67D, WBP_Extend},
618 {0xA67F, 0xA67F, WBP_ALetter},
619 {0xA680, 0xA697, WBP_ALetter},
620 {0xA6A0, 0xA6E5, WBP_ALetter},
621 {0xA6E6, 0xA6EF, WBP_ALetter},
622 {0xA6F0, 0xA6F1, WBP_Extend},
623 {0xA717, 0xA71F, WBP_ALetter},
624 {0xA722, 0xA76F, WBP_ALetter},
625 {0xA770, 0xA770, WBP_ALetter},
626 {0xA771, 0xA787, WBP_ALetter},
627 {0xA788, 0xA788, WBP_ALetter},
628 {0xA78B, 0xA78E, WBP_ALetter},
629 {0xA790, 0xA791, WBP_ALetter},
630 {0xA7A0, 0xA7A9, WBP_ALetter},
631 {0xA7FA, 0xA7FA, WBP_ALetter},
632 {0xA7FB, 0xA801, WBP_ALetter},
633 {0xA802, 0xA802, WBP_Extend},
634 {0xA803, 0xA805, WBP_ALetter},
635 {0xA806, 0xA806, WBP_Extend},
636 {0xA807, 0xA80A, WBP_ALetter},
637 {0xA80B, 0xA80B, WBP_Extend},
638 {0xA80C, 0xA822, WBP_ALetter},
639 {0xA823, 0xA824, WBP_Extend},
640 {0xA825, 0xA826, WBP_Extend},
641 {0xA827, 0xA827, WBP_Extend},
642 {0xA840, 0xA873, WBP_ALetter},
643 {0xA880, 0xA881, WBP_Extend},
644 {0xA882, 0xA8B3, WBP_ALetter},
645 {0xA8B4, 0xA8C3, WBP_Extend},
646 {0xA8C4, 0xA8C4, WBP_Extend},
647 {0xA8D0, 0xA8D9, WBP_Numeric},
648 {0xA8E0, 0xA8F1, WBP_Extend},
649 {0xA8F2, 0xA8F7, WBP_ALetter},
650 {0xA8FB, 0xA8FB, WBP_ALetter},
651 {0xA900, 0xA909, WBP_Numeric},
652 {0xA90A, 0xA925, WBP_ALetter},
653 {0xA926, 0xA92D, WBP_Extend},
654 {0xA930, 0xA946, WBP_ALetter},
655 {0xA947, 0xA951, WBP_Extend},
656 {0xA952, 0xA953, WBP_Extend},
657 {0xA960, 0xA97C, WBP_ALetter},
658 {0xA980, 0xA982, WBP_Extend},
659 {0xA983, 0xA983, WBP_Extend},
660 {0xA984, 0xA9B2, WBP_ALetter},
661 {0xA9B3, 0xA9B3, WBP_Extend},
662 {0xA9B4, 0xA9B5, WBP_Extend},
663 {0xA9B6, 0xA9B9, WBP_Extend},
664 {0xA9BA, 0xA9BB, WBP_Extend},
665 {0xA9BC, 0xA9BC, WBP_Extend},
666 {0xA9BD, 0xA9C0, WBP_Extend},
667 {0xA9CF, 0xA9CF, WBP_ALetter},
668 {0xA9D0, 0xA9D9, WBP_Numeric},
669 {0xAA00, 0xAA28, WBP_ALetter},
670 {0xAA29, 0xAA2E, WBP_Extend},
671 {0xAA2F, 0xAA30, WBP_Extend},
672 {0xAA31, 0xAA32, WBP_Extend},
673 {0xAA33, 0xAA34, WBP_Extend},
674 {0xAA35, 0xAA36, WBP_Extend},
675 {0xAA40, 0xAA42, WBP_ALetter},
676 {0xAA43, 0xAA43, WBP_Extend},
677 {0xAA44, 0xAA4B, WBP_ALetter},
678 {0xAA4C, 0xAA4C, WBP_Extend},
679 {0xAA4D, 0xAA4D, WBP_Extend},
680 {0xAA50, 0xAA59, WBP_Numeric},
681 {0xAA7B, 0xAA7B, WBP_Extend},
682 {0xAAB0, 0xAAB0, WBP_Extend},
683 {0xAAB2, 0xAAB4, WBP_Extend},
684 {0xAAB7, 0xAAB8, WBP_Extend},
685 {0xAABE, 0xAABF, WBP_Extend},
686 {0xAAC1, 0xAAC1, WBP_Extend},
687 {0xAB01, 0xAB06, WBP_ALetter},
688 {0xAB09, 0xAB0E, WBP_ALetter},
689 {0xAB11, 0xAB16, WBP_ALetter},
690 {0xAB20, 0xAB26, WBP_ALetter},
691 {0xAB28, 0xAB2E, WBP_ALetter},
692 {0xABC0, 0xABE2, WBP_ALetter},
693 {0xABE3, 0xABE4, WBP_Extend},
694 {0xABE5, 0xABE5, WBP_Extend},
695 {0xABE6, 0xABE7, WBP_Extend},
696 {0xABE8, 0xABE8, WBP_Extend},
697 {0xABE9, 0xABEA, WBP_Extend},
698 {0xABEC, 0xABEC, WBP_Extend},
699 {0xABED, 0xABED, WBP_Extend},
700 {0xABF0, 0xABF9, WBP_Numeric},
701 {0xAC00, 0xD7A3, WBP_ALetter},
702 {0xD7B0, 0xD7C6, WBP_ALetter},
703 {0xD7CB, 0xD7FB, WBP_ALetter},
704 {0xFB00, 0xFB06, WBP_ALetter},
705 {0xFB13, 0xFB17, WBP_ALetter},
706 {0xFB1D, 0xFB1D, WBP_ALetter},
707 {0xFB1E, 0xFB1E, WBP_Extend},
708 {0xFB1F, 0xFB28, WBP_ALetter},
709 {0xFB2A, 0xFB36, WBP_ALetter},
710 {0xFB38, 0xFB3C, WBP_ALetter},
711 {0xFB3E, 0xFB3E, WBP_ALetter},
712 {0xFB40, 0xFB41, WBP_ALetter},
713 {0xFB43, 0xFB44, WBP_ALetter},
714 {0xFB46, 0xFBB1, WBP_ALetter},
715 {0xFBD3, 0xFD3D, WBP_ALetter},
716 {0xFD50, 0xFD8F, WBP_ALetter},
717 {0xFD92, 0xFDC7, WBP_ALetter},
718 {0xFDF0, 0xFDFB, WBP_ALetter},
719 {0xFE00, 0xFE0F, WBP_Extend},
720 {0xFE10, 0xFE10, WBP_MidNum},
721 {0xFE13, 0xFE13, WBP_MidLetter},
722 {0xFE14, 0xFE14, WBP_MidNum},
723 {0xFE20, 0xFE26, WBP_Extend},
724 {0xFE33, 0xFE34, WBP_ExtendNumLet},
725 {0xFE4D, 0xFE4F, WBP_ExtendNumLet},
726 {0xFE50, 0xFE50, WBP_MidNum},
727 {0xFE52, 0xFE52, WBP_MidNumLet},
728 {0xFE54, 0xFE54, WBP_MidNum},
729 {0xFE55, 0xFE55, WBP_MidLetter},
730 {0xFE70, 0xFE74, WBP_ALetter},
731 {0xFE76, 0xFEFC, WBP_ALetter},
732 {0xFEFF, 0xFEFF, WBP_Format},
733 {0xFF07, 0xFF07, WBP_MidNumLet},
734 {0xFF0C, 0xFF0C, WBP_MidNum},
735 {0xFF0E, 0xFF0E, WBP_MidNumLet},
736 {0xFF1A, 0xFF1A, WBP_MidLetter},
737 {0xFF1B, 0xFF1B, WBP_MidNum},
738 {0xFF21, 0xFF3A, WBP_ALetter},
739 {0xFF3F, 0xFF3F, WBP_ExtendNumLet},
740 {0xFF41, 0xFF5A, WBP_ALetter},
741 {0xFF66, 0xFF6F, WBP_Katakana},
742 {0xFF70, 0xFF70, WBP_Katakana},
743 {0xFF71, 0xFF9D, WBP_Katakana},
744 {0xFF9E, 0xFF9F, WBP_Extend},
745 {0xFFA0, 0xFFBE, WBP_ALetter},
746 {0xFFC2, 0xFFC7, WBP_ALetter},
747 {0xFFCA, 0xFFCF, WBP_ALetter},
748 {0xFFD2, 0xFFD7, WBP_ALetter},
749 {0xFFDA, 0xFFDC, WBP_ALetter},
750 {0xFFF9, 0xFFFB, WBP_Format},
751 {0x10000, 0x1000B, WBP_ALetter},
752 {0x1000D, 0x10026, WBP_ALetter},
753 {0x10028, 0x1003A, WBP_ALetter},
754 {0x1003C, 0x1003D, WBP_ALetter},
755 {0x1003F, 0x1004D, WBP_ALetter},
756 {0x10050, 0x1005D, WBP_ALetter},
757 {0x10080, 0x100FA, WBP_ALetter},
758 {0x10140, 0x10174, WBP_ALetter},
759 {0x101FD, 0x101FD, WBP_Extend},
760 {0x10280, 0x1029C, WBP_ALetter},
761 {0x102A0, 0x102D0, WBP_ALetter},
762 {0x10300, 0x1031E, WBP_ALetter},
763 {0x10330, 0x10340, WBP_ALetter},
764 {0x10341, 0x10341, WBP_ALetter},
765 {0x10342, 0x10349, WBP_ALetter},
766 {0x1034A, 0x1034A, WBP_ALetter},
767 {0x10380, 0x1039D, WBP_ALetter},
768 {0x103A0, 0x103C3, WBP_ALetter},
769 {0x103C8, 0x103CF, WBP_ALetter},
770 {0x103D1, 0x103D5, WBP_ALetter},
771 {0x10400, 0x1044F, WBP_ALetter},
772 {0x10450, 0x1049D, WBP_ALetter},
773 {0x104A0, 0x104A9, WBP_Numeric},
774 {0x10800, 0x10805, WBP_ALetter},
775 {0x10808, 0x10808, WBP_ALetter},
776 {0x1080A, 0x10835, WBP_ALetter},
777 {0x10837, 0x10838, WBP_ALetter},
778 {0x1083C, 0x1083C, WBP_ALetter},
779 {0x1083F, 0x10855, WBP_ALetter},
780 {0x10900, 0x10915, WBP_ALetter},
781 {0x10920, 0x10939, WBP_ALetter},
782 {0x10A00, 0x10A00, WBP_ALetter},
783 {0x10A01, 0x10A03, WBP_Extend},
784 {0x10A05, 0x10A06, WBP_Extend},
785 {0x10A0C, 0x10A0F, WBP_Extend},
786 {0x10A10, 0x10A13, WBP_ALetter},
787 {0x10A15, 0x10A17, WBP_ALetter},
788 {0x10A19, 0x10A33, WBP_ALetter},
789 {0x10A38, 0x10A3A, WBP_Extend},
790 {0x10A3F, 0x10A3F, WBP_Extend},
791 {0x10A60, 0x10A7C, WBP_ALetter},
792 {0x10B00, 0x10B35, WBP_ALetter},
793 {0x10B40, 0x10B55, WBP_ALetter},
794 {0x10B60, 0x10B72, WBP_ALetter},
795 {0x10C00, 0x10C48, WBP_ALetter},
796 {0x11000, 0x11000, WBP_Extend},
797 {0x11001, 0x11001, WBP_Extend},
798 {0x11002, 0x11002, WBP_Extend},
799 {0x11003, 0x11037, WBP_ALetter},
800 {0x11038, 0x11046, WBP_Extend},
801 {0x11066, 0x1106F, WBP_Numeric},
802 {0x11080, 0x11081, WBP_Extend},
803 {0x11082, 0x11082, WBP_Extend},
804 {0x11083, 0x110AF, WBP_ALetter},
805 {0x110B0, 0x110B2, WBP_Extend},
806 {0x110B3, 0x110B6, WBP_Extend},
807 {0x110B7, 0x110B8, WBP_Extend},
808 {0x110B9, 0x110BA, WBP_Extend},
809 {0x110BD, 0x110BD, WBP_Format},
810 {0x12000, 0x1236E, WBP_ALetter},
811 {0x12400, 0x12462, WBP_ALetter},
812 {0x13000, 0x1342E, WBP_ALetter},
813 {0x16800, 0x16A38, WBP_ALetter},
814 {0x1B000, 0x1B000, WBP_Katakana},
815 {0x1D165, 0x1D166, WBP_Extend},
816 {0x1D167, 0x1D169, WBP_Extend},
817 {0x1D16D, 0x1D172, WBP_Extend},
818 {0x1D173, 0x1D17A, WBP_Format},
819 {0x1D17B, 0x1D182, WBP_Extend},
820 {0x1D185, 0x1D18B, WBP_Extend},
821 {0x1D1AA, 0x1D1AD, WBP_Extend},
822 {0x1D242, 0x1D244, WBP_Extend},
823 {0x1D400, 0x1D454, WBP_ALetter},
824 {0x1D456, 0x1D49C, WBP_ALetter},
825 {0x1D49E, 0x1D49F, WBP_ALetter},
826 {0x1D4A2, 0x1D4A2, WBP_ALetter},
827 {0x1D4A5, 0x1D4A6, WBP_ALetter},
828 {0x1D4A9, 0x1D4AC, WBP_ALetter},
829 {0x1D4AE, 0x1D4B9, WBP_ALetter},
830 {0x1D4BB, 0x1D4BB, WBP_ALetter},
831 {0x1D4BD, 0x1D4C3, WBP_ALetter},
832 {0x1D4C5, 0x1D505, WBP_ALetter},
833 {0x1D507, 0x1D50A, WBP_ALetter},
834 {0x1D50D, 0x1D514, WBP_ALetter},
835 {0x1D516, 0x1D51C, WBP_ALetter},
836 {0x1D51E, 0x1D539, WBP_ALetter},
837 {0x1D53B, 0x1D53E, WBP_ALetter},
838 {0x1D540, 0x1D544, WBP_ALetter},
839 {0x1D546, 0x1D546, WBP_ALetter},
840 {0x1D54A, 0x1D550, WBP_ALetter},
841 {0x1D552, 0x1D6A5, WBP_ALetter},
842 {0x1D6A8, 0x1D6C0, WBP_ALetter},
843 {0x1D6C2, 0x1D6DA, WBP_ALetter},
844 {0x1D6DC, 0x1D6FA, WBP_ALetter},
845 {0x1D6FC, 0x1D714, WBP_ALetter},
846 {0x1D716, 0x1D734, WBP_ALetter},
847 {0x1D736, 0x1D74E, WBP_ALetter},
848 {0x1D750, 0x1D76E, WBP_ALetter},
849 {0x1D770, 0x1D788, WBP_ALetter},
850 {0x1D78A, 0x1D7A8, WBP_ALetter},
851 {0x1D7AA, 0x1D7C2, WBP_ALetter},
852 {0x1D7C4, 0x1D7CB, WBP_ALetter},
853 {0x1D7CE, 0x1D7FF, WBP_Numeric},
854 {0xE0001, 0xE0001, WBP_Format},
855 {0xE0020, 0xE007F, WBP_Format},
856 {0xE0100, 0xE01EF, WBP_Extend},
857 {0xFFFFFFFF, 0xFFFFFFFF, WBP_Undefined}
858};
diff --git a/libraries/evas/src/static_deps/liblinebreak/wordbreakdef.h b/libraries/evas/src/static_deps/liblinebreak/wordbreakdef.h
new file mode 100644
index 0000000..331cd01
--- /dev/null
+++ b/libraries/evas/src/static_deps/liblinebreak/wordbreakdef.h
@@ -0,0 +1,80 @@
1/* vim: set tabstop=4 shiftwidth=4: */
2
3/*
4 * Word breaking in a Unicode sequence. Designed to be used in a
5 * generic text renderer.
6 *
7 * Copyright (C) 2011-2011 Tom Hacohen <tom@stosb.com>
8 *
9 * This software is provided 'as-is', without any express or implied
10 * warranty. In no event will the author be held liable for any damages
11 * arising from the use of this software.
12 *
13 * Permission is granted to anyone to use this software for any purpose,
14 * including commercial applications, and to alter it and redistribute
15 * it freely, subject to the following restrictions:
16 *
17 * 1. The origin of this software must not be misrepresented; you must
18 * not claim that you wrote the original software. If you use this
19 * software in a product, an acknowledgement in the product
20 * documentation would be appreciated but is not required.
21 * 2. Altered source versions must be plainly marked as such, and must
22 * not be misrepresented as being the original software.
23 * 3. This notice may not be removed or altered from any source
24 * distribution.
25 *
26 * The main reference is Unicode Standard Annex 29 (UAX #29):
27 * <URL:http://unicode.org/reports/tr29>
28 *
29 * When this library was designed, this annex was at Revision 17, for
30 * Unicode 6.0.0:
31 * <URL:http://www.unicode.org/reports/tr29/tr29-17.html>
32 *
33 * The Unicode Terms of Use are available at
34 * <URL:http://www.unicode.org/copyright.html>
35 */
36
37/**
38 * @file wordbreakdef.h
39 *
40 * Definitions of internal data structures, declarations of global
41 * variables, and function prototypes for the word breaking algorithm.
42 *
43 * @version 2.0, 2011/12/12
44 * @author Tom Hacohen
45 */
46
47/**
48 * Word break classes. This is a direct mapping of Table 3 of Unicode
49 * Standard Annex 29, Revision 17.
50 */
51enum WordBreakClass
52{
53 WBP_Undefined,
54
55 /* The following break classes are treated in the pair table. */
56 WBP_CR,
57 WBP_LF,
58 WBP_Newline,
59 WBP_Extend,
60 WBP_Format,
61 WBP_Katakana,
62 WBP_ALetter,
63 WBP_MidNumLet,
64 WBP_MidLetter,
65 WBP_MidNum,
66 WBP_Numeric,
67 WBP_ExtendNumLet,
68 WBP_Any
69};
70
71/**
72 * Struct for entries of word break properties. The array of the
73 * entries \e must be sorted.
74 */
75struct WordBreakProperties
76{
77 utf32_t start; /**< Starting coding point */
78 utf32_t end; /**< End coding point */
79 enum WordBreakClass prop; /**< The word breaking property */
80};
diff --git a/libraries/evas/src/tests/Makefile.in b/libraries/evas/src/tests/Makefile.in
index c598c3d..8790c33 100644
--- a/libraries/evas/src/tests/Makefile.in
+++ b/libraries/evas/src/tests/Makefile.in
@@ -203,8 +203,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
203PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ 203PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
204PIXMAN_LIBS = @PIXMAN_LIBS@ 204PIXMAN_LIBS = @PIXMAN_LIBS@
205PKG_CONFIG = @PKG_CONFIG@ 205PKG_CONFIG = @PKG_CONFIG@
206PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
207PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
208PNG_CFLAGS = @PNG_CFLAGS@ 206PNG_CFLAGS = @PNG_CFLAGS@
209PNG_LIBS = @PNG_LIBS@ 207PNG_LIBS = @PNG_LIBS@
210RANLIB = @RANLIB@ 208RANLIB = @RANLIB@
@@ -221,6 +219,8 @@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
221VALGRIND_LIBS = @VALGRIND_LIBS@ 219VALGRIND_LIBS = @VALGRIND_LIBS@
222VERSION = @VERSION@ 220VERSION = @VERSION@
223VMAJ = @VMAJ@ 221VMAJ = @VMAJ@
222WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
223WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
224WIN32_CFLAGS = @WIN32_CFLAGS@ 224WIN32_CFLAGS = @WIN32_CFLAGS@
225WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ 225WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
226XCB_CFLAGS = @XCB_CFLAGS@ 226XCB_CFLAGS = @XCB_CFLAGS@
@@ -302,6 +302,10 @@ evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
302evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ 302evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
303evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ 303evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
304evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ 304evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
305evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
306evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
307evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
308evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
305evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ 309evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
306evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ 310evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
307evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ 311evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
diff --git a/libraries/evas/src/tests/evas_test_callbacks.c b/libraries/evas/src/tests/evas_test_callbacks.c
index 675ee1c..164851e 100644
--- a/libraries/evas/src/tests/evas_test_callbacks.c
+++ b/libraries/evas/src/tests/evas_test_callbacks.c
@@ -28,7 +28,7 @@ do \
28} \ 28} \
29while (0) 29while (0)
30 30
31static int counter = 1; 31static uintptr_t counter = 1;
32 32
33static void 33static void
34_obj_event_cb(void *data, Evas *e, Evas_Object *obj, void *event_info) 34_obj_event_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
@@ -37,7 +37,7 @@ _obj_event_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
37 (void) obj; 37 (void) obj;
38 (void) event_info; 38 (void) event_info;
39 39
40 fail_if(((int) data) != counter); 40 fail_if(((uintptr_t) data) != counter);
41 41
42 counter++; 42 counter++;
43} 43}
@@ -83,7 +83,7 @@ _event_cb(void *data, Evas *e, void *event_info)
83 (void) e; 83 (void) e;
84 (void) event_info; 84 (void) event_info;
85 85
86 fail_if(((int) data) != counter); 86 fail_if(((uintptr_t) data) != counter);
87 87
88 counter++; 88 counter++;
89} 89}
diff --git a/libraries/evas/src/tests/evas_test_textblock.c b/libraries/evas/src/tests/evas_test_textblock.c
index 6a28353..cf6a78b 100644
--- a/libraries/evas/src/tests/evas_test_textblock.c
+++ b/libraries/evas/src/tests/evas_test_textblock.c
@@ -21,9 +21,7 @@ _evas_textblock_format_offset_get(const Evas_Object_Textblock_Node_Format *n);
21 21
22static const char *style_buf = 22static const char *style_buf =
23 "DEFAULT='font=Sans font_size=10 color=#000 text_class=entry'" 23 "DEFAULT='font=Sans font_size=10 color=#000 text_class=entry'"
24 "br='\n'" 24 "newline='br'"
25 "ps='ps'"
26 "tab='\t'"
27 "b='+ font=Sans:style=bold'"; 25 "b='+ font=Sans:style=bold'";
28 26
29#define START_TB_TEST() \ 27#define START_TB_TEST() \
@@ -61,7 +59,7 @@ while (0)
61START_TEST(evas_textblock_simple) 59START_TEST(evas_textblock_simple)
62{ 60{
63 START_TB_TEST(); 61 START_TB_TEST();
64 const char *buf = "Th<i>i</i>s is a <br> te<b>s</b>t."; 62 const char *buf = "Th<i>i</i>s is a <br/> te<b>s</b>t.";
65 evas_object_textblock_text_markup_set(tb, buf); 63 evas_object_textblock_text_markup_set(tb, buf);
66 fail_if(strcmp(evas_object_textblock_text_markup_get(tb), buf)); 64 fail_if(strcmp(evas_object_textblock_text_markup_get(tb), buf));
67 END_TB_TEST(); 65 END_TB_TEST();
@@ -95,12 +93,12 @@ START_TEST(evas_textblock_cursor)
95 Evas_Coord x, y, w, h; 93 Evas_Coord x, y, w, h;
96 size_t i, len; 94 size_t i, len;
97 Evas_Coord nw, nh; 95 Evas_Coord nw, nh;
98 const char *buf = "This is a<br> test.<ps>Lets see if this works.<ps>עוד פסקה."; 96 const char *buf = "This is a<br/> test.<ps/>Lets see if this works.<ps/>עוד פסקה.";
99 97
100 /* Walk the textblock using cursor_char_next */ 98 /* Walk the textblock using cursor_char_next */
101 evas_object_textblock_text_markup_set(tb, buf); 99 evas_object_textblock_text_markup_set(tb, buf);
102 fail_if(strcmp(evas_object_textblock_text_markup_get(tb), buf)); 100 fail_if(strcmp(evas_object_textblock_text_markup_get(tb), buf));
103 len = eina_unicode_utf8_get_len(buf) - 9; /* 9 because len(<br>) == 1 and len(<ps>) == 1 */ 101 len = eina_unicode_utf8_get_len(buf) - 12; /* 12 because len(<br/>) == 1 and len(<ps/>) == 1 */
104 for (i = 0 ; i < len ; i++) 102 for (i = 0 ; i < len ; i++)
105 { 103 {
106 _CHECK_CURSOR_COORDS(); 104 _CHECK_CURSOR_COORDS();
@@ -284,7 +282,7 @@ START_TEST(evas_textblock_cursor)
284 /* Paragraph text get */ 282 /* Paragraph text get */
285 evas_textblock_cursor_paragraph_first(cur); 283 evas_textblock_cursor_paragraph_first(cur);
286 fail_if(strcmp(evas_textblock_cursor_paragraph_text_get(cur), 284 fail_if(strcmp(evas_textblock_cursor_paragraph_text_get(cur),
287 "This is a<br> test.")); 285 "This is a<br/> test."));
288 evas_textblock_cursor_paragraph_next(cur); 286 evas_textblock_cursor_paragraph_next(cur);
289 fail_if(strcmp(evas_textblock_cursor_paragraph_text_get(cur), 287 fail_if(strcmp(evas_textblock_cursor_paragraph_text_get(cur),
290 "Lets see if this works.")); 288 "Lets see if this works."));
@@ -294,9 +292,9 @@ START_TEST(evas_textblock_cursor)
294 292
295 /* Paragraph length get */ 293 /* Paragraph length get */
296 evas_textblock_cursor_paragraph_first(cur); 294 evas_textblock_cursor_paragraph_first(cur);
297 /* -3 because len(<br>) == 1 */ 295 /* -4 because len(<br/>) == 1 */
298 fail_if(evas_textblock_cursor_paragraph_text_length_get(cur) != 296 fail_if(evas_textblock_cursor_paragraph_text_length_get(cur) !=
299 eina_unicode_utf8_get_len("This is a<br> test.") - 3); 297 eina_unicode_utf8_get_len("This is a<br/> test.") - 4);
300 evas_textblock_cursor_paragraph_next(cur); 298 evas_textblock_cursor_paragraph_next(cur);
301 fail_if(evas_textblock_cursor_paragraph_text_length_get(cur) != 299 fail_if(evas_textblock_cursor_paragraph_text_length_get(cur) !=
302 eina_unicode_utf8_get_len("Lets see if this works.")); 300 eina_unicode_utf8_get_len("Lets see if this works."));
@@ -308,7 +306,7 @@ START_TEST(evas_textblock_cursor)
308 evas_textblock_cursor_pos_set(cur, 0); 306 evas_textblock_cursor_pos_set(cur, 0);
309 fail_if(strcmp(evas_textblock_cursor_content_get(cur), "T")); 307 fail_if(strcmp(evas_textblock_cursor_content_get(cur), "T"));
310 evas_textblock_cursor_pos_set(cur, 9); 308 evas_textblock_cursor_pos_set(cur, 9);
311 fail_if(strcmp(evas_textblock_cursor_content_get(cur), "<br>")); 309 fail_if(strcmp(evas_textblock_cursor_content_get(cur), "<br/>"));
312 evas_textblock_cursor_pos_set(cur, 43); 310 evas_textblock_cursor_pos_set(cur, 43);
313 fail_if(strcmp(evas_textblock_cursor_content_get(cur), "ד")); 311 fail_if(strcmp(evas_textblock_cursor_content_get(cur), "ד"));
314 312
@@ -414,12 +412,12 @@ START_TEST(evas_textblock_cursor)
414 412
415#ifdef HAVE_FRIBIDI 413#ifdef HAVE_FRIBIDI
416 evas_object_textblock_text_markup_set(tb, 414 evas_object_textblock_text_markup_set(tb,
417 "testנסיוןtestנסיון<ps>" 415 "testנסיוןtestנסיון<ps/>"
418 "נסיוןtestנסיוןtest<ps>" 416 "נסיוןtestנסיוןtest<ps/>"
419 "testנסיוןtest<ps>" 417 "testנסיוןtest<ps/>"
420 "נסיוןtestנסיון<ps>" 418 "נסיוןtestנסיון<ps/>"
421 "testנסיון<br>נסיון<ps>" 419 "testנסיון<br/>נסיון<ps/>"
422 "נסיוןtest<br>test" 420 "נסיוןtest<br/>test"
423 ); 421 );
424 422
425 for (i = 0 ; i < 8 ; i++) 423 for (i = 0 ; i < 8 ; i++)
@@ -568,6 +566,32 @@ START_TEST(evas_textblock_cursor)
568 fail_if(evas_textblock_cursor_compare(main_cur, cur)); 566 fail_if(evas_textblock_cursor_compare(main_cur, cur));
569 } 567 }
570 568
569 {
570 const char *buf_wb = "a This is_a t:e.s't a";
571 evas_object_textblock_text_markup_set(tb, buf_wb);
572
573 /* Word start/end */
574 evas_textblock_cursor_pos_set(cur, 3);
575 evas_textblock_cursor_word_start(cur);
576 fail_if(2 != evas_textblock_cursor_pos_get(cur));
577 evas_textblock_cursor_word_end(cur);
578 fail_if(5 != evas_textblock_cursor_pos_get(cur));
579
580 evas_textblock_cursor_pos_set(cur, 13);
581 evas_textblock_cursor_word_end(cur);
582 fail_if(18 != evas_textblock_cursor_pos_get(cur));
583 evas_textblock_cursor_word_start(cur);
584 fail_if(12 != evas_textblock_cursor_pos_get(cur));
585 evas_textblock_cursor_word_start(cur);
586 fail_if(12 != evas_textblock_cursor_pos_get(cur));
587 evas_textblock_cursor_word_start(cur);
588 fail_if(12 != evas_textblock_cursor_pos_get(cur));
589 evas_textblock_cursor_word_end(cur);
590 fail_if(18 != evas_textblock_cursor_pos_get(cur));
591 evas_textblock_cursor_word_end(cur);
592 fail_if(18 != evas_textblock_cursor_pos_get(cur));
593 }
594
571 END_TB_TEST(); 595 END_TB_TEST();
572} 596}
573END_TEST 597END_TEST
@@ -723,7 +747,7 @@ START_TEST(evas_textblock_format_removal)
723 747
724 /* Range deletion across paragraphs */ 748 /* Range deletion across paragraphs */
725 evas_object_textblock_text_markup_set(tb, 749 evas_object_textblock_text_markup_set(tb,
726 "Th<b>is a<a>te<ps>" 750 "Th<b>is a<a>te<ps/>"
727 "s</a>st</b>."); 751 "s</a>st</b>.");
728 evas_textblock_cursor_pos_set(cur, 6); 752 evas_textblock_cursor_pos_set(cur, 6);
729 evas_textblock_cursor_pos_set(main_cur, 10); 753 evas_textblock_cursor_pos_set(main_cur, 10);
@@ -749,14 +773,14 @@ START_TEST(evas_textblock_format_removal)
749 fail_if (fnode); 773 fail_if (fnode);
750 774
751 /* Two formats across different paragraphs with notihng in between. */ 775 /* Two formats across different paragraphs with notihng in between. */
752 evas_object_textblock_text_markup_set(tb, "<b><ps></b>"); 776 evas_object_textblock_text_markup_set(tb, "<b><ps/></b>");
753 evas_textblock_cursor_pos_set(cur, 0); 777 evas_textblock_cursor_pos_set(cur, 0);
754 evas_textblock_cursor_char_delete(cur); 778 evas_textblock_cursor_char_delete(cur);
755 fnode = evas_textblock_node_format_first_get(tb); 779 fnode = evas_textblock_node_format_first_get(tb);
756 fail_if (fnode); 780 fail_if (fnode);
757 781
758 /* Try with range */ 782 /* Try with range */
759 evas_object_textblock_text_markup_set(tb, "<b><ps></b>"); 783 evas_object_textblock_text_markup_set(tb, "<b><ps/></b>");
760 evas_textblock_cursor_pos_set(cur, 0); 784 evas_textblock_cursor_pos_set(cur, 0);
761 evas_textblock_cursor_pos_set(main_cur, 1); 785 evas_textblock_cursor_pos_set(main_cur, 1);
762 evas_textblock_cursor_range_delete(cur, main_cur); 786 evas_textblock_cursor_range_delete(cur, main_cur);
@@ -765,7 +789,7 @@ START_TEST(evas_textblock_format_removal)
765 789
766 /* Verify fmt position and REP_CHAR positions are the same */ 790 /* Verify fmt position and REP_CHAR positions are the same */
767 evas_object_textblock_text_markup_set(tb, 791 evas_object_textblock_text_markup_set(tb,
768 "This is<ps>an <item absize=93x152 vsize=ascent></>a."); 792 "This is<ps/>an <item absize=93x152 vsize=ascent></>a.");
769 evas_textblock_cursor_pos_set(cur, 7); 793 evas_textblock_cursor_pos_set(cur, 7);
770 evas_textblock_cursor_char_delete(cur); 794 evas_textblock_cursor_char_delete(cur);
771 fnode = evas_textblock_node_format_first_get(tb); 795 fnode = evas_textblock_node_format_first_get(tb);
@@ -1091,9 +1115,9 @@ START_TEST(evas_textblock_wrapping)
1091 evas_object_textblock_text_markup_set(tb, "a"); 1115 evas_object_textblock_text_markup_set(tb, "a");
1092 evas_object_textblock_size_formatted_get(tb, &bw, &bh); 1116 evas_object_textblock_size_formatted_get(tb, &bw, &bh);
1093 evas_object_textblock_text_markup_set(tb, 1117 evas_object_textblock_text_markup_set(tb,
1094 "aaaa aaaa aaa aa aaa<ps>" 1118 "aaaa aaaa aaa aa aaa<ps/>"
1095 "aaaa aaa aaa aaa aaa<ps>" 1119 "aaaa aaa aaa aaa aaa<ps/>"
1096 "a aaaaa aaaaaaaaaaaaaa<br>aaaaa<ps>" 1120 "a aaaaa aaaaaaaaaaaaaa<br/>aaaaa<ps/>"
1097 "aaaaaa" 1121 "aaaaaa"
1098 ); 1122 );
1099 evas_textblock_cursor_format_prepend(cur, "+ wrap=char"); 1123 evas_textblock_cursor_format_prepend(cur, "+ wrap=char");
@@ -1113,9 +1137,9 @@ START_TEST(evas_textblock_wrapping)
1113 evas_object_textblock_text_markup_set(tb, "aaaaaa"); 1137 evas_object_textblock_text_markup_set(tb, "aaaaaa");
1114 evas_object_textblock_size_formatted_get(tb, &bw, &bh); 1138 evas_object_textblock_size_formatted_get(tb, &bw, &bh);
1115 evas_object_textblock_text_markup_set(tb, 1139 evas_object_textblock_text_markup_set(tb,
1116 "aaaa aaaa aaa aa aaa<ps>" 1140 "aaaa aaaa aaa aa aaa<ps/>"
1117 "aaaa aaa aaa aaa aaa<ps>" 1141 "aaaa aaa aaa aaa aaa<ps/>"
1118 "a aaaaa aaaaaa<br>aaaaa<ps>" 1142 "a aaaaa aaaaaa<br/>aaaaa<ps/>"
1119 "aaaaa" 1143 "aaaaa"
1120 ); 1144 );
1121 evas_textblock_cursor_format_prepend(cur, "+ wrap=word"); 1145 evas_textblock_cursor_format_prepend(cur, "+ wrap=word");
@@ -1134,9 +1158,9 @@ START_TEST(evas_textblock_wrapping)
1134 evas_object_textblock_text_markup_set(tb, "a"); 1158 evas_object_textblock_text_markup_set(tb, "a");
1135 evas_object_textblock_size_formatted_get(tb, &bw, &bh); 1159 evas_object_textblock_size_formatted_get(tb, &bw, &bh);
1136 evas_object_textblock_text_markup_set(tb, 1160 evas_object_textblock_text_markup_set(tb,
1137 "aaaa aaaa aaa aa aaa<ps>" 1161 "aaaa aaaa aaa aa aaa<ps/>"
1138 "aaaa aaa aaa aaa aaa<ps>" 1162 "aaaa aaa aaa aaa aaa<ps/>"
1139 "a aaaaa aaaaaa<br>aaaaa<ps>" 1163 "a aaaaa aaaaaa<br/>aaaaa<ps/>"
1140 "aaaaa" 1164 "aaaaa"
1141 ); 1165 );
1142 evas_textblock_cursor_format_prepend(cur, "+ wrap=mixed"); 1166 evas_textblock_cursor_format_prepend(cur, "+ wrap=mixed");
@@ -1156,26 +1180,26 @@ START_TEST(evas_textblock_wrapping)
1156 int wrap_items = sizeof(wrap_style) / sizeof(*wrap_style); 1180 int wrap_items = sizeof(wrap_style) / sizeof(*wrap_style);
1157 1181
1158 evas_object_textblock_text_markup_set(tb, 1182 evas_object_textblock_text_markup_set(tb,
1159 "This is an entry widget in this window that<br>" 1183 "This is an entry widget in this window that<br/>"
1160 "uses markup <b>like this</> for styling and<br>" 1184 "uses markup <b>like this</> for styling and<br/>"
1161 "formatting <em>like this</>, as well as<br>" 1185 "formatting <em>like this</>, as well as<br/>"
1162 "<a href=X><link>links in the text</></a>, so enter text<br>" 1186 "<a href=X><link>links in the text</></a>, so enter text<br/>"
1163 "in here to edit it. By the way, links are<br>" 1187 "in here to edit it. By the way, links are<br/>"
1164 "called <a href=anc-02>Anchors</a> so you will need<br>" 1188 "called <a href=anc-02>Anchors</a> so you will need<br/>"
1165 "to refer to them this way.<br>" 1189 "to refer to them this way.<br/>"
1166 "<br>" 1190 "<br/>"
1167 1191
1168 "Also you can stick in items with (relsize + ascent): " 1192 "Also you can stick in items with (relsize + ascent): "
1169 "<item relsize=16x16 vsize=ascent href=emoticon/evil-laugh></item>" 1193 "<item relsize=16x16 vsize=ascent href=emoticon/evil-laugh></item>"
1170 " (full) " 1194 " (full) "
1171 "<item relsize=16x16 vsize=full href=emoticon/guilty-smile></item>" 1195 "<item relsize=16x16 vsize=full href=emoticon/guilty-smile></item>"
1172 " (to the left)<br>" 1196 " (to the left)<br/>"
1173 1197
1174 "Also (size + ascent): " 1198 "Also (size + ascent): "
1175 "<item size=16x16 vsize=ascent href=emoticon/haha></item>" 1199 "<item size=16x16 vsize=ascent href=emoticon/haha></item>"
1176 " (full) " 1200 " (full) "
1177 "<item size=16x16 vsize=full href=emoticon/happy-panting></item>" 1201 "<item size=16x16 vsize=full href=emoticon/happy-panting></item>"
1178 " (before this)<br>" 1202 " (before this)<br/>"
1179 1203
1180 "And as well (absize + ascent): " 1204 "And as well (absize + ascent): "
1181 "<item absize=64x64 vsize=ascent href=emoticon/knowing-grin></item>" 1205 "<item absize=64x64 vsize=ascent href=emoticon/knowing-grin></item>"
@@ -1214,6 +1238,13 @@ START_TEST(evas_textblock_wrapping)
1214 evas_object_textblock_size_formatted_get(tb, &w, &h); 1238 evas_object_textblock_size_formatted_get(tb, &w, &h);
1215 fail_if((w > (nw / 2)) || (h != nh)); 1239 fail_if((w > (nw / 2)) || (h != nh));
1216 1240
1241 evas_object_textblock_text_markup_set(tb, "aaaaaaaaaaaaaaaaaa<br/>b");
1242 evas_textblock_cursor_format_prepend(cur, "+ ellipsis=1.0 wrap=word");
1243 evas_object_textblock_size_native_get(tb, &nw, &nh);
1244 evas_object_resize(tb, nw / 2, nh * 2);
1245 evas_object_textblock_size_formatted_get(tb, &w, &h);
1246 fail_if(w > (nw / 2));
1247
1217 END_TB_TEST(); 1248 END_TB_TEST();
1218} 1249}
1219END_TEST 1250END_TEST
@@ -1223,7 +1254,7 @@ START_TEST(evas_textblock_various)
1223{ 1254{
1224 Evas_Coord w, h, bw, bh; 1255 Evas_Coord w, h, bw, bh;
1225 START_TB_TEST(); 1256 START_TB_TEST();
1226 const char *buf = "This<ps>textblock<ps>has<ps>a<ps>lot<ps>of<ps>lines<ps>."; 1257 const char *buf = "This<ps/>textblock<ps/>has<ps/>a<ps/>lot<ps/>of<ps/>lines<ps/>.";
1227 evas_object_textblock_text_markup_set(tb, buf); 1258 evas_object_textblock_text_markup_set(tb, buf);
1228 evas_object_textblock_size_formatted_get(tb, &w, &h); 1259 evas_object_textblock_size_formatted_get(tb, &w, &h);
1229 /* Move outside of the screen so it'll have to search for the correct 1260 /* Move outside of the screen so it'll have to search for the correct
@@ -1241,15 +1272,15 @@ START_TEST(evas_textblock_various)
1241 /* Items have correct text node information */ 1272 /* Items have correct text node information */
1242 evas_object_textblock_text_markup_set(tb, ""); 1273 evas_object_textblock_text_markup_set(tb, "");
1243 fail_if(!_evas_textblock_check_item_node_link(tb)); 1274 fail_if(!_evas_textblock_check_item_node_link(tb));
1244 evas_object_textblock_text_markup_set(tb, "<ps>"); 1275 evas_object_textblock_text_markup_set(tb, "<ps/>");
1245 fail_if(!_evas_textblock_check_item_node_link(tb)); 1276 fail_if(!_evas_textblock_check_item_node_link(tb));
1246 evas_object_textblock_text_markup_set(tb, "a<ps>"); 1277 evas_object_textblock_text_markup_set(tb, "a<ps/>");
1247 fail_if(!_evas_textblock_check_item_node_link(tb)); 1278 fail_if(!_evas_textblock_check_item_node_link(tb));
1248 evas_object_textblock_text_markup_set(tb, "a<ps>a"); 1279 evas_object_textblock_text_markup_set(tb, "a<ps/>a");
1249 fail_if(!_evas_textblock_check_item_node_link(tb)); 1280 fail_if(!_evas_textblock_check_item_node_link(tb));
1250 evas_object_textblock_text_markup_set(tb, "a<ps>a<ps>"); 1281 evas_object_textblock_text_markup_set(tb, "a<ps/>a<ps/>");
1251 fail_if(!_evas_textblock_check_item_node_link(tb)); 1282 fail_if(!_evas_textblock_check_item_node_link(tb));
1252 evas_object_textblock_text_markup_set(tb, "a<ps>a<ps>a"); 1283 evas_object_textblock_text_markup_set(tb, "a<ps/>a<ps/>a");
1253 fail_if(!_evas_textblock_check_item_node_link(tb)); 1284 fail_if(!_evas_textblock_check_item_node_link(tb));
1254 1285
1255 END_TB_TEST(); 1286 END_TB_TEST();
@@ -1260,7 +1291,7 @@ END_TEST
1260START_TEST(evas_textblock_geometries) 1291START_TEST(evas_textblock_geometries)
1261{ 1292{
1262 START_TB_TEST(); 1293 START_TB_TEST();
1263 const char *buf = "This is a <br> test."; 1294 const char *buf = "This is a <br/> test.";
1264 evas_object_textblock_text_markup_set(tb, buf); 1295 evas_object_textblock_text_markup_set(tb, buf);
1265 1296
1266 /* Single line range */ 1297 /* Single line range */
@@ -1327,7 +1358,7 @@ END_TEST
1327START_TEST(evas_textblock_editing) 1358START_TEST(evas_textblock_editing)
1328{ 1359{
1329 START_TB_TEST(); 1360 START_TB_TEST();
1330 const char *buf = "First par.<ps>Second par."; 1361 const char *buf = "First par.<ps/>Second par.";
1331 evas_object_textblock_text_markup_set(tb, buf); 1362 evas_object_textblock_text_markup_set(tb, buf);
1332 Evas_Textblock_Cursor *main_cur = evas_object_textblock_cursor_get(tb); 1363 Evas_Textblock_Cursor *main_cur = evas_object_textblock_cursor_get(tb);
1333 1364
@@ -1346,7 +1377,7 @@ START_TEST(evas_textblock_editing)
1346 evas_textblock_cursor_paragraph_first(cur); 1377 evas_textblock_cursor_paragraph_first(cur);
1347 evas_textblock_cursor_char_delete(cur); 1378 evas_textblock_cursor_char_delete(cur);
1348 fail_if(strcmp(evas_object_textblock_text_markup_get(tb), 1379 fail_if(strcmp(evas_object_textblock_text_markup_get(tb),
1349 "irst par.<ps>Second par.")); 1380 "irst par.<ps/>Second par."));
1350 1381
1351 /* Delete some arbitrary char */ 1382 /* Delete some arbitrary char */
1352 evas_textblock_cursor_char_next(cur); 1383 evas_textblock_cursor_char_next(cur);
@@ -1354,14 +1385,14 @@ START_TEST(evas_textblock_editing)
1354 evas_textblock_cursor_char_next(cur); 1385 evas_textblock_cursor_char_next(cur);
1355 evas_textblock_cursor_char_delete(cur); 1386 evas_textblock_cursor_char_delete(cur);
1356 fail_if(strcmp(evas_object_textblock_text_markup_get(tb), 1387 fail_if(strcmp(evas_object_textblock_text_markup_get(tb),
1357 "irs par.<ps>Second par.")); 1388 "irs par.<ps/>Second par."));
1358 1389
1359 /* Delete a range */ 1390 /* Delete a range */
1360 evas_textblock_cursor_pos_set(main_cur, 1); 1391 evas_textblock_cursor_pos_set(main_cur, 1);
1361 evas_textblock_cursor_pos_set(cur, 6); 1392 evas_textblock_cursor_pos_set(cur, 6);
1362 evas_textblock_cursor_range_delete(cur, main_cur); 1393 evas_textblock_cursor_range_delete(cur, main_cur);
1363 fail_if(strcmp(evas_object_textblock_text_markup_get(tb), 1394 fail_if(strcmp(evas_object_textblock_text_markup_get(tb),
1364 "ir.<ps>Second par.")); 1395 "ir.<ps/>Second par."));
1365 evas_textblock_cursor_paragraph_char_first(main_cur); 1396 evas_textblock_cursor_paragraph_char_first(main_cur);
1366 evas_textblock_cursor_paragraph_char_last(cur); 1397 evas_textblock_cursor_paragraph_char_last(cur);
1367 evas_textblock_cursor_char_next(cur); 1398 evas_textblock_cursor_char_next(cur);
@@ -1376,7 +1407,7 @@ START_TEST(evas_textblock_editing)
1376 evas_textblock_cursor_paragraph_char_first(main_cur); 1407 evas_textblock_cursor_paragraph_char_first(main_cur);
1377 evas_textblock_cursor_range_delete(cur, main_cur); 1408 evas_textblock_cursor_range_delete(cur, main_cur);
1378 fail_if(strcmp(evas_object_textblock_text_markup_get(tb), 1409 fail_if(strcmp(evas_object_textblock_text_markup_get(tb),
1379 "First par.<ps>")); 1410 "First par.<ps/>"));
1380 1411
1381 /* Merging paragraphs */ 1412 /* Merging paragraphs */
1382 evas_object_textblock_text_markup_set(tb, buf); 1413 evas_object_textblock_text_markup_set(tb, buf);
@@ -1406,6 +1437,27 @@ START_TEST(evas_textblock_editing)
1406 evas_textblock_cursor_paragraph_first(cur); 1437 evas_textblock_cursor_paragraph_first(cur);
1407 fail_if(evas_textblock_cursor_paragraph_next(cur)); 1438 fail_if(evas_textblock_cursor_paragraph_next(cur));
1408 1439
1440 /* Insert illegal characters inside the format. */
1441 {
1442 const char *content;
1443 evas_object_textblock_text_markup_set(tb, "a\n");
1444 evas_textblock_cursor_pos_set(cur, 1);
1445 content = evas_textblock_cursor_content_get(cur);
1446
1447 evas_object_textblock_text_markup_set(tb, "a\t");
1448 evas_textblock_cursor_pos_set(cur, 1);
1449 content = evas_textblock_cursor_content_get(cur);
1450
1451 evas_object_textblock_text_markup_set(tb, "a\xEF\xBF\xBC");
1452 evas_textblock_cursor_pos_set(cur, 1);
1453 content = evas_textblock_cursor_content_get(cur);
1454
1455 evas_object_textblock_text_markup_set(tb, "a\xE2\x80\xA9");
1456 evas_textblock_cursor_pos_set(cur, 1);
1457 content = evas_textblock_cursor_content_get(cur);
1458 (void) content;
1459 }
1460
1409 /* FIXME: Also add text appending/prepending */ 1461 /* FIXME: Also add text appending/prepending */
1410 1462
1411 END_TB_TEST(); 1463 END_TB_TEST();
@@ -1416,13 +1468,13 @@ END_TEST
1416START_TEST(evas_textblock_text_getters) 1468START_TEST(evas_textblock_text_getters)
1417{ 1469{
1418 START_TB_TEST(); 1470 START_TB_TEST();
1419 const char *buf = "This is a <br> test.<ps>" 1471 const char *buf = "This is a <br/> test.<ps/>"
1420 "טקסט בעברית<ps>and now in english."; 1472 "טקסט בעברית<ps/>and now in english.";
1421 evas_object_textblock_text_markup_set(tb, buf); 1473 evas_object_textblock_text_markup_set(tb, buf);
1422 evas_textblock_cursor_paragraph_first(cur); 1474 evas_textblock_cursor_paragraph_first(cur);
1423 1475
1424 fail_if(strcmp(evas_textblock_cursor_paragraph_text_get(cur), 1476 fail_if(strcmp(evas_textblock_cursor_paragraph_text_get(cur),
1425 "This is a <br> test.")); 1477 "This is a <br/> test."));
1426 1478
1427 evas_textblock_cursor_paragraph_next(cur); 1479 evas_textblock_cursor_paragraph_next(cur);
1428 fail_if(strcmp(evas_textblock_cursor_paragraph_text_get(cur), 1480 fail_if(strcmp(evas_textblock_cursor_paragraph_text_get(cur),
@@ -1447,17 +1499,17 @@ START_TEST(evas_textblock_text_getters)
1447 evas_textblock_cursor_pos_set(main_cur, 5); 1499 evas_textblock_cursor_pos_set(main_cur, 5);
1448 evas_textblock_cursor_pos_set(cur, 14); 1500 evas_textblock_cursor_pos_set(cur, 14);
1449 fail_if(strcmp(evas_textblock_cursor_range_text_get(main_cur, cur, 1501 fail_if(strcmp(evas_textblock_cursor_range_text_get(main_cur, cur,
1450 EVAS_TEXTBLOCK_TEXT_MARKUP), "is a <br> te")); 1502 EVAS_TEXTBLOCK_TEXT_MARKUP), "is a <br/> te"));
1451 1503
1452 evas_textblock_cursor_pos_set(main_cur, 14); 1504 evas_textblock_cursor_pos_set(main_cur, 14);
1453 evas_textblock_cursor_pos_set(cur, 20); 1505 evas_textblock_cursor_pos_set(cur, 20);
1454 fail_if(strcmp(evas_textblock_cursor_range_text_get(main_cur, cur, 1506 fail_if(strcmp(evas_textblock_cursor_range_text_get(main_cur, cur,
1455 EVAS_TEXTBLOCK_TEXT_MARKUP), "st.<ps>טק")); 1507 EVAS_TEXTBLOCK_TEXT_MARKUP), "st.<ps/>טק"));
1456 1508
1457 evas_textblock_cursor_pos_set(main_cur, 14); 1509 evas_textblock_cursor_pos_set(main_cur, 14);
1458 evas_textblock_cursor_pos_set(cur, 32); 1510 evas_textblock_cursor_pos_set(cur, 32);
1459 fail_if(strcmp(evas_textblock_cursor_range_text_get(main_cur, cur, 1511 fail_if(strcmp(evas_textblock_cursor_range_text_get(main_cur, cur,
1460 EVAS_TEXTBLOCK_TEXT_MARKUP), "st.<ps>טקסט בעברית<ps>an")); 1512 EVAS_TEXTBLOCK_TEXT_MARKUP), "st.<ps/>טקסט בעברית<ps/>an"));
1461 1513
1462 /* Backward range get */ 1514 /* Backward range get */
1463 evas_textblock_cursor_pos_set(main_cur, 2); 1515 evas_textblock_cursor_pos_set(main_cur, 2);
@@ -1473,17 +1525,17 @@ START_TEST(evas_textblock_text_getters)
1473 evas_textblock_cursor_pos_set(main_cur, 5); 1525 evas_textblock_cursor_pos_set(main_cur, 5);
1474 evas_textblock_cursor_pos_set(cur, 14); 1526 evas_textblock_cursor_pos_set(cur, 14);
1475 fail_if(strcmp(evas_textblock_cursor_range_text_get(cur, main_cur, 1527 fail_if(strcmp(evas_textblock_cursor_range_text_get(cur, main_cur,
1476 EVAS_TEXTBLOCK_TEXT_MARKUP), "is a <br> te")); 1528 EVAS_TEXTBLOCK_TEXT_MARKUP), "is a <br/> te"));
1477 1529
1478 evas_textblock_cursor_pos_set(main_cur, 14); 1530 evas_textblock_cursor_pos_set(main_cur, 14);
1479 evas_textblock_cursor_pos_set(cur, 20); 1531 evas_textblock_cursor_pos_set(cur, 20);
1480 fail_if(strcmp(evas_textblock_cursor_range_text_get(cur, main_cur, 1532 fail_if(strcmp(evas_textblock_cursor_range_text_get(cur, main_cur,
1481 EVAS_TEXTBLOCK_TEXT_MARKUP), "st.<ps>טק")); 1533 EVAS_TEXTBLOCK_TEXT_MARKUP), "st.<ps/>טק"));
1482 1534
1483 evas_textblock_cursor_pos_set(main_cur, 14); 1535 evas_textblock_cursor_pos_set(main_cur, 14);
1484 evas_textblock_cursor_pos_set(cur, 32); 1536 evas_textblock_cursor_pos_set(cur, 32);
1485 fail_if(strcmp(evas_textblock_cursor_range_text_get(cur, main_cur, 1537 fail_if(strcmp(evas_textblock_cursor_range_text_get(cur, main_cur,
1486 EVAS_TEXTBLOCK_TEXT_MARKUP), "st.<ps>טקסט בעברית<ps>an")); 1538 EVAS_TEXTBLOCK_TEXT_MARKUP), "st.<ps/>טקסט בעברית<ps/>an"));
1487 1539
1488 /* Uninit cursors and other weird cases */ 1540 /* Uninit cursors and other weird cases */
1489 evas_object_textblock_clear(tb); 1541 evas_object_textblock_clear(tb);
@@ -1492,6 +1544,97 @@ START_TEST(evas_textblock_text_getters)
1492 fail_if(strcmp(evas_textblock_cursor_range_text_get(cur, main_cur, 1544 fail_if(strcmp(evas_textblock_cursor_range_text_get(cur, main_cur,
1493 EVAS_TEXTBLOCK_TEXT_MARKUP), "aaa")); 1545 EVAS_TEXTBLOCK_TEXT_MARKUP), "aaa"));
1494 1546
1547 /* Markup to plain and vice versa */
1548 {
1549 char *tmp, *tmp2;
1550
1551 /* Real textblock object */
1552 tmp = evas_textblock_text_markup_to_utf8(tb, "<br/>aa<\n/>bb<\t/>");
1553 fail_if(strcmp(tmp, "\naa\nbb\t"));
1554 tmp2 = evas_textblock_text_utf8_to_markup(tb, tmp);
1555 fail_if(strcmp(tmp2, "<br/>aa<br/>bb<tab/>"));
1556 free(tmp2);
1557 free(tmp);
1558
1559 tmp = evas_textblock_text_markup_to_utf8(tb, "a<item></item>");
1560 fail_if(strcmp(tmp, "a\xEF\xBF\xBC"));
1561 tmp2 = evas_textblock_text_utf8_to_markup(tb, tmp);
1562 fail_if(strcmp(tmp2, "a&#xfffc;"));
1563 free(tmp2);
1564 free(tmp);
1565
1566 tmp = evas_textblock_text_markup_to_utf8(tb, "a&nbsp;");
1567 fail_if(strcmp(tmp, "a\xC2\xA0"));
1568 tmp2 = evas_textblock_text_utf8_to_markup(tb, tmp);
1569 fail_if(strcmp(tmp2, "a\xC2\xA0"));
1570 free(tmp2);
1571 free(tmp);
1572
1573 tmp = evas_textblock_text_markup_to_utf8(tb, "a<b>b</b><more></>a");
1574 fail_if(strcmp(tmp, "aba"));
1575 tmp2 = evas_textblock_text_utf8_to_markup(tb, tmp);
1576 fail_if(strcmp(tmp2, "aba"));
1577 free(tmp2);
1578 free(tmp);
1579
1580 tmp = evas_textblock_text_markup_to_utf8(tb, "a&amp;a");
1581 fail_if(strcmp(tmp, "a&a"));
1582 tmp2 = evas_textblock_text_utf8_to_markup(tb, tmp);
1583 fail_if(strcmp(tmp2, "a&amp;a"));
1584 free(tmp2);
1585 free(tmp);
1586
1587 tmp = evas_textblock_text_markup_to_utf8(tb, "a<newline/>a");
1588 fail_if(strcmp(tmp, "a\na"));
1589 tmp2 = evas_textblock_text_utf8_to_markup(tb, tmp);
1590 fail_if(strcmp(tmp2, "a<br/>a"));
1591 free(tmp2);
1592 free(tmp);
1593
1594 /* NULL textblock object */
1595 tmp = evas_textblock_text_markup_to_utf8(NULL, "<br/>aa<\n/>bb<\t/>");
1596 fail_if(strcmp(tmp, "\naa\nbb\t"));
1597 tmp2 = evas_textblock_text_utf8_to_markup(NULL, tmp);
1598 fail_if(strcmp(tmp2, "<br/>aa<br/>bb<tab/>"));
1599 free(tmp2);
1600 free(tmp);
1601
1602 tmp = evas_textblock_text_markup_to_utf8(NULL, "a<item></item>");
1603 fail_if(strcmp(tmp, "a\xEF\xBF\xBC"));
1604 tmp2 = evas_textblock_text_utf8_to_markup(NULL, tmp);
1605 fail_if(strcmp(tmp2, "a&#xfffc;"));
1606 free(tmp2);
1607 free(tmp);
1608
1609 tmp = evas_textblock_text_markup_to_utf8(NULL, "a&nbsp;");
1610 fail_if(strcmp(tmp, "a\xC2\xA0"));
1611 tmp2 = evas_textblock_text_utf8_to_markup(NULL, tmp);
1612 fail_if(strcmp(tmp2, "a\xC2\xA0"));
1613 free(tmp2);
1614 free(tmp);
1615
1616 tmp = evas_textblock_text_markup_to_utf8(NULL, "a<b>b</b><more></>a");
1617 fail_if(strcmp(tmp, "aba"));
1618 tmp2 = evas_textblock_text_utf8_to_markup(NULL, tmp);
1619 fail_if(strcmp(tmp2, "aba"));
1620 free(tmp2);
1621 free(tmp);
1622
1623 tmp = evas_textblock_text_markup_to_utf8(tb, "a&amp;a");
1624 fail_if(strcmp(tmp, "a&a"));
1625 tmp2 = evas_textblock_text_utf8_to_markup(tb, tmp);
1626 fail_if(strcmp(tmp2, "a&amp;a"));
1627 free(tmp2);
1628 free(tmp);
1629
1630 tmp = evas_textblock_text_markup_to_utf8(NULL, "a<newline/>a");
1631 fail_if(strcmp(tmp, "aa"));
1632 tmp2 = evas_textblock_text_utf8_to_markup(NULL, tmp);
1633 fail_if(strcmp(tmp2, "aa"));
1634 free(tmp2);
1635 free(tmp);
1636 }
1637
1495 END_TB_TEST(); 1638 END_TB_TEST();
1496} 1639}
1497END_TEST 1640END_TEST
@@ -1500,7 +1643,7 @@ END_TEST
1500START_TEST(evas_textblock_formats) 1643START_TEST(evas_textblock_formats)
1501{ 1644{
1502 START_TB_TEST(); 1645 START_TB_TEST();
1503 const char *buf = "Th<b>i<font_size=15 wrap=none>s i</font_size=13>s</> a <br> te<ps>st<item></>."; 1646 const char *buf = "Th<b>i<font_size=15 wrap=none>s i</font_size=13>s</> a <br/> te<ps/>st<item></>.";
1504 const Evas_Object_Textblock_Node_Format *fnode; 1647 const Evas_Object_Textblock_Node_Format *fnode;
1505 evas_object_textblock_text_markup_set(tb, buf); 1648 evas_object_textblock_text_markup_set(tb, buf);
1506 1649
@@ -1652,25 +1795,25 @@ START_TEST(evas_textblock_formats)
1652 * verify them visually, well, we can some of them. Possibly in the 1795 * verify them visually, well, we can some of them. Possibly in the
1653 * future we will */ 1796 * future we will */
1654 evas_object_textblock_text_markup_set(tb, 1797 evas_object_textblock_text_markup_set(tb,
1655 "<font_size=40>font_size=40</><ps>" 1798 "<font_size=40>font_size=40</><ps/>"
1656 "<color=#F210B3FF>color=#F210B3FF</><ps>" 1799 "<color=#F210B3FF>color=#F210B3FF</><ps/>"
1657 "<underline=single underline_color=#A2B3C4>underline=single underline_color=#A2B3C4</><ps>" 1800 "<underline=single underline_color=#A2B3C4>underline=single underline_color=#A2B3C4</><ps/>"
1658 "<underline=double underline_color=#F00 underline2_color=#00F>underline=double underline_color=#F00 underline2_color=#00F</><ps>" 1801 "<underline=double underline_color=#F00 underline2_color=#00F>underline=double underline_color=#F00 underline2_color=#00F</><ps/>"
1659 "<underline=dashed underline_dash_color=#0F0 underline_dash_width=2 underline_dash_gap=1>underline=dashed underline_dash_color=#0F0 underline_dash_width=2 underline_dash_gap=1</><ps>" 1802 "<underline=dashed underline_dash_color=#0F0 underline_dash_width=2 underline_dash_gap=1>underline=dashed underline_dash_color=#0F0 underline_dash_width=2 underline_dash_gap=1</><ps/>"
1660 "<style=outline outline_color=#F0FA>style=outline outline_color=#F0FA</><ps>" 1803 "<style=outline outline_color=#F0FA>style=outline outline_color=#F0FA</><ps/>"
1661 "<style=shadow shadow_color=#F0F>style=shadow shadow_color=#F0F</><ps>" 1804 "<style=shadow shadow_color=#F0F>style=shadow shadow_color=#F0F</><ps/>"
1662 "<style=glow glow_color=#BBB>style=glow glow_color=#BBB</><ps>" 1805 "<style=glow glow_color=#BBB>style=glow glow_color=#BBB</><ps/>"
1663 "<style=glow glow2_color=#0F0>style=glow glow2_color=#0F0</><ps>" 1806 "<style=glow glow2_color=#0F0>style=glow glow2_color=#0F0</><ps/>"
1664 "<style=glow color=#fff glow2_color=#fe87 glow_color=#f214>style=glow color=#fff glow2_color=#fe87 glow_color=#f214</><ps>" 1807 "<style=glow color=#fff glow2_color=#fe87 glow_color=#f214>style=glow color=#fff glow2_color=#fe87 glow_color=#f214</><ps/>"
1665 "<backing=on backing_color=#00F>backing=on backing_color=#00F</><ps>" 1808 "<backing=on backing_color=#00F>backing=on backing_color=#00F</><ps/>"
1666 "<strikethrough=on strikethrough_color=#FF0>strikethrough=on strikethrough_color=#FF0</><ps>" 1809 "<strikethrough=on strikethrough_color=#FF0>strikethrough=on strikethrough_color=#FF0</><ps/>"
1667 "<align=right>align=right</><ps>" 1810 "<align=right>align=right</><ps/>"
1668 "<backing=on backing_color=#F008 valign=0.0>valign=0.0</><ps>" 1811 "<backing=on backing_color=#F008 valign=0.0>valign=0.0</><ps/>"
1669 "<backing=on backing_color=#0F08 tabstops=50>tabstops=<\\t></>50</><ps>" 1812 "<backing=on backing_color=#0F08 tabstops=50>tabstops=<\\t></>50</><ps/>"
1670 "<backing=on backing_color=#00F8 linesize=40>linesize=40</><ps>" 1813 "<backing=on backing_color=#00F8 linesize=40>linesize=40</><ps/>"
1671 "<backing=on backing_color=#F0F8 linerelsize=200%>linerelsize=200%</><ps>" 1814 "<backing=on backing_color=#F0F8 linerelsize=200%>linerelsize=200%</><ps/>"
1672 "<backing=on backing_color=#0FF8 linegap=20>linegap=20</><ps>" 1815 "<backing=on backing_color=#0FF8 linegap=20>linegap=20</><ps/>"
1673 "<backing=on backing_color=#FF08 linerelgap=100%>linerelgap=100%</><ps>"); 1816 "<backing=on backing_color=#FF08 linerelgap=100%>linerelgap=100%</><ps/>");
1674 1817
1675 /* Force a relayout */ 1818 /* Force a relayout */
1676 evas_object_textblock_size_formatted_get(tb, NULL, NULL); 1819 evas_object_textblock_size_formatted_get(tb, NULL, NULL);
@@ -1714,22 +1857,22 @@ START_TEST(evas_textblock_formats)
1714 } 1857 }
1715 1858
1716 /* Make sure we get all the types of visible formats correctly. */ 1859 /* Make sure we get all the types of visible formats correctly. */
1717 evas_object_textblock_text_markup_set(tb, "<ps>a<br>a<tab>a<item></>"); 1860 evas_object_textblock_text_markup_set(tb, "<ps/>a<br/>a<tab/>a<item></>");
1718 fail_if(strcmp(evas_textblock_node_format_text_get( 1861 fail_if(strcmp(evas_textblock_node_format_text_get(
1719 evas_textblock_cursor_format_get(cur)), "ps")); 1862 evas_textblock_cursor_format_get(cur)), "ps"));
1720 fail_if(strcmp(evas_textblock_cursor_content_get(cur), "<ps>")); 1863 fail_if(strcmp(evas_textblock_cursor_content_get(cur), "<ps/>"));
1721 fail_if(!evas_textblock_cursor_format_is_visible_get(cur)); 1864 fail_if(!evas_textblock_cursor_format_is_visible_get(cur));
1722 fail_if(!evas_textblock_cursor_char_next(cur)); 1865 fail_if(!evas_textblock_cursor_char_next(cur));
1723 fail_if(!evas_textblock_cursor_char_next(cur)); 1866 fail_if(!evas_textblock_cursor_char_next(cur));
1724 fail_if(strcmp(evas_textblock_node_format_text_get( 1867 fail_if(strcmp(evas_textblock_node_format_text_get(
1725 evas_textblock_cursor_format_get(cur)), "br")); 1868 evas_textblock_cursor_format_get(cur)), "br"));
1726 fail_if(strcmp(evas_textblock_cursor_content_get(cur), "<br>")); 1869 fail_if(strcmp(evas_textblock_cursor_content_get(cur), "<br/>"));
1727 fail_if(!evas_textblock_cursor_format_is_visible_get(cur)); 1870 fail_if(!evas_textblock_cursor_format_is_visible_get(cur));
1728 fail_if(!evas_textblock_cursor_char_next(cur)); 1871 fail_if(!evas_textblock_cursor_char_next(cur));
1729 fail_if(!evas_textblock_cursor_char_next(cur)); 1872 fail_if(!evas_textblock_cursor_char_next(cur));
1730 fail_if(strcmp(evas_textblock_node_format_text_get( 1873 fail_if(strcmp(evas_textblock_node_format_text_get(
1731 evas_textblock_cursor_format_get(cur)), "tab")); 1874 evas_textblock_cursor_format_get(cur)), "tab"));
1732 fail_if(strcmp(evas_textblock_cursor_content_get(cur), "<tab>")); 1875 fail_if(strcmp(evas_textblock_cursor_content_get(cur), "<tab/>"));
1733 fail_if(!evas_textblock_cursor_format_is_visible_get(cur)); 1876 fail_if(!evas_textblock_cursor_format_is_visible_get(cur));
1734 fail_if(!evas_textblock_cursor_char_next(cur)); 1877 fail_if(!evas_textblock_cursor_char_next(cur));
1735 fail_if(!evas_textblock_cursor_char_next(cur)); 1878 fail_if(!evas_textblock_cursor_char_next(cur));
@@ -1749,7 +1892,7 @@ START_TEST(evas_textblock_style)
1749 Evas_Coord l, r, t, b; 1892 Evas_Coord l, r, t, b;
1750 START_TB_TEST(); 1893 START_TB_TEST();
1751 Evas_Textblock_Style *newst; 1894 Evas_Textblock_Style *newst;
1752 const char *buf = "Test<ps>Test2<ps>נסיון"; 1895 const char *buf = "Test<ps/>Test2<ps/>נסיון";
1753 evas_object_textblock_text_markup_set(tb, buf); 1896 evas_object_textblock_text_markup_set(tb, buf);
1754 fail_if(strcmp(evas_object_textblock_text_markup_get(tb), buf)); 1897 fail_if(strcmp(evas_object_textblock_text_markup_get(tb), buf));
1755 1898
@@ -1850,7 +1993,7 @@ START_TEST(evas_textblock_set_get)
1850 fail_if(strcmp(evas_object_textblock_bidi_delimiters_get(tb), ",|")); 1993 fail_if(strcmp(evas_object_textblock_bidi_delimiters_get(tb), ",|"));
1851 1994
1852 /* Hinting */ 1995 /* Hinting */
1853 evas_object_textblock_text_markup_set(tb, "This is<ps>a test<br>bla"); 1996 evas_object_textblock_text_markup_set(tb, "This is<ps/>a test<br/>bla");
1854 /* Force relayout */ 1997 /* Force relayout */
1855 evas_object_textblock_size_formatted_get(tb, NULL, NULL); 1998 evas_object_textblock_size_formatted_get(tb, NULL, NULL);
1856 evas_font_hinting_set(evas, EVAS_FONT_HINTING_NONE); 1999 evas_font_hinting_set(evas, EVAS_FONT_HINTING_NONE);
@@ -1923,7 +2066,7 @@ START_TEST(evas_textblock_size)
1923{ 2066{
1924 START_TB_TEST(); 2067 START_TB_TEST();
1925 Evas_Coord w, h, h2, nw, nh; 2068 Evas_Coord w, h, h2, nw, nh;
1926 const char *buf = "This is a <br> test.<br>גם בעברית"; 2069 const char *buf = "This is a <br/> test.<br/>גם בעברית";
1927 /* When wrapping is off, native size should be the same as formatted 2070 /* When wrapping is off, native size should be the same as formatted
1928 * size */ 2071 * size */
1929 2072
@@ -1932,7 +2075,7 @@ START_TEST(evas_textblock_size)
1932 fail_if((w != nw) || (h != nh)); 2075 fail_if((w != nw) || (h != nh));
1933 fail_if(w != 0); 2076 fail_if(w != 0);
1934 2077
1935 evas_object_textblock_text_markup_set(tb, "a<br>a"); 2078 evas_object_textblock_text_markup_set(tb, "a<br/>a");
1936 evas_object_textblock_size_formatted_get(tb, &w, &h2); 2079 evas_object_textblock_size_formatted_get(tb, &w, &h2);
1937 evas_object_textblock_size_native_get(tb, &nw, &nh); 2080 evas_object_textblock_size_native_get(tb, &nw, &nh);
1938 fail_if((w != nw) || (h2 != nh)); 2081 fail_if((w != nw) || (h2 != nh));