+#undef strlcat
+#undef strlcpy
+
+#include "extern/arg.h"
+#include "extern/strlcat.h"
+#include "extern/concat.h"
+
+struct arg {
+ char *(*func)();
+ const char *fmt;
+ const char *args;
+};
+
+static char *smprintf(const char *fmt, ...);
+static char *battery_perc(const char *bat);
+static char *battery_state(const char *bat);
+static char *cpu_perc(void);
+static char *datetime(const char *fmt);
+static char *disk_free(const char *mnt);
+static char *disk_perc(const char *mnt);
+static char *disk_total(const char *mnt);
+static char *disk_used(const char *mnt);
+static char *entropy(void);
+static char *gid(void);
+static char *hostname(void);
+static char *ip(const char *iface);
+static char *load_avg(void);
+static char *ram_free(void);
+static char *ram_perc(void);
+static char *ram_used(void);
+static char *ram_total(void);
+static char *run_command(const char *cmd);
+static char *swap_free(void);
+static char *swap_perc(void);
+static char *swap_used(void);
+static char *swap_total(void);
+static char *temp(const char *file);
+static char *uid(void);
+static char *uptime(void);
+static char *username(void);
+static char *vol_perc(const char *card);
+static char *wifi_perc(const char *iface);
+static char *wifi_essid(const char *iface);
+static char *kernel_release(void);
+static void set_status(const char *str);
+static void sighandler(const int signo);
+static void usage(void);
+
+char *argv0;
+char concat[];
+static unsigned short int delay;
+static unsigned short int done;
+static unsigned short int dflag, oflag;
+static Display *dpy;