diff options
| -rw-r--r-- | Makefile | 4 | ||||
| -rw-r--r-- | wmiistatus.c | 20 | 
2 files changed, 18 insertions, 6 deletions
| @@ -2,6 +2,10 @@ CFLAGS+=-Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -W  CFLAGS+=-g  CFLAGS+=-DPREFIX=\"\" +ifeq ($(shell uname),Linux) +CFLAGS+=-DLINUX +endif +  wmiistatus: wmiistatus.o wmiistatus.h config.h config.o  clean: diff --git a/wmiistatus.c b/wmiistatus.c index bb65690..15434b9 100644 --- a/wmiistatus.c +++ b/wmiistatus.c @@ -41,6 +41,7 @@  #include <stdarg.h>  #include <unistd.h>  #include <stdlib.h> +#include <limits.h>  #include <ctype.h>  #include <net/if.h>  #include <sys/ioctl.h> @@ -50,9 +51,10 @@  #include <glob.h>  #include <dirent.h>  #include <getopt.h> +#ifdef LINUX  #include <linux/ethtool.h>  #include <linux/sockios.h> - +#endif  #define _IS_WMIISTATUS_C  #include "wmiistatus.h" @@ -355,6 +357,7 @@ static char *get_eth_info() {  	int ethspeed = 0;  	if (get_ethspeed) { +#ifdef LINUX  		/* This code path requires root privileges */  		struct ifreq ifr;  		struct ethtool_cmd ecmd; @@ -366,6 +369,7 @@ static char *get_eth_info() {  		if (ioctl(general_socket, SIOCETHTOOL, &ifr) == 0)  			ethspeed = (ecmd.speed == USHRT_MAX ? 0 : ecmd.speed);  		else get_ethspeed = false; +#endif  	}  	if (ip_address == NULL) @@ -406,8 +410,7 @@ static bool process_runs(const char *path) {  int main(int argc, char *argv[]) {  	char part[512], -	     pathbuf[512], -	     *end; +	     pathbuf[512];  	unsigned int i;  	int load_avg; @@ -415,12 +418,18 @@ int main(int argc, char *argv[]) {  	int o, option_index = 0;  	struct option long_options[] = {  		{"config", required_argument, 0, 'c'}, +		{"help", no_argument, 0, 'h'},  		{0, 0, 0, 0}  	}; -	while ((o = getopt_long(argc, argv, "c:", long_options, &option_index)) != -1) +	while ((o = getopt_long(argc, argv, "c:h", long_options, &option_index)) != -1)  		if ((char)o == 'c')  			configfile = optarg; +		else if ((char)o == 'h') { +			printf("wmiistatus (c) 2008-2009 Michael Stapelberg\n" +				"Syntax: %s [-c <configfile>]\n", argv[0]); +			return 0; +		}  	if (load_configuration(configfile) < 0)  		return EXIT_FAILURE; @@ -457,8 +466,7 @@ int main(int argc, char *argv[]) {  			die("Could not open /proc/loadavg");  		(void)read(load_avg, part, sizeof(part));  		(void)close(load_avg); -		end = skip_character(part, ' ', 3); -		*end = '\0'; +		*skip_character(part, ' ', 3) = '\0';  		write_to_statusbar(concat(order[ORDER_LOAD], "load"), part);  		if (time_format) { | 
