Merge pull request #149 from tommie/incremental_multibatt
Fix some compilation warnings on OpenBSD and NetBSD
This commit is contained in:
commit
6e4ca31aa5
@ -40,6 +40,7 @@ struct battery_info {
|
|||||||
*
|
*
|
||||||
* Assumes a constant (dis)charge rate.
|
* Assumes a constant (dis)charge rate.
|
||||||
*/
|
*/
|
||||||
|
#if defined(LINUX) || defined(__NetBSD__)
|
||||||
static int seconds_remaining_from_rate(charging_status_t status, float full_design, float remaining, float present_rate) {
|
static int seconds_remaining_from_rate(charging_status_t status, float full_design, float remaining, float present_rate) {
|
||||||
if (status == CS_CHARGING)
|
if (status == CS_CHARGING)
|
||||||
return 3600.0 * (full_design - remaining) / present_rate;
|
return 3600.0 * (full_design - remaining) / present_rate;
|
||||||
@ -48,17 +49,18 @@ static int seconds_remaining_from_rate(charging_status_t status, float full_desi
|
|||||||
else
|
else
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
static bool slurp_battery_info(struct battery_info *batt_info, yajl_gen json_gen, char *buffer, int number, const char *path, const char *format_down, bool last_full_capacity) {
|
static bool slurp_battery_info(struct battery_info *batt_info, yajl_gen json_gen, char *buffer, int number, const char *path, const char *format_down, bool last_full_capacity) {
|
||||||
|
char *outwalk = buffer;
|
||||||
|
|
||||||
|
#if defined(LINUX)
|
||||||
char buf[1024];
|
char buf[1024];
|
||||||
const char *walk, *last;
|
const char *walk, *last;
|
||||||
char *outwalk = buffer;
|
|
||||||
bool watt_as_unit = false;
|
bool watt_as_unit = false;
|
||||||
int full_design = -1,
|
int full_design = -1,
|
||||||
remaining = -1,
|
remaining = -1,
|
||||||
voltage = -1;
|
voltage = -1;
|
||||||
|
|
||||||
#if defined(LINUX)
|
|
||||||
char batpath[512];
|
char batpath[512];
|
||||||
sprintf(batpath, path, number);
|
sprintf(batpath, path, number);
|
||||||
INSTANCE(batpath);
|
INSTANCE(batpath);
|
||||||
@ -177,8 +179,6 @@ static bool slurp_battery_info(struct battery_info *batt_info, yajl_gen json_gen
|
|||||||
batt_info->status = CS_CHARGING;
|
batt_info->status = CS_CHARGING;
|
||||||
else
|
else
|
||||||
batt_info->status = CS_DISCHARGING;
|
batt_info->status = CS_DISCHARGING;
|
||||||
|
|
||||||
full_design = sysctl_rslt;
|
|
||||||
#elif defined(__OpenBSD__)
|
#elif defined(__OpenBSD__)
|
||||||
/*
|
/*
|
||||||
* We're using apm(4) here, which is the interface to acpi(4) on amd64/i386 and
|
* We're using apm(4) here, which is the interface to acpi(4) on amd64/i386 and
|
||||||
@ -228,6 +228,10 @@ static bool slurp_battery_info(struct battery_info *batt_info, yajl_gen json_gen
|
|||||||
/*
|
/*
|
||||||
* Using envsys(4) via sysmon(4).
|
* Using envsys(4) via sysmon(4).
|
||||||
*/
|
*/
|
||||||
|
bool watt_as_unit = false;
|
||||||
|
int full_design = -1,
|
||||||
|
remaining = -1,
|
||||||
|
voltage = -1;
|
||||||
int fd, rval, last_full_cap;
|
int fd, rval, last_full_cap;
|
||||||
bool is_found = false;
|
bool is_found = false;
|
||||||
char *sensor_desc;
|
char *sensor_desc;
|
||||||
@ -268,10 +272,8 @@ static bool slurp_battery_info(struct battery_info *batt_info, yajl_gen json_gen
|
|||||||
/* iterate over the dictionary returned by the kernel */
|
/* iterate over the dictionary returned by the kernel */
|
||||||
while ((obj = prop_object_iterator_next(iter)) != NULL) {
|
while ((obj = prop_object_iterator_next(iter)) != NULL) {
|
||||||
/* skip this dict if it's not what we're looking for */
|
/* skip this dict if it's not what we're looking for */
|
||||||
if ((strlen(prop_dictionary_keysym_cstring_nocopy(obj)) == strlen(sensor_desc)) &&
|
if (strcmp(sensor_desc,
|
||||||
(strncmp(sensor_desc,
|
prop_dictionary_keysym_cstring_nocopy(obj)) != 0)
|
||||||
prop_dictionary_keysym_cstring_nocopy(obj),
|
|
||||||
strlen(sensor_desc)) != 0))
|
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
is_found = true;
|
is_found = true;
|
||||||
@ -296,26 +298,17 @@ static bool slurp_battery_info(struct battery_info *batt_info, yajl_gen json_gen
|
|||||||
while ((obj2 = prop_object_iterator_next(iter2)) != NULL) {
|
while ((obj2 = prop_object_iterator_next(iter2)) != NULL) {
|
||||||
obj3 = prop_dictionary_get(obj2, "description");
|
obj3 = prop_dictionary_get(obj2, "description");
|
||||||
|
|
||||||
if (obj3 &&
|
if (obj3 == NULL)
|
||||||
strlen(prop_string_cstring_nocopy(obj3)) == 8 &&
|
continue;
|
||||||
strncmp("charging",
|
|
||||||
prop_string_cstring_nocopy(obj3),
|
if (strcmp("charging", prop_string_cstring_nocopy(obj3)) == 0) {
|
||||||
8) == 0) {
|
|
||||||
obj3 = prop_dictionary_get(obj2, "cur-value");
|
obj3 = prop_dictionary_get(obj2, "cur-value");
|
||||||
|
|
||||||
if (prop_number_integer_value(obj3))
|
if (prop_number_integer_value(obj3))
|
||||||
batt_info->status = CS_CHARGING;
|
batt_info->status = CS_CHARGING;
|
||||||
else
|
else
|
||||||
batt_info->status = CS_DISCHARGING;
|
batt_info->status = CS_DISCHARGING;
|
||||||
|
} else if (strcmp("charge", prop_string_cstring_nocopy(obj3)) == 0) {
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (obj3 &&
|
|
||||||
strlen(prop_string_cstring_nocopy(obj3)) == 6 &&
|
|
||||||
strncmp("charge",
|
|
||||||
prop_string_cstring_nocopy(obj3),
|
|
||||||
6) == 0) {
|
|
||||||
obj3 = prop_dictionary_get(obj2, "cur-value");
|
obj3 = prop_dictionary_get(obj2, "cur-value");
|
||||||
obj4 = prop_dictionary_get(obj2, "max-value");
|
obj4 = prop_dictionary_get(obj2, "max-value");
|
||||||
obj5 = prop_dictionary_get(obj2, "type");
|
obj5 = prop_dictionary_get(obj2, "type");
|
||||||
@ -326,44 +319,19 @@ static bool slurp_battery_info(struct battery_info *batt_info, yajl_gen json_gen
|
|||||||
if (remaining == full_design)
|
if (remaining == full_design)
|
||||||
is_full = true;
|
is_full = true;
|
||||||
|
|
||||||
if (strncmp("Ampere hour",
|
if (strcmp("Ampere hour", prop_string_cstring_nocopy(obj5)) == 0)
|
||||||
prop_string_cstring_nocopy(obj5),
|
|
||||||
11) == 0)
|
|
||||||
watt_as_unit = false;
|
watt_as_unit = false;
|
||||||
else
|
else
|
||||||
watt_as_unit = true;
|
watt_as_unit = true;
|
||||||
|
} else if (strcmp("discharge rate", prop_string_cstring_nocopy(obj3)) == 0) {
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (obj3 &&
|
|
||||||
strlen(prop_string_cstring_nocopy(obj3)) == 14 &&
|
|
||||||
strncmp("discharge rate",
|
|
||||||
prop_string_cstring_nocopy(obj3),
|
|
||||||
14) == 0) {
|
|
||||||
obj3 = prop_dictionary_get(obj2, "cur-value");
|
obj3 = prop_dictionary_get(obj2, "cur-value");
|
||||||
batt_info->present_rate = prop_number_integer_value(obj3);
|
batt_info->present_rate = prop_number_integer_value(obj3);
|
||||||
continue;
|
} else if (strcmp("last full cap", prop_string_cstring_nocopy(obj3)) == 0) {
|
||||||
}
|
|
||||||
|
|
||||||
if (obj3 &&
|
|
||||||
strlen(prop_string_cstring_nocopy(obj3)) == 13 &&
|
|
||||||
strncmp("last full cap",
|
|
||||||
prop_string_cstring_nocopy(obj3),
|
|
||||||
13) == 0) {
|
|
||||||
obj3 = prop_dictionary_get(obj2, "cur-value");
|
obj3 = prop_dictionary_get(obj2, "cur-value");
|
||||||
last_full_cap = prop_number_integer_value(obj3);
|
last_full_cap = prop_number_integer_value(obj3);
|
||||||
continue;
|
} else if (strcmp("voltage", prop_string_cstring_nocopy(obj3)) == 0) {
|
||||||
}
|
|
||||||
|
|
||||||
if (obj3 &&
|
|
||||||
strlen(prop_string_cstring_nocopy(obj3)) == 7 &&
|
|
||||||
strncmp("voltage",
|
|
||||||
prop_string_cstring_nocopy(obj3),
|
|
||||||
7) == 0) {
|
|
||||||
obj3 = prop_dictionary_get(obj2, "cur-value");
|
obj3 = prop_dictionary_get(obj2, "cur-value");
|
||||||
voltage = prop_number_integer_value(obj3);
|
voltage = prop_number_integer_value(obj3);
|
||||||
continue;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
prop_object_iterator_release(iter2);
|
prop_object_iterator_release(iter2);
|
||||||
@ -436,14 +404,14 @@ void print_battery_info(yajl_gen json_gen, char *buffer, int number, const char
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#define EAT_SPACE_FROM_OUTPUT_IF_NO_OUTPUT() \
|
#define EAT_SPACE_FROM_OUTPUT_IF_NO_OUTPUT() \
|
||||||
do { \
|
do { \
|
||||||
if (outwalk == prevoutwalk) { \
|
if (outwalk == prevoutwalk) { \
|
||||||
if (outwalk > buffer && isspace(outwalk[-1])) \
|
if (outwalk > buffer && isspace((int)outwalk[-1])) \
|
||||||
outwalk--; \
|
outwalk--; \
|
||||||
else if (isspace(*(walk + 1))) \
|
else if (isspace((int)*(walk + 1))) \
|
||||||
walk++; \
|
walk++; \
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
for (walk = format; *walk != '\0'; walk++) {
|
for (walk = format; *walk != '\0'; walk++) {
|
||||||
|
@ -10,6 +10,7 @@
|
|||||||
#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || (__OpenBSD__) || defined(__DragonFly__) || defined(__APPLE__)
|
#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || (__OpenBSD__) || defined(__DragonFly__) || defined(__APPLE__)
|
||||||
#include <sys/param.h>
|
#include <sys/param.h>
|
||||||
#include <sys/mount.h>
|
#include <sys/mount.h>
|
||||||
|
#elif defined(__NetBSD__)
|
||||||
#else
|
#else
|
||||||
#include <mntent.h>
|
#include <mntent.h>
|
||||||
#endif
|
#endif
|
||||||
@ -121,6 +122,11 @@ void print_disk_info(yajl_gen json_gen, char *buffer, const char *path, const ch
|
|||||||
|
|
||||||
if (statfs(path, &buf) == -1)
|
if (statfs(path, &buf) == -1)
|
||||||
return;
|
return;
|
||||||
|
#elif defined(__NetBSD__)
|
||||||
|
struct statvfs buf;
|
||||||
|
|
||||||
|
if (statvfs(path, &buf) == -1)
|
||||||
|
return;
|
||||||
#else
|
#else
|
||||||
struct statvfs buf;
|
struct statvfs buf;
|
||||||
|
|
||||||
|
@ -79,7 +79,7 @@ static int print_eth_speed(char *outwalk, const char *interface) {
|
|||||||
ethspeed = (desc->ifmt_string != NULL ? desc->ifmt_string : "?");
|
ethspeed = (desc->ifmt_string != NULL ? desc->ifmt_string : "?");
|
||||||
return sprintf(outwalk, "%s", ethspeed);
|
return sprintf(outwalk, "%s", ethspeed);
|
||||||
#elif defined(__OpenBSD__) || defined(__NetBSD__)
|
#elif defined(__OpenBSD__) || defined(__NetBSD__)
|
||||||
char *ethspeed;
|
const char *ethspeed;
|
||||||
struct ifmediareq ifmr;
|
struct ifmediareq ifmr;
|
||||||
|
|
||||||
(void)memset(&ifmr, 0, sizeof(ifmr));
|
(void)memset(&ifmr, 0, sizeof(ifmr));
|
||||||
|
@ -54,6 +54,13 @@
|
|||||||
#include <netinet/if_ether.h>
|
#include <netinet/if_ether.h>
|
||||||
#include <net80211/ieee80211.h>
|
#include <net80211/ieee80211.h>
|
||||||
#include <net80211/ieee80211_ioctl.h>
|
#include <net80211/ieee80211_ioctl.h>
|
||||||
|
#define IW_ESSID_MAX_SIZE IEEE80211_NWID_LEN
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef __NetBSD__
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <net80211/ieee80211.h>
|
||||||
|
#define IW_ESSID_MAX_SIZE IEEE80211_NWID_LEN
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "i3status.h"
|
#include "i3status.h"
|
||||||
@ -423,7 +430,7 @@ error1:
|
|||||||
else
|
else
|
||||||
len = IEEE80211_NWID_LEN + 1;
|
len = IEEE80211_NWID_LEN + 1;
|
||||||
|
|
||||||
strncpy(&info->essid[0], nwid.i_nwid, len);
|
strncpy(&info->essid[0], (char *)nwid.i_nwid, len);
|
||||||
info->essid[IW_ESSID_MAX_SIZE] = '\0';
|
info->essid[IW_ESSID_MAX_SIZE] = '\0';
|
||||||
info->flags |= WIRELESS_INFO_FLAG_HAS_ESSID;
|
info->flags |= WIRELESS_INFO_FLAG_HAS_ESSID;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user