diff options
author | okan | 2009-01-23 19:00:59 +0000 |
---|---|---|
committer | okan | 2009-01-23 19:00:59 +0000 |
commit | 484eb0cd0ae7117fa56f6d4094580128209981a4 (patch) | |
tree | ce687c0e49f1cbb0a4e2d6065ea8e024637e7dc4 /conf.c | |
parent | f766a2baaec283eabcfa26f0c60e9a596b43459d (diff) | |
download | cwm-484eb0cd0ae7117fa56f6d4094580128209981a4.tar.gz |
move conf_clear() and add proto.
ok todd@ oga@
Diffstat (limited to '')
-rw-r--r-- | conf.c | 44 |
1 files changed, 43 insertions, 1 deletions
@@ -15,7 +15,7 @@ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * $Id: conf.c,v 1.54 2009/01/23 18:58:40 oga Exp $ + * $Id: conf.c,v 1.55 2009/01/23 19:00:59 okan Exp $ */ #include "headers.h" @@ -160,6 +160,48 @@ conf_init(struct conf *c) } void +conf_clear(struct conf *c) +{ + struct autogroupwin *ag; + struct keybinding *kb; + struct winmatch *wm; + struct cmd *cmd; + struct mousebinding *mb; + + while ((cmd = TAILQ_FIRST(&c->cmdq)) != NULL) { + TAILQ_REMOVE(&c->cmdq, cmd, entry); + free(cmd); + } + + while ((kb = TAILQ_FIRST(&c->keybindingq)) != NULL) { + TAILQ_REMOVE(&c->keybindingq, kb, entry); + free(kb); + } + + while ((ag = TAILQ_FIRST(&c->autogroupq)) != NULL) { + TAILQ_REMOVE(&c->autogroupq, ag, entry); + free(ag->class); + if (ag->name) + free(ag->name); + free(ag->group); + free(ag); + } + + while ((wm = TAILQ_FIRST(&c->ignoreq)) != NULL) { + TAILQ_REMOVE(&c->ignoreq, wm, entry); + free(wm); + } + + while ((mb = TAILQ_FIRST(&c->mousebindingq)) != NULL) { + TAILQ_REMOVE(&c->mousebindingq, mb, entry); + free(mb); + } + + if (c->DefaultFontName != NULL) + free(c->DefaultFontName); +} + +void conf_setup(struct conf *c, const char *conf_file) { struct stat sb; |