aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorokan2017-12-27 18:46:18 +0000
committerokan2017-12-27 18:46:18 +0000
commit2adf37a96f7d23964494764d3ebc4e788711acf2 (patch)
treeac8650daab812e2acac556a59ef85aab542b4f3b
parent73cf1b91165b5fcb06a93997af95f6f0cabddc2f (diff)
downloadcwm-2adf37a96f7d23964494764d3ebc4e788711acf2.tar.gz
Add support for re-exec'ing with SIGHUP; equivalent to the already built-in
'restart' function.
Diffstat (limited to '')
-rw-r--r--calmwm.c7
-rw-r--r--cwm.112
2 files changed, 16 insertions, 3 deletions
diff --git a/calmwm.c b/calmwm.c
index 20e3346..ff4568b 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.104 2017/12/27 17:04:35 okan Exp $
+ * $OpenBSD: calmwm.c,v 1.105 2017/12/27 18:46:18 okan Exp $
*/
#include <sys/types.h>
@@ -82,6 +82,8 @@ main(int argc, char **argv)
if (signal(SIGCHLD, sighdlr) == SIG_ERR)
err(1, "signal");
+ if (signal(SIGHUP, sighdlr) == SIG_ERR)
+ err(1, "signal");
Conf.homedir = getenv("HOME");
if ((Conf.homedir == NULL) || (Conf.homedir[0] == '\0')) {
@@ -221,6 +223,9 @@ sighdlr(int sig)
(pid < 0 && errno == EINTR))
;
break;
+ case SIGHUP:
+ cwm_status = CWM_EXEC_WM;
+ break;
}
errno = save_errno;
diff --git a/cwm.1 b/cwm.1
index 8da9de0..2bf5ee0 100644
--- a/cwm.1
+++ b/cwm.1
@@ -1,4 +1,4 @@
-.\" $OpenBSD: cwm.1,v 1.58 2017/07/21 15:55:37 okan Exp $
+.\" $OpenBSD: cwm.1,v 1.59 2017/12/27 18:46:18 okan Exp $
.\"
.\" Copyright (c) 2004,2005 Marius Aamodt Eriksen <marius@monkey.org>
.\"
@@ -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: July 21 2017 $
+.Dd $Mdocdate: December 27 2017 $
.Dt CWM 1
.Os
.Sh NAME
@@ -184,6 +184,14 @@ List all available items.
.It Ic [Esc]
Cancel.
.El
+.Pp
+.Nm
+rereads its configuration file when it receives a hangup signal,
+.Dv SIGHUP ,
+by executing itself with the name and arguments with which it was started.
+This is equivilant to the
+.Ar restart
+function.
.Sh SEARCH
.Nm
features the ability to search for windows by their current title,