#include #include "plugin.h" unsigned int g_stringsize; stack_t **g_stacktop; char *g_variables; // utility functions (not required but often useful) int NSISCALL popstring(char *str) { stack_t *th; if (!g_stacktop || !*g_stacktop) return 1; th=(*g_stacktop); if (str) lstrcpyA(str,th->text); *g_stacktop = th->next; GlobalFree((HGLOBAL)th); return 0; } void NSISCALL pushstring(const char *str) { stack_t *th; if (!g_stacktop) return; th=(stack_t*)GlobalAlloc(GPTR,sizeof(stack_t)+g_stringsize); lstrcpynA(th->text,str,g_stringsize); th->next=*g_stacktop; *g_stacktop=th; } char * NSISCALL getuservariable(const int varnum) { if (varnum < 0 || varnum >= __INST_LAST) return NULL; return g_variables+varnum*g_stringsize; } void NSISCALL setuservariable(const int varnum, const char *var) { if (var != NULL && varnum >= 0 && varnum < __INST_LAST) lstrcpyA(g_variables + varnum*g_stringsize, var); }