Jim Park's Unicode NSIS merging - Step 1 : switch to TCHARs where relevant.
Compiler output is identical before & after this step git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/branches/wizou@6036 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
parent
4e48722b63
commit
752d7d239a
209 changed files with 9698 additions and 7658 deletions
|
@ -12,6 +12,8 @@
|
|||
*
|
||||
* This software is provided 'as-is', without any express or implied
|
||||
* warranty.
|
||||
*
|
||||
* Unicode support by Jim Park -- 08/13/2007
|
||||
*/
|
||||
|
||||
#include "../Platform.h"
|
||||
|
@ -27,6 +29,7 @@
|
|||
#include "lang.h"
|
||||
#include "resource.h"
|
||||
#include "api.h"
|
||||
#include "../tchar.h"
|
||||
|
||||
#define EXEC_ERROR 0x7FFFFFFF
|
||||
|
||||
|
@ -37,7 +40,7 @@ HWND g_SectionHack;
|
|||
#ifdef NSIS_SUPPORT_STACK
|
||||
typedef struct _stack_t {
|
||||
struct _stack_t *next;
|
||||
char text[NSIS_MAX_STRLEN];
|
||||
TCHAR text[NSIS_MAX_STRLEN];
|
||||
} stack_t;
|
||||
|
||||
static stack_t *g_st;
|
||||
|
@ -59,6 +62,11 @@ HRESULT g_hres;
|
|||
|
||||
static int NSISCALL ExecuteEntry(entry *entry_);
|
||||
|
||||
/**
|
||||
* If v is negative, then the address to resolve is actually
|
||||
* stored in the global user variables. Convert the value
|
||||
* to integer and return.
|
||||
*/
|
||||
int NSISCALL resolveaddr(int v)
|
||||
{
|
||||
if (v < 0)
|
||||
|
@ -107,7 +115,7 @@ int NSISCALL ExecuteCallbackFunction(int num)
|
|||
|
||||
#endif
|
||||
|
||||
static char bufs[5][NSIS_MAX_STRLEN];
|
||||
static TCHAR bufs[5][NSIS_MAX_STRLEN];
|
||||
static int *parms;
|
||||
|
||||
void NSISCALL update_status_text_buf1(int strtab)
|
||||
|
@ -123,10 +131,14 @@ static int NSISCALL GetIntFromParm(int id_)
|
|||
// NB - USE CAUTION when rearranging code to make use of the new return value of
|
||||
// this function - be sure the parm being accessed is not modified before the call.
|
||||
// Use a negative number to get the string validated as a file name
|
||||
static char * NSISCALL GetStringFromParm(int id_)
|
||||
// Note: Calling GetNSISString has the side effect that the buffer holding
|
||||
// the string to expand gets modified.
|
||||
// When calling this function with numbers like 0x13, it means create the string
|
||||
// from the string ID found in entry.offset[3] and put it into bufs[0].
|
||||
static TCHAR * NSISCALL GetStringFromParm(int id_)
|
||||
{
|
||||
int id = id_ < 0 ? -id_ : id_;
|
||||
char *result = GetNSISString(bufs[id >> 4], parms[id & 0xF]);
|
||||
TCHAR *result = GetNSISString(bufs[id >> 4], parms[id & 0xF]);
|
||||
if (id_ < 0) validate_filename(result);
|
||||
return result;
|
||||
}
|
||||
|
@ -145,7 +157,7 @@ static LONG NSISCALL myRegDeleteKeyEx(HKEY thiskey, LPCTSTR lpSubKey, int onlyif
|
|||
if (retval==ERROR_SUCCESS)
|
||||
{
|
||||
// NB - don't change this to static (recursive function)
|
||||
char buffer[MAX_PATH+1];
|
||||
TCHAR buffer[MAX_PATH+1];
|
||||
while (RegEnumKey(key,0,buffer,MAX_PATH+1)==ERROR_SUCCESS)
|
||||
{
|
||||
if (onlyifempty)
|
||||
|
@ -157,9 +169,9 @@ static LONG NSISCALL myRegDeleteKeyEx(HKEY thiskey, LPCTSTR lpSubKey, int onlyif
|
|||
}
|
||||
RegCloseKey(key);
|
||||
{
|
||||
typedef LONG (WINAPI * RegDeleteKeyExAPtr)(HKEY, LPCTSTR, REGSAM, DWORD);
|
||||
RegDeleteKeyExAPtr RDKE = (RegDeleteKeyExAPtr)
|
||||
myGetProcAddress(MGA_RegDeleteKeyExA);
|
||||
typedef LONG (WINAPI * RegDeleteKeyExPtr)(HKEY, LPCTSTR, REGSAM, DWORD);
|
||||
RegDeleteKeyExPtr RDKE = (RegDeleteKeyExPtr)
|
||||
myGetProcAddress(MGA_RegDeleteKeyEx);
|
||||
|
||||
if (RDKE)
|
||||
retval=RDKE(thiskey,lpSubKey,AlterRegistrySAM(0),0);
|
||||
|
@ -195,14 +207,14 @@ static HKEY NSISCALL myRegOpenKey(REGSAM samDesired)
|
|||
// otherwise, returns new_position+1
|
||||
static int NSISCALL ExecuteEntry(entry *entry_)
|
||||
{
|
||||
char *buf0 = bufs[0];
|
||||
char *buf1 = bufs[1];
|
||||
char *buf2 = bufs[2];
|
||||
char *buf3 = bufs[3];
|
||||
TCHAR *buf0 = bufs[0];
|
||||
TCHAR *buf1 = bufs[1];
|
||||
TCHAR *buf2 = bufs[2];
|
||||
TCHAR *buf3 = bufs[3];
|
||||
//char *buf4 = bufs[4];
|
||||
|
||||
char *var0;
|
||||
char *var1;
|
||||
TCHAR *var0;
|
||||
TCHAR *var1;
|
||||
//char *var2;
|
||||
//char *var3;
|
||||
//char *var4;
|
||||
|
@ -239,11 +251,11 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
switch (which)
|
||||
{
|
||||
case EW_NOP:
|
||||
log_printf2("Jump: %d",parm0);
|
||||
log_printf2(_T("Jump: %d"),parm0);
|
||||
return parm0;
|
||||
case EW_ABORT:
|
||||
{
|
||||
log_printf2("Aborting: \"%s\"",GetStringFromParm(0x00));
|
||||
log_printf2(_T("Aborting: \"%s\""),GetStringFromParm(0x00));
|
||||
update_status_text(parm0,0);
|
||||
}
|
||||
return EXEC_ERROR;
|
||||
|
@ -254,23 +266,23 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
case EW_CALL:
|
||||
{
|
||||
int v=resolveaddr(parm0)-1; // address is -1, since we encode it as +1
|
||||
log_printf2("Call: %d",v);
|
||||
log_printf2(_T("Call: %d"),v);
|
||||
return ExecuteCodeSegment(v,NULL);
|
||||
}
|
||||
case EW_UPDATETEXT:
|
||||
log_printf2("detailprint: %s",GetStringFromParm(0x00));
|
||||
log_printf2(_T("detailprint: %s"),GetStringFromParm(0x00));
|
||||
update_status_text(parm0,0);
|
||||
break;
|
||||
case EW_SLEEP:
|
||||
{
|
||||
int x=GetIntFromParm(0);
|
||||
log_printf2("Sleep(%d)",x);
|
||||
log_printf2(_T("Sleep(%d)"),x);
|
||||
Sleep(max(x,1));
|
||||
}
|
||||
break;
|
||||
#ifdef NSIS_CONFIG_VISIBLE_SUPPORT
|
||||
case EW_BRINGTOFRONT:
|
||||
log_printf("BringToFront");
|
||||
log_printf(_T("BringToFront"));
|
||||
SetForegroundWindow(g_hwnd);
|
||||
break;
|
||||
#endif//NSIS_CONFIG_VISIBLE_SUPPORT
|
||||
|
@ -302,44 +314,44 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
#endif//NSIS_CONFIG_VISIBLE_SUPPORT
|
||||
case EW_SETFILEATTRIBUTES:
|
||||
{
|
||||
char *buf1=GetStringFromParm(-0x10);
|
||||
log_printf3("SetFileAttributes: \"%s\":%08X",buf1,parm1);
|
||||
TCHAR *buf1=GetStringFromParm(-0x10);
|
||||
log_printf3(_T("SetFileAttributes: \"%s\":%08X"),buf1,parm1);
|
||||
if (!SetFileAttributes(buf1,parm1))
|
||||
{
|
||||
exec_error++;
|
||||
log_printf("SetFileAttributes failed.");
|
||||
log_printf(_T("SetFileAttributes failed."));
|
||||
}
|
||||
}
|
||||
break;
|
||||
case EW_CREATEDIR: {
|
||||
char *buf1=GetStringFromParm(-0x10);
|
||||
log_printf3("CreateDirectory: \"%s\" (%d)",buf1,parm1);
|
||||
TCHAR *buf1=GetStringFromParm(-0x10);
|
||||
log_printf3(_T("CreateDirectory: \"%s\" (%d)"),buf1,parm1);
|
||||
{
|
||||
char *p = skip_root(buf1);
|
||||
char c = 'c';
|
||||
TCHAR *p = skip_root(buf1);
|
||||
TCHAR c = _T('c');
|
||||
if (p)
|
||||
{
|
||||
while (c)
|
||||
{
|
||||
p = findchar(p, '\\');
|
||||
p = findchar(p, _T('\\'));
|
||||
c = *p;
|
||||
*p = 0;
|
||||
if (!CreateDirectory(buf1, NULL))
|
||||
{
|
||||
if (GetLastError() != ERROR_ALREADY_EXISTS)
|
||||
{
|
||||
log_printf3("CreateDirectory: can't create \"%s\" (err=%d)",buf1,GetLastError());
|
||||
{
|
||||
log_printf3(_T("CreateDirectory: can't create \"%s\" (err=%d)"),buf1,GetLastError());
|
||||
exec_error++;
|
||||
}
|
||||
else if ((GetFileAttributes(buf1) & FILE_ATTRIBUTE_DIRECTORY) == 0)
|
||||
{
|
||||
log_printf2("CreateDirectory: can't create \"%s\" - a file already exists",buf1);
|
||||
log_printf2(_T("CreateDirectory: can't create \"%s\" - a file already exists"),buf1);
|
||||
exec_error++;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
log_printf2("CreateDirectory: \"%s\" created",buf1);
|
||||
log_printf2(_T("CreateDirectory: \"%s\" created"),buf1);
|
||||
}
|
||||
*p++ = c;
|
||||
}
|
||||
|
@ -356,22 +368,22 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
break;
|
||||
case EW_IFFILEEXISTS:
|
||||
{
|
||||
char *buf0=GetStringFromParm(0x00);
|
||||
TCHAR *buf0=GetStringFromParm(0x00);
|
||||
if (file_exists(buf0))
|
||||
{
|
||||
log_printf3("IfFileExists: file \"%s\" exists, jumping %d",buf0,parm1);
|
||||
log_printf3(_T("IfFileExists: file \"%s\" exists, jumping %d"),buf0,parm1);
|
||||
return parm1;
|
||||
}
|
||||
log_printf3("IfFileExists: file \"%s\" does not exist, jumping %d",buf0,parm2);
|
||||
log_printf3(_T("IfFileExists: file \"%s\" does not exist, jumping %d"),buf0,parm2);
|
||||
}
|
||||
return parm2;
|
||||
#ifdef NSIS_SUPPORT_RENAME
|
||||
case EW_RENAME:
|
||||
{
|
||||
char *buf3=GetStringFromParm(-0x30);
|
||||
char *buf2=GetStringFromParm(-0x21);
|
||||
char *buf1=GetStringFromParm(0x13);
|
||||
log_printf2("Rename: %s",buf1);
|
||||
TCHAR *buf3=GetStringFromParm(-0x30);
|
||||
TCHAR *buf2=GetStringFromParm(-0x21);
|
||||
TCHAR *buf1=GetStringFromParm(0x13);
|
||||
log_printf2(_T("Rename: %s"),buf1);
|
||||
if (MoveFile(buf3,buf2))
|
||||
{
|
||||
update_status_text_buf1(LANG_RENAME);
|
||||
|
@ -383,13 +395,13 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
{
|
||||
MoveFileOnReboot(buf3,buf2);
|
||||
update_status_text_buf1(LANG_RENAMEONREBOOT);
|
||||
log_printf2("Rename on reboot: %s",buf1);
|
||||
log_printf2(_T("Rename on reboot: %s"),buf1);
|
||||
}
|
||||
else
|
||||
#endif
|
||||
{
|
||||
exec_error++;
|
||||
log_printf2("Rename failed: %s",buf1);
|
||||
log_printf2(_T("Rename failed: %s"),buf1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -398,9 +410,9 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
#ifdef NSIS_SUPPORT_FNUTIL
|
||||
case EW_GETFULLPATHNAME:
|
||||
{
|
||||
char *fp;
|
||||
char *p=var1;
|
||||
char *buf0=GetStringFromParm(0x00);
|
||||
TCHAR *fp;
|
||||
TCHAR *p=var1;
|
||||
TCHAR *buf0=GetStringFromParm(0x00);
|
||||
if (!GetFullPathName(buf0,NSIS_MAX_STRLEN,p,&fp))
|
||||
{
|
||||
exec_error++;
|
||||
|
@ -424,9 +436,9 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
break;
|
||||
case EW_SEARCHPATH:
|
||||
{
|
||||
char *fp;
|
||||
char *p=var0;
|
||||
char *buf0=GetStringFromParm(-0x01);
|
||||
TCHAR *fp;
|
||||
TCHAR *p=var0;
|
||||
TCHAR *buf0=GetStringFromParm(-0x01);
|
||||
if (!SearchPath(NULL,buf0,NULL,NSIS_MAX_STRLEN,p,&fp))
|
||||
{
|
||||
exec_error++;
|
||||
|
@ -436,7 +448,7 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
break;
|
||||
case EW_GETTEMPFILENAME:
|
||||
{
|
||||
char *textout=var0;
|
||||
TCHAR *textout=var0;
|
||||
if (!my_GetTempFileName(textout, GetStringFromParm(-0x11)))
|
||||
exec_error++;
|
||||
}
|
||||
|
@ -447,10 +459,10 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
{
|
||||
HANDLE hOut;
|
||||
int ret;
|
||||
char *buf3 = GetStringFromParm(0x31);
|
||||
TCHAR *buf3 = GetStringFromParm(0x31);
|
||||
int overwriteflag = parm0 & 7;
|
||||
|
||||
log_printf4("File: overwriteflag=%d, allowskipfilesflag=%d, name=\"%s\"",overwriteflag,(parm0>>3)&MB_ABORTRETRYIGNORE,buf3);
|
||||
log_printf4(_T("File: overwriteflag=%d, allowskipfilesflag=%d, name=\"%s\""),overwriteflag,(parm0>>3)&MB_ABORTRETRYIGNORE,buf3);
|
||||
if (validpathspec(buf3))
|
||||
{
|
||||
mystrcpy(buf0,buf3);
|
||||
|
@ -481,10 +493,10 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
{
|
||||
update_status_text(LANG_SKIPPED,buf3);
|
||||
if (overwriteflag==2) exec_error++;
|
||||
log_printf3("File: skipped: \"%s\" (overwriteflag=%d)",buf0,overwriteflag);
|
||||
log_printf3(_T("File: skipped: \"%s\" (overwriteflag=%d)"),buf0,overwriteflag);
|
||||
break;
|
||||
}
|
||||
log_printf2("File: error creating \"%s\"",buf0);
|
||||
log_printf2(_T("File: error creating \"%s\""),buf0);
|
||||
|
||||
mystrcpy(buf2,g_usrvars[0]); // save $0
|
||||
mystrcpy(g_usrvars[0],buf0); // copy file name to $0
|
||||
|
@ -495,14 +507,14 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
switch (my_MessageBox(buf1, parm0>>3))
|
||||
{
|
||||
case IDRETRY:
|
||||
log_printf("File: error, user retry");
|
||||
log_printf(_T("File: error, user retry"));
|
||||
goto _tryagain;
|
||||
case IDIGNORE:
|
||||
log_printf("File: error, user cancel");
|
||||
log_printf(_T("File: error, user cancel"));
|
||||
g_exec_flags.exec_error++;
|
||||
return 0;
|
||||
default:
|
||||
log_printf("File: error, user abort");
|
||||
log_printf(_T("File: error, user abort"));
|
||||
update_status_text(LANG_CANTWRITE,buf0);
|
||||
return EXEC_ERROR;
|
||||
}
|
||||
|
@ -515,7 +527,7 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
g_exec_flags.status_update--;
|
||||
}
|
||||
|
||||
log_printf3("File: wrote %d to \"%s\"",ret,buf0);
|
||||
log_printf3(_T("File: wrote %d to \"%s\""),ret,buf0);
|
||||
|
||||
if (parm3 != 0xffffffff || parm4 != 0xffffffff)
|
||||
SetFileTime(hOut,(FILETIME*)(lent.offsets+3),NULL,(FILETIME*)(lent.offsets+3));
|
||||
|
@ -533,7 +545,7 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
{
|
||||
GetNSISString(buf0,LANG_ERRORDECOMPRESSING);
|
||||
}
|
||||
log_printf2("%s",buf0);
|
||||
log_printf2(_T("%s"),buf0);
|
||||
my_MessageBox(buf0,MB_OK|MB_ICONSTOP|(IDOK<<21));
|
||||
return EXEC_ERROR;
|
||||
}
|
||||
|
@ -543,8 +555,8 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
#ifdef NSIS_SUPPORT_DELETE
|
||||
case EW_DELETEFILE:
|
||||
{
|
||||
char *buf0=GetStringFromParm(0x00);
|
||||
log_printf2("Delete: \"%s\"",buf0);
|
||||
TCHAR *buf0=GetStringFromParm(0x00);
|
||||
log_printf2(_T("Delete: \"%s\""),buf0);
|
||||
myDelete(buf0,parm1);
|
||||
}
|
||||
break;
|
||||
|
@ -553,8 +565,8 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
case EW_MESSAGEBOX: // MessageBox
|
||||
{
|
||||
int v;
|
||||
char *buf3=GetStringFromParm(0x31);
|
||||
log_printf3("MessageBox: %d,\"%s\"",parm0,buf3);
|
||||
TCHAR *buf3=GetStringFromParm(0x31);
|
||||
log_printf3(_T("MessageBox: %d,\"%s\""),parm0,buf3);
|
||||
v=my_MessageBox(buf3,parm0);
|
||||
if (v)
|
||||
{
|
||||
|
@ -574,8 +586,8 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
#ifdef NSIS_SUPPORT_RMDIR
|
||||
case EW_RMDIR:
|
||||
{
|
||||
char *buf1=GetStringFromParm(-0x10);
|
||||
log_printf2("RMDir: \"%s\"",buf1);
|
||||
TCHAR *buf1=GetStringFromParm(-0x10);
|
||||
log_printf2(_T("RMDir: \"%s\""),buf1);
|
||||
|
||||
myDelete(buf1,parm1);
|
||||
}
|
||||
|
@ -584,7 +596,7 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
#ifdef NSIS_SUPPORT_STROPTS
|
||||
case EW_STRLEN:
|
||||
{
|
||||
char *buf0=GetStringFromParm(0x01);
|
||||
TCHAR *buf0=GetStringFromParm(0x01);
|
||||
myitoa(var0,mystrlen(buf0));
|
||||
}
|
||||
break;
|
||||
|
@ -593,8 +605,8 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
int newlen=GetIntFromParm(2);
|
||||
int start=GetIntFromParm(3);
|
||||
int l;
|
||||
char *p=var0;
|
||||
char *buf0=GetStringFromParm(0x01);
|
||||
TCHAR *p=var0;
|
||||
TCHAR *buf0=GetStringFromParm(0x01);
|
||||
*p=0;
|
||||
if (!parm2 || newlen)
|
||||
{
|
||||
|
@ -617,8 +629,8 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
break;
|
||||
case EW_STRCMP:
|
||||
{
|
||||
char *buf2=GetStringFromParm(0x20);
|
||||
char *buf3=GetStringFromParm(0x31);
|
||||
TCHAR *buf2=GetStringFromParm(0x20);
|
||||
TCHAR *buf3=GetStringFromParm(0x31);
|
||||
if (!parm4) {
|
||||
// case insensitive
|
||||
if (!lstrcmpi(buf2,buf3)) return parm2;
|
||||
|
@ -633,8 +645,8 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
#ifdef NSIS_SUPPORT_ENVIRONMENT
|
||||
case EW_READENVSTR:
|
||||
{
|
||||
char *p=var0;
|
||||
char *buf0=GetStringFromParm(0x01);
|
||||
TCHAR *p=var0;
|
||||
TCHAR *buf0=GetStringFromParm(0x01);
|
||||
if (!ExpandEnvironmentStrings(buf0,p,NSIS_MAX_STRLEN)
|
||||
|| (parm2 && !lstrcmp(buf0, p)))
|
||||
{
|
||||
|
@ -666,7 +678,7 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
case EW_INTOP:
|
||||
{
|
||||
int v,v2;
|
||||
char *p=var0;
|
||||
TCHAR *p=var0;
|
||||
v=GetIntFromParm(1);
|
||||
v2=GetIntFromParm(2);
|
||||
switch (parm3)
|
||||
|
@ -689,7 +701,7 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
}
|
||||
break;
|
||||
case EW_INTFMT: {
|
||||
char *buf0=GetStringFromParm(0x01);
|
||||
TCHAR *buf0=GetStringFromParm(0x01);
|
||||
wsprintf(var0,
|
||||
buf0,
|
||||
GetIntFromParm(2));
|
||||
|
@ -706,7 +718,7 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
while (cnt--&&s) s=s->next;
|
||||
if (!s)
|
||||
{
|
||||
log_printf2("Exch: stack < %d elements",parm2);
|
||||
log_printf2(_T("Exch: stack < %d elements"),parm2);
|
||||
my_MessageBox(GetNSISStringTT(LANG_INSTCORRUPTED),MB_OK|MB_ICONSTOP|(IDOK<<21));
|
||||
return EXEC_ERROR;
|
||||
}
|
||||
|
@ -718,7 +730,7 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
{
|
||||
if (!s)
|
||||
{
|
||||
log_printf("Pop: stack empty");
|
||||
log_printf(_T("Pop: stack empty"));
|
||||
exec_error++;
|
||||
break;
|
||||
}
|
||||
|
@ -752,12 +764,15 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
int msg=GetIntFromParm(2);
|
||||
|
||||
if (parm5>>2) exec_error += !SendMessageTimeout(hwnd,msg,b3,b4,SMTO_NORMAL,parm5>>2,(LPDWORD)&v);
|
||||
// Jim Park: This sends script messages. Some messages require
|
||||
// settings for Unicode. This means the user's script may need
|
||||
// to change for Unicode NSIS.
|
||||
else v=SendMessage(hwnd,msg,b3,b4);
|
||||
}
|
||||
else
|
||||
{
|
||||
char *buf0=GetStringFromParm(0x01);
|
||||
char *buf1=GetStringFromParm(0x12);
|
||||
TCHAR *buf0=GetStringFromParm(0x01);
|
||||
TCHAR *buf1=GetStringFromParm(0x12);
|
||||
v=(int)FindWindowEx((HWND)b3,(HWND)b4,buf0[0]?buf0:NULL,buf1[0]?buf1:NULL);
|
||||
}
|
||||
|
||||
|
@ -825,7 +840,7 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
{
|
||||
HWND hw=(HWND)GetIntFromParm(0);
|
||||
int a=GetIntFromParm(1);
|
||||
if (parm2) log_printf("HideWindow");
|
||||
if (parm2) log_printf(_T("HideWindow"));
|
||||
if (!parm3)
|
||||
ShowWindow(hw,a);
|
||||
else
|
||||
|
@ -838,20 +853,20 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
case EW_SHELLEXEC: // this uses improvements of Andras Varga
|
||||
{
|
||||
int x;
|
||||
char *buf0=GetStringFromParm(0x00);
|
||||
char *buf3=GetStringFromParm(0x31);
|
||||
char *buf2=GetStringFromParm(0x22);
|
||||
char *buf1=GetStringFromParm(0x15);
|
||||
TCHAR *buf0=GetStringFromParm(0x00);
|
||||
TCHAR *buf3=GetStringFromParm(0x31);
|
||||
TCHAR *buf2=GetStringFromParm(0x22);
|
||||
TCHAR *buf1=GetStringFromParm(0x15);
|
||||
update_status_text_buf1(LANG_EXECSHELL);
|
||||
x=(int)ShellExecute(g_hwnd,buf0[0]?buf0:NULL,buf3,buf2[0]?buf2:NULL,state_output_directory,parm3);
|
||||
if (x < 33)
|
||||
{
|
||||
log_printf5("ExecShell: warning: error (\"%s\": file:\"%s\" params:\"%s\")=%d",buf0,buf3,buf2,x);
|
||||
log_printf5(_T("ExecShell: warning: error (\"%s\": file:\"%s\" params:\"%s\")=%d"),buf0,buf3,buf2,x);
|
||||
exec_error++;
|
||||
}
|
||||
else
|
||||
{
|
||||
log_printf4("ExecShell: success (\"%s\": file:\"%s\" params:\"%s\")",buf0,buf3,buf2);
|
||||
log_printf4(_T("ExecShell: success (\"%s\": file:\"%s\" params:\"%s\")"),buf0,buf3,buf2);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -860,15 +875,15 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
case EW_EXECUTE:
|
||||
{
|
||||
HANDLE hProc;
|
||||
char *buf0=GetStringFromParm(0x00);
|
||||
log_printf2("Exec: command=\"%s\"",buf0);
|
||||
TCHAR *buf0=GetStringFromParm(0x00);
|
||||
log_printf2(_T("Exec: command=\"%s\""),buf0);
|
||||
update_status_text(LANG_EXECUTE,buf0);
|
||||
|
||||
hProc=myCreateProcess(buf0);
|
||||
|
||||
if (hProc)
|
||||
{
|
||||
log_printf2("Exec: success (\"%s\")",buf0);
|
||||
log_printf2(_T("Exec: success (\"%s\")"),buf0);
|
||||
if (parm2)
|
||||
{
|
||||
DWORD lExitCode;
|
||||
|
@ -886,7 +901,7 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
else
|
||||
{
|
||||
exec_error++;
|
||||
log_printf2("Exec: failed createprocess (\"%s\")",buf0);
|
||||
log_printf2(_T("Exec: failed createprocess (\"%s\")"),buf0);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -898,9 +913,9 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
// also allows GetFileTime to be passed a wildcard.
|
||||
{
|
||||
WIN32_FIND_DATA *ffd;
|
||||
char *highout=var0;
|
||||
char *lowout=var1;
|
||||
char *buf0=GetStringFromParm(0x02);
|
||||
TCHAR *highout=var0;
|
||||
TCHAR *lowout=var1;
|
||||
TCHAR *buf0=GetStringFromParm(0x02);
|
||||
|
||||
ffd=file_exists(buf0);
|
||||
if (ffd)
|
||||
|
@ -919,12 +934,12 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
#ifdef NSIS_SUPPORT_GETDLLVERSION
|
||||
case EW_GETDLLVERSION:
|
||||
{
|
||||
char *highout=var0;
|
||||
char *lowout=var1;
|
||||
TCHAR *highout=var0;
|
||||
TCHAR *lowout=var1;
|
||||
DWORD s1;
|
||||
VS_FIXEDFILEINFO *pvsf1;
|
||||
DWORD d;
|
||||
char *buf1=GetStringFromParm(-0x12);
|
||||
TCHAR *buf1=GetStringFromParm(-0x12);
|
||||
s1=GetFileVersionInfoSize(buf1,&d);
|
||||
*lowout=*highout=0;
|
||||
exec_error++;
|
||||
|
@ -935,7 +950,7 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
if (b1)
|
||||
{
|
||||
UINT uLen;
|
||||
if (GetFileVersionInfo(buf1,0,s1,b1) && VerQueryValue(b1,"\\",(void*)&pvsf1,&uLen))
|
||||
if (GetFileVersionInfo(buf1,0,s1,b1) && VerQueryValue(b1,_T("\\"),(void*)&pvsf1,&uLen))
|
||||
{
|
||||
myitoa(highout,pvsf1->dwFileVersionMS);
|
||||
myitoa(lowout,pvsf1->dwFileVersionLS);
|
||||
|
@ -955,8 +970,8 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
if (SUCCEEDED(g_hres))
|
||||
{
|
||||
HANDLE h=NULL;
|
||||
char *buf1=GetStringFromParm(-0x10);
|
||||
char *buf0=GetStringFromParm(0x01);
|
||||
TCHAR *buf1=GetStringFromParm(-0x10);
|
||||
TCHAR *buf0=GetStringFromParm(0x01);
|
||||
|
||||
if (parm4)
|
||||
h=GetModuleHandle(buf1);
|
||||
|
@ -975,12 +990,12 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
}
|
||||
else
|
||||
{
|
||||
void (*func)(HWND,int,char*,void*,void*);
|
||||
void (*func)(HWND,int,TCHAR*,void*,void*);
|
||||
func=(void*)funke;
|
||||
func(
|
||||
g_hwnd,
|
||||
NSIS_MAX_STRLEN,
|
||||
(char*)g_usrvars,
|
||||
(TCHAR*)g_usrvars,
|
||||
#ifdef NSIS_SUPPORT_STACK
|
||||
(void*)&g_st,
|
||||
#else
|
||||
|
@ -993,20 +1008,20 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
else
|
||||
{
|
||||
update_status_text(LANG_CANNOTFINDSYMBOL,buf0);
|
||||
log_printf3("Error registering DLL: %s not found in %s",buf0,buf1);
|
||||
log_printf3(_T("Error registering DLL: %s not found in %s"),buf0,buf1);
|
||||
}
|
||||
if (!parm3 && Plugins_CanUnload(h)) FreeLibrary(h);
|
||||
}
|
||||
else
|
||||
{
|
||||
update_status_text_buf1(LANG_COULDNOTLOAD);
|
||||
log_printf2("Error registering DLL: Could not load %s",buf1);
|
||||
log_printf2(_T("Error registering DLL: Could not load %s"),buf1);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
update_status_text_buf1(LANG_NOOLE);
|
||||
log_printf("Error registering DLL: Could not initialize OLE");
|
||||
log_printf(_T("Error registering DLL: Could not initialize OLE"));
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -1014,11 +1029,11 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
#ifdef NSIS_SUPPORT_CREATESHORTCUT
|
||||
case EW_CREATESHORTCUT:
|
||||
{
|
||||
char *buf1=GetStringFromParm(-0x10);
|
||||
char *buf2=GetStringFromParm(-0x21);
|
||||
char *buf0=GetStringFromParm(0x02);
|
||||
char *buf3=GetStringFromParm(-0x33);
|
||||
char *buf4=GetStringFromParm(0x45);
|
||||
TCHAR *buf1=GetStringFromParm(-0x10);
|
||||
TCHAR *buf2=GetStringFromParm(-0x21);
|
||||
TCHAR *buf0=GetStringFromParm(0x02);
|
||||
TCHAR *buf3=GetStringFromParm(-0x33);
|
||||
TCHAR *buf4=GetStringFromParm(0x45);
|
||||
|
||||
HRESULT hres;
|
||||
IShellLink* psl;
|
||||
|
@ -1026,7 +1041,7 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
if (!validpathspec(buf2))
|
||||
GetStringFromParm(0x21);
|
||||
|
||||
log_printf8("CreateShortCut: out: \"%s\", in: \"%s %s\", icon: %s,%d, sw=%d, hk=%d",
|
||||
log_printf8(_T("CreateShortCut: out: \"%s\", in: \"%s %s\", icon: %s,%d, sw=%d, hk=%d"),
|
||||
buf1,buf2,buf0,buf3,parm4&0xff,(parm4&0xff00)>>8,parm4>>16);
|
||||
|
||||
hres = CoCreateInstance(&CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER,
|
||||
|
@ -1075,10 +1090,10 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
{
|
||||
int res;
|
||||
SHFILEOPSTRUCT op;
|
||||
char *buf0=GetStringFromParm(0x00);
|
||||
char *buf1=GetStringFromParm(0x11);
|
||||
char *buf2=GetStringFromParm(0x23); // LANG_COPYTO + buf1
|
||||
log_printf3("CopyFiles \"%s\"->\"%s\"",buf0,buf1);
|
||||
TCHAR *buf0=GetStringFromParm(0x00);
|
||||
TCHAR *buf1=GetStringFromParm(0x11);
|
||||
TCHAR *buf2=GetStringFromParm(0x23); // LANG_COPYTO + buf1
|
||||
log_printf3(_T("CopyFiles \"%s\"->\"%s\""),buf0,buf1);
|
||||
|
||||
if (!file_exists(buf0))
|
||||
{
|
||||
|
@ -1127,9 +1142,9 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
#ifdef NSIS_SUPPORT_INIFILES
|
||||
case EW_WRITEINI:
|
||||
{
|
||||
char *sec=0, *key=0, *str=0;
|
||||
TCHAR *sec=0, *key=0, *str=0;
|
||||
#ifdef NSIS_CONFIG_LOG
|
||||
mystrcpy(buf1,"<RM>");
|
||||
mystrcpy(buf1,_T("<RM>"));
|
||||
mystrcpy(buf2,buf1);
|
||||
#endif
|
||||
if (parm0)
|
||||
|
@ -1145,18 +1160,18 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
str=GetStringFromParm(0x22);
|
||||
}
|
||||
buf3=GetStringFromParm(-0x33);
|
||||
log_printf5("WriteINIStr: wrote [%s] %s=%s in %s",buf0,buf1,buf2,buf3);
|
||||
log_printf5(_T("WriteINIStr: wrote [%s] %s=%s in %s"),buf0,buf1,buf2,buf3);
|
||||
if (!WritePrivateProfileString(sec,key,str,buf3)) exec_error++;
|
||||
}
|
||||
break;
|
||||
case EW_READINISTR:
|
||||
{
|
||||
DWORD errstr = CHAR4_TO_DWORD('!', 'N', '~', 0);
|
||||
char *p=var0;
|
||||
char *buf0=GetStringFromParm(0x01);
|
||||
char *buf1=GetStringFromParm(0x12);
|
||||
char *buf2=GetStringFromParm(-0x23);
|
||||
GetPrivateProfileString(buf0,buf1,(LPCSTR)&errstr,p,NSIS_MAX_STRLEN-1,buf2);
|
||||
DWORD errstr = CHAR4_TO_DWORD(_T('!'), _T('N'), _T('~'), 0);
|
||||
TCHAR *p=var0;
|
||||
TCHAR *buf0=GetStringFromParm(0x01);
|
||||
TCHAR *buf1=GetStringFromParm(0x12);
|
||||
TCHAR *buf2=GetStringFromParm(-0x23);
|
||||
GetPrivateProfileString(buf0,buf1,(LPCTSTR)&errstr,p,NSIS_MAX_STRLEN-1,buf2);
|
||||
if (*(DWORD*)p == errstr)
|
||||
{
|
||||
exec_error++;
|
||||
|
@ -1169,22 +1184,22 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
case EW_DELREG:
|
||||
{
|
||||
long res=!ERROR_SUCCESS;
|
||||
const char *rkn UNUSED=RegKeyHandleToName((HKEY)parm1);
|
||||
const TCHAR *rkn UNUSED=RegKeyHandleToName((HKEY)parm1);
|
||||
if (!parm4)
|
||||
{
|
||||
HKEY hKey=myRegOpenKey(KEY_SET_VALUE);
|
||||
if (hKey)
|
||||
{
|
||||
char *buf3=GetStringFromParm(0x33);
|
||||
TCHAR *buf3=GetStringFromParm(0x33);
|
||||
res = RegDeleteValue(hKey,buf3);
|
||||
log_printf4("DeleteRegValue: \"%s\\%s\" \"%s\"",rkn,buf2,buf3);
|
||||
log_printf4(_T("DeleteRegValue: \"%s\\%s\" \"%s\""),rkn,buf2,buf3);
|
||||
RegCloseKey(hKey);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
char *buf2=GetStringFromParm(0x22);
|
||||
log_printf3("DeleteRegKey: \"%s\\%s\"",rkn,buf2);
|
||||
TCHAR *buf2=GetStringFromParm(0x22);
|
||||
log_printf3(_T("DeleteRegKey: \"%s\\%s\""),rkn,buf2);
|
||||
res = myRegDeleteKeyEx(GetRegRootKey(parm1),buf2,parm4&2);
|
||||
}
|
||||
if (res != ERROR_SUCCESS)
|
||||
|
@ -1197,9 +1212,9 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
HKEY rootkey=GetRegRootKey(parm0);
|
||||
int type=parm4;
|
||||
int rtype=parm5;
|
||||
char *buf0=GetStringFromParm(0x02);
|
||||
char *buf1=GetStringFromParm(0x11);
|
||||
const char *rkn UNUSED=RegKeyHandleToName(rootkey);
|
||||
TCHAR *buf0=GetStringFromParm(0x02);
|
||||
TCHAR *buf1=GetStringFromParm(0x11);
|
||||
const TCHAR *rkn UNUSED=RegKeyHandleToName(rootkey);
|
||||
|
||||
exec_error++;
|
||||
if (RegCreateKeyEx(rootkey,buf1,0,0,0,AlterRegistrySAM(KEY_SET_VALUE),0,&hKey,0) == ERROR_SUCCESS)
|
||||
|
@ -1209,31 +1224,31 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
if (type == REG_SZ)
|
||||
{
|
||||
GetStringFromParm(0x23);
|
||||
size = mystrlen((char *) data) + 1;
|
||||
size = (mystrlen((TCHAR *) data) + 1)*sizeof(TCHAR);
|
||||
if (rtype == REG_SZ)
|
||||
{
|
||||
log_printf5("WriteRegStr: \"%s\\%s\" \"%s\"=\"%s\"",rkn,buf1,buf0,data);
|
||||
log_printf5(_T("WriteRegStr: \"%s\\%s\" \"%s\"=\"%s\""),rkn,buf1,buf0,data);
|
||||
}
|
||||
else
|
||||
{
|
||||
log_printf5("WriteRegExpandStr: \"%s\\%s\" \"%s\"=\"%s\"",rkn,buf1,buf0,data);
|
||||
log_printf5(_T("WriteRegExpandStr: \"%s\\%s\" \"%s\"=\"%s\""),rkn,buf1,buf0,data);
|
||||
}
|
||||
}
|
||||
if (type == REG_DWORD)
|
||||
{
|
||||
*(LPDWORD) data = GetIntFromParm(3);
|
||||
size = sizeof(DWORD);
|
||||
log_printf5("WriteRegDWORD: \"%s\\%s\" \"%s\"=\"0x%08x\"",rkn,buf1,buf0,*(LPDWORD) data);
|
||||
log_printf5(_T("WriteRegDWORD: \"%s\\%s\" \"%s\"=\"0x%08x\""),rkn,buf1,buf0,*(LPDWORD) data);
|
||||
}
|
||||
if (type == REG_BINARY)
|
||||
{
|
||||
#ifdef NSIS_CONFIG_LOG
|
||||
char binbuf[128];
|
||||
TCHAR binbuf[128];
|
||||
#endif
|
||||
// use buf2, buf3 and buf4
|
||||
size = GetCompressedDataFromDataBlockToMemory(parm3, data, 3 * NSIS_MAX_STRLEN);
|
||||
size = GetCompressedDataFromDataBlockToMemory(parm3, data, (3 * NSIS_MAX_STRLEN)*sizeof(TCHAR));
|
||||
LogData2Hex(binbuf, sizeof(binbuf), data, size);
|
||||
log_printf5("WriteRegBin: \"%s\\%s\" \"%s\"=\"%s\"",rkn,buf1,buf0,binbuf);
|
||||
log_printf5(_T("WriteRegBin: \"%s\\%s\" \"%s\"=\"%s\""),rkn,buf1,buf0,binbuf);
|
||||
}
|
||||
|
||||
if (size >= 0 && RegSetValueEx(hKey,buf0,0,rtype,data,size) == ERROR_SUCCESS)
|
||||
|
@ -1242,19 +1257,19 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
}
|
||||
else
|
||||
{
|
||||
log_printf4("WriteReg: error writing into \"%s\\%s\" \"%s\"",rkn,buf1,buf0);
|
||||
log_printf4(_T("WriteReg: error writing into \"%s\\%s\" \"%s\""),rkn,buf1,buf0);
|
||||
}
|
||||
|
||||
RegCloseKey(hKey);
|
||||
}
|
||||
else { log_printf3("WriteReg: error creating key \"%s\\%s\"",rkn,buf1); }
|
||||
else { log_printf3(_T("WriteReg: error creating key \"%s\\%s\""),rkn,buf1); }
|
||||
}
|
||||
break;
|
||||
case EW_READREGSTR: // read registry string
|
||||
{
|
||||
HKEY hKey=myRegOpenKey(KEY_READ);
|
||||
char *p=var0;
|
||||
char *buf3=GetStringFromParm(0x33); // buf3 == key name
|
||||
TCHAR *p=var0;
|
||||
TCHAR *buf3=GetStringFromParm(0x33); // buf3 == key name
|
||||
p[0]=0;
|
||||
if (hKey)
|
||||
{
|
||||
|
@ -1288,7 +1303,7 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
case EW_REGENUM:
|
||||
{
|
||||
HKEY key=myRegOpenKey(KEY_READ);
|
||||
char *p=var0;
|
||||
TCHAR *p=var0;
|
||||
int b=GetIntFromParm(3);
|
||||
p[0]=0;
|
||||
if (key)
|
||||
|
@ -1311,15 +1326,15 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
#ifdef NSIS_SUPPORT_FILEFUNCTIONS
|
||||
case EW_FCLOSE:
|
||||
{
|
||||
char *t=var0;
|
||||
TCHAR *t=var0;
|
||||
if (*t) CloseHandle((HANDLE)myatoi(t));
|
||||
}
|
||||
break;
|
||||
case EW_FOPEN:
|
||||
{
|
||||
HANDLE h;
|
||||
char *handleout=var0;
|
||||
char *buf1=GetStringFromParm(-0x13);
|
||||
TCHAR *handleout=var0;
|
||||
TCHAR *buf1=GetStringFromParm(-0x13);
|
||||
h=myOpenFile(buf1,parm1,parm2);
|
||||
if (h == INVALID_HANDLE_VALUE)
|
||||
{
|
||||
|
@ -1336,8 +1351,8 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
{
|
||||
DWORD dw;
|
||||
int l;
|
||||
char *t=var0;
|
||||
if (parm2)
|
||||
TCHAR *t=var0;
|
||||
if (parm2) // WriteByte
|
||||
{
|
||||
((unsigned char *)buf1)[0]=GetIntFromParm(1)&0xff;
|
||||
l=1;
|
||||
|
@ -1368,7 +1383,7 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
while (rpos<maxlen)
|
||||
{
|
||||
char c;
|
||||
if (!ReadFile(h,&c,1,&dw,NULL) || dw != 1) break;
|
||||
if (!ReadFile(h,&c,sizeof(c),&dw,NULL) || dw != sizeof(c)) break;
|
||||
if (parm3)
|
||||
{
|
||||
myitoa(textout,(unsigned int)(unsigned char)c);
|
||||
|
@ -1376,7 +1391,7 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
}
|
||||
if (lc == '\r' || lc == '\n')
|
||||
{
|
||||
if (lc == c || (c != '\r' && c != '\n')) SetFilePointer(h,-1,NULL,FILE_CURRENT);
|
||||
if (lc == c || (c != '\r' && c != '\n')) SetFilePointer(h,-((int)(sizeof(c))),NULL,FILE_CURRENT);
|
||||
else textout[rpos++]=c;
|
||||
break;
|
||||
}
|
||||
|
@ -1391,7 +1406,7 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
break;
|
||||
case EW_FSEEK:
|
||||
{
|
||||
char *t=var0;
|
||||
TCHAR *t=var0;
|
||||
if (*t)
|
||||
{
|
||||
DWORD v=SetFilePointer((HANDLE)myatoi(t),GetIntFromParm(2),NULL,parm3);
|
||||
|
@ -1407,14 +1422,14 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
#ifdef NSIS_SUPPORT_FINDFIRST
|
||||
case EW_FINDCLOSE:
|
||||
{
|
||||
char *t=var0;
|
||||
TCHAR *t=var0;
|
||||
if (*t) FindClose((HANDLE)myatoi(t));
|
||||
}
|
||||
break;
|
||||
case EW_FINDNEXT:
|
||||
{
|
||||
char *textout=var0;
|
||||
char *t=var1;
|
||||
TCHAR *textout=var0;
|
||||
TCHAR *t=var1;
|
||||
WIN32_FIND_DATA fd;
|
||||
if (*t && FindNextFile((HANDLE)myatoi(t),&fd))
|
||||
{
|
||||
|
@ -1430,11 +1445,11 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
break;
|
||||
case EW_FINDFIRST:
|
||||
{
|
||||
char *textout=var0;
|
||||
char *handleout=var1;
|
||||
TCHAR *textout=var0;
|
||||
TCHAR *handleout=var1;
|
||||
HANDLE h;
|
||||
WIN32_FIND_DATA fd;
|
||||
char *buf0=GetStringFromParm(0x02);
|
||||
TCHAR *buf0=GetStringFromParm(0x02);
|
||||
h=FindFirstFile(buf0,&fd);
|
||||
if (h == INVALID_HANDLE_VALUE)
|
||||
{
|
||||
|
@ -1455,7 +1470,7 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
{
|
||||
int ret=-666;
|
||||
HANDLE hFile;
|
||||
char *buf1=GetStringFromParm(-0x10);
|
||||
TCHAR *buf1=GetStringFromParm(-0x10);
|
||||
|
||||
if (!validpathspec(buf1))
|
||||
GetStringFromParm(-0x13);
|
||||
|
@ -1473,6 +1488,8 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
SetSelfFilePointer(0);
|
||||
ReadSelfFile((char*)filebuf,filehdrsize);
|
||||
{
|
||||
// parm1 = uninstdata_offset
|
||||
// parm2 = m_unicon_size
|
||||
unsigned char* seeker;
|
||||
unsigned char* unicon_data = seeker = (unsigned char*)GlobalAlloc(GPTR,parm2);
|
||||
if (unicon_data) {
|
||||
|
@ -1495,7 +1512,7 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
}
|
||||
CloseHandle(hFile);
|
||||
}
|
||||
log_printf3("created uninstaller: %d, \"%s\"",ret,buf1);
|
||||
log_printf3(_T("created uninstaller: %d, \"%s\""),ret,buf1);
|
||||
{
|
||||
int str = LANG_CREATEDUNINST;
|
||||
if (ret < 0)
|
||||
|
@ -1513,9 +1530,9 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
case EW_LOG:
|
||||
if (parm0)
|
||||
{
|
||||
log_printf2("settings logging to %d",parm1);
|
||||
log_printf2(_T("settings logging to %d"),parm1);
|
||||
log_dolog=parm1;
|
||||
log_printf2("logging set to %d",parm1);
|
||||
log_printf2(_T("logging set to %d"),parm1);
|
||||
#if !defined(NSIS_CONFIG_LOG_ODS) && !defined(NSIS_CONFIG_LOG_STDOUT)
|
||||
if (parm1)
|
||||
build_g_logfile();
|
||||
|
@ -1525,8 +1542,8 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
}
|
||||
else
|
||||
{
|
||||
char *buf0=GetStringFromParm(0x01);
|
||||
log_printf2("%s",buf0);
|
||||
TCHAR *buf0=GetStringFromParm(0x01);
|
||||
log_printf2(_T("%s"),buf0);
|
||||
}
|
||||
break;
|
||||
#endif//NSIS_CONFIG_LOG
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue