From 35d7a7dabf8e1cb8891b2661e5798de4f9f06f87 Mon Sep 17 00:00:00 2001 From: okan Date: Mon, 25 Feb 2019 18:07:48 +0000 Subject: Add a configtest flag (-n). based on a diff from Sascha Paunovic. --- calmwm.c | 18 +++++++++++++----- cwm.1 | 9 ++++++--- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/calmwm.c b/calmwm.c index 101bdbf..1c3c2c0 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.109 2018/02/09 19:54:54 okan Exp $ + * $OpenBSD: calmwm.c,v 1.110 2019/02/25 18:07:48 okan Exp $ */ #include @@ -55,7 +55,7 @@ main(int argc, char **argv) { char *display_name = NULL; char *fallback; - int ch, xfd; + int ch, xfd, nflag = 0; struct pollfd pfd[1]; if (!setlocale(LC_CTYPE, "") || !XSupportsLocale()) @@ -66,7 +66,7 @@ main(int argc, char **argv) fallback = u_argv(argv); Conf.wm_argv = u_argv(argv); - while ((ch = getopt(argc, argv, "c:d:v")) != -1) { + while ((ch = getopt(argc, argv, "c:d:nv")) != -1) { switch (ch) { case 'c': free(Conf.conf_file); @@ -75,6 +75,9 @@ main(int argc, char **argv) case 'd': display_name = optarg; break; + case 'n': + nflag = 1; + break; case 'v': Conf.debug++; break; @@ -90,8 +93,13 @@ main(int argc, char **argv) if (signal(SIGHUP, sighdlr) == SIG_ERR) err(1, "signal"); - if (parse_config(Conf.conf_file, &Conf) == -1) + if (parse_config(Conf.conf_file, &Conf) == -1) { warnx("error parsing config file"); + if (nflag) + return 1; + } + if (nflag) + return 0; xfd = x_init(display_name); cwm_status = CWM_RUNNING; @@ -219,7 +227,7 @@ usage(void) { extern char *__progname; - (void)fprintf(stderr, "usage: %s [-v] [-c file] [-d display]\n", + (void)fprintf(stderr, "usage: %s [-nv] [-c file] [-d display]\n", __progname); exit(1); } diff --git a/cwm.1 b/cwm.1 index ed85bef..825558a 100644 --- a/cwm.1 +++ b/cwm.1 @@ -1,4 +1,4 @@ -.\" $OpenBSD: cwm.1,v 1.63 2019/02/22 19:40:33 okan Exp $ +.\" $OpenBSD: cwm.1,v 1.64 2019/02/25 18:07:48 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: February 22 2019 $ +.Dd $Mdocdate: February 25 2019 $ .Dt CWM 1 .Os .Sh NAME @@ -23,7 +23,7 @@ .Sh SYNOPSIS .\" For a program: program [-abc] file ... .Nm cwm -.Op Fl v +.Op Fl nv .Op Fl c Ar file .Op Fl d Ar display .Sh DESCRIPTION @@ -48,6 +48,9 @@ however, will continue to process the rest of the configuration file. .It Fl d Ar display Specify the display to use. +.It Fl n +Configtest mode. +Only check the configuration file for validity. .It Fl v Verbose mode. Multiple -- cgit v1.2.3-2-gb3c3