1
0
mirror of https://github.com/Llewellynvdm/conky.git synced 2025-01-12 19:06:36 +00:00

Multiline alignment support, some other misc stuff.

Added support for X alignment across multi-lined objects (i.e., using
$alignr with $exec).  This may be a bit buggy.  Disabled OpenMP code
until GCC's implementation stabilizes (it's causing too many problems).
A couple Lua API changes.
This commit is contained in:
Brenden Matthews 2009-07-18 13:46:36 -06:00
parent 5eef83d90a
commit 670e9a0eb1
13 changed files with 214 additions and 113 deletions

View File

@ -3,6 +3,9 @@
www.weather.com as a source of weather data (this avoids adding
libxml2 as a required dependency for users that wish to use noaa
and not weather.com)
* Added support for X alignment across multi-lined objects (i.e., using
$alignr with $exec)
* Disabled OpenMP code until GCC's implementation stabilizes
2009-07-18
* www.weather.com can now be used as well as a source of weather data

View File

@ -752,26 +752,26 @@ AC_CHECK_HEADER(zlib.h,
dnl
dnl Check for OpenMP support
dnl
dnl removed for now due to problems with GCC's OpenMP implementation
AC_ARG_ENABLE([openmp],
AC_HELP_STRING([--enable-openmp], [enable if you want OpenMP support @<:@default=no@:>@]),
[want_openmp="$enableval"], [want_openmp=no])
dnl AC_ARG_ENABLE([openmp],
dnl AC_HELP_STRING([--enable-openmp], [enable if you want OpenMP support @<:@default=no@:>@]),
dnl [want_openmp="$enableval"], [want_openmp=no])
if test x$want_openmp = xyes; then
AX_OPENMP([
gcc_version=`$CC -dumpversion`
gcc_major=`echo $gcc_version | sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
gcc_minor=`echo $gcc_version | sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
dnl check that the gcc version is >=4.3, if we're using gcc
if test ! "x$GCC" = "xyes" -o $gcc_major -ge 4 -a $gcc_minor -ge 3; then
AC_DEFINE(HAVE_OPENMP,1,[Define if OpenMP is enabled])
conky_CFLAGS="$conky_CFLAGS $OPENMP_CFLAGS"
else
want_openmp=no
fi
])
fi
dnl if test x$want_openmp = xyes; then
dnl AX_OPENMP([
dnl gcc_version=`$CC -dumpversion`
dnl gcc_major=`echo $gcc_version | sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
dnl gcc_minor=`echo $gcc_version | sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
dnl dnl check that the gcc version is >=4.3, if we're using gcc
dnl if test ! "x$GCC" = "xyes" -o $gcc_major -ge 4 -a $gcc_minor -ge 3; then
dnl AC_DEFINE(HAVE_OPENMP,1,[Define if OpenMP is enabled])
dnl conky_CFLAGS="$conky_CFLAGS $OPENMP_CFLAGS"
dnl else
dnl want_openmp=no
dnl fi
dnl ])
dnl fi
dnl
dnl Check doc stuff

View File

@ -337,11 +337,13 @@
</command>
<option>function_name [function arguments]</option>
</term>
<listitem>This function, if defined, will be called by
Conky through each iteration after drawing to the window.
Requires X support. Takes any number of optional arguments.
<para /></listitem>
<listitem>
<para>This function, if defined, will be called by
Conky through each iteration after drawing to the
window. Requires X support. Takes any number of
optional arguments. Use this hook for drawing things on
top of what Conky draws.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
@ -350,11 +352,13 @@
</command>
<option>function_name [function arguments]</option>
</term>
<listitem>This function, if defined, will be called by
Conky through each iteration before drawing to the window.
Requires X support. Takes any number of optional arguments.
<para /></listitem>
<listitem>
<para>This function, if defined, will be called by
Conky through each iteration before drawing to the
window. Requires X support. Takes any number of
optional arguments. Use this hook for drawing things on
top of what Conky draws.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>

View File

@ -188,7 +188,7 @@
&config_settings;
</refsect1>
<refsect1>
<title>Variables</title>
<title>Objects/Variables</title>
<para>Colours are parsed using XParsecolor(), there might be a
list of them: /usr/share/X11/rgb.txt.
Colour can be also in

View File

@ -99,6 +99,30 @@
build date, and architecture.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<command>
<option>conky_build_date</option>
</command>
<option>string</option>
</term>
<listitem>
<para>A string containing the build date for this
particular instance of Conky.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<command>
<option>conky_build_arch</option>
</command>
<option>string</option>
</term>
<listitem>
<para>A string containing the build architecture for
this particular instance of Conky.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<command>

View File

@ -655,8 +655,8 @@
<option>desktop</option>
</command>
</term>
<listitem>Number of the desktop on which conky is running
or the message "Not running in X" if this is the case.
<listitem>Number of the desktop on which conky is running
or the message "Not running in X" if this is the case.
<para /></listitem>
</varlistentry>
<varlistentry>
@ -665,8 +665,8 @@
<option>desktop_name</option>
</command>
</term>
<listitem>Name of the desktop on which conky is running
or the message "Not running in X" if this is the case.
<listitem>Name of the desktop on which conky is running or
the message "Not running in X" if this is the case.
<para /></listitem>
</varlistentry>
<varlistentry>
@ -675,8 +675,8 @@
<option>desktop_number</option>
</command>
</term>
<listitem>Number of desktops or the message "Not running
in X" if this is the case.
<listitem>Number of desktops or the message "Not running in
X" if this is the case.
<para /></listitem>
</varlistentry>
<varlistentry>
@ -2151,8 +2151,8 @@
<option>monitor</option>
</command>
</term>
<listitem>Number of the monitor on which conky is running
or the message "Not running in X" if this is the case.
<listitem>Number of the monitor on which conky is running
or the message "Not running in X" if this is the case.
<para /></listitem>
</varlistentry>
<varlistentry>
@ -2161,8 +2161,8 @@
<option>monitor_number</option>
</command>
</term>
<listitem>Number of monitors or the message "Not running
in X" if this is the case.
<listitem>Number of monitors or the message "Not running in
X" if this is the case.
<para /></listitem>
</varlistentry>
<varlistentry>
@ -3363,10 +3363,10 @@
into the cloud_cover one</option>
</member>
</simplelist>
<para>'delay_in_minutes' (optional, default 30) cannot be
lower than 30 min.</para>
<para>Note that these variables are still EXPERIMENTAL and
can be subject to many future changes.</para>
<para>'delay_in_minutes' (optional, default 30) cannot
be lower than 30 min.</para>
<para>Note that these variables are still EXPERIMENTAL
and can be subject to many future changes.</para>
</listitem>
</varlistentry>
<varlistentry>

View File

@ -111,7 +111,7 @@ unsigned long *do_gradient(int width, unsigned long first_colour, unsigned long
greendiff = abs(green1 - green2);
bluediff = abs(blue1 - blue2);
#ifdef HAVE_OPENMP
#pragma omp parallel for
#pragma omp parallel for schedule(dynamic,10) shared(colours)
#endif /* HAVE_OPENMP */
for (i = 0; i < width; i++) {
int red3 = 0, green3 = 0, blue3 = 0; // colour components

View File

@ -366,7 +366,7 @@ void update_stuff(void)
* updated */
#ifdef HAVE_OPENMP
#pragma omp parallel for
#pragma omp parallel for schedule(dynamic,10)
#endif /* HAVE_OPENMP */
for (i = 0; i < 16; i++) {
if (netstats[i].dev) {

View File

@ -304,7 +304,7 @@ struct information info;
char *current_config;
/* set to 1 if you want all text to be in uppercase */
static unsigned int stuff_in_upper_case;
static unsigned int stuff_in_uppercase;
/* Run how many times? */
static unsigned long total_run_times;
@ -450,10 +450,14 @@ int check_contains(char *f, char *s)
}
#ifdef X11
#define SECRIT_MULTILINE_CHAR '\x02'
static inline int calc_text_width(const char *s, int l)
{
if ((output_methods & TO_X) == 0)
if ((output_methods & TO_X) == 0) {
return 0;
}
#ifdef XFT
if (use_xft) {
XGlyphInfo gi;
@ -479,27 +483,24 @@ static inline int calc_text_width(const char *s, int l)
static char *text_buffer;
#ifdef X11
static unsigned int special_index; /* used when drawing */
#endif /* X11 */
/* quite boring functions */
static inline void for_each_line(char *b, void f(char *))
static inline void for_each_line(char *b, int f(char *, int))
{
char *ps, *pe;
int special_index = 0; /* specials index */
for (ps = b, pe = b; *pe; pe++) {
if (*pe == '\n') {
*pe = '\0';
f(ps);
special_index = f(ps, special_index);
*pe = '\n';
ps = pe + 1;
}
}
if (ps < pe) {
f(ps);
f(ps, special_index);
}
}
@ -3679,6 +3680,22 @@ static inline double get_barnum(char *buf)
return barnum;
}
/* substitutes all occurrences of '\n' with SECRIT_MULTILINE_CHAR, which allows
* multi-line objects like $exec work with $align[rc] and friends
*/
void substitute_newlines(char *p, long l)
{
char *s = p;
if (l < 0) return;
while (p && *p && p < s + l) {
if (*p == '\n') {
/* only substitute if it's not the last newline */
*p = SECRIT_MULTILINE_CHAR;
}
p++;
}
}
static void generate_text_internal(char *p, int p_max_size,
struct text_object root, struct information *cur)
{
@ -3699,7 +3716,8 @@ static void generate_text_internal(char *p, int p_max_size,
p[0] = 0;
obj = root.next;
while (obj && p_max_size > 0) {
needed = 0; // reset for top stuff
char multiline = 0; /* set to 1 if we have a multi-line object */
needed = 0; /* reset for top stuff */
/* IFBLOCK jumping algorithm
*
@ -4193,14 +4211,13 @@ static void generate_text_internal(char *p, int p_max_size,
}
#if defined(__linux__)
OBJ(addrs) {
if(NULL != obj->data.net->addrs && strlen(obj->data.net->addrs) > 2)
{
if (NULL != obj->data.net->addrs && strlen(obj->data.net->addrs) > 2) {
obj->data.net->addrs[strlen(obj->data.net->addrs) - 2] = 0; /* remove ", " from end of string */
strcpy(p, obj->data.net->addrs);
} else {
strcpy(p, "0.0.0.0");
}
else
strcpy(p, "0.0.0.0");
}
}
#endif /* __linux__ */
#if defined(IMLIB2) && defined(X11)
OBJ(image) {
@ -4211,10 +4228,12 @@ static void generate_text_internal(char *p, int p_max_size,
#endif /* IMLIB2 */
OBJ(eval) {
evaluate(obj->data.s, p);
multiline = 1;
}
OBJ(exec) {
read_exec(obj->data.s, p, text_buffer_size);
remove_deleted_chars(p);
multiline = 1;
}
OBJ(execp) {
struct information *tmp_info;
@ -4228,6 +4247,7 @@ static void generate_text_internal(char *p, int p_max_size,
free_text_objects(&subroot, 1);
free(tmp_info);
multiline = 1;
}
#ifdef X11
OBJ(execgauge) {
@ -4364,6 +4384,7 @@ static void generate_text_internal(char *p, int p_max_size,
obj->data.execi.last_update = current_update_time;
}
snprintf(p, text_buffer_size, "%s", obj->data.execi.buffer);
multiline = 1;
}
OBJ(execpi) {
struct text_object subroot;
@ -4392,6 +4413,7 @@ static void generate_text_internal(char *p, int p_max_size,
}
free_text_objects(&subroot, 1);
free(tmp_info);
multiline = 1;
}
OBJ(texeci) {
if (!obj->data.texeci.p_timed_thread) {
@ -4411,6 +4433,7 @@ static void generate_text_internal(char *p, int p_max_size,
snprintf(p, text_buffer_size, "%s", obj->data.texeci.buffer);
timed_thread_unlock(obj->data.texeci.p_timed_thread);
}
multiline = 1;
}
#endif /* HAVE_POPEN */
OBJ(imap_unseen) {
@ -4684,12 +4707,14 @@ static void generate_text_internal(char *p, int p_max_size,
snprintf(p, p_max_size, "%s", str);
free(str);
}
multiline = 1;
}
OBJ(lua_parse) {
char *str = llua_getstring(obj->data.s);
if (str) {
evaluate(str, p);
}
multiline = 1;
}
OBJ(lua_bar) {
double per;
@ -5746,7 +5771,7 @@ static void generate_text_internal(char *p, int p_max_size,
OBJ(to_bytes) {
char buf[max_user_text];
long long bytes;
char unit[16]; //16 because we can also have long names (like mega-bytes)
char unit[16]; // 16 because we can also have long names (like mega-bytes)
generate_text_internal(buf, max_user_text, *obj->sub, cur);
if(sscanf(buf, "%lli%s", &bytes, unit) == 2 && strlen(unit) < 16){
@ -5849,12 +5874,12 @@ static void generate_text_internal(char *p, int p_max_size,
}
strcat(p, "\n");
#ifdef HAVE_OPENMP
#pragma omp parallel for
#pragma omp parallel for schedule(dynamic,10)
#endif /* HAVE_OPENMP */
for(i=0; i<2; i++) if(current[i]) current[i]=current[i]->next;
}
#ifdef HAVE_OPENMP
#pragma omp parallel for
#pragma omp parallel for schedule(dynamic,10)
#endif /* HAVE_OPENMP */
for(i=0; i<2; i++) {
while(ll_rows[i] != NULL) {
@ -5996,6 +6021,9 @@ static void generate_text_internal(char *p, int p_max_size,
a = outptr - p;
}
#endif /* HAVE_ICONV */
if (multiline) {
substitute_newlines(p, a - 2);
}
p += a;
p_max_size -= a;
}
@ -6046,7 +6074,7 @@ static void generate_text(void)
generate_text_internal(p, max_user_text, global_root_object, cur);
if (stuff_in_upper_case) {
if (stuff_in_uppercase) {
char *tmp_p;
tmp_p = text_buffer;
@ -6064,7 +6092,6 @@ static void generate_text(void)
}
last_update_time = current_update_time;
total_updates++;
// free(p);
}
static inline int get_string_width(const char *s)
@ -6077,7 +6104,7 @@ static inline int get_string_width(const char *s)
return strlen(s);
}
static inline int get_string_width_special(char *s)
static int get_string_width_special(char *s, int special_index)
{
#ifdef X11
char *p, *final;
@ -6086,7 +6113,7 @@ static inline int get_string_width_special(char *s)
long i;
if ((output_methods & TO_X) == 0) {
#endif
#endif /* X11 */
return (s) ? strlen(s) : 0;
#ifdef X11
}
@ -6111,6 +6138,9 @@ static inline int get_string_width_special(char *s)
width += specials[special_index + idx].width;
}
idx++;
} else if (*p == SECRIT_MULTILINE_CHAR) {
*p = 0;
break;
} else {
p++;
}
@ -6124,7 +6154,7 @@ static inline int get_string_width_special(char *s)
}
#ifdef X11
static void text_size_updater(char *s);
static int text_size_updater(char *s, int special_index);
int last_font_height;
static void update_text_area(void)
@ -6140,7 +6170,6 @@ static void update_text_area(void)
{
text_width = minimum_width;
text_height = 0;
special_index = 0;
last_font_height = font_height();
for_each_line(text_buffer, text_size_updater);
text_width += 1;
@ -6243,13 +6272,13 @@ static int draw_mode; /* FG, BG or OUTLINE */
#ifdef X11
static long current_color;
static void text_size_updater(char *s)
static int text_size_updater(char *s, int special_index)
{
int w = 0;
char *p;
if ((output_methods & TO_X) == 0)
return;
return 0;
/* get string widths and skip specials */
p = s;
while (*p) {
@ -6293,6 +6322,14 @@ static void text_size_updater(char *s)
special_index++;
s = p + 1;
} else if (*p == SECRIT_MULTILINE_CHAR) {
int lw;
*p = '\0';
lw = get_string_width(s);
*p = SECRIT_MULTILINE_CHAR;
s = p + 1;
w = lw > w ? lw : w;
text_height += last_font_height;
}
p++;
}
@ -6306,6 +6343,7 @@ static void text_size_updater(char *s)
text_height += last_font_height;
last_font_height = font_height();
return special_index;
}
static inline void set_foreground_color(long c)
@ -6418,36 +6456,38 @@ static void draw_string(const char *s)
memcpy(tmpstring1, s, text_buffer_size);
}
static void draw_line(char *s)
#ifdef X11
int draw_each_line_inner(char *s, int special_index, const int last_special_applied)
{
#ifdef X11
char *p;
int font_h = font_height();
int cur_y_add = 0;
int font_h;
char *tmp_str;
char *recurse = 0;
char *p = s;
int last_special_needed = -1;
if ((output_methods & TO_X) == 0) {
#endif /* X11 */
draw_string(s);
return;
#ifdef X11
}
cur_x = text_start_x;
cur_y += font_ascent();
font_h = font_height();
/* find specials and draw stuff */
p = s;
while (*p) {
if (*p == SPECIAL_CHAR) {
if (*p == SECRIT_MULTILINE_CHAR) {
/* special newline marker for multi-line objects */
recurse = p + 1;
*p = '\0';
break;
}
if (*p == SPECIAL_CHAR || last_special_applied > -1) {
int w = 0;
/* draw string before special */
*p = '\0';
draw_string(s);
*p = SPECIAL_CHAR;
s = p + 1;
/* draw string before special, unless we're dealing multi-line
* specials */
if (last_special_applied > -1) {
special_index = last_special_applied;
} else {
*p = '\0';
draw_string(s);
*p = SPECIAL_CHAR;
s = p + 1;
}
/* draw special */
switch (specials[special_index].type) {
case HORIZONTAL_LINE:
@ -6670,6 +6710,7 @@ static void draw_line(char *s)
char *tmp_hour_str;
char *tmp_min_str;
char *tmp_sec_str;
char *tmp_str;
unsigned short int timeunits;
if (seconds != 0) {
timeunits = seconds / 86400; seconds %= 86400;
@ -6711,6 +6752,7 @@ static void draw_line(char *s)
if (show_graph_scale && (specials[special_index].show_scale == 1)) {
int tmp_x = cur_x;
int tmp_y = cur_y;
char *tmp_str;
cur_x += font_ascent() / 2;
cur_y += font_h / 2;
tmp_str = (char *)
@ -6762,6 +6804,7 @@ static void draw_line(char *s)
case OFFSET:
w += specials[special_index].arg;
last_special_needed = special_index;
break;
case VOFFSET:
@ -6772,6 +6815,7 @@ static void draw_line(char *s)
if (specials[special_index].arg >= 0) {
cur_x = (int) specials[special_index].arg;
}
last_special_needed = special_index;
break;
case TAB:
@ -6783,6 +6827,7 @@ static void draw_line(char *s)
step = 10;
}
w = step - (cur_x - text_start_x - start) % step;
last_special_needed = special_index;
break;
}
@ -6791,7 +6836,7 @@ static void draw_line(char *s)
/* TODO: add back in "+ window.border_inner_margin" to the end of
* this line? */
int pos_x = text_start_x + text_width -
get_string_width_special(s);
get_string_width_special(s, special_index);
/* printf("pos_x %i text_start_x %i text_width %i cur_x %i "
"get_string_width(p) %i gap_x %i "
@ -6803,13 +6848,15 @@ static void draw_line(char *s)
if (pos_x > specials[special_index].arg && pos_x > cur_x) {
cur_x = pos_x - specials[special_index].arg;
}
last_special_needed = special_index;
break;
}
case ALIGNC:
{
int pos_x = (text_width) / 2 - get_string_width_special(s) /
2 - (cur_x - text_start_x);
int pos_x = (text_width) / 2 - get_string_width_special(s,
special_index) / 2 - (cur_x -
text_start_x);
/* int pos_x = text_start_x + text_width / 2 -
get_string_width_special(s) / 2; */
@ -6821,24 +6868,41 @@ static void draw_line(char *s)
if (pos_x > specials[special_index].arg) {
w = pos_x - specials[special_index].arg;
}
last_special_needed = special_index;
break;
}
}
cur_x += w;
special_index++;
if (special_index != last_special_applied) special_index++;
}
p++;
}
if (cur_y_add > 0) {
cur_y += cur_y_add;
}
cur_y += cur_y_add;
draw_string(s);
cur_y += font_descent();
if (recurse && *recurse) {
special_index = draw_each_line_inner(recurse, special_index, last_special_applied);
*(recurse - 1) = SECRIT_MULTILINE_CHAR;
}
return special_index;
}
#endif /* X11 */
static int draw_line(char *s, int special_index)
{
#ifdef X11
if ((output_methods & TO_X) == 0) {
#endif /* X11 */
draw_string(s);
return 0;
#ifdef X11
}
/* find specials and draw stuff */
return draw_each_line_inner(s, special_index, -1);
#endif /* X11 */
}
@ -6871,7 +6935,6 @@ static void draw_text(void)
}
/* draw text */
special_index = 0;
}
setup_fonts();
#endif /* X11 */
@ -7755,7 +7818,7 @@ static void set_default_configurations(void)
no_buffers = 1;
update_interval = 3.0;
info.music_player_interval = 1.0;
stuff_in_upper_case = 0;
stuff_in_uppercase = 0;
info.users.number = 1;
#ifdef TCP_PORT_MONITOR
@ -8527,7 +8590,7 @@ static void load_config_file(const char *f)
}
}
CONF("uppercase") {
stuff_in_upper_case = string_to_bool(value);
stuff_in_uppercase = string_to_bool(value);
}
CONF("max_specials") {
if (value) {
@ -8892,7 +8955,7 @@ static void load_config_file_x11(const char *f)
}
#endif
CONF("text") {
//initialize X11 if nothing X11-related is mentioned before TEXT (and if X11 is the default outputmethod)
/* initialize X11 if nothing X11-related is mentioned before TEXT (and if X11 is the default outputmethod) */
if(output_methods & TO_X) {
X11_initialisation();
}
@ -9359,3 +9422,4 @@ static void signal_handler(int sig)
* and do any signal processing there, NOT here. */
g_signal_pending = sig;
}

View File

@ -420,7 +420,7 @@ void update_net_stats(void)
curtmp2 = 0;
// get an average
#ifdef HAVE_OPENMP
#pragma omp parallel for reduction(+:curtmp1, curtmp2)
#pragma omp parallel for reduction(+:curtmp1, curtmp2) schedule(dynamic,10)
#endif /* HAVE_OPENMP */
for (i = 0; i < info.net_avg_samples; i++) {
curtmp1 = curtmp1 + ns->net_rec[i];
@ -436,7 +436,7 @@ void update_net_stats(void)
ns->trans_speed = curtmp2 / (double) info.net_avg_samples;
if (info.net_avg_samples > 1) {
#ifdef HAVE_OPENMP
#pragma omp parallel for
#pragma omp parallel for schedule(dynamic,10)
#endif /* HAVE_OPENMP */
for (i = info.net_avg_samples; i > 1; i--) {
ns->net_rec[i - 1] = ns->net_rec[i - 2];
@ -687,7 +687,7 @@ inline static void update_stat(void)
(float) (cpu[idx].cpu_total - cpu[idx].cpu_last_total);
curtmp = 0;
#ifdef HAVE_OPENMP
#pragma omp parallel for reduction(+:curtmp)
#pragma omp parallel for reduction(+:curtmp) schedule(dynamic,10)
#endif /* HAVE_OPENMP */
for (i = 0; i < info.cpu_avg_samples; i++) {
curtmp = curtmp + cpu[idx].cpu_val[i];
@ -707,7 +707,7 @@ inline static void update_stat(void)
cpu[idx].cpu_last_total = cpu[idx].cpu_total;
cpu[idx].cpu_last_active_total = cpu[idx].cpu_active_total;
#ifdef HAVE_OPENMP
#pragma omp parallel for
#pragma omp parallel for schedule(dynamic,10)
#endif /* HAVE_OPENMP */
for (i = info.cpu_avg_samples - 1; i > 0; i--) {
cpu[idx].cpu_val[i] = cpu[idx].cpu_val[i - 1];
@ -823,7 +823,7 @@ static int get_first_file_in_a_directory(const char *dir, char *s, int *rep)
s[255] = '\0';
#ifdef HAVE_OPENMP
#pragma omp parallel for
#pragma omp parallel for schedule(dynamic,10)
#endif /* HAVE_OPENMP */
for (i = 0; i < n; i++) {
free(namelist[i]);
@ -1492,7 +1492,7 @@ void init_batteries(void)
return;
}
#ifdef HAVE_OPENMP
#pragma omp parallel for
#pragma omp parallel for schedule(dynamic,10)
#endif /* HAVE_OPENMP */
for (idx = 0; idx < MAX_BATTERY_COUNT; idx++) {
batteries[idx][0] = '\0';

View File

@ -84,6 +84,12 @@ void llua_init(void)
lua_pushstring(lua_L, VERSION);
lua_setglobal(lua_L, "conky_version");
lua_pushstring(lua_L, BUILD_DATE);
lua_setglobal(lua_L, "conky_build_date");
lua_pushstring(lua_L, BUILD_ARCH);
lua_setglobal(lua_L, "conky_build_arch");
lua_pushstring(lua_L, current_config);
lua_setglobal(lua_L, "conky_config");

View File

@ -371,7 +371,7 @@ void new_bar_in_shell(char* buffer, int buf_max_size, double usage, int width)
int i = 0, j = 0, scaledusage = round_to_int( usage * width / 100);
#ifdef HAVE_OPENMP
#pragma omp parallel for
#pragma omp parallel for schedule(dynamic,10)
#endif /* HAVE_OPENMP */
for(i=0; i<(int)scaledusage; i++) {
*(buffer+i)='#';
@ -379,7 +379,7 @@ void new_bar_in_shell(char* buffer, int buf_max_size, double usage, int width)
/* gcc seems to think i is not initialized properly :/ */
j = i;
#ifdef HAVE_OPENMP
#pragma omp parallel for
#pragma omp parallel for schedule(dynamic,10)
#endif /* HAVE_OPENMP */
for(i = j/* cheats */; i < width; i++) {
*(buffer+i)='_';

View File

@ -38,7 +38,7 @@
#define TEMPGRAD "-t"
enum special_types {
HORIZONTAL_LINE,
HORIZONTAL_LINE = 1,
STIPPLED_HR,
BAR,
FG,