diff --git a/src/bin/e_bg.c b/src/bin/e_bg.c index 1853730b1..0062a2a40 100644 --- a/src/bin/e_bg.c +++ b/src/bin/e_bg.c @@ -147,7 +147,7 @@ e_bg_add(int container, int zone, int desk_x, int desk_y, char *file) cfbg->zone = zone; cfbg->desk_x = desk_x; cfbg->desk_y = desk_y; - cfbg->file = strdup(file); + cfbg->file = evas_stringshare_add(file); e_config->desktop_backgrounds = evas_list_append(e_config->desktop_backgrounds, cfbg); } @@ -165,7 +165,7 @@ e_bg_del(int container, int zone, int desk_x, int desk_y) (cfbg->desk_x == desk_x) && (cfbg->desk_y == desk_y)) { e_config->desktop_backgrounds = evas_list_remove_list(e_config->desktop_backgrounds, l); - E_FREE(cfbg->file); + if (cfbg->file) evas_stringshare_del(cfbg->file); free(cfbg); break; } diff --git a/src/bin/e_border.c b/src/bin/e_border.c index 933c67119..f97921df4 100644 --- a/src/bin/e_border.c +++ b/src/bin/e_border.c @@ -2858,7 +2858,7 @@ _e_border_free(E_Border *bd) free(bd->client.netwm.icons[i].data); free(bd->client.netwm.icons); } - if (bd->client.border.name) free(bd->client.border.name); + if (bd->client.border.name) evas_stringshare_del(bd->client.border.name); if (bd->client.icccm.title) free(bd->client.icccm.title); if (bd->client.icccm.name) free(bd->client.icccm.name); if (bd->client.icccm.class) free(bd->client.icccm.class); @@ -4583,14 +4583,14 @@ _e_border_eval(E_Border *bd) { if (bd->client.netwm.type == ECORE_X_WINDOW_TYPE_DESKTOP) { - if (bd->client.border.name) free(bd->client.border.name); - bd->client.border.name = strdup("borderless"); + if (bd->client.border.name) evas_stringshare_del(bd->client.border.name); + bd->client.border.name = evas_stringshare_add("borderless"); bd->client.border.changed = 1; } - if (bd->client.netwm.type == ECORE_X_WINDOW_TYPE_DOCK) + else if (bd->client.netwm.type == ECORE_X_WINDOW_TYPE_DOCK) { - if (bd->client.border.name) free(bd->client.border.name); - bd->client.border.name = strdup("borderless"); + if (bd->client.border.name) evas_stringshare_del(bd->client.border.name); + bd->client.border.name = evas_stringshare_add("borderless"); bd->client.border.changed = 1; if (!bd->client.netwm.state.skip_pager) @@ -4742,11 +4742,11 @@ _e_border_eval(E_Border *bd) if (((!bd->lock_border) || (!bd->client.border.name)) && (!bd->shaded)) { - if (bd->client.border.name) free(bd->client.border.name); + if (bd->client.border.name) evas_stringshare_del(bd->client.border.name); if (bd->client.mwm.borderless) - bd->client.border.name = strdup("borderless"); + bd->client.border.name = evas_stringshare_add("borderless"); else - bd->client.border.name = strdup("default"); + bd->client.border.name = evas_stringshare_add("default"); // if (bd->client.mwm.borderless) // printf("client %s borderless\n", bd->client.icccm.title); bd->client.border.changed = 1; @@ -4895,9 +4895,10 @@ _e_border_eval(E_Border *bd) } if (rem->apply & E_REMEMBER_APPLY_BORDER) { - E_FREE(bd->client.border.name); + if (bd->client.border.name) evas_stringshare_del(bd->client.border.name); + bd->client.border.name = NULL; if (rem->prop.border) - bd->client.border.name = strdup(rem->prop.border); + bd->client.border.name = evas_stringshare_add(rem->prop.border); bd->client.border.changed = 1; } if (rem->apply & E_REMEMBER_APPLY_STICKY) @@ -4953,9 +4954,7 @@ _e_border_eval(E_Border *bd) int ok; if (!bd->client.border.name) - { - bd->client.border.name = strdup("default"); - } + bd->client.border.name = evas_stringshare_add("default"); if (bd->bg_object) { bd->w -= (bd->client_inset.l + bd->client_inset.r); diff --git a/src/bin/e_config.c b/src/bin/e_config.c index f641533d9..42aa68589 100644 --- a/src/bin/e_config.c +++ b/src/bin/e_config.c @@ -404,7 +404,7 @@ e_config_init(void) e_config->config_version = E_CONFIG_FILE_VERSION; e_config->show_splash = 1; e_config->desktop_default_background = NULL; - e_config->desktop_default_name = strdup("Desktop %i, %i"); + e_config->desktop_default_name = evas_stringshare_add("Desktop %i, %i"); e_config->menus_scroll_speed = 1000.0; e_config->menus_fast_mouse_move_threshhold = 300.0; e_config->menus_click_drag_timeout = DEF_MENUCLICK; @@ -473,8 +473,8 @@ e_config_init(void) e_config->ping_clients = 1; e_config->ping_clients_wait = 10.0; e_config->transition_start = NULL; - e_config->transition_desk = strdup("vswipe"); - e_config->transition_change = strdup("crossfade"); + e_config->transition_desk = evas_stringshare_add("vswipe"); + e_config->transition_change = evas_stringshare_add("crossfade"); e_config->move_info_follows = 1; e_config->resize_info_follows = 1; e_config->move_info_visible = 1; @@ -503,43 +503,43 @@ e_config_init(void) E_Config_Module *em; em = E_NEW(E_Config_Module, 1); - em->name = strdup("start"); + em->name = evas_stringshare_add("start"); em->enabled = 1; e_config->modules = evas_list_append(e_config->modules, em); em = E_NEW(E_Config_Module, 1); - em->name = strdup("ibar"); + em->name = evas_stringshare_add("ibar"); em->enabled = 1; e_config->modules = evas_list_append(e_config->modules, em); em = E_NEW(E_Config_Module, 1); - em->name = strdup("ibox"); + em->name = evas_stringshare_add("ibox"); em->enabled = 0; e_config->modules = evas_list_append(e_config->modules, em); em = E_NEW(E_Config_Module, 1); - em->name = strdup("dropshadow"); + em->name = evas_stringshare_add("dropshadow"); em->enabled = 1; e_config->modules = evas_list_append(e_config->modules, em); em = E_NEW(E_Config_Module, 1); - em->name = strdup("clock"); + em->name = evas_stringshare_add("clock"); em->enabled = 1; e_config->modules = evas_list_append(e_config->modules, em); em = E_NEW(E_Config_Module, 1); - em->name = strdup("battery"); + em->name = evas_stringshare_add("battery"); em->enabled = 1; e_config->modules = evas_list_append(e_config->modules, em); em = E_NEW(E_Config_Module, 1); - em->name = strdup("cpufreq"); + em->name = evas_stringshare_add("cpufreq"); em->enabled = 1; e_config->modules = evas_list_append(e_config->modules, em); em = E_NEW(E_Config_Module, 1); - em->name = strdup("temperature"); + em->name = evas_stringshare_add("temperature"); em->enabled = 1; e_config->modules = evas_list_append(e_config->modules, em); em = E_NEW(E_Config_Module, 1); - em->name = strdup("pager"); + em->name = evas_stringshare_add("pager"); em->enabled = 1; e_config->modules = evas_list_append(e_config->modules, em); em = E_NEW(E_Config_Module, 1); - em->name = strdup("randr"); + em->name = evas_stringshare_add("randr"); em->enabled = 1; e_config->modules = evas_list_append(e_config->modules, em); } @@ -547,17 +547,17 @@ e_config_init(void) E_Font_Fallback* eff; eff = E_NEW(E_Font_Fallback, 1); - eff->name = strdup("New-Sung"); + eff->name = evas_stringshare_add("New-Sung"); e_config->font_fallbacks = evas_list_append(e_config->font_fallbacks, eff); eff = E_NEW(E_Font_Fallback, 1); - eff->name = strdup("Kochi-Gothic"); + eff->name = evas_stringshare_add("Kochi-Gothic"); e_config->font_fallbacks = evas_list_append(e_config->font_fallbacks, eff); eff = E_NEW(E_Font_Fallback, 1); - eff->name = strdup("Baekmuk-Dotum"); + eff->name = evas_stringshare_add("Baekmuk-Dotum"); e_config->font_fallbacks = evas_list_append(e_config->font_fallbacks, eff); @@ -566,14 +566,14 @@ e_config_init(void) E_Font_Default* efd; efd = E_NEW(E_Font_Default, 1); - efd->text_class = strdup("default"); - efd->font = strdup("Vera"); + efd->text_class = evas_stringshare_add("default"); + efd->font = evas_stringshare_add("Vera"); efd->size = 10; e_config->font_defaults = evas_list_append(e_config->font_defaults, efd); efd = E_NEW(E_Font_Default, 1); - efd->text_class = strdup("title_bar"); - efd->font = strdup("Vera"); + efd->text_class = evas_stringshare_add("title_bar"); + efd->font = evas_stringshare_add("Vera"); efd->size = 10; e_config->font_defaults = evas_list_append(e_config->font_defaults, efd); @@ -582,8 +582,8 @@ e_config_init(void) E_Config_Theme *et; et = E_NEW(E_Config_Theme, 1); - et->category = strdup("theme"); - et->file = strdup("default.edj"); + et->category = evas_stringshare_add("theme"); + et->file = evas_stringshare_add("default.edj"); e_config->themes = evas_list_append(e_config->themes, et); } { @@ -594,7 +594,7 @@ e_config_init(void) eb->button = 1; eb->modifiers = E_BINDING_MODIFIER_ALT; eb->any_mod = 0; - eb->action = strdup("window_move"); + eb->action = evas_stringshare_add("window_move"); eb->params = NULL; e_config->mouse_bindings = evas_list_append(e_config->mouse_bindings, eb); @@ -603,7 +603,7 @@ e_config_init(void) eb->button = 2; eb->modifiers = E_BINDING_MODIFIER_ALT; eb->any_mod = 0; - eb->action = strdup("window_resize"); + eb->action = evas_stringshare_add("window_resize"); eb->params = NULL; e_config->mouse_bindings = evas_list_append(e_config->mouse_bindings, eb); @@ -612,7 +612,7 @@ e_config_init(void) eb->button = 3; eb->modifiers = E_BINDING_MODIFIER_ALT; eb->any_mod = 0; - eb->action = strdup("window_menu"); + eb->action = evas_stringshare_add("window_menu"); eb->params = NULL; e_config->mouse_bindings = evas_list_append(e_config->mouse_bindings, eb); @@ -621,8 +621,8 @@ e_config_init(void) eb->button = 1; eb->modifiers = 0; eb->any_mod = 0; - eb->action = strdup("menu_show"); - eb->params = strdup("main"); + eb->action = evas_stringshare_add("menu_show"); + eb->params = evas_stringshare_add("main"); e_config->mouse_bindings = evas_list_append(e_config->mouse_bindings, eb); eb = E_NEW(E_Config_Binding_Mouse, 1); @@ -630,8 +630,8 @@ e_config_init(void) eb->button = 2; eb->modifiers = 0; eb->any_mod = 0; - eb->action = strdup("menu_show"); - eb->params = strdup("clients"); + eb->action = evas_stringshare_add("menu_show"); + eb->params = evas_stringshare_add("clients"); e_config->mouse_bindings = evas_list_append(e_config->mouse_bindings, eb); eb = E_NEW(E_Config_Binding_Mouse, 1); @@ -639,8 +639,8 @@ e_config_init(void) eb->button = 3; eb->modifiers = 0; eb->any_mod = 0; - eb->action = strdup("menu_show"); - eb->params = strdup("favorites"); + eb->action = evas_stringshare_add("menu_show"); + eb->params = evas_stringshare_add("favorites"); e_config->mouse_bindings = evas_list_append(e_config->mouse_bindings, eb); eb = E_NEW(E_Config_Binding_Mouse, 1); @@ -648,7 +648,7 @@ e_config_init(void) eb->button = 1; eb->modifiers = E_BINDING_MODIFIER_ALT; eb->any_mod = 0; - eb->action = strdup("edit_mode"); + eb->action = evas_stringshare_add("edit_mode"); eb->params = NULL; e_config->mouse_bindings = evas_list_append(e_config->mouse_bindings, eb); } @@ -657,363 +657,363 @@ e_config_init(void) eb = E_NEW(E_Config_Binding_Key, 1); eb->context = E_BINDING_CONTEXT_ANY; - eb->key = strdup("Left"); + eb->key = evas_stringshare_add("Left"); eb->modifiers = E_BINDING_MODIFIER_SHIFT | E_BINDING_MODIFIER_ALT; eb->any_mod = 0; - eb->action = strdup("desk_flip_by"); - eb->params = strdup("-1 0"); + eb->action = evas_stringshare_add("desk_flip_by"); + eb->params = evas_stringshare_add("-1 0"); e_config->key_bindings = evas_list_append(e_config->key_bindings, eb); eb = E_NEW(E_Config_Binding_Key, 1); eb->context = E_BINDING_CONTEXT_ANY; - eb->key = strdup("Right"); + eb->key = evas_stringshare_add("Right"); eb->modifiers = E_BINDING_MODIFIER_SHIFT | E_BINDING_MODIFIER_ALT; eb->any_mod = 0; - eb->action = strdup("desk_flip_by"); - eb->params = strdup("1 0"); + eb->action = evas_stringshare_add("desk_flip_by"); + eb->params = evas_stringshare_add("1 0"); e_config->key_bindings = evas_list_append(e_config->key_bindings, eb); eb = E_NEW(E_Config_Binding_Key, 1); eb->context = E_BINDING_CONTEXT_ANY; - eb->key = strdup("Up"); + eb->key = evas_stringshare_add("Up"); eb->modifiers = E_BINDING_MODIFIER_SHIFT | E_BINDING_MODIFIER_ALT; eb->any_mod = 0; - eb->action = strdup("desk_flip_by"); - eb->params = strdup("0 -1"); + eb->action = evas_stringshare_add("desk_flip_by"); + eb->params = evas_stringshare_add("0 -1"); e_config->key_bindings = evas_list_append(e_config->key_bindings, eb); eb = E_NEW(E_Config_Binding_Key, 1); eb->context = E_BINDING_CONTEXT_ANY; - eb->key = strdup("Down"); + eb->key = evas_stringshare_add("Down"); eb->modifiers = E_BINDING_MODIFIER_SHIFT | E_BINDING_MODIFIER_ALT; eb->any_mod = 0; - eb->action = strdup("desk_flip_by"); - eb->params = strdup("0 1"); + eb->action = evas_stringshare_add("desk_flip_by"); + eb->params = evas_stringshare_add("0 1"); e_config->key_bindings = evas_list_append(e_config->key_bindings, eb); eb = E_NEW(E_Config_Binding_Key, 1); eb->context = E_BINDING_CONTEXT_ANY; - eb->key = strdup("Up"); + eb->key = evas_stringshare_add("Up"); eb->modifiers = E_BINDING_MODIFIER_CTRL | E_BINDING_MODIFIER_ALT; eb->any_mod = 0; - eb->action = strdup("window_raise"); + eb->action = evas_stringshare_add("window_raise"); eb->params = NULL; e_config->key_bindings = evas_list_append(e_config->key_bindings, eb); eb = E_NEW(E_Config_Binding_Key, 1); eb->context = E_BINDING_CONTEXT_ANY; - eb->key = strdup("Down"); + eb->key = evas_stringshare_add("Down"); eb->modifiers = E_BINDING_MODIFIER_CTRL | E_BINDING_MODIFIER_ALT; eb->any_mod = 0; - eb->action = strdup("window_lower"); + eb->action = evas_stringshare_add("window_lower"); eb->params = NULL; e_config->key_bindings = evas_list_append(e_config->key_bindings, eb); eb = E_NEW(E_Config_Binding_Key, 1); eb->context = E_BINDING_CONTEXT_ANY; - eb->key = strdup("x"); + eb->key = evas_stringshare_add("x"); eb->modifiers = E_BINDING_MODIFIER_CTRL | E_BINDING_MODIFIER_ALT; eb->any_mod = 0; - eb->action = strdup("window_close"); + eb->action = evas_stringshare_add("window_close"); eb->params = NULL; e_config->key_bindings = evas_list_append(e_config->key_bindings, eb); eb = E_NEW(E_Config_Binding_Key, 1); eb->context = E_BINDING_CONTEXT_ANY; - eb->key = strdup("k"); + eb->key = evas_stringshare_add("k"); eb->modifiers = E_BINDING_MODIFIER_CTRL | E_BINDING_MODIFIER_ALT; eb->any_mod = 0; - eb->action = strdup("window_kill"); + eb->action = evas_stringshare_add("window_kill"); eb->params = NULL; e_config->key_bindings = evas_list_append(e_config->key_bindings, eb); eb = E_NEW(E_Config_Binding_Key, 1); eb->context = E_BINDING_CONTEXT_ANY; - eb->key = strdup("w"); + eb->key = evas_stringshare_add("w"); eb->modifiers = E_BINDING_MODIFIER_CTRL | E_BINDING_MODIFIER_ALT; eb->any_mod = 0; - eb->action = strdup("window_menu"); + eb->action = evas_stringshare_add("window_menu"); eb->params = NULL; e_config->key_bindings = evas_list_append(e_config->key_bindings, eb); eb = E_NEW(E_Config_Binding_Key, 1); eb->context = E_BINDING_CONTEXT_ANY; - eb->key = strdup("s"); + eb->key = evas_stringshare_add("s"); eb->modifiers = E_BINDING_MODIFIER_CTRL | E_BINDING_MODIFIER_ALT; eb->any_mod = 0; - eb->action = strdup("window_sticky_toggle"); + eb->action = evas_stringshare_add("window_sticky_toggle"); eb->params = NULL; e_config->key_bindings = evas_list_append(e_config->key_bindings, eb); eb = E_NEW(E_Config_Binding_Key, 1); eb->context = E_BINDING_CONTEXT_ANY; - eb->key = strdup("i"); + eb->key = evas_stringshare_add("i"); eb->modifiers = E_BINDING_MODIFIER_CTRL | E_BINDING_MODIFIER_ALT; eb->any_mod = 0; - eb->action = strdup("window_iconic_toggle"); + eb->action = evas_stringshare_add("window_iconic_toggle"); eb->params = NULL; e_config->key_bindings = evas_list_append(e_config->key_bindings, eb); eb = E_NEW(E_Config_Binding_Key, 1); eb->context = E_BINDING_CONTEXT_ANY; - eb->key = strdup("f"); + eb->key = evas_stringshare_add("f"); eb->modifiers = E_BINDING_MODIFIER_CTRL | E_BINDING_MODIFIER_ALT; eb->any_mod = 0; - eb->action = strdup("window_maximized_toggle"); + eb->action = evas_stringshare_add("window_maximized_toggle"); eb->params = NULL; e_config->key_bindings = evas_list_append(e_config->key_bindings, eb); // sndev : start eb = E_NEW( E_Config_Binding_Key, 1 ); eb->context = E_BINDING_CONTEXT_ANY; - eb->key = strdup("F10"); + eb->key = evas_stringshare_add("F10"); eb->modifiers = E_BINDING_MODIFIER_ALT; eb->any_mod = 0; - eb->action = strdup( "window_maximized_toggle" ); - eb->params = strdup( "vertical" ); + eb->action = evas_stringshare_add( "window_maximized_toggle" ); + eb->params = evas_stringshare_add( "vertical" ); e_config->key_bindings = evas_list_append( e_config->key_bindings, eb ); eb = E_NEW( E_Config_Binding_Key, 1 ); eb->context = E_BINDING_CONTEXT_ANY; - eb->key = strdup("F10"); + eb->key = evas_stringshare_add("F10"); eb->modifiers = E_BINDING_MODIFIER_CTRL; eb->any_mod = 0; - eb->action = strdup( "window_maximized_toggle" ); - eb->params = strdup( "horizontal" ); + eb->action = evas_stringshare_add( "window_maximized_toggle" ); + eb->params = evas_stringshare_add( "horizontal" ); e_config->key_bindings = evas_list_append( e_config->key_bindings, eb ); // sndev : end eb = E_NEW(E_Config_Binding_Key, 1); eb->context = E_BINDING_CONTEXT_ANY; - eb->key = strdup("r"); + eb->key = evas_stringshare_add("r"); eb->modifiers = E_BINDING_MODIFIER_CTRL | E_BINDING_MODIFIER_ALT; eb->any_mod = 0; - eb->action = strdup("window_shaded_toggle"); + eb->action = evas_stringshare_add("window_shaded_toggle"); eb->params = NULL; e_config->key_bindings = evas_list_append(e_config->key_bindings, eb); eb = E_NEW(E_Config_Binding_Key, 1); eb->context = E_BINDING_CONTEXT_ANY; - eb->key = strdup("Left"); + eb->key = evas_stringshare_add("Left"); eb->modifiers = E_BINDING_MODIFIER_CTRL | E_BINDING_MODIFIER_ALT; eb->any_mod = 0; - eb->action = strdup("desk_linear_flip_by"); - eb->params = strdup("-1"); + eb->action = evas_stringshare_add("desk_linear_flip_by"); + eb->params = evas_stringshare_add("-1"); e_config->key_bindings = evas_list_append(e_config->key_bindings, eb); eb = E_NEW(E_Config_Binding_Key, 1); eb->context = E_BINDING_CONTEXT_ANY; - eb->key = strdup("Right"); + eb->key = evas_stringshare_add("Right"); eb->modifiers = E_BINDING_MODIFIER_CTRL | E_BINDING_MODIFIER_ALT; eb->any_mod = 0; - eb->action = strdup("desk_linear_flip_by"); - eb->params = strdup("1"); + eb->action = evas_stringshare_add("desk_linear_flip_by"); + eb->params = evas_stringshare_add("1"); e_config->key_bindings = evas_list_append(e_config->key_bindings, eb); eb = E_NEW(E_Config_Binding_Key, 1); eb->context = E_BINDING_CONTEXT_ANY; - eb->key = strdup("F1"); + eb->key = evas_stringshare_add("F1"); eb->modifiers = E_BINDING_MODIFIER_ALT; eb->any_mod = 0; - eb->action = strdup("desk_linear_flip_to"); - eb->params = strdup("0"); + eb->action = evas_stringshare_add("desk_linear_flip_to"); + eb->params = evas_stringshare_add("0"); e_config->key_bindings = evas_list_append(e_config->key_bindings, eb); eb = E_NEW(E_Config_Binding_Key, 1); eb->context = E_BINDING_CONTEXT_ANY; - eb->key = strdup("F2"); + eb->key = evas_stringshare_add("F2"); eb->modifiers = E_BINDING_MODIFIER_ALT; eb->any_mod = 0; - eb->action = strdup("desk_linear_flip_to"); - eb->params = strdup("1"); + eb->action = evas_stringshare_add("desk_linear_flip_to"); + eb->params = evas_stringshare_add("1"); e_config->key_bindings = evas_list_append(e_config->key_bindings, eb); eb = E_NEW(E_Config_Binding_Key, 1); eb->context = E_BINDING_CONTEXT_ANY; - eb->key = strdup("F3"); + eb->key = evas_stringshare_add("F3"); eb->modifiers = E_BINDING_MODIFIER_ALT; eb->any_mod = 0; - eb->action = strdup("desk_linear_flip_to"); - eb->params = strdup("2"); + eb->action = evas_stringshare_add("desk_linear_flip_to"); + eb->params = evas_stringshare_add("2"); e_config->key_bindings = evas_list_append(e_config->key_bindings, eb); eb = E_NEW(E_Config_Binding_Key, 1); eb->context = E_BINDING_CONTEXT_ANY; - eb->key = strdup("F4"); + eb->key = evas_stringshare_add("F4"); eb->modifiers = E_BINDING_MODIFIER_ALT; eb->any_mod = 0; - eb->action = strdup("desk_linear_flip_to"); - eb->params = strdup("3"); + eb->action = evas_stringshare_add("desk_linear_flip_to"); + eb->params = evas_stringshare_add("3"); e_config->key_bindings = evas_list_append(e_config->key_bindings, eb); eb = E_NEW(E_Config_Binding_Key, 1); eb->context = E_BINDING_CONTEXT_ANY; - eb->key = strdup("F5"); + eb->key = evas_stringshare_add("F5"); eb->modifiers = E_BINDING_MODIFIER_ALT; eb->any_mod = 0; - eb->action = strdup("desk_linear_flip_to"); - eb->params = strdup("4"); + eb->action = evas_stringshare_add("desk_linear_flip_to"); + eb->params = evas_stringshare_add("4"); e_config->key_bindings = evas_list_append(e_config->key_bindings, eb); eb = E_NEW(E_Config_Binding_Key, 1); eb->context = E_BINDING_CONTEXT_ANY; - eb->key = strdup("F6"); + eb->key = evas_stringshare_add("F6"); eb->modifiers = E_BINDING_MODIFIER_ALT; eb->any_mod = 0; - eb->action = strdup("desk_linear_flip_to"); - eb->params = strdup("5"); + eb->action = evas_stringshare_add("desk_linear_flip_to"); + eb->params = evas_stringshare_add("5"); e_config->key_bindings = evas_list_append(e_config->key_bindings, eb); eb = E_NEW(E_Config_Binding_Key, 1); eb->context = E_BINDING_CONTEXT_ANY; - eb->key = strdup("F7"); + eb->key = evas_stringshare_add("F7"); eb->modifiers = E_BINDING_MODIFIER_ALT; eb->any_mod = 0; - eb->action = strdup("desk_linear_flip_to"); - eb->params = strdup("6"); + eb->action = evas_stringshare_add("desk_linear_flip_to"); + eb->params = evas_stringshare_add("6"); e_config->key_bindings = evas_list_append(e_config->key_bindings, eb); eb = E_NEW(E_Config_Binding_Key, 1); eb->context = E_BINDING_CONTEXT_ANY; - eb->key = strdup("F8"); + eb->key = evas_stringshare_add("F8"); eb->modifiers = E_BINDING_MODIFIER_ALT; eb->any_mod = 0; - eb->action = strdup("desk_linear_flip_to"); - eb->params = strdup("7"); + eb->action = evas_stringshare_add("desk_linear_flip_to"); + eb->params = evas_stringshare_add("7"); e_config->key_bindings = evas_list_append(e_config->key_bindings, eb); eb = E_NEW(E_Config_Binding_Key, 1); eb->context = E_BINDING_CONTEXT_ANY; - eb->key = strdup("F9"); + eb->key = evas_stringshare_add("F9"); eb->modifiers = E_BINDING_MODIFIER_ALT; eb->any_mod = 0; - eb->action = strdup("desk_linear_flip_to"); - eb->params = strdup("8"); + eb->action = evas_stringshare_add("desk_linear_flip_to"); + eb->params = evas_stringshare_add("8"); e_config->key_bindings = evas_list_append(e_config->key_bindings, eb); eb = E_NEW(E_Config_Binding_Key, 1); eb->context = E_BINDING_CONTEXT_ANY; - eb->key = strdup("F10"); + eb->key = evas_stringshare_add("F10"); eb->modifiers = E_BINDING_MODIFIER_ALT; eb->any_mod = 0; - eb->action = strdup("desk_linear_flip_to"); - eb->params = strdup("9"); + eb->action = evas_stringshare_add("desk_linear_flip_to"); + eb->params = evas_stringshare_add("9"); e_config->key_bindings = evas_list_append(e_config->key_bindings, eb); eb = E_NEW(E_Config_Binding_Key, 1); eb->context = E_BINDING_CONTEXT_ANY; - eb->key = strdup("F11"); + eb->key = evas_stringshare_add("F11"); eb->modifiers = E_BINDING_MODIFIER_ALT; eb->any_mod = 0; - eb->action = strdup("desk_linear_flip_to"); - eb->params = strdup("10"); + eb->action = evas_stringshare_add("desk_linear_flip_to"); + eb->params = evas_stringshare_add("10"); e_config->key_bindings = evas_list_append(e_config->key_bindings, eb); eb = E_NEW(E_Config_Binding_Key, 1); eb->context = E_BINDING_CONTEXT_ANY; - eb->key = strdup("F12"); + eb->key = evas_stringshare_add("F12"); eb->modifiers = E_BINDING_MODIFIER_ALT; eb->any_mod = 0; - eb->action = strdup("desk_linear_flip_to"); - eb->params = strdup("11"); + eb->action = evas_stringshare_add("desk_linear_flip_to"); + eb->params = evas_stringshare_add("11"); e_config->key_bindings = evas_list_append(e_config->key_bindings, eb); eb = E_NEW(E_Config_Binding_Key, 1); eb->context = E_BINDING_CONTEXT_ANY; - eb->key = strdup("m"); + eb->key = evas_stringshare_add("m"); eb->modifiers = E_BINDING_MODIFIER_CTRL | E_BINDING_MODIFIER_ALT; eb->any_mod = 0; - eb->action = strdup("menu_show"); - eb->params = strdup("main"); + eb->action = evas_stringshare_add("menu_show"); + eb->params = evas_stringshare_add("main"); e_config->key_bindings = evas_list_append(e_config->key_bindings, eb); eb = E_NEW(E_Config_Binding_Key, 1); eb->context = E_BINDING_CONTEXT_ANY; - eb->key = strdup("a"); + eb->key = evas_stringshare_add("a"); eb->modifiers = E_BINDING_MODIFIER_CTRL | E_BINDING_MODIFIER_ALT; eb->any_mod = 0; - eb->action = strdup("menu_show"); - eb->params = strdup("favorites"); + eb->action = evas_stringshare_add("menu_show"); + eb->params = evas_stringshare_add("favorites"); e_config->key_bindings = evas_list_append(e_config->key_bindings, eb); eb = E_NEW(E_Config_Binding_Key, 1); eb->context = E_BINDING_CONTEXT_ANY; - eb->key = strdup("Menu"); + eb->key = evas_stringshare_add("Menu"); eb->modifiers = 0; eb->any_mod = 0; - eb->action = strdup("menu_show"); - eb->params = strdup("main"); + eb->action = evas_stringshare_add("menu_show"); + eb->params = evas_stringshare_add("main"); e_config->key_bindings = evas_list_append(e_config->key_bindings, eb); eb = E_NEW(E_Config_Binding_Key, 1); eb->context = E_BINDING_CONTEXT_ANY; - eb->key = strdup("Menu"); + eb->key = evas_stringshare_add("Menu"); eb->modifiers = E_BINDING_MODIFIER_CTRL; eb->any_mod = 0; - eb->action = strdup("menu_show"); - eb->params = strdup("clients"); + eb->action = evas_stringshare_add("menu_show"); + eb->params = evas_stringshare_add("clients"); e_config->key_bindings = evas_list_append(e_config->key_bindings, eb); eb = E_NEW(E_Config_Binding_Key, 1); eb->context = E_BINDING_CONTEXT_ANY; - eb->key = strdup("Menu"); + eb->key = evas_stringshare_add("Menu"); eb->modifiers = E_BINDING_MODIFIER_ALT; eb->any_mod = 0; - eb->action = strdup("menu_show"); - eb->params = strdup("favorites"); + eb->action = evas_stringshare_add("menu_show"); + eb->params = evas_stringshare_add("favorites"); e_config->key_bindings = evas_list_append(e_config->key_bindings, eb); eb = E_NEW(E_Config_Binding_Key, 1); eb->context = E_BINDING_CONTEXT_ANY; - eb->key = strdup("Insert"); + eb->key = evas_stringshare_add("Insert"); eb->modifiers = E_BINDING_MODIFIER_CTRL | E_BINDING_MODIFIER_ALT; eb->any_mod = 0; - eb->action = strdup("exec"); - eb->params = strdup("Eterm"); + eb->action = evas_stringshare_add("exec"); + eb->params = evas_stringshare_add("Eterm"); e_config->key_bindings = evas_list_append(e_config->key_bindings, eb); eb = E_NEW(E_Config_Binding_Key, 1); eb->context = E_BINDING_CONTEXT_ANY; - eb->key = strdup("Tab"); + eb->key = evas_stringshare_add("Tab"); eb->modifiers = E_BINDING_MODIFIER_ALT; eb->any_mod = 0; - eb->action = strdup("winlist"); - eb->params = strdup("next"); + eb->action = evas_stringshare_add("winlist"); + eb->params = evas_stringshare_add("next"); e_config->key_bindings = evas_list_append(e_config->key_bindings, eb); eb = E_NEW(E_Config_Binding_Key, 1); eb->context = E_BINDING_CONTEXT_ANY; - eb->key = strdup("Tab"); + eb->key = evas_stringshare_add("Tab"); eb->modifiers = E_BINDING_MODIFIER_SHIFT | E_BINDING_MODIFIER_ALT; eb->any_mod = 0; - eb->action = strdup("winlist"); - eb->params = strdup("prev"); + eb->action = evas_stringshare_add("winlist"); + eb->params = evas_stringshare_add("prev"); e_config->key_bindings = evas_list_append(e_config->key_bindings, eb); eb = E_NEW(E_Config_Binding_Key, 1); eb->context = E_BINDING_CONTEXT_ANY; - eb->key = strdup("g"); + eb->key = evas_stringshare_add("g"); eb->modifiers = E_BINDING_MODIFIER_CTRL | E_BINDING_MODIFIER_ALT; eb->any_mod = 0; - eb->action = strdup("edit_mode_toggle"); + eb->action = evas_stringshare_add("edit_mode_toggle"); eb->params = NULL; e_config->key_bindings = evas_list_append(e_config->key_bindings, eb); eb = E_NEW(E_Config_Binding_Key, 1); eb->context = E_BINDING_CONTEXT_ANY; - eb->key = strdup("End"); + eb->key = evas_stringshare_add("End"); eb->modifiers = E_BINDING_MODIFIER_CTRL | E_BINDING_MODIFIER_ALT; eb->any_mod = 0; - eb->action = strdup("restart"); + eb->action = evas_stringshare_add("restart"); eb->params = NULL; e_config->key_bindings = evas_list_append(e_config->key_bindings, eb); eb = E_NEW(E_Config_Binding_Key, 1); eb->context = E_BINDING_CONTEXT_ANY; - eb->key = strdup("Delete"); + eb->key = evas_stringshare_add("Delete"); eb->modifiers = E_BINDING_MODIFIER_CTRL | E_BINDING_MODIFIER_ALT; eb->any_mod = 0; - eb->action = strdup("exit"); + eb->action = evas_stringshare_add("exit"); eb->params = NULL; e_config->key_bindings = evas_list_append(e_config->key_bindings, eb); @@ -1027,262 +1027,262 @@ e_config_init(void) eb = E_NEW(E_Config_Binding_Signal, 1); eb->context = E_BINDING_CONTEXT_BORDER; - eb->signal = strdup("mouse,down,1,double"); - eb->source= strdup("title"); + eb->signal = evas_stringshare_add("mouse,down,1,double"); + eb->source= evas_stringshare_add("title"); eb->modifiers = E_BINDING_MODIFIER_NONE; eb->any_mod = 1; - eb->action = strdup("window_shaded_toggle"); - eb->params = strdup("up"); + eb->action = evas_stringshare_add("window_shaded_toggle"); + eb->params = evas_stringshare_add("up"); e_config->signal_bindings = evas_list_append(e_config->signal_bindings, eb); eb = E_NEW(E_Config_Binding_Signal, 1); eb->context = E_BINDING_CONTEXT_BORDER; - eb->signal = strdup("mouse,down,2"); - eb->source = strdup("title"); + eb->signal = evas_stringshare_add("mouse,down,2"); + eb->source = evas_stringshare_add("title"); eb->modifiers = E_BINDING_MODIFIER_NONE; eb->any_mod = 1; - eb->action = strdup("window_shaded_toggle"); - eb->params = strdup("up"); + eb->action = evas_stringshare_add("window_shaded_toggle"); + eb->params = evas_stringshare_add("up"); e_config->signal_bindings = evas_list_append(e_config->signal_bindings, eb); eb = E_NEW(E_Config_Binding_Signal, 1); eb->context = E_BINDING_CONTEXT_BORDER; - eb->signal = strdup("mouse,wheel,?,1"); - eb->source = strdup("title"); + eb->signal = evas_stringshare_add("mouse,wheel,?,1"); + eb->source = evas_stringshare_add("title"); eb->modifiers = E_BINDING_MODIFIER_NONE; eb->any_mod = 1; - eb->action = strdup("window_shaded"); - eb->params = strdup("0 up"); + eb->action = evas_stringshare_add("window_shaded"); + eb->params = evas_stringshare_add("0 up"); e_config->signal_bindings = evas_list_append(e_config->signal_bindings, eb); eb = E_NEW(E_Config_Binding_Signal, 1); eb->context = E_BINDING_CONTEXT_BORDER; - eb->signal = strdup("mouse,wheel,?,-1"); - eb->source = strdup("title"); + eb->signal = evas_stringshare_add("mouse,wheel,?,-1"); + eb->source = evas_stringshare_add("title"); eb->modifiers = E_BINDING_MODIFIER_NONE; eb->any_mod = 1; - eb->action = strdup("window_shaded"); - eb->params = strdup("1 up"); + eb->action = evas_stringshare_add("window_shaded"); + eb->params = evas_stringshare_add("1 up"); e_config->signal_bindings = evas_list_append(e_config->signal_bindings, eb); eb = E_NEW(E_Config_Binding_Signal, 1); eb->context = E_BINDING_CONTEXT_BORDER; - eb->signal = strdup("mouse,clicked,3"); - eb->source = strdup("title"); + eb->signal = evas_stringshare_add("mouse,clicked,3"); + eb->source = evas_stringshare_add("title"); eb->modifiers = E_BINDING_MODIFIER_NONE; eb->any_mod = 1; - eb->action = strdup("window_menu"); + eb->action = evas_stringshare_add("window_menu"); eb->params = NULL; e_config->signal_bindings = evas_list_append(e_config->signal_bindings, eb); eb = E_NEW(E_Config_Binding_Signal, 1); eb->context = E_BINDING_CONTEXT_BORDER; - eb->signal = strdup("mouse,clicked,?"); - eb->source = strdup("icon"); + eb->signal = evas_stringshare_add("mouse,clicked,?"); + eb->source = evas_stringshare_add("icon"); eb->modifiers = E_BINDING_MODIFIER_NONE; eb->any_mod = 1; - eb->action = strdup("window_menu"); + eb->action = evas_stringshare_add("window_menu"); eb->params = NULL; e_config->signal_bindings = evas_list_append(e_config->signal_bindings, eb); eb = E_NEW(E_Config_Binding_Signal, 1); eb->context = E_BINDING_CONTEXT_BORDER; - eb->signal = strdup("mouse,clicked,[12]"); - eb->source = strdup("close"); + eb->signal = evas_stringshare_add("mouse,clicked,[12]"); + eb->source = evas_stringshare_add("close"); eb->modifiers = E_BINDING_MODIFIER_NONE; eb->any_mod = 1; - eb->action = strdup("window_close"); + eb->action = evas_stringshare_add("window_close"); eb->params = NULL; e_config->signal_bindings = evas_list_append(e_config->signal_bindings, eb); eb = E_NEW(E_Config_Binding_Signal, 1); eb->context = E_BINDING_CONTEXT_BORDER; - eb->signal = strdup("mouse,clicked,3"); - eb->source = strdup("close"); + eb->signal = evas_stringshare_add("mouse,clicked,3"); + eb->source = evas_stringshare_add("close"); eb->modifiers = E_BINDING_MODIFIER_NONE; eb->any_mod = 1; - eb->action = strdup("window_kill"); + eb->action = evas_stringshare_add("window_kill"); eb->params = NULL; e_config->signal_bindings = evas_list_append(e_config->signal_bindings, eb); eb = E_NEW(E_Config_Binding_Signal, 1); eb->context = E_BINDING_CONTEXT_BORDER; - eb->signal = strdup("mouse,clicked,1"); - eb->source = strdup("maximize"); + eb->signal = evas_stringshare_add("mouse,clicked,1"); + eb->source = evas_stringshare_add("maximize"); eb->modifiers = E_BINDING_MODIFIER_NONE; eb->any_mod = 1; - eb->action = strdup("window_maximized_toggle"); + eb->action = evas_stringshare_add("window_maximized_toggle"); eb->params = NULL; e_config->signal_bindings = evas_list_append(e_config->signal_bindings, eb); eb = E_NEW(E_Config_Binding_Signal, 1); eb->context = E_BINDING_CONTEXT_BORDER; - eb->signal = strdup("mouse,clicked,2"); - eb->source = strdup("maximize"); + eb->signal = evas_stringshare_add("mouse,clicked,2"); + eb->source = evas_stringshare_add("maximize"); eb->modifiers = E_BINDING_MODIFIER_NONE; eb->any_mod = 1; - eb->action = strdup("window_maximized_toggle"); - eb->params = strdup("smart"); + eb->action = evas_stringshare_add("window_maximized_toggle"); + eb->params = evas_stringshare_add("smart"); e_config->signal_bindings = evas_list_append(e_config->signal_bindings, eb); eb = E_NEW(E_Config_Binding_Signal, 1); eb->context = E_BINDING_CONTEXT_BORDER; - eb->signal = strdup("mouse,clicked,3"); - eb->source = strdup("maximize"); + eb->signal = evas_stringshare_add("mouse,clicked,3"); + eb->source = evas_stringshare_add("maximize"); eb->modifiers = E_BINDING_MODIFIER_NONE; eb->any_mod = 1; - eb->action = strdup("window_maximized_toggle"); - eb->params = strdup("expand"); + eb->action = evas_stringshare_add("window_maximized_toggle"); + eb->params = evas_stringshare_add("expand"); e_config->signal_bindings = evas_list_append(e_config->signal_bindings, eb); eb = E_NEW(E_Config_Binding_Signal, 1); eb->context = E_BINDING_CONTEXT_BORDER; - eb->signal = strdup("mouse,clicked,?"); - eb->source = strdup("minimize"); + eb->signal = evas_stringshare_add("mouse,clicked,?"); + eb->source = evas_stringshare_add("minimize"); eb->modifiers = E_BINDING_MODIFIER_NONE; eb->any_mod = 1; - eb->action = strdup("window_iconic_toggle"); + eb->action = evas_stringshare_add("window_iconic_toggle"); eb->params = NULL; e_config->signal_bindings = evas_list_append(e_config->signal_bindings, eb); eb = E_NEW(E_Config_Binding_Signal, 1); eb->context = E_BINDING_CONTEXT_BORDER; - eb->signal = strdup("mouse,down,1"); - eb->source = strdup("icon"); + eb->signal = evas_stringshare_add("mouse,down,1"); + eb->source = evas_stringshare_add("icon"); eb->modifiers = E_BINDING_MODIFIER_NONE; eb->any_mod = 1; - eb->action = strdup("window_drag_icon"); + eb->action = evas_stringshare_add("window_drag_icon"); eb->params = NULL; e_config->signal_bindings = evas_list_append(e_config->signal_bindings, eb); eb = E_NEW(E_Config_Binding_Signal, 1); eb->context = E_BINDING_CONTEXT_BORDER; - eb->signal = strdup("mouse,down,1"); - eb->source = strdup("title"); + eb->signal = evas_stringshare_add("mouse,down,1"); + eb->source = evas_stringshare_add("title"); eb->modifiers = E_BINDING_MODIFIER_NONE; eb->any_mod = 1; - eb->action = strdup("window_move"); + eb->action = evas_stringshare_add("window_move"); eb->params = NULL; e_config->signal_bindings = evas_list_append(e_config->signal_bindings, eb); eb = E_NEW(E_Config_Binding_Signal, 1); eb->context = E_BINDING_CONTEXT_BORDER; - eb->signal = strdup("mouse,up,1"); - eb->source = strdup("title"); + eb->signal = evas_stringshare_add("mouse,up,1"); + eb->source = evas_stringshare_add("title"); eb->modifiers = E_BINDING_MODIFIER_NONE; eb->any_mod = 1; - eb->action = strdup("window_move"); - eb->params = strdup("end"); + eb->action = evas_stringshare_add("window_move"); + eb->params = evas_stringshare_add("end"); e_config->signal_bindings = evas_list_append(e_config->signal_bindings, eb); eb = E_NEW(E_Config_Binding_Signal, 1); eb->context = E_BINDING_CONTEXT_BORDER; - eb->signal = strdup("mouse,down,1"); - eb->source = strdup("resize_tl"); + eb->signal = evas_stringshare_add("mouse,down,1"); + eb->source = evas_stringshare_add("resize_tl"); eb->modifiers = E_BINDING_MODIFIER_NONE; eb->any_mod = 1; - eb->action = strdup("window_resize"); - eb->params = strdup("tl"); + eb->action = evas_stringshare_add("window_resize"); + eb->params = evas_stringshare_add("tl"); e_config->signal_bindings = evas_list_append(e_config->signal_bindings, eb); eb = E_NEW(E_Config_Binding_Signal, 1); eb->context = E_BINDING_CONTEXT_BORDER; - eb->signal = strdup("mouse,down,1"); - eb->source = strdup("resize_t"); + eb->signal = evas_stringshare_add("mouse,down,1"); + eb->source = evas_stringshare_add("resize_t"); eb->modifiers = E_BINDING_MODIFIER_NONE; eb->any_mod = 1; - eb->action = strdup("window_resize"); - eb->params = strdup("t"); + eb->action = evas_stringshare_add("window_resize"); + eb->params = evas_stringshare_add("t"); e_config->signal_bindings = evas_list_append(e_config->signal_bindings, eb); eb = E_NEW(E_Config_Binding_Signal, 1); eb->context = E_BINDING_CONTEXT_BORDER; - eb->signal = strdup("mouse,down,1"); - eb->source = strdup("resize_tr"); + eb->signal = evas_stringshare_add("mouse,down,1"); + eb->source = evas_stringshare_add("resize_tr"); eb->modifiers = E_BINDING_MODIFIER_NONE; eb->any_mod = 1; - eb->action = strdup("window_resize"); - eb->params = strdup("tr"); + eb->action = evas_stringshare_add("window_resize"); + eb->params = evas_stringshare_add("tr"); e_config->signal_bindings = evas_list_append(e_config->signal_bindings, eb); eb = E_NEW(E_Config_Binding_Signal, 1); eb->context = E_BINDING_CONTEXT_BORDER; - eb->signal = strdup("mouse,down,1"); - eb->source = strdup("resize_r"); + eb->signal = evas_stringshare_add("mouse,down,1"); + eb->source = evas_stringshare_add("resize_r"); eb->modifiers = E_BINDING_MODIFIER_NONE; eb->any_mod = 1; - eb->action = strdup("window_resize"); - eb->params = strdup("r"); + eb->action = evas_stringshare_add("window_resize"); + eb->params = evas_stringshare_add("r"); e_config->signal_bindings = evas_list_append(e_config->signal_bindings, eb); eb = E_NEW(E_Config_Binding_Signal, 1); eb->context = E_BINDING_CONTEXT_BORDER; - eb->signal = strdup("mouse,down,1"); - eb->source = strdup("resize_br"); + eb->signal = evas_stringshare_add("mouse,down,1"); + eb->source = evas_stringshare_add("resize_br"); eb->modifiers = E_BINDING_MODIFIER_NONE; eb->any_mod = 1; - eb->action = strdup("window_resize"); - eb->params = strdup("br"); + eb->action = evas_stringshare_add("window_resize"); + eb->params = evas_stringshare_add("br"); e_config->signal_bindings = evas_list_append(e_config->signal_bindings, eb); eb = E_NEW(E_Config_Binding_Signal, 1); eb->context = E_BINDING_CONTEXT_BORDER; - eb->signal = strdup("mouse,down,1"); - eb->source = strdup("resize_b"); + eb->signal = evas_stringshare_add("mouse,down,1"); + eb->source = evas_stringshare_add("resize_b"); eb->modifiers = E_BINDING_MODIFIER_NONE; eb->any_mod = 1; - eb->action = strdup("window_resize"); - eb->params = strdup("b"); + eb->action = evas_stringshare_add("window_resize"); + eb->params = evas_stringshare_add("b"); e_config->signal_bindings = evas_list_append(e_config->signal_bindings, eb); eb = E_NEW(E_Config_Binding_Signal, 1); eb->context = E_BINDING_CONTEXT_BORDER; - eb->signal = strdup("mouse,down,1"); - eb->source = strdup("resize_bl"); + eb->signal = evas_stringshare_add("mouse,down,1"); + eb->source = evas_stringshare_add("resize_bl"); eb->modifiers = E_BINDING_MODIFIER_NONE; eb->any_mod = 1; - eb->action = strdup("window_resize"); - eb->params = strdup("bl"); + eb->action = evas_stringshare_add("window_resize"); + eb->params = evas_stringshare_add("bl"); e_config->signal_bindings = evas_list_append(e_config->signal_bindings, eb); eb = E_NEW(E_Config_Binding_Signal, 1); eb->context = E_BINDING_CONTEXT_BORDER; - eb->signal = strdup("mouse,down,1"); - eb->source = strdup("resize_l"); + eb->signal = evas_stringshare_add("mouse,down,1"); + eb->source = evas_stringshare_add("resize_l"); eb->modifiers = E_BINDING_MODIFIER_NONE; eb->any_mod = 1; - eb->action = strdup("window_resize"); - eb->params = strdup("l"); + eb->action = evas_stringshare_add("window_resize"); + eb->params = evas_stringshare_add("l"); e_config->signal_bindings = evas_list_append(e_config->signal_bindings, eb); eb = E_NEW(E_Config_Binding_Signal, 1); eb->context = E_BINDING_CONTEXT_BORDER; - eb->signal = strdup("mouse,up,1"); - eb->source = strdup("resize_*"); + eb->signal = evas_stringshare_add("mouse,up,1"); + eb->source = evas_stringshare_add("resize_*"); eb->modifiers = E_BINDING_MODIFIER_NONE; eb->any_mod = 1; - eb->action = strdup("window_resize"); - eb->params = strdup("end"); + eb->action = evas_stringshare_add("window_resize"); + eb->params = evas_stringshare_add("end"); e_config->signal_bindings = evas_list_append(e_config->signal_bindings, eb); eb = E_NEW(E_Config_Binding_Signal, 1); eb->context = E_BINDING_CONTEXT_BORDER; - eb->signal = strdup("mouse,down,3"); - eb->source = strdup("resize_*"); + eb->signal = evas_stringshare_add("mouse,down,3"); + eb->source = evas_stringshare_add("resize_*"); eb->modifiers = E_BINDING_MODIFIER_NONE; eb->any_mod = 1; - eb->action = strdup("window_move"); + eb->action = evas_stringshare_add("window_move"); eb->params = NULL; e_config->signal_bindings = evas_list_append(e_config->signal_bindings, eb); eb = E_NEW(E_Config_Binding_Signal, 1); eb->context = E_BINDING_CONTEXT_BORDER; - eb->signal = strdup("mouse,up,3"); - eb->source = strdup("resize_*"); + eb->signal = evas_stringshare_add("mouse,up,3"); + eb->source = evas_stringshare_add("resize_*"); eb->modifiers = E_BINDING_MODIFIER_NONE; eb->any_mod = 1; - eb->action = strdup("window_move"); - eb->params = strdup("end"); + eb->action = evas_stringshare_add("window_move"); + eb->params = evas_stringshare_add("end"); e_config->signal_bindings = evas_list_append(e_config->signal_bindings, eb); } { @@ -1294,8 +1294,8 @@ e_config_init(void) eb->z = -1; eb->modifiers = E_BINDING_MODIFIER_NONE; eb->any_mod = 1; - eb->action = strdup("desk_linear_flip_by"); - eb->params = strdup("-1"); + eb->action = evas_stringshare_add("desk_linear_flip_by"); + eb->params = evas_stringshare_add("-1"); e_config->wheel_bindings = evas_list_append(e_config->wheel_bindings, eb); eb = E_NEW(E_Config_Binding_Wheel, 1); @@ -1304,8 +1304,8 @@ e_config_init(void) eb->z = 1; eb->modifiers = E_BINDING_MODIFIER_NONE; eb->any_mod = 1; - eb->action = strdup("desk_linear_flip_by"); - eb->params = strdup("1"); + eb->action = evas_stringshare_add("desk_linear_flip_by"); + eb->params = evas_stringshare_add("1"); e_config->wheel_bindings = evas_list_append(e_config->wheel_bindings, eb); eb = E_NEW(E_Config_Binding_Wheel, 1); @@ -1314,8 +1314,8 @@ e_config_init(void) eb->z = 1; eb->modifiers = E_BINDING_MODIFIER_NONE; eb->any_mod = 1; - eb->action = strdup("desk_linear_flip_by"); - eb->params = strdup("1"); + eb->action = evas_stringshare_add("desk_linear_flip_by"); + eb->params = evas_stringshare_add("1"); e_config->wheel_bindings = evas_list_append(e_config->wheel_bindings, eb); eb = E_NEW(E_Config_Binding_Wheel, 1); @@ -1324,8 +1324,8 @@ e_config_init(void) eb->z = -1; eb->modifiers = E_BINDING_MODIFIER_NONE; eb->any_mod = 1; - eb->action = strdup("desk_linear_flip_by"); - eb->params = strdup("-1"); + eb->action = evas_stringshare_add("desk_linear_flip_by"); + eb->params = evas_stringshare_add("-1"); e_config->wheel_bindings = evas_list_append(e_config->wheel_bindings, eb); eb = E_NEW(E_Config_Binding_Wheel, 1); @@ -1334,8 +1334,8 @@ e_config_init(void) eb->z = -1; eb->modifiers = E_BINDING_MODIFIER_NONE; eb->any_mod = 1; - eb->action = strdup("desk_linear_flip_by"); - eb->params = strdup("-1"); + eb->action = evas_stringshare_add("desk_linear_flip_by"); + eb->params = evas_stringshare_add("-1"); e_config->wheel_bindings = evas_list_append(e_config->wheel_bindings, eb); eb = E_NEW(E_Config_Binding_Wheel, 1); @@ -1344,8 +1344,8 @@ e_config_init(void) eb->z = 1; eb->modifiers = E_BINDING_MODIFIER_NONE; eb->any_mod = 1; - eb->action = strdup("desk_linear_flip_by"); - eb->params = strdup("1"); + eb->action = evas_stringshare_add("desk_linear_flip_by"); + eb->params = evas_stringshare_add("1"); e_config->wheel_bindings = evas_list_append(e_config->wheel_bindings, eb); eb = E_NEW(E_Config_Binding_Wheel, 1); @@ -1354,8 +1354,8 @@ e_config_init(void) eb->z = 1; eb->modifiers = E_BINDING_MODIFIER_NONE; eb->any_mod = 1; - eb->action = strdup("desk_linear_flip_by"); - eb->params = strdup("1"); + eb->action = evas_stringshare_add("desk_linear_flip_by"); + eb->params = evas_stringshare_add("1"); e_config->wheel_bindings = evas_list_append(e_config->wheel_bindings, eb); eb = E_NEW(E_Config_Binding_Wheel, 1); @@ -1364,8 +1364,8 @@ e_config_init(void) eb->z = -1; eb->modifiers = E_BINDING_MODIFIER_ALT; eb->any_mod = 0; - eb->action = strdup("desk_linear_flip_by"); - eb->params = strdup("-1"); + eb->action = evas_stringshare_add("desk_linear_flip_by"); + eb->params = evas_stringshare_add("-1"); e_config->wheel_bindings = evas_list_append(e_config->wheel_bindings, eb); eb = E_NEW(E_Config_Binding_Wheel, 1); @@ -1374,8 +1374,8 @@ e_config_init(void) eb->z = -1; eb->modifiers = E_BINDING_MODIFIER_ALT; eb->any_mod = 0; - eb->action = strdup("desk_linear_flip_by"); - eb->params = strdup("-1"); + eb->action = evas_stringshare_add("desk_linear_flip_by"); + eb->params = evas_stringshare_add("-1"); e_config->wheel_bindings = evas_list_append(e_config->wheel_bindings, eb); eb = E_NEW(E_Config_Binding_Wheel, 1); @@ -1384,8 +1384,8 @@ e_config_init(void) eb->z = 1; eb->modifiers = E_BINDING_MODIFIER_ALT; eb->any_mod = 0; - eb->action = strdup("desk_linear_flip_by"); - eb->params = strdup("1"); + eb->action = evas_stringshare_add("desk_linear_flip_by"); + eb->params = evas_stringshare_add("1"); e_config->wheel_bindings = evas_list_append(e_config->wheel_bindings, eb); eb = E_NEW(E_Config_Binding_Wheel, 1); @@ -1394,8 +1394,8 @@ e_config_init(void) eb->z = 1; eb->modifiers = E_BINDING_MODIFIER_ALT; eb->any_mod = 0; - eb->action = strdup("desk_linear_flip_by"); - eb->params = strdup("1"); + eb->action = evas_stringshare_add("desk_linear_flip_by"); + eb->params = evas_stringshare_add("1"); e_config->wheel_bindings = evas_list_append(e_config->wheel_bindings, eb); } e_config_save_queue(); @@ -1501,6 +1501,28 @@ e_config_shutdown(void) return 1; } +E_Config_DD * +e_config_descriptor_new(const char *name, int size) +{ + Eet_Data_Descriptor_Class eddc; + + eddc.version = EET_DATA_DESCRIPTOR_CLASS_VERSION; + eddc.func.mem_alloc = NULL; + eddc.func.mem_free = NULL; + eddc.func.str_alloc = evas_stringshare_add; + eddc.func.str_free = evas_stringshare_del; + eddc.func.list_next = evas_list_next; + eddc.func.list_append = evas_list_append; + eddc.func.list_data = evas_list_data; + eddc.func.list_free = evas_list_free; + eddc.func.hash_foreach = evas_hash_foreach; + eddc.func.hash_add = evas_hash_add; + eddc.func.hash_free = evas_hash_free; + eddc.name = name; + eddc.size = size; + return (E_Config_DD *)eet_data_descriptor2_new(&eddc); +} + int e_config_save(void) { @@ -1835,7 +1857,7 @@ _e_config_free(void) em = e_config->modules->data; e_config->modules = evas_list_remove_list(e_config->modules, e_config->modules); - E_FREE(em->name); + if (em->name) evas_stringshare_del(em->name); E_FREE(em); } while (e_config->font_fallbacks) @@ -1844,7 +1866,7 @@ _e_config_free(void) eff = e_config->font_fallbacks->data; e_config->font_fallbacks = evas_list_remove_list(e_config->font_fallbacks, e_config->font_fallbacks); - E_FREE(eff->name); + if (eff->name) evas_stringshare_del(eff->name); E_FREE(eff); } while (e_config->font_defaults) @@ -1853,8 +1875,8 @@ _e_config_free(void) efd = e_config->font_defaults->data; e_config->font_defaults = evas_list_remove_list(e_config->font_defaults, e_config->font_defaults); - E_FREE(efd->text_class); - E_FREE(efd->font); + if (efd->text_class) evas_stringshare_del(efd->text_class); + if (efd->font) evas_stringshare_del(efd->font); E_FREE(efd); } while (e_config->themes) @@ -1863,8 +1885,8 @@ _e_config_free(void) et = e_config->themes->data; e_config->themes = evas_list_remove_list(e_config->themes, e_config->themes); - E_FREE(et->category); - E_FREE(et->file); + if (et->category) evas_stringshare_del(et->category); + if (et->file) evas_stringshare_del(et->file); E_FREE(et); } while (e_config->mouse_bindings) @@ -1873,8 +1895,8 @@ _e_config_free(void) eb = e_config->mouse_bindings->data; e_config->mouse_bindings = evas_list_remove_list(e_config->mouse_bindings, e_config->mouse_bindings); - E_FREE(eb->action); - E_FREE(eb->params); + if (eb->action) evas_stringshare_del(eb->action); + if (eb->params) evas_stringshare_del(eb->params); E_FREE(eb); } while (e_config->key_bindings) @@ -1883,9 +1905,9 @@ _e_config_free(void) eb = e_config->key_bindings->data; e_config->key_bindings = evas_list_remove_list(e_config->key_bindings, e_config->key_bindings); - E_FREE(eb->key); - E_FREE(eb->action); - E_FREE(eb->params); + if (eb->key) evas_stringshare_del(eb->key); + if (eb->action) evas_stringshare_del(eb->action); + if (eb->params) evas_stringshare_del(eb->params); E_FREE(eb); } while (e_config->signal_bindings) @@ -1894,10 +1916,10 @@ _e_config_free(void) eb = e_config->signal_bindings->data; e_config->signal_bindings = evas_list_remove_list(e_config->signal_bindings, e_config->signal_bindings); - E_FREE(eb->signal); - E_FREE(eb->source); - E_FREE(eb->action); - E_FREE(eb->params); + if (eb->signal) evas_stringshare_del(eb->signal); + if (eb->source) evas_stringshare_del(eb->source); + if (eb->action) evas_stringshare_del(eb->action); + if (eb->params) evas_stringshare_del(eb->params); E_FREE(eb); } while (e_config->wheel_bindings) @@ -1906,8 +1928,8 @@ _e_config_free(void) eb = e_config->wheel_bindings->data; e_config->wheel_bindings = evas_list_remove_list(e_config->wheel_bindings, e_config->wheel_bindings); - E_FREE(eb->action); - E_FREE(eb->params); + if (eb->action) evas_stringshare_del(eb->action); + if (eb->params) evas_stringshare_del(eb->params); E_FREE(eb); } while (e_config->path_append_data) @@ -1915,7 +1937,7 @@ _e_config_free(void) E_Path_Dir *epd; epd = e_config->path_append_data->data; e_config->path_append_data = evas_list_remove_list(e_config->path_append_data, e_config->path_append_data); - E_FREE(epd->dir); + if (epd->dir) evas_stringshare_del(epd->dir); E_FREE(epd); } while (e_config->path_append_images) @@ -1923,7 +1945,7 @@ _e_config_free(void) E_Path_Dir *epd; epd = e_config->path_append_images->data; e_config->path_append_images = evas_list_remove_list(e_config->path_append_images, e_config->path_append_images); - E_FREE(epd->dir); + if (epd->dir) evas_stringshare_del(epd->dir); E_FREE(epd); } while (e_config->path_append_fonts) @@ -1931,7 +1953,7 @@ _e_config_free(void) E_Path_Dir *epd; epd = e_config->path_append_fonts->data; e_config->path_append_fonts = evas_list_remove_list(e_config->path_append_fonts, e_config->path_append_fonts); - E_FREE(epd->dir); + if (epd->dir) evas_stringshare_del(epd->dir); E_FREE(epd); } while (e_config->path_append_themes) @@ -1939,7 +1961,7 @@ _e_config_free(void) E_Path_Dir *epd; epd = e_config->path_append_themes->data; e_config->path_append_themes = evas_list_remove_list(e_config->path_append_themes, e_config->path_append_themes); - E_FREE(epd->dir); + if (epd->dir) evas_stringshare_del(epd->dir); E_FREE(epd); } while (e_config->path_append_init) @@ -1947,7 +1969,7 @@ _e_config_free(void) E_Path_Dir *epd; epd = e_config->path_append_init->data; e_config->path_append_init = evas_list_remove_list(e_config->path_append_init, e_config->path_append_init); - E_FREE(epd->dir); + if (epd->dir) evas_stringshare_del(epd->dir); E_FREE(epd); } while (e_config->path_append_icons) @@ -1955,7 +1977,7 @@ _e_config_free(void) E_Path_Dir *epd; epd = e_config->path_append_icons->data; e_config->path_append_icons = evas_list_remove_list(e_config->path_append_icons, e_config->path_append_icons); - E_FREE(epd->dir); + if (epd->dir) evas_stringshare_del(epd->dir); E_FREE(epd); } while (e_config->path_append_modules) @@ -1963,7 +1985,7 @@ _e_config_free(void) E_Path_Dir *epd; epd = e_config->path_append_modules->data; e_config->path_append_modules = evas_list_remove_list(e_config->path_append_modules, e_config->path_append_modules); - E_FREE(epd->dir); + if (epd->dir) evas_stringshare_del(epd->dir); E_FREE(epd); } while (e_config->path_append_backgrounds) @@ -1971,7 +1993,7 @@ _e_config_free(void) E_Path_Dir *epd; epd = e_config->path_append_backgrounds->data; e_config->path_append_backgrounds = evas_list_remove_list(e_config->path_append_backgrounds, e_config->path_append_backgrounds); - E_FREE(epd->dir); + if (epd->dir) evas_stringshare_del(epd->dir); E_FREE(epd); } while (e_config->path_append_input_methods) @@ -1979,7 +2001,7 @@ _e_config_free(void) E_Path_Dir *epd; epd = e_config->path_append_input_methods->data; e_config->path_append_input_methods = evas_list_remove_list(e_config->path_append_input_methods, e_config->path_append_input_methods); - E_FREE(epd->dir); + if (epd->dir) evas_stringshare_del(epd->dir); E_FREE(epd); } while (e_config->path_append_messages) @@ -1987,7 +2009,7 @@ _e_config_free(void) E_Path_Dir *epd; epd = e_config->path_append_messages->data; e_config->path_append_messages = evas_list_remove_list(e_config->path_append_messages, e_config->path_append_messages); - E_FREE(epd->dir); + if (epd->dir) evas_stringshare_del(epd->dir); E_FREE(epd); } while (e_config->remembers) @@ -1996,22 +2018,22 @@ _e_config_free(void) rem = e_config->remembers->data; e_config->remembers = evas_list_remove_list(e_config->remembers, e_config->remembers); - E_FREE(rem->name); - E_FREE(rem->class); - E_FREE(rem->title); - E_FREE(rem->role); - E_FREE(rem->prop.border); - E_FREE(rem->prop.command); + if (rem->name) evas_stringshare_del(rem->name); + if (rem->class) evas_stringshare_del(rem->class); + if (rem->title) evas_stringshare_del(rem->title); + if (rem->role) evas_stringshare_del(rem->role); + if (rem->prop.border) evas_stringshare_del(rem->prop.border); + if (rem->prop.command) evas_stringshare_del(rem->prop.command); E_FREE(rem); } - E_FREE(e_config->desktop_default_background); - E_FREE(e_config->desktop_default_name); - E_FREE(e_config->language); - E_FREE(e_config->transition_start); - E_FREE(e_config->transition_desk); - E_FREE(e_config->transition_change); - E_FREE(e_config->input_method); + if (e_config->desktop_default_background) evas_stringshare_del(e_config->desktop_default_background); + if (e_config->desktop_default_name) evas_stringshare_del(e_config->desktop_default_name); + if (e_config->language) evas_stringshare_del(e_config->language); + if (e_config->transition_start) evas_stringshare_del(e_config->transition_start); + if (e_config->transition_desk) evas_stringshare_del(e_config->transition_desk); + if (e_config->transition_change) evas_stringshare_del(e_config->transition_change); + if (e_config->input_method) evas_stringshare_del(e_config->input_method); E_FREE(e_config); } } diff --git a/src/bin/e_config.h b/src/bin/e_config.h index 8ef6a5d72..ec1e0af60 100644 --- a/src/bin/e_config.h +++ b/src/bin/e_config.h @@ -4,14 +4,7 @@ #ifdef E_TYPEDEFS #define E_CONFIG_DD_NEW(str, typ) \ - eet_data_descriptor_new(str, sizeof(typ), \ - (void *(*) (void *))evas_list_next, \ - (void *(*) (void *, void *))evas_list_append, \ - (void *(*) (void *))evas_list_data, \ - (void *(*) (void *))evas_list_free, \ - (void (*) (void *, int (*) (void *, const char *, void *, void *), void *))evas_hash_foreach, \ - (void *(*) (void *, const char *, void *))evas_hash_add, \ - (void (*) (void *))evas_hash_free) + e_config_descriptor_new(str, sizeof(typ)) #define E_CONFIG_DD_FREE(eed) if (eed) { eet_data_descriptor_free((eed)); (eed) = NULL; } #define E_CONFIG_VAL(edd, type, member, dtype) EET_DATA_DESCRIPTOR_ADD_BASIC(edd, type, #member, member, dtype) #define E_CONFIG_SUB(edd, type, member, eddtype) EET_DATA_DESCRIPTOR_ADD_SUB(edd, type, #member, member, eddtype) @@ -270,6 +263,8 @@ struct _E_Config_Desktop_Name EAPI int e_config_init(void); EAPI int e_config_shutdown(void); +EAPI E_Config_DD *e_config_descriptor_new(const char *name, int size); + EAPI int e_config_save(void); EAPI void e_config_save_flush(void); EAPI void e_config_save_queue(void); diff --git a/src/bin/e_config_dialog.c b/src/bin/e_config_dialog.c index ac1513b05..47b67061d 100644 --- a/src/bin/e_config_dialog.c +++ b/src/bin/e_config_dialog.c @@ -43,8 +43,8 @@ e_config_dialog_new(E_Container *con, char *title, char *icon, int icon_size, E_ static void _e_config_dialog_free(E_Config_Dialog *cfd) { - evas_stringshare_del(cfd->title); - evas_stringshare_del(cfd->icon); + if (cfd->title) evas_stringshare_del(cfd->title); + if (cfd->icon) evas_stringshare_del(cfd->icon); if (cfd->cfdata) { cfd->view.free_cfdata(cfd, cfd->cfdata); diff --git a/src/bin/e_container.c b/src/bin/e_container.c index 764fb0739..94f6c907b 100644 --- a/src/bin/e_container.c +++ b/src/bin/e_container.c @@ -116,7 +116,7 @@ e_container_new(E_Manager *man) con->num = container_num; container_num++; snprintf(name, sizeof(name), _("Container %d"), con->num); - con->name = strdup(name); + con->name = evas_stringshare_add(name); /* init layers */ for (i = 0; i < 7; i++) @@ -969,7 +969,7 @@ _e_container_free(E_Container *con) { ecore_x_window_del(con->win); } - if (con->name) free(con->name); + if (con->name) evas_stringshare_del(con->name); free(con); } diff --git a/src/bin/e_desk.c b/src/bin/e_desk.c index 766455287..b78f2d2e0 100644 --- a/src/bin/e_desk.c +++ b/src/bin/e_desk.c @@ -101,7 +101,7 @@ e_desk_name_add(int container, int zone, int desk_x, int desk_y, char *name) cfname->zone = zone; cfname->desk_x = desk_x; cfname->desk_y = desk_y; - cfname->name = strdup(name); + cfname->name = evas_stringshare_add(name); e_config->desktop_names = evas_list_append(e_config->desktop_names, cfname); } @@ -119,7 +119,7 @@ e_desk_name_del(int container, int zone, int desk_x, int desk_y) (cfname->desk_x == desk_x) && (cfname->desk_y == desk_y)) { e_config->desktop_names = evas_list_remove_list(e_config->desktop_names, l); - E_FREE(cfname->name); + if (cfname->name) evas_stringshare_del(cfname->name); free(cfname); break; } diff --git a/src/bin/e_eap_editor.c b/src/bin/e_eap_editor.c index 739e88b92..70d49b8a0 100644 --- a/src/bin/e_eap_editor.c +++ b/src/bin/e_eap_editor.c @@ -45,7 +45,12 @@ static Evas_Object *_e_eap_edit_basic_create_widgets(E_Config_Dialog *cfd, Eva static Evas_Object *_e_eap_edit_advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, void *data); static void _e_eap_edit_select_cb(Evas_Object *obj, char *file, void *data); -#define IFDUP(src, dst) if(src) dst = strdup(src); else dst = NULL +#define IFDUP(src, dst) if (src) dst = strdup(src); else dst = NULL + +/* FIXME: this eap editor is half-done. first advanced mode needs to ALSO + * cover basic config - image saving is broken, makign new icons is broken + * along with e_apps.c etc. all in all - this is not usable. + */ /* externally accessible functions */ @@ -109,7 +114,20 @@ _e_eap_edit_create_data(E_Config_Dialog *cfd) static void _e_eap_edit_free_data(E_Config_Dialog *cfd, void *data) -{ +{ + E_App_Edit_CFData *cfdata; + + cfdata = data; + E_FREE(cfdata->name); + E_FREE(cfdata->exe); + E_FREE(cfdata->generic); + E_FREE(cfdata->comment); + E_FREE(cfdata->wname); + E_FREE(cfdata->wclass); + E_FREE(cfdata->wtitle); + E_FREE(cfdata->wrole); + E_FREE(cfdata->path); + E_FREE(cfdata->image); free(data); } @@ -124,23 +142,23 @@ _e_eap_edit_basic_apply_data(E_Config_Dialog *cfd, void *data) editor = cfdata->editor; eap = editor->eap; - if(!(cfdata->path)) + if (!(cfdata->path)) return -1; - E_FREE(eap->name); - E_FREE(eap->exe); - E_FREE(eap->image); + if (eap->name) evas_stringshare_del(eap->name); + if (eap->exe) evas_stringshare_del(eap->exe); + if (eap->image) evas_stringshare_del(eap->image); - IFDUP(cfdata->name, eap->name); - IFDUP(cfdata->exe, eap->exe); - IFDUP(cfdata->image, eap->image); + if (cfdata->name) eap->name = evas_stringshare_add(cfdata->name); + if (cfdata->exe) eap->exe = evas_stringshare_add(cfdata->exe); + if (cfdata->image) eap->image = evas_stringshare_add(cfdata->image); eap->startup_notify = cfdata->startup_notify; eap->wait_exit = cfdata->wait_exit; e_app_fields_save(eap); - return 1; + return 1; } static int @@ -154,39 +172,44 @@ _e_eap_edit_advanced_apply_data(E_Config_Dialog *cfd, void *data) editor = cfdata->editor; eap = editor->eap; - if(!(cfdata->path)) + if (!(cfdata->path)) return -1; - - E_FREE(eap->generic); - E_FREE(eap->comment); - E_FREE(eap->win_name); - E_FREE(eap->win_class); - E_FREE(eap->win_title); - E_FREE(eap->win_role); - E_FREE(eap->icon_class); - E_FREE(eap->path); - if(cfdata->startup_notify) + if (eap->name) evas_stringshare_del(eap->name); + if (eap->exe) evas_stringshare_del(eap->exe); + if (eap->image) evas_stringshare_del(eap->image); + + if (eap->generic) evas_stringshare_del(eap->generic); + if (eap->comment) evas_stringshare_del(eap->comment); + if (eap->win_name) evas_stringshare_del(eap->win_name); + if (eap->win_class) evas_stringshare_del(eap->win_class); + if (eap->win_title) evas_stringshare_del(eap->win_title); + if (eap->win_role) evas_stringshare_del(eap->win_role); + if (eap->icon_class) evas_stringshare_del(eap->icon_class); + if (eap->path) evas_stringshare_del(eap->path); + + if (cfdata->startup_notify) eap->startup_notify = 1; else eap->startup_notify = 0; - if(cfdata->wait_exit) + if (cfdata->wait_exit) eap->wait_exit = 1; else eap->wait_exit = 0; - IFDUP(cfdata->generic, eap->generic); - IFDUP(cfdata->comment, eap->comment); - IFDUP(cfdata->wname, eap->win_name); - IFDUP(cfdata->wclass, eap->win_class); - IFDUP(cfdata->wtitle, eap->win_title); - IFDUP(cfdata->wrole, eap->win_role); - IFDUP(cfdata->iclass, eap->icon_class); - IFDUP(cfdata->path, eap->path); - - + if (cfdata->name) eap->name = evas_stringshare_add(cfdata->name); + if (cfdata->exe) eap->exe = evas_stringshare_add(cfdata->exe); + if (cfdata->image) eap->image = evas_stringshare_add(cfdata->image); + + if (cfdata->generic) eap->generic = evas_stringshare_add(cfdata->generic); + if (cfdata->comment) eap->comment = evas_stringshare_add(cfdata->comment); + if (cfdata->wname) eap->win_name = evas_stringshare_add(cfdata->wname); + if (cfdata->wclass) eap->win_class = evas_stringshare_add(cfdata->wclass); + if (cfdata->wtitle) eap->win_title = evas_stringshare_add(cfdata->wtitle); + if (cfdata->wrole) eap->win_role = evas_stringshare_add(cfdata->wrole); + if (cfdata->iclass) eap->icon_class = evas_stringshare_add(cfdata->iclass); + if (cfdata->path) eap->path = evas_stringshare_add(cfdata->path); e_app_fields_save(eap); - return 1; } diff --git a/src/bin/e_error.c b/src/bin/e_error.c index a4b379e93..fc27318ab 100644 --- a/src/bin/e_error.c +++ b/src/bin/e_error.c @@ -96,7 +96,7 @@ e_error_message_manager_show(E_Manager *man, char *title, char *txt) o = evas_object_image_add(e); s = e_path_find(path_images, "e.png"); evas_object_image_file_set(o, s, NULL); - E_FREE(s); + if (s) evas_stringshare_del(s); evas_object_move(o, 16, 16); evas_object_resize(o, 64, 64); evas_object_image_fill_set(o, 0, 0, 64, 64); @@ -181,7 +181,7 @@ e_error_message_manager_show(E_Manager *man, char *title, char *txt) o = evas_object_image_add(e); s = e_path_find(path_images, "button_out.png"); evas_object_image_file_set(o, s, NULL); - E_FREE(s); + if (s) evas_stringshare_del(s); evas_object_move(o, (error_w - 64) / 2, error_h - 16 - 32); evas_object_resize(o, 64, 32); evas_object_image_fill_set(o, 0, 0, 64, 32); @@ -211,7 +211,7 @@ e_error_message_manager_show(E_Manager *man, char *title, char *txt) o = evas_object_image_add(e); s = e_path_find(path_images, "error_bg.png"); evas_object_image_file_set(o, s, NULL); - E_FREE(s); + if (s) evas_stringshare_del(s); evas_object_move(o, 0, 0); evas_object_image_fill_set(o, 0, 0, error_w, error_h); evas_object_resize(o, error_w, error_h); @@ -364,7 +364,7 @@ _e_error_cb_ok_down(void *data, Evas *e, Evas_Object *obj, void *event_info) ee = data; s = e_path_find(path_images, "button_in.png"); evas_object_image_file_set(obj, s, NULL); - E_FREE(s); + if (s) evas_stringshare_del(s); } static void @@ -380,7 +380,7 @@ _e_error_cb_ok_up(void *data, Evas *e, Evas_Object *obj, void *event_info) ee = data; s = e_path_find(path_images, "button_out.png"); evas_object_image_file_set(obj, s, NULL); - E_FREE(s); + if (s) evas_stringshare_del(s); o = evas_object_name_find(ecore_evas_get(ee), "allocated"); if (o) { diff --git a/src/bin/e_file_dialog.c b/src/bin/e_file_dialog.c index 3a4b13aec..2df53e80e 100644 --- a/src/bin/e_file_dialog.c +++ b/src/bin/e_file_dialog.c @@ -48,9 +48,9 @@ e_file_dialog_new(E_Container *con) list = e_widget_framelist_add(evas, _("Places"), 0); e_widget_framelist_content_align_set(list, 0.5, 0.0); - e_widget_framelist_object_append(list, e_widget_button_add(evas, strdup(_("Home")), "fileman/home", NULL, NULL, NULL)); - e_widget_framelist_object_append(list, e_widget_button_add(evas, strdup(_("Desktop")), "fileman/desktop", NULL, NULL, NULL)); - e_widget_framelist_object_append(list, e_widget_button_add(evas, strdup(_("Icons")), "fileman/folder", NULL, NULL, NULL)); + e_widget_framelist_object_append(list, e_widget_button_add(evas, _("Home"), "fileman/home", NULL, NULL, NULL)); + e_widget_framelist_object_append(list, e_widget_button_add(evas, _("Desktop"), "fileman/desktop", NULL, NULL, NULL)); + e_widget_framelist_object_append(list, e_widget_button_add(evas, _("Icons"), "fileman/folder", NULL, NULL, NULL)); e_widget_list_object_append(ol, list, 1, 0, 0.0); fm = e_widget_fileman_add(evas, &(dia->file)); diff --git a/src/bin/e_font.c b/src/bin/e_font.c index b818ef6f1..86bfa0bea 100644 --- a/src/bin/e_font.c +++ b/src/bin/e_font.c @@ -157,7 +157,7 @@ e_font_fallback_prepend(const char *font) e_font_fallback_remove (font); eff = E_NEW(E_Font_Fallback, 1); - eff->name = strdup(font); + eff->name = evas_stringshare_add(font); e_config->font_fallbacks = evas_list_prepend(e_config->font_fallbacks, eff); } diff --git a/src/bin/e_gadman.c b/src/bin/e_gadman.c index 7afd8f230..38e116225 100644 --- a/src/bin/e_gadman.c +++ b/src/bin/e_gadman.c @@ -628,7 +628,7 @@ e_gadman_client_menu_new(E_Gadman_Client *gmc) e_menu_item_toggle_set(mi, gmc->use_autow); s = e_path_find(path_icons, "default.edj"); e_menu_item_icon_edje_set(mi, s, "auto_width"); - E_FREE(s); + if (s) evas_stringshare_del(s); e_menu_item_callback_set(mi, _e_gadman_cb_auto_width, gmc); mi = e_menu_item_new(m); e_menu_item_separator_set(mi, 1); @@ -637,13 +637,13 @@ e_gadman_client_menu_new(E_Gadman_Client *gmc) e_menu_item_label_set(mi, _("Half Screen Width")); s = e_path_find(path_icons, "default.edj"); e_menu_item_icon_edje_set(mi, s, "half_width"); - E_FREE(s); + if (s) evas_stringshare_del(s); e_menu_item_callback_set(mi, _e_gadman_cb_half_width, gmc); mi = e_menu_item_new(m); e_menu_item_label_set(mi, _("Full Screen Width")); s = e_path_find(path_icons, "default.edj"); e_menu_item_icon_edje_set(mi, s, "full_width"); - E_FREE(s); + if (s) evas_stringshare_del(s); e_menu_item_callback_set(mi, _e_gadman_cb_full_width, gmc); } disallow = (gmc->policy & E_GADMAN_POLICY_EDGES) @@ -655,7 +655,7 @@ e_gadman_client_menu_new(E_Gadman_Client *gmc) e_menu_item_label_set(mi, _("Center Horizontally")); s = e_path_find(path_icons, "default.edj"); e_menu_item_icon_edje_set(mi, s, "center_horiz"); - E_FREE(s); + if (s) evas_stringshare_del(s); e_menu_item_callback_set(mi, _e_gadman_cb_center_horiz, gmc); } if (seperator) @@ -675,7 +675,7 @@ e_gadman_client_menu_new(E_Gadman_Client *gmc) e_menu_item_toggle_set(mi, gmc->use_autoh); s = e_path_find(path_icons, "default.edj"), e_menu_item_icon_edje_set(mi, s, "auto_height"); - E_FREE(s); + if (s) evas_stringshare_del(s); e_menu_item_callback_set(mi, _e_gadman_cb_auto_height, gmc); mi = e_menu_item_new(m); e_menu_item_separator_set(mi, 1); @@ -684,12 +684,13 @@ e_gadman_client_menu_new(E_Gadman_Client *gmc) e_menu_item_label_set(mi, _("Half Screen Height")); s = e_path_find(path_icons, "default.edj"); e_menu_item_icon_edje_set(mi, s, "half_height"); - E_FREE(s); + if (s) evas_stringshare_del(s); e_menu_item_callback_set(mi, _e_gadman_cb_half_height, gmc); mi = e_menu_item_new(m); e_menu_item_label_set(mi, _("Full Screen Height")); s = e_path_find(path_icons, "default.edj"); e_menu_item_icon_edje_set(mi, s, "full_height"); + if (s) evas_stringshare_del(s); e_menu_item_callback_set(mi, _e_gadman_cb_full_height, gmc); } disallow = (gmc->policy & E_GADMAN_POLICY_EDGES) @@ -701,7 +702,7 @@ e_gadman_client_menu_new(E_Gadman_Client *gmc) e_menu_item_label_set(mi, _("Center Vertically")); s = e_path_find(path_icons, "default.edj"); e_menu_item_icon_edje_set(mi, s, "center_vert"); - E_FREE(s); + if (s) evas_stringshare_del(s); e_menu_item_callback_set(mi, _e_gadman_cb_center_vert, gmc); } if (seperator) diff --git a/src/bin/e_init.c b/src/bin/e_init.c index 17f38b089..fe86dd008 100644 --- a/src/bin/e_init.c +++ b/src/bin/e_init.c @@ -70,7 +70,7 @@ e_init_init(void) /* FIXME: "init.edj" needs to come from config */ s = e_path_find(path_init, "init.edj"), edje_object_file_set(o, s, "init/splash"); - E_FREE(s); + if (s) evas_stringshare_del(s); _e_init_object = o; } /* other screens */ @@ -79,7 +79,7 @@ e_init_init(void) /* FIXME: "init.edj" needs to come from config */ s = e_path_find(path_init, "init.edj"), edje_object_file_set(o, s, "init/extra_screen"); - E_FREE(s); + if (s) evas_stringshare_del(s); } evas_object_move(o, scr->x, scr->y); evas_object_resize(o, scr->w, scr->h); @@ -92,7 +92,7 @@ e_init_init(void) /* FIXME: "init.edj" needs to come from config */ s = e_path_find(path_init, "init.edj"), edje_object_file_set(o, s, "init/splash"); - E_FREE(s); + if (s) evas_stringshare_del(s); _e_init_object = o; evas_object_move(o, 0, 0); evas_object_resize(o, w, h); diff --git a/src/bin/e_int_border_border.c b/src/bin/e_int_border_border.c index 638b1a806..dc38cb367 100644 --- a/src/bin/e_int_border_border.c +++ b/src/bin/e_int_border_border.c @@ -125,8 +125,8 @@ _basic_apply_data(E_Config_Dialog *cfd, CFData *cfdata) } if ((!cfdata->border->lock_border) && (!cfdata->border->shaded)) { - if (cfdata->border->client.border.name) free(cfdata->border->client.border.name); - cfdata->border->client.border.name = strdup(cfdata->bordername); + if (cfdata->border->client.border.name) evas_stringshare_del(cfdata->border->client.border.name); + cfdata->border->client.border.name = evas_stringshare_add(cfdata->bordername); cfdata->border->client.border.changed = 1; cfdata->border->changed = 1; } diff --git a/src/bin/e_int_border_menu.c b/src/bin/e_int_border_menu.c index e07fe584d..1bec94e1d 100644 --- a/src/bin/e_int_border_menu.c +++ b/src/bin/e_int_border_menu.c @@ -512,13 +512,14 @@ _e_border_menu_cb_icon_edit(void *data, E_Menu *m, E_Menu_Item *mi) bd = data; a = bd->app; - if (!a) + if ((!a) && (bd->client.icccm.class)) { static char buf[PATH_MAX]; char *name, *homedir, *p; int instance; - name = strdup(bd->client.icccm.class); + name = alloca(strlen(bd->client.icccm.class) + 1); + strcpy(name, bd->client.icccm.class); p = name; while (*p) { @@ -536,17 +537,16 @@ _e_border_menu_cb_icon_edit(void *data, E_Menu *m, E_Menu_Item *mi) instance++; } free(homedir); - free(name); a = e_app_empty_new(buf); if (a) { - a->win_name = strdup(bd->client.icccm.name); - a->win_class = strdup(bd->client.icccm.class); + if (bd->client.icccm.name) a->win_name = evas_stringshare_add(bd->client.icccm.name); + if (bd->client.icccm.class) a->win_class = evas_stringshare_add(bd->client.icccm.class); if (bd->client.icccm.window_role) - a->win_role = strdup(bd->client.icccm.window_role); - a->icon_class = strdup(bd->client.icccm.class); - a->name = strdup(bd->client.icccm.class); - a->exe = strdup(bd->client.icccm.name); + a->win_role = evas_stringshare_add(bd->client.icccm.window_role); + if (bd->client.icccm.class) a->icon_class = evas_stringshare_add(bd->client.icccm.class); + if (bd->client.icccm.class) a->name = evas_stringshare_add(bd->client.icccm.class); + if (bd->client.icccm.name) a->exe = evas_stringshare_add(bd->client.icccm.name); if (bd->client.netwm.startup_id > 0) a->startup_notify = 1; } @@ -618,12 +618,12 @@ _e_border_menu_cb_borderless(void *data, E_Menu *m, E_Menu_Item *mi) if ((!bd->lock_border) && (!bd->shaded)) { - if (bd->client.border.name) free(bd->client.border.name); + if (bd->client.border.name) evas_stringshare_del(bd->client.border.name); toggle = e_menu_item_toggle_get(mi); if (toggle) - bd->client.border.name = strdup("borderless"); + bd->client.border.name = evas_stringshare_add("borderless"); else - bd->client.border.name = strdup("default"); + bd->client.border.name = evas_stringshare_add("default"); bd->client.border.changed = 1; bd->changed = 1; } diff --git a/src/bin/e_int_config_background.c b/src/bin/e_int_config_background.c index 14abb3bef..66a17808f 100644 --- a/src/bin/e_int_config_background.c +++ b/src/bin/e_int_config_background.c @@ -90,8 +90,8 @@ _basic_apply_data(E_Config_Dialog *cfd, CFData *cfdata) /* Actually take our cfdata settings and apply them in real life */ printf("file: %s\n", cfdata->file); //e_bg_add(cfd->con, z, 0, 0, cfdata->file); - E_FREE(e_config->desktop_default_background); - e_config->desktop_default_background = strdup(cfdata->file); + if (e_config->desktop_default_background) evas_stringshare_del(e_config->desktop_default_background); + e_config->desktop_default_background = evas_stringshare_add(cfdata->file); e_bg_update(); return 1; /* Apply was OK */ } @@ -167,7 +167,7 @@ _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, CFData *cfdata) continue; /* minimum theme requirements */ - if(edje_object_file_set(o, fullbg, "desktop/background")) + if (edje_object_file_set(o, fullbg, "desktop/background")) { Evas_Object *o = NULL; char *noext, *ext; @@ -194,14 +194,16 @@ _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, CFData *cfdata) cb_data->cfd = cfd; cb_data->file = strdup(fullbg); e_widget_ilist_append(il, o, noext, _e_config_bg_cb_standard, cb_data, fullbg); - if(!strcmp(e_config->desktop_default_background, fullbg)) + + if (!strcmp(e_config->desktop_default_background, fullbg)) { e_widget_ilist_select_set(il, i); bg = edje_object_add(evas); edje_object_file_set(bg, e_config->desktop_default_background, "desktop/background"); im = e_widget_image_add_from_object(evas, bg, 160, 120); } - + + free(noext); i++; } } @@ -216,7 +218,7 @@ _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, CFData *cfdata) e_widget_min_size_set(il, 240, 320); e_widget_table_object_append(o, il, 0, 0, 1, 2, 1, 1, 1, 1); fr = e_widget_framelist_add(evas, "Preview", 0); - if(im == NULL) + if (im == NULL) { bg = edje_object_add(evas); e_theme_edje_object_set(bg, "base/theme/background", "desktop/background"); diff --git a/src/bin/e_int_menus.c b/src/bin/e_int_menus.c index 1d2da677a..761a57ac3 100644 --- a/src/bin/e_int_menus.c +++ b/src/bin/e_int_menus.c @@ -724,7 +724,7 @@ _e_int_menus_clients_pre_cb(void *data, E_Menu *m) e_menu_item_label_set(mi, _("Cleanup Windows")); s = e_path_find(path_icons, "default.edj"); e_menu_item_icon_edje_set(mi, s, "windows"); - E_FREE(s); + if (s) evas_stringshare_del(s); e_menu_item_callback_set(mi, _e_int_menus_clients_cleanup_cb, zone); e_object_free_attach_func_set(E_OBJECT(m), _e_int_menus_clients_free_hook); @@ -940,17 +940,16 @@ _e_int_menus_themes_edit_mode_cb(void *data, E_Menu *m, E_Menu_Item *mi) if (!strcmp(et->category, "theme")) { e_config->themes = evas_list_remove_list(e_config->themes, l); - E_FREE(et->category); - E_FREE(et->file); + evas_stringshare_del(et->category); + evas_stringshare_del(et->file); E_FREE(et); break; } } et = E_NEW(E_Config_Theme, 1); - et->category = strdup("theme"); - et->file = E_NEW(char, strlen(mi->label) + 1); - strcpy(et->file, mi->label); + et->category = evas_stringshare_add("theme"); + et->file = evas_stringshare_add(mi->label); e_config->themes = evas_list_append(e_config->themes, et); e_config_save_queue(); diff --git a/src/bin/e_ipc_codec.c b/src/bin/e_ipc_codec.c index b6131e33e..b79f44294 100644 --- a/src/bin/e_ipc_codec.c +++ b/src/bin/e_ipc_codec.c @@ -25,49 +25,59 @@ static Eet_Data_Descriptor *_e_ipc_3int_4str_list_edd = NULL; static Eet_Data_Descriptor *_e_ipc_3int_3str_edd = NULL; static Eet_Data_Descriptor *_e_ipc_3int_3str_list_edd = NULL; +#define E_IPC_DD_NEW(str, typ) \ + eet_data_descriptor_new(str, sizeof(typ), \ + (void *(*) (void *))evas_list_next, \ + (void *(*) (void *, void *))evas_list_append, \ + (void *(*) (void *))evas_list_data, \ + (void *(*) (void *))evas_list_free, \ + (void (*) (void *, int (*) (void *, const char *, void *, void *), void *))evas_hash_foreach, \ + (void *(*) (void *, const char *, void *))evas_hash_add, \ + (void (*) (void *))evas_hash_free) + /* externally accessible functions */ int e_ipc_codec_init(void) { - _e_ipc_int_edd = E_CONFIG_DD_NEW("int", E_Ipc_Int); + _e_ipc_int_edd = E_IPC_DD_NEW("int", E_Ipc_Int); E_CONFIG_VAL(_e_ipc_int_edd, E_Ipc_Int, val, INT); - _e_ipc_double_edd = E_CONFIG_DD_NEW("double", E_Ipc_Double); + _e_ipc_double_edd = E_IPC_DD_NEW("double", E_Ipc_Double); E_CONFIG_VAL(_e_ipc_double_edd, E_Ipc_Double, val, DOUBLE); - _e_ipc_2int_edd = E_CONFIG_DD_NEW("2int", E_Ipc_2Int); + _e_ipc_2int_edd = E_IPC_DD_NEW("2int", E_Ipc_2Int); E_CONFIG_VAL(_e_ipc_2int_edd, E_Ipc_2Int, val1, INT); E_CONFIG_VAL(_e_ipc_2int_edd, E_Ipc_2Int, val2, INT); - _e_ipc_str_edd = E_CONFIG_DD_NEW("str", E_Ipc_Str); + _e_ipc_str_edd = E_IPC_DD_NEW("str", E_Ipc_Str); E_CONFIG_VAL(_e_ipc_str_edd, E_Ipc_Str, str, STR); - _e_ipc_str_list_edd = E_CONFIG_DD_NEW("str_list", E_Ipc_List); + _e_ipc_str_list_edd = E_IPC_DD_NEW("str_list", E_Ipc_List); E_CONFIG_LIST(_e_ipc_str_list_edd, E_Ipc_List, list, _e_ipc_str_edd); - _e_ipc_2str_edd = E_CONFIG_DD_NEW("2str", E_Ipc_2Str); + _e_ipc_2str_edd = E_IPC_DD_NEW("2str", E_Ipc_2Str); E_CONFIG_VAL(_e_ipc_2str_edd, E_Ipc_2Str, str1, STR); E_CONFIG_VAL(_e_ipc_2str_edd, E_Ipc_2Str, str2, STR); - _e_ipc_2str_list_edd = E_CONFIG_DD_NEW("2str_list", E_Ipc_List); + _e_ipc_2str_list_edd = E_IPC_DD_NEW("2str_list", E_Ipc_List); E_CONFIG_LIST(_e_ipc_2str_list_edd, E_Ipc_List, list, _e_ipc_2str_edd); - _e_ipc_str_int_edd = E_CONFIG_DD_NEW("str_int", E_Ipc_Str_Int); + _e_ipc_str_int_edd = E_IPC_DD_NEW("str_int", E_Ipc_Str_Int); E_CONFIG_VAL(_e_ipc_str_int_edd, E_Ipc_Str_Int, str, STR); E_CONFIG_VAL(_e_ipc_str_int_edd, E_Ipc_Str_Int, val, INT); - _e_ipc_str_int_list_edd = E_CONFIG_DD_NEW("str_int_list", E_Ipc_List); + _e_ipc_str_int_list_edd = E_IPC_DD_NEW("str_int_list", E_Ipc_List); E_CONFIG_LIST(_e_ipc_str_int_list_edd, E_Ipc_List, list, _e_ipc_str_int_edd); - _e_ipc_2str_int_edd = E_CONFIG_DD_NEW("2str_int", E_Ipc_2Str_Int); + _e_ipc_2str_int_edd = E_IPC_DD_NEW("2str_int", E_Ipc_2Str_Int); E_CONFIG_VAL(_e_ipc_2str_int_edd, E_Ipc_2Str_Int, str1, STR); E_CONFIG_VAL(_e_ipc_2str_int_edd, E_Ipc_2Str_Int, str2, STR); E_CONFIG_VAL(_e_ipc_2str_int_edd, E_Ipc_2Str_Int, val, INT); - _e_ipc_2str_int_list_edd = E_CONFIG_DD_NEW("2str_int_list", E_Ipc_List); + _e_ipc_2str_int_list_edd = E_IPC_DD_NEW("2str_int_list", E_Ipc_List); E_CONFIG_LIST(_e_ipc_2str_int_list_edd, E_Ipc_List, list, _e_ipc_2str_int_edd); - _e_ipc_4int_2str_edd = E_CONFIG_DD_NEW("4int_2str", E_Ipc_4Int_2Str); + _e_ipc_4int_2str_edd = E_IPC_DD_NEW("4int_2str", E_Ipc_4Int_2Str); E_CONFIG_VAL(_e_ipc_4int_2str_edd, E_Ipc_4Int_2Str, val1, INT); E_CONFIG_VAL(_e_ipc_4int_2str_edd, E_Ipc_4Int_2Str, val2, INT); E_CONFIG_VAL(_e_ipc_4int_2str_edd, E_Ipc_4Int_2Str, val3, INT); @@ -75,10 +85,10 @@ e_ipc_codec_init(void) E_CONFIG_VAL(_e_ipc_4int_2str_edd, E_Ipc_4Int_2Str, str1, STR); E_CONFIG_VAL(_e_ipc_4int_2str_edd, E_Ipc_4Int_2Str, str2, STR); - _e_ipc_4int_2str_list_edd = E_CONFIG_DD_NEW("4int_2str_list", E_Ipc_List); + _e_ipc_4int_2str_list_edd = E_IPC_DD_NEW("4int_2str_list", E_Ipc_List); E_CONFIG_LIST(_e_ipc_4int_2str_list_edd, E_Ipc_List, list, _e_ipc_4int_2str_edd); - _e_ipc_5int_2str_edd = E_CONFIG_DD_NEW("5int_2str", E_Ipc_5Int_2Str); + _e_ipc_5int_2str_edd = E_IPC_DD_NEW("5int_2str", E_Ipc_5Int_2Str); E_CONFIG_VAL(_e_ipc_5int_2str_edd, E_Ipc_5Int_2Str, val1, INT); E_CONFIG_VAL(_e_ipc_5int_2str_edd, E_Ipc_5Int_2Str, val2, INT); E_CONFIG_VAL(_e_ipc_5int_2str_edd, E_Ipc_5Int_2Str, val3, INT); @@ -87,10 +97,10 @@ e_ipc_codec_init(void) E_CONFIG_VAL(_e_ipc_5int_2str_edd, E_Ipc_5Int_2Str, str1, STR); E_CONFIG_VAL(_e_ipc_5int_2str_edd, E_Ipc_5Int_2Str, str2, STR); - _e_ipc_5int_2str_list_edd = E_CONFIG_DD_NEW("5int_2str_list", E_Ipc_List); + _e_ipc_5int_2str_list_edd = E_IPC_DD_NEW("5int_2str_list", E_Ipc_List); E_CONFIG_LIST(_e_ipc_5int_2str_list_edd, E_Ipc_List, list, _e_ipc_5int_2str_edd); - _e_ipc_3int_4str_edd = E_CONFIG_DD_NEW("3int_4str", E_Ipc_3Int_4Str); + _e_ipc_3int_4str_edd = E_IPC_DD_NEW("3int_4str", E_Ipc_3Int_4Str); E_CONFIG_VAL(_e_ipc_3int_4str_edd, E_Ipc_3Int_4Str, val1, INT); E_CONFIG_VAL(_e_ipc_3int_4str_edd, E_Ipc_3Int_4Str, val2, INT); E_CONFIG_VAL(_e_ipc_3int_4str_edd, E_Ipc_3Int_4Str, val3, INT); @@ -99,10 +109,10 @@ e_ipc_codec_init(void) E_CONFIG_VAL(_e_ipc_3int_4str_edd, E_Ipc_3Int_4Str, str3, STR); E_CONFIG_VAL(_e_ipc_3int_4str_edd, E_Ipc_3Int_4Str, str4, STR); - _e_ipc_3int_4str_list_edd = E_CONFIG_DD_NEW("3int_4str_list", E_Ipc_List); + _e_ipc_3int_4str_list_edd = E_IPC_DD_NEW("3int_4str_list", E_Ipc_List); E_CONFIG_LIST(_e_ipc_3int_4str_list_edd, E_Ipc_List, list, _e_ipc_3int_4str_edd); - _e_ipc_3int_3str_edd = E_CONFIG_DD_NEW("3int_3str", E_Ipc_3Int_3Str); + _e_ipc_3int_3str_edd = E_IPC_DD_NEW("3int_3str", E_Ipc_3Int_3Str); E_CONFIG_VAL(_e_ipc_3int_3str_edd, E_Ipc_3Int_3Str, val1, INT); E_CONFIG_VAL(_e_ipc_3int_3str_edd, E_Ipc_3Int_3Str, val2, INT); E_CONFIG_VAL(_e_ipc_3int_3str_edd, E_Ipc_3Int_3Str, val3, INT); @@ -110,7 +120,7 @@ e_ipc_codec_init(void) E_CONFIG_VAL(_e_ipc_3int_3str_edd, E_Ipc_3Int_3Str, str2, STR); E_CONFIG_VAL(_e_ipc_3int_3str_edd, E_Ipc_3Int_3Str, str3, STR); - _e_ipc_3int_3str_list_edd = E_CONFIG_DD_NEW("3int_3str_list", E_Ipc_List); + _e_ipc_3int_3str_list_edd = E_IPC_DD_NEW("3int_3str_list", E_Ipc_List); E_CONFIG_LIST(_e_ipc_3int_3str_list_edd, E_Ipc_List, list, _e_ipc_3int_3str_edd); return 1; } diff --git a/src/bin/e_ipc_handlers.h b/src/bin/e_ipc_handlers.h index 354f41a81..a867f9a74 100644 --- a/src/bin/e_ipc_handlers.h +++ b/src/bin/e_ipc_handlers.h @@ -994,8 +994,9 @@ break; #elif (TYPE == E_WM_IN) STRING(s, HDL); /* TODO: Check if file exists */ - E_FREE(e_config->desktop_default_background); - if (s) e_config->desktop_default_background = strdup(s); + if (e_config->desktop_default_background) evas_stringshare_del(e_config->desktop_default_background); + e_config->desktop_default_background = NULL; + if (s) e_config->desktop_default_background = evas_stringshare_add(s); e_bg_update(); SAVE; END_STRING(s); @@ -1379,8 +1380,9 @@ break; #elif (TYPE == E_WM_IN) STRING(s, HDL); /* TODO: Check if language exists */ - E_FREE(e_config->language); - if (s) e_config->language = strdup(s); + if (e_config->language) evas_stringshare_del(e_config->language); + e_config->language = NULL; + if (s) e_config->language = evas_stringshare_add(s); if ((e_config->language) && (e_config->language[0] != 0)) e_intl_language_set(e_config->language); else @@ -2431,8 +2433,8 @@ break; d->button = v->val3; d->mod = v->val2; d->any_mod = v->val4; - d->action = ((v->str1) ? strdup(v->str1) : NULL); - d->params = ((v->str2) ? strdup(v->str2) : NULL); + d->action = ((v->str1) ? evas_stringshare_add(v->str1) : NULL); + d->params = ((v->str2) ? evas_stringshare_add(v->str2) : NULL); r->bindings[count] = d; count++; @@ -2538,8 +2540,8 @@ break; eb->button = bind.button; eb->modifiers = bind.modifiers; eb->any_mod = bind.any_mod; - if (bind.action) eb->action = strdup(bind.action); - if (bind.params) eb->params = strdup(bind.params); + if (bind.action) eb->action = evas_stringshare_add(bind.action); + if (bind.params) eb->params = evas_stringshare_add(bind.params); e_border_button_bindings_ungrab_all(); e_bindings_mouse_add(bind.context, bind.button, bind.modifiers, bind.any_mod, bind.action, bind.params); @@ -2640,8 +2642,8 @@ break; if (eb) { e_config->mouse_bindings = evas_list_remove(e_config->mouse_bindings, eb); - E_FREE(eb->action); - E_FREE(eb->params); + if (eb->action) evas_stringshare_del(eb->action); + if (eb->params) evas_stringshare_del(eb->params); E_FREE(eb); e_border_button_bindings_ungrab_all(); e_bindings_mouse_del(bind.context, bind.button, bind.modifiers, @@ -2759,11 +2761,11 @@ break; d = malloc(sizeof(E_Response_Binding_Key_Data)); d->ctx = v->val1; - d->key = ((v->str1) ? strdup(v->str1) : NULL); + d->key = ((v->str1) ? evas_stringshare_add(v->str1) : NULL); d->mod = v->val2; d->any_mod = v->val3; - d->action = ((v->str2) ? strdup(v->str2) : NULL); - d->params = ((v->str3) ? strdup(v->str3) : NULL); + d->action = ((v->str2) ? evas_stringshare_add(v->str2) : NULL); + d->params = ((v->str3) ? evas_stringshare_add(v->str3) : NULL); r->bindings[count] = d; count++; @@ -2867,9 +2869,9 @@ break; eb->context = bind.context; eb->modifiers = bind.modifiers; eb->any_mod = bind.any_mod; - if (bind.key) eb->key = strdup(bind.key); - if (bind.action) eb->action = strdup(bind.action); - if (bind.params) eb->params = strdup(bind.params); + if (bind.key) eb->key = evas_stringshare_add(bind.key); + if (bind.action) eb->action = evas_stringshare_add(bind.action); + if (bind.params) eb->params = evas_stringshare_add(bind.params); e_managers_keys_ungrab(); e_bindings_key_add(bind.context, bind.key, bind.modifiers, bind.any_mod, bind.action, bind.params); @@ -2968,9 +2970,9 @@ break; if (eb) { e_config->key_bindings = evas_list_remove(e_config->key_bindings, eb); - E_FREE(eb->key); - E_FREE(eb->action); - E_FREE(eb->params); + if (eb->key) evas_stringshare_del(eb->key); + if (eb->action) evas_stringshare_del(eb->action); + if (eb->params) evas_stringshare_del(eb->params); E_FREE(eb); e_managers_keys_ungrab(); e_bindings_key_del(bind.context, bind.key, bind.modifiers, @@ -4401,8 +4403,9 @@ break; STRING(s, HDL); if (e_theme_transition_find(s)) { - E_FREE(e_config->transition_start); - if (s) e_config->transition_start = strdup(s); + if (e_config->transition_start) evas_stringshare_del(e_config->transition_start); + e_config->transition_start = NULL; + if (s) e_config->transition_start = evas_stringshare_add(s); SAVE; } END_STRING(s); @@ -4445,8 +4448,9 @@ break; STRING(s, HDL); if (e_theme_transition_find(s)) { - E_FREE(e_config->transition_desk); - if (s) e_config->transition_desk = strdup(s); + if (e_config->transition_desk) evas_stringshare_del(e_config->transition_desk); + e_config->transition_desk = NULL; + if (s) e_config->transition_desk = evas_stringshare_add(s); SAVE; } END_STRING(s); @@ -4489,8 +4493,9 @@ break; STRING(s, HDL); if (e_theme_transition_find(s)) { - E_FREE(e_config->transition_change); - if (s) e_config->transition_change = strdup(s); + if (e_config->transition_change) evas_stringshare_del(e_config->transition_change); + e_config->transition_change = NULL; + if (s) e_config->transition_change = evas_stringshare_add(s); SAVE; } END_STRING(s); @@ -5644,8 +5649,9 @@ break; REQ_STRING(params[0], HDL); #elif (TYPE == E_WM_IN) STRING(s, HDL); - E_FREE(e_config->input_method); - if (s) e_config->input_method = strdup(s); + if (e_config->input_method) evas_stringshare_del(e_config->input_method); + e_config->input_method = NULL; + if (s) e_config->input_method = evas_stringshare_add(s); if ((e_config->input_method) && (e_config->input_method[0] != 0)) e_intl_input_method_set(e_config->input_method); else @@ -5861,8 +5867,8 @@ break; d->source = v->str2; d->mod = v->val2; d->any_mod = v->val3; - d->action = ((v->str3) ? strdup(v->str3) : NULL); - d->params = ((v->str4) ? strdup(v->str4) : NULL); + d->action = ((v->str3) ? evas_stringshare_add(v->str3) : NULL); + d->params = ((v->str4) ? evas_stringshare_add(v->str4) : NULL); r->bindings[count] = d; count++; @@ -5967,12 +5973,12 @@ break; eb = E_NEW(E_Config_Binding_Signal, 1); e_config->signal_bindings = evas_list_append(e_config->signal_bindings, eb); eb->context = bind.context; - if (bind.signal) eb->signal = strdup(bind.signal); - if (bind.source) eb->source = strdup(bind.source); + if (bind.signal) eb->signal = evas_stringshare_add(bind.signal); + if (bind.source) eb->source = evas_stringshare_add(bind.source); eb->modifiers = bind.modifiers; eb->any_mod = bind.any_mod; - if (bind.action) eb->action = strdup(bind.action); - if (bind.params) eb->params = strdup(bind.params); + if (bind.action) eb->action = evas_stringshare_add(bind.action); + if (bind.params) eb->params = evas_stringshare_add(bind.params); e_bindings_signal_add(bind.context, bind.signal, bind.source, bind.modifiers, bind.any_mod, bind.action, bind.params); e_config_save_queue(); @@ -6073,10 +6079,10 @@ break; if (eb) { e_config->signal_bindings = evas_list_remove(e_config->signal_bindings, eb); - E_FREE(eb->signal); - E_FREE(eb->source); - E_FREE(eb->action); - E_FREE(eb->params); + if (eb->signal) evas_stringshare_del(eb->signal); + if (eb->source) evas_stringshare_del(eb->source); + if (eb->action) evas_stringshare_del(eb->action); + if (eb->params) evas_stringshare_del(eb->params); E_FREE(eb); e_bindings_signal_del(bind.context, bind.signal, bind.source, bind.modifiers, bind.any_mod, bind.action, bind.params); @@ -6195,8 +6201,8 @@ break; d->z = v->val3; d->mod = v->val4; d->any_mod = v->val5; - d->action = ((v->str1) ? strdup(v->str1) : NULL); - d->params = ((v->str2) ? strdup(v->str2) : NULL); + d->action = ((v->str1) ? evas_stringshare_add(v->str1) : NULL); + d->params = ((v->str2) ? evas_stringshare_add(v->str2) : NULL); r->bindings[count] = d; count++; @@ -6305,8 +6311,8 @@ break; eb->z = bind.z; eb->modifiers = bind.modifiers; eb->any_mod = bind.any_mod; - if (bind.action) eb->action = strdup(bind.action); - if (bind.params) eb->params = strdup(bind.params); + if (bind.action) eb->action = evas_stringshare_add(bind.action); + if (bind.params) eb->params = evas_stringshare_add(bind.params); e_bindings_wheel_add(bind.context, bind.direction, bind.z, bind.modifiers, bind.any_mod, bind.action, bind.params); e_config_save_queue(); @@ -6407,8 +6413,8 @@ break; if (eb) { e_config->wheel_bindings = evas_list_remove(e_config->wheel_bindings, eb); - E_FREE(eb->action); - E_FREE(eb->params); + if (eb->action) evas_stringshare_del(eb->action); + if (eb->params) evas_stringshare_del(eb->params); E_FREE(eb); e_bindings_wheel_del(bind.context, bind.direction, bind.z, bind.modifiers, bind.any_mod, bind.action, bind.params); diff --git a/src/bin/e_module.c b/src/bin/e_module.c index d9236e684..82e99ba93 100644 --- a/src/bin/e_module.c +++ b/src/bin/e_module.c @@ -56,7 +56,7 @@ e_module_init(void) } else { - E_FREE(em->name); + if (em->name) evas_stringshare_del(em->name); E_FREE(em); e_config->modules = evas_list_remove_list(e_config->modules, pl); e_config_save_queue(); @@ -105,7 +105,7 @@ e_module_new(char *name) modpath = e_path_find(path_modules, buf); } else - modpath = strdup(name); + modpath = evas_stringshare_add(name); if (!modpath) { snprintf(body, sizeof(body), _("There was an error loading module named: %s
" @@ -187,11 +187,21 @@ init_done: _e_modules = evas_list_append(_e_modules, m); m->name = evas_stringshare_add(name); - s = modpath ? ecore_file_get_dir(modpath) : NULL; - if (s) + if (modpath) { - m->dir = ecore_file_get_dir(s); - free(s); + s = ecore_file_get_dir(modpath); + if (s) + { + char *s2; + + s2 = ecore_file_get_dir(s); + free(s); + if (s2) + { + m->dir = evas_stringshare_add(s2); + free(s2); + } + } } if (m->func.info) m->func.info(m); @@ -211,12 +221,12 @@ init_done: E_Config_Module *em; em = E_NEW(E_Config_Module, 1); - em->name = strdup(m->name); + em->name = evas_stringshare_add(m->name); em->enabled = 0; e_config->modules = evas_list_append(e_config->modules, em); e_config_save_queue(); } - free(modpath); + if (modpath) evas_stringshare_del(modpath); return m; } @@ -422,7 +432,7 @@ _e_module_free(E_Module *m) if (!strcmp(em->name, m->name)) { e_config->modules = evas_list_remove(e_config->modules, em); - E_FREE(em->name); + if (em->name) evas_stringshare_del(em->name); E_FREE(em); /* FIXME * This is crap, a job is added, but doesn't run because @@ -439,7 +449,7 @@ _e_module_free(E_Module *m) m->func.shutdown(m); } if (m->name) evas_stringshare_del(m->name); - if (m->dir) free(m->dir); + if (m->dir) evas_stringshare_del(m->dir); if (m->handle) dlclose(m->handle); _e_modules = evas_list_remove(_e_modules, m); if (m->icon_file) free(m->icon_file); diff --git a/src/bin/e_path.c b/src/bin/e_path.c index 462bbd06e..e363c855a 100644 --- a/src/bin/e_path.c +++ b/src/bin/e_path.c @@ -261,7 +261,7 @@ e_path_find(E_Path *ep, const char *file) if (!file) return NULL; str = evas_hash_find(ep->hash, file); - if (str) return strdup(str); + if (str) return evas_stringshare_add(str); /* Look in the default dir list */ for (l = ep->default_dir_list; l; l = l->next) { @@ -282,7 +282,7 @@ e_path_find(E_Path *ep, const char *file) _e_path_cache_free(ep); ep->hash = evas_hash_add(ep->hash, file, evas_stringshare_add(buf)); - return strdup(buf); + return evas_stringshare_add(buf); } if (rp) free(rp); } @@ -307,7 +307,7 @@ e_path_find(E_Path *ep, const char *file) _e_path_cache_free(ep); ep->hash = evas_hash_add(ep->hash, file, evas_stringshare_add(buf)); - return strdup(buf); + return evas_stringshare_add(buf); } if (rp) free(rp); } diff --git a/src/bin/e_pointer.c b/src/bin/e_pointer.c index 630fcf312..eddd2f0cb 100644 --- a/src/bin/e_pointer.c +++ b/src/bin/e_pointer.c @@ -193,15 +193,15 @@ e_pointer_type_push(E_Pointer *p, void *obj, const char *type) } } - if (p->type) free(p->type); - p->type = strdup(type); + if (p->type) evas_stringshare_del(p->type); + p->type = evas_stringshare_add(type); p->obj = obj; stack = E_NEW(E_Pointer_Stack, 1); if (stack) { stack->obj = p->obj; - stack->type = strdup(p->type); + stack->type = evas_stringshare_add(p->type); stack->e_cursor = p->e_cursor; p->stack = evas_list_prepend(p->stack, stack); } @@ -257,8 +257,8 @@ e_pointer_type_pop(E_Pointer *p, void *obj, const char *type) } } - if (p->type) free(p->type); - p->type = strdup(stack->type); + if (p->type) evas_stringshare_del(p->type); + p->type = evas_stringshare_add(stack->type); p->obj = stack->obj; /* try the default cursor next time */ @@ -326,13 +326,13 @@ _e_pointer_free(E_Pointer *p) E_Pointer_Stack *stack; stack = p->stack->data; - free(stack->type); + if (stack->type) evas_stringshare_del(stack->type); free(stack); p->stack = evas_list_remove_list(p->stack, p->stack); } - if (p->type) free(p->type); + if (p->type) evas_stringshare_del(p->type); free(p); } diff --git a/src/bin/e_remember.c b/src/bin/e_remember.c index 94a73f085..5cc597ccf 100644 --- a/src/bin/e_remember.c +++ b/src/bin/e_remember.c @@ -151,23 +151,23 @@ e_remember_find(E_Border *bd) void e_remember_update(E_Remember *rem, E_Border *bd) { - E_FREE(rem->name); - E_FREE(rem->class); - E_FREE(rem->title); - E_FREE(rem->role); - E_FREE(rem->prop.border); - E_FREE(rem->prop.command); + if (rem->name) evas_stringshare_del(rem->name); + if (rem->class) evas_stringshare_del(rem->class); + if (rem->title) evas_stringshare_del(rem->title); + if (rem->role) evas_stringshare_del(rem->role); + if (rem->prop.border) evas_stringshare_del(rem->prop.border); + if (rem->prop.command) evas_stringshare_del(rem->prop.command); if (bd->client.icccm.name) - rem->name = strdup(bd->client.icccm.name); + rem->name = evas_stringshare_add(bd->client.icccm.name); if (bd->client.icccm.class) - rem->class = strdup(bd->client.icccm.class); + rem->class = evas_stringshare_add(bd->client.icccm.class); if (bd->client.netwm.name) - rem->title = strdup(bd->client.netwm.name); + rem->title = evas_stringshare_add(bd->client.netwm.name); else if (bd->client.icccm.title) - rem->title = strdup(bd->client.icccm.title); + rem->title = evas_stringshare_add(bd->client.icccm.title); if (bd->client.icccm.window_role) - rem->role = strdup(bd->client.icccm.window_role); + rem->role = evas_stringshare_add(bd->client.icccm.window_role); rem->type = bd->client.netwm.type; @@ -212,9 +212,9 @@ e_remember_update(E_Remember *rem, E_Border *bd) rem->prop.lock_focus_out = bd->lock_focus_out; rem->prop.lock_life = bd->lock_life; - E_FREE(rem->prop.border); + if (rem->prop.border) evas_stringshare_del(rem->prop.border); if (bd->client.border.name) - rem->prop.border = strdup(bd->client.border.name); + rem->prop.border = evas_stringshare_add(bd->client.border.name); rem->prop.sticky = bd->sticky; @@ -231,7 +231,7 @@ e_remember_update(E_Remember *rem, E_Border *bd) rem->prop.head = bd->zone->container->manager->num; /* FIXME: e17 doesn't fetch WM_COMMAND property yet - E_FREE(rem->prop.command); + if (rem->prop.command) evas_stringshare_del(rem->prop.command); */ e_config_save_queue(); @@ -242,11 +242,11 @@ static void _e_remember_free(E_Remember *rem) { e_config->remembers = evas_list_remove(e_config->remembers, rem); - E_FREE(rem->name); - E_FREE(rem->class); - E_FREE(rem->title); - E_FREE(rem->role); - E_FREE(rem->prop.border); - E_FREE(rem->prop.command); + if (rem->name) evas_stringshare_del(rem->name); + if (rem->class) evas_stringshare_del(rem->class); + if (rem->title) evas_stringshare_del(rem->title); + if (rem->role) evas_stringshare_del(rem->role); + if (rem->prop.border) evas_stringshare_del(rem->prop.border); + if (rem->prop.command) evas_stringshare_del(rem->prop.command); free(rem); } diff --git a/src/bin/e_slider.c b/src/bin/e_slider.c index 489158372..0b9ab0ffa 100644 --- a/src/bin/e_slider.c +++ b/src/bin/e_slider.c @@ -158,9 +158,9 @@ e_slider_value_format_display_set(Evas_Object *obj, const char *format) API_ENTRY return; if (((sd->format) && (!format)) || ((!sd->format) && (format))) changed = 1; - E_FREE(sd->format); + if (sd->format) evas_stringshare_del(sd->format); sd->format = NULL; - if (format) sd->format = strdup(format); + if (format) sd->format = evas_stringshare_add(format); if (changed) { if (sd->format) @@ -454,7 +454,7 @@ _e_smart_del(Evas_Object *obj) { INTERNAL_ENTRY; evas_object_del(sd->edje_obj); - E_FREE(sd->format); + if (sd->format) evas_stringshare_del(sd->format); if (sd->set_timer) ecore_timer_del(sd->set_timer); free(sd); } diff --git a/src/bin/e_theme.c b/src/bin/e_theme.c index 733004033..46952168f 100644 --- a/src/bin/e_theme.c +++ b/src/bin/e_theme.c @@ -107,17 +107,17 @@ e_theme_shutdown(void) } while (categories) { - free(categories->data); + evas_stringshare_del(categories->data); categories = evas_list_remove_list(categories, categories); } while (transitions) { - free(transitions->data); + evas_stringshare_del(transitions->data); transitions = evas_list_remove_list(transitions, transitions); } while (borders) { - free(borders->data); + evas_stringshare_del(borders->data); borders = evas_list_remove_list(borders, borders); } return 1; @@ -277,12 +277,12 @@ e_theme_file_set(char *category, char *file) if (res) { mappings = evas_hash_del(mappings, category, res); - E_FREE(res->file); - E_FREE(res->cache); + if (res->file) evas_stringshare_del(res->file); + if (res->cache) evas_stringshare_del(res->cache); free(res); } res = calloc(1, sizeof(E_Theme_Result)); - res->file = strdup(file); + res->file = evas_stringshare_add(file); mappings = evas_hash_add(mappings, category, res); } @@ -303,16 +303,16 @@ e_theme_config_set(const char *category, const char *file) ect = evas_list_data(next); if (!strcmp(ect->category, category)) { - E_FREE(ect->file); - ect->file = strdup(file); + if (ect->file) evas_stringshare_del(ect->file); + ect->file = evas_stringshare_add(file); return 1; } } /* the text class doesnt exist */ ect = E_NEW(E_Config_Theme, 1); - ect->category = strdup(category); - ect->file = strdup(file); + ect->category = evas_stringshare_add(category); + ect->file = evas_stringshare_add(file); e_config->themes = evas_list_append(e_config->themes, ect); return 1; @@ -353,9 +353,9 @@ e_theme_config_remove(const char *category) { e_config->themes = evas_list_remove_list( e_config->themes, next); - E_FREE(ect->category); - E_FREE(ect->file); - E_FREE(ect); + if (ect->category) evas_stringshare_del(ect->category); + if (ect->file) evas_stringshare_del(ect->file); + free(ect); return 1; } } @@ -433,8 +433,8 @@ _e_theme_mappings_free_cb(Evas_Hash *hash, const char *key, void *data, void *fd E_Theme_Result *res; res = data; - E_FREE(res->file); - E_FREE(res->cache); + if (res->file) evas_stringshare_del(res->file); + if (res->cache) evas_stringshare_del(res->cache); free(res); return 1; } @@ -450,7 +450,7 @@ _e_theme_category_register(const char *category) return; } - categories = evas_list_append(categories, strdup(category)); + categories = evas_list_append(categories, evas_stringshare_add(category)); } static Evas_List * @@ -462,7 +462,7 @@ _e_theme_collection_item_register(Evas_List *list, const char *name) { if (!strcmp(name, l->data)) return list; } - list = evas_list_append(list, strdup(name)); + list = evas_list_append(list, evas_stringshare_add(name)); return list; } @@ -475,60 +475,57 @@ _e_theme_collection_items_find(const char *base, const char *collname) int collname_len; collname_len = strlen(collname); - category = strdup(base); - if (category) + category = alloca(strlen(base) + 1); + strcpy(category, base); + do { - do + res = evas_hash_find(mappings, category); + if (res) { - res = evas_hash_find(mappings, category); - if (res) + char *str; + + /* if found check cached path */ + str = res->cache; + if (!str) { - char *str; - - /* if found check cached path */ - str = res->cache; - if (!str) + /* no cached path */ + str = res->file; + /* if its not an absolute path find it */ + if (str[0] != '/') str = e_path_find(path_themes, str); + /* save cached value */ + if (str) res->cache = str; + } + if (str) + { + Evas_List *coll, *l; + + coll = edje_file_collection_list(str); + if (coll) { - /* no cached path */ - str = res->file; - /* if its not an absolute path find it */ - if (str[0] != '/') str = e_path_find(path_themes, str); - /* save cached value */ - if (str) res->cache = str; - } - if (str) - { - Evas_List *coll, *l; - - coll = edje_file_collection_list(str); - if (coll) + for (l = coll; l; l = l->next) { - for (l = coll; l; l = l->next) + if (!strncmp(l->data, collname, collname_len)) { - if (!strncmp(l->data, collname, collname_len)) + char *trans; + + trans = strdup(l->data); + p = trans + collname_len + 1; + if (*p) { - char *trans; - - trans = strdup(l->data); - p = trans + collname_len + 1; - if (*p) - { - p2 = strchr(p, '/'); - if (p2) *p2 = 0; - list = _e_theme_collection_item_register(list, p); - } - free(trans); + p2 = strchr(p, '/'); + if (p2) *p2 = 0; + list = _e_theme_collection_item_register(list, p); } + free(trans); } - edje_file_collection_list_free(coll); } + edje_file_collection_list_free(coll); } } - p = strrchr(category, '/'); - if (p) *p = 0; } - while (p); - free(category); + p = strrchr(category, '/'); + if (p) *p = 0; } + while (p); return list; } diff --git a/src/bin/e_zone.c b/src/bin/e_zone.c index 1d47b31e2..364a4a333 100644 --- a/src/bin/e_zone.c +++ b/src/bin/e_zone.c @@ -82,7 +82,7 @@ e_zone_new(E_Container *con, int num, int x, int y, int w, int h) snprintf(name, sizeof(name), "Zone %d", zone->num); - zone->name = strdup(name); + zone->name = evas_stringshare_add(name); con->zones = evas_list_append(con->zones, zone); @@ -141,9 +141,8 @@ e_zone_name_set(E_Zone *zone, const char *name) { E_OBJECT_CHECK(zone); E_OBJECT_TYPE_CHECK(zone, E_ZONE_TYPE); - if (zone->name) - free(zone->name); - zone->name = strdup(name); + if (zone->name) evas_stringshare_del(zone->name); + zone->name = evas_stringshare_add(name); } void @@ -678,7 +677,7 @@ _e_zone_free(E_Zone *zone) zone->handlers = NULL; con = zone->container; - if (zone->name) free(zone->name); + if (zone->name) evas_stringshare_del(zone->name); con->zones = evas_list_remove(con->zones, zone); evas_object_del(zone->bg_event_object); evas_object_del(zone->bg_clip_object); diff --git a/src/modules/cpufreq/e_mod_main.c b/src/modules/cpufreq/e_mod_main.c index 13031a39f..828d4313f 100644 --- a/src/modules/cpufreq/e_mod_main.c +++ b/src/modules/cpufreq/e_mod_main.c @@ -276,8 +276,9 @@ _cpufreq_free(Cpufreq *e) _cpufreq_status_free(e->status); - free(e->set_exe_path); evas_list_free(e->conf->faces); + free(e->set_exe_path); + if (e->conf->governor) evas_stringshare_del(e->conf->governor); free(e->conf); free(e); } @@ -405,9 +406,8 @@ _cpufreq_menu_restore_governor(void *data, E_Menu *m, E_Menu_Item *mi) e->conf->restore_governor = e_menu_item_toggle_get(mi); if ((!e->conf->governor) || strcmp(e->status->cur_governor, e->conf->governor)) { - if (e->conf->governor) - free(e->conf->governor); - e->conf->governor = strdup(e->status->cur_governor); + if (e->conf->governor) evas_stringshare_del(e->conf->governor); + e->conf->governor = evas_stringshare_add(e->status->cur_governor); } e_config_save_queue(); } @@ -423,9 +423,8 @@ _cpufreq_menu_governor(void *data, E_Menu *m, E_Menu_Item *mi) if (governor) { _cpufreq_set_governor(e, governor); - if (e->conf->governor) - free(e->conf->governor); - e->conf->governor = strdup(governor); + if (e->conf->governor) evas_stringshare_del(e->conf->governor); + e->conf->governor = evas_stringshare_add(governor); } e_config_save_queue(); } diff --git a/src/modules/ibar/e_mod_main.c b/src/modules/ibar/e_mod_main.c index 3662c2c32..3ae7e88a5 100644 --- a/src/modules/ibar/e_mod_main.c +++ b/src/modules/ibar/e_mod_main.c @@ -206,7 +206,7 @@ _ibar_new() if (!ib->conf) { ib->conf = E_NEW(Config, 1); - ib->conf->appdir = strdup("bar"); + ib->conf->appdir = evas_stringshare_add("bar"); ib->conf->follower = 1; ib->conf->follow_speed = 0.9; ib->conf->autoscroll_speed = 0.95; @@ -304,7 +304,7 @@ _ibar_free(IBar *ib) if (ib->apps) e_object_unref(E_OBJECT(ib->apps)); - E_FREE(ib->conf->appdir); + if (ib->conf->appdir) evas_stringshare_del(ib->conf->appdir); e_app_change_callback_del(_ibar_app_change, ib); e_object_del(E_OBJECT(ib->config_menu_options)); e_object_del(E_OBJECT(ib->config_menu_size));