diff options
| -rw-r--r-- | wmiistatus.c | 41 | 
1 files changed, 38 insertions, 3 deletions
| diff --git a/wmiistatus.c b/wmiistatus.c index d6ebc14..252a13e 100644 --- a/wmiistatus.c +++ b/wmiistatus.c @@ -1,3 +1,36 @@ +/* + * Generates a status line for use with wmii or other minimal window managers + * + * + * Copyright (c) 2008 Michael Stapelberg and contributors + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, this + *   list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright notice, this + *   list of conditions and the following disclaimer in the documentation and/or other + *   materials provided with the distribution. + * + * * Neither the name of Michael Stapelberg nor the names of contributors + *   may be used to endorse or promote products derived from this software without + *   specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED + * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR + * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + */  #include <sys/types.h>  #include <sys/stat.h>  #include <fcntl.h> @@ -60,6 +93,7 @@ static char *get_battery_info() {  	bool charging = false;  	memset(output, '\0', sizeof(output));  	read(fd, buf, sizeof(buf)); +	/* TODO: charged */  	for (walk = buf; (walk-buf) < 1024; walk++)  		if (*walk == '=') {  			if (strncmp(last, "POWER_SUPPLY_ENERGY_FULL_DESIGN", strlen("POWER_SUPPLY_ENERGY_FULL_DESIGN")) == 0) @@ -119,9 +153,10 @@ static char *get_wireless_info() {  				interfaces++;  			int quality = atoi(interfaces);  			/* For some reason, I get 255 sometimes */ -			if (quality == 255) -				quality = 0; -			snprintf(output, sizeof(output), "W: (%02d%%) ", quality); +			if ((quality == 255) || (quality == 0)) +				snprintf(output, sizeof(output), "W: down"); +			else snprintf(output, sizeof(output), "W: (%02d%%) ", quality); +			// TODO: get IP address  			return output;  		}  		interfaces = skip_character(interfaces, '\n', 1) + 1; | 
