1
0
mirror of https://github.com/Llewellynvdm/conky.git synced 2024-12-27 04:32:55 +00:00

auesnthaeou

This commit is contained in:
Brenden Matthews 2009-08-06 21:56:40 -06:00
parent d710ea8b9d
commit 70adc04fc2
14 changed files with 433 additions and 431 deletions

View File

@ -53,7 +53,7 @@ static void set_up_gradient(conky_context *ctx)
} }
if (ctx->colour_depth != 24 && ctx->colour_depth != 16) { if (ctx->colour_depth != 24 && ctx->colour_depth != 16) {
NORM_ERR("using non-standard colour depth, gradients may look like a " NORM_ERR("using non-standard colour depth, gradients may look like a "
"lolly-pop"); "lollipop");
} }
ctx->redmask = 0; ctx->redmask = 0;

View File

@ -33,6 +33,7 @@
#include "common.h" #include "common.h"
#include "fs.h" #include "fs.h"
#include "logging.h" #include "logging.h"
#include "core.h"
#include <ctype.h> #include <ctype.h>
#include <errno.h> #include <errno.h>
#include <sys/time.h> #include <sys/time.h>
@ -218,7 +219,7 @@ void variable_substitute(const char *s, char *dest, unsigned int n)
static struct net_stat netstats[16]; static struct net_stat netstats[16];
struct net_stat *get_net_stat(const char *dev, void *free_at_crash1, void *free_at_crash2) struct net_stat *get_net_stat(conky_context *ctx, const char *dev, void *free_at_crash1, void *free_at_crash2)
{ {
unsigned int i; unsigned int i;
@ -241,7 +242,7 @@ struct net_stat *get_net_stat(const char *dev, void *free_at_crash1, void *free_
} }
} }
CRIT_ERR(free_at_crash1, free_at_crash2, "too many interfaces used (limit is 16)"); CRIT_ERR(ctx, free_at_crash1, free_at_crash2, "too many interfaces used (limit is 16)");
return 0; return 0;
} }
@ -257,13 +258,13 @@ void clear_net_stats(void)
} }
/* We should check if this is ok with OpenBSD and NetBSD as well. */ /* We should check if this is ok with OpenBSD and NetBSD as well. */
int interface_up(const char *dev) int interface_up(conky_context *ctx, const char *dev)
{ {
int fd; int fd;
struct ifreq ifr; struct ifreq ifr;
if ((fd = socket(PF_INET, SOCK_DGRAM, 0)) < 0) { if ((fd = socket(PF_INET, SOCK_DGRAM, 0)) < 0) {
CRIT_ERR(NULL, NULL, "could not create sockfd"); CRIT_ERR(ctx, NULL, NULL, "could not create sockfd");
return 0; return 0;
} }
strncpy(ifr.ifr_name, dev, IFNAMSIZ); strncpy(ifr.ifr_name, dev, IFNAMSIZ);

View File

@ -77,8 +77,8 @@ struct net_stat {
}; };
void clear_net_stats(void); void clear_net_stats(void);
void clear_cpu_stats(void); void clear_cpu_stats(void);
struct net_stat *get_net_stat(const char *dev, void *free_at_crash1, void *free_at_crash2); struct net_stat *get_net_stat(conky_context *ctx, const char *dev, void *free_at_crash1, void *free_at_crash2);
int interface_up(const char *dev); int interface_up(conky_context *ctx, const char *dev);
void get_adt746x_cpu(char *, size_t); void get_adt746x_cpu(char *, size_t);
void get_adt746x_fan(char *, size_t); void get_adt746x_fan(char *, size_t);

View File

@ -55,9 +55,6 @@
#ifdef HAVE_XDAMAGE #ifdef HAVE_XDAMAGE
#include <X11/extensions/Xdamage.h> #include <X11/extensions/Xdamage.h>
#endif /* HAVE_XDAMAGE */ #endif /* HAVE_XDAMAGE */
#ifdef IMLIB2
#include "imlib2.h"
#endif /* IMLIB2 */
#endif /* X11 */ #endif /* X11 */
#include <sys/types.h> #include <sys/types.h>
#include <sys/stat.h> #include <sys/stat.h>
@ -76,7 +73,6 @@
#include "algebra.h" #include "algebra.h"
#include "build.h" #include "build.h"
#include "colours.h" #include "colours.h"
#include "diskio.h"
#ifdef X11 #ifdef X11
#include "fonts.h" #include "fonts.h"
#endif #endif
@ -121,7 +117,6 @@ char *get_apm_battery_time(void);
#define S_ISSOCK(x) ((x & S_IFMT) == S_IFSOCK) #define S_ISSOCK(x) ((x & S_IFMT) == S_IFSOCK)
#endif #endif
#define MAIL_FILE "$MAIL"
#define MAX_IF_BLOCK_DEPTH 5 #define MAX_IF_BLOCK_DEPTH 5
//#define SIGNAL_BLOCKING //#define SIGNAL_BLOCKING
@ -138,7 +133,6 @@ char** argv_copy;
/* prototypes for internally used functions */ /* prototypes for internally used functions */
static void signal_handler(int); static void signal_handler(int);
static void print_version(void) __attribute__((noreturn)); static void print_version(void) __attribute__((noreturn));
static void reload_config(void);
static void print_version(void) static void print_version(void)
{ {
@ -614,7 +608,7 @@ static void main_loop(conky_context *ctx)
case SIGHUP: case SIGHUP:
case SIGUSR1: case SIGUSR1:
NORM_ERR("received SIGHUP or SIGUSR1. reloading the config file."); NORM_ERR("received SIGHUP or SIGUSR1. reloading the config file.");
reload_config(); reload_config(ctx);
break; break;
case SIGINT: case SIGINT:
case SIGTERM: case SIGTERM:
@ -679,7 +673,7 @@ static void main_loop(conky_context *ctx)
if (ev->wd == inotify_config_wd && (ev->mask & IN_MODIFY || ev->mask & IN_IGNORED)) { if (ev->wd == inotify_config_wd && (ev->mask & IN_MODIFY || ev->mask & IN_IGNORED)) {
/* ctx->current_config should be reloaded */ /* ctx->current_config should be reloaded */
NORM_ERR("'%s' modified, reloading...", ctx->current_config); NORM_ERR("'%s' modified, reloading...", ctx->current_config);
reload_config(); reload_config(ctx);
if (ev->mask & IN_IGNORED) { if (ev->mask & IN_IGNORED) {
/* for some reason we get IN_IGNORED here /* for some reason we get IN_IGNORED here
* sometimes, so we need to re-add the watch */ * sometimes, so we need to re-add the watch */
@ -704,7 +698,7 @@ static void main_loop(conky_context *ctx)
#endif /* HAVE_LUA */ #endif /* HAVE_LUA */
g_signal_pending = 0; g_signal_pending = 0;
} }
clean_up(NULL, NULL); clean_up(ctx, NULL, NULL);
#ifdef HAVE_SYS_INOTIFY_H #ifdef HAVE_SYS_INOTIFY_H
if (inotify_fd != -1) { if (inotify_fd != -1) {
@ -850,7 +844,7 @@ void initialisation(conky_context *ctx, int argc, char **argv)
break; break;
#ifdef X11 #ifdef X11
case 'f': case 'f':
set_first_font(optarg); set_first_font(ctx, optarg);
break; break;
case 'a': case 'a':
ctx->text_alignment = string_to_alignment(optarg); ctx->text_alignment = string_to_alignment(optarg);

View File

@ -250,10 +250,14 @@ enum {
#define KFLAG_FLIP(a) ctx->info.kflags ^= a #define KFLAG_FLIP(a) ctx->info.kflags ^= a
#define KFLAG_ISSET(a) ctx->info.kflags & a #define KFLAG_ISSET(a) ctx->info.kflags & a
#define MAIL_FILE "$MAIL"
/* defined in users.c */ /* defined in users.c */
void update_users(void); void update_users(void);
extern int inotify_fd; extern int inotify_fd;
extern int argc_copy;
extern char** argv_copy;
#define NOBATTERY 0 #define NOBATTERY 0

File diff suppressed because it is too large Load Diff

View File

@ -60,7 +60,7 @@ enum alignment {
void read_exec(const char *data, char *buf, const int size); void read_exec(const char *data, char *buf, const int size);
void set_default_configurations(conky_context *ctx); void set_default_configurations(conky_context *ctx);
void set_update_interval(double interval); void set_update_interval(conky_context *ctx, double interval);
/* update_text() generates new text and clears old text area */ /* update_text() generates new text and clears old text area */
void update_text(conky_context *ctx); void update_text(conky_context *ctx);
@ -78,4 +78,8 @@ void X11_create_window(conky_context *ctx);
void convert_escapes(char *buf); void convert_escapes(char *buf);
void reload_config(conky_context *ctx);
void clean_up(conky_context *ctx, void *memtofree1, void *memtofree2);
#endif /* _CONKY_CORE_H_ */ #endif /* _CONKY_CORE_H_ */

View File

@ -29,31 +29,26 @@
* *
*/ */
#include "conky.h" #include "conky.h"
#include "fonts.h" #include "ctx->fonts.h"
#include "logging.h" #include "logging.h"
int selected_font = 0; void set_font(conky_context *ctx)
int font_count = -1;
struct font_list *fonts = NULL;
char fontloaded = 0;
void set_font(void)
{ {
#ifdef XFT #ifdef XFT
if (use_xft) return; if (use_xft->ctx) return;
#endif /* XFT */ #endif /* XFT */
if (font_count > -1 && fonts[selected_font].font) { if (ctx->font_count > -1 && ctx->fonts[selected_font].font) {
XSetFont(display, window.gc, fonts[selected_font].font->fid); XSetFont(display, window.gc, ctx->fonts[selected_font].font->fid);
} }
} }
void setup_fonts(void) void setup_fonts(conky_context *ctx)
{ {
if ((output_methods & TO_X) == 0) { if ((output_methods & TO_X) == 0) {
return; return;
} }
#ifdef XFT #ifdef XFT
if (use_xft) { if (use_xft->ctx) {
if (window.xftdraw) { if (window.xftdraw) {
XftDrawDestroy(window.xftdraw); XftDrawDestroy(window.xftdraw);
window.xftdraw = 0; window.xftdraw = 0;
@ -65,89 +60,89 @@ void setup_fonts(void)
set_font(); set_font();
} }
int add_font(const char *data_in) int add_font(conky_context *ctx, const char *data_in)
{ {
if ((output_methods & TO_X) == 0) { if ((output_methods & TO_X) == 0) {
return 0; return 0;
} }
if (font_count > MAX_FONTS) { if (ctx->font_count > MAX_FONTS) {
CRIT_ERR(NULL, NULL, "you don't need that many fonts, sorry."); CRIT_ERR(NULL, NULL, "you don't need that many ctx->fonts, sorry.");
} }
font_count++; ctx->font_count++;
if (font_count == 0) { if (ctx->font_count == 0) {
if (fonts != NULL) { if (ctx->fonts != NULL) {
free(fonts); free(ctx->fonts);
} }
if ((fonts = (struct font_list *) malloc(sizeof(struct font_list))) if ((ctx->fonts = (struct font_list *) malloc(sizeof(struct font_list)))
== NULL) { == NULL) {
CRIT_ERR(NULL, NULL, "malloc"); CRIT_ERR(NULL, NULL, "malloc");
} }
memset(fonts, 0, sizeof(struct font_list)); memset(ctx->fonts, 0, sizeof(struct font_list));
} }
fonts = realloc(fonts, (sizeof(struct font_list) * (font_count + 1))); ctx->fonts = realloc(ctx->fonts, (sizeof(struct font_list) * (ctx->font_count + 1)));
memset(&fonts[font_count], 0, sizeof(struct font_list)); memset(&ctx->fonts[ctx->font_count], 0, sizeof(struct font_list));
if (fonts == NULL) { if (ctx->fonts == NULL) {
CRIT_ERR(NULL, NULL, "realloc in add_font"); CRIT_ERR(NULL, NULL, "realloc in add_font");
} }
// must account for null terminator // must account for null terminator
if (strlen(data_in) < DEFAULT_TEXT_BUFFER_SIZE) { if (strlen(data_in) < DEFAULT_TEXT_BUFFER_SIZE) {
strncpy(fonts[font_count].name, data_in, DEFAULT_TEXT_BUFFER_SIZE); strncpy(ctx->fonts[ctx->font_count].name, data_in, DEFAULT_TEXT_BUFFER_SIZE);
#ifdef XFT #ifdef XFT
fonts[font_count].font_alpha = 0xffff; ctx->fonts[ctx->font_count].font_alpha = 0xffff;
#endif #endif
} else { } else {
CRIT_ERR(NULL, NULL, "Oops...looks like something overflowed in add_font()."); CRIT_ERR(NULL, NULL, "Oops...looks like something overflowed in add_font().");
} }
return font_count; return ctx->font_count;
} }
void set_first_font(const char *data_in) void set_first_font(conky_context *ctx, const char *data_in)
{ {
if ((output_methods & TO_X) == 0) { if ((output_methods & TO_X) == 0) {
return; return;
} }
if (font_count < 0) { if (ctx->font_count < 0) {
if ((fonts = (struct font_list *) malloc(sizeof(struct font_list))) if ((ctx->fonts = (struct font_list *) malloc(sizeof(struct font_list)))
== NULL) { == NULL) {
CRIT_ERR(NULL, NULL, "malloc"); CRIT_ERR(NULL, NULL, "malloc");
} }
memset(fonts, 0, sizeof(struct font_list)); memset(ctx->fonts, 0, sizeof(struct font_list));
font_count++; ctx->font_count++;
} }
if (strlen(data_in) > 1) { if (strlen(data_in) > 1) {
strncpy(fonts[0].name, data_in, DEFAULT_TEXT_BUFFER_SIZE); strncpy(ctx->fonts[0].name, data_in, DEFAULT_TEXT_BUFFER_SIZE);
#ifdef XFT #ifdef XFT
fonts[0].font_alpha = 0xffff; ctx->fonts[0].font_alpha = 0xffff;
#endif #endif
} }
} }
void free_fonts(void) void free_fonts(conky_context *ctx)
{ {
int i; int i;
if ((output_methods & TO_X) == 0) { if ((output_methods & TO_X) == 0) {
return; return;
} }
if(fontloaded == 0) { if(ctx->fontloaded == 0) {
free(fonts); free(ctx->fonts);
return; return;
} }
for (i = 0; i <= font_count; i++) { for (i = 0; i <= ctx->font_count; i++) {
#ifdef XFT #ifdef XFT
if (use_xft) { if (use_xft->ctx) {
XftFontClose(display, fonts[i].xftfont); XftFontClose(display, ctx->fonts[i].xftfont);
fonts[i].xftfont = 0; ctx->fonts[i].xftfont = 0;
} else } else
#endif /* XFT */ #endif /* XFT */
{ {
XFreeFont(display, fonts[i].font); XFreeFont(display, ctx->fonts[i].font);
fonts[i].font = 0; ctx->fonts[i].font = 0;
} }
} }
free(fonts); free(ctx->fonts);
fonts = 0; ctx->fonts = 0;
font_count = -1; ctx->font_count = -1;
selected_font = 0; selected_font = 0;
#ifdef XFT #ifdef XFT
if (window.xftdraw) { if (window.xftdraw) {
@ -157,47 +152,47 @@ void free_fonts(void)
#endif /* XFT */ #endif /* XFT */
} }
void load_fonts(void) void load_fonts(conky_context *ctx)
{ {
int i; int i;
if ((output_methods & TO_X) == 0) if ((output_methods & TO_X) == 0)
return; return;
for (i = 0; i <= font_count; i++) { for (i = 0; i <= ctx->font_count; i++) {
#ifdef XFT #ifdef XFT
/* load Xft font */ /* load Xft font */
if (use_xft && fonts[i].xftfont) { if (use_xft->ctx && ctx->fonts[i].xftfont) {
continue; continue;
} else if (use_xft) { } else if (use_xft->ctx) {
fonts[i].xftfont = XftFontOpenName(display, screen, ctx->fonts[i].xftfont = XftFontOpenName(display, screen,
fonts[i].name); ctx->fonts[i].name);
if (fonts[i].xftfont) { if (ctx->fonts[i].xftfont) {
continue; continue;
} }
NORM_ERR("can't load Xft font '%s'", fonts[i].name); NORM_ERR("can't load Xft font '%s'", ctx->fonts[i].name);
if ((fonts[i].xftfont = XftFontOpenName(display, screen, if ((ctx->fonts[i].xftfont = XftFontOpenName(display, screen,
"courier-12")) != NULL) { "courier-12")) != NULL) {
continue; continue;
} }
NORM_ERR("can't load Xft font '%s'", "courier-12"); NORM_ERR("can't load Xft font '%s'", "courier-12");
if ((fonts[i].font = XLoadQueryFont(display, "fixed")) == NULL) { if ((ctx->fonts[i].font = XLoadQueryFont(display, "fixed")) == NULL) {
CRIT_ERR(NULL, NULL, "can't load font '%s'", "fixed"); CRIT_ERR(NULL, NULL, "can't load font '%s'", "fixed");
} }
use_xft = 0; use_xft->ctx = 0;
continue; continue;
} }
#endif #endif
/* load normal font */ /* load normal font */
if (!fonts[i].font && (fonts[i].font = XLoadQueryFont(display, fonts[i].name)) == NULL) { if (!ctx->fonts[i].font && (ctx->fonts[i].font = XLoadQueryFont(display, ctx->fonts[i].name)) == NULL) {
NORM_ERR("can't load font '%s'", fonts[i].name); NORM_ERR("can't load font '%s'", ctx->fonts[i].name);
if ((fonts[i].font = XLoadQueryFont(display, "fixed")) == NULL) { if ((ctx->fonts[i].font = XLoadQueryFont(display, "fixed")) == NULL) {
CRIT_ERR(NULL, NULL, "can't load font '%s'", "fixed"); CRIT_ERR(NULL, NULL, "can't load font '%s'", "fixed");
} }
} }
} }
fontloaded = 1; ctx->fontloaded = 1;
} }

View File

@ -34,33 +34,33 @@
#ifdef XFT #ifdef XFT
#define font_height() (use_xft ? (fonts[ctx->selected_font].xftfont->ascent + \ #define font_height() (use_xft ? (ctx->fonts[ctx->selected_font].xftfont->ascent + \
fonts[ctx->selected_font].xftfont->descent) \ ctx->fonts[ctx->selected_font].xftfont->descent) \
: (fonts[ctx->selected_font].font->max_bounds.ascent + \ : (ctx->fonts[ctx->selected_font].font->max_bounds.ascent + \
fonts[ctx->selected_font].font->max_bounds.descent)) ctx->fonts[ctx->selected_font].font->max_bounds.descent))
#define font_ascent() (use_xft ? fonts[ctx->selected_font].xftfont->ascent \ #define font_ascent() (use_xft ? ctx->fonts[ctx->selected_font].xftfont->ascent \
: fonts[ctx->selected_font].font->max_bounds.ascent) : ctx->fonts[ctx->selected_font].font->max_bounds.ascent)
#define font_descent() (use_xft ? fonts[ctx->selected_font].xftfont->descent \ #define font_descent() (use_xft ? ctx->fonts[ctx->selected_font].xftfont->descent \
: fonts[ctx->selected_font].font->max_bounds.descent) : ctx->fonts[ctx->selected_font].font->max_bounds.descent)
#else #else
#define font_height() (fonts[ctx->selected_font].font->max_bounds.ascent + \ #define font_height() (ctx->fonts[ctx->selected_font].font->max_bounds.ascent + \
fonts[ctx->selected_font].font->max_bounds.descent) ctx->fonts[ctx->selected_font].font->max_bounds.descent)
#define font_ascent() fonts[ctx->selected_font].font->max_bounds.ascent #define font_ascent() ctx->fonts[ctx->selected_font].font->max_bounds.ascent
#define font_descent() fonts[ctx->selected_font].font->max_bounds.descent #define font_descent() ctx->fonts[ctx->selected_font].font->max_bounds.descent
#endif #endif
#define MAX_FONTS 256 #define MAX_FONTS 256
void setup_fonts(void); void setup_fonts(conky_context *ctx);
void set_font(void); void set_font(conky_context *ctx);
int add_font(const char *); int add_font(conky_context *ctx, const char *);
void set_first_font(const char *); void set_first_font(conky_context *ctx, const char *);
void free_fonts(void); void free_fonts(conky_context *ctx);
void load_fonts(void); void load_fonts(conky_context *ctx);
#endif /* _FONTS_H */ #endif /* _FONTS_H */
#endif /* X11 */ #endif /* X11 */

View File

@ -27,8 +27,6 @@
* *
*/ */
void clean_up(void *memtofree1, void* memtofree2);
#ifndef _LOGGING_H #ifndef _LOGGING_H
#define _LOGGING_H #define _LOGGING_H
@ -39,8 +37,8 @@ void clean_up(void *memtofree1, void* memtofree2);
} }
/* critical error */ /* critical error */
#define CRIT_ERR(memtofree1, memtofree2, ...) \ #define CRIT_ERR(ctx, memtofree1, memtofree2, ...) \
{ NORM_ERR(__VA_ARGS__); clean_up(memtofree1, memtofree2); exit(EXIT_FAILURE); } { NORM_ERR(__VA_ARGS__); clean_up(ctx, memtofree1, memtofree2); exit(EXIT_FAILURE); }
/* debugging output */ /* debugging output */
extern int global_debug_level; extern int global_debug_level;

View File

@ -41,8 +41,6 @@ size_t remove_comments(char *string);
int extract_variable_text_internal(struct text_object *retval, const char *const_p); int extract_variable_text_internal(struct text_object *retval, const char *const_p);
void free_text_objects(struct text_object *root, int internal);
#ifdef X11 #ifdef X11
void scan_mixer_bar(const char *arg, int *a, int *w, int *h); void scan_mixer_bar(const char *arg, int *a, int *w, int *h);
#endif /* X11 */ #endif /* X11 */

View File

@ -275,10 +275,57 @@ void evaluate(const char *text, char *buffer)
free(tmp_info); free(tmp_info);
} }
void generate_text_internal(char *p, int p_max_size, struct text_object root, static struct mail_s *ensure_mail_thread(conky_context *ctx, struct text_object *obj,
struct information *cur) void *thread(void *), const char *text)
{
if (obj->char_b && ctx->info.mail) {
/* this means we use ctx->info */
if (!ctx->info.mail->p_timed_thread) {
ctx->info.mail->p_timed_thread =
timed_thread_create(thread,
(void *) ctx->info.mail, ctx->info.mail->interval * 1000000);
if (!ctx->info.mail->p_timed_thread) {
NORM_ERR("Error creating %s timed thread", text);
}
timed_thread_register(ctx->info.mail->p_timed_thread,
&ctx->info.mail->p_timed_thread);
if (timed_thread_run(ctx->info.mail->p_timed_thread)) {
NORM_ERR("Error running %s timed thread", text);
}
}
return ctx->info.mail;
} else if (obj->data.mail) {
// this means we use obj
if (!obj->data.mail->p_timed_thread) {
obj->data.mail->p_timed_thread =
timed_thread_create(thread,
(void *) obj->data.mail,
obj->data.mail->interval * 1000000);
if (!obj->data.mail->p_timed_thread) {
NORM_ERR("Error creating %s timed thread", text);
}
timed_thread_register(obj->data.mail->p_timed_thread,
&obj->data.mail->p_timed_thread);
if (timed_thread_run(obj->data.mail->p_timed_thread)) {
NORM_ERR("Error running %s timed thread", text);
}
}
return obj->data.mail;
} else if (!obj->a) {
// something is wrong, warn once then stop
NORM_ERR("There's a problem with your mail settings. "
"Check that the global mail settings are properly defined"
" (line %li).", obj->line);
obj->a++;
}
return NULL;
}
void generate_text_internal(conky_context *ctx, char *p, int p_max_size, struct
text_object root)
{ {
struct text_object *obj; struct text_object *obj;
struct information *cur = &ctx->info;
#ifdef X11 #ifdef X11
int need_to_load_fonts = 0; int need_to_load_fonts = 0;
#endif /* X11 */ #endif /* X11 */
@ -1011,7 +1058,7 @@ void generate_text_internal(char *p, int p_max_size, struct text_object root,
} }
} }
OBJ(imap_unseen) { OBJ(imap_unseen) {
struct mail_s *mail = ensure_mail_thread(obj, imap_thread, "imap"); struct mail_s *mail = ensure_mail_thread(ctx, obj, imap_thread, "imap");
if (mail && mail->p_timed_thread) { if (mail && mail->p_timed_thread) {
timed_thread_lock(mail->p_timed_thread); timed_thread_lock(mail->p_timed_thread);
@ -1020,7 +1067,7 @@ void generate_text_internal(char *p, int p_max_size, struct text_object root,
} }
} }
OBJ(imap_messages) { OBJ(imap_messages) {
struct mail_s *mail = ensure_mail_thread(obj, imap_thread, "imap"); struct mail_s *mail = ensure_mail_thread(ctx, obj, imap_thread, "imap");
if (mail && mail->p_timed_thread) { if (mail && mail->p_timed_thread) {
timed_thread_lock(mail->p_timed_thread); timed_thread_lock(mail->p_timed_thread);
@ -1029,7 +1076,7 @@ void generate_text_internal(char *p, int p_max_size, struct text_object root,
} }
} }
OBJ(pop3_unseen) { OBJ(pop3_unseen) {
struct mail_s *mail = ensure_mail_thread(obj, pop3_thread, "pop3"); struct mail_s *mail = ensure_mail_thread(ctx, obj, pop3_thread, "pop3");
if (mail && mail->p_timed_thread) { if (mail && mail->p_timed_thread) {
timed_thread_lock(mail->p_timed_thread); timed_thread_lock(mail->p_timed_thread);
@ -1038,7 +1085,7 @@ void generate_text_internal(char *p, int p_max_size, struct text_object root,
} }
} }
OBJ(pop3_used) { OBJ(pop3_used) {
struct mail_s *mail = ensure_mail_thread(obj, pop3_thread, "pop3"); struct mail_s *mail = ensure_mail_thread(ctx, obj, pop3_thread, "pop3");
if (mail && mail->p_timed_thread) { if (mail && mail->p_timed_thread) {
timed_thread_lock(mail->p_timed_thread); timed_thread_lock(mail->p_timed_thread);

View File

@ -35,7 +35,7 @@
#include "conky.h" #include "conky.h"
#include "text_object.h" #include "text_object.h"
void generate_text_internal(char *p, int p_max_size, struct text_object root, void generate_text_internal(conky_context *ctx, char *p, int p_max_size, struct
struct information *cur); text_object root);
#endif /* _CONKY_OBJ_DISPLAY_H_ */ #endif /* _CONKY_OBJ_DISPLAY_H_ */

View File

@ -318,7 +318,6 @@ typedef struct _conky_context_s {
short colour_depth; short colour_depth;
long redmask, greenmask, bluemask; long redmask, greenmask, bluemask;
struct font_list *fonts; struct font_list *fonts;
int font_count; int font_count;