Back to 33.5/34

git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@2392 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
kichik 2003-03-29 17:16:09 +00:00
parent 34e75bfd21
commit 4df5cb4fac
7 changed files with 45 additions and 41 deletions

View file

@ -964,7 +964,7 @@ int CEXEBuild::resolve_instruction(const char *fn, const char *str, entry *w, in
else if (w->which == EW_MESSAGEBOX)
{
if (resolve_jump_int(fn,&w->offsets[3],offs,start,end)) return 1;
if (resolve_jump_int(fn,&w->offsets[4],offs,start,end)) return 1;
if (resolve_jump_int(fn,&w->offsets[5],offs,start,end)) return 1;
}
#endif
else if (w->which == EW_IFFILEEXISTS)

View file

@ -80,8 +80,8 @@ BOOL CALLBACK verProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInst,LPSTR lpszCmdParam, int nCmdShow)
{
static int ret;
static const char *m_Err;
int ret;
const char *m_Err = 0;
#ifdef NSIS_CONFIG_CRC_SUPPORT
#ifdef NSIS_CONFIG_VISIBLE_SUPPORT
static HWND hwnd;
@ -91,7 +91,7 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInst,LPSTR lpszCmdParam,
static char do_crc;
#endif//NSIS_CONFIG_CRC_SUPPORT
#if defined(NSIS_CONFIG_SILENT_SUPPORT) && defined(NSIS_CONFIG_VISIBLE_SUPPORT)
static char silent;
char silent = 0;
#endif//NSIS_CONFIG_SILENT_SUPPORT && NSIS_CONFIG_VISIBLE_SUPPORT
int left;

View file

@ -39,7 +39,6 @@
#define LB_ICONHEIGHT 20
HICON g_hIcon;
static int gDontFookWithFocus = 0;
// Added by Amir Szekely 3rd August 2002
char *language_tables;
@ -266,14 +265,13 @@ static void NSISCALL CheckTreeItem(HWND hWnd, TV_ITEM *pItem, int checked) {
#endif//NSIS_CONFIG_COMPONENTPAGE
static int lang_num;
static void NSISCALL set_language()
{
int i;
LANGID lang_mask=~(LANGID)0;
LANGID lang=myatoi(state_language);
char *language_table=0;
int lang_num=g_inst_cmnheader->language_tables_num;
lang_again:
for (i = 0; i < lang_num; i++) {
@ -299,6 +297,7 @@ lang_again:
int NSISCALL ui_doinstall(void)
{
static WNDCLASS wc; // richedit subclassing and bgbg creation
num_sections=g_inst_header->num_sections;
g_flags.autoclose=inst_flags&CH_FLAGS_AUTO_CLOSE;
#ifdef NSIS_CONFIG_UNINSTALL_SUPPORT
@ -363,7 +362,6 @@ int NSISCALL ui_doinstall(void)
// Multilingual support
{
extern char *g_db_strtab;
lang_num=g_inst_cmnheader->language_tables_num;
language_tables=(void*)(g_db_strtab+g_inst_cmnheader->num_string_bytes);
myitoa(state_language, GetUserDefaultLangID());
@ -381,7 +379,6 @@ int NSISCALL ui_doinstall(void)
if (g_inst_cmnheader->bg_color1 != -1)
{
RECT vp;
static WNDCLASS wc;
extern int bg_color1, bg_color2, bg_textcolor;
extern LRESULT CALLBACK BG_WndProc(HWND, UINT, WPARAM, LPARAM);
wc.lpfnWndProc = BG_WndProc;
@ -413,7 +410,6 @@ int NSISCALL ui_doinstall(void)
#ifdef NSIS_CONFIG_LICENSEPAGE
{ // load richedit DLL
static WNDCLASS wc;
static char str1[]="RichEd20.dll";
static char str2[]="RichEdit20A";
if (!LoadLibrary(str1))
@ -575,7 +571,6 @@ nextPage:
if (this_page->id>=0) // NSIS page
{
gDontFookWithFocus = 0;
m_curwnd=CreateDialog(g_hInstance,windows[this_page->id].id,hwndDlg,windows[this_page->id].proc);
if (m_curwnd)
{
@ -593,11 +588,12 @@ nextPage:
//XGE 5th September 2002 - Do *not* move the focus to the OK button if we are
//on the license page, instead we want the focus left alone because in
//WM_INITDIALOG it is given to the richedit control.
if (!gDontFookWithFocus)
if (this_page->id != NSIS_PAGE_LICENSE)
SetFocus(m_hwndOK);
//XGE End
}
}
return FALSE;
}
#ifdef NSIS_SUPPORT_BGBG
@ -694,7 +690,6 @@ static BOOL CALLBACK LicenseProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM
SendMessage(hwLicense,EM_STREAMIN,(((char*)es.dwCookie)[0]=='{')?SF_RTF:SF_TEXT,(LPARAM)&es);
SetUITextFromLang(IDC_INTROTEXT,LANG_LICENSE_TEXT);
//XGE 5th September 2002 - place the initial focus in the richedit control
gDontFookWithFocus++;
SetFocus(hwLicense);
return FALSE;
//End Xge
@ -942,7 +937,6 @@ static DWORD WINAPI newTreeWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM l
if (uMsg == WM_KEYDOWN && wParam == VK_SPACE)
{
SendMessage(m_curwnd,WM_TREEVIEW_KEYHACK,0,0);
return 0;
}
#if defined(NSIS_SUPPORT_CODECALLBACKS) && defined(NSIS_CONFIG_ENHANCEDUI_SUPPORT)
if (uMsg == WM_DESTROY) {
@ -1128,6 +1122,8 @@ static BOOL CALLBACK SelProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPar
hItem.mask = TVIF_STATE;
hItem.hItem=hTreeItems[wParam];
if (hItem.hItem) CheckTreeItem(hwndTree1, &hItem,lParam);
return FALSE;
}
if (uMsg == WM_NOTIFY || uMsg == WM_TREEVIEW_KEYHACK)
{
@ -1428,6 +1424,8 @@ static BOOL CALLBACK InstProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
}
EnableWindow(m_hwndOK,0);
return FALSE;
}
if (uMsg == WM_NOTIFY_START) {
DWORD id;
@ -1515,6 +1513,7 @@ static BOOL CALLBACK InstProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
CloseClipboard();
}
}
return FALSE;
}
//<<<
return HandleStaticBkColor();

View file

@ -203,7 +203,6 @@ static int NSISCALL ExecuteEntry(entry *entry_)
return 0;
case EW_BRINGTOFRONT:
log_printf("BringToFront");
ShowWindow(g_hwnd,SW_SHOW);
SetForegroundWindow(g_hwnd);
return 0;
case EW_SETFLAG:
@ -515,13 +514,13 @@ static int NSISCALL ExecuteEntry(entry *entry_)
v=my_MessageBox(buf3,parm0);
if (v)
{
if (v==(parm2&0xffff))
if (v==parm2)
{
return parm3;
}
if (v==(parm2>>16))
if (v==parm4)
{
return parm4;
return parm5;
}
}
else g_flags.exec_error++;
@ -695,21 +694,15 @@ static int NSISCALL ExecuteEntry(entry *entry_)
case EW_SENDMESSAGE:
{
int v;
int b3=process_string_fromparm_toint(3);
int b4=process_string_fromparm_toint(4);
int b3=(int)process_string_fromparm_tobuf(0x03);
int b4=(int)process_string_fromparm_tobuf(0x14);
if (!(parm5&1)) b3=myatoi((char*)b3);
if (!(parm5&2)) b4=myatoi((char*)b4);
if (which == EW_SENDMESSAGE)
{
HWND hwnd=(HWND)process_string_fromparm_toint(1);
int msg=process_string_fromparm_toint(2);
if (parm5&1)
{
b3=(int)process_string_fromparm_tobuf(0x03);
}
if (parm5&2)
{
b4=(int)process_string_fromparm_tobuf(0x14);
}
if (parm5>>2) g_flags.exec_error += !SendMessageTimeout(hwnd,msg,b3,b4,SMTO_NORMAL,parm5>>2,(LPDWORD)&v);
else v=SendMessage(hwnd,msg,b3,b4);

View file

@ -179,11 +179,12 @@ enum
EW_GETFUNCTIONADDR,
// Saves 56 bytes, don't ask me how
EW_DUMMY,
// Hmm... now it doesn't =/
/*EW_DUMMY,
EW_DUMMY2,
EW_DUMMY3,
EW_DUMMY4,
EW_DUMMY5,
EW_DUMMY5,*/
EW_PLUGINCOMMANDPREP,
};

View file

@ -32,9 +32,8 @@ HANDLE g_hInstance;
HANDLE NSISCALL myCreateProcess(char *cmd, char *dir)
{
DWORD d;
PROCESS_INFORMATION ProcInfo={0,};
STARTUPINFO StartUp={0,};
StartUp.cb=sizeof(StartUp);
static PROCESS_INFORMATION ProcInfo;
STARTUPINFO StartUp = {sizeof(StartUp), };
d=GetFileAttributes(dir);
if (d == INVALID_FILE_ATTRIBUTES || !(d&FILE_ATTRIBUTE_DIRECTORY)) dir=0;
if (!CreateProcess(NULL, cmd, NULL, NULL, FALSE, 0, NULL, dir, &StartUp, &ProcInfo))
@ -237,14 +236,14 @@ BOOL NSISCALL MoveFileOnReboot(LPCTSTR pszExisting, LPCTSTR pszNew)
char *szRenameSec = "[Rename]\r\n";
HANDLE hfile, hfilemap;
DWORD dwFileSize, dwRenameLinePos;
static const char nulint[4]="NUL";
*((int *)tmpbuf) = *((int *)"NUL");
if (pszNew) {
// create the file if it's not already there to prevent GetShortPathName from failing
CloseHandle(myOpenFile(pszNew, 0, CREATE_NEW));
GetShortPathName(pszNew,tmpbuf,1024);
}
else *((int *)tmpbuf) = *((int *)nulint);
// wininit is used as a temporary here
GetShortPathName(pszExisting,wininit,1024);
cchRenameLine = wsprintf(szRenameLine,"%s=%s\r\n",tmpbuf,wininit);

View file

@ -2717,8 +2717,8 @@ int CEXEBuild::doCommand(int which_token, LineParser &line, FILE *fp, const char
{
int v=line.gettoken_enum(5,retstr);
if (v < 0) PRINTHELP()
ent.offsets[2] |= rettab[v]<<16;
if (process_jump(line,6,&ent.offsets[4])) PRINTHELP()
ent.offsets[4] = rettab[v];
if (process_jump(line,6,&ent.offsets[5])) PRINTHELP()
}
}
SCRIPT_MSG("MessageBox: %d: \"%s\"",r,line.gettoken_str(2));
@ -2962,10 +2962,25 @@ int CEXEBuild::doCommand(int which_token, LineParser &line, FILE *fp, const char
ent.offsets[2]=1;
SCRIPT_MSG("HideWindow\n");
return add_entry(&ent);
case TOK_BRINGTOFRONT:
{
int ret;
ent.which=EW_SHOWWINDOW;
ent.offsets[0]=add_string("$HWNDPARENT");
ent.offsets[1]=add_string("5"/*SW_SHOW*/);
ret = add_entry(&ent);
if (ret != PS_OK) return ret;
ent.which=EW_BRINGTOFRONT;
ent.offsets[0]=0;
ent.offsets[1]=0;
SCRIPT_MSG("BringToFront\n");
}
return add_entry(&ent);
#else//NSIS_CONFIG_ENHANCEDUI_SUPPORT
case TOK_GETDLGITEM:
case TOK_SETBKCOLOR:
case TOK_SHOWWINDOW:
case TOK_BRINGTOFRONT:
case TOK_CREATEFONT:
case TOK_HIDEWINDOW:
ERROR_MSG("Error: %s specified, NSIS_CONFIG_ENHANCEDUI_SUPPORT not defined.\n", line.gettoken_str(0));
@ -2980,6 +2995,7 @@ int CEXEBuild::doCommand(int which_token, LineParser &line, FILE *fp, const char
case TOK_SHOWWINDOW:
case TOK_CREATEFONT:
case TOK_HIDEWINDOW:
case TOK_BRINGTOFRONT:
ERROR_MSG("Error: %s specified, NSIS_SUPPORT_HWNDS not defined.\n", line.gettoken_str(0));
return PS_ERROR;
#endif//!NSIS_SUPPORT_HWNDS
@ -3196,10 +3212,6 @@ int CEXEBuild::doCommand(int which_token, LineParser &line, FILE *fp, const char
SCRIPT_MSG("Sleep: %s ms\n",line.gettoken_str(1));
}
return add_entry(&ent);
case TOK_BRINGTOFRONT:
ent.which=EW_BRINGTOFRONT;
SCRIPT_MSG("BringToFront\n");
return add_entry(&ent);
case TOK_IFFILEEXISTS:
ent.which=EW_IFFILEEXISTS;
ent.offsets[0] = add_string(line.gettoken_str(1));