From d3d8b8ee03a773b7f2cd1aad16ee43d9784e5139 Mon Sep 17 00:00:00 2001 From: "Ali H. Fardan" Date: Sun, 4 Sep 2016 00:10:49 +0300 Subject: added daemonization support --- concat.h | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 concat.h (limited to 'concat.h') diff --git a/concat.h b/concat.h new file mode 100644 index 0000000..9f138d7 --- /dev/null +++ b/concat.h @@ -0,0 +1,19 @@ +/* + * Thanks to lloyd for contribution + */ + +extern char concat[4096]; + +extern void +ccat(const unsigned short int count, ...) +{ + va_list ap; + unsigned short int i; + concat[0] = '\0'; + + va_start(ap, count); + for(i = 0; i < count; i++) + strlcat(concat, va_arg(ap, char *), sizeof(concat)); + va_end(ap); + return; +} -- cgit v1.2.3-70-g09d2 From 1654efe1d67d0bec010792e8c6eb64a0f8e88a58 Mon Sep 17 00:00:00 2001 From: "Ali H. Fardan" Date: Mon, 5 Sep 2016 00:56:22 +0300 Subject: config.mk cleanup --- arg.h | 51 --------------------------------------------------- concat.h | 19 ------------------- config.mk | 8 -------- 3 files changed, 78 deletions(-) delete mode 100644 arg.h delete mode 100644 concat.h (limited to 'concat.h') diff --git a/arg.h b/arg.h deleted file mode 100644 index 6c4a528..0000000 --- a/arg.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copy me if you can. - * by 20h - */ - -#ifndef ARG_H__ -#define ARG_H__ - -extern char *argv0; - -/* use main(int argc, char *argv[]) */ -#define ARGBEGIN for (argv0 = *argv, argv++, argc--;\ - argv[0] && argv[0][1]\ - && argv[0][0] == '-';\ - argc--, argv++) {\ - char argc_;\ - char **argv_;\ - int brk_;\ - if (argv[0][1] == '-' && argv[0][2] == '\0') {\ - argv++;\ - argc--;\ - break;\ - }\ - for (brk_ = 0, argv[0]++, argv_ = argv;\ - argv[0][0] && !brk_;\ - argv[0]++) {\ - if (argv_ != argv)\ - break;\ - argc_ = argv[0][0];\ - switch (argc_) - -#define ARGEND }\ - } - -#define ARGC() argc_ - -#define ARGNUMF(base) (brk_ = 1, estrtol(argv[0], (base))) - -#define EARGF(x) ((argv[0][1] == '\0' && argv[1] == NULL)?\ - ((x), abort(), (char *)0) :\ - (brk_ = 1, (argv[0][1] != '\0')?\ - (&argv[0][1]) :\ - (argc--, argv++, argv[0]))) - -#define ARGF() ((argv[0][1] == '\0' && argv[1] == NULL)?\ - (char *)0 :\ - (brk_ = 1, (argv[0][1] != '\0')?\ - (&argv[0][1]) :\ - (argc--, argv++, argv[0]))) - -#endif diff --git a/concat.h b/concat.h deleted file mode 100644 index 9f138d7..0000000 --- a/concat.h +++ /dev/null @@ -1,19 +0,0 @@ -/* - * Thanks to lloyd for contribution - */ - -extern char concat[4096]; - -extern void -ccat(const unsigned short int count, ...) -{ - va_list ap; - unsigned short int i; - concat[0] = '\0'; - - va_start(ap, count); - for(i = 0; i < count; i++) - strlcat(concat, va_arg(ap, char *), sizeof(concat)); - va_end(ap); - return; -} diff --git a/config.mk b/config.mk index 8e404d6..704558a 100644 --- a/config.mk +++ b/config.mk @@ -3,9 +3,7 @@ VERSION = 1.0 # Customize below to fit your system -# paths PREFIX = /usr/local -MANPREFIX = ${PREFIX}/share/man X11INC = /usr/X11R6/include X11LIB = /usr/X11R6/lib @@ -17,13 +15,7 @@ LIBS = -L/usr/lib -lc -L${X11LIB} -lX11 -lasound # flags CPPFLAGS = -DVERSION=\"${VERSION}\" -D_GNU_SOURCE CFLAGS = -std=c99 -pedantic -Wno-unused-function -Wall -Wextra -O0 ${INCS} ${CPPFLAGS} -#CFLAGS = -std=c99 -pedantic -Wall -Os ${INCS} ${CPPFLAGS} LDFLAGS = ${LIBS} -#LDFLAGS = -s ${LIBS} - -# Solaris -#CFLAGS = -fast ${INCS} -DVERSION=\"${VERSION}\" -#LDFLAGS = ${LIBS} # compiler and linker CC = cc -- cgit v1.2.3-70-g09d2 From 2afea979877ae12226ab397355f3bf8c8e124e91 Mon Sep 17 00:00:00 2001 From: "Ali H. Fardan" Date: Thu, 8 Sep 2016 04:31:49 +0300 Subject: used ccat() from concat.h for string concatenation --- concat.h | 19 +++++++++++++++++++ slstatus.c | 41 ++++++++++++++++------------------------- 2 files changed, 35 insertions(+), 25 deletions(-) create mode 100644 concat.h (limited to 'concat.h') diff --git a/concat.h b/concat.h new file mode 100644 index 0000000..7f2ea46 --- /dev/null +++ b/concat.h @@ -0,0 +1,19 @@ +/* + * Thanks to lloyd for contribution + */ + +extern char concat[8192]; + +extern void +ccat(const unsigned short int count, ...) +{ + va_list ap; + unsigned short int i; + concat[0] = '\0'; + + va_start(ap, count); + for(i = 0; i < count; i++) + strlcat(concat, va_arg(ap, char *), sizeof(concat)); + va_end(ap); + return; +} diff --git a/slstatus.c b/slstatus.c index c756de6..53de9cb 100644 --- a/slstatus.c +++ b/slstatus.c @@ -26,6 +26,9 @@ #include "strlcat.h" #include "strlcpy.h" +#include "concat.h" + +char concat[]; struct arg { char *(*func)(); @@ -91,24 +94,14 @@ static char * battery_perc(const char *battery) { int now, full, perc; - char batterynowfile[64]; - char batteryfullfile[64]; FILE *fp; - strlcpy(batterynowfile, BATTERY_PATH, sizeof(batterynowfile)); - strlcat(batterynowfile, battery, sizeof(batterynowfile)); - strlcat(batterynowfile, "/", sizeof(batterynowfile)); - strlcat(batterynowfile, BATTERY_NOW, sizeof(batterynowfile)); - - strlcpy(batteryfullfile, BATTERY_PATH, sizeof(batteryfullfile)); - strlcat(batteryfullfile, battery, sizeof(batteryfullfile)); - strlcat(batteryfullfile, "/", sizeof(batteryfullfile)); - strlcat(batteryfullfile, BATTERY_FULL, sizeof(batteryfullfile)); + ccat(4, BATTERY_PATH, battery, "/", BATTERY_NOW); - fp = fopen(batterynowfile, "r"); - if (fp == NULL ) { + fp = fopen(concat, "r"); + if (fp == NULL) { fprintf(stderr, "Error opening battery file: %s: %s\n", - batterynowfile, + concat, strerror(errno)); return smprintf(UNKNOWN_STR); } @@ -116,9 +109,12 @@ battery_perc(const char *battery) fscanf(fp, "%i", &now); fclose(fp); - fp = fopen(batteryfullfile, "r"); + ccat(4, BATTERY_PATH, battery, "/", BATTERY_FULL); + + fp = fopen(concat, "r"); if (fp == NULL) { - fprintf(stderr, "Error opening battery file: %s\n", + fprintf(stderr, "Error opening battery file: %s: %s\n", + concat, strerror(errno)); return smprintf(UNKNOWN_STR); } @@ -520,16 +516,12 @@ wifi_perc(const char *wificard) int strength; char buf[255]; char *datastart; - char path[64]; char status[5]; - char needle[strlen(wificard)+2]; FILE *fp; - strlcpy(path, "/sys/class/net/", sizeof(path)); - strlcat(path, wificard, sizeof(path)); - strlcat(path, "/operstate", sizeof(path)); + ccat(3, "/sys/class/net", wificard, "/operstate"); - fp = fopen(path, "r"); + fp = fopen(concat, "r"); if(fp == NULL) { fprintf(stderr, "Error opening wifi operstate file: %s\n", @@ -549,13 +541,12 @@ wifi_perc(const char *wificard) return smprintf(UNKNOWN_STR); } - strlcpy(needle, wificard, sizeof(needle)); - strlcat(needle, ":", sizeof(needle)); + ccat(2, wificard, ":"); fgets(buf, sizeof(buf), fp); fgets(buf, sizeof(buf), fp); fgets(buf, sizeof(buf), fp); - datastart = strstr(buf, needle); + datastart = strstr(buf, concat); if (datastart != NULL) { datastart = strstr(buf, ":"); sscanf(datastart + 1, " %*d %d %*d %*d %*d %*d %*d %*d %*d %*d", &strength); -- cgit v1.2.3-70-g09d2