From bbc4200bdcbb5fae39b78c8f01ebd2dc66776459 Mon Sep 17 00:00:00 2001 From: rrt <unknown> Date: Thu, 9 Nov 2000 11:37:25 +0000 Subject: [PATCH] [project @ 2000-11-09 11:37:24 by rrt] Add more bits of InstallShield setup --- .../Registry Entries/Default.rge | 6 + ghc/InstallShield/Script Files/Setup.Inx | Bin 0 -> 3931 bytes ghc/InstallShield/Script Files/Setup.Obs | Bin 0 -> 132 bytes ghc/InstallShield/Script Files/Setup.dbg | Bin 0 -> 2960 bytes ghc/InstallShield/Script Files/Setup.ino | Bin 0 -> 4350 bytes ghc/InstallShield/Script Files/Setup.ins | Bin 0 -> 5413 bytes ghc/InstallShield/Script Files/Setup.map | 574 +++++++++++ ghc/InstallShield/Script Files/setup.rul | 950 ++++++++++++++++++ 8 files changed, 1530 insertions(+) create mode 100644 ghc/InstallShield/Registry Entries/Default.rge create mode 100644 ghc/InstallShield/Script Files/Setup.Inx create mode 100644 ghc/InstallShield/Script Files/Setup.Obs create mode 100644 ghc/InstallShield/Script Files/Setup.dbg create mode 100644 ghc/InstallShield/Script Files/Setup.ino create mode 100644 ghc/InstallShield/Script Files/Setup.ins create mode 100644 ghc/InstallShield/Script Files/Setup.map create mode 100644 ghc/InstallShield/Script Files/setup.rul diff --git a/ghc/InstallShield/Registry Entries/Default.rge b/ghc/InstallShield/Registry Entries/Default.rge new file mode 100644 index 000000000000..f73a93c2a4ce --- /dev/null +++ b/ghc/InstallShield/Registry Entries/Default.rge @@ -0,0 +1,6 @@ +[Data] + +[General] +Type=REGISTRYDATA +Version=2.10.000 + diff --git a/ghc/InstallShield/Script Files/Setup.Inx b/ghc/InstallShield/Script Files/Setup.Inx new file mode 100644 index 0000000000000000000000000000000000000000..4aef7fa61890db98d0603055809868953d3db9e5 GIT binary patch literal 3931 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 T*J-S9r`^xs6Uxu((~<lix}Mn! literal 0 HcmV?d00001 diff --git a/ghc/InstallShield/Script Files/Setup.Obs b/ghc/InstallShield/Script Files/Setup.Obs new file mode 100644 index 0000000000000000000000000000000000000000..53425bdaea05d6c43492690f1d520020266dd080 GIT binary patch literal 132 zcmeb9|9rB{SkKZ@&%nTlfq}s}zo4=xGd-h3K_gjH!O+suKo>|@Dg>8g7Ug8-r7MJ_ zCTHa3=j5knrWWfc_>`pRDLCfjC<KA@6e|R!7N-`KrKacsje-EiB!-zx3=E7wo{10x WgA<b=gAGUqC?KT5z;HvEfdK%}cpp>% literal 0 HcmV?d00001 diff --git a/ghc/InstallShield/Script Files/Setup.dbg b/ghc/InstallShield/Script Files/Setup.dbg new file mode 100644 index 0000000000000000000000000000000000000000..7c868708780ecd184a0518d8146f4da26746fd63 GIT binary patch literal 2960 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 literal 0 HcmV?d00001 diff --git a/ghc/InstallShield/Script Files/Setup.ino b/ghc/InstallShield/Script Files/Setup.ino new file mode 100644 index 0000000000000000000000000000000000000000..421984ed6b5001db1cc9545841618d4d07eba8e9 GIT binary patch literal 4350 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 O`0X;1y2SM4u>A|t5q${& literal 0 HcmV?d00001 diff --git a/ghc/InstallShield/Script Files/Setup.ins b/ghc/InstallShield/Script Files/Setup.ins new file mode 100644 index 0000000000000000000000000000000000000000..156a8eecdce2e457a3dd33a360f8dafcb46b4959 GIT binary patch literal 5413 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 GRR0T)fJ!g` literal 0 HcmV?d00001 diff --git a/ghc/InstallShield/Script Files/Setup.map b/ghc/InstallShield/Script Files/Setup.map new file mode 100644 index 000000000000..3039284bcd2d --- /dev/null +++ b/ghc/InstallShield/Script Files/Setup.map @@ -0,0 +1,574 @@ +***** External Functions ***** +1 CloseFile isrt.obl(Files.obs) +2 CmdGetHwndDlg isrt.obl(CustomDlg.obs) +3 CommitSharedFiles isrt.obl(Misc.obs) +4 ComponentCompareSizeRequired isrt.obl(component.obs) +5 ComponentError isrt.obl(component.obs) +6 ComponentErrorInfo isrt.obl(component.obs) +7 ComponentFilterLanguage isrt.obl(component.obs) +8 ComponentFilterOS isrt.obl(component.obs) +9 ComponentGetData isrt.obl(component.obs) +10 ComponentGetTotalCost isrt.obl(component.obs) +11 ComponentIsItemSelected isrt.obl(component.obs) +12 ComponentListItems isrt.obl(component.obs) +13 ComponentMoveData isrt.obl(component.obs) +14 ComponentReinstall isrt.obl(component.obs) +15 ComponentRemoveAll isrt.obl(component.obs) +16 ComponentSaveTarget isrt.obl(component.obs) +17 ComponentSelectItem isrt.obl(component.obs) +18 ComponentSetTarget isrt.obl(component.obs) +19 ComponentSetupTypeSet isrt.obl(component.obs) +20 ComponentTransferData isrt.obl(component.obs) +21 ComponentTreeInit isrt.obl(Dialogs.obs) +22 ComponentViewCreate isrt.obl(CmptView.obs) +23 CopyFile isrt.obl(Files.obs) +24 CreateDir isrt.obl(Files.obs) +25 CreateFile isrt.obl(Files.obs) +26 CreateInstallationInfo isrt.obl(Registry.obs) +27 CreateRegistrySet isrt.obl(component.obs) +28 CreateShellObjects isrt.obl(component.obs) +29 CtrlGetCurSel isrt.obl(CustomDlg.obs) +30 CtrlGetNotificationCode isrt.obl(CustomDlg.obs) +31 CtrlGetState isrt.obl(CustomDlg.obs) +32 CtrlGetText isrt.obl(CustomDlg.obs) +33 CtrlPGroups isrt.obl(CustomDlg.obs) +34 CtrlSelectText isrt.obl(CustomDlg.obs) +35 CtrlSetCurSel isrt.obl(CustomDlg.obs) +36 CtrlSetList isrt.obl(CustomDlg.obs) +37 CtrlSetMLEText isrt.obl(CustomDlg.obs) +38 CtrlSetState isrt.obl(CustomDlg.obs) +39 CtrlSetText isrt.obl(CustomDlg.obs) +40 DefineDialog isrt.obl(CustomDlg.obs) +41 DeinstallStart isrt.obl(Registry.obs) +42 Delay isrt.obl(Misc.obs) +43 DeleteFile isrt.obl(Files.obs) +44 DialogSetDefaultFont isrt.obl(Dialogs.obs) +45 DialogSetFont isrt.obl(Dialogs.obs) +46 DialogSetInfo isrt.obl(Dialogs.obs) +47 Disable isrt.obl(Enable.obs) +48 DiskSizeToStr isrt.obl(SDINT.obs) +49 Divide isrt.obl(Misc.obs) +50 DllSizeOf isrt.obl(Str.obs) +51 Do isrt.obl(Misc.obs) +52 Enable isrt.obl(Enable.obs) +53 EndDialog isrt.obl(CustomDlg.obs) +54 EnterDisk isrt.obl(EnterDisk.obs) +55 ExistsDir isrt.obl(Files.obs) +56 ExistsDisk isrt.obl(Files.obs) +57 EzDefineDialog isrt.obl(CustomDlg.obs) +58 FinalConstruct ifx.obl(Events.obs) +59 FinalRelease ifx.obl(Events.obs) +60 FindFile isrt.obl(Files.obs) +61 FormatMessage isrt.obl(Misc.obs) +62 GDI32.CreateRectRgn isrt.obl(AskDestPath.obs) +63 GDI32.GetDeviceCaps isrt.obl(AskDestPath.obs) +64 GetBillboard isrt.obl(SysVars.obs) +65 GetDialogTitle isrt.obl(Dialogs.obs) +66 GetDir isrt.obl(Str.obs) +67 GetDisk isrt.obl(Str.obs) +68 GetDiskSpace isrt.obl(GSI.obs) +69 GetDiskSpaceEx isrt.obl(GSI.obs) +70 GetErrorMsg isrt.obl(Dialogs.obs) +71 GetErrorTitle isrt.obl(Dialogs.obs) +72 GetExtents isrt.obl(GSI.obs) +73 GetFolderNameList isrt.obl(Shell.obs) +74 GetFolderPrograms isrt.obl(SysVars.obs) +75 GetISRes isrt.obl(SysVars.obs) +76 GetLine isrt.obl(Files.obs) +77 GetLog isrt.obl(SysVars.obs) +78 GetMaintenance isrt.obl(SysVars.obs) +79 GetOpenFileMode isrt.obl(Files.obs) +80 GetProductGUID isrt.obl(SysVars.obs) +81 GetProfString isrt.obl(Profile.obs) +82 GetProgramFiles isrt.obl(SysVars.obs) +83 GetSelectedLanguage isrt.obl(SysVars.obs) +84 GetSelectedTreeComponent isrt.obl(CmptView.obs) +85 GetSupportDir isrt.obl(SysVars.obs) +86 GetSystemInfo isrt.obl(GSI.obs) +87 GetWinDir isrt.obl(SysVars.obs) +88 GetWinSysDir isrt.obl(SysVars.obs) +89 GetWindowHandle isrt.obl(Misc.obs) +90 HIWORD isrt.obl(Misc.obs) +91 HexStrToNum isrt.obl(Str.obs) +92 ISDeterminePlatform isrt.obl(OsInfo.obs) +93 ISMIF32.InstallStatusMIF isrt.obl(MIF.obs) +94 ISRT.ComponentViewCreateWindow isrt.obl(CmptView.obs) +95 ISRT.ComponentViewDestroy isrt.obl(CmptView.obs) +96 ISRT.ComponentViewRefresh isrt.obl(CmptView.obs) +97 ISRT.ComponentViewSetInfo isrt.obl(CmptView.obs) +98 ISRT.ComponentViewSetInfoEx isrt.obl(Dialogs.obs) +99 ISRT.EnableHourGlass isrt.obl(Enable.obs) +100 ISRT.EnumFoldersItems isrt.obl(Shell.obs) +101 ISRT.GetCPUType isrt.obl(GSI.obs) +102 ISRT.GetFontSub isrt.obl(Dialogs.obs) +103 ISRT.GetHandle Setup.Obs +104 ISRT.GetPorts isrt.obl(GSI.obs) +105 ISRT.IsEmpty Setup.Obs +106 ISRT.IsNTAdmin isrt.obl(Is.obs) +107 ISRT.IsObject Setup.Obs +108 ISRT.LangLoadString isrt.obl(SDINT.obs) +109 ISRT.MessageBeepP Setup.Obs +110 ISRT.PathCompactPathPixel isrt.obl(CustomDlg.obs) +111 ISRT.PathGetDir isrt.obl(Str.obs) +112 ISRT.PathGetDrive isrt.obl(Str.obs) +113 ISRT.PathGetFile isrt.obl(Str.obs) +114 ISRT.PathGetFileExt isrt.obl(Str.obs) +115 ISRT.PathGetFileName isrt.obl(Str.obs) +116 ISRT.PathGetPath isrt.obl(Str.obs) +117 ISRT.PathGetSpecialFolder isrt.obl(SysVars.obs) +118 ISRT.PathIsValidSyntax isrt.obl(Is.obs) +119 ISRT._BrowseForFolder isrt.obl(SelectDir.obs) +120 ISRT._CleanupInet isrt.obl(MIO.obs) +121 ISRT._CloseFile isrt.obl(Files.obs) +122 ISRT._CmdGetHwndDlg isrt.obl(CustomDlg.obs) +123 ISRT._ComponentCompareSizeRequired isrt.obl(component.obs) +124 ISRT._ComponentError isrt.obl(component.obs) +125 ISRT._ComponentErrorInfo isrt.obl(component.obs) +126 ISRT._ComponentFilterLanguage isrt.obl(component.obs) +127 ISRT._ComponentFilterOS isrt.obl(component.obs) +128 ISRT._ComponentGetData isrt.obl(component.obs) +129 ISRT._ComponentGetTotalCost isrt.obl(component.obs) +130 ISRT._ComponentIsItemSelected isrt.obl(component.obs) +131 ISRT._ComponentListItems isrt.obl(component.obs) +132 ISRT._ComponentMoveData isrt.obl(component.obs) +133 ISRT._ComponentReinstall isrt.obl(component.obs) +134 ISRT._ComponentRemoveAll isrt.obl(component.obs) +135 ISRT._ComponentSaveTarget isrt.obl(component.obs) +136 ISRT._ComponentSelectItem isrt.obl(component.obs) +137 ISRT._ComponentSetupTypeSet isrt.obl(component.obs) +138 ISRT._ComponentTransferData isrt.obl(component.obs) +139 ISRT._ComponentViewCreate isrt.obl(CmptView.obs) +140 ISRT._CreateDir isrt.obl(Files.obs) +141 ISRT._CreateRegistrySet isrt.obl(component.obs) +142 ISRT._CreateShellObjects isrt.obl(component.obs) +143 ISRT._CtrlGetNotificationCode isrt.obl(CustomDlg.obs) +144 ISRT._DefineDialog isrt.obl(CustomDlg.obs) +145 ISRT._DialogSetFont isrt.obl(Dialogs.obs) +146 ISRT._DisableStatus isrt.obl(Enable.obs) +147 ISRT._Divide isrt.obl(Misc.obs) +148 ISRT._DoSprintf isrt.obl(MsgBox.obs) +149 ISRT._EnableDialogCache isrt.obl(Enable.obs) +150 ISRT._EnablePrevDialog isrt.obl(AskDestPath.obs) +151 ISRT._EnableStatus isrt.obl(Enable.obs) +152 ISRT._EndDialog isrt.obl(CustomDlg.obs) +153 ISRT._ExistsDir isrt.obl(Files.obs) +154 ISRT._ExistsDisk isrt.obl(Files.obs) +155 ISRT._ExistsFile isrt.obl(Files.obs) +156 ISRT._FileCopy isrt.obl(Files.obs) +157 ISRT._GetDiskSpaceEx isrt.obl(GSI.obs) +158 ISRT._GetLine isrt.obl(Files.obs) +159 ISRT._GetSelectedTreeComponent isrt.obl(CmptView.obs) +160 ISRT._GetSupportDir isrt.obl(SysVars.obs) +161 ISRT._InetEndofTransfer isrt.obl(iftw.obs) +162 ISRT._InetGetLastError isrt.obl(iftw.obs) +163 ISRT._InetGetNextDisk isrt.obl(iftw.obs) +164 ISRT._ListAddItem isrt.obl(scrlist.obs) +165 ISRT._ListAddString isrt.obl(scrlist.obs) +166 ISRT._ListCount isrt.obl(scrlist.obs) +167 ISRT._ListCreate isrt.obl(scrlist.obs) +168 ISRT._ListCurrentString isrt.obl(scrlist.obs) +169 ISRT._ListDeleteString isrt.obl(scrlist.obs) +170 ISRT._ListDestroy isrt.obl(scrlist.obs) +171 ISRT._ListFindString isrt.obl(scrlist.obs) +172 ISRT._ListGetFirstItem isrt.obl(scrlist.obs) +173 ISRT._ListGetFirstString isrt.obl(scrlist.obs) +174 ISRT._ListGetNextItem isrt.obl(scrlist.obs) +175 ISRT._ListGetNextString isrt.obl(scrlist.obs) +176 ISRT._ListGetType isrt.obl(scrlist.obs) +177 ISRT._ListReadFromFile isrt.obl(scrlist.obs) +178 ISRT._ListSetIndex isrt.obl(scrlist.obs) +179 ISRT._OpenFile isrt.obl(Files.obs) +180 ISRT._Rebooted Setup.Obs +181 ISRT._RegCreateKey isrt.obl(Registry.obs) +182 ISRT._RegExistsKey isrt.obl(Registry.obs) +183 ISRT._RegQueryKeyBinaryValue isrt.obl(Registry.obs) +184 ISRT._RegQueryKeyValue isrt.obl(Registry.obs) +185 ISRT._RegSetKeyBinaryValue isrt.obl(Registry.obs) +186 ISRT._RegSetKeyValue isrt.obl(Registry.obs) +187 ISRT._ReleaseDialog isrt.obl(CustomDlg.obs) +188 ISRT._SetAltMainImage isrt.obl(Dialogs.obs) +189 ISRT._SetColor isrt.obl(ui.obs) +190 ISRT._SetDisplayEffect isrt.obl(ui.obs) +191 ISRT._SetPaletteFile isrt.obl(MIO.obs) +192 ISRT._SetTitle isrt.obl(ui.obs) +193 ISRT._SetupInet isrt.obl(MIO.obs) +194 ISRT._ShowObjWizardPages isrt.obl(Objects.obs) +195 ISRT._StatusUpdate isrt.obl(ui.obs) +196 ISRT._TreeViewCreate isrt.obl(CmptView.obs) +197 ISRT._WaitOnDialog isrt.obl(CustomDlg.obs) +198 ISRT._WriteLine isrt.obl(Files.obs) +199 ISRT.__CreateObjectContext isrt.obl(ISRTInit.obs) +200 ISRT.__GetCmdLineOptions isrt.obl(ISRTInit.obs) +201 ISRT.__GetContextGUID isrt.obl(ISRTInit.obs) +202 ISRT.__GetFileRegistrar isrt.obl(ISRTInit.obs) +203 ISRT.__GetInfo isrt.obl(ISRTInit.obs) +204 ISRT.__GetLog isrt.obl(SysVars.obs) +205 ISRT.__GetLogDB isrt.obl(ISRTInit.obs) +206 ISRT.__GetMainWindow Setup.Obs +207 ISRT.__GetMaintenanceMode isrt.obl(SysVars.obs) +208 ISRT.__GetProductGuid isrt.obl(SysVars.obs) +209 ISRT.__GetProgress Setup.Obs +210 ISRT.__GetReboot isrt.obl(ISRTInit.obs) +211 ISRT.__GetTextSub isrt.obl(ISRTInit.obs) +212 ISRT.__GetUser isrt.obl(MIO.obs) +213 ISRT.__ISRTGetPropertyBag ifx.obl(PersistPropertyBag.obs) +214 ISRT.__ISRTReleasePropertyBag ifx.obl(PersistPropertyBag.obs) +215 ISRT.__LoadString isrt.obl(LoadStr.obs) +216 ISRT.__ReleaseObjectContext isrt.obl(ISRTInit.obs) +217 ISRT.__RestoreMainLog isrt.obl(ISRTInit.obs) +218 ISRT.__SetComponentLog isrt.obl(ISRTInit.obs) +219 IfxFilterComponents ifx.obl(MoveData.obs) +220 IfxFinalConstruct ifx.obl(EventsMIO.obs) +221 IfxFinalRelease ifx.obl(EventsMIO.obs) +222 IfxInitProperties ifx.obl(PersistPropertyBag.obs) +223 IfxMoveFileData ifx.obl(MoveData.obs) +224 IfxOnAbortInstall ifx.obl(Events.obs) +225 IfxOnAppSearch ifx.obl(Events.obs) +226 IfxOnCCPSearch ifx.obl(Events.obs) +227 IfxOnCanceling ifx.obl(Events.obs) +228 IfxOnDisk1Installed ifx.obl(EventsMIO.obs) +229 IfxOnDisk1Installing ifx.obl(EventsMIO.obs) +230 IfxOnExitInstall ifx.obl(EventsMIO.obs) +231 IfxOnFileError ifx.obl(Exceptions.obs) +232 IfxOnFileLocked ifx.obl(Exceptions.obs) +233 IfxOnFileReadOnly ifx.obl(Exceptions.obs) +234 IfxOnHelp ifx.obl(Events.obs) +235 IfxOnInitInstall ifx.obl(EventsMIO.obs) +236 IfxOnInternetError ifx.obl(Exceptions.obs) +237 IfxOnMD5Error ifx.obl(Exceptions.obs) +238 IfxOnNextDisk ifx.obl(Exceptions.obs) +239 IfxOnRebooted ifx.obl(Events.obs) +240 IfxOnRemovingSharedFile ifx.obl(Exceptions.obs) +241 IfxOnShowWizardPages ifx.obl(UserInterfaceMIO.obs) +242 IfxOnTransferred ifx.obl(Events.obs) +243 IfxOnTransferring ifx.obl(EventsMIO.obs) +244 IfxOnUnhandledException ifx.obl(Events.obs) +245 IfxReadProperties ifx.obl(PersistPropertyBag.obs) +246 IfxRunAfterReboot ifx.obl(Driver.obs) +247 IfxWriteProperties ifx.obl(PersistPropertyBag.obs) +248 InetEndofTransfer isrt.obl(iftw.obs) +249 InetErrorDisplayMode isrt.obl(iftw.obs) +250 InetGetLastError isrt.obl(iftw.obs) +251 InetNextDisk isrt.obl(iftw.obs) +252 InitProperties ifx.obl(PersistPropertyBag.obs) +253 InstallationInfo isrt.obl(Registry.obs) +254 Is isrt.obl(Is.obs) +255 IsInetInstall isrt.obl(iftw.obs) +256 KERNEL.GetModuleHandle Setup.Obs +257 KERNEL32.CloseHandle isrt.obl(AskDestPath.obs) +258 KERNEL32.CreateFileA isrt.obl(AskDestPath.obs) +259 KERNEL32.DeleteFileA isrt.obl(AskDestPath.obs) +260 KERNEL32.FileTimeToLocalFileTime isrt.obl(AskDestPath.obs) +261 KERNEL32.FileTimeToSystemTime isrt.obl(AskDestPath.obs) +262 KERNEL32.FindClose isrt.obl(AskDestPath.obs) +263 KERNEL32.FindFirstFileA isrt.obl(AskDestPath.obs) +264 KERNEL32.FindNextFileA isrt.obl(AskDestPath.obs) +265 KERNEL32.FormatMessageA isrt.obl(AskDestPath.obs) +266 KERNEL32.GetDriveType isrt.obl(AskDestPath.obs) +267 KERNEL32.GetFileAttributesA isrt.obl(AskDestPath.obs) +268 KERNEL32.GetFileTime isrt.obl(AskDestPath.obs) +269 KERNEL32.GetLocalTime isrt.obl(AskDestPath.obs) +270 KERNEL32.GetLocaleInfo isrt.obl(AskDestPath.obs) +271 KERNEL32.GetPrivateProfileString isrt.obl(AskDestPath.obs) +272 KERNEL32.GetPrivateProfileStringA isrt.obl(AskDestPath.obs) +273 KERNEL32.GetProfileStringA isrt.obl(AskDestPath.obs) +274 KERNEL32.GetSystemDefaultLCID isrt.obl(AskDestPath.obs) +275 KERNEL32.GetUserDefaultLangID isrt.obl(AskDestPath.obs) +276 KERNEL32.GetVersion isrt.obl(AskDestPath.obs) +277 KERNEL32.GetVersionEx isrt.obl(AskDestPath.obs) +278 KERNEL32.GetVolumeInformation isrt.obl(AskDestPath.obs) +279 KERNEL32.GetWindowsDirectory isrt.obl(AskDestPath.obs) +280 KERNEL32.GlobalMemoryStatus isrt.obl(AskDestPath.obs) +281 KERNEL32.LocalFileTimeToFileTime isrt.obl(AskDestPath.obs) +282 KERNEL32.MoveFileA isrt.obl(AskDestPath.obs) +283 KERNEL32.SetFileAttributesA isrt.obl(AskDestPath.obs) +284 KERNEL32.SetFileTime isrt.obl(AskDestPath.obs) +285 KERNEL32.Sleep isrt.obl(AskDestPath.obs) +286 KERNEL32.SystemTimeToFileTime isrt.obl(AskDestPath.obs) +287 KERNEL32.WritePrivateProfileString isrt.obl(AskDestPath.obs) +288 KERNEL32.WritePrivateProfileStringA isrt.obl(AskDestPath.obs) +289 KERNEL32.WriteProfileStringA isrt.obl(AskDestPath.obs) +290 KERNEL32.lstrlen isrt.obl(AskDestPath.obs) +291 LOWORD isrt.obl(Misc.obs) +292 ListAddItem isrt.obl(scrlist.obs) +293 ListAddString isrt.obl(scrlist.obs) +294 ListCount isrt.obl(scrlist.obs) +295 ListCreate isrt.obl(scrlist.obs) +296 ListCurrentString isrt.obl(scrlist.obs) +297 ListDeleteString isrt.obl(scrlist.obs) +298 ListDestroy isrt.obl(scrlist.obs) +299 ListFindString isrt.obl(scrlist.obs) +300 ListGetFirstItem isrt.obl(scrlist.obs) +301 ListGetFirstString isrt.obl(scrlist.obs) +302 ListGetNextItem isrt.obl(scrlist.obs) +303 ListGetNextString isrt.obl(scrlist.obs) +304 ListGetType isrt.obl(scrlist.obs) +305 ListReadFromFile isrt.obl(scrlist.obs) +306 ListSetIndex isrt.obl(scrlist.obs) +307 LongPathToQuote isrt.obl(Str.obs) +308 MAKELONG isrt.obl(Misc.obs) +309 MIFCreateMIFFile isrt.obl(MIF.obs) +310 MIFDeleteMIFFile isrt.obl(MIF.obs) +311 MIFInitialize isrt.obl(MIF.obs) +312 MIFSetInformation isrt.obl(MIF.obs) +313 MIFUnInitialize isrt.obl(MIF.obs) +314 MIFWasSetInformationCalled isrt.obl(MIF.obs) +315 MIOShutdown isrt.obl(MIO.obs) +316 MIOStartup isrt.obl(MIO.obs) +317 MaintenanceStart isrt.obl(Registry.obs) +318 MessageBeep isrt.obl(Misc.obs) +319 MessageBox isrt.obl(MsgBox.obs) +320 OnAbort ifx.obl(Events.obs) +321 OnAppSearch ifx.obl(Events.obs) +322 OnBegin ifx.obl(Events.obs) +323 OnCCPSearch ifx.obl(Events.obs) +324 OnCanceling ifx.obl(EventsMIO.obs) +325 OnComponentError ifx.obl(Exceptions.obs) +326 OnEnd ifx.obl(Events.obs) +327 OnFileError ifx.obl(Exceptions.obs) +328 OnFileLocked ifx.obl(Exceptions.obs) +329 OnFileReadOnly ifx.obl(Exceptions.obs) +330 OnFirstUIAfter ifx.obl(UserInterfaceMIO.obs) +331 OnFirstUIBefore ifx.obl(UserInterfaceMIO.obs) +332 OnHelp ifx.obl(Events.obs) +333 OnInternetError ifx.obl(Exceptions.obs) +334 OnMD5Error ifx.obl(Exceptions.obs) +335 OnMaintUIAfter ifx.obl(UserInterfaceMIO.obs) +336 OnMaintUIBefore ifx.obl(UserInterfaceMIO.obs) +337 OnMoved ifx.obl(Events.obs) +338 OnMoving ifx.obl(Events.obs) +339 OnNextDisk ifx.obl(Exceptions.obs) +340 OnRebooted ifx.obl(Events.obs) +341 OnRemovingSharedFile ifx.obl(Exceptions.obs) +342 OnSelfRegistrationError ifx.obl(Events.obs) +343 OnUnhandledException ifx.obl(Events.obs) +344 OpenFile isrt.obl(Files.obs) +345 OpenFileMode isrt.obl(Files.obs) +346 ParsePath isrt.obl(Str.obs) +347 ProgDefGroupType isrt.obl(Shell.obs) +348 ProgGetGroupType isrt.obl(Shell.obs) +349 PthFixPath isrt.obl(Pth.obs) +350 PthIsAbsPath isrt.obl(Pth.obs) +351 ReadProperties ifx.obl(PersistPropertyBag.obs) +352 Rebooted isrt.obl(Driver.obs) +353 RegDBCreateKeyEx isrt.obl(Registry.obs) +354 RegDBGetKeyValueEx isrt.obl(Registry.obs) +355 RegDBInit isrt.obl(Registry.obs) +356 RegDBKeyExist isrt.obl(Registry.obs) +357 RegDBQueryValue isrt.obl(Registry.obs) +358 RegDBSetDefaultRoot isrt.obl(Registry.obs) +359 RegDBSetItem isrt.obl(Registry.obs) +360 RegDBSetKeyValueEx isrt.obl(Registry.obs) +361 RegDBSetValue isrt.obl(Registry.obs) +362 ReleaseDialog isrt.obl(CustomDlg.obs) +363 RenameFile isrt.obl(Files.obs) +364 SdAskDestPath isrt.obl(SDADPATH.obs) +365 SdCloseDlg isrt.obl(SDINT.obs) +366 SdComponentDialog2 isrt.obl(SDCOMDL2.obs) +367 SdComponentDlgCheckSpace isrt.obl(SDINT.obs) +368 SdComponentTree isrt.obl(SDCOMTREE.obs) +369 SdCreateComponentView isrt.obl(SDINT.obs) +370 SdDlgToTop isrt.obl(SDINT.obs) +371 SdDoStdButton isrt.obl(SDINT.obs) +372 SdEnablement isrt.obl(SDINT.obs) +373 SdError isrt.obl(SDINT.obs) +374 SdExceptions isrt.obl(SdExceptions.obs) +375 SdFinish isrt.obl(SDFINISH.obs) +376 SdFinishEx isrt.obl(SdFinishEx.obs) +377 SdFinishReboot isrt.obl(SDFINBOT.obs) +378 SdGeneralInit isrt.obl(SDINT.obs) +379 SdInit isrt.obl(SDINT.obs) +380 SdIsShellExplorer isrt.obl(SDINT.obs) +381 SdIsStdButton isrt.obl(SDINT.obs) +382 SdLoadString isrt.obl(SDINT.obs) +383 SdMakeName isrt.obl(SDINT.obs) +384 SdPlugInProductName isrt.obl(SDINT.obs) +385 SdProductName isrt.obl(SDPRODCT.obs) +386 SdRemoveEndSpace isrt.obl(SDINT.obs) +387 SdSelectFolder isrt.obl(SDSFDR.obs) +388 SdSetDlgTitle isrt.obl(SDINT.obs) +389 SdSetStatic isrt.obl(SDINT.obs) +390 SdShowInfoList isrt.obl(SDSINFOL.obs) +391 SdStartCopy isrt.obl(SDSCOPY.obs) +392 SdUnInit isrt.obl(SDINT.obs) +393 SdVerifyFolder isrt.obl(SDINT.obs) +394 SdWelcome isrt.obl(SDWEL.obs) +395 SdWelcomeMaint isrt.obl(SdWelcomeMaint.obs) +396 SelectDir isrt.obl(SelectDir.obs) +397 SelectDirNoLog isrt.obl(SelectDir.obs) +398 SendMessage isrt.obl(Misc.obs) +399 SetCmdLine isrt.obl(SysVars.obs) +400 SetColor isrt.obl(ui.obs) +401 SetDialogTitle isrt.obl(Dialogs.obs) +402 SetDisplayEffect isrt.obl(ui.obs) +403 SetFileInfo isrt.obl(Files.obs) +404 SetFolderDesktop isrt.obl(SysVars.obs) +405 SetFolderPrograms isrt.obl(SysVars.obs) +406 SetFolderStartMenu isrt.obl(SysVars.obs) +407 SetFolderStartup isrt.obl(SysVars.obs) +408 SetInstallationInfo isrt.obl(Registry.obs) +409 SetStatusWindow isrt.obl(ui.obs) +410 SetTitle isrt.obl(ui.obs) +411 SetupType isrt.obl(SetupType.obs) +412 ShowObjWizardPages isrt.obl(Objects.obs) +413 SilentCreateFile isrt.obl(Silent.obs) +414 SilentDoGeneralInfo isrt.obl(Silent.obs) +415 SilentFailed isrt.obl(Silent.obs) +416 SilentFinish isrt.obl(Silent.obs) +417 SilentGetMode isrt.obl(Silent.obs) +418 SilentInit isrt.obl(Silent.obs) +419 SilentLogWriteData isrt.obl(Silent.obs) +420 SilentReadData isrt.obl(Silent.obs) +421 SilentSetInfo isrt.obl(Silent.obs) +422 SilentSetMode isrt.obl(Silent.obs) +423 SilentWriteData isrt.obl(Silent.obs) +424 Sprintf isrt.obl(Str.obs) +425 SprintfBox isrt.obl(MsgBox.obs) +426 StatusUpdate isrt.obl(ui.obs) +427 StrGetTokens isrt.obl(Str.obs) +428 StrLength isrt.obl(Str.obs) +429 StrRemoveLastSlash isrt.obl(Str.obs) +430 StrRemoveSpaces isrt.obl(Str.obs) +431 StrToUpper isrt.obl(Str.obs) +432 SysVarsInit isrt.obl(SysVars.obs) +433 SysVarsUnInit isrt.obl(SysVars.obs) +434 System isrt.obl(Misc.obs) +435 TreeViewCreate isrt.obl(CmptView.obs) +436 USER.EnableWindow Setup.Obs +437 USER.GetClassName Setup.Obs +438 USER.GetClientRect Setup.Obs +439 USER.GetDC Setup.Obs +440 USER.GetDlgItem Setup.Obs +441 USER.GetFocus Setup.Obs +442 USER.GetWindowLong Setup.Obs +443 USER.GetWindowRect Setup.Obs +444 USER.IsIconic Setup.Obs +445 USER.IsWindow Setup.Obs +446 USER.IsWindowVisible isrt.obl(AskDestPath.obs) +447 USER.MoveWindow Setup.Obs +448 USER.ReleaseDC Setup.Obs +449 USER.SendMessageA isrt.obl(AskDestPath.obs) +450 USER.SetFocus Setup.Obs +451 USER.SetForegroundWindow isrt.obl(AskDestPath.obs) +452 USER.SetWindowPos Setup.Obs +453 USER.SetWindowText Setup.Obs +454 USER.ShowWindow Setup.Obs +455 USER32.CharUpperBuffA isrt.obl(AskDestPath.obs) +456 USER32.DrawText isrt.obl(AskDestPath.obs) +457 USER32.GetDesktopWindow isrt.obl(AskDestPath.obs) +458 USER32.GetSystemMetrics isrt.obl(AskDestPath.obs) +459 USER32.GetWindowText isrt.obl(AskDestPath.obs) +460 USER32.GetWindowTextLength isrt.obl(AskDestPath.obs) +461 USER32.MessageBoxA isrt.obl(AskDestPath.obs) +462 USER32.ScreenToClient isrt.obl(AskDestPath.obs) +463 USER32.SendMessageA isrt.obl(AskDestPath.obs) +464 USER32.SetWindowLong isrt.obl(AskDestPath.obs) +465 USER32.SetWindowRgn isrt.obl(AskDestPath.obs) +466 VarRestore isrt.obl(SysVars.obs) +467 VarSave isrt.obl(SysVars.obs) +468 WaitOnDialog isrt.obl(CustomDlg.obs) +469 WriteLine isrt.obl(Files.obs) +470 WriteProfString isrt.obl(Profile.obs) +471 WriteProperties ifx.obl(PersistPropertyBag.obs) +472 _HandleException isrt.obl(exceptions.obs) +473 _WinSubEnableControl isrt.obl(WINSUB.obs) +474 _WinSubEnableWindow isrt.obl(WINSUB.obs) +475 _WinSubGetChildWindow isrt.obl(WINSUB.obs) +476 _WinSubIsWindow isrt.obl(WINSUB.obs) +477 __DefaultExitHandler isrt.obl(handlers.obs) +478 __ISRTDoExit isrt.obl(Misc.obs) +479 __ISRTInit isrt.obl(ISRTInit.obs) +480 __ISRTRestoreMainLog isrt.obl(ISRTInit.obs) +481 __ISRTSetComponentLog isrt.obl(ISRTInit.obs) +482 __ISRTUnInit isrt.obl(ISRTInit.obs) +483 __LoadIScriptString isrt.obl(LoadStr.obs) +484 program Setup.Obs +485 sfc.SRSetRestorePoint Setup.Obs + + +***** External Variables ***** +1 BATCH_INSTALL Setup.Obs +2 CMDLINE isrt.obl(DebugSymbols.obs) +3 COMMONFILES isrt.obl(DebugSymbols.obs) +4 DISK1TARGET Setup.Obs +5 ERRORFILENAME Setup.Obs +6 Err Setup.Obs +7 FILETIME isrt.obl(AskDestPath.obs) +8 FIND_DATA isrt.obl(AskDestPath.obs) +9 FOLDER_DESKTOP isrt.obl(DebugSymbols.obs) +10 FOLDER_PROGRAMS isrt.obl(DebugSymbols.obs) +11 FOLDER_STARTMENU isrt.obl(DebugSymbols.obs) +12 FOLDER_STARTUP isrt.obl(DebugSymbols.obs) +13 FileRegistrar Setup.Obs +14 ISRES isrt.obl(DebugSymbols.obs) +15 ISUSER isrt.obl(DebugSymbols.obs) +16 ISVERSION isrt.obl(DebugSymbols.obs) +17 InetSRCDIR Setup.Obs +18 LAST_RESULT Setup.Obs +19 LogDB Setup.Obs +20 MAINTENANCE isrt.obl(DebugSymbols.obs) +21 MEDIA Setup.Obs +22 MEMORYSTATUS isrt.obl(AskDestPath.obs) +23 MODE isrt.obl(DebugSymbols.obs) +24 NOTHING Setup.Obs +25 OSINFO_PLATFORM_INFO Setup.Obs +26 OSVERSIONINFO isrt.obl(AskDestPath.obs) +27 PRODUCT_GUID isrt.obl(DebugSymbols.obs) +28 PROGRAMFILES isrt.obl(DebugSymbols.obs) +29 RECT isrt.obl(AskDestPath.obs) +30 Reboot Setup.Obs +31 SELECTED_LANGUAGE isrt.obl(DebugSymbols.obs) +32 SHELL_OBJECT_FOLDER Setup.Obs +33 SRCDIR Setup.Obs +34 SRCDISK isrt.obl(DebugSymbols.obs) +35 SUPPORTDIR isrt.obl(DebugSymbols.obs) +36 SYSTEMTIME isrt.obl(AskDestPath.obs) +37 SetupInfo Setup.Obs +38 StatusDlg Setup.Obs +39 TARGETDIR Setup.Obs +40 TARGETDISK isrt.obl(DebugSymbols.obs) +41 TextSub Setup.Obs +42 UNINST Setup.Obs +43 UNINSTALL_STRING Setup.Obs +44 WINDIR isrt.obl(DebugSymbols.obs) +45 WINDISK isrt.obl(DebugSymbols.obs) +46 WINSYSDIR isrt.obl(DebugSymbols.obs) +47 WINSYSDISK isrt.obl(DebugSymbols.obs) +48 _INT64 Setup.Obs +49 _RESTOREINFO_ Setup.Obs +50 _RESTOREPTINFO Setup.Obs +51 _SMGRSTATUS Setup.Obs +52 _SMGSTATUS_ Setup.Obs +53 _WIN9X Setup.Obs +54 _WINNT Setup.Obs +55 __SYSTEMINFORMATION Setup.Obs +56 __hContext isrt.obl(AskYesNo.obs) +57 __objGlobalTextSub Setup.Obs +58 __szGUID isrt.obl(ISRTInit.obs) +59 bBackButton Setup.Obs +60 bCancelButton Setup.Obs +61 bEnterDiskBeep isrt.obl(AskDestPath.obs) +62 bFinishButton Setup.Obs +63 bIFXLFNoToAll Setup.Obs +64 bIFXLFOnRebootToAll Setup.Obs +65 bIFXLFYesToAll Setup.Obs +66 bIFXMD5IgnoreToAll Setup.Obs +67 bIFXRONoToAll Setup.Obs +68 bIFXROYesToAll Setup.Obs +69 bIFXSFNoToAll Setup.Obs +70 bIFXSFYesToAll Setup.Obs +71 bIfxPCHInitialized Setup.Obs +72 bIfxPCHOn Setup.Obs +73 bInstall16 Setup.Obs +74 bNextButton Setup.Obs +75 bSdInit Setup.Obs +76 bViewCmptKunits Setup.Obs +77 bViewCmptUseDecimal Setup.Obs +78 g_bSuppressMissingStringWarning isrt.obl(Enable.obs) +79 nIFXROKey ifx.obl(EventsMIO.obs) +80 nIFXSFKey ifx.obl(EventsMIO.obs) +81 nIfxPCHType Setup.Obs +82 szAppKey Setup.Obs +83 szInstallDeinstKey Setup.Obs +84 szSdProduct Setup.Obs +85 szSdStr_NotEnoughSpace Setup.Obs diff --git a/ghc/InstallShield/Script Files/setup.rul b/ghc/InstallShield/Script Files/setup.rul new file mode 100644 index 000000000000..28fc24aa2e5f --- /dev/null +++ b/ghc/InstallShield/Script Files/setup.rul @@ -0,0 +1,950 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// IIIIIII SSSSSS +// II SS InstallShield (R) +// II SSSSSS (c) 1996-1997, InstallShield Software Corporation +// II SS (c) 1990-1996, InstallShield Corporation +// IIIIIII SSSSSS All Rights Reserved. +// +// +// This code is generated as a starting setup template. You should +// modify it to provide all necessary steps for your setup. +// +// +// File Name: Setup.rul +// +// Description: InstallShield script +// +// Comments: This template script performs a basic setup on a +// Windows 95 or Windows NT 4.0 platform. With minor +// modifications, this template can be adapted to create +// new, customized setups. +// +//////////////////////////////////////////////////////////////////////////////// + + + // Include header file +#include "ifx.h" + +////////////////////// string defines //////////////////////////// + +#define UNINST_LOGFILE_NAME "Uninst.isu" + +//////////////////// installation declarations /////////////////// + + // ----- DLL prototypes ----- + + + // your DLL prototypes + + + // ---- script prototypes ----- + + // generated + prototype ShowDialogs(); + prototype MoveFileData(); + prototype HandleMoveDataError( NUMBER ); + prototype ProcessBeforeDataMove(); + prototype ProcessAfterDataMove(); + prototype SetupRegistry(); + prototype SetupFolders(); + prototype CleanUpInstall(); + prototype SetupInstall(); + prototype SetupScreen(); + prototype CheckListScreen(); + prototype CheckRequirements(); + prototype DialogShowSdWelcome(); + prototype DialogShowSdShowInfoList(); + prototype DialogShowSdAskDestPath(); + prototype DialogShowSdSetupType(); + prototype DialogShowSdComponentDialog2(); + prototype DialogShowSdSelectFolder(); + prototype DialogShowSdFinishReboot(); + + // your prototypes + prototype MyParsePath ( STRING ); + prototype ForwardSlashify ( STRING, BYREF STRING ); + prototype CreateExecPerlScript ( STRING, STRING ); + prototype DropSuffix ( STRING, BYREF STRING ); + prototype BaseName ( STRING, BYREF STRING ); + + // ----- global variables ------ + + // generated + BOOL bWinNT, bIsShellExplorer, bInstallAborted, bIs32BitSetup; + STRING svDir; + STRING svName, svCompany, svSerial; + STRING szAppPath; + STRING svSetupType; + LIST listPath; + + + // your global variables + //STRING szRawCpp + STRING szPerlPath; + STRING szBinDir, szBinDirUnslashed, + szLibDir, szLibDirUnslashed, + szDataDir, szLibExecDir; + + +/////////////////////////////////////////////////////////////////////////////// +// +// MAIN PROGRAM +// +// The setup begins here by hiding the visible setup +// window. This is done to allow all the titles, images, etc. to +// be established before showing the main window. The following +// logic then performs the setup in a series of steps. +// +/////////////////////////////////////////////////////////////////////////////// +program + Disable( BACKGROUND ); + + CheckRequirements(); + + SetupInstall(); + + SetupScreen(); + + if (ShowDialogs()<0) goto end_install; + + if (ProcessBeforeDataMove()<0) goto end_install; + + if (MoveFileData()<0) goto end_install; + + if (ProcessAfterDataMove()<0) goto end_install; + + if (SetupRegistry()<0) goto end_install; + + if (SetupFolders()<0) goto end_install; + + CheckListScreen(); + + end_install: + + CleanUpInstall(); + + // If an unrecoverable error occurred, clean up the partial installation. + // Otherwise, exit normally. + + if (bInstallAborted) then + abort; + endif; + +endprogram + +/////////////////////////////////////////////////////////////////////////////// +// // +// Function: ShowDialogs // +// // +// Purpose: This function manages the display and navigation // +// the standard dialogs that exist in a setup. // +// // +/////////////////////////////////////////////////////////////////////////////// +function ShowDialogs() + NUMBER nResult; + begin + + Dlg_Start: + // beginning of dialogs label + + Dlg_SdWelcome: + nResult = DialogShowSdWelcome(); + if (nResult = BACK) goto Dlg_Start; + + Dlg_SdShowInfoList: + nResult = DialogShowSdShowInfoList(); + if (nResult = BACK) goto Dlg_SdWelcome; + + Dlg_SdAskDestPath: + nResult = DialogShowSdAskDestPath(); + if (nResult = BACK) goto Dlg_SdShowInfoList; + + Dlg_SdSetupType: + nResult = DialogShowSdSetupType(); + if (nResult = BACK) goto Dlg_SdAskDestPath; + + Dlg_SdComponentDialog2: + if ((nResult = BACK) && (svSetupType != "Custom") && (svSetupType != "")) then + goto Dlg_SdSetupType; + endif; + nResult = DialogShowSdComponentDialog2(); + if (nResult = BACK) goto Dlg_SdSetupType; + + Dlg_SdSelectFolder: + //nResult = DialogShowSdSelectFolder(); + //if (nResult = BACK) goto Dlg_SdComponentDialog2; + + return 0; + + end; + +/////////////////////////////////////////////////////////////////////////////// +// // +// Function: ProcessBeforeDataMove // +// // +// Purpose: This function performs any necessary operations prior to the // +// actual data move operation. // +// // +/////////////////////////////////////////////////////////////////////////////// +function ProcessBeforeDataMove() + STRING svLogFile; + NUMBER nResult; + begin + + InstallationInfo( @COMPANY_NAME, @PRODUCT_NAME, @PRODUCT_VERSION, @PRODUCT_KEY ); + + svLogFile = UNINST_LOGFILE_NAME; + + nResult = DeinstallStart( svDir, svLogFile, @UNINST_KEY, 0 ); + if (nResult < 0) then + MessageBox( @ERROR_UNINSTSETUP, WARNING ); + endif; + + szAppPath = TARGETDIR; // TODO : if your application .exe is in a subdir of TARGETDIR then add subdir + + if ((bIs32BitSetup) && (bIsShellExplorer)) then + RegDBSetItem( REGDB_APPPATH, szAppPath ); + RegDBSetItem( REGDB_APPPATH_DEFAULT, szAppPath ^ @PRODUCT_KEY ); + RegDBSetItem( REGDB_UNINSTALL_NAME, @UNINST_DISPLAY_NAME ); + endif; + // TODO : update any items you want to process before moving the data + // + + ComponentSetTarget( MEDIA, "<DOCDIR>", TARGETDIR ^ "\\doc" ); + + return 0; + end; + +/////////////////////////////////////////////////////////////////////////////// +// // +// Function: MoveFileData // +// // +// Purpose: This function handles the data movement for // +// the setup. // +// // +/////////////////////////////////////////////////////////////////////////////// +function MoveFileData() + NUMBER nResult, nDisk; + begin + + nDisk = 1; + SetStatusWindow( 0, "" ); + Disable( DIALOGCACHE ); + Enable( STATUS ); + StatusUpdate( ON, 100 ); + nResult = ComponentMoveData( MEDIA, nDisk, 0 ); + + HandleMoveDataError( nResult ); + + Disable( STATUS ); + + return nResult; + + end; + + +/////////////////////////////////////////////////////////////////////////////// +// // +// Function: HandleMoveDataError // +// // +// Purpose: This function handles the error (if any) during the move data // +// operation. // +// // +/////////////////////////////////////////////////////////////////////////////// +function HandleMoveDataError( nResult ) + STRING szErrMsg, svComponent , svFileGroup , svFile; + begin + + svComponent = ""; + svFileGroup = ""; + svFile = ""; + + switch (nResult) + case 0: + return 0; + default: + ComponentError ( MEDIA , svComponent , svFileGroup , svFile , nResult ); + szErrMsg = @ERROR_MOVEDATA + "\n\n" + + @ERROR_COMPONENT + " " + svComponent + "\n" + + @ERROR_FILEGROUP + " " + svFileGroup + "\n" + + @ERROR_FILE + " " + svFile; + SprintfBox( SEVERE, @TITLE_CAPTIONBAR, szErrMsg, nResult ); + bInstallAborted = TRUE; + return nResult; + endswitch; + + end; + + +/////////////////////////////////////////////////////////////////////////////// +// // +// Function: ProcessAfterDataMove // +// // +// Purpose: This function performs any necessary operations needed after // +// all data has been moved. // +// // +/////////////////////////////////////////////////////////////////////////////// +function ProcessAfterDataMove() + STRING szPath, szGcc, szGccDir; + STRING szTemp, szRes, szPathEntry, szDrive; + NUMBER nvSize,nvType, nResult, nPos, nSuccess; + LIST listDirs; + begin + + RegDBSetDefaultRoot ( HKEY_LOCAL_MACHINE ); + RegDBGetKeyValueEx ( "SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment" , + "path" , nvType, szPath , nvSize ); + + // Spin through path looking for perl.exe. + // Our task is made considerably harder since the + // the free version of InstallShield doesn't support + // functions such as StrGetTokens() or ParsePath(). + // TODO: Convert this back to IS Prof Edn + + MyParsePath ( szPath ); + nResult = ListGetFirstString ( listPath, szPathEntry); + szPathEntry = ""; szPerlPath=""; + while ( nResult != END_OF_LIST ) + if ( FindFile (szPathEntry, "perl.exe", szRes ) = 0 ) then + szPerlPath = szPathEntry + "/" + szRes; + nResult = END_OF_LIST; + else + nResult = ListGetNextString ( listPath, szPathEntry ); + endif; + endwhile; + if ( StrCompare ( szPerlPath, "" ) = 0 ) then + // If not found in global env. block, look in the + // user-specific part. + RegDBSetDefaultRoot ( HKEY_CURRENT_USER ); + RegDBGetKeyValueEx ( "Environment", "path", nvType, szPath, nvSize); + MyParsePath ( szPath ); + nResult = ListGetFirstString ( listPath, szPathEntry); + szPathEntry = ""; szPerlPath=""; + while ( nResult != END_OF_LIST ) + if ( FindFile (szPathEntry, "perl.exe", szRes ) = 0 ) then + szPerlPath = szPathEntry + "/" + szRes; + nResult = END_OF_LIST; + else + nResult = ListGetNextString ( listPath, szPathEntry ); + endif; + endwhile; + endif; + + if ( StrCompare ( szPerlPath, "" ) = 0 ) then + // Default it to /bin/perl + MessageBox ("Unable to find perl in your PATH. Not to worry, this installer includes a version that should be useable." + + "When the installer has finished, please copy it from the bin/ directory of the ghc installation to /bin/perl", + INFORMATION); + szPerlPath = "/bin/perl.exe"; + else + // strip initial drive spec. + GetDir ( szPerlPath, szTemp); + ForwardSlashify ( szTemp, szPerlPath ); + endif; + DropSuffix (szPerlPath, szTemp); + szPerlPath = szTemp; + + ListDestroy (listPath); + + return 0; + end; + +/////////////////////////////////////////////////////////////////////////////// +// // +// Function: SetupRegistry // +// // +// Purpose: This function makes the registry entries for this setup. // +// // +/////////////////////////////////////////////////////////////////////////////// +function SetupRegistry() + NUMBER nResult,nWays,i; + STRING szProjectDir, szProjectVersionDir, szTargetDir; + STRING szSyslib, szWay, szSyslibsDir; + STRING szLib, szSyslibsKey; + //LIST syslib_list, way_list; + begin + + // TODO : Add all your registry entry keys here + // + // + + nResult = CreateRegistrySet( "" ); + + // By now, we will have had the following Registry + // entries generated (see ProcessBeforeDataMove() ): + // + // HK_L_M\Software\Glasgow University\GHC\<version no.> + // + // For GHC, we store and use the install info inside + // HK_L_M\Software\Haskell\GHC (== %ROOT%) + + // So, we perform the following tasks here: + // + // * Checks to see if %ROOT% is defined. + // If not, creates it. + // * Checks for %ROOT%\Version is defined. + // * Create %ROOT%\<version>. + // * Create %ROOT%\<version>\libdir + // (This key will be given a value later.) + // * Create %ROOT%\syslib\ and fill it in + // with the syslibs that has been installed. + // * %ROOT%\syslib\name\<way> + // is added for each kind (e.g., seq, conc) + // syslib we're installing. + + // When we eventually reach the end, the registry + // should be ready for use by the installed app. + + // Check to see if we've already installed + // a version of GHC on this box.. + RegDBSetDefaultRoot ( HKEY_LOCAL_MACHINE ); + + szProjectDir = @HASKELL_REG_ROOT ^ @PRODUCT_NAME; + + // check whether we've already got the Registry sub-tree we're + // about to add to. If not, then we create it + // level-by-level, so as to ensure that the uninstaller + // can clean up after us. + if ( RegDBKeyExist ( @HASKELL_REG_ROOT ) < 0) then + RegDBCreateKeyEx (@HASKELL_REG_ROOT, ""); + endif; + if ( RegDBKeyExist ( szProjectDir ) < 0 ) then + RegDBCreateKeyEx ( szProjectDir, ""); + endif; + + // Note: we overwrite any existing value. + RegDBSetKeyValueEx( szProjectDir, "Version", REGDB_STRING, + @PRODUCT_KEY, -1); + + szProjectVersionDir = szProjectDir ^ @PRODUCT_KEY; + + if ( RegDBKeyExist ( szProjectVersionDir ) < 0) then + RegDBCreateKeyEx ( szProjectVersionDir, ""); + endif; + + // Here starts the GHC specific part + + ForwardSlashify (TARGETDIR, szTargetDir); + // fill in the all-important path to where the archives + // and interface files have been parked. + szLibDir = szTargetDir + "/lib"; + szLibDirUnslashed = TARGETDIR ^ "\\lib"; + RegDBSetKeyValueEx ( szProjectVersionDir, "libdir", REGDB_STRING, + szLibDir , -1); + // libexecdir + szLibExecDir = szTargetDir + "/lib"; + RegDBSetKeyValueEx ( szProjectVersionDir, "libexecdir", REGDB_STRING, + szLibExecDir , -1); + // bindir + szBinDir = szTargetDir + "/bin"; + szBinDirUnslashed = TARGETDIR ^ "\\bin"; + RegDBSetKeyValueEx ( szProjectVersionDir, "bindir", REGDB_STRING, + szBinDir , -1); + + return 0; + end; + + +/////////////////////////////////////////////////////////////////////////////// +// +// Function: SetupFolders +// +// Purpose: This function creates all the folders and shortcuts for the +// setup. This includes program groups and items for Windows 3.1. +// +/////////////////////////////////////////////////////////////////////////////// +function SetupFolders() + NUMBER nResult; + begin + + + // TODO : Add all your folder (program group) along with shortcuts (program items) + // + // + // CreateProgramFolder, AddFolderIcon.... + // + + CreateExecPerlScript ( szBinDirUnslashed, "ghc-" + @PRODUCT_VERSION ); + CreateExecPerlScript ( szBinDirUnslashed, "stat2resid" ); + CreateExecPerlScript ( szLibDirUnslashed, "hscpp" ); + CreateExecPerlScript ( szLibDirUnslashed, "mkdependHS" ); + + VarSave (SRCTARGETDIR); + SRCDIR = szBinDirUnslashed; + TARGETDIR = szBinDirUnslashed; + CopyFile( "ghc-" + @PRODUCT_VERSION, "ghc"); + VarRestore (SRCTARGETDIR); + + nResult = CreateShellObjects( "" ); + + return nResult; + end; + +/////////////////////////////////////////////////////////////////////////////// +// // +// Function: CleanUpInstall // +// // +// Purpose: This cleans up the setup. Anything that should // +// be released or deleted at the end of the setup should // +// be done here. // +// // +/////////////////////////////////////////////////////////////////////////////// +function CleanUpInstall() + begin + + + if (bInstallAborted) then + return 0; + endif; + + DialogShowSdFinishReboot(); + + if (BATCH_INSTALL) then // ensure locked files are properly written + CommitSharedFiles(0); + endif; + + return 0; + end; + +/////////////////////////////////////////////////////////////////////////////// +// // +// Function: SetupInstall // +// // +// Purpose: This will setup the installation. Any general initialization // +// needed for the installation should be performed here. // +// // +/////////////////////////////////////////////////////////////////////////////// +function SetupInstall() + + begin + + Enable( CORECOMPONENTHANDLING ); + + bInstallAborted = FALSE; + + GetDisk(WINDIR, svDir); + + if (bIs32BitSetup) then + svDir = svDir + "\\" ^ @PRODUCT_NAME_SHORT ^ @PRODUCT_KEY; + else + // We're (=>ghc) 32 through and through, but for the sake of + // completenes. + svDir = svDir + "\\" ^ @PRODUCT_NAME_SHORT ^ @PRODUCT_NAME16; + endif; + + TARGETDIR = svDir; + + SdProductName( @PRODUCT_NAME ); + + Enable( DIALOGCACHE ); + + return 0; + end; + +/////////////////////////////////////////////////////////////////////////////// +// // +// Function: SetupScreen // +// // +// Purpose: This function establishes the screen look. This includes // +// colors, fonts, and text to be displayed. // +// // +/////////////////////////////////////////////////////////////////////////////// +function SetupScreen() + begin + + SetColor ( BACKGROUND, BLUE ); + Enable( FULLWINDOWMODE ); + Enable( INDVFILESTATUS ); + + SetTitle( @TITLE_MAIN, 24, WHITE ); + + SetTitle( @TITLE_CAPTIONBAR, 0, BACKGROUNDCAPTION ); // Caption bar text. + + Enable( BACKGROUND ); + + Delay( 1 ); + end; + +/////////////////////////////////////////////////////////////////////////////// +// // +// Function: CheckRequirements // +// // +// Purpose: This function checks all minimum requirements for the // +// application being installed. If any fail, then the user // +// is informed and the setup is terminated. // +// // +/////////////////////////////////////////////////////////////////////////////// +function CheckRequirements() + NUMBER nvDx, nvDy, nvResult; + STRING svResult; + + begin + + bWinNT = FALSE; + bIsShellExplorer = FALSE; + + // Check screen resolution. + GetExtents( nvDx, nvDy ); + + if (nvDy < 480) then + MessageBox( @ERROR_VGARESOLUTION, WARNING ); + abort; + endif; + + // set 'setup' operation mode + bIs32BitSetup = TRUE; + GetSystemInfo( ISTYPE, nvResult, svResult ); + if (nvResult = 16) then + bIs32BitSetup = FALSE; // running 16-bit setup + return 0; // no additional information required + endif; + + // --- 32-bit testing after this point --- + + // Determine the target system's operating system. + GetSystemInfo( OS, nvResult, svResult ); + + if (nvResult = IS_WINDOWSNT) then + // Running Windows NT. + bWinNT = TRUE; + + // Check to see if the shell being used is EXPLORER shell. + if (GetSystemInfo( OSMAJOR, nvResult, svResult ) = 0) then + if (nvResult >= 4) then + bIsShellExplorer = TRUE; + endif; + endif; + + elseif (nvResult = IS_WINDOWS95 ) then + bIsShellExplorer = TRUE; + + endif; + +end; + + +/////////////////////////////////////////////////////////////////////////////// +// // +// Function: DialogShowSdWelcome // +// // +// Purpose: This function handles the standard welcome dialog. // +// // +// // +/////////////////////////////////////////////////////////////////////////////// +function DialogShowSdWelcome() + NUMBER nResult; + STRING szTitle, szMsg; + begin + + szTitle = ""; + szMsg = ""; + nResult = SdWelcome( szTitle, szMsg ); + + return nResult; + end; + +/////////////////////////////////////////////////////////////////////////////// +// // +// Function: DialogShowSdShowInfoList // +// // +// Purpose: This function displays the general information list dialog. // +// // +// // +/////////////////////////////////////////////////////////////////////////////// +function DialogShowSdShowInfoList() + NUMBER nResult; + LIST list; + STRING szTitle, szMsg, szFile; + begin + + szFile = SUPPORTDIR ^ "announce"; + + list = ListCreate( STRINGLIST ); + ListReadFromFile( list, szFile ); + szTitle = ""; + szMsg = " "; + nResult = SdShowInfoList( szTitle, szMsg, list ); + + ListDestroy( list ); + + return nResult; + end; + + +/////////////////////////////////////////////////////////////////////////////// +// // +// Function: DialogShowSdAskDestPath // +// // +// Purpose: This function asks the user for the destination directory. // +// // +/////////////////////////////////////////////////////////////////////////////// +function DialogShowSdAskDestPath() + NUMBER nResult; + STRING szTitle, szMsg; + begin + + szTitle = ""; + szMsg = "WARNING! The path must not contain spaces."; + nResult = SdAskDestPath( szTitle, szMsg, svDir, 0 ); + + TARGETDIR = svDir; + + return nResult; + end; + + +/////////////////////////////////////////////////////////////////////////////// +// // +// Function: DialogShowSdSetupType // +// // +// Purpose: This function displays the standard setup type dialog. // +// // +/////////////////////////////////////////////////////////////////////////////// +function DialogShowSdSetupType() + NUMBER nResult, nType; + STRING szTitle, szMsg; + begin + + switch (svSetupType) + case "Typical": + nType = TYPICAL; + case "Custom": + nType = CUSTOM; + case "Compact": + nType = COMPACT; + case "": + svSetupType = "Typical"; + nType = TYPICAL; + endswitch; + + szTitle = ""; + szMsg = ""; + nResult = SetupType( szTitle, szMsg, "", nType, 0 ); + + switch (nResult) + case COMPACT: + svSetupType = "Compact"; + case TYPICAL: + svSetupType = "Typical"; + case CUSTOM: + svSetupType = "Custom"; + endswitch; + + return nResult; + end; + + +/////////////////////////////////////////////////////////////////////////////// +// // +// Function: DialogShowSdComponentDialog2 // +// // +// Purpose: This function displays the custom component dialog. // +// // +// // +/////////////////////////////////////////////////////////////////////////////// +function DialogShowSdComponentDialog2() + NUMBER nResult; + STRING szTitle, szMsg; + begin + + if ((svSetupType != "Custom") && (svSetupType != "")) then + return 0; + endif; + + szTitle = ""; + szMsg = ""; + nResult = SdComponentDialog2( szTitle, szMsg, svDir, "" ); + + return nResult; + end; + +/////////////////////////////////////////////////////////////////////////////// +// // +// Function: CheckListScreen // +// // +// Purpose: Show a check-list of post-install user actions. // +// // +/////////////////////////////////////////////////////////////////////////////// +function CheckListScreen() + BOOL bDone; + NUMBER nCmdValue; + begin + EzDefineDialog("CHECKLIST", "", "", 30001); + + bDone = FALSE; + while (bDone=FALSE) + nCmdValue = WaitOnDialog("CHECKLIST"); + switch (nCmdValue) + case DLG_INIT: + // Process the Next button. + case SD_PBUT_CONTINUE: + bDone = TRUE; + // Process the Cancel button. + case SD_PBUT_EXITSETUP: + bDone = TRUE; + // Process the close dialog box button. + case DLG_CLOSE: + bDone = TRUE; + // Process dialog box errors. + case DLG_ERR: + MessageBox("Internal dialog box error", SEVERE); + bDone = TRUE; + endswitch; + endwhile; + // Identify the end of dialog box processing. + EndDialog("CHECKLIST"); + // Free the dialog box and list from memory. + ReleaseDialog("CHECKLIST"); + end; + +/////////////////////////////////////////////////////////////////////////////// +// // +// Function: DialogShowSdFinishReboot // +// // +// Purpose: This function will show the last dialog of the product. // +// It will allow the user to reboot and/or show some readme text. // +// // +/////////////////////////////////////////////////////////////////////////////// +function DialogShowSdFinishReboot() + NUMBER nResult, nDefOptions; + STRING szTitle, szMsg1, szMsg2, szOption1, szOption2; + NUMBER bOpt1, bOpt2; + begin + + if (!BATCH_INSTALL) then + bOpt1 = FALSE; + bOpt2 = FALSE; + szMsg1 = ""; + szMsg2 = ""; + szOption1 = ""; + szOption2 = ""; + szTitle = "Installation is now complete."; + nResult = SdFinish( szTitle, szMsg1, szMsg2, szOption1, szOption2, bOpt1, bOpt2 ); + return 0; + else + nDefOptions = SYS_BOOTMACHINE; + szTitle = ""; + szMsg1 = ""; + szMsg2 = ""; + nResult = SdFinishReboot( szTitle, szMsg1, nDefOptions, szMsg2, 0 ); + return nResult; + endif; + end; + +function MyParsePath(szPath) + STRING szTmp,szPth; + NUMBER nPos; + begin + szPth = szPath; + listPath = ListCreate( STRINGLIST ); + + // Man, all I want is map. Please? :-) + nPos = StrFind ( szPth, ";"); + while ( nPos > 0 ) + StrSub ( szTmp, szPth, 0, nPos); + ListAddString ( listPath, szTmp, AFTER ); + StrSub ( szTmp, szPth, nPos + 1, StrLength ( szPth) - nPos ); + szPth = szTmp; + nPos = StrFind ( szPth, ";" ); + endwhile; + + return 0; + end; + + function ForwardSlashify ( szStr , theRes ) + NUMBER nPos; + STRING szTemp, szRes; + begin + // Tortuous piece of code to convert backslashes into + // forward ones. + nPos = StrFind ( szStr, "\\"); + szRes=""; + while ( nPos >= 0 ) + StrSub ( szTemp, szStr, 0, nPos); + szRes = szRes + szTemp + "/"; + StrSub ( szTemp, szStr, nPos + 1, StrLength ( szStr) - nPos ); + szStr = szTemp; + nPos = StrFind ( szStr, "\\" ); + endwhile; + StrSub ( szTemp, szStr, 0, StrLength (szStr)); + szRes = szRes + szTemp; + theRes = szRes; + return 0; + end; + + function CreateExecPerlScript ( szPath, szFileName ) + NUMBER nResult, writeHandle, readHandle; + STRING szLine; + begin + VarSave (SRCTARGETDIR); + SRCDIR = szPath; + TARGETDIR = szPath; + DeleteFile ( szFileName + ".bak"); + RenameFile ( szFileName, szFileName + ".bak"); + VarRestore (SRCTARGETDIR); + + OpenFileMode (FILE_MODE_APPEND); + if ( CreateFile ( writeHandle, szPath, szFileName ) < 0 ) then + MessageBox ("CreateFile " + szPath ^ szFileName + " failed", INFORMATION); + endif; + // append + WriteLine (writeHandle, "#!" + szPerlPath ); + WriteLine (writeHandle, "$libdir='" + szLibDir + "';"); + WriteLine (writeHandle, "$bindir='" + szBinDir + "';"); + WriteLine (writeHandle, "$libexecdir='" + szLibExecDir + "';"); + WriteLine (writeHandle, "$datadir='" + szDataDir + "';"); + WriteLine (writeHandle, "$SED='sed';"); + WriteLine (writeHandle, "$TMPDIR='C:/TEMP';"); + WriteLine (writeHandle, "$RAWCPP='gcc -E';"); + // For the benefit of mkdependHS, which doesn't get this prepended + WriteLine (writeHandle, "$INSTALLING=1;"); + + OpenFileMode (FILE_MODE_NORMAL); + if ( OpenFile ( readHandle, szPath, szFileName + ".bak") < 0 ) then + MessageBox ("OpenFile " + szPath ^ szFileName + ".bak failed", INFORMATION); + endif; + + // copy the template over. + nResult = GetLine ( readHandle, szLine); + while ( nResult >= 0 ) + WriteLine ( writeHandle, szLine); + nResult = GetLine ( readHandle, szLine); + endwhile; + if ( CloseFile( readHandle ) < 0 ) then + MessageBox ( "CloseFile " + szPath ^ szFileName + ".bak failed", + INFORMATION); + endif; + if ( CloseFile( writeHandle ) < 0 ) then + MessageBox ( "CloseFile " + szPath ^ szFileName + " failed", + INFORMATION); + endif; + // There's no way to set the 'x' bit using + // SetFileInfo(), but luckily it is not needed to run #! scripts + // under cygwin. + SetFileInfo ( szPath ^ szFileName, FILE_ATTRIBUTE, FILE_ATTR_NORMAL, ""); + // Delete the .bak file + DeleteFile ( szPath ^ szFileName + ".bak"); + + return 0; + end; + + function DropSuffix ( szInp, szOut ) + NUMBER nResult, nLen; + STRING szTemp, szTemp2; + begin + nLen = 0; + szTemp2 = szInp; + nResult = StrFind ( szTemp2 , "."); + while ( nResult >= 0 ) + nLen = nLen + nResult; + StrSub ( szTemp, szTemp2, nResult + 1, StrLength ( szTemp2) - nResult ); + szTemp2 = szTemp; + nResult = StrFind ( szTemp2, "." ); + if ( nResult >= 0 ) then + nLen = nLen + 1; // incl the previous . if there's more. + endif; + endwhile; + StrSub ( szOut, szInp, 0, nLen); + return 0; + end; \ No newline at end of file -- GitLab