inline void graph_append(struct special_t *graph, double f)
{
+ int i;
+
if (!graph->scaled && f > graph->graph_scale) {
f = graph->graph_scale;
}
- int i;
if (graph->scaled) {
graph->graph_scale = 1;
const char *func_name, ...) {
int len;
va_list argp;
+ char *tempbuf;
+
if (size < 1) {
return 0;
}
- char *tempbuf = malloc(size * sizeof(char));
+ tempbuf = malloc(size * sizeof(char));
// Passes the varargs along to vsnprintf
va_start(argp, func_name);
struct mail_s *parse_mail_args(char type, const char *arg)
{
struct mail_s *mail;
+ char *tmp;
+
mail = malloc(sizeof(struct mail_s));
memset(mail, 0, sizeof(struct mail_s));
- char *tmp;
if (sscanf(arg, "%128s %128s %128s", mail->host, mail->user, mail->pass)
!= 3) {
}
tmp = strstr(arg, "-e ");
if (tmp) {
- tmp += 3;
int len = 1024;
+ tmp += 3;
if (tmp[0] == '\'') {
len = strstr(tmp + 1, "'") - tmp - 1;
exit(1);
}
while (fail < 5) {
+ struct timeval timeout;
+ int res;
+ fd_set fdset;
+
if (fail > 0) {
ERR("Trying IMAP connection again for %s@%s (try %i/5)",
mail->user, mail->host, fail + 1);
fail++;
goto next_iteration;
}
- struct timeval timeout;
- int res;
- fd_set fdset;
timeout.tv_sec = 60; // 60 second timeout i guess
timeout.tv_usec = 0;
exit(1);
}
while (fail < 5) {
+ struct timeval timeout;
+ int res;
+ fd_set fdset;
+
if (fail > 0) {
ERR("Trying POP3 connection again for %s@%s (try %i/5)",
mail->user, mail->host, fail + 1);
fail++;
goto next_iteration;
}
- struct timeval timeout;
- int res;
- fd_set fdset;
timeout.tv_sec = 60; // 60 second timeout i guess
timeout.tv_usec = 0;
void *threaded_exec(void *arg)
{
+ FILE *fp;
+ char *p2;
+ int n2;
+ struct text_object *obj = (struct text_object *)arg;
while (1) {
- struct text_object *obj = (struct text_object *)arg;
- char *p2 = obj->data.texeci.buffer;
- FILE *fp = popen(obj->data.texeci.cmd, "r");
+ p2 = obj->data.texeci.buffer;
+ fp = popen(obj->data.texeci.cmd, "r");
timed_thread_lock(obj->data.texeci.p_timed_thread);
- int n2 = fread(p2, 1, text_buffer_size, fp);
+ n2 = fread(p2, 1, text_buffer_size, fp);
pclose(fp);
p2[n2] = '\0';
struct text_object_list *retval;
struct text_object *obj;
char *p, *s, *orig_p;
+ long line;
p = strdup(const_p);
s = orig_p = p;
memset(retval, 0, sizeof(struct text_object_list));
retval->text_object_count = 0;
- long line = text_lines;
+ line = text_lines;
while (*p) {
if (*p == '\n') {
}
}
OBJ(execp) {
- FILE *fp = popen(obj->data.s, "r");
- fread(p, 1, p_max_size, fp);
+ FILE *fp;
+ struct information *my_info;
+ struct text_object_list *text_objects;
+ int length;
+ fp = popen(obj->data.s, "r");
+ fread(p, 1, p_max_size, fp);
pclose(fp);
- struct information *my_info =
- malloc(sizeof(struct information));
+ my_info = malloc(sizeof(struct information));
memcpy(my_info, cur, sizeof(struct information));
- struct text_object_list *text_objects = parse_conky_vars(p, p, my_info);
+ text_objects = parse_conky_vars(p, p, my_info);
- int length = strlen(p);
+ length = strlen(p);
p[length] = '\0';
if (length > 0 && p[length - 1] == '\n') {
char *p2 = p;
FILE *fp = popen(obj->data.s, "r");
int n2 = fread(p, 1, p_max_size, fp);
+ double barnum;
pclose(fp);
p[n2] = '\0';
}
p2++;
}
- double barnum;
if (sscanf(p, "%lf", &barnum) == 0) {
ERR("reading execbar value failed (perhaps it's not the "
char *p2 = p;
FILE *fp = popen(obj->data.s, "r");
int n2 = fread(p, 1, p_max_size, fp);
+ double barnum;
pclose(fp);
p[n2] = '\0';
}
p2++;
}
- double barnum;
if (sscanf(p, "%lf", &barnum) == 0) {
ERR("reading execgraph value failed (perhaps it's not the "
char *p2 = p;
FILE *fp = popen(obj->data.execi.cmd, "r");
int n2 = fread(p, 1, p_max_size, fp);
+ float barnum;
pclose(fp);
p[n2] = '\0';
}
p2++;
}
- float barnum;
if (sscanf(p, "%f", &barnum) == 0) {
ERR("reading execibar value failed (perhaps it's not "
char *p2 = p;
FILE *fp = popen(obj->data.execi.cmd, "r");
int n2 = fread(p, 1, p_max_size, fp);
+ float barnum;
pclose(fp);
p[n2] = '\0';
}
p2++;
}
- float barnum;
if (sscanf(p, "%f", &barnum) == 0) {
ERR("reading execigraph value failed (perhaps it's not "
// parse_conky_vars(output, p, cur);
}
OBJ(execpi) {
+ struct text_object_list *text_objects = 0;
struct information *my_info =
malloc(sizeof(struct information));
memcpy(my_info, cur, sizeof(struct information));
- struct text_object_list *text_objects = 0;
if (current_update_time - obj->data.execi.last_update
< obj->data.execi.interval
} else if (!strcmp(obj->data.rss.action, "item_titles")) {
if (data->item_count > 0) {
int itmp;
+ int show;
p[0] = 0;
- int show;
if (obj->data.rss.act_par > data->item_count) {
show = data->item_count;
new_alignc(p, obj->data.i);
}
OBJ(if_empty) {
+ struct text_object_list *text_objects;
struct information *my_info =
malloc(sizeof(struct information));
-
memcpy(my_info, cur, sizeof(struct information));
- struct text_object_list *text_objects = parse_conky_vars(obj->data.ifblock.s, p, my_info);
+ text_objects = parse_conky_vars(obj->data.ifblock.s, p, my_info);
+
if (strlen(p) != 0) {
i = obj->data.ifblock.pos;
if_jumped = 1;
}
OBJ(tztime) {
char *oldTZ = NULL;
+ time_t t;
+ struct tm *tm;
if (obj->data.tztime.tz) {
oldTZ = getenv("TZ");
setenv("TZ", obj->data.tztime.tz, 1);
tzset();
}
- time_t t = time(NULL);
- struct tm *tm = localtime(&t);
+ t = time(NULL);
+ tm = localtime(&t);
setlocale(LC_TIME, "");
strftime(p, p_max_size, obj->data.tztime.fmt, tm);
< obj->data.tail.interval) {
snprintf(p, p_max_size, "%s", obj->data.tail.buffer);
} else {
- obj->data.tail.last_update = current_update_time;
FILE *fp;
long nl = 0, bsize;
int iter;
+ obj->data.tail.last_update = current_update_time;
+
if (obj->data.tail.fd != -1) {
tail_pipe(obj, p, p_max_size);
goto head;
< obj->data.tail.interval) {
snprintf(p, p_max_size, "%s", obj->data.tail.buffer);
} else {
- obj->data.tail.last_update = current_update_time;
FILE *fp;
long nl = 0;
int iter;
+ obj->data.tail.last_update = current_update_time;
+
fp = fopen(obj->data.tail.logfile, "rt");
if (fp == NULL) {
/* Send one message, but do not consistently spam
static inline int get_string_width_special(char *s)
{
+#ifdef X11
+ char *p, *final;
+ int index = 1;
+ int width = 0;
+ unsigned int i;
+
if (!s) {
return 0;
}
-#ifdef X11
- char *p, *final;
p = strdup(s);
final = p;
- int index = 1;
- int width = 0;
- unsigned int i;
while (*p) {
if (*p == SPECIAL_CHAR) {
free(final);
return width;
#else
- return strlen(s);
+ return (s) ? strlen(s) : 0;
#endif /* X11 */
}
static void draw_string(const char *s)
{
- if (s[0] == '\0') {
- return;
- }
int i, i2, pos, width_of_s;
int max = 0;
int added;
+ char space[2];
+
+ if (s[0] == '\0') {
+ return;
+ }
width_of_s = get_string_width(s);
if (out_to_console) {
strncpy(tmpstring1, s, text_buffer_size - 1);
pos = 0;
added = 0;
- char space[2];
snprintf(space, 2, " ");
#ifdef X11
void set_up_gradient(void)
{
+ int i;
#ifdef X11
colour_depth = DisplayPlanes(display, screen);
#else
ERR("using non-standard colour depth, gradients may look like a "
"lolly-pop");
}
- int i;
redmask = 0;
greenmask = 0;
inline unsigned long gradient_max(unsigned long first_colour,
unsigned long last_colour)
{
+ int red1, green1, blue1; // first colour
+ int red2, green2, blue2; // second colour
+ int red3 = 0, green3 = 0, blue3 = 0; // difference
+ long redshift, greenshift;
+ int max;
+
if (colour_depth == 0) {
set_up_gradient();
}
- int red1, green1, blue1; // first colour
- int red2, green2, blue2; // second colour
- long redshift = (2 * colour_depth / 3 + colour_depth % 3);
- long greenshift = (colour_depth / 3);
- int red3 = 0, green3 = 0, blue3 = 0; // difference
+ redshift = (2 * colour_depth / 3 + colour_depth % 3);
+ greenshift = (colour_depth / 3);
red1 = (first_colour & redmask) >> redshift;
green1 = (first_colour & greenmask) >> greenshift;
red3 = abs(red1 - red2);
green3 = abs(green1 - green2);
blue3 = abs(blue1 - blue2);
- int max = red3;
+ max = red3;
if (green3 > max) {
max = green3;
{
#ifdef X11
char *p;
+ int cur_y_add = 0;
+ short font_h;
cur_x = text_start_x;
cur_y += font_ascent();
- int cur_y_add = 0;
- short font_h = font_height();
+ font_h = font_height();
/* find specials and draw stuff */
p = s;
case BAR:
{
+ int h, bar_usage, by;
if (cur_x - text_start_x > maximum_width
&& maximum_width > 0) {
break;
}
- int h = specials[special_index].height;
- int bar_usage = specials[special_index].arg;
- int by = cur_y - (font_ascent() / 2) - 1;
+ h = specials[special_index].height;
+ bar_usage = specials[special_index].arg;
+ by = cur_y - (font_ascent() / 2) - 1;
if (h < font_height()) {
by -= h / 2 - 1;
case GRAPH:
{
+ int h, by, i, j = 0;
+ int gradient_size = 0;
+ float gradient_factor = 0;
+ float gradient_update = 0;
+ unsigned long last_colour = current_color;
+ unsigned long tmpcolour = current_color;
if (cur_x - text_start_x > maximum_width
&& maximum_width > 0) {
break;
}
- int h = specials[special_index].height;
- unsigned long last_colour = current_color;
- int by = cur_y - (font_ascent() / 2) - 1;
+ h = specials[special_index].height;
+ by = cur_y - (font_ascent() / 2) - 1;
if (h < font_height()) {
by -= h / 2 - 1;
}
XSetLineAttributes(display, window.gc, 1, LineSolid,
CapButt, JoinMiter);
- int i;
- int j = 0;
- int gradient_size = 0;
- float gradient_factor = 0;
- float gradient_update = 0;
- unsigned long tmpcolour = current_color;
if (specials[special_index].last_colour != 0
|| specials[special_index].first_colour != 0) {
}
if (draw_outline) {
- selected_font = 0;
int i, j;
+ selected_font = 0;
for (i = -1; i < 2; i++) {
for (j = -1; j < 2; j++) {
{
#ifdef SIGNAL_BLOCKING
sigset_t newmask, oldmask;
-
- sigemptyset(&newmask);
- sigaddset(&newmask, SIGINT);
- sigaddset(&newmask, SIGTERM);
- sigaddset(&newmask, SIGUSR1);
#endif
-
#ifdef X11
Region region = XCreateRegion();
#ifdef HAVE_XDAMAGE
+ Damage damage;
+ XserverRegion region2, part;
int event_base, error_base;
if (!XDamageQueryExtension(display, &event_base, &error_base)) {
ERR("Xdamage extension unavailable");
}
- Damage damage = XDamageCreate(display, window.window,
- XDamageReportNonEmpty);
- XserverRegion region2 = XFixesCreateRegionFromWindow(display,
- window.window, 0);
- XserverRegion part = XFixesCreateRegionFromWindow(display,
- window.window, 0);
+ damage = XDamageCreate(display, window.window, XDamageReportNonEmpty);
+ region2 = XFixesCreateRegionFromWindow(display, window.window, 0);
+ part = XFixesCreateRegionFromWindow(display, window.window, 0);
#endif /* HAVE_XDAMAGE */
#endif /* X11 */
+#ifdef SIGNAL_BLOCKING
+ sigemptyset(&newmask);
+ sigaddset(&newmask, SIGINT);
+ sigaddset(&newmask, SIGTERM);
+ sigaddset(&newmask, SIGUSR1);
+#endif
+
info.looped = 0;
while (total_run_times == 0 || info.looped < total_run_times) {
info.looped++;
int main(int argc, char **argv)
{
+#ifdef X11
+ char *s, *temp;
+ unsigned int x;
+#endif
struct sigaction act, oact;
g_signal_pending = 0;
/* handle command line parameters that don't change configs */
#ifdef X11
- char *s, *temp;
- unsigned int x;
-
if (((s = getenv("LC_ALL")) && *s) || ((s = getenv("LC_CTYPE")) && *s)
|| ((s = getenv("LANG")) && *s)) {
temp = (char *) malloc((strlen(s) + 1) * sizeof(char));
{
FILE *stat_fp;
static int rep = 0;
+ char buf[256];
if (info.cpu_usage) {
return;
}
- char buf[256];
if (!(stat_fp = open_file("/proc/stat", &rep))) {
return;
sscanf(buf, "%*s %hu", &info.run_procs);
info.mask |= (1 << INFO_RUN_PROCS);
} else if (strncmp(buf, "cpu", 3) == 0) {
+ double delta;
index = isdigit(buf[3]) ? ((int) buf[3]) - 0x2F : 0;
sscanf(buf, stat_template, &(cpu[index].cpu_user),
&(cpu[index].cpu_nice), &(cpu[index].cpu_system),
(cpu[index].cpu_idle + cpu[index].cpu_iowait);
info.mask |= (1 << INFO_CPU);
- double delta = current_update_time - last_update_time;
+ delta = current_update_time - last_update_time;
if (delta <= 0.001) {
break;
{
static int idx, rep = 0, rep2 = 0;
char acpi_path[128];
+ char sysfs_path[128];
snprintf(acpi_path, 127, ACPI_BATTERY_BASE_PATH "/%s/state", bat);
- char sysfs_path[128];
snprintf(sysfs_path, 127, SYSFS_BATTERY_BASE_PATH "/%s/uevent", bat);
init_batteries();
static int rep = 0;
int idx;
char acpi_path[128];
+ char sysfs_path[128];
+ int remaining_capacity = -1;
snprintf(acpi_path, 127, ACPI_BATTERY_BASE_PATH "/%s/state", bat);
- char sysfs_path[128];
snprintf(sysfs_path, 127, SYSFS_BATTERY_BASE_PATH "/%s/uevent", bat);
init_batteries();
acpi_bat_fp[idx] = open_file(acpi_path, &rep);
}
- int remaining_capacity = -1;
-
if (sysfs_bat_fp[idx] != NULL) {
/* SYSFS */
while (!feof(sysfs_bat_fp[idx])) {
unsigned int current_write = 0;
unsigned int reads, writes = 0;
int col_count = 0;
+ int tot, tot_read, tot_write;
if (!(fp = open_file("/proc/diskstats", &rep))) {
diskio_value = 0;
/* since the values in /proc/diststats are absolute, we have to substract
* our last reading. The numbers stand for "sectors read", and we therefore
* have to divide by two to get KB */
- int tot = ((double) (current - last) / 2);
- int tot_read = ((double) (current_read - last_read) / 2);
- int tot_write = ((double) (current_write - last_write) / 2);
+ tot = ((double) (current - last) / 2);
+ tot_read = ((double) (current_read - last_read) / 2);
+ tot_write = ((double) (current_write - last_write) / 2);
if (last_read > current_read) {
tot_read = 0;
void get_ibm_acpi_fan(char *p_client_buffer, size_t client_buffer_size)
{
- if (!p_client_buffer || client_buffer_size <= 0) {
- return;
- }
-
FILE *fp;
unsigned int speed = 0;
char fan[128];
+ if (!p_client_buffer || client_buffer_size <= 0) {
+ return;
+ }
+
snprintf(fan, 127, "%s/fan", IBM_ACPI_DIR);
fp = fopen(fan, "r");
void get_ibm_acpi_temps(void)
{
+ FILE *fp;
+ char thermal[128];
+
/* don't update too often */
if (current_update_time - last_ibm_acpi_temp_time < 10.00) {
return;
return;
} */
- FILE *fp;
-
- char thermal[128];
-
snprintf(thermal, 127, "%s/thermal", IBM_ACPI_DIR);
fp = fopen(thermal, "r");
void get_ibm_acpi_volume(char *p_client_buffer, size_t client_buffer_size)
{
+ FILE *fp;
+ char volume[128];
+ unsigned int vol = -1;
+ char mute[3] = "";
+
if (!p_client_buffer || client_buffer_size <= 0) {
return;
}
- FILE *fp;
-
- char volume[128];
-
snprintf(volume, 127, "%s/volume", IBM_ACPI_DIR);
- unsigned int vol = -1;
- char mute[3] = "";
fp = fopen(volume, "r");
if (fp != NULL) {
void get_ibm_acpi_brightness(char *p_client_buffer, size_t client_buffer_size)
{
- if (!p_client_buffer || client_buffer_size <= 0) {
- return;
- }
-
FILE *fp;
unsigned int brightness = 0;
char filename[128];
+ if (!p_client_buffer || client_buffer_size <= 0) {
+ return;
+ }
+
snprintf(filename, 127, "%s/brightness", IBM_ACPI_DIR);
fp = fopen(filename, "r");