1
0
mirror of https://github.com/Llewellynvdm/conky.git synced 2024-10-02 23:19:08 +00:00
Commit Graph

1485 Commits

Author SHA1 Message Date
Cesare Tirabassi
0ee5e9935a Refactoring of commit 363cf1ab73
The problem with the original commit was that some session-managers set
stdin to /dev/null for the processes they launch, therefore the variable
wasn't very effective.
This commit change the variable conky_user_time to user_time.
This variable has a mandatory argument, a console identifier
(eg. tty7, pts/0, etc.).
Once called, this will list how long the user for the given console has been
logged in for.
This commit also allows multiple user_time to be specified for different
consoles, as well as correctly handle a conky restart.
2009-11-14 15:57:45 +01:00
Nikolas Garofil
1a4c2c61e8 Shrink proc.c 2009-11-14 15:08:41 +01:00
Nikolas Garofil
44de7fe6be Support for $pid_state 2009-11-14 13:58:07 +01:00
Pavel Labath
6db3b5809d Add middle_middle alignment, mostly for completeness 2009-11-13 21:35:49 +01:00
Nikolas Garofil
ab0b80e495 Added support for $pid_chroot 2009-11-13 16:54:40 +01:00
Cesare Tirabassi
f1272dbd31 Merge branch 'master' of git.omp.am:/home/omp/git/conky 2009-11-13 16:36:49 +01:00
Cesare Tirabassi
363cf1ab73 Add $conky_user_time (sf.net #2830919)
The bug reporter asks if it is possible to add a variable giving the "current
user time" only, since the variable user_times reports the times for ALL
logged users.
AFAIK, the only info one can gather inside conky, is the login time for the
tty connected to conky's standard input.
This commit adds support for it (it should work on any posix compliant *nix).
Note that in coherence with the definition, the variable is called
conky_user_time (for a single user stand-alone machine used as a desktop
this would be the "current" user time).
2009-11-13 16:30:04 +01:00
Nikolas Garofil
e9d92ae717 Fix bug in $pid_openfiles 2009-11-13 16:29:44 +01:00
Phil Sutter
bde5845077 drop adt746x objects
This was really creepy stuff. Last updated in April, 2006 to work with
kernels > 2.6.12. I consider this "fobar" (fscking obsolete beyond all
recognition) and doubt anyone still uses this. If you do, blame me. :)
2009-11-13 00:47:23 +01:00
Nikolas Garofil
52df1d2bf2 Merge branch 'master' of ssh://git.omp.am/home/omp/git/conky 2009-11-13 00:38:13 +01:00
Nikolas Garofil
52629bef61 Added support for $pid_openfiles 2009-11-13 00:36:46 +01:00
Phil Sutter
8922603b91 entropy: outsource code
This patch ought to be small and simple ...

The reason why it's not is me wanting the entropy data out of struct
information. This means update_entropy() can not be used anymore, as it
uses this globally available object.

The solution I am presenting here is quite messy regarding header
includes. Hopefully this will go away soon as I plan on creating some
sort of "OS library" containing all OS specific routines and defining
macros for easier capability checking in the non-specific code. This on
the other hand means we'll need "wrappers" around OS specific objects,
but that's not as bad as it seems - having non-specific text objects
only will definitely clean up the code, and capabilities can be checked
where they should be.
2009-11-13 00:02:16 +01:00
Phil Sutter
e787870eb4 top: fix segfault for $if_running
The "name" field may be zero, which makes strcmp() freak out.
2009-11-13 00:02:16 +01:00
Nikolas Garofil
e26c9977f2 fix potential bugs in snprintf 2009-11-12 21:48:15 +01:00
Nikolas Garofil
1d0b68e60d Fix building without C99 2009-11-12 21:33:57 +01:00
Nikolas Garofil
6c4f069f00 Added support for $pid_exe and $pid_stdin, $pid_stdout and $pid_stderr 2009-11-12 20:34:43 +01:00
Nikolas Garofil
6b20156a1b Added support for $pid_environ_list 2009-11-12 15:42:18 +01:00
Nikolas Garofil
d595a65077 Add support for $pid_environ 2009-11-11 22:56:12 +01:00
Nikolas Garofil
cb96b3bcca Add cwd to $pid and split into $pid_cmdline and $pid_cwd 2009-11-11 16:27:19 +01:00
Nikolas Garofil
aa761584db fix previous commit 2009-11-11 13:44:50 +01:00
Nikolas Garofil
db99693091 fix tiny compile problem 2009-11-11 13:43:14 +01:00
Nikolas Garofil
65cf0439a0 Fix memleak and change literals to defines 2009-11-11 13:23:05 +01:00
Nikolas Garofil
8276da8777 Add proc.c and proc.h 2009-11-11 11:33:28 +01:00
Nikolas Garofil
46dd6ca513 Add support for ${pid cmdline} 2009-11-11 10:55:25 +01:00
Nikolas Garofil
827be3bde8 Fix $if_mpd_playing and $mpd_percent when you stop playing a song, thanks Sakari Matikka 2009-11-10 13:23:00 +01:00
Nikolas Garofil
ccbaf9ea89 Fix memleak 2009-11-10 00:15:30 +01:00
Nikolas Garofil
7025477402 Fix $scroll only scrolls once 2009-11-09 02:38:20 +01:00
Nikolas Garofil
e292dd5e28 Fix segfault and memleaks in curl 2009-11-08 21:49:28 +01:00
Phil Sutter
37071ccd8e ifblock objects: fix bug for sub-object parsing ifblocks
When dropping the ifblock field of struct text_object, I short-sightedly
reused the sub field for holding the pointer to the matching else/endif.
This however doesn't work for objects parsing their own object list, as
they need the sub field for themselfs.

Since we have it, simply reuse the special_data field instead and hope
there won't ever be an object which is both special and ifblock. ;)
2009-11-08 20:20:47 +01:00
Phil Sutter
581c86f070 fix conversion bug when freeing exec objects 2009-11-08 20:20:47 +01:00
Nikolas Garofil
a1e199c85a Fix building with metar but without xoap 2009-11-08 18:00:13 +01:00
Nikolas Garofil
ce99d1a782 Use a define for the maximum number of network devices 2009-11-07 23:46:46 +01:00
Nikolas Garofil
aad43bea8d Added support for $threads and fixed $processes on Linux 2009-11-07 18:14:04 +01:00
Nikolas Garofil
1ed564fd0b Revert "Added support for and fixed on Linux"
This reverts commit 43c7c0373b.
2009-11-07 18:13:21 +01:00
Nikolas Garofil
43c7c0373b Added support for and fixed on Linux 2009-11-07 18:06:07 +01:00
Nikolas Garofil
ff1fab20c2 Fix building with --disable-xft and add ncurses to the -v option 2009-11-07 15:32:03 +01:00
Nikolas Garofil
68ca9485da Fix building with --disable-iostats 2009-11-07 13:21:47 +01:00
Nikolas Garofil
74145a7fef Fix building with --disable-x11 --disable-lua --disable-ncurses 2009-11-07 12:21:48 +01:00
Phil Sutter
e909cdd4eb scan_graph: allow giving a "hint" about a good scale value
This is more or less a temporary fix to restore the former behaviour. In
the long term objects will define a max value, which will be of use for
all kinds of meters.
2009-11-06 00:10:00 +01:00
Phil Sutter
c88d01af95 weather: fix this embarrassing bug 2009-11-05 22:27:34 +01:00
Phil Sutter
556751c8c9 top: drop problematic field totalmem
The field totalmem was formerly used to hold the percentage of used mem
by a process. So at update time, the field info.memmax was being
addressed, which is potentially being updated at the same time, As all
updating routines potentially run in parallel. Though there is an
(quite) easy fix for this: calculate the percentage upon object
printing. This works because conky synchronises all update routines
right before printing the result. (To omit locking on it's own.)
2009-11-03 23:24:09 +01:00
Phil Sutter
e08bc8fad7 enum special_types: define nonspecial for completeness 2009-11-03 23:23:23 +01:00
Phil Sutter
4dd54b3df6 if_gw: no need to free unused obj->data.s 2009-11-03 23:23:23 +01:00
Phil Sutter
f61d8d108f text_object: completely remove the need for data.ifblock 2009-11-03 23:23:23 +01:00
Phil Sutter
9a770295d1 drop useless ifblock.str 2009-11-03 23:23:23 +01:00
Phil Sutter
66c187e7a1 no need to save the args passed to if_empty and if_match 2009-11-03 23:23:23 +01:00
Phil Sutter
7304378d73 drop a few unused fields from struct text_object 2009-11-03 23:23:23 +01:00
Phil Sutter
d9ec45b25d drop struct text_object field pair, since it got unused due to latest commits 2009-11-03 23:23:23 +01:00
Phil Sutter
76b433c809 drop struct text_object field f 2009-11-03 23:23:23 +01:00
Phil Sutter
f98a360089 drop now unused SIZE_DEFAULTS macro 2009-11-03 23:23:23 +01:00
Phil Sutter
041059f1c2 specials: convert stippled_hr object to new style 2009-11-03 23:23:23 +01:00
Phil Sutter
3458db80aa specials: convert tab object to new style 2009-11-03 23:23:23 +01:00
Phil Sutter
50e2b5961a specials: convert gauge objects to new style 2009-11-03 23:23:23 +01:00
Phil Sutter
bbec0db498 specials: convert graph objects to new style 2009-11-03 23:23:23 +01:00
Phil Sutter
a4777c7c55 misc smaller fixes 2009-11-03 23:23:23 +01:00
Phil Sutter
22251dca51 specials: introduce dedicated per-object data and merge graph objects 2009-11-03 23:23:23 +01:00
Phil Sutter
0bed05997b review load* code 2009-11-03 23:23:23 +01:00
Phil Sutter
42dfb7ac69 move loadavg and loadgraph code to common.c 2009-11-03 23:23:23 +01:00
Phil Sutter
63079a2075 local_mails: convert to generic object payload
This also includes a little header include cleanup.
2009-11-03 23:23:22 +01:00
Phil Sutter
90ed7d8a2c mail: convert to generic object payload 2009-11-03 23:23:22 +01:00
Phil Sutter
35ecbb3330 mail: use a private common struct mail_s instead of info.mail 2009-11-03 23:23:22 +01:00
Phil Sutter
ac99833646 text_object: use field i instead of cpu_index 2009-11-03 23:23:22 +01:00
Phil Sutter
3a365bcd33 if_up: convert to generic object payload 2009-11-03 23:23:22 +01:00
Phil Sutter
2112b1f0ee drop now unused sensor field 2009-11-03 23:23:22 +01:00
Phil Sutter
0de0047bdc obsd_sensors: cleanup code (untested) 2009-11-03 23:23:22 +01:00
Phil Sutter
f2188a67a1 ibm: convert to generic object payload 2009-11-03 23:23:22 +01:00
Phil Sutter
c8f07daceb net_stats: convert to generic object payload 2009-11-03 23:23:22 +01:00
Phil Sutter
0740e91911 diskio: convert to generic object payload 2009-11-03 23:23:22 +01:00
Phil Sutter
aa4d61d3d7 combine: convert to generic object payload 2009-11-03 23:23:22 +01:00
Phil Sutter
64ec783475 scroll: convert to generic object payload 2009-11-03 23:23:22 +01:00
Phil Sutter
bf9263bc5e read_tcp: convert to generic object payload 2009-11-03 23:23:22 +01:00
Phil Sutter
b74e0494de exec: convert to generic object payload 2009-11-03 23:23:22 +01:00
Phil Sutter
0dc60481cf top: convert to generic object payload 2009-11-03 23:23:22 +01:00
Phil Sutter
4b0c1d3226 mboxscan: convert to generic object payload 2009-11-03 23:23:22 +01:00
Phil Sutter
dd36fc4caa mixer: convert to generic object payload 2009-11-03 23:23:22 +01:00
Phil Sutter
c45decda5e curl: convert to generic object payload 2009-11-03 23:23:22 +01:00
Phil Sutter
4716969cc6 weather objects: convert to generic object payload 2009-11-03 23:23:22 +01:00
Phil Sutter
046ae1dd61 rss: convert to generic object payload 2009-11-03 23:23:22 +01:00
Phil Sutter
9202a9da87 eve: convert to generic object payload 2009-11-03 23:23:22 +01:00
Phil Sutter
94ac89e091 sysfs objects: convert to generic object payload 2009-11-03 23:23:22 +01:00
Phil Sutter
d2be5980ca tcp_portmon: convert to generic object payload 2009-11-03 23:23:22 +01:00
Phil Sutter
8d1640f30b fs_*: convert to generic object payload 2009-11-03 23:23:22 +01:00
Phil Sutter
f31e5cefe7 fs_bar, fs_bar_free: convert to generic object payload 2009-11-03 23:23:22 +01:00
Phil Sutter
f6942c8c98 tailhead: convert to generic object payload 2009-11-03 23:23:22 +01:00
Phil Sutter
1d73d82b87 convert tztime to generic object payload 2009-11-03 23:23:22 +01:00
Phil Sutter
8165a91f0a nvidia: convert to generic text object payload 2009-11-03 23:23:22 +01:00
Phil Sutter
eff3f75014 text_object: introduce a generic payload pointer 2009-11-03 23:23:22 +01:00
Phil Sutter
d1b2c7eac3 local_mails: put code to where it belongs
Note that the code does not only use a pre-processor generator for
defining the print functions, but also for their prototypes. Sadly, this
generated a conflict in mboxscan.c which this patch resolves, too.
2009-11-03 01:50:28 +01:00
Phil Sutter
fa9135f9df mail: put imap and pop3 code to where it belongs 2009-11-03 01:50:28 +01:00
Phil Sutter
8b76d8fb60 net_stats: outsource network-related objects 2009-11-03 01:50:28 +01:00
Phil Sutter
9efa29be28 combine: outsource code 2009-11-03 01:50:28 +01:00
Phil Sutter
37658b540b scroll: outsource code 2009-11-03 01:50:28 +01:00
Phil Sutter
24d9e8bf24 read_tcp: outsource code 2009-11-03 01:50:28 +01:00
Phil Sutter
7a168c377b exec: put all exec-related stuff into it's own file
While here, also merge the execi and texeci fields of struct
text_object, so more common code can be shared in between.
2009-11-03 01:50:28 +01:00
Phil Sutter
2631f42820 ibm: put specific code to where it belongs 2009-11-03 01:50:28 +01:00
Phil Sutter
7fc1c801aa gw_info: move code to where it belongs 2009-11-03 01:50:28 +01:00
Cesare Tirabassi
27a2a253a8 Fix indenting of last commit 2009-11-01 18:42:29 +01:00
Cesare Tirabassi
4ea99e27f1 Fix hwmon location for kernel >= 2.6.31 (closes sf: #2865628)
In the linux kernel 2.6.31 and above, device data can either be in
/sys/class/hwmon/hwmonDEV or /sys/class/hwmon/hwmonDEV/device.
Just stat'ing for the latter doesn't work since it can exist but not contain
the required data (see https://bugs.launchpad.net/bugs/435571 for details).
The patch could be improved to keep in memory the right location of the data
on the user's system instead of trying each time, but, is it worth doing it?
2009-11-01 18:37:48 +01:00
Phil Sutter
f7f3b37807 rss.h: drop useless header include 2009-10-12 23:04:41 +02:00
Phil Sutter
d1ed9c8399 fix compiling in a messy way
A cleaner but more ugly solution would be to include text_object.h in
every header containing struct text_object definitions. But this
apparently triggers a big mess, since text_object.h itself includes
custom headers. Forward defining struct text_object is obviously the
mostly simple solution until there is a bigger header include review
cleaning it all up.
2009-10-12 23:00:06 +02:00
Phil Sutter
a106b52698 curl: put init and print code to where it belongs
This also fixes a bug in arg parsing, effectively forcing an interval to
be specified.
2009-10-12 21:33:02 +02:00
Phil Sutter
ad8dd36cb7 weather objects: move init and print code to weather.c 2009-10-12 21:33:02 +02:00
Phil Sutter
6a2f58a25c rss: move init and print code into rss.c 2009-10-12 21:33:02 +02:00
Phil Sutter
ddca4aac68 spend some time with eve.{c,h}
* minimise core code hooks
* drop useless exporting of private functions (and make them static)
* reorder functions in eve.c so no prototypes are needed
* drop massive header include and add double include barrier in eve.h
2009-10-12 21:33:02 +02:00
Phil Sutter
700a32b2e7 sysfs objects: merge init and print routines 2009-10-12 21:33:02 +02:00
Phil Sutter
da7876468f tcp_portmon: drop useless function pointer cast, use OBJ_ARG 2009-10-12 21:33:02 +02:00
Phil Sutter
4d70cf07b8 fs_bar, fs_bar_free: merge init and print routines 2009-10-12 21:33:02 +02:00
Phil Sutter
b9a28c37a8 tail, head: use OBJ_ARG to simplify code 2009-10-12 21:33:02 +02:00
Phil Sutter
a529ac52de hddtemp: drop dead code (custom per-object data) 2009-10-12 21:33:02 +02:00
Cesare Tirabassi
066af067f0 Fix global info.desktop variables were incorrectly freed, sf #2876647 2009-10-12 13:38:48 +02:00
Phil Sutter
ea92e63a44 tztime: fix argument parsing bug, clarify docs 2009-10-04 04:03:21 +02:00
Phil Sutter
1e893ec6e3 iconv: outsource code into it's own file
While testing, I found two already existing bugs:
* the variable 'a' passed to iconv_convert() needs to be passed by
  reference in order to allow for the desired side effect.
* Somehow the trailing junk after an iconv_conversion to a shorter
  string messes things up (and gets printed!). I couldn't exactly find
  out why this happens, but setting (*p) = 0; solves this problem.
2009-10-04 03:41:45 +02:00
Phil Sutter
adf9d23927 outsource time, utime and tztime into a separate file 2009-10-04 03:24:04 +02:00
Phil Sutter
e3e77ce75e move the SIZE_DEFAULTS() macro to where it belongs to 2009-10-04 03:24:04 +02:00
Brenden Matthews
584d05d2ad Add the -p/--pause command line option. 2009-10-03 14:26:39 -07:00
Brenden Matthews
88a8799bf5 Improve IMAP/POP3 code, fix compiler error. 2009-09-30 18:06:18 -07:00
Brenden Matthews
7fc4d40eb2 Allow spaces in mail folder names for pop/imap.
For example, you can specify "-f '[Gmail]/All Mail'" in your mail args
to view all mails in your Google mail IMAP folder.
2009-09-27 10:40:06 -07:00
Brenden Matthews
4a0676d4d0 Fix IMAP IDLE with Google's IMAP service. 2009-09-26 18:38:55 -07:00
Pavel Labath
28978461a7 Put OBJ(image) in $ifdefs
so that conky produces more meaningful error message when compiled without imlib
2009-09-25 14:43:46 +02:00
Pavel Labath
bfda285567 Make -d switch work again
-d was broken because fork-to-background was done after the update thread creation, so the
threads ended up in the wrong process. This delays the thread creation until after the fork.
2009-09-22 18:19:08 +02:00
Phil Sutter
cfccea4079 do not block when reading inotify_fd
Originally, I was experiencing sporadic lockups when reading inotify_fd;
which is strange, since it is protected by select(). This should fix it
despite of the original problem.
2009-09-20 19:04:45 +02:00
Phil Sutter
d163293f66 index processes in a hash table for faster lookup 2009-09-20 16:10:05 +02:00
Pavel Labath
596449c902 It feels much better to let the thread exit voluntarily instead of violently killing it 2009-09-20 14:38:57 +02:00
Phil Sutter
d45aa362b0 fixup for ncurses output 2009-09-20 13:52:46 +02:00
Phil Sutter
4823b1f428 drop duplicate code 2009-09-20 13:18:10 +02:00
Phil Sutter
3569ece513 minor indentation fixup 2009-09-20 13:16:43 +02:00
Phil Sutter
e391fa40a9 this was looking wrong 2009-09-20 13:16:43 +02:00
Phil Sutter
15e262a3ca minor simplification of get_string_width_special() 2009-09-20 13:16:20 +02:00
Phil Sutter
4840de39cd update machinery: keep threads persistent
Create each thread upon registration of the callback function, then use
semaphores to signal when it's time to update and when updating is
finished.
Many thanks to pavelo who originally came up with the idea for this.
2009-09-20 13:14:08 +02:00
Phil Sutter
2cb45085e0 simplify get_string_width() a bit 2009-09-20 13:12:56 +02:00
Pavel Labath
7ad3e34e34 OBJ -> OBJ_ARG; apparently forgotten in 9f22ba 2009-09-15 23:54:31 +02:00
Phil Sutter
fea72bd8f8 top.c: fix for unsigned underflow
Yes, I also thought these are monotonic counters. But it seems like they
are not, at least sometimes the value decreases by 1 leading to a very
very high cpu usage percentage being printed.
2009-09-15 23:16:39 +02:00
Phil Sutter
7fa59c6c90 better zero out allocated memory 2009-09-15 23:16:39 +02:00
Phil Sutter
b7b9329e38 update machinery: run each update callback in it's own thread 2009-09-15 23:16:39 +02:00
Phil Sutter
925ac2b7ba read_tcp: get rid of heavy indenting 2009-09-15 23:16:35 +02:00
Phil Sutter
9f22bab657 core: add OBJ_ARG() and OBJ_IF_ARG() to force arguments
These macros can be used just like their OBJ() and OBJ_IF()
counterparts, just that they bail out hard when arg is unset. While
here, also cleanup the macro definition by using __* macros and fully
cleanup the macro namespace when the job is done.

Although this makes conky kind of less robust when it comes to
configuration errors, aborting is the right thing to do to avoid
ambiguity between unknown text objects.
2009-09-15 23:12:15 +02:00
Phil Sutter
77cc646080 imlib2: don't flood warnings on non-existing images 2009-09-15 23:12:15 +02:00
Phil Sutter
f33affdc03 do not unconditionally overwrite a variable after conditionally setting it 2009-09-15 23:12:15 +02:00
Phil Sutter
ed3d73c094 minor indenting fixup 2009-09-15 23:12:15 +02:00
Phil Sutter
fa896bec98 apcupsd: drop init_apcupsd() since it was called at the wrong place
Normally, this is not enough reason to remove code, but in this case it
means that either the tester always had $nvidia (if enabled) or $combine
also in her setup, or it was working without (which I guess, since there
is duplicate code in update_apcupsd()).
2009-09-15 23:12:15 +02:00
Phil Sutter
9dd360ecdb update machinery: add some documentation 2009-09-15 23:12:15 +02:00
Pavel Labath
09c0bccf55 Move vi modelines closer to the beginning, so they're more likely to be actually used. 2009-09-12 12:50:51 +02:00
Phil Sutter
a00bd4ad5e update machinery: fix accidential naming conflict 2009-09-09 22:56:10 +02:00
Phil Sutter
466a253a8c update machinery: fix for update_stat() on linux 2009-09-09 22:52:09 +02:00
Pavel Labath
3736b141aa Fix window width calculation when $lua returns newlines
I just hope it doesn't break anything.
2009-09-09 21:15:18 +02:00
Phil Sutter
f33bcb36ef update machinery: fix top objects
This is a bit messy, but since the top update stuff could use a rewrite
anyway, this should do.
2009-09-07 01:49:44 +02:00
Phil Sutter
d32879faaa update machinery: let CALLBACK() die again
There are no INFO_* variables any more, so the argument passed to OBJ()
is always a function pointer or zero. By checking the argument passed in
add_update_callback(), the branch in the OBJ() macro can be dropped,
too.
2009-09-07 01:22:16 +02:00
Phil Sutter
e83fb84c55 update machinery: clean up
* Remove leftover INFO_* values from object definitions which didn't
  trigger anything.
* Drop the whole INFO_* enum as it's values are not used anymore.
2009-09-07 01:12:11 +02:00
Phil Sutter
e044093735 update machinery: complete transition
* Drop all need_mask alterations (no idea why there were here at all,
  but surely not sane since they are missing in the non-linux
  functions).
* Drop the update delay for update_meminfo(), as parsing /proc should
  not lead to abnormal overhead.
* Check for x_initialised from inside update_x11info(), so we can call
  it unconditionally.
2009-09-07 01:05:33 +02:00
Phil Sutter
d7c7f06aca rework the update machinery to use callbacks
Besides improving performance when updating stuff, we ideally have no
text object specific code in update_stuff() anymore (aside some
leftovers).

The macros in construct_text_object() have gotten a bit crazier than
they were before:
* using CALLBACK(&func) instead of an INFO_* parameter to OBJ() will
  make it add the given callback to the list of callbacks to be iterated
  over at each update interval.
* BEWARE: the above assumes function pointer values to be > 0!
* This implicitly fixes a bug in the code: passing 0 as INFO_* value
  led to selecting INFO_MAIL (1 << 0 == 1).
* Now it would select INFO_CPU (== 0), which got unused and therefore is
  not a problem at all (the 0 value should be unused in enums anyway).

This needs some more work, then we should be able to drop the whole
INFO_* enum. Then CALLBACK() can die again and with it goes the ugly
casting stuff done to distinguish callbacks from INFO_* values.
2009-09-07 00:36:02 +02:00