Hello community,

here is the log from the commit of package conky for openSUSE:Factory checked 
in at 2020-07-28 17:26:10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/conky (Old)
 and      /work/SRC/openSUSE:Factory/.conky.new.3592 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "conky"

Tue Jul 28 17:26:10 2020 rev:31 rq:823080 version:1.11.6

Changes:
--------
--- /work/SRC/openSUSE:Factory/conky/conky.changes      2020-04-14 
16:17:44.535401286 +0200
+++ /work/SRC/openSUSE:Factory/.conky.new.3592/conky.changes    2020-07-28 
17:27:17.430037624 +0200
@@ -1,0 +2,12 @@
+Tue Jul 28 06:55:32 UTC 2020 - Michael Vetter <mvet...@suse.com>
+
+- Update to 1.11.6:
+  * Fix negative RAM usage (#878)
+  * Add nvidia driverversion variable (#889)
+  * properly format PIDs longer than 5 digits
+  * linux: update statistics based on newer kernel interface (#859)
+  * Fix segfault on pulseaudio tunnel sinks 
+  * Added lower_case and upper_case commands
+- Remove fix-negative-memory.patch: upstreamed
+
+-------------------------------------------------------------------

Old:
----
  conky-1.11.5.tar.gz
  fix-negative-memory.patch

New:
----
  conky-1.11.6.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ conky.spec ++++++
--- /var/tmp/diff_new_pack.F4P3og/_old  2020-07-28 17:27:20.342040928 +0200
+++ /var/tmp/diff_new_pack.F4P3og/_new  2020-07-28 17:27:20.342040928 +0200
@@ -25,7 +25,7 @@
 %bcond_with    xmms2
 %endif
 Name:           conky
-Version:        1.11.5
+Version:        1.11.6
 Release:        0
 Summary:        A System Monitor
 License:        GPL-3.0-or-later AND LGPL-3.0-or-later AND MIT
@@ -37,7 +37,6 @@
 Source3:        README.SUSE
 Patch1:         conky-1.10.1-avoid-git.patch
 Patch2:         conky.timestamp.patch
-Patch3:         fix-negative-memory.patch
 BuildRequires:  cmake
 BuildRequires:  docbook-xsl-stylesheets
 BuildRequires:  docbook2x

++++++ conky-1.10.1-avoid-git.patch ++++++
--- /var/tmp/diff_new_pack.F4P3og/_old  2020-07-28 17:27:20.378040970 +0200
+++ /var/tmp/diff_new_pack.F4P3og/_new  2020-07-28 17:27:20.378040970 +0200
@@ -1,6 +1,6 @@
-diff -urEbw conky-1.11.3/cmake/Conky.cmake conky-1.11.3.new/cmake/Conky.cmake
---- conky-1.11.3/cmake/Conky.cmake     2019-02-23 03:12:15.000000000 +0100
-+++ conky-1.11.3.new/cmake/Conky.cmake 2019-05-27 13:28:10.901251709 +0200
+diff -urEbw conky-1.11.6/cmake/Conky.cmake conky-1.11.6.new/cmake/Conky.cmake
+--- conky-1.11.6/cmake/Conky.cmake     2020-07-27 14:01:52.000000000 +0200
++++ conky-1.11.6.new/cmake/Conky.cmake 2020-07-28 09:01:36.198586808 +0200
 @@ -18,7 +18,7 @@
  # along with this program.  If not, see <http://www.gnu.org/licenses/>.
  #

++++++ conky-1.11.5.tar.gz -> conky-1.11.6.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/conky-1.11.5/bin/clang-tidy-diff.py 
new/conky-1.11.6/bin/clang-tidy-diff.py
--- old/conky-1.11.5/bin/clang-tidy-diff.py     2019-08-12 23:53:54.000000000 
+0200
+++ new/conky-1.11.6/bin/clang-tidy-diff.py     2020-07-27 14:01:52.000000000 
+0200
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 #
 #===- clang-tidy-diff.py - ClangTidy Diff Checker ------------*- python 
-*--===#
 #
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/conky-1.11.5/bin/run-clang-format.py 
new/conky-1.11.6/bin/run-clang-format.py
--- old/conky-1.11.5/bin/run-clang-format.py    2019-08-12 23:53:54.000000000 
+0200
+++ new/conky-1.11.6/bin/run-clang-format.py    2020-07-27 14:01:52.000000000 
+0200
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 """A wrapper script around clang-format, suitable for linting multiple files
 and to use for continuous integration.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/conky-1.11.5/cmake/Conky.cmake 
new/conky-1.11.6/cmake/Conky.cmake
--- old/conky-1.11.5/cmake/Conky.cmake  2019-08-12 23:53:54.000000000 +0200
+++ new/conky-1.11.6/cmake/Conky.cmake  2020-07-27 14:01:52.000000000 +0200
@@ -125,7 +125,7 @@
 # Do version stuff
 set(VERSION_MAJOR "1")
 set(VERSION_MINOR "11")
-set(VERSION_PATCH "5")
+set(VERSION_PATCH "6")
 
 find_program(APP_AWK awk)
 if(NOT APP_AWK)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/conky-1.11.5/cmake/scripts/clang-format-check-changed.py 
new/conky-1.11.6/cmake/scripts/clang-format-check-changed.py
--- old/conky-1.11.5/cmake/scripts/clang-format-check-changed.py        
2019-08-12 23:53:54.000000000 +0200
+++ new/conky-1.11.6/cmake/scripts/clang-format-check-changed.py        
2020-07-27 14:01:52.000000000 +0200
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 
 import argparse
 import os
@@ -116,7 +116,7 @@
 
 def run_clang_format(clang_format_bin, changed_files):
     """
-    Run clang format on a list of files 
+    Run clang format on a list of files
     @return 0 if formatted correctly.
     """
     if len(changed_files) == 0:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/conky-1.11.5/data/conky.conf 
new/conky-1.11.6/data/conky.conf
--- old/conky-1.11.5/data/conky.conf    2019-08-12 23:53:54.000000000 +0200
+++ new/conky-1.11.6/data/conky.conf    2020-07-27 14:01:52.000000000 +0200
@@ -77,7 +77,7 @@
 ${color grey}Networking:
 Up:$color ${upspeed} ${color grey} - Down:$color ${downspeed}
 $hr
-${color grey}Name              PID   CPU%   MEM%
+${color grey}Name              PID     CPU%   MEM%
 ${color lightgrey} ${top name 1} ${top pid 1} ${top cpu 1} ${top mem 1}
 ${color lightgrey} ${top name 2} ${top pid 2} ${top cpu 2} ${top mem 2}
 ${color lightgrey} ${top name 3} ${top pid 3} ${top cpu 3} ${top mem 3}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/conky-1.11.5/doc/config_settings.xml 
new/conky-1.11.6/doc/config_settings.xml
--- old/conky-1.11.5/doc/config_settings.xml    2019-08-12 23:53:54.000000000 
+0200
+++ new/conky-1.11.6/doc/config_settings.xml    2020-07-27 14:01:52.000000000 
+0200
@@ -1080,6 +1080,15 @@
     <varlistentry>
         <term>
             <command>
+                <option>lowercase</option>
+            </command>
+        </term>
+        <listitem>Boolean value, if true, text is rendered in lower case.
+        <para /></listitem>
+    </varlistentry>
+    <varlistentry>
+        <term>
+            <command>
                 <option>use_spacer</option>
             </command>
         </term>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/conky-1.11.5/doc/variables.xml 
new/conky-1.11.6/doc/variables.xml
--- old/conky-1.11.5/doc/variables.xml  2019-08-12 23:53:54.000000000 +0200
+++ new/conky-1.11.6/doc/variables.xml  2020-07-27 14:01:52.000000000 +0200
@@ -2703,6 +2703,16 @@
     <varlistentry>
         <term>
             <command>
+                <option>mpd_comment</option>
+            </command>
+            <option>(max length)</option>
+        </term>
+        <listitem>Comment of current MPD song.
+        <para /></listitem>
+    </varlistentry>
+    <varlistentry>
+        <term>
+            <command>
                 <option>mpd_track</option>
             </command>
         </term>
@@ -2923,6 +2933,10 @@
                 <command>modelname</command>
                 <option>name of the GPU card</option>
             </member>
+            <member>
+                <command>driverversion</command>
+                <option>Driver version</option>
+            </member>
         </simplelist></para></listitem>
     </varlistentry>
     <varlistentry>
@@ -3839,11 +3853,41 @@
     <varlistentry>
         <term>
             <command>
-                <option>start_case</option>
+                <option>startcase</option>
+            </command>
+            <option>text</option>
+        </term>
+        <listitem>Capitalises the start of each word.
+        <para /></listitem>
+    </varlistentry>
+    <varlistentry>
+        <term>
+            <command>
+                <option>lowercase</option>
+            </command>
+            <option>text</option>
+        </term>
+        <listitem>Converts all letters into lowercase.
+        <para /></listitem>
+    </varlistentry>
+    <varlistentry>
+        <term>
+            <command>
+                <option>uppercase</option>
+            </command>
+            <option>text</option>
+        </term>
+        <listitem>Converts all letters into uppercase.
+        <para /></listitem>
+    </varlistentry>
+    <varlistentry>
+        <term>
+            <command>
+                <option>rstrip</option>
             </command>
             <option>text</option>
         </term>
-        <listitem>All words capitalized regardless.
+        <listitem>Strips all trailing whitespace from input.
         <para /></listitem>
     </varlistentry>
     <varlistentry>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/conky-1.11.5/extras/nano/conky.nanorc 
new/conky-1.11.6/extras/nano/conky.nanorc
--- old/conky-1.11.5/extras/nano/conky.nanorc   2019-08-12 23:53:54.000000000 
+0200
+++ new/conky-1.11.6/extras/nano/conky.nanorc   2020-07-27 14:01:52.000000000 
+0200
@@ -11,7 +11,7 @@
 color yellow 
"\<(above|below|bottom_left|bottom_right|bottom_middle|desktop|dock|no|none|normal|override|skip_pager|skip_taskbar|sticky|top_left|top_right|top_middle|middle_left|middle_right|middle_middle|undecorated|yes)\>"
 
 ## Variables
-color brightblue 
"\<(acpiacadapter|acpifan|acpitemp|addr|addrs|alignc|alignr|apcupsd|apcupsd_cable|apcupsd_charge|apcupsd_lastxfer|apcupsd_linev|apcupsd_load|apcupsd_loadbar|apcupsd_loadgauge|apcupsd_loadgraph|apcupsd_model|apcupsd_name|apcupsd_status|apcupsd_temp|apcupsd_timeleft|apcupsd_upsmode|apm_adapter|apm_battery_life|apm_battery_time|audacious_bar|audacious_bitrate|audacious_channels|audacious_filename|audacious_frequency|audacious_length|audacious_length_seconds|audacious_main_volume|audacious_playlist_length|audacious_playlist_position|audacious_position|audacious_position_seconds|audacious_status|audacious_title|battery|battery_bar|battery_percent|battery_short|battery_time|blink|buffers|cached|cat|catp|cmdline_to_pid|color|color0|color1|color2|color3|color4|color5|color6|color7|color8|color9|combine|conky_build_arch|conky_build_date|conky_version|cpu|cpubar|cpugauge|cpugraph|curl|desktop|desktop_name|desktop_number|disk_protect|diskio|diskio_read|diskio_write|diskiograph|diskiograph_read|diskiograph_write|distribution|downspeed|downspeedf|downspeedgraph|draft_mails|else|endif|entropy_avail|entropy_bar|entropy_perc|entropy_poolsize|eval|eve|exec|execbar|execgauge|execgraph|execi|execibar|execigauge|execigraph|execp|execpi|flagged_mails|font|font0|font1|font2|font3|font4|font5|font6|font7|font8|font9|format_time|forwarded_mails|freq|freq_g|fs_bar|fs_bar_free|fs_free|fs_free_perc|fs_size|fs_type|fs_used|fs_used_perc|goto|gw_iface|gw_ip|hddtemp|head|hr|hwmon|i2c|i8k_ac_status|i8k_bios|i8k_buttons_status|i8k_cpu_temp|i8k_left_fan_rpm|i8k_left_fan_status|i8k_right_fan_rpm|i8k_right_fan_status|i8k_serial|i8k_version|ibm_brightness|ibm_fan|ibm_temps|ibm_volume|ical|iconv_start|iconv_stop|if_empty|if_existing|if_gw|if_match|if_mixer_mute|if_mounted|if_mpd_playing|if_running|if_smapi_bat_installed|if_up|if_updatenr|if_pa_sink_muted|if_xmms2_connected|image|imap_messages|imap_unseen|ioscheduler|irc|journal|kernel|laptop_mode|lines|loadavg|loadgraph|lua|lua_bar|lua_gauge|lua_graph|lua_parse|machine|mails|mboxscan|mem|memwithbuffers|membar|memwithbuffersbar|memwithbuffersgraph|memeasyfree|memfree|memgauge|memgraph|memmax|memperc|mixer|mixerbar|mixerl|mixerlbar|mixerr|mixerrbar|moc_album|moc_artist|moc_bitrate|moc_curtime|moc_file|moc_rate|moc_song|moc_state|moc_timeleft|moc_title|moc_totaltime|monitor|monitor_number|mpd_album|mpd_artist|mpd_bar|mpd_bitrate|mpd_elapsed|mpd_file|mpd_length|mpd_name|mpd_percent|mpd_random|mpd_repeat|mpd_smart|mpd_status|mpd_title|mpd_track|mpd_vol|mysql|nameserver|new_mails|nodename|nodename_short|no_update|nvidia|obsd_product|obsd_sensors_fan|obsd_sensors_temp|obsd_sensors_volt|obsd_vendor|offset|outlinecolor|pa_sink_volume|pa_sink_volumebar|pa_sink_description|pa_card_name
 
pa_card_active_profile|pb_battery|pid_chroot|pid_cmdline|pid_cwd|pid_environ|pid_environ_list|pid_exe|pid_nice|pid_openfiles|pid_parent|pid_priority|pid_state|pid_state_short|pid_stderr|pid_stdin|pid_stdout|pid_threads|pid_thread_list|pid_time_kernelmode|pid_time_usermode|pid_time|pid_uid|pid_euid|pid_suid|pid_fsuid|pid_gid|pid_egid|pid_sgid|pid_fsgid|pid_read|pid_vmpeak|pid_vmsize|pid_vmlck|pid_vmhwm|pid_vmrss|pid_vmdata|pid_vmstk|pid_vmexe|pid_vmlib|pid_vmpte|pid_write|platform|pop3_unseen|pop3_used|processes|read_tcp|read_udp|replied_mails|rss|running_processes|running_threads|scroll|seen_mails|shadecolor|sip_status|smapi|smapi_bat_bar|smapi_bat_perc|smapi_bat_power|smapi_bat_temp|sony_fanspeed|stippled_hr|stock|swap|swapbar|swapfree|swapmax|swapperc|sysname|tab|tail|tcp_ping|tcp_portmon|template0|template1|template2|template3|template4|template5|template6|template7|template8|template9|texeci|texecpi|threads|time|to_bytes|top|top_io|top_mem|top_time|totaldown|totalup|trashed_mails|tztime|gid_name|uid_name|unflagged_mails|unforwarded_mails|unreplied_mails|unseen_mails|updates|upspeed|upspeedf|upspeedgraph|uptime|uptime_short|user_names|user_number|user_terms|user_times|user_time|utime|voffset|voltage_mv|voltage_v|weather|wireless_ap|wireless_bitrate|wireless_essid|wireless_link_bar|wireless_link_qual|wireless_link_qual_max|wireless_link_qual_perc|wireless_mode|words|xmms2_album|xmms2_artist|xmms2_bar|xmms2_bitrate|xmms2_comment|xmms2_date|xmms2_duration|xmms2_elapsed|xmms2_genre|xmms2_id|xmms2_percent|xmms2_playlist|xmms2_size|xmms2_smart|xmms2_status|xmms2_timesplayed|xmms2_title|xmms2_tracknr|xmms2_url)\>"
+color brightblue 
"\<(acpiacadapter|acpifan|acpitemp|addr|addrs|alignc|alignr|apcupsd|apcupsd_cable|apcupsd_charge|apcupsd_lastxfer|apcupsd_linev|apcupsd_load|apcupsd_loadbar|apcupsd_loadgauge|apcupsd_loadgraph|apcupsd_model|apcupsd_name|apcupsd_status|apcupsd_temp|apcupsd_timeleft|apcupsd_upsmode|apm_adapter|apm_battery_life|apm_battery_time|audacious_bar|audacious_bitrate|audacious_channels|audacious_filename|audacious_frequency|audacious_length|audacious_length_seconds|audacious_main_volume|audacious_playlist_length|audacious_playlist_position|audacious_position|audacious_position_seconds|audacious_status|audacious_title|battery|battery_bar|battery_percent|battery_short|battery_time|blink|buffers|cached|cat|catp|cmdline_to_pid|color|color0|color1|color2|color3|color4|color5|color6|color7|color8|color9|combine|conky_build_arch|conky_build_date|conky_version|cpu|cpubar|cpugauge|cpugraph|curl|desktop|desktop_name|desktop_number|disk_protect|diskio|diskio_read|diskio_write|diskiograph|diskiograph_read|diskiograph_write|distribution|downspeed|downspeedf|downspeedgraph|draft_mails|else|endif|entropy_avail|entropy_bar|entropy_perc|entropy_poolsize|eval|eve|exec|execbar|execgauge|execgraph|execi|execibar|execigauge|execigraph|execp|execpi|flagged_mails|font|font0|font1|font2|font3|font4|font5|font6|font7|font8|font9|format_time|forwarded_mails|freq|freq_g|fs_bar|fs_bar_free|fs_free|fs_free_perc|fs_size|fs_type|fs_used|fs_used_perc|goto|gw_iface|gw_ip|hddtemp|head|hr|hwmon|i2c|i8k_ac_status|i8k_bios|i8k_buttons_status|i8k_cpu_temp|i8k_left_fan_rpm|i8k_left_fan_status|i8k_right_fan_rpm|i8k_right_fan_status|i8k_serial|i8k_version|ibm_brightness|ibm_fan|ibm_temps|ibm_volume|ical|iconv_start|iconv_stop|if_empty|if_existing|if_gw|if_match|if_mixer_mute|if_mounted|if_mpd_playing|if_running|if_smapi_bat_installed|if_up|if_updatenr|if_pa_sink_muted|if_xmms2_connected|image|imap_messages|imap_unseen|ioscheduler|irc|journal|kernel|laptop_mode|lines|loadavg|loadgraph|lua|lua_bar|lua_gauge|lua_graph|lua_parse|machine|mails|mboxscan|mem|memwithbuffers|membar|memwithbuffersbar|memwithbuffersgraph|memeasyfree|memfree|memgauge|memgraph|memmax|memperc|mixer|mixerbar|mixerl|mixerlbar|mixerr|mixerrbar|moc_album|moc_artist|moc_bitrate|moc_curtime|moc_file|moc_rate|moc_song|moc_state|moc_timeleft|moc_title|moc_totaltime|monitor|monitor_number|mpd_album|mpd_artist|mpd_bar|mpd_bitrate|mpd_elapsed|mpd_file|mpd_length|mpd_name|mpd_percent|mpd_random|mpd_repeat|mpd_smart|mpd_status|mpd_title|mpd_comment|mpd_track|mpd_vol|mysql|nameserver|new_mails|nodename|nodename_short|no_update|nvidia|obsd_product|obsd_sensors_fan|obsd_sensors_temp|obsd_sensors_volt|obsd_vendor|offset|outlinecolor|pa_sink_volume|pa_sink_volumebar|pa_sink_description|pa_card_name
 
pa_card_active_profile|pb_battery|pid_chroot|pid_cmdline|pid_cwd|pid_environ|pid_environ_list|pid_exe|pid_nice|pid_openfiles|pid_parent|pid_priority|pid_state|pid_state_short|pid_stderr|pid_stdin|pid_stdout|pid_threads|pid_thread_list|pid_time_kernelmode|pid_time_usermode|pid_time|pid_uid|pid_euid|pid_suid|pid_fsuid|pid_gid|pid_egid|pid_sgid|pid_fsgid|pid_read|pid_vmpeak|pid_vmsize|pid_vmlck|pid_vmhwm|pid_vmrss|pid_vmdata|pid_vmstk|pid_vmexe|pid_vmlib|pid_vmpte|pid_write|platform|pop3_unseen|pop3_used|processes|read_tcp|read_udp|replied_mails|rss|running_processes|running_threads|scroll|seen_mails|shadecolor|sip_status|smapi|smapi_bat_bar|smapi_bat_perc|smapi_bat_power|smapi_bat_temp|sony_fanspeed|stippled_hr|stock|swap|swapbar|swapfree|swapmax|swapperc|sysname|tab|tail|tcp_ping|tcp_portmon|template0|template1|template2|template3|template4|template5|template6|template7|template8|template9|texeci|texecpi|threads|time|to_bytes|top|top_io|top_mem|top_time|totaldown|totalup|trashed_mails|tztime|gid_name|uid_name|unflagged_mails|unforwarded_mails|unreplied_mails|unseen_mails|updates|upspeed|upspeedf|upspeedgraph|uptime|uptime_short|user_names|user_number|user_terms|user_times|user_time|utime|voffset|voltage_mv|voltage_v|weather|wireless_ap|wireless_bitrate|wireless_essid|wireless_link_bar|wireless_link_qual|wireless_link_qual_max|wireless_link_qual_perc|wireless_mode|words|xmms2_album|xmms2_artist|xmms2_bar|xmms2_bitrate|xmms2_comment|xmms2_date|xmms2_duration|xmms2_elapsed|xmms2_genre|xmms2_id|xmms2_percent|xmms2_playlist|xmms2_size|xmms2_smart|xmms2_status|xmms2_timesplayed|xmms2_title|xmms2_tracknr|xmms2_url)\>"
 
 color brightblue "\$\{?[0-9A-Z_!@#$*?-]+\}?"
 color cyan "(\{|\}|\(|\)|\;|\]|\[|`|\\|\$|<|>|!|=|&|\|)"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/conky-1.11.5/extras/vim/syntax/conkyrc.vim 
new/conky-1.11.6/extras/vim/syntax/conkyrc.vim
--- old/conky-1.11.5/extras/vim/syntax/conkyrc.vim      2019-08-12 
23:53:54.000000000 +0200
+++ new/conky-1.11.6/extras/vim/syntax/conkyrc.vim      2020-07-27 
14:01:52.000000000 +0200
@@ -50,7 +50,7 @@
 
 syn match ConkyrcVarStuff /{\@<=/ms=s contained nextgroup=ConkyrcVarName
 
-syn keyword ConkyrcVarName contained nextgroup=ConkyrcNumber,ConkyrcColour 
skipwhite acpiacadapter acpifan acpitemp addr addrs alignc alignr apcupsd 
apcupsd_cable apcupsd_charge apcupsd_lastxfer apcupsd_linev apcupsd_load 
apcupsd_loadbar apcupsd_loadgauge apcupsd_loadgraph apcupsd_model apcupsd_name 
apcupsd_status apcupsd_temp apcupsd_timeleft apcupsd_upsmode apm_adapter 
apm_battery_life apm_battery_time audacious_bar audacious_bitrate 
audacious_channels audacious_filename audacious_frequency audacious_length 
audacious_length_seconds audacious_main_volume audacious_playlist_length 
audacious_playlist_position audacious_position audacious_position_seconds 
audacious_status audacious_title battery battery_bar battery_percent 
battery_short battery_time blink buffers cached cat catp cmdline_to_pid color 
color0 color1 color2 color3 color4 color5 color6 color7 color8 color9 combine 
conky_build_arch conky_build_date conky_version cpu cpubar cpugauge cpugraph 
curl desktop desktop_name desktop_number disk_protect diskio diskio_read 
diskio_write diskiograph diskiograph_read diskiograph_write distribution 
downspeed downspeedf downspeedgraph draft_mails else endif entropy_avail 
entropy_bar entropy_perc entropy_poolsize eval eve exec execbar execgauge 
execgraph execi execibar execigauge execigraph execp execpi flagged_mails font 
font0 font1 font2 font3 font4 font5 font6 font7 font8 font9 format_time 
forwarded_mails freq freq_g fs_bar fs_bar_free fs_free fs_free_perc fs_size 
fs_type fs_used fs_used_perc goto gw_iface gw_ip hddtemp head hr hwmon i2c 
i8k_ac_status i8k_bios i8k_buttons_status i8k_cpu_temp i8k_left_fan_rpm 
i8k_left_fan_status i8k_right_fan_rpm i8k_right_fan_status i8k_serial 
i8k_version ibm_brightness ibm_fan ibm_temps ibm_volume ical iconv_start 
iconv_stop if_pa_sink_muted if_empty if_existing if_gw if_match if_mixer_mute 
if_mounted if_mpd_playing if_running if_smapi_bat_installed if_up if_updatenr 
if_xmms2_connected image imap_messages imap_unseen ioscheduler irc journal 
kernel laptop_mode lines loadavg loadgraph lua lua_bar lua_gauge lua_graph 
lua_parse machine mails mboxscan mem memwithbuffers membar memwithbuffersbar 
memwithbuffersgraph memeasyfree memfree memgauge memgraph memmax memperc mixer 
mixerbar mixerl mixerlbar mixerr mixerrbar moc_album moc_artist moc_bitrate 
moc_curtime moc_file moc_rate moc_song moc_state moc_timeleft moc_title 
moc_totaltime monitor monitor_number mpd_album mpd_artist mpd_bar mpd_bitrate 
mpd_elapsed mpd_file mpd_length mpd_name mpd_percent mpd_random mpd_repeat 
mpd_smart mpd_status mpd_title mpd_track mpd_vol mysql nameserver new_mails 
nodename nodename_short no_update nvidia obsd_product obsd_sensors_fan 
obsd_sensors_temp obsd_sensors_volt obsd_vendor offset outlinecolor 
pa_sink_volume pa_sink_volumebar pa_sink_description pa_card_name 
pa_card_active_profile pb_battery pid_chroot pid_cmdline pid_cwd pid_environ 
pid_environ_list pid_exe pid_nice pid_openfiles pid_parent pid_priority 
pid_state pid_state_short pid_stderr pid_stdin pid_stdout pid_threads 
pid_thread_list pid_time_kernelmode pid_time_usermode pid_time pid_uid pid_euid 
pid_suid pid_fsuid pid_gid pid_egid pid_sgid pid_fsgid pid_read pid_vmpeak 
pid_vmsize pid_vmlck pid_vmhwm pid_vmrss pid_vmdata pid_vmstk pid_vmexe 
pid_vmlib pid_vmpte pid_write platform pop3_unseen pop3_used processes read_tcp 
read_udp replied_mails rss running_processes running_threads scroll seen_mails 
shadecolor sip_status smapi smapi_bat_bar smapi_bat_perc smapi_bat_power 
smapi_bat_temp sony_fanspeed stippled_hr stock swap swapbar swapfree swapmax 
swapperc sysname tab tail tcp_ping tcp_portmon template0 template1 template2 
template3 template4 template5 template6 template7 template8 template9 texeci 
texecpi threads time to_bytes top top_io top_mem top_time totaldown totalup 
trashed_mails tztime gid_name uid_name unflagged_mails unforwarded_mails 
unreplied_mails unseen_mails updates upspeed upspeedf upspeedgraph uptime 
uptime_short user_names user_number user_terms user_times user_time utime 
voffset voltage_mv voltage_v weather wireless_ap wireless_bitrate 
wireless_essid wireless_link_bar wireless_link_qual wireless_link_qual_max 
wireless_link_qual_perc wireless_mode words xmms2_album xmms2_artist xmms2_bar 
xmms2_bitrate xmms2_comment xmms2_date xmms2_duration xmms2_elapsed xmms2_genre 
xmms2_id xmms2_percent xmms2_playlist xmms2_size xmms2_smart xmms2_status 
xmms2_timesplayed xmms2_title xmms2_tracknr xmms2_url
+syn keyword ConkyrcVarName contained nextgroup=ConkyrcNumber,ConkyrcColour 
skipwhite acpiacadapter acpifan acpitemp addr addrs alignc alignr apcupsd 
apcupsd_cable apcupsd_charge apcupsd_lastxfer apcupsd_linev apcupsd_load 
apcupsd_loadbar apcupsd_loadgauge apcupsd_loadgraph apcupsd_model apcupsd_name 
apcupsd_status apcupsd_temp apcupsd_timeleft apcupsd_upsmode apm_adapter 
apm_battery_life apm_battery_time audacious_bar audacious_bitrate 
audacious_channels audacious_filename audacious_frequency audacious_length 
audacious_length_seconds audacious_main_volume audacious_playlist_length 
audacious_playlist_position audacious_position audacious_position_seconds 
audacious_status audacious_title battery battery_bar battery_percent 
battery_short battery_time blink buffers cached cat catp cmdline_to_pid color 
color0 color1 color2 color3 color4 color5 color6 color7 color8 color9 combine 
conky_build_arch conky_build_date conky_version cpu cpubar cpugauge cpugraph 
curl desktop desktop_name desktop_number disk_protect diskio diskio_read 
diskio_write diskiograph diskiograph_read diskiograph_write distribution 
downspeed downspeedf downspeedgraph draft_mails else endif entropy_avail 
entropy_bar entropy_perc entropy_poolsize eval eve exec execbar execgauge 
execgraph execi execibar execigauge execigraph execp execpi flagged_mails font 
font0 font1 font2 font3 font4 font5 font6 font7 font8 font9 format_time 
forwarded_mails freq freq_g fs_bar fs_bar_free fs_free fs_free_perc fs_size 
fs_type fs_used fs_used_perc goto gw_iface gw_ip hddtemp head hr hwmon i2c 
i8k_ac_status i8k_bios i8k_buttons_status i8k_cpu_temp i8k_left_fan_rpm 
i8k_left_fan_status i8k_right_fan_rpm i8k_right_fan_status i8k_serial 
i8k_version ibm_brightness ibm_fan ibm_temps ibm_volume ical iconv_start 
iconv_stop if_pa_sink_muted if_empty if_existing if_gw if_match if_mixer_mute 
if_mounted if_mpd_playing if_running if_smapi_bat_installed if_up if_updatenr 
if_xmms2_connected image imap_messages imap_unseen ioscheduler irc journal 
kernel laptop_mode lines loadavg loadgraph lua lua_bar lua_gauge lua_graph 
lua_parse machine mails mboxscan mem memwithbuffers membar memwithbuffersbar 
memwithbuffersgraph memeasyfree memfree memgauge memgraph memmax memperc mixer 
mixerbar mixerl mixerlbar mixerr mixerrbar moc_album moc_artist moc_bitrate 
moc_curtime moc_file moc_rate moc_song moc_state moc_timeleft moc_title 
moc_totaltime monitor monitor_number mpd_album mpd_artist mpd_bar mpd_bitrate 
mpd_elapsed mpd_file mpd_length mpd_name mpd_percent mpd_random mpd_repeat 
mpd_smart mpd_status mpd_title mpd_comment mpd_track mpd_vol mysql nameserver 
new_mails nodename nodename_short no_update nvidia obsd_product 
obsd_sensors_fan obsd_sensors_temp obsd_sensors_volt obsd_vendor offset 
outlinecolor pa_sink_volume pa_sink_volumebar pa_sink_description pa_card_name 
pa_card_active_profile pb_battery pid_chroot pid_cmdline pid_cwd pid_environ 
pid_environ_list pid_exe pid_nice pid_openfiles pid_parent pid_priority 
pid_state pid_state_short pid_stderr pid_stdin pid_stdout pid_threads 
pid_thread_list pid_time_kernelmode pid_time_usermode pid_time pid_uid pid_euid 
pid_suid pid_fsuid pid_gid pid_egid pid_sgid pid_fsgid pid_read pid_vmpeak 
pid_vmsize pid_vmlck pid_vmhwm pid_vmrss pid_vmdata pid_vmstk pid_vmexe 
pid_vmlib pid_vmpte pid_write platform pop3_unseen pop3_used processes read_tcp 
read_udp replied_mails rss running_processes running_threads scroll seen_mails 
shadecolor sip_status smapi smapi_bat_bar smapi_bat_perc smapi_bat_power 
smapi_bat_temp sony_fanspeed stippled_hr stock swap swapbar swapfree swapmax 
swapperc sysname tab tail tcp_ping tcp_portmon template0 template1 template2 
template3 template4 template5 template6 template7 template8 template9 texeci 
texecpi threads time to_bytes top top_io top_mem top_time totaldown totalup 
trashed_mails tztime gid_name uid_name unflagged_mails unforwarded_mails 
unreplied_mails unseen_mails updates upspeed upspeedf upspeedgraph uptime 
uptime_short user_names user_number user_terms user_times user_time utime 
voffset voltage_mv voltage_v weather wireless_ap wireless_bitrate 
wireless_essid wireless_link_bar wireless_link_qual wireless_link_qual_max 
wireless_link_qual_perc wireless_mode words xmms2_album xmms2_artist xmms2_bar 
xmms2_bitrate xmms2_comment xmms2_date xmms2_duration xmms2_elapsed xmms2_genre 
xmms2_id xmms2_percent xmms2_playlist xmms2_size xmms2_smart xmms2_status 
xmms2_timesplayed xmms2_title xmms2_tracknr xmms2_url
 
 hi def link ConkyrcComment   Comment
 hi def link ConkyrcSetting   Keyword
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/conky-1.11.5/src/ccurl_thread.cc 
new/conky-1.11.6/src/ccurl_thread.cc
--- old/conky-1.11.5/src/ccurl_thread.cc        2019-08-12 23:53:54.000000000 
+0200
+++ new/conky-1.11.6/src/ccurl_thread.cc        2020-07-27 14:01:52.000000000 
+0200
@@ -166,7 +166,7 @@
  */
 
 struct curl_data {
-  char uri[128];
+  char *uri;
   float interval;
 };
 
@@ -180,24 +180,31 @@
 }
 
 void curl_parse_arg(struct text_object *obj, const char *arg) {
-  int argc;
   struct curl_data *cd;
   float interval = 0;
+  char *space;
 
-  cd = static_cast<struct curl_data *>(malloc(sizeof(struct curl_data)));
-  memset(cd, 0, sizeof(struct curl_data));
-
-  argc = sscanf(arg, "%127s %f", cd->uri, &interval);
-  if (argc < 1) {
-    free(cd);
+  if (strlen(arg) < 1) {
     NORM_ERR("wrong number of arguments for $curl");
     return;
   }
-  if (argc == 1) {
-    cd->interval = 15 * 60;
-  } else {
+
+  cd = static_cast<struct curl_data *>(malloc(sizeof(struct curl_data)));
+  memset(cd, 0, sizeof(struct curl_data));
+
+  // Default to a 15 minute interval
+  cd->interval = 15 * 60;
+
+  cd->uri = strdup(arg);
+  space = strchr(cd->uri, ' ');
+  if (space) {
+    // If an explicit interval was given, use that
+    char *interval_str = &space[1];
+    *space = '\0';
+    sscanf(interval_str, "%f", &interval);
     cd->interval = interval > 0 ? interval * 60 : active_update_interval();
   }
+
   obj->data.opaque = cd;
 }
 
@@ -211,4 +218,8 @@
   ccurl_process_info(p, p_max_size, cd->uri, cd->interval);
 }
 
-void curl_obj_free(struct text_object *obj) { free_and_zero(obj->data.opaque); 
}
+void curl_obj_free(struct text_object *obj) {
+  struct curl_data *cd = static_cast<struct curl_data *>(obj->data.opaque);
+  free_and_zero(cd->uri);
+  free_and_zero(obj->data.opaque);
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/conky-1.11.5/src/common.cc 
new/conky-1.11.6/src/common.cc
--- old/conky-1.11.5/src/common.cc      2019-08-12 23:53:54.000000000 +0200
+++ new/conky-1.11.6/src/common.cc      2020-07-27 14:01:52.000000000 +0200
@@ -293,6 +293,14 @@
 
   /* if you registered a callback with conky::register_cb, this will run it */
   conky::run_all_callbacks();
+
+#if !defined(__linux__)
+  /* XXX: move the following into the update_meminfo() functions? */
+  if (no_buffers.get(*state)) {
+    info.mem -= info.bufmem;
+    info.memeasyfree += info.bufmem;
+  }
+#endif
 }
 
 /* Ohkie to return negative values for temperatures */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/conky-1.11.5/src/conky.cc 
new/conky-1.11.6/src/conky.cc
--- old/conky-1.11.5/src/conky.cc       2019-08-12 23:53:54.000000000 +0200
+++ new/conky-1.11.6/src/conky.cc       2020-07-27 14:01:52.000000000 +0200
@@ -283,6 +283,9 @@
 static conky::simple_config_setting<bool> stuff_in_uppercase("uppercase", 
false,
                                                              true);
 
+static conky::simple_config_setting<bool> stuff_in_lowercase("lowercase", 
false,
+                                                             true);
+
 /* Run how many times? */
 static conky::range_config_setting<unsigned long> total_run_times(
     "total_run_times", 0, std::numeric_limits<unsigned long>::max(), 0, true);
@@ -584,10 +587,10 @@
   }
   if (short_units.get(*state)) {
     width = 5;
-    format = "%.*f%.1s";
+    format = "%.*f %.1s";
   } else {
     width = 7;
-    format = "%.*f%-.3s";
+    format = "%.*f %-.3s";
   }
 
   if (llabs(num) < 1000LL) {
@@ -794,6 +797,14 @@
       *tmp_p = toupper(static_cast<unsigned char>(*tmp_p));
       tmp_p++;
     }
+  } else if (stuff_in_lowercase.get(*state)) {
+    char *tmp_p;
+
+    tmp_p = text_buffer;
+    while (*tmp_p != 0) {
+      *tmp_p = tolower(static_cast<unsigned char>(*tmp_p));
+      tmp_p++;
+    }
   }
 
   double ui = active_update_interval();
@@ -1220,6 +1231,38 @@
   memcpy(tmpstring1, s, tbs);
 }
 
+#if defined(BUILD_MATH) && defined(BUILD_X11)
+/// Format \a size as a real followed by closest SI unit, with \a prec number
+/// of digits after the decimal point.
+static std::string formatSizeWithUnits(double size, int prec = 1) {
+  int div = 0;
+  double rem = 0;
+
+  while (size >= 1024.0 &&
+         static_cast<size_t>(div) < (sizeof suffixes / sizeof *suffixes)) {
+    rem = fmod(size, 1024.0);
+    div++;
+    size /= 1024.0;
+  }
+
+  double size_d = size + rem / 1024.0;
+
+  std::ostringstream result;
+  result.setf(std::ios::fixed, std::ios::floatfield);
+  result.precision(prec);
+  result << size_d;
+  result << " ";
+
+  if (short_units.get(*state)) {
+    result << suffixes[div][0];
+  } else {
+    result << suffixes[div];
+  }
+
+  return result.str();
+}
+#endif /* BUILD_MATH && BUILD_X11 */
+
 int draw_each_line_inner(char *s, int special_index, int last_special_applied) 
{
 #ifndef BUILD_X11
   static int cur_x, cur_y; /* current x and y for drawing */
@@ -1489,13 +1532,12 @@
             if (show_graph_scale.get(*state) && (current->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;
-              if (asprintf(&tmp_str, "%.1f", current->scale)) {
-                draw_string(tmp_str);
-                free(tmp_str);
-              }
+              std::string tmp_str = formatSizeWithUnits(
+                  current->scale_log != 0 ? std::pow(10.0, current->scale)
+                                          : current->scale);
+              draw_string(tmp_str.c_str());
               cur_x = tmp_x;
               cur_y = tmp_y;
             }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/conky-1.11.5/src/core.cc new/conky-1.11.6/src/core.cc
--- old/conky-1.11.5/src/core.cc        2019-08-12 23:53:54.000000000 +0200
+++ new/conky-1.11.6/src/core.cc        2020-07-27 14:01:52.000000000 +0200
@@ -882,9 +882,21 @@
 #ifdef __x86_64__
   END OBJ(freq2, 0) obj->callbacks.print = &print_freq2;
 #endif /* __x86_64__ */
-
+  END OBJ(startcase, 0) obj->data.s = STRNDUP_ARG;
+  obj->callbacks.print = &print_startcase;
+  obj->callbacks.free = &gen_free_opaque;
+  // Deprecated, for compatibility purposes only
   END OBJ(start_case, 0) obj->data.s = STRNDUP_ARG;
-  obj->callbacks.print = &print_cap;
+  obj->callbacks.print = &print_startcase;
+  obj->callbacks.free = &gen_free_opaque;
+  END OBJ(lowercase, 0) obj->data.s = STRNDUP_ARG;
+  obj->callbacks.print = &print_lowercase;
+  obj->callbacks.free = &gen_free_opaque;
+  END OBJ(uppercase, 0) obj->data.s = STRNDUP_ARG;
+  obj->callbacks.print = &print_uppercase;
+  obj->callbacks.free = &gen_free_opaque;
+  END OBJ(rstrip, 0) obj->data.s = STRNDUP_ARG;
+  obj->callbacks.print = &strip_trailing_whitespace;
   obj->callbacks.free = &gen_free_opaque;
   END OBJ(catp, 0) obj->data.s = STRNDUP_ARG;
   obj->callbacks.print = &print_catp;
@@ -1077,7 +1089,7 @@
       obj->data.s = STRNDUP_ARG;
   obj->callbacks.iftest = &if_existing_iftest;
   obj->callbacks.free = &gen_free_opaque;
-#ifdef __linux__
+#if defined(__linux__) || defined(__FreeBSD__)
   END OBJ_IF_ARG(if_mounted, 0, "if_mounted needs an argument") obj->data.s =
       STRNDUP_ARG;
   obj->callbacks.iftest = &check_mount;
@@ -1566,6 +1578,8 @@
   obj->callbacks.print = &print_mpd_title;
   END OBJ(mpd_date, nullptr) mpd_set_maxlen(mpd_date);
   obj->callbacks.print = &print_mpd_date;
+  END OBJ(mpd_comment, nullptr) mpd_set_maxlen(mpd_comment);
+  obj->callbacks.print = &print_mpd_comment;
   END OBJ(mpd_random, nullptr) obj->callbacks.print = &print_mpd_random;
   END OBJ(mpd_repeat, nullptr) obj->callbacks.print = &print_mpd_repeat;
   END OBJ(mpd_elapsed, nullptr) obj->callbacks.print = &print_mpd_elapsed;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/conky-1.11.5/src/linux.cc 
new/conky-1.11.6/src/linux.cc
--- old/conky-1.11.5/src/linux.cc       2019-08-12 23:53:54.000000000 +0200
+++ new/conky-1.11.6/src/linux.cc       2020-07-27 14:01:52.000000000 +0200
@@ -61,6 +61,7 @@
 #define _LINUX_IF_H
 #endif
 #include <linux/route.h>
+#include <linux/version.h>
 #include <math.h>
 #include <pthread.h>
 #include <atomic>
@@ -179,11 +180,18 @@
   /* unsigned int a; */
   char buf[256];
 
-  unsigned long long shmem = 0, sreclaimable = 0;
-
-  info.mem = info.memwithbuffers = info.memmax = info.memdirty = info.swap =
-      info.swapfree = info.swapmax = info.bufmem = info.buffers = info.cached =
-          info.memfree = info.memeasyfree = 0;
+  /* With multi-threading, calculations that require
+   * multple steps to reach a final result can cause havok
+   * if the intermediary calculations are directly assigned to the
+   * information struct (they may be read by other functions in the meantime).
+   * These variables keep the calculations local to the function and finish off
+   * the function by assigning the results to the information struct */
+  unsigned long long shmem = 0, sreclaimable = 0, curmem = 0, curbufmem = 0,
+                     cureasyfree = 0, memavail = 0;
+
+  info.memmax = info.memdirty = info.swap = info.swapfree = info.swapmax =
+      info.memwithbuffers = info.buffers = info.cached = info.memfree =
+          info.memeasyfree = 0;
 
   if (!(meminfo_fp = open_file("/proc/meminfo", &reported))) { return 0; }
 
@@ -204,6 +212,8 @@
       sscanf(buf, "%*s %llu", &info.cached);
     } else if (strncmp(buf, "Dirty:", 6) == 0) {
       sscanf(buf, "%*s %llu", &info.memdirty);
+    } else if (strncmp(buf, "MemAvailable:", 13) == 0) {
+      sscanf(buf, "%*s %llu", &memavail);
     } else if (strncmp(buf, "Shmem:", 6) == 0) {
       sscanf(buf, "%*s %llu", &shmem);
     } else if (strncmp(buf, "SReclaimable:", 13) == 0) {
@@ -211,8 +221,8 @@
     }
   }
 
-  info.mem = info.memwithbuffers = info.memmax - info.memfree;
-  info.memeasyfree = info.memfree;
+  curmem = info.memwithbuffers = info.memmax - info.memfree;
+  cureasyfree = info.memfree;
   info.swap = info.swapmax - info.swapfree;
 
   /* Reclaimable memory: does not include shared memory, which is part of 
cached
@@ -220,17 +230,35 @@
      Note: when shared memory is swapped out, shmem decreases and swapfree
      decreases - we want this.
   */
-  info.bufmem = (info.cached - shmem) + info.buffers + sreclaimable;
+  curbufmem = (info.cached - shmem) + info.buffers + sreclaimable;
 
-  /* Now (info.mem - info.bufmem) is the *really used* (aka unreclaimable)
-     memory. When this value reaches the size of the physical RAM, and swap is
-     full or non-present, OOM happens. Therefore this is the value users want 
to
-     monitor, regarding their RAM.
-  */
+  /* Calculate the memory usage.
+   *
+   * The Linux Kernel introduced a new field for memory available,
+   * when possible, use that.
+   * 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=34e431b0ae398fc54ea69ff85ec700722c9da773
+   */
   if (no_buffers.get(*state)) {
-    info.mem -= info.bufmem;
-    info.memeasyfree += info.bufmem;
+#if LINUX_VERSION_CODE <= KERNEL_VERSION(3, 14, 0)
+    /* Now ('info.mem' - 'info.bufmem') is the *really used* (aka 
unreclaimable)
+       memory. When this value reaches the size of the physical RAM, and swap 
is
+       full or non-present, OOM happens. Therefore this is the value users want
+       to monitor, regarding their RAM.
+    */
+    curmem -= curbufmem;
+    cureasyfree += curbufmem;
+#else
+    curmem = info.memmax - memavail;
+    cureasyfree += curbufmem;
+#endif
   }
+
+  /* Now that we know that every calculation is finished we can wrap up
+   * by assigning the values to the information structure */
+  info.mem = curmem;
+  info.bufmem = curbufmem;
+  info.memeasyfree = cureasyfree;
+
   fclose(meminfo_fp);
   return 0;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/conky-1.11.5/src/misc.cc new/conky-1.11.6/src/misc.cc
--- old/conky-1.11.5/src/misc.cc        2019-08-12 23:53:54.000000000 +0200
+++ new/conky-1.11.6/src/misc.cc        2020-07-27 14:01:52.000000000 +0200
@@ -85,27 +85,48 @@
   delete[] buf;
 }
 
-void print_cap(struct text_object *obj, char *p, unsigned int p_max_size) {
-  unsigned int x = 0;
-  int z = 0;
-  char buf[DEFAULT_TEXT_BUFFER_SIZE];
-  char *src = obj->data.s;
-  char *dest = buf;
-
+void print_startcase(struct text_object *obj, char *p,
+                     unsigned int p_max_size) {
   evaluate(obj->data.s, p, p_max_size);
-  if (0 != strcmp(p, "")) { src = p; }
 
-  for (; *src && p_max_size - 1 > x; src++, x++) {
-    if (0 == z) {
-      *dest++ = (toupper(static_cast<unsigned char>(*src)));
+  for (unsigned int x = 0, z = 0; x < p_max_size - 1 && p[x]; x++) {
+    if (isspace(p[x])) {
+      z = 0;
+    } else {
+      p[x] = z ? tolower(p[x]) : toupper(p[x]);
       z++;
-      continue;
     }
-    *dest++ = *src;
-    if (' ' == *src) z = 0;
   }
-  *dest = '\0';
-  snprintf(p, p_max_size, "%s", buf);
+}
+
+void print_lowercase(struct text_object *obj, char *p,
+                     unsigned int p_max_size) {
+  evaluate(obj->data.s, p, p_max_size);
+
+  for (unsigned int x = 0; x < p_max_size - 1 && p[x]; x++)
+    p[x] = tolower(p[x]);
+}
+
+void print_uppercase(struct text_object *obj, char *p,
+                     unsigned int p_max_size) {
+  evaluate(obj->data.s, p, p_max_size);
+
+  for (unsigned int x = 0; x < p_max_size - 1 && p[x]; x++)
+    p[x] = toupper(p[x]);
+}
+
+void strip_trailing_whitespace(struct text_object *obj, char *p,
+                               unsigned int p_max_size) {
+  evaluate(obj->data.s, p, p_max_size);
+  for (unsigned int x = p_max_size - 2;; x--) {
+    if (p[x] && !isspace(p[x])) {
+      p[x + 1] = '\0';
+      break;
+    } else if (x == 0) {
+      p[x] = '\0';
+      break;
+    }
+  }
 }
 
 long long int apply_base_multiplier(const char *s, long long int num) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/conky-1.11.5/src/misc.h new/conky-1.11.6/src/misc.h
--- old/conky-1.11.5/src/misc.h 2019-08-12 23:53:54.000000000 +0200
+++ new/conky-1.11.6/src/misc.h 2020-07-27 14:01:52.000000000 +0200
@@ -35,6 +35,9 @@
 
 void print_cat(struct text_object *, char *, unsigned int);
 void print_catp(struct text_object *, char *, unsigned int);
-void print_cap(struct text_object *, char *, unsigned int);
+void print_startcase(struct text_object *, char *, unsigned int);
+void print_lowercase(struct text_object *, char *, unsigned int);
+void print_uppercase(struct text_object *, char *, unsigned int);
+void strip_trailing_whitespace(struct text_object *, char *, unsigned int);
 long long apply_base_multiplier(const char *, long long int);
 #endif /* _MISC_H */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/conky-1.11.5/src/mpd.cc new/conky-1.11.6/src/mpd.cc
--- old/conky-1.11.5/src/mpd.cc 2019-08-12 23:53:54.000000000 +0200
+++ new/conky-1.11.6/src/mpd.cc 2020-07-27 14:01:52.000000000 +0200
@@ -113,23 +113,24 @@
 mpd_password_setting mpd_password;
 
 struct mpd_result {
-  std::string title;
-  std::string artist;
-  std::string albumartist;
+  float progress{};
+  int bitrate{};
+  int elapsed{};
+  int is_playing{};
+  int length{};
+  int vol{};
   std::string album;
+  std::string albumartist;
+  std::string artist;
+  std::string comment;
   std::string date;
-  std::string status;
+  std::string file;
+  std::string name;
   std::string random;
   std::string repeat;
+  std::string status;
+  std::string title;
   std::string track;
-  std::string name;
-  std::string file;
-  int is_playing{};
-  int vol{};
-  float progress{};
-  int bitrate{};
-  int length{};
-  int elapsed{};
 };
 
 class mpd_cb : public conky::callback<mpd_result> {
@@ -261,14 +262,15 @@
     (a) = b;            \
   else                  \
     (a) = "";
-      SETSTRING(mpd_info.artist, song->artist);
-      SETSTRING(mpd_info.albumartist, song->albumartist);
       SETSTRING(mpd_info.album, song->album);
-      SETSTRING(mpd_info.title, song->title);
+      SETSTRING(mpd_info.albumartist, song->albumartist);
+      SETSTRING(mpd_info.artist, song->artist);
+      SETSTRING(mpd_info.comment, song->comment);
       SETSTRING(mpd_info.date, song->date);
-      SETSTRING(mpd_info.track, song->track);
-      SETSTRING(mpd_info.name, song->name);
       SETSTRING(mpd_info.file, song->file);
+      SETSTRING(mpd_info.name, song->name);
+      SETSTRING(mpd_info.title, song->title);
+      SETSTRING(mpd_info.track, song->track);
       if (entity != nullptr) {
         mpd_freeInfoEntity(entity);
         entity = nullptr;
@@ -390,18 +392,19 @@
     snprintf(p, p_max_size, fmt, get_mpd().name acc);          \
   }
 
-MPD_PRINT_GENERATOR(title, "%s", .c_str())
-MPD_PRINT_GENERATOR(artist, "%s", .c_str())
-MPD_PRINT_GENERATOR(albumartist, "%s", .c_str())
 MPD_PRINT_GENERATOR(album, "%s", .c_str())
+MPD_PRINT_GENERATOR(albumartist, "%s", .c_str())
+MPD_PRINT_GENERATOR(artist, "%s", .c_str())
+MPD_PRINT_GENERATOR(bitrate, "%d", )
+MPD_PRINT_GENERATOR(comment, "%s", .c_str())
 MPD_PRINT_GENERATOR(date, "%s", .c_str())
+MPD_PRINT_GENERATOR(file, "%s", .c_str())
+MPD_PRINT_GENERATOR(name, "%s", .c_str())
 MPD_PRINT_GENERATOR(random, "%s", .c_str())
 MPD_PRINT_GENERATOR(repeat, "%s", .c_str())
+MPD_PRINT_GENERATOR(status, "%s", .c_str())
+MPD_PRINT_GENERATOR(title, "%s", .c_str())
 MPD_PRINT_GENERATOR(track, "%s", .c_str())
-MPD_PRINT_GENERATOR(name, "%s", .c_str())
-MPD_PRINT_GENERATOR(file, "%s", .c_str())
 MPD_PRINT_GENERATOR(vol, "%d", )
-MPD_PRINT_GENERATOR(bitrate, "%d", )
-MPD_PRINT_GENERATOR(status, "%s", .c_str())
 
 #undef MPD_PRINT_GENERATOR
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/conky-1.11.5/src/mpd.h new/conky-1.11.6/src/mpd.h
--- old/conky-1.11.5/src/mpd.h  2019-08-12 23:53:54.000000000 +0200
+++ new/conky-1.11.6/src/mpd.h  2020-07-27 14:01:52.000000000 +0200
@@ -28,24 +28,25 @@
 #include <cstdint>
 
 /* text object functions */
-void print_mpd_elapsed(struct text_object *, char *, unsigned int);
-void print_mpd_length(struct text_object *, char *, unsigned int);
-uint8_t mpd_percentage(struct text_object *);
 double mpd_barval(struct text_object *);
-void print_mpd_smart(struct text_object *, char *, unsigned int);
-void print_mpd_title(struct text_object *, char *, unsigned int);
-void print_mpd_artist(struct text_object *, char *, unsigned int);
-void print_mpd_albumartist(struct text_object *, char *, unsigned int);
+int check_mpd_playing(struct text_object *);
+uint8_t mpd_percentage(struct text_object *);
 void print_mpd_album(struct text_object *, char *, unsigned int);
+void print_mpd_albumartist(struct text_object *, char *, unsigned int);
+void print_mpd_artist(struct text_object *, char *, unsigned int);
+void print_mpd_bitrate(struct text_object *, char *, unsigned int);
+void print_mpd_comment(struct text_object *, char *, unsigned int);
 void print_mpd_date(struct text_object *, char *, unsigned int);
+void print_mpd_elapsed(struct text_object *, char *, unsigned int);
+void print_mpd_file(struct text_object *, char *, unsigned int);
+void print_mpd_length(struct text_object *, char *, unsigned int);
+void print_mpd_name(struct text_object *, char *, unsigned int);
 void print_mpd_random(struct text_object *, char *, unsigned int);
 void print_mpd_repeat(struct text_object *, char *, unsigned int);
+void print_mpd_smart(struct text_object *, char *, unsigned int);
+void print_mpd_status(struct text_object *, char *, unsigned int);
+void print_mpd_title(struct text_object *, char *, unsigned int);
 void print_mpd_track(struct text_object *, char *, unsigned int);
-void print_mpd_name(struct text_object *, char *, unsigned int);
-void print_mpd_file(struct text_object *, char *, unsigned int);
 void print_mpd_vol(struct text_object *, char *, unsigned int);
-void print_mpd_bitrate(struct text_object *, char *, unsigned int);
-void print_mpd_status(struct text_object *, char *, unsigned int);
-int check_mpd_playing(struct text_object *);
 
 #endif /*MPD_H_*/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/conky-1.11.5/src/net_stat.cc 
new/conky-1.11.6/src/net_stat.cc
--- old/conky-1.11.5/src/net_stat.cc    2019-08-12 23:53:54.000000000 +0200
+++ new/conky-1.11.6/src/net_stat.cc    2020-07-27 14:01:52.000000000 +0200
@@ -343,7 +343,7 @@
 }
 
 /**
- * returns the download speed in kiB/s for the interface referenced by obj
+ * returns the download speed in B/s for the interface referenced by obj
  *
  * @param[in] obj struct containting a member data, which is a struct
  *                containing a void * to a net_stat struct
@@ -351,13 +351,13 @@
 double downspeedgraphval(struct text_object *obj) {
   auto *ns = static_cast<struct net_stat *>(obj->data.opaque);
 
-  return (ns != nullptr ? (ns->recv_speed / 1024.0) : 0);
+  return (ns != nullptr ? ns->recv_speed : 0);
 }
 
 double upspeedgraphval(struct text_object *obj) {
   auto *ns = static_cast<struct net_stat *>(obj->data.opaque);
 
-  return (ns != nullptr ? (ns->trans_speed / 1024.0) : 0);
+  return (ns != nullptr ? ns->trans_speed : 0);
 }
 #endif /* BUILD_X11 */
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/conky-1.11.5/src/nvidia.cc 
new/conky-1.11.6/src/nvidia.cc
--- old/conky-1.11.5/src/nvidia.cc      2019-08-12 23:53:54.000000000 +0200
+++ new/conky-1.11.6/src/nvidia.cc      2020-07-27 14:01:52.000000000 +0200
@@ -54,9 +54,10 @@
  * ambienttemp [gpu_id]}°C FAN    ${nvidia fanspeed [gpu_id]} RPM (${nvidia
  * fanlevel [gpu_id]}%)
  *
- * miscelaneas:
+ * Miscellaneous:
  * OPENGL ${nvidia imagequality [gpu_id]}
  * GPU    ${nvidia modelname [gpu_id]}
+ * DRIVER ${nvidia driverversion [gpu_id]}
  *
  * --==| NVIDIA Bars |==--
  * LOAD  ${nvidiabar [height][,width] gpuutil [gpu_id]}
@@ -135,7 +136,7 @@
     "fanlevel",
 
     "imagequality",  // Miscellaneous
-    "modelname"};
+    "modelname", "driverversion"};
 
 // Enum for module arguments
 typedef enum _ARG_ID {
@@ -185,8 +186,8 @@
   ARG_FAN_LEVEL,
 
   ARG_IMAGEQUALITY,
-
   ARG_MODEL_NAME,
+  ARG_DRIVER_VERSION,
 
   ARG_UNKNOWN
 } ARG_ID;
@@ -243,6 +244,9 @@
 
     NV_CTRL_GPU_CURRENT_PERFORMANCE_LEVEL,
     NV_CTRL_IMAGE_SETTINGS,
+
+    NV_CTRL_STRING_PRODUCT_NAME,
+    NV_CTRL_STRING_NVIDIA_DRIVER_VERSION,
 };
 
 // Enum for nvidia query attributes
@@ -271,7 +275,7 @@
   ATTR_IMAGE_QUALITY,
 
   ATTR_MODEL_NAME,
-
+  ATTR_DRIVER_VERSION,
 } ATTR_ID;
 
 // Enum for query type
@@ -655,6 +659,12 @@
       nvs->attribute = ATTR_MODEL_NAME;
       break;
 
+    case ARG_DRIVER_VERSION:
+      nvs->query = QUERY_STRING;
+      nvs->target = TARGET_GPU;
+      nvs->attribute = ATTR_DRIVER_VERSION;
+      break;
+
     default:  // Unknown/invalid argument
       // Error printed by core.cc
       return 1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/conky-1.11.5/src/pulseaudio.cc 
new/conky-1.11.6/src/pulseaudio.cc
--- old/conky-1.11.5/src/pulseaudio.cc  2019-08-12 23:53:54.000000000 +0200
+++ new/conky-1.11.6/src/pulseaudio.cc  2020-07-27 14:01:52.000000000 +0200
@@ -62,8 +62,13 @@
     pdr->sink_mute = i->mute;
     pdr->sink_card = i->card;
     pdr->sink_index = i->index;
-    pdr->sink_active_port_name.assign(i->active_port->name);
-    pdr->sink_active_port_description.assign(i->active_port->description);
+    if (i->active_port != nullptr) {
+      pdr->sink_active_port_name.assign(i->active_port->name);
+      pdr->sink_active_port_description.assign(i->active_port->description);
+    } else {
+      pdr->sink_active_port_name.erase();
+      pdr->sink_active_port_description.erase();
+    }
     pdr->sink_volume = round_to_positive_int(
         100.0f * (float)pa_cvolume_avg(&(i->volume)) / (float)PA_VOLUME_NORM);
     pa_threaded_mainloop_signal(pulseaudio->mainloop, 0);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/conky-1.11.5/src/specials.cc 
new/conky-1.11.6/src/specials.cc
--- old/conky-1.11.5/src/specials.cc    2019-08-12 23:53:54.000000000 +0200
+++ new/conky-1.11.6/src/specials.cc    2020-07-27 14:01:52.000000000 +0200
@@ -590,7 +590,10 @@
   }
   s->tempgrad = g->tempgrad;
 #ifdef BUILD_MATH
-  if ((g->flags & SF_SHOWLOG) != 0) { s->scale = log10(s->scale + 1); }
+  if ((g->flags & SF_SHOWLOG) != 0) {
+    s->scale_log = 1;
+    s->scale = log10(s->scale + 1);
+  }
 #endif
 
   int graph_id = ((struct graph *)obj->special_data)->id;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/conky-1.11.5/src/specials.h 
new/conky-1.11.6/src/specials.h
--- old/conky-1.11.5/src/specials.h     2019-08-12 23:53:54.000000000 +0200
+++ new/conky-1.11.6/src/specials.h     2020-07-27 14:01:52.000000000 +0200
@@ -66,7 +66,8 @@
   short show_scale;
   int graph_width;
   int graph_allocated;
-  int scaled;                  /* auto adjust maximum */
+  int scaled; /* auto adjust maximum */
+  int scale_log;
   unsigned long first_colour;  // for graph gradient
   unsigned long last_colour;
   short font_added;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/conky-1.11.5/src/top.cc new/conky-1.11.6/src/top.cc
--- old/conky-1.11.5/src/top.cc 2019-08-12 23:53:54.000000000 +0200
+++ new/conky-1.11.6/src/top.cc 2020-07-27 14:01:52.000000000 +0200
@@ -390,10 +390,6 @@
 }
 
 int update_top() {
-  // XXX: this was a separate callback. and it should be again, as soon as it's
-  // possible
-  update_meminfo();
-
   process_find_top(info.cpu, info.memu, info.time
 #ifdef BUILD_IOSTATS
                    ,
@@ -521,7 +517,7 @@
   if (pw != nullptr) {
     snprintf(p, p_max_size, "%.8s", pw->pw_name);
   } else {
-    NORM_ERR("The uid doesn't exist");
+    snprintf(p, p_max_size, "%d", td->list[td->num]->uid);
   }
 }
 
@@ -542,7 +538,7 @@
   }
 
 PRINT_TOP_GENERATOR(cpu, (unsigned int)7, "%6.2f", amount)
-PRINT_TOP_GENERATOR(pid, (unsigned int)6, "%5i", pid)
+PRINT_TOP_GENERATOR(pid, (unsigned int)8, "%7i", pid)
 PRINT_TOP_GENERATOR(uid, (unsigned int)6, "%5i", uid)
 PRINT_TOP_HR_GENERATOR(mem_res, rss, 1)
 PRINT_TOP_HR_GENERATOR(mem_vsize, vsize, 1)


Reply via email to