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/
/**
* @file tcl_purple.h Purple Tcl definitions
*
* purple
*
* Copyright (C) 2003 Ethan Blanton <eblanton@cs.purdue.edu>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
*/
#ifndef _PURPLE_TCL_PURPLE_H_
#define _PURPLE_TCL_PURPLE_H_
#include <tcl.h>
#include "internal.h"
#include "cmds.h"
#include "plugin.h"
#include "value.h"
#include "stringref.h"
struct tcl_signal_handler {
Tcl_Obj *signal;
Tcl_Interp *interp;
void *instance;
Tcl_Obj *namespace;
/* These following two are temporary during setup */
Tcl_Obj *args;
Tcl_Obj *proc;
PurpleValue *returntype;
int nargs;
PurpleValue **argtypes;
};
struct tcl_cmd_handler {
PurpleCmdId id;
Tcl_Obj *cmd;
Tcl_Interp *interp;
Tcl_Obj *namespace;
/* These are temporary during setup */
const char *args;
int priority;
int flags;
const char *prpl_id;
Tcl_Obj *proc;
const char *helpstr;
int nargs;
};
extern PurplePlugin *_tcl_plugin;
/* Capitalized this way because these are "types" */
extern PurpleStringref *PurpleTclRefAccount;
extern PurpleStringref *PurpleTclRefConnection;
extern PurpleStringref *PurpleTclRefConversation;
extern PurpleStringref *PurpleTclRefPointer;
extern PurpleStringref *PurpleTclRefPlugin;
extern PurpleStringref *PurpleTclRefPresence;
extern PurpleStringref *PurpleTclRefStatus;
extern PurpleStringref *PurpleTclRefStatusAttr;
extern PurpleStringref *PurpleTclRefStatusType;
extern PurpleStringref *PurpleTclRefXfer;
extern PurpleStringref *PurpleTclRefHandle;
PurplePlugin *tcl_interp_get_plugin(Tcl_Interp *interp);
void tcl_signal_init(void);
void tcl_signal_handler_free(struct tcl_signal_handler *handler);
void tcl_signal_cleanup(Tcl_Interp *interp);
gboolean tcl_signal_connect(struct tcl_signal_handler *handler);
void tcl_signal_disconnect(void *instance, const char *signal, Tcl_Interp *interp);
void tcl_cmd_init(void);
void tcl_cmd_handler_free(struct tcl_cmd_handler *handler);
void tcl_cmd_cleanup(Tcl_Interp *interp);
PurpleCmdId tcl_cmd_register(struct tcl_cmd_handler *handler);
void tcl_cmd_unregister(PurpleCmdId id, Tcl_Interp *interp);
void purple_tcl_ref_init(void);
void *purple_tcl_ref_get(Tcl_Interp *interp, Tcl_Obj *obj, PurpleStringref *type);
Tcl_Obj *purple_tcl_ref_new(PurpleStringref *type, void *value);
Tcl_ObjCmdProc tcl_cmd_account;
Tcl_ObjCmdProc tcl_cmd_signal_connect;
Tcl_ObjCmdProc tcl_cmd_buddy;
Tcl_ObjCmdProc tcl_cmd_cmd;
Tcl_ObjCmdProc tcl_cmd_connection;
Tcl_ObjCmdProc tcl_cmd_conversation;
Tcl_ObjCmdProc tcl_cmd_core;
Tcl_ObjCmdProc tcl_cmd_debug;
Tcl_ObjCmdProc tcl_cmd_notify;
Tcl_ObjCmdProc tcl_cmd_plugins;
Tcl_ObjCmdProc tcl_cmd_prefs;
Tcl_ObjCmdProc tcl_cmd_presence;
Tcl_ObjCmdProc tcl_cmd_savedstatus;
Tcl_ObjCmdProc tcl_cmd_send_im;
Tcl_ObjCmdProc tcl_cmd_signal;
Tcl_ObjCmdProc tcl_cmd_status;
Tcl_ObjCmdProc tcl_cmd_status_attr;
Tcl_ObjCmdProc tcl_cmd_status_type;
Tcl_ObjCmdProc tcl_cmd_unload;
#endif /* _PURPLE_TCL_PURPLE_H_ */