diff options
| author | Mitchell Riedstra <mitch@riedstra.dev> | 2021-10-19 23:18:47 -0400 |
|---|---|---|
| committer | Mitchell Riedstra <mitch@riedstra.dev> | 2021-10-19 23:18:47 -0400 |
| commit | 061085232ef35f956316812806875331f175acf7 (patch) | |
| tree | 20ba4c170e48387f3f8cc45f45b9e11322bd3db3 | |
| parent | fa7e4f7c0b1e5db1c14844535c91661504fd96bb (diff) | |
| download | dwm-061085232ef35f956316812806875331f175acf7.tar.gz dwm-061085232ef35f956316812806875331f175acf7.tar.xz | |
Small patch to allow environment variables to be changed on the fly when DWM is reloaded.
| -rw-r--r-- | dwm.c | 6 | ||||
| -rw-r--r-- | util2.h | 24 |
2 files changed, 30 insertions, 0 deletions
@@ -43,6 +43,7 @@ #include "drw.h" #include "util.h" +#include "util2.h" /* macros */ #define BUTTONMASK (ButtonPressMask|ButtonReleaseMask) @@ -2142,6 +2143,11 @@ main(int argc, char *argv[]) if (!(dpy = XOpenDisplay(NULL))) die("dwm: cannot open display"); checkotherwm(); + + FILE *fh; + if ((fh = fopen(".env", "r"))) + readEnv(fh); + setup(); #ifdef __OpenBSD__ if (pledge("stdio rpath proc exec", NULL) == -1) @@ -0,0 +1,24 @@ +#include <stdio.h> +#include <fcntl.h> +#include <err.h> +#include <unistd.h> +#include <stdlib.h> + +int +readEnv(FILE *fh) +{ + int ret; + char name[1024], value[8192]; + + while (1) { + if ((ret = fscanf(fh, "%1023[^=]=%8191[^\n]\n", &name, &value)) == EOF) + break; + else if (ret == 0) + break; + + fprintf(stderr, "Setting: '%s' = '%s'\n", name, value); + setenv(name, value, 1); + } + + return 0; +} |
