Added SYSTEM_LOG "param out" output
git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@6209 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
parent
51a0cb7355
commit
c57acd99d2
1 changed files with 60 additions and 18 deletions
|
@ -31,7 +31,8 @@
|
|||
#define PCD_PARAMS 2
|
||||
#define PCD_DONE 3 // Just Continue
|
||||
|
||||
const int ParamSizeByType[7] = {0, // PAT_VOID (Size will be equal to 1)
|
||||
const int ParamSizeByType[7] = {
|
||||
0, // PAT_VOID (Size will be equal to 1)
|
||||
1, // PAT_INT
|
||||
2, // PAT_LONG
|
||||
1, // PAT_STRING
|
||||
|
@ -95,8 +96,10 @@ void WriteToLog(TCHAR *buffer)
|
|||
|
||||
SetFilePointer(logfile, 0, 0, FILE_END);
|
||||
|
||||
wsprintf(timebuffer, _T("%04d %04d.%03d "), (++logop)%10000, (GetTickCount() / 1000) % 10000,
|
||||
GetTickCount() % 1000);
|
||||
if (-1 != logop)
|
||||
{
|
||||
wsprintf(timebuffer, _T("%04d %04d.%03d "), (++logop)%10000,
|
||||
(GetTickCount() / 1000) % 10000, GetTickCount() % 1000);
|
||||
|
||||
#ifdef _UNICODE
|
||||
#ifdef _RPTW0
|
||||
|
@ -109,6 +112,7 @@ void WriteToLog(TCHAR *buffer)
|
|||
#endif
|
||||
|
||||
WriteFile(logfile, timebuffer, lstrlen(timebuffer)*sizeof(TCHAR), &written, NULL);
|
||||
}
|
||||
WriteFile(logfile, buffer, lstrlen(buffer)*sizeof(TCHAR), &written, NULL);
|
||||
// FlushFileBuffers(logfile);
|
||||
}
|
||||
|
@ -148,7 +152,11 @@ PLUGINFUNCTION(Debug)
|
|||
if (lstrlen(o1) > 0)
|
||||
{
|
||||
// Log in to log file
|
||||
int orglogop;
|
||||
WriteToLog(o1);
|
||||
orglogop = logop, logop = -1;
|
||||
WriteToLog(_T("\n"));
|
||||
logop = orglogop;
|
||||
} else
|
||||
{
|
||||
// Stop debugging
|
||||
|
@ -238,7 +246,7 @@ PLUGINFUNCTION(Get)
|
|||
SYSTEM_LOG_ADD(proc->DllName);
|
||||
SYSTEM_LOG_ADD(_T("::"));
|
||||
SYSTEM_LOG_ADD(proc->ProcName);
|
||||
SYSTEM_LOG_ADD(_T("\n"));
|
||||
//SYSTEM_LOG_ADD(_T("\n"));
|
||||
SYSTEM_LOG_POST;
|
||||
if ((proc->Options & POPT_ALWRETURN) != 0)
|
||||
{
|
||||
|
@ -271,7 +279,8 @@ PLUGINFUNCTION(Call)
|
|||
SYSTEM_LOG_ADD(proc->DllName);
|
||||
SYSTEM_LOG_ADD(_T("::"));
|
||||
SYSTEM_LOG_ADD(proc->ProcName);
|
||||
SYSTEM_LOG_ADD(_T("\n"));
|
||||
//SYSTEM_LOG_ADD(_T("\n"));
|
||||
SYSTEM_LOG_POST;
|
||||
if (proc->ProcResult != PR_CALLBACK)
|
||||
ParamAllocate(proc);
|
||||
ParamsIn(proc);
|
||||
|
@ -941,9 +950,10 @@ void ParamsIn(SystemProc *proc)
|
|||
#ifdef SYSTEM_LOG_DEBUG
|
||||
{
|
||||
TCHAR buf[1024];
|
||||
wsprintf(buf, _T("\t\t\tParam In %d: type %d value 0x%08X value2 0x%08X\n"), i,
|
||||
wsprintf(buf, _T("\t\t\tParam In %d: type %d value 0x%08X value2 0x%08X"), i,
|
||||
par->Type, par->Value, par->_value);
|
||||
SYSTEM_LOG_ADD(buf);
|
||||
SYSTEM_LOG_POST;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -1029,10 +1039,32 @@ void ParamsOut(SystemProc *proc)
|
|||
|| (proc->Params[i].Option > 0)))
|
||||
GlobalFree(proc->Params[i].allocatedBlock);
|
||||
|
||||
SYSTEM_LOG_ADD(_T("\t\t\tParam Out("));
|
||||
// Step 2: place it
|
||||
if (proc->Params[i].Output == IOT_NONE);
|
||||
else if (proc->Params[i].Output == IOT_STACK) system_pushstring(realbuf);
|
||||
else if (proc->Params[i].Output > 0) system_setuservariable(proc->Params[i].Output - 1, realbuf);
|
||||
if (proc->Params[i].Output == IOT_NONE) SYSTEM_LOG_ADD(_T("none"));
|
||||
else if (proc->Params[i].Output == IOT_STACK)
|
||||
{
|
||||
SYSTEM_LOG_ADD(_T("stack"));
|
||||
system_pushstring(realbuf);
|
||||
}
|
||||
else if (proc->Params[i].Output > 0)
|
||||
{
|
||||
SYSTEM_LOG_ADD(_T("var"));
|
||||
system_setuservariable(proc->Params[i].Output - 1, realbuf);
|
||||
}
|
||||
else
|
||||
SYSTEM_LOG_ADD(_T("?BUG?"));
|
||||
|
||||
#ifdef SYSTEM_LOG_DEBUG
|
||||
{
|
||||
TCHAR dbgbuf[99];
|
||||
wsprintf(dbgbuf, _T(") %d:\tType=%d Optn=%d Size=%d Data="),
|
||||
i, proc->Params[i].Type, proc->Params[i].Option, proc->Params[i].Size);
|
||||
SYSTEM_LOG_ADD(dbgbuf);
|
||||
SYSTEM_LOG_ADD(realbuf);
|
||||
SYSTEM_LOG_POST;
|
||||
}
|
||||
#endif
|
||||
|
||||
GlobalFree(realbuf);
|
||||
|
||||
|
@ -1083,10 +1115,12 @@ void CallStruct(SystemProc *proc)
|
|||
|
||||
// Calculate the structure size
|
||||
for (i = 1; i <= proc->ParamCount; i++)
|
||||
{
|
||||
if (proc->Params[i].Option < 1)
|
||||
structsize += proc->Params[i].Size * 4;
|
||||
else
|
||||
structsize += ByteSizeByType[proc->Params[i].Type] * (proc->Params[i].Option - 1);
|
||||
}
|
||||
|
||||
// Struct exists?
|
||||
if (proc->Proc == NULL)
|
||||
|
@ -1095,6 +1129,14 @@ void CallStruct(SystemProc *proc)
|
|||
else // In case of zero size defined structure use mapped size
|
||||
if (structsize == 0) structsize = (int) GlobalSize((HANDLE) proc->Proc);
|
||||
|
||||
#ifdef SYSTEM_LOG_DEBUG
|
||||
{
|
||||
TCHAR dbgbuf[99];
|
||||
wsprintf(dbgbuf, _T("\t(%u bytes)"), structsize);
|
||||
SYSTEM_LOG_ADD(dbgbuf);
|
||||
}
|
||||
#endif
|
||||
|
||||
// Pointer to current data
|
||||
st = (char*) proc->Proc;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue