Fix leak that may occur when xmlnode_from_str fails
The failure may occur any time in the middle of parsing, and `xpd->current` may
not actually be pointing to the root of the parsed tree. Thus we need to walk
back up before freeing the xmlnode.
ItispossibletogetGtk2-Perltoworkwithlibpurple's Perl API, however you must not load the module with @c use, but rather with @c require. Keep this in mind if you would like to use other perl modules that are dynamically loaded. You can avoid the problem by always using @c require instead of @c use.
Inordertousethissimpleplugin,savethescripttextinafilewitha@c.plextensioninyour~/.purple/pluginsdirectory.AfterrestartingPidgin,youshouldseetheplugin("Perl Test Plugin")listedinthepluginlistunder"Tools -> Plugins".Toviewthedebugoutput,makesureyourunPidginfromtheconsolewiththe'-d'flagoropentheDebugWindowwhichisavailableinthe"Help"menu.Whenyoucheckthecheckboxnexttheplugin,youshouldseeamessageappearintheDebugWindow(orconsole);similarly,whenyouuncheckthecheckboxyoushouldseeanothermessageappear.Youhavenowcreatedaframeworkthatwillallowyoutocreatealmostanykindoflibpurplepluginyoucanimagine.