Back to 37KB

git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@1009 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
kichik 2002-09-13 22:07:07 +00:00
parent d73088e912
commit 541fafa81c

View file

@ -137,6 +137,7 @@ static int NSISCALL ExecuteEntry(entry *entries, int pos)
int parm4=parms[4]; int parm4=parms[4];
int parm5=parms[5]; int parm5=parms[5];
int which=entries[pos].which; int which=entries[pos].which;
char *var=g_usrvars[parm0];
switch (which) switch (which)
{ {
case EW_NOP: case EW_NOP:
@ -275,7 +276,7 @@ static int NSISCALL ExecuteEntry(entry *entries, int pos)
#ifdef NSIS_SUPPORT_FNUTIL #ifdef NSIS_SUPPORT_FNUTIL
case EW_GETFULLPATHNAME: case EW_GETFULLPATHNAME:
{ {
char *p=g_usrvars[parm0]; char *p=var;
char *fp; char *fp;
process_string_fromtab(buf,parm1); process_string_fromtab(buf,parm1);
if (!GetFullPathName(buf,NSIS_MAX_STRLEN,p,&fp)) if (!GetFullPathName(buf,NSIS_MAX_STRLEN,p,&fp))
@ -302,7 +303,7 @@ static int NSISCALL ExecuteEntry(entry *entries, int pos)
case EW_SEARCHPATH: case EW_SEARCHPATH:
{ {
char *fp; char *fp;
char *p=g_usrvars[parm0]; char *p=var;
process_string_fromtab(buf,parm1); process_string_fromtab(buf,parm1);
if (!SearchPath(NULL,buf,NULL,NSIS_MAX_STRLEN,p,&fp)) if (!SearchPath(NULL,buf,NULL,NSIS_MAX_STRLEN,p,&fp))
{ {
@ -313,7 +314,7 @@ static int NSISCALL ExecuteEntry(entry *entries, int pos)
return 0; return 0;
case EW_GETTEMPFILENAME: case EW_GETTEMPFILENAME:
{ {
char *textout=g_usrvars[parm0]; char *textout=var;
if (!GetTempPath(NSIS_MAX_STRLEN,buf) || !GetTempFileName(buf,"nst",0,textout)) if (!GetTempPath(NSIS_MAX_STRLEN,buf) || !GetTempFileName(buf,"nst",0,textout))
{ {
*textout=0; *textout=0;
@ -500,14 +501,14 @@ static int NSISCALL ExecuteEntry(entry *entries, int pos)
#ifdef NSIS_SUPPORT_STROPTS #ifdef NSIS_SUPPORT_STROPTS
case EW_STRLEN: case EW_STRLEN:
process_string_fromtab(buf,parm1); process_string_fromtab(buf,parm1);
myitoa(g_usrvars[parm0],mystrlen(buf)); myitoa(var,mystrlen(buf));
return 0; return 0;
case EW_ASSIGNVAR: case EW_ASSIGNVAR:
{ {
int newlen=process_string_fromtab_toint(parm2); int newlen=process_string_fromtab_toint(parm2);
int start=process_string_fromtab_toint(parm3); int start=process_string_fromtab_toint(parm3);
int l; int l;
char *p=g_usrvars[parm0]; char *p=var;
process_string_fromtab(buf,parm1); process_string_fromtab(buf,parm1);
*p=0; *p=0;
if (parm2 < 0 || newlen) if (parm2 < 0 || newlen)
@ -538,7 +539,7 @@ static int NSISCALL ExecuteEntry(entry *entries, int pos)
#ifdef NSIS_SUPPORT_ENVIRONMENT #ifdef NSIS_SUPPORT_ENVIRONMENT
case EW_READENVSTR: case EW_READENVSTR:
{ {
char *p=g_usrvars[parm0]; char *p=var;
process_string_fromtab(buf,parm1); process_string_fromtab(buf,parm1);
if (parm2) if (parm2)
{ {
@ -578,7 +579,7 @@ static int NSISCALL ExecuteEntry(entry *entries, int pos)
case EW_INTOP: case EW_INTOP:
{ {
int v,v2; int v,v2;
char *p=g_usrvars[parm0]; char *p=var;
v=process_string_fromtab_toint(parm1); v=process_string_fromtab_toint(parm1);
v2=process_string_fromtab_toint(parm2); v2=process_string_fromtab_toint(parm2);
switch (parm3) switch (parm3)
@ -601,7 +602,7 @@ static int NSISCALL ExecuteEntry(entry *entries, int pos)
return 0; return 0;
case EW_INTFMT: case EW_INTFMT:
process_string_fromtab(buf,parm1); process_string_fromtab(buf,parm1);
wsprintf(g_usrvars[parm0], wsprintf(var,
buf, buf,
process_string_fromtab_toint(parm2)); process_string_fromtab_toint(parm2));
return 0; return 0;
@ -631,7 +632,7 @@ static int NSISCALL ExecuteEntry(entry *entries, int pos)
exec_errorflag++; exec_errorflag++;
return 0; return 0;
} }
mystrcpy(g_usrvars[parm0],s->text); mystrcpy(var,s->text);
g_st=s->next; g_st=s->next;
GlobalFree((HGLOBAL)s); GlobalFree((HGLOBAL)s);
} }
@ -668,7 +669,7 @@ static int NSISCALL ExecuteEntry(entry *entries, int pos)
b4=(int)buf2; b4=(int)buf2;
} }
if (parm5>>2) exec_errorflag += !SendMessageTimeout(hwnd,msg,b3,b4, SMTO_BLOCK, (parm5>>2), (LPDWORD)&v); if (parm5>>2) exec_errorflag += !SendMessageTimeout(hwnd,msg,b3,b4,SMTO_NORMAL,parm5>>2,(LPDWORD)&v);
else v=SendMessage(hwnd,msg,b3,b4); else v=SendMessage(hwnd,msg,b3,b4);
} }
else else
@ -679,7 +680,7 @@ static int NSISCALL ExecuteEntry(entry *entries, int pos)
} }
if (parm0>=0) if (parm0>=0)
myitoa(g_usrvars[parm0],v); myitoa(var,v);
} }
return 0; return 0;
case EW_ISWINDOW: case EW_ISWINDOW:
@ -687,7 +688,7 @@ static int NSISCALL ExecuteEntry(entry *entries, int pos)
return parm2; return parm2;
case EW_GETDLGITEM: case EW_GETDLGITEM:
myitoa( myitoa(
g_usrvars[parm0], var,
(int)GetDlgItem( (int)GetDlgItem(
(HWND)process_string_fromtab_toint(parm1), (HWND)process_string_fromtab_toint(parm1),
process_string_fromtab_toint(parm2) process_string_fromtab_toint(parm2)
@ -989,7 +990,7 @@ static int NSISCALL ExecuteEntry(entry *entries, int pos)
case EW_READINISTR: case EW_READINISTR:
{ {
static const char *errstr="!N~"; static const char *errstr="!N~";
char *p=g_usrvars[parm0]; char *p=var;
process_string_fromtab(buf,parm1); process_string_fromtab(buf,parm1);
process_string_fromtab(buf2,parm2); process_string_fromtab(buf2,parm2);
process_string_fromtab(buf3,parm3); process_string_fromtab(buf3,parm3);
@ -1067,7 +1068,7 @@ static int NSISCALL ExecuteEntry(entry *entries, int pos)
case EW_READREGSTR: // read registry string case EW_READREGSTR: // read registry string
{ {
HKEY hKey; HKEY hKey;
char *p=g_usrvars[parm0]; char *p=var;
int rootkey=parm1; int rootkey=parm1;
process_string_fromtab(buf,parm2); // buf == subkey process_string_fromtab(buf,parm2); // buf == subkey
process_string_fromtab(buf2,parm3); // buf == key name process_string_fromtab(buf2,parm3); // buf == key name
@ -1100,7 +1101,7 @@ static int NSISCALL ExecuteEntry(entry *entries, int pos)
case EW_REGENUM: case EW_REGENUM:
{ {
HKEY key; HKEY key;
char *p=g_usrvars[parm0]; char *p=var;
int b=process_string_fromtab_toint(parm3); int b=process_string_fromtab_toint(parm3);
process_string_fromtab(buf2,parm2); process_string_fromtab(buf2,parm2);
p[0]=0; p[0]=0;
@ -1120,7 +1121,7 @@ static int NSISCALL ExecuteEntry(entry *entries, int pos)
#ifdef NSIS_SUPPORT_FILEFUNCTIONS #ifdef NSIS_SUPPORT_FILEFUNCTIONS
case EW_FCLOSE: case EW_FCLOSE:
{ {
char *t=g_usrvars[parm0]; char *t=var;
if (*t) CloseHandle((HANDLE)myatoi(t)); if (*t) CloseHandle((HANDLE)myatoi(t));
} }
return 0; return 0;
@ -1145,7 +1146,7 @@ static int NSISCALL ExecuteEntry(entry *entries, int pos)
{ {
DWORD dw; DWORD dw;
int l; int l;
char *t=g_usrvars[parm0]; char *t=var;
if (parm2) if (parm2)
{ {
((unsigned char *)buf2)[0]=process_string_fromtab_toint(parm1)&0xff; ((unsigned char *)buf2)[0]=process_string_fromtab_toint(parm1)&0xff;
@ -1167,7 +1168,7 @@ static int NSISCALL ExecuteEntry(entry *entries, int pos)
char *textout=g_usrvars[parm1]; char *textout=g_usrvars[parm1];
DWORD dw; DWORD dw;
int rpos=0; int rpos=0;
char *hptr=g_usrvars[parm0]; char *hptr=var;
int maxlen=process_string_fromtab_toint(parm2); int maxlen=process_string_fromtab_toint(parm2);
if (maxlen<1) return 0; if (maxlen<1) return 0;
if (maxlen > NSIS_MAX_STRLEN-1) maxlen=NSIS_MAX_STRLEN-1; if (maxlen > NSIS_MAX_STRLEN-1) maxlen=NSIS_MAX_STRLEN-1;
@ -1202,7 +1203,7 @@ static int NSISCALL ExecuteEntry(entry *entries, int pos)
return 0; return 0;
case EW_FSEEK: case EW_FSEEK:
{ {
char *t=g_usrvars[parm0]; char *t=var;
if (*t) if (*t)
{ {
DWORD v=SetFilePointer((HANDLE)myatoi(t),process_string_fromtab_toint(parm1),NULL,parm2); DWORD v=SetFilePointer((HANDLE)myatoi(t),process_string_fromtab_toint(parm1),NULL,parm2);
@ -1218,13 +1219,13 @@ static int NSISCALL ExecuteEntry(entry *entries, int pos)
#ifdef NSIS_SUPPORT_FINDFIRST #ifdef NSIS_SUPPORT_FINDFIRST
case EW_FINDCLOSE: case EW_FINDCLOSE:
{ {
char *t=g_usrvars[parm0]; char *t=var;
if (*t) FindClose((HANDLE)myatoi(t)); if (*t) FindClose((HANDLE)myatoi(t));
} }
return 0; return 0;
case EW_FINDNEXT: case EW_FINDNEXT:
{ {
char *textout=g_usrvars[parm0]; char *textout=var;
char *t=g_usrvars[parm1]; char *t=g_usrvars[parm1];
WIN32_FIND_DATA fd; WIN32_FIND_DATA fd;
if (*t && FindNextFile((HANDLE)myatoi(t),&fd)) if (*t && FindNextFile((HANDLE)myatoi(t),&fd))
@ -1428,7 +1429,7 @@ static int NSISCALL ExecuteEntry(entry *entries, int pos)
f.lfUnderline=parm4&2; f.lfUnderline=parm4&2;
f.lfStrikeOut=parm4&4; f.lfStrikeOut=parm4&4;
process_string_fromtab(f.lfFaceName,parm1); process_string_fromtab(f.lfFaceName,parm1);
myitoa(g_usrvars[parm0],(int)CreateFontIndirect(&f)); myitoa(var,(int)CreateFontIndirect(&f));
} }
return 0; return 0;
} }