pidgin/pidgin

Make sure we remove all the files we install.
release-2.x.y
2021-04-11, Gary Kramlich
5407cbf3c5dd
Make sure we remove all the files we install.

Patch was provided by Johann Lochner.

Testing Done:
Build and ran the installer and uninstaller and verified that `C:\Program Files (x86)\Pidgin` was empty and therefore removed.

Bugs closed: PIDGIN-17515

Reviewed at https://reviews.imfreedom.org/r/612/
#include "module.h"
#include "../perl-handlers.h"
MODULE = Purple::Cmd PACKAGE = Purple::Cmd PREFIX = purple_cmd_
PROTOTYPES: ENABLE
BOOT:
{
HV *status_stash = gv_stashpv("Purple::Cmd::Status", 1);
HV *ret_stash = gv_stashpv("Purple::Cmd::Return", 1);
HV *p_stash = gv_stashpv("Purple::Cmd::Priority", 1);
HV *flag_stash = gv_stashpv("Purple::Cmd::Flag", 1);
static const constiv *civ, status_const_iv[] = {
#define const_iv(name) {#name, (IV)PURPLE_CMD_STATUS_##name}
const_iv(OK),
const_iv(FAILED),
const_iv(NOT_FOUND),
const_iv(WRONG_ARGS),
const_iv(WRONG_PRPL),
const_iv(WRONG_TYPE),
};
static const constiv ret_const_iv[] = {
#undef const_iv
#define const_iv(name) {#name, (IV)PURPLE_CMD_RET_##name}
const_iv(OK),
const_iv(FAILED),
const_iv(CONTINUE),
};
static const constiv p_const_iv[] = {
#undef const_iv
#define const_iv(name) {#name, (IV)PURPLE_CMD_P_##name}
const_iv(VERY_LOW),
const_iv(LOW),
const_iv(DEFAULT),
const_iv(PRPL),
const_iv(PLUGIN),
const_iv(ALIAS),
const_iv(HIGH),
const_iv(VERY_HIGH),
};
static const constiv flag_const_iv[] = {
#undef const_iv
#define const_iv(name) {#name, (IV)PURPLE_CMD_FLAG_##name}
const_iv(IM),
const_iv(CHAT),
const_iv(PRPL_ONLY),
const_iv(ALLOW_WRONG_ARGS),
};
for (civ = status_const_iv + sizeof(status_const_iv) / sizeof(status_const_iv[0]); civ-- > status_const_iv;)
newCONSTSUB(status_stash, (char *)civ->name, newSViv(civ->iv));
for (civ = ret_const_iv + sizeof(ret_const_iv) / sizeof(ret_const_iv[0]); civ-- > ret_const_iv;)
newCONSTSUB(ret_stash, (char *)civ->name, newSViv(civ->iv));
for (civ = p_const_iv + sizeof(p_const_iv) / sizeof(p_const_iv[0]); civ-- > p_const_iv;)
newCONSTSUB(p_stash, (char *)civ->name, newSViv(civ->iv));
for (civ = flag_const_iv + sizeof(flag_const_iv) / sizeof(flag_const_iv[0]); civ-- > flag_const_iv;)
newCONSTSUB(flag_stash, (char *)civ->name, newSViv(civ->iv));
}
void
purple_cmd_help(conv, command)
Purple::Conversation conv
const gchar *command
PREINIT:
GList *l, *ll;
PPCODE:
for (l = ll = purple_cmd_help(conv, command); l != NULL; l = l->next) {
XPUSHs(sv_2mortal(newSVpv(l->data, 0)));
}
g_list_free(ll);
void
purple_cmd_list(conv)
Purple::Conversation conv
PREINIT:
GList *l, *ll;
PPCODE:
for (l = ll = purple_cmd_list(conv); l != NULL; l = l->next) {
XPUSHs(sv_2mortal(newSVpv(l->data, 0)));
}
g_list_free(ll);
Purple::Cmd::Id
purple_cmd_register(plugin, command, args, priority, flag, prpl_id, func, helpstr, data = 0)
Purple::Plugin plugin
const gchar *command
const gchar *args
Purple::Cmd::Priority priority
Purple::Cmd::Flag flag
const gchar *prpl_id
SV *func
const gchar *helpstr
SV *data
CODE:
RETVAL = purple_perl_cmd_register(plugin, command, args, priority, flag,
prpl_id, func, helpstr, data);
OUTPUT:
RETVAL
void
purple_cmd_unregister(id)
Purple::Cmd::Id id
CODE:
purple_perl_cmd_unregister(id);