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.
This commit is contained in:
okan 2014-02-01 00:25:04 +00:00
parent 34477b8a35
commit 8b63ac62c2
2 changed files with 18 additions and 11 deletions

View File

@ -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,

19
cwm.1
View File

@ -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