SetTurboArgs();
if(sgProduct.bInstallFiles) {  SetTurboArgs();
void CommitInstall(void){  HRESULT hrErr;  char    szDestPath[MAX_BUF];  char    szInstallLogFile[MAX_BUF];        LogISDestinationPath();        LogISSetupType();        LogISComponentsSelected();        LogISComponentsToDownload();        LogISDiskSpace(gdsnComponentDSRequirement);        lstrcpy(szDestPath, sgProduct.szPath);        if(*sgProduct.szSubPath != '\0')        {          AppendBackSlash(szDestPath, sizeof(szDestPath));          lstrcat(szDestPath, sgProduct.szSubPath);        }        AppendBackSlash(szDestPath, sizeof(szDestPath));        /* Set global var, that determines where the log file is to update, to         * not use the TEMP dir *before* the FileCopy() calls because we want         * to log the FileCopy() calls to where the log files were copied to.         * This is possible because the logging, that is done within the         * FileCopy() function, is done after the actual copy         */        gbILUseTemp = FALSE;        /* copy the install_wizard.log file from the temp\ns_temp dir to         * the destination dir and use the new destination file to continue         * logging.         */        lstrcpy(szInstallLogFile, szTempDir);        AppendBackSlash(szInstallLogFile, sizeof(szInstallLogFile));        lstrcat(szInstallLogFile, FILE_INSTALL_LOG);        FileCopy(szInstallLogFile, szDestPath, FALSE, FALSE);        DeleteFile(szInstallLogFile);        /* copy the install_status.log file from the temp\ns_temp dir to         * the destination dir and use the new destination file to continue         * logging.         */        lstrcpy(szInstallLogFile, szTempDir);        AppendBackSlash(szInstallLogFile, sizeof(szInstallLogFile));        lstrcat(szInstallLogFile, FILE_INSTALL_STATUS_LOG);        FileCopy(szInstallLogFile, szDestPath, FALSE, FALSE);        DeleteFile(szInstallLogFile);        /* PRE_DOWNLOAD process file manipulation functions */        ProcessFileOpsForAll(T_PRE_DOWNLOAD);        if(RetrieveArchives() == WIZ_OK)        {          /* Check to see if Turbo is required.  If so, set the           * appropriate Windows registry keys */          SetTurboArgs();          if(gbDownloadTriggered || gbPreviousUnfinishedDownload)            SetSetupState(SETUP_STATE_UNPACK_XPCOM);          /* POST_DOWNLOAD process file manipulation functions */          ProcessFileOpsForAll(T_POST_DOWNLOAD);          /* PRE_XPCOM process file manipulation functions */          ProcessFileOpsForAll(T_PRE_XPCOM);          if(ProcessXpcomFile() != FO_SUCCESS)          {            bSDUserCanceled = TRUE;            CleanupXpcomFile();            PostQuitMessage(0);            return;          }          if(gbDownloadTriggered || gbPreviousUnfinishedDownload)            SetSetupState(SETUP_STATE_INSTALL_XPI); // clears and sets new setup state          /* POST_XPCOM process file manipulation functions */          ProcessFileOpsForAll(T_POST_XPCOM);          /* PRE_SMARTUPDATE process file manipulation functions */          ProcessFileOpsForAll(T_PRE_SMARTUPDATE);          /* save the installer files in the local machine */          if(diAdditionalOptions.bSaveInstaller)            SaveInstallerFiles();          if(CheckInstances())          {            bSDUserCanceled = TRUE;            CleanupXpcomFile();            PostQuitMessage(0);            return;          }          lstrcat(szDestPath, "uninstall\\");          CreateDirectoriesAll(szDestPath, TRUE);          /* save the installer files in the local machine */          if(diAdditionalOptions.bSaveInstaller)            SaveInstallerFiles();          hrErr = SmartUpdateJars();          if((hrErr == WIZ_OK) || (hrErr == 999))          {            UpdateJSProxyInfo();            /* POST_SMARTUPDATE process file manipulation functions */            ProcessFileOpsForAll(T_POST_SMARTUPDATE);            /* PRE_LAUNCHAPP process file manipulation functions */            ProcessFileOpsForAll(T_PRE_LAUNCHAPP);            LaunchApps();            /* POST_LAUNCHAPP process file manipulation functions */            ProcessFileOpsForAll(T_POST_LAUNCHAPP);            /* DEPEND_REBOOT process file manipulation functions */            ProcessFileOpsForAll(T_DEPEND_REBOOT);            // Refresh system icons if necessary            if(gSystemInfo.bRefreshIcons)              RefreshIcons();            UnsetSetupState(); // clear setup state            ClearWinRegUninstallFileDeletion();            if(!gbIgnoreProgramFolderX)              ProcessProgramFolderShowCmd();            CleanupArgsRegistry();            CleanupPreviousVersionRegKeys();            if(NeedReboot())            {              CleanupXpcomFile();              hDlgCurrent = InstantiateDialog(hWndMain, DLG_RESTART, diReboot.szTitle, DlgProcReboot);            }            else            {              CleanupXpcomFile();              PostQuitMessage(0);            }          }          else          {            CleanupXpcomFile();            PostQuitMessage(0);          }        }        else        {          bSDUserCanceled = TRUE;          CleanupXpcomFile();          CleanupArgsRegistry();          PostQuitMessage(0);        }        gbProcessingXpnstallFiles = FALSE;}