summary refs log tree commit diff
diff options
context:
space:
mode:
authorokan <okan>2019-02-25 18:07:48 +0000
committerokan <okan>2019-02-25 18:07:48 +0000
commitcd4be1c17a537cc398520140c547370d1061b841 (patch)
tree3be720036b9cfc7a04b2d2aaf4d962e2cc1f5059
parenta5ba9aa9da9567244d1c3d1d8ccacfdb51b044de (diff)
downloadcwm-cd4be1c17a537cc398520140c547370d1061b841.tar.gz
cwm-cd4be1c17a537cc398520140c547370d1061b841.tar.xz
cwm-cd4be1c17a537cc398520140c547370d1061b841.zip
Add a configtest flag (-n).
based on a diff from Sascha Paunovic.
-rw-r--r--calmwm.c16
-rw-r--r--cwm.15
2 files changed, 16 insertions, 5 deletions
diff --git a/calmwm.c b/calmwm.c
index 875b0ca..510bd33 100644
--- a/calmwm.c
+++ b/calmwm.c
@@ -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 a603100..7a3f49f 100644
--- a/cwm.1
+++ b/cwm.1
@@ -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