From 6f705c20decfca58aa1cd2e6c459aae01f50b318 Mon Sep 17 00:00:00 2001 From: Michael Stapelberg Date: Tue, 7 Oct 2008 11:54:04 +0200 Subject: [PATCH] Make runwatches work again --- config.h | 13 ++++++++----- wmiistatus.c | 30 ++++++++++-------------------- wmiistatus.h | 4 ---- 3 files changed, 18 insertions(+), 29 deletions(-) diff --git a/config.h b/config.h index 8b4f01e..fa2f5d5 100644 --- a/config.h +++ b/config.h @@ -7,8 +7,11 @@ const char *battery = "/sys/class/power_supply/BAT0/uevent"; const char *run_watches[] = {"DHCP", "/var/run/dhclient.pid", "VPN", "/var/run/vpnc*.pid"}; -#define ORDER_WLAN "0" -#define ORDER_ETH "1" -#define ORDER_BATTERY "2" -#define ORDER_LOAD "3" -#define ORDER_TIME "4" +#define ORDER_RUN "0" +#define ORDER_WLAN "1" +#define ORDER_ETH "2" +#define ORDER_BATTERY "3" +#define ORDER_LOAD "4" +#define ORDER_TIME "5" + +#define USE_COLORS diff --git a/wmiistatus.c b/wmiistatus.c index c26781a..c47b528 100644 --- a/wmiistatus.c +++ b/wmiistatus.c @@ -124,14 +124,6 @@ static char *skip_character(char *input, char character, int amount) { return (walk == input ? walk : walk-1); } -static void push_part(const char *input, const int n) { - if (first_push) - first_push = false; - else - strncpy(output+strlen(output), " | ", strlen(" | ")); - strncpy(output+strlen(output), input, n); -} - /* * Get battery information from /sys. Note that it uses the design capacity to calculate the percentage, * not the full capacity. @@ -311,6 +303,7 @@ static bool process_runs(const char *path) { int main(void) { char part[512], + pathbuf[512], *end; unsigned int i; @@ -320,24 +313,21 @@ int main(void) { create_file(ORDER_BATTERY "battery"); create_file(ORDER_LOAD "load"); create_file(ORDER_TIME "time"); + for (i = 0; i < sizeof(run_watches) / sizeof(char*); i += 2) { + sprintf(pathbuf, "%s%s", ORDER_RUN, run_watches[i]); + create_file(pathbuf); + } while (1) { - memset(output, '\0', sizeof(output)); - first_push = true; - for (i = 0; i < sizeof(run_watches) / sizeof(char*); i += 2) { sprintf(part, "%s: %s", run_watches[i], (process_runs(run_watches[i+1]) ? "yes" : "no")); - push_part(part, strlen(part)); + sprintf(pathbuf, "%s%s", ORDER_RUN, run_watches[i]); + write_to_statusbar(pathbuf, part); } - char *wireless_info = get_wireless_info(); - write_to_statusbar(ORDER_WLAN "wlan", wireless_info); - - char *eth_info = get_eth_info(); - write_to_statusbar(ORDER_ETH "eth", eth_info); - - char *battery_info = get_battery_info(); - write_to_statusbar(ORDER_BATTERY "battery", battery_info); + write_to_statusbar(ORDER_WLAN "wlan", get_wireless_info()); + write_to_statusbar(ORDER_ETH "eth", get_eth_info()); + write_to_statusbar(ORDER_BATTERY "battery", get_battery_info()); /* Get load */ int load_avg = open("/proc/loadavg", O_RDONLY); diff --git a/wmiistatus.h b/wmiistatus.h index 9836dff..e9d4445 100644 --- a/wmiistatus.h +++ b/wmiistatus.h @@ -1,8 +1,5 @@ #define BEGINS_WITH(haystack, needle) (strncmp(haystack, needle, strlen(needle)) == 0) -static char output[512]; -static bool first_push = true; - typedef enum { CS_DISCHARGING, CS_CHARGING, CS_FULL } charging_status_t; static void cleanup_rbar_dir(void); @@ -10,7 +7,6 @@ static void write_to_statusbar(const char *name, const char *message); static void write_error_to_statusbar(const char *message); static void die(const char *fmt, ...); static char *skip_character(char *input, char character, int amount); -static void push_part(const char *input, const int n); static char *get_battery_info(void); static char *get_wireless_info(void); static char *get_ip_address(const char *interface);