From 6dc9647fa861c5619b8da286988a8b251367abd7 Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Wed, 23 Nov 2005 12:55:55 +0000 Subject: [PATCH] handle NULL config strings. some of them anyway SVN revision: 18616 --- src/bin/e_bg.c | 2 +- src/bin/e_bindings.c | 63 ++++++++++++++++++++++++++------------------ src/bin/e_config.c | 56 +++++++++++++++++++-------------------- src/bin/e_module.c | 3 ++- 4 files changed, 69 insertions(+), 55 deletions(-) diff --git a/src/bin/e_bg.c b/src/bin/e_bg.c index ea01779d8..1853730b1 100644 --- a/src/bin/e_bg.c +++ b/src/bin/e_bg.c @@ -21,7 +21,7 @@ e_bg_zone_update(E_Zone *zone, E_Bg_Transition transition) if (transition == E_BG_TRANSITION_START) trans = e_config->transition_start; else if (transition == E_BG_TRANSITION_DESK) trans = e_config->transition_desk; else if (transition == E_BG_TRANSITION_CHANGE) trans = e_config->transition_change; - if (strlen(trans) < 1) transition = E_BG_TRANSITION_NONE; + if ((!trans) || (strlen(trans) < 1)) transition = E_BG_TRANSITION_NONE; ok = 0; for (l = e_config->desktop_backgrounds; l; l = l->next) diff --git a/src/bin/e_bindings.c b/src/bin/e_bindings.c index d69757b4d..4462e6c65 100644 --- a/src/bin/e_bindings.c +++ b/src/bin/e_bindings.c @@ -52,7 +52,8 @@ e_bindings_init(void) eb->any_mod, eb->action, eb->params); /* FIXME: Can this be solved in a generic way? */ /* FIXME: Only change cursor if action is allowed! */ - if ((!strcmp(eb->action, "window_resize")) && + if ((eb->action) && (eb->signal) && (eb->source) && + (!strcmp(eb->action, "window_resize")) && (!strncmp(eb->signal, "mouse,down,", 11)) && (!strncmp(eb->source, "resize_", 7))) { @@ -125,8 +126,8 @@ e_bindings_mouse_add(E_Binding_Context ctxt, int button, E_Binding_Modifier mod, bind->button = button; bind->mod = mod; bind->any_mod = any_mod; - bind->action = strdup(action); - bind->params = strdup(params); + if (action) bind->action = strdup(action); + if (params) bind->params = strdup(params); mouse_bindings = evas_list_append(mouse_bindings, bind); } @@ -144,8 +145,10 @@ e_bindings_mouse_del(E_Binding_Context ctxt, int button, E_Binding_Modifier mod, (bind->button == button) && (bind->mod == mod) && (bind->any_mod == any_mod) && - (!strcmp(bind->action, action)) && - (!strcmp(bind->params, params))) + (((bind->action) && (action) && (!strcmp(bind->action, action))) || + ((!bind->action) && (!action))) && + (((bind->params) && (params) && (!strcmp(bind->params, params))) || + ((!bind->params) && (!params)))) { _e_bindings_mouse_free(bind); mouse_bindings = evas_list_remove_list(mouse_bindings, l); @@ -315,8 +318,8 @@ e_bindings_key_add(E_Binding_Context ctxt, char *key, E_Binding_Modifier mod, in bind->key = strdup(key); bind->mod = mod; bind->any_mod = any_mod; - bind->action = strdup(action); - bind->params = strdup(params); + if (action) bind->action = strdup(action); + if (params) bind->params = strdup(params); key_bindings = evas_list_append(key_bindings, bind); } @@ -331,11 +334,13 @@ e_bindings_key_del(E_Binding_Context ctxt, char *key, E_Binding_Modifier mod, in bind = l->data; if ((bind->ctxt == ctxt) && - (!strcmp(bind->key, key)) && + (key) && (bind->key) && (!strcmp(bind->key, key)) && (bind->mod == mod) && (bind->any_mod == any_mod) && - (!strcmp(bind->action, action)) && - (!strcmp(bind->params, params))) + (((bind->action) && (action) && (!strcmp(bind->action, action))) || + ((!bind->action) && (!action))) && + (((bind->params) && (params) && (!strcmp(bind->params, params))) || + ((!bind->params) && (!params)))) { _e_bindings_key_free(bind); key_bindings = evas_list_remove_list(key_bindings, l); @@ -409,7 +414,7 @@ e_bindings_key_down_event_handle(E_Binding_Context ctxt, E_Object *obj, Ecore_X_ E_Binding_Key *bind; bind = l->data; - if ((!strcmp(bind->key, ev->keyname)) && + if ((bind->key) && (!strcmp(bind->key, ev->keyname)) && ((bind->any_mod) || (bind->mod == mod))) { if (_e_bindings_context_match(bind->ctxt, ctxt)) @@ -447,7 +452,7 @@ e_bindings_key_up_event_handle(E_Binding_Context ctxt, E_Object *obj, Ecore_X_Ev E_Binding_Key *bind; bind = l->data; - if ((!strcmp(bind->key, ev->keyname)) && + if ((bind->key) && (!strcmp(bind->key, ev->keyname)) && ((bind->any_mod) || (bind->mod == mod))) { if (_e_bindings_context_match(bind->ctxt, ctxt)) @@ -478,12 +483,12 @@ e_bindings_signal_add(E_Binding_Context ctxt, char *sig, char *src, E_Binding_Mo bind = calloc(1, sizeof(E_Binding_Signal)); bind->ctxt = ctxt; - bind->sig = strdup(sig); - bind->src = strdup(src); + if (sig) bind->sig = strdup(sig); + if (src) bind->src = strdup(src); bind->mod = mod; bind->any_mod = any_mod; - bind->action = strdup(action); - bind->params = strdup(params); + if (action) bind->action = strdup(action); + if (params) bind->params = strdup(params); signal_bindings = evas_list_append(signal_bindings, bind); } @@ -498,12 +503,16 @@ e_bindings_signal_del(E_Binding_Context ctxt, char *sig, char *src, E_Binding_Mo bind = l->data; if ((bind->ctxt == ctxt) && - (!strcmp(bind->sig, sig)) && - (!strcmp(bind->src, src)) && + (((bind->sig) && (sig) && (!strcmp(bind->sig, sig))) || + ((!bind->sig) && (!sig))) && + (((bind->src) && (src) && (!strcmp(bind->src, src))) || + ((!bind->src) && (!src))) && (bind->mod == mod) && (bind->any_mod == any_mod) && - (!strcmp(bind->action, action)) && - (!strcmp(bind->params, params))) + (((bind->action) && (action) && (!strcmp(bind->action, action))) || + ((!bind->action) && (!action))) && + (((bind->params) && (params) && (!strcmp(bind->params, params))) || + ((!bind->params) && (!params)))) { _e_bindings_signal_free(bind); signal_bindings = evas_list_remove_list(signal_bindings, l); @@ -549,7 +558,9 @@ e_bindings_signal_handle(E_Binding_Context ctxt, E_Object *obj, char *sig, char { E_Action *act; E_Binding_Signal *bind; - + + if (sig[0] == 0) sig = NULL; + if (src[0] == 0) src = NULL; act = e_bindings_signal_find(ctxt, obj, sig, src, &bind); if (act) { @@ -574,8 +585,8 @@ e_bindings_wheel_add(E_Binding_Context ctxt, int direction, int z, E_Binding_Mod bind->z = z; bind->mod = mod; bind->any_mod = any_mod; - bind->action = strdup(action); - bind->params = strdup(params); + if (action) bind->action = strdup(action); + if (params) bind->params = strdup(params); wheel_bindings = evas_list_append(wheel_bindings, bind); } @@ -594,8 +605,10 @@ e_bindings_wheel_del(E_Binding_Context ctxt, int direction, int z, E_Binding_Mod (bind->z == z) && (bind->mod == mod) && (bind->any_mod == any_mod) && - (!strcmp(bind->action, action)) && - (!strcmp(bind->params, params))) + (((bind->action) && (action) && (!strcmp(bind->action, action))) || + ((!bind->action) && (!action))) && + (((bind->params) && (params) && (!strcmp(bind->params, params))) || + ((!bind->params) && (!params)))) { _e_bindings_wheel_free(bind); wheel_bindings = evas_list_remove_list(wheel_bindings, l); diff --git a/src/bin/e_config.c b/src/bin/e_config.c index 07d71ed62..b54dd10c6 100644 --- a/src/bin/e_config.c +++ b/src/bin/e_config.c @@ -400,7 +400,7 @@ e_config_init(void) e_config = E_NEW(E_Config, 1); e_config->config_version = E_CONFIG_FILE_VERSION; e_config->show_splash = 1; - e_config->desktop_default_background = strdup(""); + e_config->desktop_default_background = NULL; e_config->desktop_default_name = strdup("Desktop %i, %i"); e_config->menus_scroll_speed = 1000.0; e_config->menus_fast_mouse_move_threshhold = 300.0; @@ -426,7 +426,7 @@ e_config_init(void) e_config->evas_engine_drag = E_EVAS_ENGINE_DEFAULT; e_config->evas_engine_win = E_EVAS_ENGINE_DEFAULT; e_config->evas_engine_zone = E_EVAS_ENGINE_DEFAULT; - e_config->language = strdup(""); + e_config->language = NULL; e_config->window_placement_policy = E_WINDOW_PLACEMENT_SMART; e_config->focus_policy = E_FOCUS_SLOPPY; e_config->focus_setting = E_FOCUS_NEW_DIALOG_IF_OWNER_FOCUSED; @@ -466,7 +466,7 @@ e_config_init(void) e_config->kill_timer_wait = 10.0; e_config->ping_clients = 1; e_config->ping_clients_wait = 10.0; - e_config->transition_start = strdup(""); + e_config->transition_start = NULL; e_config->transition_desk = strdup("vswipe"); e_config->transition_change = strdup("crossfade"); e_config->move_info_follows = 1; @@ -589,7 +589,7 @@ e_config_init(void) eb->modifiers = E_BINDING_MODIFIER_ALT; eb->any_mod = 0; eb->action = strdup("window_move"); - eb->params = strdup(""); + eb->params = NULL; e_config->mouse_bindings = evas_list_append(e_config->mouse_bindings, eb); eb = E_NEW(E_Config_Binding_Mouse, 1); @@ -598,7 +598,7 @@ e_config_init(void) eb->modifiers = E_BINDING_MODIFIER_ALT; eb->any_mod = 0; eb->action = strdup("window_resize"); - eb->params = strdup(""); + eb->params = NULL; e_config->mouse_bindings = evas_list_append(e_config->mouse_bindings, eb); eb = E_NEW(E_Config_Binding_Mouse, 1); @@ -607,7 +607,7 @@ e_config_init(void) eb->modifiers = E_BINDING_MODIFIER_ALT; eb->any_mod = 0; eb->action = strdup("window_menu"); - eb->params = strdup(""); + eb->params = NULL; e_config->mouse_bindings = evas_list_append(e_config->mouse_bindings, eb); eb = E_NEW(E_Config_Binding_Mouse, 1); @@ -643,7 +643,7 @@ e_config_init(void) eb->modifiers = E_BINDING_MODIFIER_ALT; eb->any_mod = 0; eb->action = strdup("edit_mode"); - eb->params = strdup(""); + eb->params = NULL; e_config->mouse_bindings = evas_list_append(e_config->mouse_bindings, eb); } { @@ -691,7 +691,7 @@ e_config_init(void) eb->modifiers = E_BINDING_MODIFIER_CTRL | E_BINDING_MODIFIER_ALT; eb->any_mod = 0; eb->action = strdup("window_raise"); - eb->params = strdup(""); + eb->params = NULL; e_config->key_bindings = evas_list_append(e_config->key_bindings, eb); eb = E_NEW(E_Config_Binding_Key, 1); @@ -700,7 +700,7 @@ e_config_init(void) eb->modifiers = E_BINDING_MODIFIER_CTRL | E_BINDING_MODIFIER_ALT; eb->any_mod = 0; eb->action = strdup("window_lower"); - eb->params = strdup(""); + eb->params = NULL; e_config->key_bindings = evas_list_append(e_config->key_bindings, eb); eb = E_NEW(E_Config_Binding_Key, 1); @@ -709,7 +709,7 @@ e_config_init(void) eb->modifiers = E_BINDING_MODIFIER_CTRL | E_BINDING_MODIFIER_ALT; eb->any_mod = 0; eb->action = strdup("window_close"); - eb->params = strdup(""); + eb->params = NULL; e_config->key_bindings = evas_list_append(e_config->key_bindings, eb); eb = E_NEW(E_Config_Binding_Key, 1); @@ -718,7 +718,7 @@ e_config_init(void) eb->modifiers = E_BINDING_MODIFIER_CTRL | E_BINDING_MODIFIER_ALT; eb->any_mod = 0; eb->action = strdup("window_kill"); - eb->params = strdup(""); + eb->params = NULL; e_config->key_bindings = evas_list_append(e_config->key_bindings, eb); eb = E_NEW(E_Config_Binding_Key, 1); @@ -727,7 +727,7 @@ e_config_init(void) eb->modifiers = E_BINDING_MODIFIER_CTRL | E_BINDING_MODIFIER_ALT; eb->any_mod = 0; eb->action = strdup("window_menu"); - eb->params = strdup(""); + eb->params = NULL; e_config->key_bindings = evas_list_append(e_config->key_bindings, eb); eb = E_NEW(E_Config_Binding_Key, 1); @@ -736,7 +736,7 @@ e_config_init(void) eb->modifiers = E_BINDING_MODIFIER_CTRL | E_BINDING_MODIFIER_ALT; eb->any_mod = 0; eb->action = strdup("window_sticky_toggle"); - eb->params = strdup(""); + eb->params = NULL; e_config->key_bindings = evas_list_append(e_config->key_bindings, eb); eb = E_NEW(E_Config_Binding_Key, 1); @@ -745,7 +745,7 @@ e_config_init(void) eb->modifiers = E_BINDING_MODIFIER_CTRL | E_BINDING_MODIFIER_ALT; eb->any_mod = 0; eb->action = strdup("window_iconic_toggle"); - eb->params = strdup(""); + eb->params = NULL; e_config->key_bindings = evas_list_append(e_config->key_bindings, eb); eb = E_NEW(E_Config_Binding_Key, 1); @@ -754,7 +754,7 @@ e_config_init(void) eb->modifiers = E_BINDING_MODIFIER_CTRL | E_BINDING_MODIFIER_ALT; eb->any_mod = 0; eb->action = strdup("window_maximized_toggle"); - eb->params = strdup(""); + eb->params = NULL; e_config->key_bindings = evas_list_append(e_config->key_bindings, eb); eb = E_NEW(E_Config_Binding_Key, 1); @@ -763,7 +763,7 @@ e_config_init(void) eb->modifiers = E_BINDING_MODIFIER_CTRL | E_BINDING_MODIFIER_ALT; eb->any_mod = 0; eb->action = strdup("window_shaded_toggle"); - eb->params = strdup(""); + eb->params = NULL; e_config->key_bindings = evas_list_append(e_config->key_bindings, eb); eb = E_NEW(E_Config_Binding_Key, 1); @@ -970,7 +970,7 @@ e_config_init(void) eb->modifiers = E_BINDING_MODIFIER_CTRL | E_BINDING_MODIFIER_ALT; eb->any_mod = 0; eb->action = strdup("edit_mode_toggle"); - eb->params = strdup(""); + eb->params = NULL; e_config->key_bindings = evas_list_append(e_config->key_bindings, eb); eb = E_NEW(E_Config_Binding_Key, 1); @@ -979,7 +979,7 @@ e_config_init(void) eb->modifiers = E_BINDING_MODIFIER_CTRL | E_BINDING_MODIFIER_ALT; eb->any_mod = 0; eb->action = strdup("restart"); - eb->params = strdup(""); + eb->params = NULL; e_config->key_bindings = evas_list_append(e_config->key_bindings, eb); eb = E_NEW(E_Config_Binding_Key, 1); @@ -988,7 +988,7 @@ e_config_init(void) eb->modifiers = E_BINDING_MODIFIER_CTRL | E_BINDING_MODIFIER_ALT; eb->any_mod = 0; eb->action = strdup("exit"); - eb->params = strdup(""); + eb->params = NULL; e_config->key_bindings = evas_list_append(e_config->key_bindings, eb); /* need to support fullscreen anyway for this - ie netwm and the border @@ -1046,7 +1046,7 @@ e_config_init(void) eb->modifiers = E_BINDING_MODIFIER_NONE; eb->any_mod = 1; eb->action = strdup("window_menu"); - eb->params = strdup(""); + eb->params = NULL; e_config->signal_bindings = evas_list_append(e_config->signal_bindings, eb); eb = E_NEW(E_Config_Binding_Signal, 1); @@ -1056,7 +1056,7 @@ e_config_init(void) eb->modifiers = E_BINDING_MODIFIER_NONE; eb->any_mod = 1; eb->action = strdup("window_menu"); - eb->params = strdup(""); + eb->params = NULL; e_config->signal_bindings = evas_list_append(e_config->signal_bindings, eb); eb = E_NEW(E_Config_Binding_Signal, 1); @@ -1066,7 +1066,7 @@ e_config_init(void) eb->modifiers = E_BINDING_MODIFIER_NONE; eb->any_mod = 1; eb->action = strdup("window_close"); - eb->params = strdup(""); + eb->params = NULL; e_config->signal_bindings = evas_list_append(e_config->signal_bindings, eb); eb = E_NEW(E_Config_Binding_Signal, 1); @@ -1076,7 +1076,7 @@ e_config_init(void) eb->modifiers = E_BINDING_MODIFIER_NONE; eb->any_mod = 1; eb->action = strdup("window_kill"); - eb->params = strdup(""); + eb->params = NULL; e_config->signal_bindings = evas_list_append(e_config->signal_bindings, eb); eb = E_NEW(E_Config_Binding_Signal, 1); @@ -1086,7 +1086,7 @@ e_config_init(void) eb->modifiers = E_BINDING_MODIFIER_NONE; eb->any_mod = 1; eb->action = strdup("window_maximized_toggle"); - eb->params = strdup(""); + eb->params = NULL; e_config->signal_bindings = evas_list_append(e_config->signal_bindings, eb); eb = E_NEW(E_Config_Binding_Signal, 1); @@ -1116,7 +1116,7 @@ e_config_init(void) eb->modifiers = E_BINDING_MODIFIER_NONE; eb->any_mod = 1; eb->action = strdup("window_iconic_toggle"); - eb->params = strdup(""); + eb->params = NULL; e_config->signal_bindings = evas_list_append(e_config->signal_bindings, eb); eb = E_NEW(E_Config_Binding_Signal, 1); @@ -1126,7 +1126,7 @@ e_config_init(void) eb->modifiers = E_BINDING_MODIFIER_NONE; eb->any_mod = 1; eb->action = strdup("window_drag_icon"); - eb->params = strdup(""); + eb->params = NULL; e_config->signal_bindings = evas_list_append(e_config->signal_bindings, eb); eb = E_NEW(E_Config_Binding_Signal, 1); @@ -1136,7 +1136,7 @@ e_config_init(void) eb->modifiers = E_BINDING_MODIFIER_NONE; eb->any_mod = 1; eb->action = strdup("window_move"); - eb->params = strdup(""); + eb->params = NULL; e_config->signal_bindings = evas_list_append(e_config->signal_bindings, eb); eb = E_NEW(E_Config_Binding_Signal, 1); @@ -1246,7 +1246,7 @@ e_config_init(void) eb->modifiers = E_BINDING_MODIFIER_NONE; eb->any_mod = 1; eb->action = strdup("window_move"); - eb->params = strdup(""); + eb->params = NULL; e_config->signal_bindings = evas_list_append(e_config->signal_bindings, eb); eb = E_NEW(E_Config_Binding_Signal, 1); diff --git a/src/bin/e_module.c b/src/bin/e_module.c index e1eb63704..1d72dc06a 100644 --- a/src/bin/e_module.c +++ b/src/bin/e_module.c @@ -48,7 +48,8 @@ e_module_init(void) em = l->data; pl = l; l = l->next; - m = e_module_new(em->name); + m = NULL; + if (em->name) m = e_module_new(em->name); if (m) { if (em->enabled) e_module_enable(m);