From 8b63ac62c2d87eb5c66dea85acaa53ab26898a49 Mon Sep 17 00:00:00 2001 From: okan Date: Sat, 1 Feb 2014 00:25:04 +0000 Subject: [PATCH] Let the config parser continue parsing even after encountering an error; original idea (with now-outdated patch) from Thomas Adam. Since we now report where errors exist, this now makes more sense. Expand a bit on config file parsing in the cwm(1). Discussed with a few, including sthen; ok sthen. --- calmwm.c | 10 ++++------ cwm.1 | 19 ++++++++++++++----- 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/calmwm.c b/calmwm.c index abdb79c..0fca8ae 100644 --- a/calmwm.c +++ b/calmwm.c @@ -108,11 +108,8 @@ main(int argc, char **argv) } conf_init(&Conf); - if (conf_path && (parse_config(conf_path, &Conf) == -1)) { - warnx("config file %s has errors, not loading", conf_path); - conf_clear(&Conf); - conf_init(&Conf); - } + if (conf_path && (parse_config(conf_path, &Conf) == -1)) + warnx("config file %s has errors", conf_path); free(conf_path); x_init(display_name); @@ -142,7 +139,6 @@ x_init(const char *dpyname) HasRandr = XRRQueryExtension(X_Dpy, &Randr_ev, &i); conf_atoms(); - conf_cursor(&Conf); for (i = 0; i < ScreenCount(X_Dpy); i++) @@ -162,6 +158,8 @@ x_teardown(void) struct screen_ctx *sc; unsigned int i; + conf_clear(&Conf); + TAILQ_FOREACH(sc, &Screenq, entry) { for (i = 0; i < CWM_COLOR_NITEMS; i++) XftColorFree(X_Dpy, sc->visual, sc->colormap, diff --git a/cwm.1 b/cwm.1 index 63c8ab2..b3a5c3d 100644 --- a/cwm.1 +++ b/cwm.1 @@ -14,7 +14,7 @@ .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" -.Dd $Mdocdate: October 31 2012 $ +.Dd $Mdocdate: December 16 2013 $ .Dt CWM 1 .Os .Sh NAME @@ -52,7 +52,7 @@ Right mouse button. .Nm is very simple in its use. Most of the actions are initiated via key bindings. -The current key bindings are described below; +The default key bindings are described below; their functionality is described in more detail later. .Pp .Bl -tag -width "CM-EscapeXXXXX" -offset indent -compact @@ -125,7 +125,7 @@ Quit .Nm . .El .Pp -The mouse bindings are also important, they are: +The default mouse bindings are: .Pp .Bl -tag -width Ds -offset indent -compact .It Ic M-M1 @@ -145,8 +145,17 @@ The options for are as follows: .Bl -tag -width Ds .It Fl c Ar file -Specify the config file to use. Defaults to -.Pa ~/.cwmrc . +Specify an alternative configuration file. +By default, +.Nm +loads +.Pa ~/.cwmrc , +if present. +Any error messages from lines in the configuration file will be sent to +.Em stderr ; +however, +.Nm +will continue to process the rest of the configuration file. .It Fl d Ar display Specify the display to use. .El