From 543320486c4e812be1afbb4c78224832793a44b3 Mon Sep 17 00:00:00 2001 From: Martin Duquesnoy Date: Sat, 5 Sep 2009 11:01:37 +0200 Subject: [PATCH] Conf: Fix segfault when layout system is switch. --- src/config.c | 30 +++++++++++++++--------------- src/ewmh.c | 4 ++-- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/src/config.c b/src/config.c index f8f9efe..44dd927 100644 --- a/src/config.c +++ b/src/config.c @@ -297,25 +297,25 @@ conf_layout_section(char *src) conf.colors.layout_fg, conf.colors.bar, conf.colors.text); + } - if(!conf.layout[0].symbol - && !conf.layout[0].func) + if(!conf.layout[0].symbol + && !conf.layout[0].func) + { + for(i = 0; i < conf.nlayout; ++i) { - for(i = 0; i < conf.nlayout; ++i) + tmp = get_nsec(src, "layout", i); + + if(!name_to_func((p = get_opt(tmp, "tile", "type").str), layout_list)) + fprintf(stderr, "WMFS Configuration: Unknow Layout type: \"%s\"\n", p); + else { - tmp = get_nsec(src, "layout", i); + if(conf.layout_system && conf.nlayout > 1) + menu_new_item(&menulayout.item[i], get_opt(tmp, "", "symbol").str, + uicb_set_layout, p); - if(!name_to_func((p = get_opt(tmp, "tile", "type").str), layout_list)) - fprintf(stderr, "WMFS Configuration: Unknow Layout type: \"%s\"\n", p); - else - { - if(conf.layout_system && conf.nlayout > 1) - menu_new_item(&menulayout.item[i], get_opt(tmp, "", "symbol").str, - uicb_set_layout, p); - - conf.layout[i].symbol = get_opt(tmp, "TILE (default)", "symbol").str; - conf.layout[i].func = name_to_func(p, layout_list); - } + conf.layout[i].symbol = get_opt(tmp, "TILE (default)", "symbol").str; + conf.layout[i].func = name_to_func(p, layout_list); } } } diff --git a/src/ewmh.c b/src/ewmh.c index 206d421..ce4890b 100644 --- a/src/ewmh.c +++ b/src/ewmh.c @@ -167,8 +167,8 @@ ewmh_update_current_tag_prop(void) /* Current layout */ XChangeProperty(dpy, ROOT, net_atom[wmfs_current_layout], net_atom[utf8_string], 8, - PropModeReplace, (uchar*)tags[selscreen][seltag[selscreen]].layout.symbol, - strlen(tags[selscreen][seltag[selscreen]].layout.symbol)); + PropModeReplace, (uchar*)tags[selscreen][seltag[selscreen]].layout.symbol, + strlen(tags[selscreen][seltag[selscreen]].layout.symbol)); free(s);