Add license, display correct WLAN status

This commit is contained in:
Michael Stapelberg 2008-10-04 15:10:50 +02:00
parent 949728e8c5
commit ed49d5983e

View File

@ -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/types.h>
#include <sys/stat.h> #include <sys/stat.h>
#include <fcntl.h> #include <fcntl.h>
@ -60,6 +93,7 @@ static char *get_battery_info() {
bool charging = false; bool charging = false;
memset(output, '\0', sizeof(output)); memset(output, '\0', sizeof(output));
read(fd, buf, sizeof(buf)); read(fd, buf, sizeof(buf));
/* TODO: charged */
for (walk = buf; (walk-buf) < 1024; walk++) for (walk = buf; (walk-buf) < 1024; walk++)
if (*walk == '=') { if (*walk == '=') {
if (strncmp(last, "POWER_SUPPLY_ENERGY_FULL_DESIGN", strlen("POWER_SUPPLY_ENERGY_FULL_DESIGN")) == 0) 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++; interfaces++;
int quality = atoi(interfaces); int quality = atoi(interfaces);
/* For some reason, I get 255 sometimes */ /* For some reason, I get 255 sometimes */
if (quality == 255) if ((quality == 255) || (quality == 0))
quality = 0; snprintf(output, sizeof(output), "W: down");
snprintf(output, sizeof(output), "W: (%02d%%) ", quality); else snprintf(output, sizeof(output), "W: (%02d%%) ", quality);
// TODO: get IP address
return output; return output;
} }
interfaces = skip_character(interfaces, '\n', 1) + 1; interfaces = skip_character(interfaces, '\n', 1) + 1;