From: <nga...@us...> - 2008-06-19 22:30:43
|
Revision: 1172 http://conky.svn.sourceforge.net/conky/?rev=1172&view=rev Author: ngarofil Date: 2008-06-19 15:30:39 -0700 (Thu, 19 Jun 2008) Log Message: ----------- changes from r1167 to r1171 added to branch conky1-extra after a tiny modification Modified Paths: -------------- branches/conky1-extra/doc/variables.xml branches/conky1-extra/src/conky.c branches/conky1-extra/src/conky.h branches/conky1-extra/src/diskio.c branches/conky1-extra/src/freebsd.c Modified: branches/conky1-extra/doc/variables.xml =================================================================== --- branches/conky1-extra/doc/variables.xml 2008-06-19 19:59:30 UTC (rev 1171) +++ branches/conky1-extra/doc/variables.xml 2008-06-19 22:30:39 UTC (rev 1172) @@ -5,7 +5,7 @@ <option>interface</option> </term> <listitem> - IP address for an interface + IP address for an interface, or "No Address" if no address is assigned. <para></para></listitem> </varlistentry> Modified: branches/conky1-extra/src/conky.c =================================================================== --- branches/conky1-extra/src/conky.c 2008-06-19 19:59:30 UTC (rev 1171) +++ branches/conky1-extra/src/conky.c 2008-06-19 22:30:39 UTC (rev 1172) @@ -4336,6 +4336,29 @@ } } +static inline void format_media_player_time(char *buf, const int size, + int seconds) +{ + int days, hours, minutes; + + days = seconds / (24 * 60 * 60); + seconds %= (24 * 60 * 60); + hours = seconds / (60 * 60); + seconds %= (60 * 60); + minutes = seconds / 60; + seconds %= 60; + + if (days > 0) { + snprintf(buf, size, "%i days %i:%02i:%02i", days, + hours, minutes, seconds); + } else if (hours > 0) { + snprintf(buf, size, "%i:%02i:%02i", hours, minutes, + seconds); + } else { + snprintf(buf, size, "%i:%02i", minutes, seconds); + } +} + static void generate_text_internal(char *p, int p_max_size, struct text_object *objs, unsigned int object_count, struct information *cur) @@ -4715,7 +4738,7 @@ (obj->data.diskio->current / update_interval) * 1024LL, p, p_max_size, "diskio"); } else { - human_readable(diskio_value * 1024LL, p, p_max_size, + human_readable(info.diskio_value * 1024LL, p, p_max_size, "diskio"); } } @@ -4724,7 +4747,7 @@ human_readable((obj->data.diskio->current_write / update_interval) * 1024LL, p, p_max_size, "diskio_write"); } else { - human_readable(diskio_write_value * 1024LL, p, p_max_size, + human_readable(info.diskio_write_value * 1024LL, p, p_max_size, "diskio_write"); } } @@ -4733,7 +4756,7 @@ human_readable((obj->data.diskio->current_read / update_interval) * 1024LL, p, p_max_size, "diskio_read"); } else { - human_readable(diskio_read_value * 1024LL, p, p_max_size, + human_readable(info.diskio_read_value * 1024LL, p, p_max_size, "diskio_read"); } } @@ -4742,7 +4765,7 @@ new_graph(p, obj->a, obj->b, obj->c, obj->d, obj->data.diskio->current, obj->e, 1, obj->showaslog); } else { - new_graph(p, obj->a, obj->b, obj->c, obj->d, diskio_value, + new_graph(p, obj->a, obj->b, obj->c, obj->d, info.diskio_value, obj->e, 1, obj->showaslog); } } @@ -4752,7 +4775,7 @@ obj->data.diskio->current_read, obj->e, 1, obj->showaslog); } else { new_graph(p, obj->a, obj->b, obj->c, obj->d, - diskio_read_value, obj->e, 1, obj->showaslog); + info.diskio_read_value, obj->e, 1, obj->showaslog); } } OBJ(diskiograph_write) { @@ -4761,7 +4784,7 @@ obj->data.diskio->current_write, obj->e, 1, obj->showaslog); } else { new_graph(p, obj->a, obj->b, obj->c, obj->d, - diskio_write_value, obj->e, 1, obj->showaslog); + info.diskio_write_value, obj->e, 1, obj->showaslog); } } OBJ(downspeed) { @@ -4788,11 +4811,18 @@ } #ifdef HAVE_POPEN OBJ(addr) { - snprintf(p, p_max_size, "%u.%u.%u.%u", - obj->data.net->addr.sa_data[2] & 255, - obj->data.net->addr.sa_data[3] & 255, - obj->data.net->addr.sa_data[4] & 255, - obj->data.net->addr.sa_data[5] & 255); + if ((obj->data.net->addr.sa_data[2] & 255) == 0 + && (obj->data.net->addr.sa_data[3] & 255) == 0 + && (obj->data.net->addr.sa_data[4] & 255) == 0 + && (obj->data.net->addr.sa_data[5] & 255) == 0) { + snprintf(p, p_max_size, "No Address"); + } else { + snprintf(p, p_max_size, "%u.%u.%u.%u", + obj->data.net->addr.sa_data[2] & 255, + obj->data.net->addr.sa_data[3] & 255, + obj->data.net->addr.sa_data[4] & 255, + obj->data.net->addr.sa_data[5] & 255); + } } #if defined(__linux__) OBJ(addrs) { @@ -5835,58 +5865,10 @@ snprintf(p, p_max_size, "%s", cur->mpd.status); } OBJ(mpd_elapsed) { - int days = 0, hours = 0, minutes = 0, seconds = 0; - int tmp = cur->mpd.elapsed; - - while (tmp >= 86400) { - tmp -= 86400; - days++; - } - while (tmp >= 3600) { - tmp -= 3600; - hours++; - } - while (tmp >= 60) { - tmp -= 60; - minutes++; - } - seconds = tmp; - if (days > 0) { - snprintf(p, p_max_size, "%i days %i:%02i:%02i", days, - hours, minutes, seconds); - } else if (hours > 0) { - snprintf(p, p_max_size, "%i:%02i:%02i", hours, minutes, - seconds); - } else { - snprintf(p, p_max_size, "%i:%02i", minutes, seconds); - } + format_media_player_time(p, p_max_size, cur->mpd.elapsed); } OBJ(mpd_length) { - int days = 0, hours = 0, minutes = 0, seconds = 0; - int tmp = cur->mpd.length; - - while (tmp >= 86400) { - tmp -= 86400; - days++; - } - while (tmp >= 3600) { - tmp -= 3600; - hours++; - } - while (tmp >= 60) { - tmp -= 60; - minutes++; - } - seconds = tmp; - if (days > 0) { - snprintf(p, p_max_size, "%i days %i:%02i:%02i", days, - hours, minutes, seconds); - } else if (hours > 0) { - snprintf(p, p_max_size, "%i:%02i:%02i", hours, minutes, - seconds); - } else { - snprintf(p, p_max_size, "%i:%02i", minutes, seconds); - } + format_media_player_time(p, p_max_size, cur->mpd.length); } OBJ(mpd_percent) { spaced_print(p, p_max_size, "%*d", 4, "mpd_percent", @@ -6516,9 +6498,9 @@ update_stuff(); /* fix diskio rates to b/s (use update_interval */ - diskio_read_value = diskio_read_value / update_interval; - diskio_write_value = diskio_write_value / update_interval; - diskio_value = diskio_value / update_interval; + info.diskio_read_value /= update_interval; + info.diskio_write_value /= update_interval; + info.diskio_value /= update_interval; /* add things to the buffer */ @@ -6825,8 +6807,8 @@ /* This code looks for tabs in the text and coverts them to spaces. * The trick is getting the correct number of spaces, and not going * over the window's size without forcing the window larger. */ - for (i = 0; i < (int)text_buffer_size; i++) { - if (tmpstring1[i] == '\t') { // 9 is ascii tab + for (i = 0; i < (int) text_buffer_size; i++) { + if (tmpstring1[i] == '\t') { i2 = 0; for (i2 = 0; i2 < (8 - (1 + pos) % 8) && added <= max; i2++) { /* guard against overrun */ @@ -6835,11 +6817,9 @@ } pos += i2; } else { - if (tmpstring1[i] != 9) { - /* guard against overrun */ - tmpstring2[MIN(pos, (int)text_buffer_size - 1)] = tmpstring1[i]; - pos++; - } + /* guard against overrun */ + tmpstring2[MIN(pos, (int) text_buffer_size - 1)] = tmpstring1[i]; + pos++; } } #ifdef X11 @@ -8832,6 +8812,36 @@ } } +static void print_help(const char *prog_name) { + printf("Usage: %s [OPTION]...\n" + "Conky is a system monitor that renders text on desktop or to own transparent\n" + "window. Command line options will override configurations defined in config\n" + "file.\n" + " -v, --version version\n" + " -q, --quiet quiet mode\n" + " -c, --config=FILE config file to load\n" + " -d, --daemonize daemonize, fork to background\n" + " -h, --help help\n" +#ifdef X11 + " -a, --alignment=ALIGNMENT text alignment on screen, {top,bottom,middle}_{left,right,middle}\n" + " -f, --font=FONT font to use\n" +#ifdef OWN_WINDOW + " -o, --own-window create own window to draw\n" +#endif +#ifdef HAVE_XDBE + " -b, --double-buffer double buffer (prevents flickering)\n" +#endif + " -w, --window-id=WIN_ID window id to draw\n" + " -x X x position\n" + " -y Y y position\n" +#endif /* X11 */ + " -t, --text=TEXT text to render, remember single quotes, like -t '$uptime'\n" + " -u, --interval=SECS update interval\n" + " -i COUNT number of times to update Conky (and quit)\n", + prog_name + ); +} + /* : means that character before that takes an argument */ static const char *getopt_string = "vVqdt:u:i:hc:" #ifdef X11 @@ -8925,33 +8935,7 @@ freopen("/dev/null", "w", stderr); break; case 'h': - printf("Usage: %s [OPTION]...\n" - "Conky is a system monitor that renders text on desktop or to own transparent\n" - "window. Command line options will override configurations defined in config\n" - "file.\n" - " -v, --version version\n" - " -q, --quiet quiet mode\n" - " -c, --config=FILE config file to load\n" - " -d, --daemonize daemonize, fork to background\n" - " -h, --help help\n" -#ifdef X11 - " -a, --alignment=ALIGNMENT text alignment on screen, {top,bottom,middle}_{left,right,middle}\n" - " -f, --font=FONT font to use\n" -#ifdef OWN_WINDOW - " -o, --own-window create own window to draw\n" -#endif -#ifdef HAVE_XDBE - " -b, --double-buffer double buffer (prevents flickering)\n" -#endif - " -w, --window-id=WIN_ID window id to draw\n" - " -x X x position\n" - " -y Y y position\n" -#endif /* X11 */ - " -t, --text=TEXT text to render, remember single quotes, like -t '$uptime'\n" - " -u, --interval=SECS update interval\n" - " -i COUNT number of times to update Conky (and quit)\n", - argv[0] - ); + print_help(argv[0]); return 0; #ifdef X11 case 'w': Modified: branches/conky1-extra/src/conky.h =================================================================== --- branches/conky1-extra/src/conky.h 2008-06-19 19:59:30 UTC (rev 1171) +++ branches/conky1-extra/src/conky.h 2008-06-19 22:30:39 UTC (rev 1172) @@ -131,10 +131,6 @@ char **ns_list; }; -unsigned int diskio_value; -unsigned int diskio_read_value; -unsigned int diskio_write_value; - struct fs_stat { char path[DEFAULT_TEXT_BUFFER_SIZE]; char type[DEFAULT_TEXT_BUFFER_SIZE]; @@ -350,6 +346,10 @@ #endif short kflags; /* kernel settings, see enum KFLAG */ + + unsigned int diskio_value; + unsigned int diskio_read_value; + unsigned int diskio_write_value; }; enum { Modified: branches/conky1-extra/src/diskio.c =================================================================== --- branches/conky1-extra/src/diskio.c 2008-06-19 19:59:30 UTC (rev 1171) +++ branches/conky1-extra/src/diskio.c 2008-06-19 22:30:39 UTC (rev 1172) @@ -145,7 +145,7 @@ int tot, tot_read, tot_write; if (!(fp = open_file("/proc/diskstats", &rep))) { - diskio_value = 0; + info.diskio_value = 0; return; } @@ -222,9 +222,9 @@ last_read = current_read; last_write = current_write; - diskio_value = tot; - diskio_read_value = tot_read; - diskio_write_value = tot_write; + info.diskio_value = tot; + info.diskio_read_value = tot_read; + info.diskio_write_value = tot_write; fclose(fp); } Modified: branches/conky1-extra/src/freebsd.c =================================================================== --- branches/conky1-extra/src/freebsd.c 2008-06-19 19:59:30 UTC (rev 1171) +++ branches/conky1-extra/src/freebsd.c 2008-06-19 22:30:39 UTC (rev 1172) @@ -706,9 +706,9 @@ * That's why it is better to return 0 first time; */ if (diskio_setup == 0) { diskio_setup = 1; - diskio_value = 0; + info.diskio_value = 0; } else { - diskio_value = (unsigned int) ((diskio_current - diskio_prev) / 1024); + info.diskio_value = (unsigned int) ((diskio_current - diskio_prev) / 1024); } diskio_prev = diskio_current; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |