Handle mpd internal information inside mpd.c. Use a refcounter to check
if the mpd-information can be freed (maybe useless). Remove the now
useless "full" flag of free_text_objects.
The only change of behaviour occurs when adjusting the unit of positive
values. For some reason 1000LL was used, which has now been replaced by
1024LL. Usage of abs() and MAX() might be OS dependent, but it should
not be too hard to implement them by hand if they're missing somewhere.
It was a static int before, holding the (already defined) enum's value,
which doesn't make sense. Also it's used only inside conky.c. Since
enums can't be assigned other values than what are defined, we can skip
checking for illegal spacer value at each invocation of spaced_print,
and then also drop the function name argument, which apparently didn't
make sense at all, because use_spacer is a global option.
Instead of splitting information, use diskio_stats[0] in diskio.c for
the totals. This saves a few branches, and frees some data from struct
information.
Some statics are now defined by configure.ac.in, conky.h got a lot
smaller, which I see as a positive sign.
This patch should not change any functionality, just change what's
defined where. Some features I did/could not test are probably broken,
also compiling for any other OS surely won't complete now. Though I
think fixing these problems is as easy as including some missing
headers.
I've done compile checks with the following configure options:
./configure --enable-eve --enable-rss --enable-smapi
--enable-wlan --enable-debug --enable-testing
So what needs to be tested is:
- audacious
- BMPx
- xmms2
- nvidia
Using a macro is not possible anymore, so have a function dev_name() do
the job. Functionality is the same as the old DEV_NAME, unless the
specified path is a symlink in which case it's being dereferenced first.
To save callers from having to free the returned string, a static local
buffer is used (effectively rendering the function non-reentrant).
This patch makes Conky print a sample config when being called with the
'-C' flag.
A short test showed an increase of ~10kbytes of the conky binary's size.
Two things that pissed me off about the old one:
* only limited support for nesting templates
* totally broken output when using conditionals inside a template
The later one was the hard one to fix. ;)
It requires to already have the full text substituted before the text
objects are being created from it. Generating only the contained objects
broke, because the conditionals got wrong offsets to jump to.
After that was fixed, full nesting support is realised by simply
repeating the replacement until no more template objects are found.
Withdrawn windows are those you get from applications supporting the
'-w' flag, like e.g. gkrellm or all those sweet WindowMaker dockapps
(wmcpu and Co.). In Fluxbox, these windows are drawn into the slit. Most
other window managers put them into their "taskbar", AFAIK.
This patch makes Conky act exactly the same if the following settings
are selected:
| own_window yes
| own_window_type dock
This introduces a new configuration variable called "temperature_unit",
specifying the unit of all temperature sensors. To achieve this, each
object outputting a temperature has to call temp_print() like so:
| temp_print(p, p_max_size, <temp val as double>, <unit of val>);
to specify the input temperature unit, either one of the constants
TEMP_CELSIUS or TEMP_FAHRENHEIT.
The new command line option '-D' ('--debug') increases debugging level by one.
For debugging output a user could be interested in, use the macros DEBUG() and
DEBUG2(). Functionality is equal to the ERR() macro. DEBUG2() prints stuff only
if debugging level is greater one, which means that '--debug' has been
specified more than once. This patch also includes usage of the macros for the
new template object (as debugging syntax errors in templates is one thing a
user potentially needs to do).
git-svn-id: https://conky.svn.sourceforge.net/svnroot/conky/trunk/conky1@1273 7f574dfc-610e-0410-a909-a81674777703
* handle escaped characters in parameters to the template object, too
* add samples to the documentation
* do some code cleanup by outsourcing the string substitution into it's
own function
git-svn-id: https://conky.svn.sourceforge.net/svnroot/conky/trunk/conky1@1271 7f574dfc-610e-0410-a909-a81674777703
Basically you can define a template like this:
| template0 \1:\n ${fs_free \2} / ${fs_used \2}
and use it later like this:
| ${template0 root /}
| ${template0 boot /boot}
which is exactly the same as the following:
| root:
| ${fs_free /} / ${fs_used /}
| boot:
| ${fs_free /boot} / ${fs_used /boot}
hope you like it, I do already. :)
git-svn-id: https://conky.svn.sourceforge.net/svnroot/conky/trunk/conky1@1270 7f574dfc-610e-0410-a909-a81674777703
* happened when passing wrong arguments to ${scroll}, particularly with only
one instead of the mandatory two unsigned ints
* as it's not clear whether %n will change the value returned by sscanf or not,
use a solution that works in both situations (%n incrementing the return
value or not)
git-svn-id: https://conky.svn.sourceforge.net/svnroot/conky/trunk/conky1@1268 7f574dfc-610e-0410-a909-a81674777703
* check only the unique part of the argument
* print temperatures like all others (%.1f)
* do argument parsing in nvidia.c (so all specific stuff is at one place)
* little header cleanup
git-svn-id: https://conky.svn.sourceforge.net/svnroot/conky/trunk/conky1@1231 7f574dfc-610e-0410-a909-a81674777703
In order to do this correctly:
Removed duplicate includes
Fixed mpd functions to accept mpd_s instead of information
Freed mpd.h of any need to include conky.h (mpd.c still includes it for the constants)
git-svn-id: https://conky.svn.sourceforge.net/svnroot/conky/trunk/conky1@1154 7f574dfc-610e-0410-a909-a81674777703
* New $loadgraph to show a graph of load averages,
* add "show_graph_scale" option to turn off/on the showing of the
current max value for the graph,
* minor code fixes,
* update nano and vim syntax highlighting stuff.
git-svn-id: https://conky.svn.sourceforge.net/svnroot/conky/trunk/conky1@1104 7f574dfc-610e-0410-a909-a81674777703
* Fix bug due to usage of gethostbyname() in threads (which is not
reentrant) by using gethostbyname_r() when available.
* Added patch for battery_time problem on 2.6.24 (thanks wedge).
* Added patch to fix broken xmms2 stuff (thanks sleipner).
* Added patch to fix SIGHUP/SIGUSR1 segfault (thanks norsetto).
* Added patch to improve $if_up (thanks Aseem).
git-svn-id: https://conky.svn.sourceforge.net/svnroot/conky/trunk/conky1@1103 7f574dfc-610e-0410-a909-a81674777703
* the macro DEV_NAME() "removes" any leading "/dev/"
if existing
* the only object that needs the full path is hddtemp,
so add code there to add "/dev/" if necessary
(can't be done via macro)
* attempt to fix also the hddtemp output, as the
"degree"-sign seems to be inserted in utf-8 and
printed in latin.
* hddtemp breaks the rules by inserting the unit
itself, but as it could be either "C" or "F", this
would lead to confusion otherwise
git-svn-id: https://conky.svn.sourceforge.net/svnroot/conky/trunk/conky1@1091 7f574dfc-610e-0410-a909-a81674777703
* not sure but this looked completely wrong, as 'iconv'
is a function.
* if iconv_cd is NULL, iconv_count is 0 and therefore
realloc should do the same as malloc here.
git-svn-id: https://conky.svn.sourceforge.net/svnroot/conky/trunk/conky1@1069 7f574dfc-610e-0410-a909-a81674777703
* instead of empty args "void" should always be specified.
Using this, the compiler can detect incorrect function calls,
like with update_stuff().
* No args seems to be interpreted as "unspecified args" by the
compiler, as with update_mail_count(). So no checking for
correctness of arguments when calling was done at all.
* This is not complete yet, as I still don't have any BSD for
testing.
git-svn-id: https://conky.svn.sourceforge.net/svnroot/conky/trunk/conky1@1055 7f574dfc-610e-0410-a909-a81674777703
* I accidentially used wrong args when testing conky -> segfault
* reproduce using 'conky -c /this/doesnt/exist'
* code should be portable, but untested on freebsd
git-svn-id: https://conky.svn.sourceforge.net/svnroot/conky/trunk/conky1@1044 7f574dfc-610e-0410-a909-a81674777703
* gathers information from /etc/resolv.conf
* included (still commented) code to prevent reading too often,
as I'm not sure whether reading from a real FS (not /proc or /sys)
could generate higher load in some cases -> comments please!
git-svn-id: https://conky.svn.sourceforge.net/svnroot/conky/trunk/conky1@1035 7f574dfc-610e-0410-a909-a81674777703
* gw_iface prints the interface having a default gateway
* gw_ip prints the gatway's ip
* if_gw jumps if no default gateway exists
* when there are multiple gateways, gw_iface and gw_ip
only print "multiple" when they are different (allows
basic debugging of ones networking setup)
git-svn-id: https://conky.svn.sourceforge.net/svnroot/conky/trunk/conky1@1031 7f574dfc-610e-0410-a909-a81674777703
* when printing only width bytes to buf, with
width being set to pad_percents which itself
is set by the user to zero, nothing is printed
* in the unlikely (but possible) case of width > size,
this could lead to a segfault
git-svn-id: https://conky.svn.sourceforge.net/svnroot/conky/trunk/conky1@1029 7f574dfc-610e-0410-a909-a81674777703
* rewrote some functions in src/smapi.c for more
simplicity and less malloc/free hell
* added object cleanup in free_text_objects(),
valgrind said it was missing
* fixed indenting in construct_text_object()
* fixed use of spaced_print() in generate_text_internal()
git-svn-id: https://conky.svn.sourceforge.net/svnroot/conky/trunk/conky1@1028 7f574dfc-610e-0410-a909-a81674777703
* Fixed a number of small memory leaks.
* Performed some minor profiling on Conky; introduced
small_text_buffer_size and large_text_buffer_size config options instead
of just text_buffer_size.
* Fixed some minor bugs introduced by new patches.
git-svn-id: https://conky.svn.sourceforge.net/svnroot/conky/trunk/conky1@1014 7f574dfc-610e-0410-a909-a81674777703