summary refs log tree commit diff
diff options
context:
space:
mode:
authorokan <okan>2014-02-01 00:25:04 +0000
committerokan <okan>2014-02-01 00:25:04 +0000
commit8b63ac62c2d87eb5c66dea85acaa53ab26898a49 (patch)
treee915d01890ac1994aa90c6e97586df1a31a213e9
parent34477b8a35ab71bf384db714ad0e7043b701be0e (diff)
downloadcwm-8b63ac62c2d87eb5c66dea85acaa53ab26898a49.tar.gz
cwm-8b63ac62c2d87eb5c66dea85acaa53ab26898a49.tar.xz
cwm-8b63ac62c2d87eb5c66dea85acaa53ab26898a49.zip
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.
-rw-r--r--calmwm.c10
-rw-r--r--cwm.119
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