twotree is a compatibility layer to make it easier to write plugins for both libpurple2
and libpurple3
. The name comes from the phrase "a couple two tree" which is meant to mean "a couple two or three". It's one of those weirdly regional phrases. In our case, it works great, because you get support for a couple libpurple releases, two, and three.
Copy purplecompat.h
into your plugin and you're good to go. Now you can use the purple3
API and it'll work (for the most part) on purple2
as well.
There is a #define PURPLE_TWOTREE_VERSION
that can be used to track whether or not a new version has been released. It follows DNS serial syntax. That is YYYYMMDDNN
where NN
is the nth
update for that given day.