diff options
author | okan | 2014-01-27 14:49:40 +0000 |
---|---|---|
committer | okan | 2014-01-27 14:49:40 +0000 |
commit | f9023c5af1217939790956892487ebd8b484728a (patch) | |
tree | 7f3ee8d121d439331ba69282f47b2c52035ee929 | |
parent | 6c230ad29cbe09d428e3245f0e162c847d2a625a (diff) | |
download | cwm-f9023c5af1217939790956892487ebd8b484728a.tar.gz |
simplify parse_config using assignment; inspired by a very old diff from
Tiago Cunha.
-rw-r--r-- | parse.y | 61 |
1 files changed, 3 insertions, 58 deletions
@@ -1,4 +1,4 @@ -/* $OpenBSD: parse.y,v 1.52 2014/01/24 22:38:02 okan Exp $ */ +/* $OpenBSD: parse.y,v 1.53 2014/01/27 14:49:40 okan Exp $ */ /* * Copyright (c) 2002, 2003, 2004 Henning Brauer <henning@openbsd.org> @@ -547,76 +547,21 @@ parse_config(const char *filename, struct conf *xconf) { int errors = 0; - conf = xcalloc(1, sizeof(*conf)); + conf = xconf; if ((file = pushfile(filename)) == NULL) { - free(conf); return (-1); } topfile = file; - conf_init(conf); - yyparse(); errors = file->errors; popfile(); if (errors) { conf_clear(conf); + conf_init(conf); } - else { - struct autogroupwin *ag; - struct keybinding *kb; - struct winmatch *wm; - struct cmd *cmd; - struct mousebinding *mb; - int i; - - conf_clear(xconf); - - xconf->flags = conf->flags; - xconf->bwidth = conf->bwidth; - xconf->mamount = conf->mamount; - xconf->snapdist = conf->snapdist; - xconf->gap = conf->gap; - - while ((cmd = TAILQ_FIRST(&conf->cmdq)) != NULL) { - TAILQ_REMOVE(&conf->cmdq, cmd, entry); - TAILQ_INSERT_TAIL(&xconf->cmdq, cmd, entry); - } - - while ((kb = TAILQ_FIRST(&conf->keybindingq)) != NULL) { - TAILQ_REMOVE(&conf->keybindingq, kb, entry); - TAILQ_INSERT_TAIL(&xconf->keybindingq, kb, entry); - } - - while ((ag = TAILQ_FIRST(&conf->autogroupq)) != NULL) { - TAILQ_REMOVE(&conf->autogroupq, ag, entry); - TAILQ_INSERT_TAIL(&xconf->autogroupq, ag, entry); - } - - while ((wm = TAILQ_FIRST(&conf->ignoreq)) != NULL) { - TAILQ_REMOVE(&conf->ignoreq, wm, entry); - TAILQ_INSERT_TAIL(&xconf->ignoreq, wm, entry); - } - - while ((mb = TAILQ_FIRST(&conf->mousebindingq)) != NULL) { - TAILQ_REMOVE(&conf->mousebindingq, mb, entry); - TAILQ_INSERT_TAIL(&xconf->mousebindingq, mb, entry); - } - - (void)strlcpy(xconf->termpath, conf->termpath, - sizeof(xconf->termpath)); - (void)strlcpy(xconf->lockpath, conf->lockpath, - sizeof(xconf->lockpath)); - - for (i = 0; i < CWM_COLOR_NITEMS; i++) - xconf->color[i] = conf->color[i]; - - xconf->font = conf->font; - } - - free(conf); return (errors ? -1 : 0); } |