From: Alexander Monakov Date: Sun, 7 Dec 2014 20:32:19 +0000 (+0300) Subject: Allocate and expose per-instance pointers for plugins X-Git-Tag: 2.9~9 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=3818dabcebea7f98e3dfdfbe5be42374bb60cf88;p=i3%2Fi3status Allocate and expose per-instance pointers for plugins --- diff --git a/i3status.c b/i3status.c index daa2d00..7c98d06 100644 --- a/i3status.c +++ b/i3status.c @@ -56,6 +56,8 @@ static bool exit_upon_signal = false; cfg_t *cfg, *cfg_general, *cfg_section; +void **cur_instance; + /* * Set the exit_upon_signal flag, because one cannot do anything in a safe * manner in a signal handler (e.g. fprintf, which we really want to do for @@ -550,6 +552,8 @@ int main(int argc, char *argv[]) { * (!), not individual plugins, seem very unlikely. */ char buffer[4096]; + void **per_instance = calloc(cfg_size(cfg, "order"), sizeof(*per_instance)); + while (1) { if (exit_upon_signal) { fprintf(stderr, "Exiting due to signal.\n"); @@ -563,6 +567,7 @@ int main(int argc, char *argv[]) { /* Restore the cursor-position, clear line */ printf("\033[u\033[K"); for (j = 0; j < cfg_size(cfg, "order"); j++) { + cur_instance = per_instance + j; if (j > 0) print_separator(separator); diff --git a/include/i3status.h b/include/i3status.h index f8f0784..ef212c8 100644 --- a/include/i3status.h +++ b/include/i3status.h @@ -198,4 +198,6 @@ extern int general_socket; extern cfg_t *cfg, *cfg_general, *cfg_section; +extern void **cur_instance; + #endif