From a72067fab98c6ecbf701a34f49baa767f04b8c7b Mon Sep 17 00:00:00 2001 From: eccles Date: Sun, 28 Sep 2003 11:33:22 +0000 Subject: [PATCH] No more Windows error message when using IfFileExists on a removable drive with no media inserted. git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@2975 212acab6-be3b-0410-9dea-997c60f758d6 --- Source/exehead/exec.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Source/exehead/exec.c b/Source/exehead/exec.c index 0d6ef8d9..a8d0e82a 100644 --- a/Source/exehead/exec.c +++ b/Source/exehead/exec.c @@ -263,7 +263,12 @@ static int NSISCALL ExecuteEntry(entry *entry_) case EW_IFFILEEXISTS: { char *buf0=GetStringFromParm(0x00); - if (file_exists(buf0)) + WIN32_FIND_DATA *fd; + // Avoid a "There is no disk in the drive" error box on empty removable drives + SetErrorMode(SEM_NOOPENFILEERRORBOX | SEM_FAILCRITICALERRORS); + fd = file_exists(buf0); + SetErrorMode(0); + if (fd) { log_printf3("IfFileExists: file \"%s\" exists, jumping %d",buf0,parm1); return parm1; @@ -744,7 +749,7 @@ static int NSISCALL ExecuteEntry(entry *entry_) c->bkb = CreateBrushIndirect(&c->bk); c->flags &= ~(CC_BK_SYS|CC_TEXT_SYS|CC_BKB); - + SetWindowLong((HWND) GetIntFromParm(0), GWL_USERDATA, (long) c); } break;