From 040a853128dd2340395d0f3c92ad911aa8dfc4fc Mon Sep 17 00:00:00 2001 From: okan Date: Sat, 1 Feb 2014 00:25:04 +0000 Subject: 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 | 12 +++++------- cwm.1 | 21 +++++++++++++++------ 2 files changed, 20 insertions(+), 13 deletions(-) diff --git a/calmwm.c b/calmwm.c index 2add0d4..5f8590e 100644 --- a/calmwm.c +++ b/calmwm.c @@ -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. * - * $OpenBSD: calmwm.c,v 1.87 2014/01/28 00:42:20 okan Exp $ + * $OpenBSD: calmwm.c,v 1.88 2014/02/01 00:25:04 okan Exp $ */ #include @@ -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 fe28187..9174304 100644 --- a/cwm.1 +++ b/cwm.1 @@ -1,4 +1,4 @@ -.\" $OpenBSD: cwm.1,v 1.49 2013/12/16 19:02:17 okan Exp $ +.\" $OpenBSD: cwm.1,v 1.50 2014/02/01 00:25:04 okan Exp $ .\" .\" Copyright (c) 2004,2005 Marius Aamodt Eriksen .\" @@ -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: December 16 2013 $ +.Dd $Mdocdate: February 1 2014 $ .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 -- cgit v1.2.3-2-gb3c3