Use the highest order actually used, not MAX_ORDER, for checking whether to flush (Thanks Mirko)

This commit is contained in:
Michael Stapelberg 2009-07-22 18:39:25 +02:00
parent c9ab465cbb
commit 329a8994f7
2 changed files with 6 additions and 3 deletions

View File

@ -11,7 +11,7 @@
#define generate(orderidx, name, function) \ #define generate(orderidx, name, function) \
do { \ do { \
write_to_statusbar(order_to_str(order[orderidx], name), function, (j == (MAX_ORDER-1))); \ write_to_statusbar(order_to_str(order[orderidx], name), function, (j == (highest_order-1))); \
} while (0) } while (0)
#define generate_order(condition, orderidx, name, function) \ #define generate_order(condition, orderidx, name, function) \
@ -63,6 +63,8 @@ extern struct battery_head batteries;
/* socket file descriptor for general purposes */ /* socket file descriptor for general purposes */
extern int general_socket; extern int general_socket;
extern int highest_order;
extern const char *wlan_interface; extern const char *wlan_interface;
extern const char *eth_interface; extern const char *eth_interface;
extern const char *wmii_path; extern const char *wmii_path;

View File

@ -7,6 +7,8 @@
#include "i3status.h" #include "i3status.h"
int highest_order = 0;
/* /*
* Reads the configuration from the given file * Reads the configuration from the given file
* *
@ -111,9 +113,8 @@ int load_configuration(const char *configfile) {
} }
OPT("order") OPT("order")
{ {
#define SET_ORDER(opt, idx) { if (strcasecmp(token, opt) == 0) order[idx] = c++; } #define SET_ORDER(opt, idx) { if (strcasecmp(token, opt) == 0) order[idx] = highest_order++; }
char *walk, *token; char *walk, *token;
int c = 0;
walk = token = dest_value; walk = token = dest_value;
while (*walk != '\0') { while (*walk != '\0') {
while ((*walk != ',') && (*walk != '\0')) while ((*walk != ',') && (*walk != '\0'))