
;====================================================================
; Einige Initialisierungen
;====================================================================

(complete 0)

; Die Versionsnummer und das Erstellungs-Datum der hier installierten
; HotHelp-Version.

(set hh-version "3")
(set hh-version-intern "3.00")
(set hh-date "(14 Feb 94)")

; HotHelp wird über eine ganze Reihe von Verzeichnissen verteilt, so daß sich
; kein einzelnes Default-Dir angeben läßt.

(set @default-dest "")

(set os-version (/ (getversion) 65536))
(set os-13 (< os-version 36))
(set os-20 (>= os-version 36))
(set os-21 (>= os-version 38))

; Die Pfadnamen der einzelnen Quell-Dateien.

(set source-lha						"HotHelpInstall3_1:Tools/LhA")
(set source-hotkeyhelp				"HotHelpInstall3_1:C/HotKeyHelp")
(set source-hothelppref				"HotHelpInstall3_1:C/HotHelpPref")
(set source-toolicons (if os-20	"HotHelpInstall3_1:Icons/T2.0/"
											"HotHelpInstall3_1:Icons/T1.3/"))
(set source-toolicon-hkh			(cat source-toolicons "HKH.info"))
(set source-toolicon-hhpref		(cat source-toolicons "HHPref.info"))
(set source-toolicon-hhpro			(cat source-toolicons "HHPro.info"))
(set source-toolicon-easyhh		(cat source-toolicons "HHEasy.info"))
(set source-toolicon-hhmarker		(cat source-toolicons "HHMark.info"))
(set source-toolicon-hhcomp		(cat source-toolicons "HHC.info"))
(set source-toolicon-hhmanager	(cat source-toolicons "HHMan.info"))
(set source-toolicon-hh				(cat source-toolicons "HH.info"))
(set source-icons (if os-20		"HotHelpInstall3_1:Icons/Icons2.0"
											"HotHelpInstall3_1:Icons/Icons1.3"))

(set source-txt-hothelp				"HotHelpInstall3_1:Text/HotHelp.txt")
(set source-txt-libs					"HotHelpInstall3_2:Text/Libs 3.0.txt")
(set source-txt-libsdevs			"HotHelpInstall3_3:Text/Libs & Devs 3.0.txt")
(set source-txt-ansic				"HotHelpInstall3_3:Text/ANSI-C.txt")
(set source-txt-arexx				"HotHelpInstall3_3:Text/ARexx.txt")
(set source-txt-devs					"HotHelpInstall3_3:Text/Devs 3.0.txt")
(set source-txt-glossar				"HotHelpInstall3_3:Text/Glossar.txt")
(set source-txt-iff					"HotHelpInstall3_3:Text/IFF.txt")
(set source-txt-shell				"HotHelpInstall3_3:Text/Shell.txt")

(set archive-hothelplib				"HotHelpInstall3_1:Archive/HotHelpLib.lha")
(set archive-fasthothelplib		"HotHelpInstall3_1:Archive/FastHotHelpLib.lha")
(set archive-hothelphandler		"HotHelpInstall3_1:Archive/Handler.lha")
(set archive-catalogs				"HotHelpInstall3_1:Archive/Catalogs.lha")
(set archive-tools					"HotHelpInstall3_1:Archive/Tools.lha")
(set archive-header					"HotHelpInstall3_1:Archive/Header.lha")

; Die Größen der Text-Dateien.

(set size-txt-ansic					75000)
(set size-txt-arexx					85000)
(set size-txt-devs					140000)
(set size-txt-glossar				210000)
(set size-txt-hothelp				125000)
(set size-txt-hothelplib			55000)
(set size-txt-hothelptools			360000)
(set size-txt-iff						30000)
(set size-txt-libsdevs				50000)
(set size-txt-libs					845000)
(set size-txt-shell					155000)

; Die Pfadnamen der Programme, die vom Installations-Skript aufgerufen werden.

(set run-lhapatterns		"HotHelpInstall3_1:Tools/LhaPatterns")
(set run-flushprojects	"HotHelpInstall3_1:Tools/FlushProjects")
(set run-deleteproject	"HotHelpInstall3_1:Tools/DeleteProject")
(set run-lha				"RAM:LhA -a")
(set run-clearstartup	"HotHelpInstall3_3:Tools/ClearStartup")
(set run-setprojectpath	"HotHelpInstall3_3:Tools/SetProjectPath")

; Der Name des HotHelp-Verzeichnis darf nicht länger als dieser Wert sein.

(set max-project-dir 200)

; Default-Sprache für die verschiedenen Installations-Tools ist Deutsch.

(set tools-language 0)

;=====================================================================================
; installtext
;
; Die Prozedur erwartet Parameter in den folgenden Variablen:
;    §it-name   -	Name des Projektes, dessen Text-Datei kopiert wird
;    §it-size   -	Größe der Text-Datei
;    §it-source -	Pfadname der zu kopierenden Textdatei
;    §it-dest   -	Pfadname des Zielverzeichnisses
; Die folgenden Variablen werden von der Prozedur gesetzt:
;    §it-dest   -	Name des Verzeichnisses, in dem die Datei tatsächlich installiert
;						wurde. Kann sich vom Eingabewert unterscheiden, wenn aufgrund
;						mangelnden Disk-Speichers ein anderer Datenträger gewählt wurde.
;=====================================================================================
(procedure installtext
	(
	(if (and (> @user-level 0) (<= (getdiskspace §it-dest) §it-size))
		(
		(until (> (getdiskspace §it-dest) §it-size)
			(
			(message (cat	"Auf dem gewählten Datenträger \"" §it-dest "\" ist nicht "
								"mehr genügend freier Speicherplatz vorhanden, um die Texte "
								"des " §it-name "-Projektes zu installieren (es sind nur noch "
								 (/ (getdiskspace §it-dest) 1024) " KByte frei, während die "
								"Text-Datei " (/ §it-size 1024) " KByte benötigt).\n"
								"Dieser Fehler tritt üblicherweise bei Installation auf "
								"Disketten auf (falls Sie HotHelp auf eine Festplatte "
								"installieren und die Meldung sehen, sollten Sie die "
								"Installation abbrechen und erst ein wenig Platz auf Ihrer "
								"Platte schaffen).\n\n"
								"Sie müssen daher nun eine andere Disk angeben, auf die die "
								"Text-Datei kopiert werden soll.\n"))
			(set §it-dest
				(askdir
					(prompt "Auswahl der Disk für die Text-Datei des " §it-name "-Projektes (Dateigröße: " (/ §it-size 1024) " KByte)")
					(help (cat	"    Bei Installation auf Disketten müssen die Text-Dateien "
									"auf mehrere Disks verteilt werden, da sie sehr viel Platz "
									"benötigen. Sie müssen daher nun eine andere Disk auswählen, "
									"auf die die Text-Dateien kopiert werden sollen. Sie können "
									"auf der Disk auch Unterverzeichnisse anlegen.\n"
									"    Bitte beachten Sie jedoch, daß alle Disketten "
									"eindeutig Namen tragen müssen (z.B. \"HotHelp1\", "
									"\"HotHelp2\", etc.). Keinesfalls dürfen zwei Disketten "
									"denselben Namen tragen!"
									"\n\n"
									@askdir-help))
				(default §it-dest)
				(newpath)
				)
			)
			(if (= (exists §it-dest) 0)
				(makedir §it-dest (infos) (safe))
			(set §it-dest (expandpath §it-dest))
			)

			; Der Name darf nicht zu lang sein, sonst können wir ihn hinterher nicht in
			; die Header-Dateien der Projekte eintragen.
			(if (>= (strlen §it-dest) max-project-dir)
				(abort (cat	"\nDer eingegebene Name \n\"" §it-dest "\"\nist zu lang!\n\n"
								"Bitte geben Sie maximal " (- max-project-dir 1) " Zeichen ein!"))
			)
			)
		)
		)
	)
	(copyfiles
		(prompt	(cat "Kopiere Projekt-Texte " §it-name))
		(source	§it-source)
		(dest		§it-dest)
	)
	)
)

;=====================================================================================
; Beginn der Installation
;=====================================================================================

; Eine kleine Einleitungs-Message, gefolgt vom Startbildschirm des Installers.

(set act-user-level @user-level)
(user 1)
(message (cat	"Willkommen zum Installationsprogramm von \"HotHelp "
					 hh-version "\"!\n\n"
					"Dieses Skript kopiert die verschiedenen Dateien, "
					"aus denen sich das HotHelp-System zusammensetzt, "
					"auf Ihre Festplatte.\n\n"
					"Falls Sie über keine Platte verfügen, werden statt dessen bis zu "
					"vier Leerdisketten benötigt (Hinweise zum Formatieren von Disketten "
					"entnehmen Sie bitte Ihrem Amiga-Benutzerhandbuch).\n"
					"Bitte beachten Sie, daß alle verwendeten Leerdisks unterschiedliche "
					"Namen haben müssen und daß keine den Namen \"HotHelp\" tragen "
					"darf!"))
(user act-user-level)
(welcome)

(set partition "WORK:")
(if (= @user-level 0)
	(
	(user 1)
	(message (cat	"Im Einsteiger-Modus wird davon ausgegangen, daß HotHelp auf "
						"einer Festplatte installiert wird, auf der noch mindestens "
						"ca. 4 MByte freier Speicherplatz verfügbar sind. Sie müssen dazu im "
						"nächsten Fenster den Namen der gewünschten Festplatten-Partition "
						"angeben.\n\n"
						"Alle weiteren Angaben werden dann vom Installations-Skript "
						"möglichst genau an Ihr System angepaßt - insbesondere wird auch "
						"erkannt, wenn Sie schon eine alte HotHelp-Version installiert "
						"haben; diese wird dann komplett durch die neue Version ersetzt."))

	(set ok 0)
	(while (not ok)
		(set partition
			(askdir
				(prompt "Auswahl des Laufwerks für die HotHelp-Installation")
				(help (cat	"    Sie können über das Symbol 'Laufwerke anz.' (bzw. 'Show drives') "
								"eine Übersicht über alle Laufwerke Ihres Amiga anfordern; aus "
								"dieser Übersicht sollten Sie nur die oberen, nicht farblich "
								"gekennzeichneten Einträge auswählen.\n"
								"    Typische sinnvolle Namen sind z.B. \"WORK:\", \"HD0:\" oder \"DH0:\"; "
								"nicht verwenden sollten Sie Namen wie \"DF0:\", \"DF1:\", "
								"\"DF2:\", \"DF3:\", \"RAD:\", \"RAM:\", \"System2.0:\", "
								"\"WB_2.x:\", \"System3.0:\" oder \"WB_3.x:\"!"
								"\n\n"
								@askdir-help))
				(default partition)
				(disk)
			)
		)

		; Ist der Dateiname leer oder endet nicht mit einem ':' oder existiert unter
		; diesem Namen kein Verzeichnis, wird eine Fehlermeldung angezeigt; andernfalls
		; kann die Auswahl-Schleife beendet werden.
		(if (or (or (<= (strlen partition) 0) (<> (substr partition (- (strlen partition) 1) 1) ":")) (<> (exists partition (noreq)) 2))
			(message (cat	"\nBei Ihrer Auswahl \"" partition "\" handelt es sich nicht um "
								"eine gültige Laufwerks-Angabe!\n\n"
								"Sie können über das Symbol 'Laufwerke anz.' (bzw. 'Show drives') "
								"eine Übersicht über alle Laufwerke Ihres Amiga anfordern; aus "
								"dieser Übersicht sollten Sie nur die oberen, nicht farblich "
								"gekennzeichneten Einträge auswählen.\n"
								"Typische sinnvolle Namen sind z.B. \"WORK:\", \"HD0:\" oder \"DH0:\"; "
								"nicht verwenden sollten Sie Namen wie \"DF0:\", \"DF1:\", "
								"\"DF2:\", \"DF3:\", \"RAD:\", \"RAM:\", \"System2.0:\", "
								"\"WB_2.x:\", \"System3.0:\" oder \"WB_3.x:\"!"))
			;else
			(set ok 1)
		)
	)
	(user 0)
	)
)

; Dieser kleine Trick ist notwendig, damit LHA unter 1.3 und 2.0 keinen Mist
; baut...

(run run-lhapatterns)

; Falls HotHelp schon installiert ist, wird dies hier ermittelt. 'old-hh-version'
; kann anschließend die folgenden drei Werte beinhalten: -1 (noch nicht
; installiert), 0 (Version 2 war installiert) oder 1 (Version 3)

(set old-hh-version -1)
(if (<> (getassign "HOTHELP") "")
	(
	; Nun werden sicherheitshalber alle evtl. schon geladenen Projekte wieder aus
	; dem Speicher entfernt (diese geLock()ten Dateien lassen sich ja so
	; wahnsinnig schlecht überschreiben...).

	(working "\nEntferne evtl. geladene Projekte aus dem Speicher...")
	(run (cat run-flushprojects " " tools-language))

	; Wenn eine dieser typischen 3er-Dateien existiert, gehen wir davon aus, daß
	; Version 3 installiert ist.

	(set old-hh-version
		(if (or (exists "L:HotHelpHandler")
				  (exists "HOTHELP:HotHelpLib.English"))
			1
		;else
			0)
	)

	; Existiert ein Libs&Devs-1.3- oder -2.1-Projekt-Header, bieten wir die
	; Möglichkeit an, diese Projekte zu löschen. Ebenso die alte Datei mit den
	; Hilfstexten für den Manager.

	(if (exists "HOTHELP:Projekte/Libs & Devs 1.3.hdr")
		(if (askbool
				(prompt	(cat	"\nSie haben noch das alte Projekt 'Libs & Devs 1.3' "
									"installiert. Dieses wird komplett durch das neue "
									"'Libs & Devs 3.0'-Projekt ersetzt.\n"
									"Soll das alte Projekt gelöscht werden?"))
				(help		(cat	"    Das mit der alten HotHelp-Version ausgelieferte "
									"Projekt 'Libs & Devs 1.3' enthält eine Dokumentation "
									"des Amiga-Betriebssystems bis Version 1.3.\n"
									"    Da die neue Version von HotHelp das Projekt "
									"'Libs & Devs 3.0' beinhaltet, das alle "
									"Betriebssystem-Versionen bis 3.0 einschließlich "
									"dokumentiert, ist das alte 1.3-Projekt damit überflüssig "
									"und kann gelöscht werden."))
				(default 1))
			(
			(working "\nLösche das 1.3-Projekt...")
			(run (cat run-deleteproject " " tools-language))
			)
		)
	)
	(if (exists "HOTHELP:Projekte/Libs & Devs 2.1.hdr")
		(if (askbool
				(prompt	(cat	"\nSie haben noch das alte Projekt 'Libs & Devs 2.1' "
									"installiert. Dieses wird komplett durch das neue "
									"'Libs & Devs 3.0'-Projekt ersetzt.\n"
									"Soll das alte Projekt gelöscht werden?"))
				(help		(cat	"    Das mit der alten HotHelp-Version ausgelieferte "
									"Projekt 'Libs & Devs 2.1' enthält eine Dokumentation "
									"des Amiga-Betriebssystems bis Version 2.1.\n"
									"    Da die neue Version von HotHelp das Projekt "
									"'Libs & Devs 3.0' beinhaltet, das alle "
									"Betriebssystem-Versionen bis 3.0 einschließlich "
									"dokumentiert, ist das alte 2.1-Projekt damit überflüssig "
									"und kann gelöscht werden."))
				(default 1))
			(
			(working "\nLösche das 2.1-Projekt...")
			(run (cat run-deleteproject " " tools-language " X"))
			)
		)
	)
	(if (exists ("HOTHELP:HotHelpManager.Hlp"))
		(delete "HOTHELP:HotHelpManager.Hlp"
			(prompt (cat	"\nLösche HOTHELP:HotHelpManager.Hlp"
								"\n\n"
								"Diese Datei enthält die Hilfstexte für den "
								"alten HotHelpManager. Da dieses Programm nicht "
								"mehr benötigt wird, kann auch diese Datei entfernt "
								"werden."))
			(help "")
			(confirm)
		)
	)
	)
)

(set libs-chosen
	(askoptions
		(prompt "Auswahl der Funktions-Bibliotheken")
		(help (cat	"    Als erstes müssen Sie festlegen, welche Funktions-Bibliotheken auf "
						"Ihrem System installiert werden sollen. Im Normalfall können Sie die "
						"vorgegebene Einstellung übernehmen und die Installation direkt "
						"fortsetzen.\n"
						"    Hier noch einige Hintergrund-Informationen über die einzelnen "
						"Bibliotheken:\n"
						"    HotHelp.Library - Diese Library stellt das Kernstück von "
						"HotHelp dar. Es handelt sich um eine Funktions-Bibliothek, in "
						"der alle Routinen zusammengefaßt sind, die zum Verwalten und "
						"Anzeigen der Hilfstexte benötigt werden - mit anderen Worten: "
						"ohne diese Bibliothek geht überhaupt nichts!\n\n"
						"    LH.Library - Die Lh-Library enthält leistungsfähige Funktionen "
						"zum Komprimieren und Dekomprimieren von Daten. Da alle Hilfstexte, "
						"die mit dieser HotHelp-Version zusammen ausgeliefert werden, "
						"mit Hilfe dieser Library gepackt wurden (andernfalls wären die "
						"Dateien mehr als doppelt so groß!), muß auch diese Library "
						"installiert werden - andernfalls können die Texte bei der "
						"Ausgabe nicht mehr entschlüsselt werden! Sie sollten nur in dem "
						"Fall auf das Kopieren der Library verzichten, wenn Sie schon über "
						"eine neuere Version verfügen.\n\n"
						"   RCT.Library - Unter OS 1.3 wird diese Bibliothek verwendet, "
						"um einen FileRequester anzubieten. Sie können allerdings auf das "
						"Kopieren verzichten, wenn Sie schon über die ReqTools- oder "
						"die Arp-Library verfügen - HotHelp greift dann auf deren "
						"File-Requester zurück."
						"\n\n"
						@askoptions-help))
		(choices
			"HotHelp.Library"
			"LH.Library"
			"RCT.Library"
		)
		(default (if os-20 3 7) )
	)
)

; Nun wird der User gefragt, ob er die normale oder die FastFont-Version
; der Library installieren möchte. 'install-fastfont' enthält anschließend
; 0 für die normale oder 1 für die FastFont-Library.

(set install-fastfont 0)
(if (in libs-chosen 0)
	(set install-fastfont
		(askchoice
			(prompt "Art der Textanzeige")
			(help (cat	"    Bitte legen Sie hier fest, ob die HotHelp-Library die normalen "
							"Textausgabe-Routinen des Betriebssystems verwenden soll oder "
							"ob die schnelleren internen Funktionen von HotHelp verwendet "
							"werden sollen. Bei Verwendung der normalen Ausgabe-Funktionen "
							"ist die Library ca. 6 kByte kleiner - dafür ist die "
							"Ausgabegeschwindigkeit auch nur halb so hoch wie bei Verwendung "
							"der beschleunigten Ausgabe.\n"
							"    Sie sollten die schnellere Version allerdings nur anfordern, "
							"wenn Sie einen 'langsamen' Amiga (mit 68000-CPU) mit altem "
							"Betriebssystem (maximal OS 1.3) besitzen und wenn Sie noch keinen "
							"anderen Text-Beschleuniger verwenden. Andernfalls bringt der "
							"HotHelp-interne FastFont keinen Geschwindigkeits-Vorteil mehr."
							"\n\n"
							 @askchoice-help))
			(choices "Normale Textausgabe" "Beschleunigte Textausgabe")
			(default (if os-13 1 0))
		)
	)
)

; LhA wird in die RAM-Disk kopiert, damit das Programm nicht jedesmal von Disk
; geladen werden muß.
(copyfiles
	(source source-lha)
	(dest "RAM:")
	(nogauge)
)

; Nun werden die gewünschten Libraries der Reihe nach aus ihren Archiven
; entnommen.
(if (<> libs-chosen 0)
	(
	(if (in libs-chosen 0)
		(run (cat run-lha " x " (if (= install-fastfont 1) archive-fasthothelplib archive-hothelplib) " LIBS: HotHelp.Library"))
	)
	(complete 5)
	(if (in libs-chosen 1)
		(run (cat run-lha " x " archive-hothelplib " LIBS: Lh.Library"))
	)
	(complete 10)
	(if (in libs-chosen 2)
		(run (cat run-lha " x " archive-hothelplib " LIBS: RCT.Library"))
	)
	(complete 15)
	)
)
(complete 15)

; Nun kommen die Handler an die Reihe:

(run
	(prompt	(cat	"\nKopieren der HotHelp-Handler\n\n"
						"Bei den Handlern handelt es sich um Programm-Teile, "
						"die von der Library bzw. HotKeyHelp nachgeladen werden, "
						"um eigene Prozesse daraus zu erzeugen.\n"
						"Der HotHelpHandler wird benötigt, um asynchrone "
						"HotHelp-Fenster zu erzeugen, der HotKeyHelpHandler "
						"wird von HotKeyHelp als eigener Prozeß installiert, "
						"der für die Überwachung des Input-Streams, das "
						"ARexx-Interface und die Onlineprojekte zuständig ist."))
	(help		(cat	"    Bei Zustimmung werden die beiden Handler in das "
						"L:-Verzeichnis entpackt, wo sie von HotHelp erwartet werden."))
	(cat run-lha " x " archive-hothelphandler " L:")
	(confirm)
)
(complete 20)

; And now for something completely different: It's Monty Pythons Flying HotKeyHelp!

(set hotkeyhelp-dir
	(askdir
		(prompt "Auswahl des HotKeyHelp-Verzeichnisses")
		(help (cat	"    Das Programm HotKeyHelp ist ebenfalls sehr wichtig für "
						"das HotHelp-System. Es installiert einen Input-Handler, der "
						"alle Tastatur-Eingaben überwacht. Wird einer der vorgegebenen "
						"Hotkeys entdeckt, öffnet der Handler über die HotHelp-Library "
						"ein HotHelp-Fenster mit einem Hilfstext - je nachdem, welcher "
						"Hotkey eingegeben wurde.\n"
						"    Ohne dieses Programm können demnach keine HotHelp-Fenster "
						"über die Hotkeys geöffnet werden. Auch die neuen Online-Projekte "
						"und das ARexx-Interface sind nur verwendbar, wenn HotKeyHelp "
						"installiert wurde.\n"
						"    Sie müssen nun hier festlegen, in welches Verzeichnis "
						"das Programm kopiert werden soll."
						"\n\n"
						@askdir-help))
	(default "C:")
	(newpath)
	)
)
(if (= (exists hotkeyhelp-dir) 0)
	(makedir hotkeyhelp-dir (infos) (safe))
(set hotkeyhelp-dir (expandpath hotkeyhelp-dir))
)
(copyfiles
	(source source-hotkeyhelp)
	(dest hotkeyhelp-dir)
)
(copyfiles
	(source source-toolicon-hkh)
	(dest hotkeyhelp-dir)
	(newname "HotKeyHelp.info")
)
(complete 25)

; Nun wird das Verzeichnis ausgewählt, in dem alle HotHelp-Dateien untergebracht
; werden sollen. Diesem Verzeichnis wird später das HOTHELP:-Device zugeordnet.

(message (cat	"\nBitte bestimmen Sie jetzt das Verzeichnis, in dem die für HotHelp "
					"wichtigen Daten abgelegt werden sollen. Dabei handelt es sich z.B. "
					"um eine Datei mit den aktuellen Einstellungen des Systems, diverse "
					"Icon-Dateien und (last but not least) die Projekt-Dateien mit "
					"den Hilfstexten selber.\n"))

; Falls HOTHELP: schon assigned ist (HotHelp also schon mal installiert wurde),
; weisen wir hier den entsprechenden Pfad an 'hothelp-dir' zu - andernfalls wird
; als Default "WORK:HotHelp" angenommen.

(set hothelp-dir (getassign "HOTHELP"))
(if (= hothelp-dir "")
	(set hothelp-dir (cat partition "HotHelp"))
)

(set hothelp-dir
	(askdir
		(prompt "Auswahl des HotHelp-Verzeichnisses")
		(help (cat	"    Sie müssen nun festlegen, in welchem Verzeichnis die "
						"Daten von HotHelp abgelegt werden sollen. Falls Sie HotHelp "
						"schon vorher einmal installiert haben, wird hier das damals "
						"ausgewählte Verzeichnis vorgegeben - andernfalls lautet die "
						"Vorgabe \"" partition "HotHelp\".\n"
						"    Festplatten-Besitzer können das so voreingestellte "
						"Verzeichnis 'HotHelp' auf der " partition "-Partition "
						"verwenden.\n"
						"    Bei Installation auf Disketten sollten Sie eine eigene "
						"Disk für die Dateien verwenden, auf der Sie dann ein "
						"entsprechendes Unterverzeichnis anlegen. Liegt die "
						"Ziel-Diskette z.B. in Laufwerk 1, sollten Sie "
						"\"DF1:HotHelp\" in das Feld 'Ausgewählte Schublade' "
						"eingeben, um ein Verzeichnis dieses Namens auf der Disk "
						"anlegen zu lassen. Verwenden Sie eine der vorbereiteten "
						"Leerdisketten."
						"\n\n"
						@askdir-help))
	(default hothelp-dir)
	(newpath)
	)
)
(if (= (exists hothelp-dir) 0)
	(makedir hothelp-dir (infos) (safe))
(set hothelp-dir (expandpath hothelp-dir))
)

(if (>= (strlen hothelp-dir) max-project-dir)
	(abort (cat	"\nDer eingegebene Name \n\"" hothelp-dir "\"\nist zu lang!\n\n"
					"Bitte geben Sie maximal " (- max-project-dir 1) " Zeichen ein!"))
)

; Jetzt folgen die Sprach-Dateien.

(if (or (<> (getassign "LOCALE") "") os-21)
	(run
		(prompt	(cat	"\nKopieren der Sprachen-Kataloge\n\n"
							"Die Kataloge enthalten die deutschen Texte, die innerhalb der "
							"HotHelp-Library und der HotHelp-Tools verwendet werden.\n"
							"(Es handelt sich dabei nicht um Hilfstexte, sondern um ganz "
							"normale Texte wie z.B. Beschriftungen von Symbolen, Meldungen an "
							"den Benutzer etc.)"))
		(help		(cat	"    HotHelp unterstützt in der neuen Version " hh-version " die "
							"Locale-Library. Das bedeutet, daß die Sprache der Benutzerführung "
							"eines Programms über den System-Editor 'Locale' "
							"bestimmt werden kann.\n"
							"    Diese beiden Kataloge werden benötigt, wenn Sie HotHelp "
							"mit einer deutschsprachigen Oberfläche verwenden wollen. Die "
							"beiden Dateien werden im Verzeichnis LOCALE:Catalogs/Deutsch "
							"abgelegt."))
		(cat run-lha " x " archive-catalogs " LOCALE:Catalogs/Deutsch/ #?.catalog")
		(confirm)
	)
)
(complete 30)

; Dieses Monster hängt an den Verzeichnisnamen einen '/' an, falls er nicht
; leer ist und nicht bereits mit ':' oder '/' endet (ansonsten bekommt LHA
; Probleme).
(set dst-dir hothelp-dir)
(if (and (> (strlen dst-dir) 0) (and (<> (substr dst-dir (- (strlen dst-dir) 1) 1) ":") (<> (substr dst-dir (- (strlen dst-dir) 1) 1) "/"))) (set dst-dir (cat dst-dir "/")))
(run
	(prompt	(cat	"\nKopieren von HotHelps Sprachen-Dateien\n\n"
						"Diese Dateien enthalten zum einen die englischen Vorgabe-Texte "
						"der Library und der Tools sowie deren deutsche Übersetzungen. "
						"Falls Sie immer mit mindestens OS 2.1 arbeiten und eben die "
						"System-Kataloge installiert haben, können Sie später die beiden "
						"Dateien 'HOTHELP:HotHelpLib.Deutsch' und 'HOTHELP:HotHelpTools.Deutsch' "
						"wieder löschen."))
	(help		(cat	"    Diese Dateien enthalten sämtliche Programm-Texte von HotHelp. "
						"Je nach der eingestellten Sprache werden die deutschen oder die "
						"englischen Texte verwendet, so daß die gesamte Benutzerführung "
						"in der gewählten System-Sprache erfolgt (vor OS 2.1 kann die "
						"aktuelle Sprache im Programm 'HotHelpPref' eingestellt werden).\n"
						"    Die Dateien werden im vorhin gewählten Verzeichnis für die "
						"HotHelp-Daten \"" hothelp-dir "\" abgelegt."))
	(cat run-lha " x " archive-catalogs " \"" dst-dir "\" #?.Deutsch #?.English")
	(confirm)
)
(complete 35)

; Nun werden die diversen Icons in das HotHelp-Verzeichnis kopiert.

(working "\nDie Standard-Icons werden kopiert...")
(copyfiles
	(source source-icons)
	(dest (tackon hothelp-dir "Icons"))
	(all)
)
(complete 40)

; Und jetzt kommen die Projekt-Dateien!

(message (cat	"\nNun müssen noch die im Lieferumfang enthaltenen Dateien mit "
					"Hilfstexten (die sogenannten Projekte) installiert werden. "
					"Im folgenden Fenster können Sie dazu festlegen, welche der "
					"Projekte Sie benötigen und welche nicht.\n"
					"Eine Erläuterung zu den einzelnen Projekten erhalten Sie über das "
					"'Hilfe...'-Symbol im nächsten Fenster.\n\n"
					(if (<> old-hh-version -1)
						(cat	"Da alle Projekte komplett überarbeitet wurden, sollten "
								"Sie sich auch als Besitzer einer älteren Version "
								"die schon bekannten Projekte installieren lassen (wie "
								"z.B. das HotHelp- oder das Glossar-Projekt)!"
						)
					)))

(set projects-chosen
	(askoptions
		(prompt "Auswahl der Projekte")
		(help (cat	"    In diesem Fenster können Sie auswählen, welche der "
						"Projekte (Dateien mit Hilfstexten) Sie installieren möchten. "
						"Im folgenden erhalten Sie eine kurze Übersicht über die "
						"Bedeutung der einzelnen Projekte:\n\n"
						"    HotHelp - Dieses Projekt enthält eine Reihe wichtiger "
						"Informationen über HotHelp selber und sollte auf jeden Fall "
						"installiert werden.\n\n"
						"    Glossar - Enthält eine ausführliche Erklärung vieler "
						"Amiga-typischer Fachausdrücke und ist somit für jeden "
						"Gelegenheitsanwender ein ideales Nachschlagewerk.\n\n"
						"    Shell - Übersicht über alle Shell-Befehle, die von "
						"ihnen verwendeten Fehlercodes und verwandte Informationen.\n\n"
						"    ARexx - Dieses Projekt enthält eine Kurzreferenz für die "
						"Programmierung in der Interpretersprache ARexx, die ab Version "
						"2.0 Bestandteil des Betriebssystems ist und die vor allem dazu "
						"verwendet wird, Anwendungsprogramme von außen zu kontrollieren.\n\n"
						"    ANSI-C - Eine Beschreibung der Standardbibliothek für "
						"C-Compiler, die für jeden C-Programmierer interessant ist.\n\n"
						"    IFF - Dieses Projekt beschreibt das "
						"Standard-Datenaustauschformat IFF des Amiga. Es ist für jeden "
						"Programmierer interessant, der IFF-Dateien lesen oder "
						"schreiben möchte.\n\n"
						"    Libs & Devs 3.0, Libs 3.0, Devs 3.0 - Eine umfassende "
						"Dokumentation des Amiga-Betriebssystems bis einschließlich "
						"OS 3.0 mit einer Beschreibung aller System-Funktionen, "
						"-Strukturen und -Symbole. Diese Projekte sind unverzichtbar "
						"für jeden engagierten Amiga-Programmierer. Nicht-Programmierer "
						"können jedoch getrost darauf verzichten...\n"
						"\"Libs & Devs 3.0\" enthält einige grundlegende Informationen, "
						"während das Projekt \"Libs 3.0\" sämtliche System-Libraries und "
						"das Projekt \"Devs 3.0\" alle System-Devices dokumentiert."
						"\n\n"
						@askoptions-help))
		(choices		"HotHelp"
						"Glossar"
						"Shell"
						"ARexx"
						"ANSI-C"
						"IFF"
						"Libs & Devs 3.0"
						"Libs 3.0"
						"Devs 3.0")
		(default -1)
	)
)
(if (<> projects-chosen 0)
	(
	(working "\nDie Header-Dateien werden installiert...")

	(set header "")
	(if (in projects-chosen  0) (set header (cat header " HotHelp.hdr")))
	(if (in projects-chosen  1) (set header (cat header " Glossar.hdr")))
	(if (in projects-chosen  2) (set header (cat header " Shell.hdr")))
	(if (in projects-chosen  3) (set header (cat header " ARexx.hdr")))
	(if (in projects-chosen  3) (set header (cat header " ANSI?C.hdr")))
	(if (in projects-chosen  5) (set header (cat header " IFF.hdr")))
	(if (in projects-chosen  6) (set header (cat header " Libs???Devs?3.0.hdr")))
	(if (in projects-chosen  7) (set header (cat header " Libs?3.0.hdr")))
	(if (in projects-chosen  8) (set header (cat header " Devs?3.0.hdr")))

	(set dst-dir (tackon hothelp-dir "Projekte"))
	(if (and (> (strlen dst-dir) 0) (and (<> (substr dst-dir (- (strlen dst-dir) 1) 1) ":") (<> (substr dst-dir (- (strlen dst-dir) 1) 1) "/"))) (set dst-dir (cat dst-dir "/")))
	(run (cat run-lha " x " archive-header " \"" dst-dir "\" " header))
	(complete 45)

	; Damit wären die Header-Files schon mal da, wo sie hingehören - nämlich in
	; HOTHELP:Projekte. Nun müssen wir uns noch um die Verteilung der Text-Dateien
	; kümmern.

	(set pro-dir (tackon hothelp-dir "Projekte"))

	(if (in projects-chosen 0) (	(set §it-name   "HotHelp")
											(set §it-size   size-txt-hothelp)
											(set §it-source source-txt-hothelp)
											(set §it-dest   pro-dir)
											(installtext)
											(set pro-dir-hothelp §it-dest)))
	(complete 50)

	(if (in projects-chosen 7)
		(
		(askdisk	(dest	"HotHelpInstall3_2")
					(prompt (cat	"\n\nBitte legen Sie nun die Disk \"HotHelpInstall3_2\" "
										"in ein beliebiges Laufwerk ein!"))
					(help @askdisk-help)
		)
		(set §it-name   "Libs 3.0")
		(set §it-size   size-txt-libs)
		(set §it-source source-txt-libs)
		(set §it-dest   pro-dir)
		(installtext)
		(set pro-dir-libs §it-dest)
		)
	)
	(complete 54)

	(askdisk	(dest	"HotHelpInstall3_3")
				(prompt (cat	"\n\nBitte legen Sie nun die Disk \"HotHelpInstall3_3\" "
									"in ein beliebiges Laufwerk ein!"))
				(help @askdisk-help)
	)

	(if (in projects-chosen 1) (	(set §it-name   "Glossar")
											(set §it-size   size-txt-glossar)
											(set §it-source source-txt-glossar)
											(set §it-dest   pro-dir)
											(installtext)
											(set pro-dir-glossar §it-dest)))
	(complete 58)
	(if (in projects-chosen 2) (	(set §it-name   "Shell")
											(set §it-size   size-txt-shell)
											(set §it-source source-txt-shell)
											(set §it-dest   pro-dir)
											(installtext)
											(set pro-dir-shell §it-dest)))
	(complete 62)
	(if (in projects-chosen 3) (	(set §it-name   "ARexx")
											(set §it-size   size-txt-arexx)
											(set §it-source source-txt-arexx)
											(set §it-dest   pro-dir)
											(installtext)
											(set pro-dir-arexx §it-dest)))
	(complete 64)
	(if (in projects-chosen 4) (	(set §it-name   "ANSI-C")
											(set §it-size   size-txt-ansic)
											(set §it-source source-txt-ansic)
											(set §it-dest   pro-dir)
											(installtext)
											(set pro-dir-ansic §it-dest)))
	(complete 68)
	(if (in projects-chosen 5) (	(set §it-name   "IFF")
											(set §it-size   size-txt-iff)
											(set §it-source source-txt-iff)
											(set §it-dest   pro-dir)
											(installtext)
											(set pro-dir-iff §it-dest)))
	(complete 72)
	(if (in projects-chosen 6) (	(set §it-name   "Libs & Devs 3.0")
											(set §it-size   size-txt-libsdevs)
											(set §it-source source-txt-libsdevs)
											(set §it-dest   pro-dir)
											(installtext)
											(set pro-dir-libsdevs §it-dest)))
	(complete 76)
	(if (in projects-chosen 8) (	(set §it-name   "Devs 3.0")
											(set §it-size   size-txt-devs)
											(set §it-source source-txt-devs)
											(set §it-dest   pro-dir)
											(installtext)
											(set pro-dir-devs §it-dest)))
	(complete 80)

	(if (in projects-chosen 0) ((working "\nBearbeite HotHelp.hdr")         (run (cat run-setprojectpath " " tools-language " \"" (tackon pro-dir "HotHelp.hdr")         "\" \"" (tackon pro-dir-hothelp      "HotHelp.txt")         "\""))))
	(if (in projects-chosen 1) ((working "\nBearbeite Glossar.hdr")         (run (cat run-setprojectpath " " tools-language " \"" (tackon pro-dir "Glossar.hdr")         "\" \"" (tackon pro-dir-glossar      "Glossar.txt")         "\""))))
	(if (in projects-chosen 2) ((working "\nBearbeite Shell.hdr")           (run (cat run-setprojectpath " " tools-language " \"" (tackon pro-dir "Shell.hdr")           "\" \"" (tackon pro-dir-shell        "Shell.txt")           "\""))))
	(if (in projects-chosen 3) ((working "\nBearbeite ARexx.hdr")           (run (cat run-setprojectpath " " tools-language " \"" (tackon pro-dir "ARexx.hdr")           "\" \"" (tackon pro-dir-arexx        "ARexx.txt")           "\""))))
	(if (in projects-chosen 4) ((working "\nBearbeite ANSI-C.hdr")          (run (cat run-setprojectpath " " tools-language " \"" (tackon pro-dir "ANSI-C.hdr")          "\" \"" (tackon pro-dir-ansic        "ANSI-C.txt")          "\""))))
	(if (in projects-chosen 5) ((working "\nBearbeite IFF.hdr")             (run (cat run-setprojectpath " " tools-language " \"" (tackon pro-dir "IFF.hdr")             "\" \"" (tackon pro-dir-iff          "IFF.txt")             "\""))))
	(if (in projects-chosen 6) ((working "\nBearbeite Libs & Devs 3.0.hdr") (run (cat run-setprojectpath " " tools-language " \"" (tackon pro-dir "Libs & Devs 3.0.hdr") "\" \"" (tackon pro-dir-libsdevs     "Libs & Devs 3.0.txt") "\""))))
	(if (in projects-chosen 7) ((working "\nBearbeite Libs 3.0.hdr")        (run (cat run-setprojectpath " " tools-language " \"" (tackon pro-dir "Libs 3.0.hdr")        "\" \"" (tackon pro-dir-libs         "Libs 3.0.txt")        "\""))))
	(if (in projects-chosen 8) ((working "\nBearbeite Devs 3.0.hdr")        (run (cat run-setprojectpath " " tools-language " \"" (tackon pro-dir "Devs 3.0.hdr")        "\" \"" (tackon pro-dir-devs         "Devs 3.0.txt")        "\""))))
	)
)
(complete 85)

(askdisk	(dest	"HotHelpInstall3_3")
			(prompt (cat	"\n\nBitte legen Sie nun die Disk \"HotHelpInstall3_3\" "
								"in ein beliebiges Laufwerk ein!"))
			(help @askdisk-help)
)

; Nun wird die Pref-Datei zusammengebastelt!

(set pref
	(cat	"$VER: HotHelpPref " hh-version-intern " " hh-date "\n"
			"TextColor=1\n"
			"LightColor=" (if os-20 "2" "1") "\n"
			"DarkColor=" (if os-20 "1" "2") "\n"
			"RefColor=3\n"
			"FontName=" (if os-20 "courier" "topaz") ".font\n"
			"FontSize=" (if os-20 "15" "8") "\n"
			"ScrollDelay=15\n"
			"ScrollSpeed=0\n"
			"LeftEdge=0\n"
			"TopEdge=" (if os-20 "12" "11") "\n"
			"Width=1000\n"
			"Height=150\n"
			"StackSize=20\n"
			"KeyTab=30\n"
			"KeyLayout=Columns\n"
			"PrintTitle=CompleteOnly\n"
			"ShowStart=Off\n"
			"CloseCut=SpecialOnly\n"
			"SearchArea=ActualFirst\n"
			"HKAltQual=48\n"
			"HKCtrlQual=8\n"
			"HKShiftQual=3\n"
			"HKAltCode=95\n"
			"HKCtrlCode=95\n"
			"HKShiftCode=95\n"
			"HKAltAll=Off\n"
			"HKCtrlAll=Off\n"
			"HKShiftAll=Off\n"
			"StartProject=HotHelp\n"
			"StartKey=Startseite\n"
			"ViewColor=3\n"
			"SearchIgnore=On\n"
			"SearchBack=Off\n"
			"SearchAll=Off\n"
			"ShiftProject=Libs 3.0\n"
			"CtrlProject=Shell\n"
			"CommandProject=Libs 3.0\n"
			"FastFont=" (if install-fastfont "On" "Off") "\n"
			"DefaultFont=Off\n"
			"SmartFont=" (if install-fastfont "Off" "On") "\n"
			"SmartColors=On\n"
			"RamIcon=On\n"
			"OPrEnvironment=Off\n"
			"OPrName=OnlineProjekt\n"
			"OPrDir=HOTHELP:OnlineProjekte\n"
			"OPrFEnter=Off\n"
			"OPrFSelect=On\n"
			"OPrFFirst=Off\n"
			"OPrFCheck=On\n"
			"OPrFDoubleCheck=On\n"
			"OPrFFloatText=Off\n"
			"OPrMarkExclude=float|double|char|int|long|unsigned|void|extern|static|const|register|struct|union|enum|#define|class|inline|*|VOID|BYTE|UBYTE|WORD|UWORD|SHORT|USHORT|LONG|ULONG|APTR|BPTR|CPTR|STRPTR|BSTR|BOOL|FLOAT|DOUBLE\n"
			"OPrMarkPara=\n"
			"OPrMarkCmtStart=/*\n"
			"OPrMarkCmtEnd=*/\n"
			"OPrMarkCmtLine=//\n"
			"OpenOnStart=Off\n"
			"Editor=Select\n"
			"EnvEditor=HHEditor\n"
			"ARexxHost=HOTHELP_REXX\n"
			"HKAmigaQual=192\n"
			"HKOnlineQual=72\n"
			"HKAmigaCode=95\n"
			"HKOnlineCode=33\n"
			"HKAmigaAll=Off\n"
			"HKOnlineAll=On\n"
			"ToolsDir=SYS:\n"
			"DOSPattern=" (if os-20 "On" "Off") "\n"
			"DisplayBeep=" (if os-21 "Flash" "DisplayBeep") "\n"
			"OnlyPubScreen=Off\n"
			"StdNumPad=Standard\n"
			"CEDRealSize=Off\n"
			"StartupMsg=On\n"
			"CaseSensitivity=Off\n"
			"LoadKeys=AsNeeded_Free\n"
			"Language=Deutsch\n"
	)
)
(working "\nDie Voreinstellungs-Datei wird erzeugt...")
(textfile
	(dest (tackon hothelp-dir "HotHelp3.Pref"))
	(append pref)
	(confirm)
	(prompt (cat	"\nErzeugen der HotHelp-Voreinstellungs-Datei <"
						(tackon hothelp-dir "HotHelp3.Pref")
						">"))
	(help (cat		"    In dieser Datei werden alle Voreinstellungen des gesamten "
						"HotHelp-Systems festgehalten, die dann später über das Tool "
						"HotHelpPref editiert werden können.\n"
						"    Die Datei wurde an Ihre spezielle Konfiguration angepaßt "
						"und sollte daher grundsätzlich installiert werden."))
)
(complete 90)

; Nun wird die Startup-Sequence (bzw. User-StartUp) an HotHelp angepaßt.

(set cmd (cat "Assign HOTHELP: \"" hothelp-dir "\"\n"))

(if (patmatch (fileonly hotkeyhelp-dir) "WBStartUp")
	(
	(if (askbool
			(prompt	(cat	"\nHotKeyHelp wurde im Verzeichnis '" hotkeyhelp-dir "' "
								"installiert.\n\n"
								"Soll das Programm dennoch in die "
								"Skript-Datei 'S:User-StartUp' eingetragen werden, so "
								"daß es automatisch bei jedem Start aufgerufen wird?"))
			(help		(cat	"    Alle Programme im Verzeichnis 'SYS:WBStartUp' werden "
								"ab Betriebssystem-Version 2.0 automatisch gestartet, "
								"sobald die Workbench geladen wird. In diesem Fall sollte "
								"HotKeyHelp nicht von der Datei 'User-StartUp' aus "
								"aufgerufen werden, da diese ebenfalls bei jedem Neustart "
								"des Rechners ausgeführt wird.\n"
								"    Handelt es sich bei dem gewählten Verzeichnis jedoch "
								"nicht um 'SYS:WBStartUp' oder wird auf Ihrem System die "
								"Workbench nicht automatisch gestartet, sollte der "
								"Aufruf HotKeyHelps in die Skriptdatei eingefügt werden, "
								"damit das Programm nach jedem Start zur Verfügung steht."))
			(default 0))
		(
		(set cmd (cat cmd "\"" (tackon hotkeyhelp-dir "HotKeyHelp") "\"\n"))
		)
	)
	)
;else
	(set cmd (cat cmd "\"" (tackon hotkeyhelp-dir "HotKeyHelp") "\"\n"))
)

(startup "HotHelp"
	(prompt (cat	"\nDie folgenden Befehle werden nun in die Datei \"S:User-Startup\" "
						"eingetragen:\n\n"
						cmd))
	(help @startup-help)
	(command cmd)
)
(complete 95)

(if (= old-hh-version 0)
	(run (cat run-clearstartup " " tools-language)
		(prompt	(cat	"\nClearStartup wird ausgeführt\n\n"
							"Dieses Programm überarbeitet die Startup-Sequence, wenn von "
							"HotHelp-Version 2 auf " hh-version " umgestiegen wird."))
		(help		(cat	"    Da sich der Installations-Vorgang zwischen HotHelp-Version "
							"2 und " hh-version " erheblich unterscheidet (HotHelp 2 "
							"wurde mit einem selbstgebauten Programm installiert, während "
							"HotHelp " hh-version " den Commodore-Installer verwendet), hat "
							"sich auch der Aufbau der beim Starten des Systems automatisch "
							"ausgeführten Befehle geändert.\n"
							"    Unter HotHelp 2 wurden diese Befehle in die "
							"Startup-Sequence eingebaut, während der Installer dafür den "
							"User-Startup verwendet. Aus diesem Grund müssen beim Umstieg "
							"von HotHelp 2 auf " hh-version " die alten Befehle aus der "
							"Startup-Sequence wieder entfernt werden."))
		(confirm)
	)
)
(complete 100)

; LhA in der RAM-Disk wird nun nicht mehr benötigt.
(delete "RAM:LhA")

(user 1)
(message (cat	"\nDie Installation von HotHelp " hh-version " ist abgeschlossen.\n"
					"Bitte starten Sie jetzt Ihren Rechner neu!\n\n"
					"Anschließend können Sie HotHelp dann jederzeit über Alt-Help "
					"aktivieren.\n"
					"Shift-Help zeigt Hilfe zum Wort unter dem Cursor in Ihrem "
					"Editor an, während Amiga-Help den Inhalt des Clipboards als "
					"Schlüsselbegriff verwendet. Control-Help stellt einen Hilfstext "
					"zum jeweils zuletzt eingegebenen Wort dar."))

