[EGIT] [core/enlightenment] master 01/01: e input method config - fix ecore imf env vars to use xim

2014-09-08 Thread Carsten Haitzler
raster pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=787a7e1cff9ecf3ed46f7b8412478be84680f803

commit 787a7e1cff9ecf3ed46f7b8412478be84680f803
Author: Carsten Haitzler (Rasterman) ras...@rasterman.com
Date:   Mon Sep 8 16:03:04 2014 +0900

e input method config - fix ecore imf env vars to use xim

setting ecore imf modules o things like fcitx that simply does not
exist for efl, is kind of stupid. use xim as the default fallback.
---
 data/input_methods/fcitx.imc | Bin 617 - 641 bytes
 data/input_methods/gcin.imc  | Bin 772 - 772 bytes
 data/input_methods/hime.imc  | Bin 607 - 631 bytes
 3 files changed, 0 insertions(+), 0 deletions(-)

diff --git a/data/input_methods/fcitx.imc b/data/input_methods/fcitx.imc
index 0282152..9578986 100644
Binary files a/data/input_methods/fcitx.imc and b/data/input_methods/fcitx.imc 
differ
diff --git a/data/input_methods/gcin.imc b/data/input_methods/gcin.imc
index eab6961..992e33e 100644
Binary files a/data/input_methods/gcin.imc and b/data/input_methods/gcin.imc 
differ
diff --git a/data/input_methods/hime.imc b/data/input_methods/hime.imc
index 838fe18..ea33cfa 100644
Binary files a/data/input_methods/hime.imc and b/data/input_methods/hime.imc 
differ

-- 




Re: [E-devel] A nice git cheat sheet in graph form

2014-09-08 Thread Deon Thomas
+1 to Cedric BAIL!


On Sun, Sep 7, 2014 at 4:42 AM, Cedric BAIL cedric.b...@free.fr wrote:

 On Sun, Sep 7, 2014 at 9:07 AM, Daniel Juyung Seo seojuyu...@gmail.com
 wrote:
  +1 to Tom
  and
  +1 to JackDanielZ

 Hey ! They are as good to break efl like a ninja as I am ! Don't
 underestimate them you fool ! :-P

  Daniel Juyung Seo (SeoZ)
 
 
  On Sun, Sep 7, 2014 at 3:07 PM, Daniel Zaoui daniel.za...@samsung.com
  wrote:
 
  Just awesome!!! Don't show it to Cedric, he could try to rewrite history
  to fix a 2 weeks bug inside the bad commit!
 
  On 09/06/14 18:36, Tom Hacohen wrote:
   http://justinhileman.info/article/git-pretty/
  
   Maybe some people here will find it helpful.
  
 
 --
   Slashdot TV.
   Video for Nerds.  Stuff that matters.
   http://tv.slashdot.org/
   ___
   enlightenment-devel mailing list
   enlightenment-devel@lists.sourceforge.net
   https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
  
 
 
 
 
 --
  Slashdot TV.
  Video for Nerds.  Stuff that matters.
  http://tv.slashdot.org/
  ___
  enlightenment-devel mailing list
  enlightenment-devel@lists.sourceforge.net
  https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
 
 
 --
  Slashdot TV.
  Video for Nerds.  Stuff that matters.
  http://tv.slashdot.org/
  ___
  enlightenment-devel mailing list
  enlightenment-devel@lists.sourceforge.net
  https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
 



 --
 Cedric BAIL


 --
 Slashdot TV.
 Video for Nerds.  Stuff that matters.
 http://tv.slashdot.org/
 ___
 enlightenment-devel mailing list
 enlightenment-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

--
Want excitement?
Manually upgrade your production database.
When you want reliability, choose Perforce
Perforce version control. Predictably reliable.
http://pubads.g.doubleclick.net/gampad/clk?id=157508191iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [core/efl] master 01/01: Eolian/Generator: support @empty and @auto.

2014-09-08 Thread Daniel Zaoui
jackdanielz pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=56bad2beb0e9c5606987eb91a1a6f4f71d3052a2

commit 56bad2beb0e9c5606987eb91a1a6f4f71d3052a2
Author: Daniel Zaoui daniel.za...@samsung.com
Date:   Thu Sep 4 13:22:31 2014 +0300

Eolian/Generator: support @empty and @auto.

Local and base class functions are supported.
When @empty is provided, dummy functions (initializing the parameters with 
default
values if needed) are generated.
When @auto is provided on properties, access to internal data variables is 
done. On
set, it will assign parameters values to private data members. On get,
parameters are set with private data members values.

See the supplied tests as examples.

@feature
---
 src/Makefile_Eolian.am   |   3 +-
 src/bin/eolian/eo_generator.c| 158 +--
 src/tests/eolian/data/base.eo|   9 ++
 src/tests/eolian/data/class_simple_ref.c |   5 +-
 src/tests/eolian/data/override.eo|  28 ++
 src/tests/eolian/data/override_ref.c |  82 
 src/tests/eolian/eolian_generation.c |  17 
 7 files changed, 249 insertions(+), 53 deletions(-)

diff --git a/src/Makefile_Eolian.am b/src/Makefile_Eolian.am
index 5df0ebf..128d32d 100644
--- a/src/Makefile_Eolian.am
+++ b/src/Makefile_Eolian.am
@@ -117,5 +117,6 @@ tests/eolian/data/enum.eo \
 tests/eolian/data/free_func.eo \
 tests/eolian/data/typedef_ref.c \
 tests/eolian/data/struct_ref.c \
-tests/eolian/data/class_simple_ref.c
+tests/eolian/data/class_simple_ref.c \
+tests/eolian/data/override_ref.c
 
diff --git a/src/bin/eolian/eo_generator.c b/src/bin/eolian/eo_generator.c
index 0a292f0..56e40ab 100644
--- a/src/bin/eolian/eo_generator.c
+++ b/src/bin/eolian/eo_generator.c
@@ -339,7 +339,7 @@ eo_header_generate(const Eolian_Class *class, Eina_Strbuf 
*buf)
 }
 
 static Eina_Bool
-eo_bind_func_generate(const Eolian_Class *class, const Eolian_Function 
*funcid, Eolian_Function_Type ftype, Eina_Strbuf *buf, _eolian_class_vars 
*impl_env)
+eo_bind_func_generate(const Eolian_Class *class, const Eolian_Function 
*funcid, Eolian_Function_Type ftype, Eina_Strbuf *buf, Eolian_Implement *impl, 
_eolian_class_vars *impl_env)
 {
_eolian_class_func_vars func_env;
const char *suffix = ;
@@ -351,6 +351,9 @@ eo_bind_func_generate(const Eolian_Class *class, const 
Eolian_Function *funcid,
Eina_Iterator *itr;
void *data, *data2;
const Eolian_Expression *default_ret_val = NULL;
+   Eina_Bool is_empty = impl ? eolian_implement_is_empty(impl) : 
eolian_function_is_empty(funcid, ftype);
+   Eina_Bool is_auto = impl ? eolian_implement_is_auto(impl) : 
eolian_function_is_auto(funcid, ftype);
+   if (ftype != EOLIAN_PROP_GET  ftype != EOLIAN_PROP_SET) ftype = 
eolian_function_type_get(funcid);
 
Eina_Bool need_implementation = EINA_TRUE;
if (!impl_env  eolian_function_is_virtual_pure(funcid, ftype)) 
need_implementation = EINA_FALSE;
@@ -363,7 +366,10 @@ eo_bind_func_generate(const Eolian_Class *class, const 
Eolian_Function *funcid,
 
rettypet = eolian_function_return_type_get(funcid, ftype);
if (rettypet)
-  default_ret_val = eolian_function_return_default_value_get(funcid, 
ftype);
+ {
+is_auto = EINA_FALSE; /* We block auto when the function has to return 
something */
+default_ret_val = eolian_function_return_default_value_get(funcid, 
ftype);
+ }
if (ftype == EOLIAN_PROP_GET)
  {
 suffix = _get;
@@ -398,9 +404,9 @@ eo_bind_func_generate(const Eolian_Class *class, const 
Eolian_Function *funcid,
 Eina_Bool is_const = eolian_parameter_const_attribute_get(data, ftype 
== EOLIAN_PROP_GET);
 if (eina_strbuf_length_get(params)) eina_strbuf_append(params, , );
 eina_strbuf_append_printf(params, %s, pname);
-eina_strbuf_append_printf(full_params, , %s%s %s,
+eina_strbuf_append_printf(full_params, , %s%s %s%s,
   is_const?const :,
-  ptype, pname);
+  ptype, pname, is_empty || is_auto? EINA_UNUSED:);
 eina_stringshare_del(ptype);
  }
eina_iterator_free(itr);
@@ -410,6 +416,7 @@ eo_bind_func_generate(const Eolian_Class *class, const 
Eolian_Function *funcid,
 EINA_ITERATOR_FOREACH(itr, data)
   {
  Eolian_Function_Parameter *param = data;
+ const Eolian_Expression *dflt_value = 
eolian_parameter_default_value_get(param);
  const Eolian_Type *ptypet = eolian_parameter_type_get(param);
  const char *pname = eolian_parameter_name_get(param);
  const char *ptype = eolian_type_c_type_get(ptypet);
@@ -419,30 +426,44 @@ eo_bind_func_generate(const Eolian_Class *class, const 
Eolian_Function *funcid,
  if (ftype == EOLIAN_UNRESOLVED || ftype == EOLIAN_METHOD) 
add_star = (pdir == EOLIAN_OUT_PARAM || pdir == EOLIAN_INOUT_PARAM);
  if 

[E-devel] Weekly news from the automated build and QA front

2014-09-08 Thread Stefan Schmidt
Hello.

Summary:
o Coverity finally catched up with most of the closed issues. :)

This should give everyone an overview over what has happened in the last
week on the QA front. The numbers in parentheses reflect the values from
last week to give you a trend.

CI:
o Overall build statistic: 3.5% (3.54%) failed.
https://build.enlightenment.org/

clang scan-build:
o EFL scan-build reports 452 (452) issues.
https://build.enlightenment.org/job/nightly_efl_clang_x86_64/lastSuccessfu
lBuild/artifact/scan-build/build/
o Elementary scan-build reports 77 (77) issues.
https://build.enlightenment.org/job/nightly_elm_clang_x86_64/lastSuccessfulBuild/artifact/scan-build/build

Unit tests:
o 327 (326) unit tests for efl and none failing

Coverage:
o EFL total coverage is at 32.2% (32.2%) lines and 35.7% (35.7%) functions
https://build.enlightenment.org/view/Test%20Coverage/

Coverity:
o EFL: Outstanding defects 65 (88) with a density of 0.10 (0.13)
o Elm: Outstanding defects 0 (0) with a density of 0 (0)
o Evas Generic Loaders: Outstanding defects 9 (9) with a density of 0.10
(0.10)
o Emotion Generic Players : Outstanding defects 0 (0) with a density of
0 (0)
o E: Outstanding defects 41 (62) with a density of 0.15 (0.23)
o Terminology: Outstanding defects 0 (0) with a density of 0
(0)

Phab:
o Total bug count: 372 (360)
o Pending patch reviews: 59 (50)

regards
Stefan Schmidt

--
Want excitement?
Manually upgrade your production database.
When you want reliability, choose Perforce
Perforce version control. Predictably reliable.
http://pubads.g.doubleclick.net/gampad/clk?id=157508191iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [core/efl] master 01/01: autotools: abstract sockets are supported by Darwin

2014-09-08 Thread Jean Guyomarc'h
stefan pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=75fd5850f3b928eb8e0d2d2577f3755730099931

commit 75fd5850f3b928eb8e0d2d2577f3755730099931
Author: Jean Guyomarc'h jean.guyoma...@gmail.com
Date:   Mon Sep 8 10:55:49 2014 +0200

autotools: abstract sockets are supported by Darwin

Reviewers: raster, raoulh, cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1416
---
 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/configure.ac b/configure.ac
index b04f85b..950235d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2433,7 +2433,7 @@ if test ${have_win32} = yes; then
want_ecore_con_abstract_sockets=no
 elif test ${have_darwin} = yes; then
want_cares=no
-   want_ecore_con_abstract_sockets=no
+   want_ecore_con_abstract_sockets=yes
 elif test ${have_ps3} = yes; then
want_cares=no
want_ecore_con_local_sockets=no

-- 




[EGIT] [core/efl] master 01/01: Documentation: Adding documentation for evas_object_textblock structures.

2014-09-08 Thread Srivardhan Hebbar
tasn pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=65ad94bac474969929273a04ec94a810677449f1

commit 65ad94bac474969929273a04ec94a810677449f1
Author: Srivardhan Hebbar sri.heb...@samsung.com
Date:   Mon Sep 8 12:18:53 2014 +0100

Documentation: Adding documentation for evas_object_textblock structures.

Summary:
This is a fix to one of the FIXME in the code, evas_object_textblock.c

Signed-off-by: Srivardhan Hebbar sri.heb...@samsung.com

Reviewers: herdsman, tasn

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1383
---
 src/lib/evas/canvas/evas_object_textblock.c | 199 ++--
 1 file changed, 96 insertions(+), 103 deletions(-)

diff --git a/src/lib/evas/canvas/evas_object_textblock.c 
b/src/lib/evas/canvas/evas_object_textblock.c
index bbe6bea..e0c286e 100644
--- a/src/lib/evas/canvas/evas_object_textblock.c
+++ b/src/lib/evas/canvas/evas_object_textblock.c
@@ -253,48 +253,47 @@ typedef struct _Evas_Object_Textblock_Format  
Evas_Object_Textblock_Format;
  (base[closer_len] == '=') || \
  _is_white(base[closer_len])))
 
-/*FIXME: document the structs and struct items. */
 struct _Evas_Object_Style_Tag_Base
 {
-   char *tag;
-   char *replace;
-   size_t tag_len;
-   size_t replace_len;
+   char *tag;  /** Format Identifier: b=Bold, i=Italic etc. */
+   char *replace;  /** Replacement string. font_weight=Bold, 
font_style=Italic etc. */
+   size_t tag_len;  /** Strlen of tag. */
+   size_t replace_len;  /** Strlen of replace. */
 };
 
 struct _Evas_Object_Style_Tag
 {
EINA_INLIST;
-   Evas_Object_Style_Tag_Base tag;
+   Evas_Object_Style_Tag_Base tag;  /** Base style object for holding style 
information. */
 };
 
 struct _Evas_Object_Textblock_Node_Text
 {
EINA_INLIST;
-   Eina_UStrbuf   *unicode;
-   char   *utf8;
-   Evas_Object_Textblock_Node_Format  *format_node;
-   Evas_Object_Textblock_Paragraph*par;
-   Eina_Bool   dirty : 1;
-   Eina_Bool   is_new : 1;
+   Eina_UStrbuf   *unicode;  /** Actual paragraph text. */
+   char   *utf8;  /** Text in utf8 format. */
+   Evas_Object_Textblock_Node_Format  *format_node; /** Points to the last 
format node before the paragraph, or if there is none, to the first format node 
within the paragraph.*/
+   Evas_Object_Textblock_Paragraph*par;  /** Points to the paragraph node 
of which this node is a part. */
+   Eina_Bool   dirty : 1;  /** EINA_TRUE if already 
handled/format changed, else EINA_FALSE. */
+   Eina_Bool   is_new : 1;  /** EINA_TRUE if its a 
new paragraph, else EINA_FALSE. */
 };
 
 struct _Evas_Object_Textblock_Node_Format
 {
EINA_INLIST;
-   const char *format;
-   const char *orig_format;
-   Evas_Object_Textblock_Node_Text*text_node;
-   size_t  offset;
+   const char *format;  /** Cached, parsed and 
translated version of orig_format. */
+   const char *orig_format;  /** Original format 
information. */
+   Evas_Object_Textblock_Node_Text*text_node;  /** The text node it's 
pointing to. */
+   size_t  offset;  /** Offset from the last 
format node of the same text. */
struct {
   unsigned char l, r, t, b;
-   } pad;
-   unsigned char   anchor : 2;
-   Eina_Bool   opener : 1;
-   Eina_Bool   own_closer : 1;
-   Eina_Bool   visible : 1;
-   Eina_Bool   format_change : 1;
-   Eina_Bool   is_new : 1;
+   } pad;  /** Amount of padding required. */
+   unsigned char   anchor : 2;  /** ANCHOR_NONE, ANCHOR_A 
or ANCHOR_ITEM. */
+   Eina_Bool   opener : 1;  /** EINA_TRUE if opener, 
else EINA_FALSE. */
+   Eina_Bool   own_closer : 1;  /** EINA_TRUE if 
own_closer, else EINA_FALSE. */
+   Eina_Bool   visible : 1;  /** EINA_TRUE if format 
is visible format, else EINA_FALSE. */
+   Eina_Bool   format_change : 1;  /** EINA_TRUE if 
the format of the textblock has changed, else EINA_FALSE. */
+   Eina_Bool   is_new : 1;  /** EINA_TRUE if its a 
new format node, else EINA_FALSE */
 };
 
 /* The default tags to use */
@@ -340,26 +339,26 @@ static const Evas_Object_Style_Tag_Base default_tags[] = {
 struct _Evas_Object_Textblock_Paragraph
 {
EINA_INLIST;
-   Evas_Object_Textblock_Line*lines;
-   Evas_Object_Textblock_Node_Text   *text_node;
-   Eina_List *logical_items;
-   Evas_BiDi_Paragraph_Props *bidi_props; /* 

[EGIT] [core/enlightenment] master 01/01: wl_desktop_shell: Added shell_surface_destroy API for destroying all surfaces

2014-09-08 Thread vivek
devilhorns pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=3999e3996266fd3402e0e2f2ac32af5b58c4cd89

commit 3999e3996266fd3402e0e2f2ac32af5b58c4cd89
Author: vivek vivek.el...@samsung.com
Date:   Mon Sep 8 08:14:38 2014 -0400

wl_desktop_shell: Added shell_surface_destroy API for destroying all 
surfaces

Summary:
shell_surface_destroy function is a common destroy function to destroy all 
type of surfaces and to remove redundancy in code

Signed-off-by: vivek vivek.el...@samsung.com

Reviewers: devilhorns

Reviewed By: devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1421
---
 src/modules/wl_desktop_shell/e_mod_main.c | 54 +++
 1 file changed, 19 insertions(+), 35 deletions(-)

diff --git a/src/modules/wl_desktop_shell/e_mod_main.c 
b/src/modules/wl_desktop_shell/e_mod_main.c
index 535e5d2..7438c41 100644
--- a/src/modules/wl_desktop_shell/e_mod_main.c
+++ b/src/modules/wl_desktop_shell/e_mod_main.c
@@ -92,8 +92,8 @@ _e_shell_surface_mouse_down_helper(E_Client *ec, 
E_Binding_Event_Mouse_Button *e
e_focus_event_mouse_down(ec);
 }
 
-static void 
-_e_shell_surface_cb_destroy(struct wl_resource *resource)
+static void
+_e_shell_surface_destroy(struct wl_resource *resource)
 {
E_Client *ec;
 
@@ -112,13 +112,26 @@ _e_shell_surface_cb_destroy(struct wl_resource *resource)
   (ec-comp_data-shell.unmap))
 ec-comp_data-shell.unmap(ec-comp_data-shell.surface);
}
-
+ if (ec-parent)
+   {
+  ec-parent-transients =
+eina_list_remove(ec-parent-transients, ec);
+   }
+ wl_resource_destroy(ec-comp_data-shell.surface);
  ec-comp_data-shell.surface = NULL;
   }
  }
 }
 
-static void 
+static void
+_e_shell_surface_cb_destroy(struct wl_resource *resource)
+{
+   /* DBG(Shell Surface Destroy: %d, wl_resource_get_id(resource)); */
+
+   _e_shell_surface_destroy(resource);
+}
+
+static void
 _e_shell_surface_cb_pong(struct wl_client *client EINA_UNUSED, struct 
wl_resource *resource, uint32_t serial EINA_UNUSED)
 {
E_Client *ec;
@@ -621,17 +634,9 @@ _e_shell_cb_shell_surface_get(struct wl_client *client, 
struct wl_resource *reso
 static void 
 _e_xdg_shell_surface_cb_destroy(struct wl_client *client EINA_UNUSED, struct 
wl_resource *resource)
 {
-   E_Client *ec;
-
/* DBG(XDG_SHELL: Surface Destroy); */
 
-   if ((ec = wl_resource_get_user_data(resource)))
- {
-/* eina_stringshare_del(ec-icccm.title); */
-/* eina_stringshare_del(ec-icccm.class); */
-wl_resource_destroy(ec-comp_data-shell.surface);
-ec-comp_data-shell.surface = NULL;
- }
+   _e_shell_surface_destroy(resource);
 }
 
 static void 
@@ -1233,30 +1238,9 @@ _e_xdg_shell_cb_surface_get(struct wl_client *client, 
struct wl_resource *resour
 static void 
 _e_xdg_shell_popup_cb_destroy(struct wl_client *client EINA_UNUSED, struct 
wl_resource *resource)
 {
-   E_Client *ec;
-
/* DBG(XDG_SHELL: Popup Destroy); */
-   if ((ec = wl_resource_get_user_data(resource)))
- {
-if (ec-comp_data)
-  {
- if (ec-comp_data-mapped)
-   {
-  if ((ec-comp_data-shell.surface)  
-  (ec-comp_data-shell.unmap))
-ec-comp_data-shell.unmap(ec-comp_data-shell.surface);
-   }
-
- if (ec-parent)
-   {
-  ec-parent-transients = 
-eina_list_remove(ec-parent-transients, ec);
-   }
 
- wl_resource_destroy(ec-comp_data-shell.surface);
- ec-comp_data-shell.surface = NULL;
-  }
- }
+   _e_shell_surface_destroy(resource);
 }
 
 static const struct xdg_popup_interface _e_xdg_popup_interface = 

-- 




[EGIT] [core/enlightenment] master 01/01: fix nocomp skipping for skippable objects

2014-09-08 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=20a5b2bc1802f3a77dcfc2850887b78b42e0512d

commit 20a5b2bc1802f3a77dcfc2850887b78b42e0512d
Author: Mike Blumenkrantz zm...@osg.samsung.com
Date:   Mon Sep 8 09:11:56 2014 -0400

fix nocomp skipping for skippable objects

fix T753
---
 src/bin/e_comp.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/bin/e_comp.c b/src/bin/e_comp.c
index 584ed3a..4603ca4 100644
--- a/src/bin/e_comp.c
+++ b/src/bin/e_comp.c
@@ -97,6 +97,7 @@ _e_comp_visible_object_is(Evas_Object *obj, Evas_Coord x, 
Evas_Coord y, Evas_Coo
Evas_Coord xx, yy, ww, hh;
 
if ((!type) || (!e_util_strcmp(type, e_comp_object))) return EINA_FALSE;
+   if (evas_object_data_get(obj, comp_skip)) return EINA_FALSE;
evas_object_geometry_get(obj, xx, yy, ww, hh);
if (E_INTERSECTS(x, y, w, h, xx, yy, ww, hh))
  {

-- 




[EGIT] [core/efl] master 01/01: evas/drm: Remove evas-drm handling of the drm fd

2014-09-08 Thread Stefan Schmidt
stefan pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=96b767ef775301a00a7983324a5db3f2c56b7304

commit 96b767ef775301a00a7983324a5db3f2c56b7304
Author: Stefan Schmidt s.schm...@samsung.com
Date:   Mon Sep 8 13:22:20 2014 +0200

evas/drm: Remove evas-drm handling of the drm fd

We now longer have a use case for opening the drm file descriptor in the 
evas
engine itself. This is now all handled in ecore_drm or ecore evas.
---
 src/modules/evas/engines/drm/Evas_Engine_Drm.h |  1 -
 src/modules/evas/engines/drm/evas_engine.c | 34 --
 2 files changed, 35 deletions(-)

diff --git a/src/modules/evas/engines/drm/Evas_Engine_Drm.h 
b/src/modules/evas/engines/drm/Evas_Engine_Drm.h
index b67440e..f40ec87 100644
--- a/src/modules/evas/engines/drm/Evas_Engine_Drm.h
+++ b/src/modules/evas/engines/drm/Evas_Engine_Drm.h
@@ -20,7 +20,6 @@ struct _Evas_Engine_Info_Drm
 Eina_Bool vsync : 1;
 
 int fd;
-Eina_Bool own_fd : 1;
 
 int output;
 int plane;
diff --git a/src/modules/evas/engines/drm/evas_engine.c 
b/src/modules/evas/engines/drm/evas_engine.c
index 34fd3af..e44ba6c 100644
--- a/src/modules/evas/engines/drm/evas_engine.c
+++ b/src/modules/evas/engines/drm/evas_engine.c
@@ -26,24 +26,6 @@ _output_setup(Evas_Engine_Info_Drm *info, int w, int h)
Render_Engine *re = NULL;
Outbuf *ob;
 
-   /* if we have no drm device, get one */
-   if (info-info.fd  0)
- {
-if (!ecore_drm_init()) return NULL;
-
-/* try getting the default drm device */
-if (!(info-info.dev = ecore_drm_device_find(NULL, NULL)))
-  goto on_error;
-
-/* check if we already opened the drm device with ecore_evas */
-/* try to open the drm ourselfs (most likely because we get called 
from expedite) */
-if (!ecore_drm_device_open(info-info.dev))
-  goto on_error;
-
-info-info.own_fd = EINA_TRUE;
-info-info.fd = ecore_drm_device_fd_get(info-info.dev);
- }
-
/* try to allocate space for our render engine structure */
if (!(re = calloc(1, sizeof(Render_Engine
  goto on_error;
@@ -70,14 +52,6 @@ _output_setup(Evas_Engine_Info_Drm *info, int w, int h)
  on_error:
if (re) evas_render_engine_software_generic_clean(re-generic);
 
-   /* check if we already opened the card. if so, close it */
-   if ((info-info.fd = 0)  (info-info.own_fd))
- {
-ecore_drm_device_close(info-info.dev);
-info-info.fd = -1;
-ecore_drm_device_free(info-info.dev);
- }
-
free(re);
return NULL;
 }
@@ -185,14 +159,6 @@ eng_output_free(void *data)
 {
Render_Engine *re = data;
 
-   /* check if we already opened the card. if so, close it */
-   if ((re-info-info.fd = 0)  (re-info-info.own_fd))
- {
-ecore_drm_device_close(re-info-info.dev);
-re-info-info.fd = -1;
-ecore_drm_device_free(re-info-info.dev);
- }
-
evas_render_engine_software_generic_clean(re-generic);
free(re);
 

-- 




[EGIT] [core/efl] master 01/01: Ecore/Wayland: fix memory issue on exit.

2014-09-08 Thread Daniel Zaoui
jackdanielz pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=067753eb2eae9e09cdb54b11aa610fab3716419c

commit 067753eb2eae9e09cdb54b11aa610fab3716419c
Author: Daniel Zaoui daniel.za...@samsung.com
Date:   Mon Sep 8 13:44:07 2014 +0300

Ecore/Wayland: fix memory issue on exit.

When the application exits, an event cancels the DnD, that invokes the
Wayland release of data source but this was not setting an internal
pointer to NULL. ecore_wl_shutdown was then trying to use the same
Wayland API on the non-set internal pointer (via _ecore_wl_input_del),
that was leading to a segmentation fault.
This bug never occurred because some bug in CopyPaste was preventing it
to reach this part of code.
---
 src/lib/ecore_wayland/ecore_wl_dnd.c | 7 ++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/lib/ecore_wayland/ecore_wl_dnd.c 
b/src/lib/ecore_wayland/ecore_wl_dnd.c
index 875cf5d..7136ba5 100644
--- a/src/lib/ecore_wayland/ecore_wl_dnd.c
+++ b/src/lib/ecore_wayland/ecore_wl_dnd.c
@@ -764,12 +764,17 @@ _ecore_wl_dnd_source_cb_send_free(void *data EINA_UNUSED, 
void *event)
 }
 
 static void 
-_ecore_wl_dnd_source_cb_cancelled(void *data EINA_UNUSED, struct 
wl_data_source *source)
+_ecore_wl_dnd_source_cb_cancelled(void *data, struct wl_data_source *source)
 {
+   Ecore_Wl_Input *input;
+
LOGFN(__FILE__, __LINE__, __FUNCTION__);
 
+   if (!(input = data)) return;
+
/* FIXME: Raise an Ecore_Wl_Event here */
wl_data_source_destroy(source);
+   if (input-data_source == source) input-data_source = NULL;
 }
 
 static void 

-- 




Re: [E-devel] Blog about EO

2014-09-08 Thread Jean Rene Dawin
On Sat, Aug 16, 2014 at 02:36:10PM +0900, Carsten Haitzler wrote:
 About time i got back to blogging about EFL etc.
 
 https://phab.enlightenment.org/phame/live/1//post/yet_another_c_object_model_but_better/
 

Hi,

thanks for the explanations. Trying to reproduce the steps, the result of my 
tst.c
differd a bit, though. I didn't get 

EOLIAN static void
_tst_eo_base_constructor(Eo *obj, Tst_Data *pd)
{
   eo_do_super(obj, TST_CLASS, eo_constructor());
}

EOLIAN static void
_tst_eo_base_destructor(Eo *obj, Tst_Data *pd)
{
   eo_do_super(obj, TST_CLASS, eo_destructor());
}

but instead

EOLIAN static void
_tst_class_constructor(Eo_Class *klass)
{
}
EOLIAN static void
_tst_class_destructor(Eo_Class *klass)
{
}

Is there a more detailed documentation of the Eo-Syntax and API somewhere?
Becuase the one on docs.enlightenment.org is not so verbose or maybe outdated.
Is this because there will be more changes to Eo and things are not fixed yet?

Thanks for your help,

Jean Rene Dawin

--
Want excitement?
Manually upgrade your production database.
When you want reliability, choose Perforce
Perforce version control. Predictably reliable.
http://pubads.g.doubleclick.net/gampad/clk?id=157508191iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Rage 0.1.0 Release

2014-09-08 Thread P Purkayastha
Well, there is a very undesirable feature that has always been in
rage. It resets the volume on every song change to nearly the max
(~93%) here. It is the only player that I have seen doing this, or
that I have been unable to configure to stop doing so. This is
absolutely unwelcome in multiple aspects:
- when I am wearing headphones, I don't want my ear to get blasted on
every song change
- when I am playing on speakers, again, I don't want the volume to
change suddenly

Questions:

1. Is there any way for rage to remember the last used volume? And not
set it to nearly the max every time?
2. Alternatively, is there a way for rage to use a soft volume
control? That way, I can manually set the system volume and I don't
care about rage's own volume control - it can set the soft volume to
max as it desires
3. What is the volume control inside rage? There seems to be none.
Clicking on the volume icon or scrolling over it does nothing.


On Sun, Aug 24, 2014 at 9:48 PM, Carsten Haitzler ras...@rasterman.com wrote:
 So I have released the first version of Rage. Version **0.1.0**

 It is a simple video and audio player intended to be slick yet simplistic, 
 much
 like Mplayer. You can provide 1 or more files to play on the command-line or
 just DND files onto the rage window to insert them into the playlist. You can
 get a visual representation of everything on the playlist by hitting the / 
 key,
 or just hovering your mouse over the right side of the window. Mouse back over
 the left side of the window ti dismiss it or press the key again. It has a 
 full
 complement of key controls if you see the README for the full list. It will
 automatically search for album art for music files, if not already cached, and
 display that. It even generates thumbnails for the timeline of a video and
 allows you to preview the position on mouseover of the position bar at the
 bottom of the window.

 A feature list at this point:

   * Play video and audio files
   * Support a playlist via command-line
   * Insert to playlist via DND
   * Controls hide on mouse idle, and appear on mouse movement
   * Fullscreen mode support with automatic no blank support
   * Playlist visual previews and controls
   * Subtitle file support
   * Supports Gstreamer 0.10, Gstreamer 1.x, Xine and VLC as media engines via
 Emotion modules
   * Selection of media back-end via command-line
   * Album art fetch and caching
   * Video thumbnail timeline generation and caching
   * Works with any Evas engine (OpenGL acceleration, pure software etc.)
   * Works in X11, Wayland and Framebuffer direct support
   * Accelerated seek on keyboard fowrard/reverse
   * Drag gestures for seeking
   * Special different UI modes for pure audio and video

 If you want to see more go to the about page at
 https://www.enlightenment.org/p.php?p=about/rage

 http://download.enlightenment.org/rel/apps/rage/rage-0.1.0.tar.gz
 http://git.enlightenment.org/apps/rage.git

 --
 - Codito, ergo sum - I code, therefore I am --
 The Rasterman (Carsten Haitzler)ras...@rasterman.com


 --
 Slashdot TV.
 Video for Nerds.  Stuff that matters.
 http://tv.slashdot.org/
 ___
 enlightenment-devel mailing list
 enlightenment-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

--
Want excitement?
Manually upgrade your production database.
When you want reliability, choose Perforce
Perforce version control. Predictably reliable.
http://pubads.g.doubleclick.net/gampad/clk?id=157508191iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Blog about EO

2014-09-08 Thread Daniel Zaoui
Hi,

On 09/08/14 16:16, Jean Rene Dawin wrote:
 On Sat, Aug 16, 2014 at 02:36:10PM +0900, Carsten Haitzler wrote:
 About time i got back to blogging about EFL etc.

 https://phab.enlightenment.org/phame/live/1//post/yet_another_c_object_model_but_better/

 Hi,

 thanks for the explanations. Trying to reproduce the steps, the result of my 
 tst.c
 differd a bit, though. I didn't get 

 EOLIAN static void
 _tst_eo_base_constructor(Eo *obj, Tst_Data *pd)
 {
eo_do_super(obj, TST_CLASS, eo_constructor());
 }
 
 EOLIAN static void
 _tst_eo_base_destructor(Eo *obj, Tst_Data *pd)
 {
eo_do_super(obj, TST_CLASS, eo_destructor());
 }

 but instead

 EOLIAN static void
 _tst_class_constructor(Eo_Class *klass)
 {
 }
 EOLIAN static void
 _tst_class_destructor(Eo_Class *klass)
 {
 }

 Is there a more detailed documentation of the Eo-Syntax and API somewhere?
 Becuase the one on docs.enlightenment.org is not so verbose or maybe outdated.
 Is this because there will be more changes to Eo and things are not fixed yet?

 Thanks for your help,

 Jean Rene Dawin

 --
 Want excitement?
 Manually upgrade your production database.
 When you want reliability, choose Perforce
 Perforce version control. Predictably reliable.
 http://pubads.g.doubleclick.net/gampad/clk?id=157508191iu=/4140/ostg.clktrk
 ___
 enlightenment-devel mailing list
 enlightenment-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


You should try with Base.constructor instead of class.constructor (same
for the destructor).

You can look at https://phab.enlightenment.org/w/eolian/ for more docs
on the syntax.

One of all the EFL Daniels

--
Want excitement?
Manually upgrade your production database.
When you want reliability, choose Perforce
Perforce version control. Predictably reliable.
http://pubads.g.doubleclick.net/gampad/clk?id=157508191iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Blog about EO

2014-09-08 Thread Daniel Zaoui
ReHi,

On 09/08/14 16:42, Daniel Zaoui wrote:
 Hi,

 On 09/08/14 16:16, Jean Rene Dawin wrote:
 On Sat, Aug 16, 2014 at 02:36:10PM +0900, Carsten Haitzler wrote:
 About time i got back to blogging about EFL etc.

 https://phab.enlightenment.org/phame/live/1//post/yet_another_c_object_model_but_better/

 Hi,

 thanks for the explanations. Trying to reproduce the steps, the result of my 
 tst.c
 differd a bit, though. I didn't get 

 EOLIAN static void
 _tst_eo_base_constructor(Eo *obj, Tst_Data *pd)
 {
eo_do_super(obj, TST_CLASS, eo_constructor());
 }
 
 EOLIAN static void
 _tst_eo_base_destructor(Eo *obj, Tst_Data *pd)
 {
eo_do_super(obj, TST_CLASS, eo_destructor());
 }

 but instead

 EOLIAN static void
 _tst_class_constructor(Eo_Class *klass)
 {
 }
 EOLIAN static void
 _tst_class_destructor(Eo_Class *klass)
 {
 }

 Is there a more detailed documentation of the Eo-Syntax and API somewhere?
 Becuase the one on docs.enlightenment.org is not so verbose or maybe 
 outdated.
 Is this because there will be more changes to Eo and things are not fixed 
 yet?

 Thanks for your help,

 Jean Rene Dawin

 --
 Want excitement?
 Manually upgrade your production database.
 When you want reliability, choose Perforce
 Perforce version control. Predictably reliable.
 http://pubads.g.doubleclick.net/gampad/clk?id=157508191iu=/4140/ostg.clktrk
 ___
 enlightenment-devel mailing list
 enlightenment-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

 You should try with Base.constructor instead of class.constructor (same
 for the destructor).

I meant Eo.Base.constructor.


 You can look at https://phab.enlightenment.org/w/eolian/ for more docs
 on the syntax.

 One of all the EFL Daniels

 --
 Want excitement?
 Manually upgrade your production database.
 When you want reliability, choose Perforce
 Perforce version control. Predictably reliable.
 http://pubads.g.doubleclick.net/gampad/clk?id=157508191iu=/4140/ostg.clktrk
 ___
 enlightenment-devel mailing list
 enlightenment-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/enlightenment-devel



--
Want excitement?
Manually upgrade your production database.
When you want reliability, choose Perforce
Perforce version control. Predictably reliable.
http://pubads.g.doubleclick.net/gampad/clk?id=157508191iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Blog about EO

2014-09-08 Thread Tom Hacohen
On 08/09/14 14:50, Daniel Zaoui wrote:
 ReHi,

 On 09/08/14 16:42, Daniel Zaoui wrote:
 Hi,

 On 09/08/14 16:16, Jean Rene Dawin wrote:
 On Sat, Aug 16, 2014 at 02:36:10PM +0900, Carsten Haitzler wrote:
 About time i got back to blogging about EFL etc.

 https://phab.enlightenment.org/phame/live/1//post/yet_another_c_object_model_but_better/

 Hi,

 thanks for the explanations. Trying to reproduce the steps, the result of 
 my tst.c
 differd a bit, though. I didn't get

  EOLIAN static void
  _tst_eo_base_constructor(Eo *obj, Tst_Data *pd)
  {
 eo_do_super(obj, TST_CLASS, eo_constructor());
  }

  EOLIAN static void
  _tst_eo_base_destructor(Eo *obj, Tst_Data *pd)
  {
 eo_do_super(obj, TST_CLASS, eo_destructor());
  }

 but instead

  EOLIAN static void
  _tst_class_constructor(Eo_Class *klass)
  {
  }
  EOLIAN static void
  _tst_class_destructor(Eo_Class *klass)
  {
  }

 Is there a more detailed documentation of the Eo-Syntax and API somewhere?
 Becuase the one on docs.enlightenment.org is not so verbose or maybe 
 outdated.
 Is this because there will be more changes to Eo and things are not fixed 
 yet?

 Thanks for your help,

 Jean Rene Dawin

 --
 Want excitement?
 Manually upgrade your production database.
 When you want reliability, choose Perforce
 Perforce version control. Predictably reliable.
 http://pubads.g.doubleclick.net/gampad/clk?id=157508191iu=/4140/ostg.clktrk
 ___
 enlightenment-devel mailing list
 enlightenment-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

 You should try with Base.constructor instead of class.constructor (same
 for the destructor).

 I meant Eo.Base.constructor.

One important thing to mention is that while we try not to, we change 
the Eolian syntax every now and then. Same goes with some of the class 
names and hierarchy, so the blog post may not be a 1-1 to what's 
currently in.

--
Tom.



--
Want excitement?
Manually upgrade your production database.
When you want reliability, choose Perforce
Perforce version control. Predictably reliable.
http://pubads.g.doubleclick.net/gampad/clk?id=157508191iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [core/efl] master 01/01: eolian: builtin complex types

2014-09-08 Thread Daniel Kolesa
q66 pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=7786b963592187509900f246268b746cf18b15fd

commit 7786b963592187509900f246268b746cf18b15fd
Author: Daniel Kolesa d.kol...@samsung.com
Date:   Mon Sep 8 14:52:49 2014 +0100

eolian: builtin complex types

From now on, there are 5 builtin complex types, particularly accessor, 
array,
iterator, hash and list. All other types are simple - they can't have a 
complex
part. Also, the  now binds to the type itself, not the pointer. More 
builtin
complex types will be added as needed.
---
 src/lib/ecore_con/ecore_con_server.eo|  2 +-
 src/lib/eolian/Eolian.h  | 14 ++---
 src/lib/eolian/database_type.c   |  5 -
 src/lib/eolian/database_type_api.c   |  6 +-
 src/lib/eolian/database_validate.c   |  1 +
 src/lib/eolian/eo_lexer.c|  6 --
 src/lib/eolian/eo_lexer.h|  2 ++
 src/lib/eolian/eo_parser.c   | 36 +++-
 src/tests/eolian/data/complex_type.eo|  6 +++---
 src/tests/eolian/data/object_impl.eo |  4 ++--
 src/tests/eolian/data/object_impl_add.eo |  2 +-
 src/tests/eolian/data/typedef.eo |  2 +-
 src/tests/eolian/eolian_parsing.c|  5 +
 13 files changed, 54 insertions(+), 37 deletions(-)

diff --git a/src/lib/ecore_con/ecore_con_server.eo 
b/src/lib/ecore_con/ecore_con_server.eo
index 83151cc..8f14bb3 100644
--- a/src/lib/ecore_con/ecore_con_server.eo
+++ b/src/lib/ecore_con/ecore_con_server.eo
@@ -51,7 +51,7 @@ class Ecore.Con.Server (Ecore.Con.Base) {
  get {
  }
  values {
-const(Eina_List const(Ecore.Con.Client) *) *clients; /*@ The 
list of clients on this server. */
+const(listconst(Ecore.Con.Client) *) *clients; /*@ The list of 
clients on this server. */
  }
   }
   connection_type {
diff --git a/src/lib/eolian/Eolian.h b/src/lib/eolian/Eolian.h
index ec1296a..320a2cb 100644
--- a/src/lib/eolian/Eolian.h
+++ b/src/lib/eolian/Eolian.h
@@ -143,6 +143,7 @@ typedef enum
EOLIAN_TYPE_REGULAR,
EOLIAN_TYPE_REGULAR_STRUCT,
EOLIAN_TYPE_REGULAR_ENUM,
+   EOLIAN_TYPE_COMPLEX,
EOLIAN_TYPE_POINTER,
EOLIAN_TYPE_FUNCTION,
EOLIAN_TYPE_STRUCT,
@@ -1258,8 +1259,7 @@ EAPI Eina_Iterator *eolian_type_arguments_get(const 
Eolian_Type *tp);
  * @brief Get an iterator to all subtypes of a type.
  *
  * @param[in] tp the type.
- * @return the iterator when @c tp is a regular/regular struct/class/pointer
- * type.
+ * @return the iterator when @c tp is a complex type.
  *
  * @ingroup Eolian
  */
@@ -1505,11 +1505,11 @@ EAPI Eina_Stringshare *eolian_type_c_type_get(const 
Eolian_Type *tp);
 
 /*
  * @brief Get the name of the given type. You have to manually delete
- * the stringshare. For EOLIAN_TYPE_REGULAR and EOLIAN_TYPE_REGULAR_STRUCT,
- * this is for example int. For EOLIAN_TYPE_STRUCT, EOLIAN_TYPE_STRUCT_OPAQUE
- * and EOLIAN_TYPE_ALIAS, this is the name of the alias or of the struct. For
- * EOLIAN_TYPE_CLASS, this can be Button. Keep in mind that the name doesn't
- * include namespaces for structs and aliases.
+ * the stringshare. For regular or complex types,  this is for example int.
+ * For EOLIAN_TYPE_STRUCT, EOLIAN_TYPE_STRUCT_OPAQUE and EOLIAN_TYPE_ALIAS,
+ * this is the name of the alias or of the struct. For EOLIAN_TYPE_CLASS, this
+ * can be Button. Keep in mind that the name doesn't include namespaces for
+ * structs and aliases.
  *
  * @param[in] tp the type.
  * @return the name.
diff --git a/src/lib/eolian/database_type.c b/src/lib/eolian/database_type.c
index efbd5ad..b74f080 100644
--- a/src/lib/eolian/database_type.c
+++ b/src/lib/eolian/database_type.c
@@ -216,6 +216,7 @@ database_type_to_str(const Eolian_Type *tp, Eina_Strbuf 
*buf, const char *name)
 return;
  }
if ((tp-type == EOLIAN_TYPE_REGULAR
+ || tp-type == EOLIAN_TYPE_COMPLEX
  || tp-type == EOLIAN_TYPE_REGULAR_STRUCT
  || tp-type == EOLIAN_TYPE_REGULAR_ENUM
  || tp-type == EOLIAN_TYPE_VOID
@@ -225,6 +226,7 @@ database_type_to_str(const Eolian_Type *tp, Eina_Strbuf 
*buf, const char *name)
 eina_strbuf_append(buf, const );
  }
if (tp-type == EOLIAN_TYPE_REGULAR
+|| tp-type == EOLIAN_TYPE_COMPLEX
 || tp-type == EOLIAN_TYPE_CLASS
 || tp-type == EOLIAN_TYPE_REGULAR_STRUCT
 || tp-type == EOLIAN_TYPE_REGULAR_ENUM)
@@ -297,7 +299,8 @@ database_type_print(Eolian_Type *tp)
  printf(own();
if (tp-is_const)
  printf(const();
-   if (tp-type == EOLIAN_TYPE_REGULAR || tp-type == EOLIAN_TYPE_CLASS)
+   if (tp-type == EOLIAN_TYPE_REGULAR || tp-type == EOLIAN_TYPE_COMPLEX
+|| tp-type == EOLIAN_TYPE_CLASS)
  printf(%s, tp-full_name);
else if (tp-type == EOLIAN_TYPE_VOID)
  printf(void);
diff --git a/src/lib/eolian/database_type_api.c 
b/src/lib/eolian/database_type_api.c
index e80455d..f874ea8 100644
--- 

[EGIT] [core/elementary] master 01/01: update according to latest eolian changes

2014-09-08 Thread Daniel Kolesa
q66 pushed a commit to branch master.

http://git.enlightenment.org/core/elementary.git/commit/?id=b86f51f2797e785ac60d45185e4a0c53d50c93cb

commit b86f51f2797e785ac60d45185e4a0c53d50c93cb
Author: Daniel Kolesa d.kol...@samsung.com
Date:   Mon Sep 8 14:58:57 2014 +0100

update according to latest eolian changes
---
 src/lib/elm_box.eo | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/lib/elm_box.eo b/src/lib/elm_box.eo
index 97ad15c..465e8b4 100644
--- a/src/lib/elm_box.eo
+++ b/src/lib/elm_box.eo
@@ -149,7 +149,7 @@ class Elm_Box (Elm_Widget)
 You must free this list with eina_list_free() once you are done 
with it.
 
 @ingroup Box */
-return: own(Eina_List *)Evas_Object *;
+return: own(listEvas_Object**);
  }
   }
}

-- 




[EGIT] [core/elementary] master 01/01: CnP/Wayland: Fix window check for Wayland invocations.

2014-09-08 Thread Daniel Zaoui
jackdanielz pushed a commit to branch master.

http://git.enlightenment.org/core/elementary.git/commit/?id=e2e569dfc7da3165af203ff3e45e5bb75175acf3

commit e2e569dfc7da3165af203ff3e45e5bb75175acf3
Author: Daniel Zaoui daniel.za...@samsung.com
Date:   Mon Sep 8 13:51:56 2014 +0300

CnP/Wayland: Fix window check for Wayland invocations.

This was leading to never enter the cnp functions dedicated to Wayland,
as the given object was not a window. The Copy And Paste test was not
working for this reason.
---
 src/lib/elm_cnp.c | 36 
 1 file changed, 20 insertions(+), 16 deletions(-)

diff --git a/src/lib/elm_cnp.c b/src/lib/elm_cnp.c
index 3bd0af9..6aadc71 100644
--- a/src/lib/elm_cnp.c
+++ b/src/lib/elm_cnp.c
@@ -3838,7 +3838,7 @@ elm_cnp_selection_set(Evas_Object *obj, Elm_Sel_Type 
selection,
  return _x11_elm_cnp_selection_set(xwin, obj, selection, format, selbuf, 
buflen);
 #endif
 #ifdef HAVE_ELEMENTARY_WAYLAND
-   if (elm_win_wl_window_get(obj))
+   if (_wl_elm_widget_window_get(obj))
   return _wl_elm_cnp_selection_set(obj, selection, format, selbuf, buflen);
 #endif
return _local_elm_cnp_selection_set(obj, selection, format, selbuf, buflen);
@@ -3856,7 +3856,7 @@ elm_cnp_selection_loss_callback_set(Evas_Object *obj, 
Elm_Sel_Type selection,
  _x11_elm_cnp_selection_loss_callback_set(obj, selection, func, data);
 #endif
 #ifdef HAVE_ELEMENTARY_WAYLAND
-   if (elm_win_wl_window_get(obj))
+   if (_wl_elm_widget_window_get(obj))
  _wl_elm_cnp_selection_loss_callback_set(obj, selection, func, data);
 #endif
_local_elm_cnp_selection_loss_callback_set(obj, selection, func, data);
@@ -3872,7 +3872,7 @@ elm_object_cnp_selection_clear(Evas_Object *obj, 
Elm_Sel_Type selection)
  return _x11_elm_object_cnp_selection_clear(obj, selection);
 #endif
 #ifdef HAVE_ELEMENTARY_WAYLAND
-   if (elm_win_wl_window_get(obj))
+   if (_wl_elm_widget_window_get(obj))
   return _wl_elm_cnp_selection_clear(obj, selection);
 #endif
return _local_elm_object_cnp_selection_clear(obj, selection);
@@ -3890,7 +3890,7 @@ elm_cnp_selection_get(Evas_Object *obj, Elm_Sel_Type 
selection,
  return _x11_elm_cnp_selection_get(xwin, obj, selection, format, datacb, 
udata);
 #endif
 #ifdef HAVE_ELEMENTARY_WAYLAND
-   if (elm_win_wl_window_get(obj))
+   if (_wl_elm_widget_window_get(obj))
   return _wl_elm_cnp_selection_get(obj, selection, format, datacb, udata);
 #endif
return _local_elm_cnp_selection_get(obj, selection, format, datacb, udata);
@@ -3916,9 +3916,10 @@ elm_drop_target_add(Evas_Object *obj, Elm_Sel_Format 
format,
  dropcb, dropdata);
 #endif
 #ifdef HAVE_ELEMENTARY_WAYLAND
-   return _wl_elm_drop_target_add(obj, format, entercb, enterdata,
-  leavecb, leavedata, poscb, posdata,
-  dropcb, dropdata);
+   if (_wl_elm_widget_window_get(obj))
+ return _wl_elm_drop_target_add(obj, format, entercb, enterdata,
+leavecb, leavedata, poscb, posdata,
+dropcb, dropdata);
 #endif
return _local_elm_drop_target_add(obj, format, entercb, enterdata,
  leavecb, leavedata, poscb, posdata,
@@ -3939,8 +3940,9 @@ elm_drop_target_del(Evas_Object *obj, Elm_Sel_Format 
format,
leavecb, leavedata, poscb, posdata, dropcb, dropdata);
 #endif
 #ifdef HAVE_ELEMENTARY_WAYLAND
-   return _wl_elm_drop_target_del(obj, format, entercb, enterdata,
- leavecb, leavedata, poscb, posdata, dropcb, dropdata);
+   if (_wl_elm_widget_window_get(obj))
+ return _wl_elm_drop_target_del(obj, format, entercb, enterdata,
+   leavecb, leavedata, poscb, posdata, dropcb, dropdata);
 #endif
return _local_elm_drop_target_del(obj);
 }
@@ -3963,11 +3965,12 @@ elm_drag_start(Evas_Object *obj, Elm_Sel_Format format, 
const char *data,
 dragdone, donecbdata);
 #endif
 #ifdef HAVE_ELEMENTARY_WAYLAND
-   return _wl_elm_drag_start(obj, format, data, action,
- createicon, createdata,
- dragpos, dragdata,
- acceptcb, acceptdata,
- dragdone, donecbdata);
+   if (_wl_elm_widget_window_get(obj))
+ return _wl_elm_drag_start(obj, format, data, action,
+   createicon, createdata,
+   dragpos, dragdata,
+   acceptcb, acceptdata,
+   dragdone, donecbdata);
 #endif
return _local_elm_drag_start(obj, format, data, action,
 createicon, createdata,
@@ -3985,7 +3988,8 @@ elm_drag_action_set(Evas_Object *obj, Elm_Xdnd_Action 
action)
  return _x11_elm_drag_action_set(obj, action);
 #endif
 #ifdef HAVE_ELEMENTARY_WAYLAND
-   return _wl_elm_drag_action_set(obj, 

[EGIT] [core/efl] master 02/02: ecore_evas/drm: Clarify error message if given device is not found.

2014-09-08 Thread Stefan Schmidt
stefan pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=dc7910a7efaef2cdad999c2e46d92f551924cf5e

commit dc7910a7efaef2cdad999c2e46d92f551924cf5e
Author: Stefan Schmidt s.schm...@samsung.com
Date:   Mon Sep 8 16:16:57 2014 +0200

ecore_evas/drm: Clarify error message if given device is not found.

While it is bad that the given device is not found we fall back here
to the default one. Still good to mention it in the error message as
it can be confusing when we read that the device could not be found
be it still works.
---
 src/modules/ecore_evas/engines/drm/ecore_evas_drm.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c 
b/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c
index e60516a..a312b77 100644
--- a/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c
+++ b/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c
@@ -453,7 +453,7 @@ _ecore_evas_drm_init(const char *device)
/* try to find the device */
if (!(dev = ecore_drm_device_find(device, NULL)))
  {
-ERR(Could not find drm device with name: %s, device);
+ERR(Could not find drm device with name: %s. Falling back to default 
device., device);
 
 /* try getting the default drm device */
 if (!(dev = ecore_drm_device_find(NULL, NULL)))

-- 




[EGIT] [core/efl] master 01/02: evas-drm: Remove unused function prototype.

2014-09-08 Thread Stefan Schmidt
stefan pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=fd1b0053d704a3775a3657d30047f164842cf71a

commit fd1b0053d704a3775a3657d30047f164842cf71a
Author: Stefan Schmidt s.schm...@samsung.com
Date:   Mon Sep 8 15:46:13 2014 +0200

evas-drm: Remove unused function prototype.
---
 src/modules/evas/engines/drm/evas_engine.c | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/src/modules/evas/engines/drm/evas_engine.c 
b/src/modules/evas/engines/drm/evas_engine.c
index e44ba6c..0d8582f 100644
--- a/src/modules/evas/engines/drm/evas_engine.c
+++ b/src/modules/evas/engines/drm/evas_engine.c
@@ -10,9 +10,6 @@ struct _Render_Engine
Evas_Engine_Info_Drm *info;
 };
 
-/* local function prototypes */
-static void *_output_setup(Evas_Engine_Info_Drm *info, int w, int h);
-
 /* function tables - filled in later (func and parent func) */
 static Evas_Func func, pfunc;
 

-- 




Re: [E-devel] Rage 0.1.0 Release

2014-09-08 Thread Kai Huuhko
Volume reset issue was with Emotions gstreamer backends, fixed
recently in EFL git by raster.

2014-09-08 16:36 GMT+03:00 P Purkayastha ppu...@gmail.com:
 Well, there is a very undesirable feature that has always been in
 rage. It resets the volume on every song change to nearly the max
 (~93%) here. It is the only player that I have seen doing this, or
 that I have been unable to configure to stop doing so. This is
 absolutely unwelcome in multiple aspects:
 - when I am wearing headphones, I don't want my ear to get blasted on
 every song change
 - when I am playing on speakers, again, I don't want the volume to
 change suddenly

 Questions:

 1. Is there any way for rage to remember the last used volume? And not
 set it to nearly the max every time?
 2. Alternatively, is there a way for rage to use a soft volume
 control? That way, I can manually set the system volume and I don't
 care about rage's own volume control - it can set the soft volume to
 max as it desires
 3. What is the volume control inside rage? There seems to be none.
 Clicking on the volume icon or scrolling over it does nothing.


 On Sun, Aug 24, 2014 at 9:48 PM, Carsten Haitzler ras...@rasterman.com 
 wrote:
 So I have released the first version of Rage. Version **0.1.0**

 It is a simple video and audio player intended to be slick yet simplistic, 
 much
 like Mplayer. You can provide 1 or more files to play on the command-line or
 just DND files onto the rage window to insert them into the playlist. You can
 get a visual representation of everything on the playlist by hitting the / 
 key,
 or just hovering your mouse over the right side of the window. Mouse back 
 over
 the left side of the window ti dismiss it or press the key again. It has a 
 full
 complement of key controls if you see the README for the full list. It will
 automatically search for album art for music files, if not already cached, 
 and
 display that. It even generates thumbnails for the timeline of a video and
 allows you to preview the position on mouseover of the position bar at the
 bottom of the window.

 A feature list at this point:

   * Play video and audio files
   * Support a playlist via command-line
   * Insert to playlist via DND
   * Controls hide on mouse idle, and appear on mouse movement
   * Fullscreen mode support with automatic no blank support
   * Playlist visual previews and controls
   * Subtitle file support
   * Supports Gstreamer 0.10, Gstreamer 1.x, Xine and VLC as media engines via
 Emotion modules
   * Selection of media back-end via command-line
   * Album art fetch and caching
   * Video thumbnail timeline generation and caching
   * Works with any Evas engine (OpenGL acceleration, pure software etc.)
   * Works in X11, Wayland and Framebuffer direct support
   * Accelerated seek on keyboard fowrard/reverse
   * Drag gestures for seeking
   * Special different UI modes for pure audio and video

 If you want to see more go to the about page at
 https://www.enlightenment.org/p.php?p=about/rage

 http://download.enlightenment.org/rel/apps/rage/rage-0.1.0.tar.gz
 http://git.enlightenment.org/apps/rage.git

 --
 - Codito, ergo sum - I code, therefore I am --
 The Rasterman (Carsten Haitzler)ras...@rasterman.com


 --
 Slashdot TV.
 Video for Nerds.  Stuff that matters.
 http://tv.slashdot.org/
 ___
 enlightenment-devel mailing list
 enlightenment-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

 --
 Want excitement?
 Manually upgrade your production database.
 When you want reliability, choose Perforce
 Perforce version control. Predictably reliable.
 http://pubads.g.doubleclick.net/gampad/clk?id=157508191iu=/4140/ostg.clktrk
 ___
 enlightenment-devel mailing list
 enlightenment-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

--
Want excitement?
Manually upgrade your production database.
When you want reliability, choose Perforce
Perforce version control. Predictably reliable.
http://pubads.g.doubleclick.net/gampad/clk?id=157508191iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [core/enlightenment] master 01/01: i10n: Fix copy and paste bug in error translation. We fail SVG here not PNG.

2014-09-08 Thread Stefan Schmidt
stefan pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=827e66ba2605a7586fc544a6e4bd3a6ff9a2ba7b

commit 827e66ba2605a7586fc544a6e4bd3a6ff9a2ba7b
Author: Stefan Schmidt s.schm...@samsung.com
Date:   Mon Sep 8 17:55:03 2014 +0200

i10n: Fix copy and paste bug in error translation. We fail SVG here not PNG.

This was really confusing. I always wondered why a message showed up in my E
startup that it was not able to load PNG files. It clearly could do so. Even
more confusing was that E did not shutdown immediately when detecting the
PNG problem. Turns out that that it was simply a wrong translation. SVG 
failed.
---
 po/de.po | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/po/de.po b/po/de.po
index 0d0c323..074814a 100644
--- a/po/de.po
+++ b/po/de.po
@@ -26,7 +26,7 @@ msgid 
 msgstr 
 Project-Id-Version: Enlightenment DR17\n
 Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n
-POT-Creation-Date: 2014-06-23 08:15+0900\n
+POT-Creation-Date: 2014-09-08 18:30+0200\n
 PO-Revision-Date: 2012-12-21 13:52+0100\n
 Last-Translator: Thomas Gstädtner tho...@gstaedtner.net\n
 Language-Team: E17-de\n
@@ -3941,13 +3941,13 @@ msgstr 
 Enlightenment entdeckte, dass Evas keine Buffercanvas erstellen konnte.\n
 Bitte überprüfen Sie Evas auf Softwarebufferengine-Unterstützung.\n
 
-#: src/bin/e_main.c:1466
+#: src/bin/e_main.c:1479
 msgid 
 Enlightenment found Evas can't load SVG files. Check Evas has SVG loader 
 support.\n
 msgstr 
-Enlightenment stellte fest, dass Evas keine PNG-Dateien laden kann.\n
-Bitte überprüfen Sie Evas auf PNG-Loader-Unterstützung.\n
+Enlightenment stellte fest, dass Evas keine SVG-Dateien laden kann.\n
+Bitte überprüfen Sie Evas auf SVG-Loader-Unterstützung.\n
 
 #: src/bin/e_main.c:1476
 msgid 

-- 




[EGIT] [apps/terminology] master 01/04: Add debug messages

2014-09-08 Thread Anisse Astier
billiob pushed a commit to branch master.

http://git.enlightenment.org/apps/terminology.git/commit/?id=adb2d8404294dd986aa8b14dcdf84ab7c239f5e3

commit adb2d8404294dd986aa8b14dcdf84ab7c239f5e3
Author: Anisse Astier ani...@astier.eu
Date:   Fri Sep 5 18:00:08 2014 +0200

Add debug messages
---
 src/bin/options_behavior.c |  1 -
 src/bin/termptysave.c  | 10 --
 2 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/src/bin/options_behavior.c b/src/bin/options_behavior.c
index 6a9204b..88f88c2 100644
--- a/src/bin/options_behavior.c
+++ b/src/bin/options_behavior.c
@@ -548,7 +548,6 @@ options_behavior(Evas_Object *opbox, Evas_Object *term)
elm_slider_indicator_format_function_set(o,
 sback_indicator_units_format,
 
(void(*)(char*))eina_stringshare_del);
-   elm_slider_min_max_set(o, 0, 1);
/* http://graphics.stanford.edu/~seander/bithacks.html#IntegerLogFloat */
union {
float v;
diff --git a/src/bin/termptysave.c b/src/bin/termptysave.c
index db670a4..19615c7 100644
--- a/src/bin/termptysave.c
+++ b/src/bin/termptysave.c
@@ -60,7 +60,10 @@ _alloc_new(int size, unsigned char gen)
   }
  }
// out of slots for new blocks - no null blocks
-   if (firstnull  0) return NULL;
+   if (firstnull  0) {
+  ERR(Cannot find new null blocks);
+  return NULL;
+   }
 
// so allocate a new block
size = MEM_BLOCK_PAGES * MEM_PAGE_SIZE;
@@ -69,7 +72,10 @@ _alloc_new(int size, unsigned char gen)
// get mmaped anonymous memory so when freed it goes away from the system
ptr = mmap(NULL, sz, PROT_READ | PROT_WRITE,
   MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
-   if (ptr == MAP_FAILED) return NULL;
+   if (ptr == MAP_FAILED) {
+  ERR(Cannot allocate more memory with mmap MAP_ANONYMOUS);
+  return NULL;
+   }
 
// note - we SHOULD memset to 0, but we are assuming mmap anon give 0 pages
//memset(ptr, 0, newsize);

-- 




[EGIT] [apps/terminology] master 02/04: fix scrollback option

2014-09-08 Thread Boris Faure
billiob pushed a commit to branch master.

http://git.enlightenment.org/apps/terminology.git/commit/?id=f1cb4c85a9d14190d05cb7b389059be59a73d528

commit f1cb4c85a9d14190d05cb7b389059be59a73d528
Author: Boris Faure bill...@gmail.com
Date:   Sun Sep 7 16:36:44 2014 +0200

fix scrollback option
---
 src/bin/options_behavior.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/bin/options_behavior.c b/src/bin/options_behavior.c
index 88f88c2..1ae8138 100644
--- a/src/bin/options_behavior.c
+++ b/src/bin/options_behavior.c
@@ -555,8 +555,8 @@ options_behavior(Evas_Object *opbox, Evas_Object *term)
} u;
u.v = config-scrollback;
u.c = (u.c  23) - 127;
-   elm_slider_value_set(o, u.c);
elm_slider_min_max_set(o, 0.0, 19.0);
+   elm_slider_value_set(o, u.c);
elm_box_pack_end(bx, o);
evas_object_show(o);
evas_object_smart_callback_add(o, delay,changed,

-- 




[EGIT] [apps/terminology] master 03/04: scrollback_save: cleanup

2014-09-08 Thread Boris Faure
billiob pushed a commit to branch master.

http://git.enlightenment.org/apps/terminology.git/commit/?id=527bd7358e0401b0d52dde83c5cb486fa4a67737

commit 527bd7358e0401b0d52dde83c5cb486fa4a67737
Author: Boris Faure bill...@gmail.com
Date:   Mon Sep 8 20:52:07 2014 +0200

scrollback_save: cleanup
---
 src/bin/termptyops.c  |   5 +-
 src/bin/termptysave.c | 137 --
 2 files changed, 78 insertions(+), 64 deletions(-)

diff --git a/src/bin/termptyops.c b/src/bin/termptyops.c
index 8a13482..c901212 100644
--- a/src/bin/termptyops.c
+++ b/src/bin/termptyops.c
@@ -46,10 +46,7 @@ termpty_text_save_top(Termpty *ty, Termcell *cells, ssize_t 
w_max)
if (!ty-back) ty-back = calloc(1, sizeof(Termsave *) * ty-backmax);
if (ty-back[ty-backpos])
  {
-Termsave *ts2;
-
-ts2 = termpty_save_extract(ty-back[ty-backpos]);
-termpty_save_free(ts2);
+termpty_save_free(ty-back[ty-backpos]);
 ty-back[ty-backpos] = NULL;
  }
ty-back[ty-backpos] = ts;
diff --git a/src/bin/termptysave.c b/src/bin/termptysave.c
index 19615c7..227b655 100644
--- a/src/bin/termptysave.c
+++ b/src/bin/termptysave.c
@@ -11,33 +11,62 @@
 # endif
 #endif
 
-#define MEM_PAGE_SIZE4096
 #define MEM_ALLOC_ALIGN  16
-#define MEM_BLOCK_PAGES  32
 #define MEM_BLOCKS   1024
 
+#define TS_MMAP_SIZE 131072
+#define TS_ALLOC_MASK (TS_MMAP_SIZE - 1)
+
 typedef struct _Alloc Alloc;
 
 struct _Alloc
 {
-   int size, last, count;
+   unsigned int size, last, count, allocated;
short slot;
unsigned char gen;
unsigned char __pad;
 };
 
+static int _blocks = 0;
+static uint64_t _allocated = 0;
 static unsigned char cur_gen = 0;
 static Alloc *alloc[MEM_BLOCKS] =  { 0 };
 
+static int
+roundup_block_size(int sz)
+{
+   return MEM_ALLOC_ALIGN * ((sz + MEM_ALLOC_ALIGN - 1) / MEM_ALLOC_ALIGN);
+}
+
+static Alloc *
+_alloc_find(void *mem)
+{
+   unsigned char *memptr = mem;
+   int i;
+
+   for (i = 0; i  MEM_BLOCKS; i++)
+ {
+unsigned char *al;
+
+al = (unsigned char *)alloc[i];
+if (!al) continue;
+if (memptr  al) continue;
+if ((al + TS_MMAP_SIZE) = memptr) continue;
+return alloc[i];
+ }
+   return NULL;
+}
+
 static void *
 _alloc_new(int size, unsigned char gen)
 {
Alloc *al;
unsigned char *ptr;
-   int newsize, sz, i, firstnull = -1;
+   unsigned int newsize, sz;
+   int i, firstnull = -1;
 
// allocations sized up to nearest size alloc alignment
-   newsize = MEM_ALLOC_ALIGN * ((size + MEM_ALLOC_ALIGN - 1) / 
MEM_ALLOC_ALIGN);
+   newsize = roundup_block_size(size);
for (i = 0; i  MEM_BLOCKS; i++)
  {
 if (!alloc[i])
@@ -55,26 +84,26 @@ _alloc_new(int size, unsigned char gen)
   ptr += alloc[i]-last;
   alloc[i]-last += newsize;
   alloc[i]-count++;
+  alloc[i]-allocated += newsize;
+  _allocated += newsize;
   return ptr;
}
   }
  }
// out of slots for new blocks - no null blocks
if (firstnull  0) {
-  ERR(Cannot find new null blocks);
-  return NULL;
+ERR(Cannot find new null blocks);
+return NULL;
}
 
// so allocate a new block
-   size = MEM_BLOCK_PAGES * MEM_PAGE_SIZE;
-   // size up to page size
-   sz = MEM_PAGE_SIZE * ((size + MEM_PAGE_SIZE - 1) / MEM_PAGE_SIZE);
+   sz = TS_MMAP_SIZE;
// get mmaped anonymous memory so when freed it goes away from the system
ptr = mmap(NULL, sz, PROT_READ | PROT_WRITE,
   MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
if (ptr == MAP_FAILED) {
-  ERR(Cannot allocate more memory with mmap MAP_ANONYMOUS);
-  return NULL;
+ERR(Cannot allocate more memory with mmap MAP_ANONYMOUS);
+return NULL;
}
 
// note - we SHOULD memset to 0, but we are assuming mmap anon give 0 pages
@@ -84,66 +113,54 @@ _alloc_new(int size, unsigned char gen)
al-size = sz;
al-last = sizeof(Alloc) + newsize;
al-count = 1;
+   al-allocated = newsize;
al-slot = firstnull;
al-gen = gen;
+   _allocated += newsize;
alloc[al-slot] = al;
ptr = (unsigned char *)al;
ptr += sizeof(Alloc);
return ptr;
 }
 
-static void
-_alloc_free(Alloc *al)
-{
-   al-count--;
-   if (al-count  0) return;
-   alloc[al-slot] = NULL;
-   munmap(al, al-size);
-}
-
-static Alloc *
-_alloc_find(void *mem)
-{
-   unsigned char *memptr = mem;
-   int i;
-   
-   for (i = 0; i  MEM_BLOCKS; i++)
- {
-unsigned char *ptr;
-
-ptr = (unsigned char *)alloc[i];
-if (!ptr) continue;
-if (memptr  ptr) continue;
-if ((memptr - ptr)  0x0fff) continue;
-if (((size_t)memptr - (size_t)ptr)  (size_t)(alloc[i]-size))
-  return alloc[i];
- }
-   return NULL;
-}
-
 static void *
-_mem_new(int size)
+_ts_new(int size)
 {
void *ptr;
-   
+
if (!size) return NULL;

[EGIT] [apps/terminology] master 04/04: do not crash when the scrollback mempool is OOM

2014-09-08 Thread Boris Faure
billiob pushed a commit to branch master.

http://git.enlightenment.org/apps/terminology.git/commit/?id=815a357ad9a13772a8dcaaf0f8a26c358f559359

commit 815a357ad9a13772a8dcaaf0f8a26c358f559359
Author: Boris Faure bill...@gmail.com
Date:   Mon Sep 8 21:27:33 2014 +0200

do not crash when the scrollback mempool is OOM
---
 src/bin/termpty.c| 57 +++-
 src/bin/termptyops.c |  2 ++
 2 files changed, 45 insertions(+), 14 deletions(-)

diff --git a/src/bin/termpty.c b/src/bin/termpty.c
index 186cde8..c16f6f9 100644
--- a/src/bin/termpty.c
+++ b/src/bin/termpty.c
@@ -613,7 +613,7 @@ termpty_line_length(const Termcell *cells, ssize_t nb_cells)
 }
 
 static int
-termpty_line_find_top(Termpty *ty, int y_end)
+termpty_line_find_top(Termpty *ty, int y_end, int *top)
 {
int y_start = y_end;
Termsave *ts;
@@ -623,25 +623,34 @@ termpty_line_find_top(Termpty *ty, int y_end)
 if (TERMPTY_SCREEN(ty, ty-w - 1, y_start - 1).att.autowrapped)
   y_start--;
 else
-  return y_start;
+  {
+ *top = y_start;
+ return 0;
+  }
  }
while (-y_start  ty-backscroll_num)
  {
 ts = termpty_save_extract(ty-back[(y_start + ty-backpos - 1 +
 ty-backmax) % ty-backmax]);
+if (!ts)
+  return -1;
 ty-back[(y_start + ty-backpos - 1 + ty-backmax) % ty-backmax] = ts;
 if (ts-cell[ts-w - 1].att.autowrapped)
   y_start--;
 else
-  return y_start;
+  {
+ *top = y_start;
+ return 0;
+  }
  }
-   return y_start;
+   *top = y_start;
+   return 0;
 }
 
 static int
 termpty_line_rewrap(Termpty *ty, int y_start, int y_end,
 Termcell *screen2, Termsave **back2,
-int w2, int y2_end)
+int w2, int y2_end, int *new_y_start)
 {
int x, x2, y, y2, y2_start;
int len, len_last, len_remaining, copy_width, ts2_width;
@@ -656,6 +665,8 @@ termpty_line_rewrap(Termpty *ty, int y_start, int y_end,
  {
 ts = termpty_save_extract(ty-back[(y_end + ty-backpos +
 ty-backmax) % ty-backmax]);
+if (!ts)
+  return -1;
 ty-back[(y_end + ty-backpos + ty-backmax) % ty-backmax] = ts;
 len_last = ts-w;
  }
@@ -668,7 +679,11 @@ termpty_line_rewrap(Termpty *ty, int y_start, int y_end,
else
  {
 if (y2_start  0)
-  back2[y2_start + ty-backmax] = termpty_save_new(0);
+  {
+ back2[y2_start + ty-backmax] = termpty_save_new(0);
+ if (!back2[y2_start + ty-backmax])
+   return -1;
+  }
 return y2_start;
  }
if (-y2_start  ty-backmax)
@@ -696,6 +711,8 @@ termpty_line_rewrap(Termpty *ty, int y_start, int y_end,
   {
  ts = termpty_save_extract(ty-back[(y + ty-backpos +
  ty-backmax) % ty-backmax]);
+ if (!ts)
+   return -1;
  ty-back[(y + ty-backpos + ty-backmax) % ty-backmax] = ts;
  line = ts-cell;
   }
@@ -717,6 +734,8 @@ termpty_line_rewrap(Termpty *ty, int y_start, int y_end,
 {
ts2_width = MIN(len_remaining, w2);
ts2 = termpty_save_new(ts2_width);
+   if (!ts2)
+ return -1;
line2 = ts2-cell;
back2[y2 + ty-backmax] = ts2;
 }
@@ -738,15 +757,16 @@ termpty_line_rewrap(Termpty *ty, int y_start, int y_end,
 x = 0;
 y++;
  }
-   return y2_start;
+   *new_y_start = y2_start;
+   return 0;
 }
 
 
 void
 termpty_resize(Termpty *ty, int new_w, int new_h)
 {
-   Termcell *new_screen;
-   Termsave **new_back;
+   Termcell *new_screen = NULL;
+   Termsave **new_back = NULL;
int y_start, y_end, new_y_start = 0, new_y_end;
int i, altbuf = 0;
 
@@ -773,8 +793,7 @@ termpty_resize(Termpty *ty, int new_w, int new_h)
if (!ty-screen2)
  {
 ERR(memerr);
-free(new_screen);
-return;
+goto bad;
  }
new_back = calloc(sizeof(Termsave *), ty-backmax);
 
@@ -782,9 +801,14 @@ termpty_resize(Termpty *ty, int new_w, int new_h)
new_y_end = new_h - 1;
while ((y_end = -ty-backscroll_num)  (new_y_end = -ty-backmax))
  {
-y_start = termpty_line_find_top(ty, y_end);
-new_y_start = termpty_line_rewrap(ty, y_start, y_end, new_screen,
-new_back, new_w, new_y_end);
+if (termpty_line_find_top(ty, y_end, y_start)  0)
+ goto bad;
+if (termpty_line_rewrap(ty, y_start, y_end, new_screen,
+new_back, new_w, new_y_end,
+new_y_start)  0)
+  {
+ goto 

[EGIT] [core/efl] master 01/01: eet: call LOCK_CACHE before altering Eet_File

2014-09-08 Thread Jérémy Zurcher
jeyzu pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=2e5a5d6656e9fca4ee756819dcd17e875225e447

commit 2e5a5d6656e9fca4ee756819dcd17e875225e447
Author: Jérémy Zurcher jer...@asynk.ch
Date:   Mon Sep 8 21:38:01 2014 +0200

eet: call LOCK_CACHE before altering Eet_File

even if not necessary in this particular case,
do as in eet_mmap() and eet_open(),
lock the cache before altering Eet_File struct.

fix CID 1039366 1039367 1039368 1039369
---
 src/lib/eet/eet_lib.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/lib/eet/eet_lib.c b/src/lib/eet/eet_lib.c
index 69d8bca..daa6d3b 100644
--- a/src/lib/eet/eet_lib.c
+++ b/src/lib/eet/eet_lib.c
@@ -1397,6 +1397,9 @@ eet_memopen_read(const void *data,
if (!ef)
  return NULL;
 
+   /* eet_internal_read expects the cache lock to be held when it is called */
+   LOCK_CACHE;
+
INIT_FILE(ef);
ef-ed = NULL;
ef-path = NULL;
@@ -1413,8 +1416,6 @@ eet_memopen_read(const void *data,
ef-sha1_length = 0;
ef-readfp_owned = EINA_FALSE;
 
-   /* eet_internal_read expects the cache lock to be held when it is called */
-   LOCK_CACHE;
ef = eet_internal_read(ef);
UNLOCK_CACHE;
return ef;

-- 




[E-devel] [Emotion] version 1.7 on the Arm device

2014-09-08 Thread Kim Shinwoo
Dear All, Hello.

I have tried to play a video file using the emotion_basic_example with
gstreamer module.
It seems that the _emotion_open_done(); should be called which changes
the sd-open, but it is not called.
So the emotion_object_play_set(); could not call the module's play
method. There would be a reason why I could not open a file.
Is there anything that I have to check, or know? As the title, I'm using
old Emotion on the arm device.
Thank you for response in advance.

Sincerely,
Shinwoo Kim.
--
Want excitement?
Manually upgrade your production database.
When you want reliability, choose Perforce
Perforce version control. Predictably reliable.
http://pubads.g.doubleclick.net/gampad/clk?id=157508191iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel