size_t length)
{
if (esnprintf(path, length, f1, bat) > 0 &&
- access(path, R_OK) == 0) {
+ access(path, R_OK) == 0)
return f1;
- }
if (esnprintf(path, length, f2, bat) > 0 &&
- access(path, R_OK) == 0) {
+ access(path, R_OK) == 0)
return f2;
- }
return NULL;
}
if (esnprintf(path, sizeof(path), POWER_SUPPLY_CAPACITY, bat) < 0)
return NULL;
- if (pscanf(path, "%d", &perc) != 1) {
+ if (pscanf(path, "%d", &perc) != 1)
return NULL;
- }
return bprintf("%d", perc);
}
if (esnprintf(path, sizeof(path), POWER_SUPPLY_STATUS, bat) < 0)
return NULL;
- if (pscanf(path, "%12[a-zA-Z ]", state) != 1) {
+ if (pscanf(path, "%12[a-zA-Z ]", state) != 1)
return NULL;
- }
- for (i = 0; i < LEN(map); i++) {
- if (!strcmp(map[i].state, state)) {
+ for (i = 0; i < LEN(map); i++)
+ if (!strcmp(map[i].state, state))
break;
- }
- }
+
return (i == LEN(map)) ? "?" : map[i].symbol;
}
if (esnprintf(path, sizeof(path), POWER_SUPPLY_STATUS, bat) < 0)
return NULL;
- if (pscanf(path, "%12[a-zA-Z ]", state) != 1) {
+ if (pscanf(path, "%12[a-zA-Z ]", state) != 1)
return NULL;
- }
if (!pick(bat, POWER_SUPPLY_CHARGE, POWER_SUPPLY_ENERGY, path,
sizeof(path)) ||
pscanf(path, "%ju", ¤t_now) < 0)
return NULL;
- if (current_now == 0) {
+ if (current_now == 0)
return NULL;
- }
timeleft = (double)charge_now / (double)current_now;
h = timeleft;
{
struct apm_power_info apm_info;
- if (load_apm_power_info(&apm_info)) {
+ if (load_apm_power_info(&apm_info))
return bprintf("%d", apm_info.battery_life);
- }
return NULL;
}
size_t i;
if (load_apm_power_info(&apm_info)) {
- for (i = 0; i < LEN(map); i++) {
- if (map[i].state == apm_info.ac_state) {
+ for (i = 0; i < LEN(map); i++)
+ if (map[i].state == apm_info.ac_state)
break;
- }
- }
+
return (i == LEN(map)) ? "?" : map[i].symbol;
}
/* cpu user nice system idle iowait irq softirq */
if (pscanf("/proc/stat", "%*s %Lf %Lf %Lf %Lf %Lf %Lf %Lf",
&a[0], &a[1], &a[2], &a[3], &a[4], &a[5], &a[6])
- != 7) {
+ != 7)
return NULL;
- }
- if (b[0] == 0) {
+
+ if (b[0] == 0)
return NULL;
- }
sum = (b[0] + b[1] + b[2] + b[3] + b[4] + b[5] + b[6]) -
(a[0] + a[1] + a[2] + a[3] + a[4] + a[5] + a[6]);
- if (sum == 0) {
+ if (sum == 0)
return NULL;
- }
return bprintf("%d", (int)(100 *
((b[0] + b[1] + b[2] + b[5] + b[6]) -
warn("sysctl 'KERN_CPTIME':");
return NULL;
}
- if (b[0] == 0) {
+ if (b[0] == 0)
return NULL;
- }
sum = (a[CP_USER] + a[CP_NICE] + a[CP_SYS] + a[CP_INTR] + a[CP_IDLE]) -
(b[CP_USER] + b[CP_NICE] + b[CP_SYS] + b[CP_INTR] + b[CP_IDLE]);
- if (sum == 0) {
+ if (sum == 0)
return NULL;
- }
return bprintf("%d", 100 *
((a[CP_USER] + a[CP_NICE] + a[CP_SYS] +
warn("sysctlbyname 'kern.cp_time':");
return NULL;
}
- if (b[0] == 0) {
+ if (b[0] == 0)
return NULL;
- }
sum = (a[CP_USER] + a[CP_NICE] + a[CP_SYS] + a[CP_INTR] + a[CP_IDLE]) -
(b[CP_USER] + b[CP_NICE] + b[CP_SYS] + b[CP_INTR] + b[CP_IDLE]);
- if (sum == 0) {
+ if (sum == 0)
return NULL;
- }
return bprintf("%d", 100 *
((a[CP_USER] + a[CP_NICE] + a[CP_SYS] +
}
for (ifa = ifaddr; ifa != NULL; ifa = ifa->ifa_next) {
- if (!ifa->ifa_addr) {
+ if (!ifa->ifa_addr)
continue;
- }
+
s = getnameinfo(ifa->ifa_addr, sizeof(struct sockaddr_in6),
host, NI_MAXHOST, NULL, 0, NI_NUMERICHOST);
if (!strcmp(ifa->ifa_name, interface) &&
fmtlen = strnlen(fmt, 4);
for (i = n = 0; i < fmtlen; i++) {
key = tolower(fmt[i]);
- if (key != 'c' && key != 'n') {
+ if (key != 'c' && key != 'n')
continue;
- }
+
togglecase = (i + 1 >= fmtlen || fmt[i + 1] != '?');
isset = (state.led_mask & (1 << (key == 'n')));
- if (togglecase) {
+
+ if (togglecase)
buf[n++] = isset ? toupper(key) : key;
- } else if (isset) {
+ else if (isset)
buf[n++] = fmt[i];
- }
}
+
buf[n] = 0;
return buf;
}
/* invalid symbols from xkb rules config */
static const char *invalid[] = { "evdev", "inet", "pc", "base" };
- for (i = 0; i < LEN(invalid); i++) {
- if (!strncmp(sym, invalid[i], strlen(invalid[i]))) {
+ for (i = 0; i < LEN(invalid); i++)
+ if (!strncmp(sym, invalid[i], strlen(invalid[i])))
return 0;
- }
- }
return 1;
}
XFree(symbols);
end:
XkbFreeKeyboard(desc, XkbSymbolsNameMask, 1);
- if (XCloseDisplay(dpy)) {
+ if (XCloseDisplay(dpy))
warn("XCloseDisplay: Failed to close display");
- }
return layout;
}
if (esnprintf(path, sizeof(path), NET_RX_BYTES, interface) < 0)
return NULL;
- if (pscanf(path, "%ju", &rxbytes) != 1) {
+ if (pscanf(path, "%ju", &rxbytes) != 1)
return NULL;
- }
- if (oldrxbytes == 0) {
+ if (oldrxbytes == 0)
return NULL;
- }
return fmt_human((rxbytes - oldrxbytes) * 1000 / interval,
1024);
if (esnprintf(path, sizeof(path), NET_TX_BYTES, interface) < 0)
return NULL;
- if (pscanf(path, "%ju", &txbytes) != 1) {
+ if (pscanf(path, "%ju", &txbytes) != 1)
return NULL;
- }
- if (oldtxbytes == 0) {
+ if (oldtxbytes == 0)
return NULL;
- }
return fmt_human((txbytes - oldtxbytes) * 1000 / interval,
1024);
return NULL;
}
rxbytes = 0;
- for (ifa = ifal; ifa; ifa = ifa->ifa_next) {
+ for (ifa = ifal; ifa; ifa = ifa->ifa_next)
if (!strcmp(ifa->ifa_name, interface) &&
- (ifd = (struct if_data *)ifa->ifa_data)) {
+ (ifd = (struct if_data *)ifa->ifa_data))
rxbytes += ifd->ifi_ibytes, if_ok = 1;
- }
- }
+
freeifaddrs(ifal);
if (!if_ok) {
warn("reading 'if_data' failed");
return NULL;
}
- if (oldrxbytes == 0) {
+ if (oldrxbytes == 0)
return NULL;
- }
return fmt_human((rxbytes - oldrxbytes) * 1000 / interval,
1024);
return NULL;
}
txbytes = 0;
- for (ifa = ifal; ifa; ifa = ifa->ifa_next) {
+ for (ifa = ifal; ifa; ifa = ifa->ifa_next)
if (!strcmp(ifa->ifa_name, interface) &&
- (ifd = (struct if_data *)ifa->ifa_data)) {
+ (ifd = (struct if_data *)ifa->ifa_data))
txbytes += ifd->ifi_obytes, if_ok = 1;
- }
- }
+
freeifaddrs(ifal);
if (!if_ok) {
warn("reading 'if_data' failed");
return NULL;
}
- if (oldtxbytes == 0) {
+ if (oldtxbytes == 0)
return NULL;
- }
return fmt_human((txbytes - oldtxbytes) * 1000 / interval,
1024);
num = 0;
while ((dp = readdir(fd))) {
- if (!strcmp(dp->d_name, ".") || !strcmp(dp->d_name, "..")) {
+ if (!strcmp(dp->d_name, ".") || !strcmp(dp->d_name, ".."))
continue; /* skip self and parent */
- }
+
num++;
}
"MemTotal: %ju kB\n"
"MemFree: %ju kB\n"
"MemAvailable: %ju kB\n",
- &free, &free, &free) != 3) {
+ &free, &free, &free) != 3)
return NULL;
- }
return fmt_human(free * 1024, 1024);
}
"MemAvailable: %ju kB\n"
"Buffers: %ju kB\n"
"Cached: %ju kB\n",
- &total, &free, &buffers, &buffers, &cached) != 5) {
+ &total, &free, &buffers, &buffers, &cached) != 5)
return NULL;
- }
- if (total == 0) {
+ if (total == 0)
return NULL;
- }
percent = 100 * ((total - free) - (buffers + cached)) / total;
return bprintf("%d", percent);
uintmax_t total;
if (pscanf("/proc/meminfo", "MemTotal: %ju kB\n", &total)
- != 1) {
+ != 1)
return NULL;
- }
return fmt_human(total * 1024, 1024);
}
size = sizeof(*uvmexp);
- if (sysctl(uvmexp_mib, 2, uvmexp, &size, NULL, 0) >= 0) {
+ if (sysctl(uvmexp_mib, 2, uvmexp, &size, NULL, 0) >= 0)
return 1;
- }
return 0;
}
warn("popen '%s':", cmd);
return NULL;
}
+
p = fgets(buf, sizeof(buf) - 1, fp);
if (pclose(fp) < 0) {
warn("pclose '%s':", cmd);
return NULL;
}
- if (!p) {
+ if (!p)
return NULL;
- }
- if ((p = strrchr(buf, '\n'))) {
+
+ if ((p = strrchr(buf, '\n')))
p[0] = '\0';
- }
return buf[0] ? buf : NULL;
}
char *line = NULL;
/* get number of fields we want to extract */
- for (i = 0, left = 0; i < LEN(ent); i++) {
- if (ent[i].var) {
+ for (i = 0, left = 0; i < LEN(ent); i++)
+ if (ent[i].var)
left++;
- }
- }
if (!(fp = fopen("/proc/meminfo", "r"))) {
warn("fopen '/proc/meminfo':");
{
long free;
- if (get_swap_info(NULL, &free, NULL)) {
+ if (get_swap_info(NULL, &free, NULL))
return NULL;
- }
return fmt_human(free * 1024, 1024);
}
{
long total, free, cached;
- if (get_swap_info(&total, &free, &cached) || total == 0) {
+ if (get_swap_info(&total, &free, &cached) || total == 0)
return NULL;
- }
return bprintf("%d", 100 * (total - free - cached) / total);
}
{
long total;
- if (get_swap_info(&total, NULL, NULL)) {
+ if (get_swap_info(&total, NULL, NULL))
return NULL;
- }
return fmt_human(total * 1024, 1024);
}
{
long total, free, cached;
- if (get_swap_info(&total, &free, &cached)) {
+ if (get_swap_info(&total, &free, &cached))
return NULL;
- }
return fmt_human((total - free - cached) * 1024, 1024);
}
{
int total, used;
- if (getstats(&total, &used)) {
+ if (getstats(&total, &used))
return NULL;
- }
return fmt_human((total - used) * 1024, 1024);
}
{
int total, used;
- if (getstats(&total, &used)) {
+ if (getstats(&total, &used))
return NULL;
- }
- if (total == 0) {
+ if (total == 0)
return NULL;
- }
return bprintf("%d", 100 * used / total);
}
{
int total, used;
- if (getstats(&total, &used)) {
+ if (getstats(&total, &used))
return NULL;
- }
return fmt_human(total * 1024, 1024);
}
{
int total, used;
- if (getstats(&total, &used)) {
+ if (getstats(&total, &used))
return NULL;
- }
return fmt_human(used * 1024, 1024);
}
{
uintmax_t temp;
- if (pscanf(file, "%ju", &temp) != 1) {
+ if (pscanf(file, "%ju", &temp) != 1)
return NULL;
- }
return bprintf("%ju", temp / 1000);
}
}
p = fgets(status, 5, fp);
fclose(fp);
- if (!p || strcmp(status, "up\n") != 0) {
+ if (!p || strcmp(status, "up\n") != 0)
return NULL;
- }
if (!(fp = fopen("/proc/net/wireless", "r"))) {
warn("fopen '/proc/net/wireless':");
return NULL;
}
- for (i = 0; i < 3; i++) {
+ for (i = 0; i < 3; i++)
if (!(p = fgets(buf, sizeof(buf) - 1, fp)))
break;
- }
+
fclose(fp);
- if (i < 2 || !p) {
+ if (i < 2 || !p)
return NULL;
- }
- if (!(datastart = strstr(buf, interface))) {
+ if (!(datastart = strstr(buf, interface)))
return NULL;
- }
datastart = (datastart+(strlen(interface)+1));
sscanf(datastart + 1, " %*d %d %*d %*d\t\t %*d\t "
memset(&wreq, 0, sizeof(struct iwreq));
wreq.u.essid.length = IW_ESSID_MAX_SIZE+1;
if (esnprintf(wreq.ifr_name, sizeof(wreq.ifr_name), "%s",
- interface) < 0) {
+ interface) < 0)
return NULL;
- }
if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {
warn("socket 'AF_INET':");
close(sockfd);
- if (!strcmp(id, "")) {
+ if (!strcmp(id, ""))
return NULL;
- }
return id;
}
int q;
if (load_ieee80211_nodereq(interface, &nr)) {
- if (nr.nr_max_rssi) {
+ if (nr.nr_max_rssi)
q = IEEE80211_NODEREQ_RSSI(&nr);
- } else {
+ else
q = RSSI_TO_PERC(nr.nr_rssi);
- }
+
return bprintf("%d", q);
}
{
struct ieee80211_nodereq nr;
- if (load_ieee80211_nodereq(interface, &nr)) {
+ if (load_ieee80211_nodereq(interface, &nr))
return bprintf("%s", nr.nr_nwid);
- }
return NULL;
}
usage();
} ARGEND
- if (argc) {
+ if (argc)
usage();
- }
memset(&act, 0, sizeof(act));
act.sa_handler = terminate;
act.sa_flags |= SA_RESTART;
sigaction(SIGUSR1, &act, NULL);
- if (!sflag && !(dpy = XOpenDisplay(NULL))) {
+ if (!sflag && !(dpy = XOpenDisplay(NULL)))
die("XOpenDisplay: Failed to open display");
- }
do {
- if (clock_gettime(CLOCK_MONOTONIC, &start) < 0) {
+ if (clock_gettime(CLOCK_MONOTONIC, &start) < 0)
die("clock_gettime:");
- }
status[0] = '\0';
for (i = len = 0; i < LEN(args); i++) {
- if (!(res = args[i].func(args[i].args))) {
+ if (!(res = args[i].func(args[i].args)))
res = unknown_str;
- }
+
if ((ret = esnprintf(status + len, sizeof(status) - len,
- args[i].fmt, res)) < 0) {
+ args[i].fmt, res)) < 0)
break;
- }
+
len += ret;
}
if (ferror(stdout))
die("puts:");
} else {
- if (XStoreName(dpy, DefaultRootWindow(dpy), status)
- < 0) {
+ if (XStoreName(dpy, DefaultRootWindow(dpy), status) < 0)
die("XStoreName: Allocation failed");
- }
XFlush(dpy);
}
if (!done) {
- if (clock_gettime(CLOCK_MONOTONIC, ¤t) < 0) {
+ if (clock_gettime(CLOCK_MONOTONIC, ¤t) < 0)
die("clock_gettime:");
- }
difftimespec(&diff, ¤t, &start);
intspec.tv_sec = interval / 1000;
intspec.tv_nsec = (interval % 1000) * 1E6;
difftimespec(&wait, &intspec, &diff);
- if (wait.tv_sec >= 0) {
- if (nanosleep(&wait, NULL) < 0 &&
- errno != EINTR) {
+ if (wait.tv_sec >= 0 &&
+ nanosleep(&wait, NULL) < 0 &&
+ errno != EINTR)
die("nanosleep:");
- }
- }
}
} while (!done);
if (!sflag) {
XStoreName(dpy, DefaultRootWindow(dpy), NULL);
- if (XCloseDisplay(dpy) < 0) {
+ if (XCloseDisplay(dpy) < 0)
die("XCloseDisplay: Failed to close display");
- }
}
return 0;
static void
verr(const char *fmt, va_list ap)
{
- if (argv0 && strncmp(fmt, "usage", sizeof("usage") - 1)) {
+ if (argv0 && strncmp(fmt, "usage", sizeof("usage") - 1))
fprintf(stderr, "%s: ", argv0);
- }
vfprintf(stderr, fmt, ap);
}
scaled = num;
- for (i = 0; i < prefixlen && scaled >= base; i++) {
+ for (i = 0; i < prefixlen && scaled >= base; i++)
scaled /= base;
- }
return bprintf("%.1f %s", scaled, prefix[i]);
}