diff options
Diffstat (limited to 'monsterwm.c')
| -rw-r--r-- | monsterwm.c | 26 |
1 files changed, 11 insertions, 15 deletions
diff --git a/monsterwm.c b/monsterwm.c index fdb68eb..85c0b75 100644 --- a/monsterwm.c +++ b/monsterwm.c @@ -1,5 +1,6 @@ /* see license for copyright and license */ #define _XOPEN_SOURCE +#define _POSIX_C_SOURCE 200112L #include <stdlib.h> #include <stdio.h> #include <err.h> @@ -428,22 +429,15 @@ void write_status(void) { printf("%%{r}"); now = time(NULL); - putenv("TZ=PST8PDT"); - ptm = localtime(&now); - strftime(buff, sizeof(buff), "%Z %H:%M", ptm); - printf("%s | ", buff); - - putenv("TZ=America/Chicago"); - ptm = localtime(&now); - strftime(buff, sizeof(buff), "%Z %H:%M", ptm); - printf("%s | ", buff); - - putenv("TZ=UTC"); - ptm = localtime(&now); - strftime(buff, sizeof(buff), "%Z %H:%M", ptm); - printf("%s | ", buff); + char* const tzs[] = {"TZ=PST8PDT", "TZ=America/Chicago", "TZ=America/New_York", "TZ=UTC", "TZ=Europe/London"}; + for (unsigned int i=0; i < LENGTH(tzs); i++) { + putenv(tzs[i]); + ptm = localtime(&now); + strftime(buff, sizeof(buff), "%Z %H:%M", ptm); + printf("%s | ", buff); + } - putenv("TZ=Europe/Amsterdam"); + unsetenv("TZ"); ptm = localtime(&now); strftime(buff, sizeof(buff), "%Z %H:%M:%S %D", ptm); printf("%s", buff); @@ -1133,8 +1127,10 @@ void sigchld(__attribute__((unused)) int sig) { void spawn(const Arg *arg) { if (fork()) return; if (dis) close(ConnectionNumber(dis)); + freopen("/dev/null", "w", stdout); // don't nuke status setsid(); execvp((char*)arg->com[0], (char**)arg->com); + freopen("/dev/tty", "w", stdout); err(EXIT_SUCCESS, "execvp %s", (char *)arg->com[0]); } |
