X-Git-Url: https://git.xinqibao.xyz/slstatus.git/blobdiff_plain/b176d0a2d0e3048f22b35083ea7d6571aaa69260..67f61b839e21c05f787ec8edf68946e0c1aed077:/slstatus.c?ds=sidebyside diff --git a/slstatus.c b/slstatus.c index d6f5e2d..1db9af8 100644 --- a/slstatus.c +++ b/slstatus.c @@ -15,30 +15,8 @@ #include #include -/* global variables */ -static Display *dpy; - -/* statusbar configuration type and struct */ -typedef char *(*op_fun) (const char *); -struct arg { - op_fun func; - const char *format; - const char *args; -}; - -/* functions */ -void setstatus(const char *); -char *smprintf(const char *, ...); -char *get_battery(const char *); -char *get_cpu_temperature(const char *); -char *get_cpu_usage(const char *); -char *get_datetime(const char *); -char *get_diskusage(const char *); -char *get_ram_usage(const char *); -char *get_volume(const char *); -char *get_wifi_signal(const char *); - -/* include config header */ +/* local headers */ +#include "slstatus.h" #include "config.h" /* set statusbar */ @@ -201,7 +179,9 @@ get_datetime(const char *timeformat) setlocale(LC_TIME, "C"); /* return time */ - return smprintf("%s", buf); + char *ret = smprintf("%s", buf); + free(buf); + return ret; } /* disk usage percentage */ @@ -368,7 +348,7 @@ main() /* return status every interval */ for (;;) { /* clear the string */ - strcpy(status_string, ""); + memset(status_string, 0, sizeof(status_string)); /* generate status_string */ for (size_t i = 0; i < sizeof(args) / sizeof(args[0]); ++i) { @@ -376,6 +356,8 @@ main() char *res = argument.func(argument.args); char *element = smprintf(argument.format, res); strcat(status_string, element); + free(res); + free(element); } /* return the statusbar */