Doku fuer Hooks
Hook-Funktionen und weitere Libhooks.
Ausserdem ein paar Typos und Klarstellungen in aelteren Manpages zu
Libhooks.
Change-Id: I27de063d852ccb3971379503ab041682d711be9c
diff --git a/doc/sphinx/lfun/HookCallback.rst b/doc/sphinx/lfun/HookCallback.rst
new file mode 100644
index 0000000..c3b60df
--- /dev/null
+++ b/doc/sphinx/lfun/HookCallback.rst
@@ -0,0 +1,66 @@
+HookCallback()
+==============
+
+FUNKTION
+--------
+
+ mixed HookCallback(object hooksource, int hookid, mixed hookdata)
+
+DEFINIERT IN
+------------
+
+ Eigenen Objekten
+
+ARGUMENTE
+---------
+
+ - hooksource: Das Objekt, in dem das Ereignis ausgeloest wurde
+ - hookid: Hooktyp des ausgeloesten Hooks
+ - hookdata: Daten des ausgeloesten Hooks
+ (S. Doku des jeweiligen Hooks.)
+
+BESCHREIBUNG
+------------
+
+ Standard-Callback-Methode fuer Hooks. Wird beim Registrieren ein Objekt
+ uebergeben, wird versucht, eine Closure auf HookCallback() an diesem Objekt
+ zu erstellen. Man kann die Funktion auch anders benennen und direkt als
+ Closure uebergeben. Dies ist insb. bei mehreren Hooks im gleichen Objekt
+ hilfreich, weil es den Code uebersichtlicher macht. Die Argumente muessen
+ jedoch immer die gleichen wie bei HookCallback() sein.
+
+ Die Reihenfolge des Aufrufs der Konsumenten ist Surveyor, Hook-Modifikator,
+ Data-Modifikator, Listener. Innerhalb der Gruppen wird nach Prioritaet
+ abgearbeitet.
+ Ein Surveyor-Hook kann verhindern, dass Hooks bestimmte Aenderungen
+ durchfuehren.
+
+RUECKGABEWERTE
+--------------
+
+ ({<status>, <hookdata>})
+
+ - Status: Eine der folgenden Konstanten:
+ - H_NO_MOD: keine Veraenderung
+ - H_ALTERED: Daten des Hooks geaendert
+ - H_CANCELLED: Die Ausfuehrung der Hook-Kette und das ausloesende
+ Ereignis werden abgebrochen
+ Nicht alle Hooks unterstuetzen jeden Status.
+ - hookdata: Die ggf. modifizierten Hookdaten.
+ (S. Doku des jeweiligen Hooks.)
+
+BEMERKUNGEN
+-----------
+
+ Bitte nutzt in neuem code nicht mixed, sondern unions entsprechend der
+ Dokumentation der verwendeten Hooks.
+
+ Auch reine Listener-Objekte muesse nein Array zurueckgeben, dessen erstes
+ Element H_NO_MOD sein muss.
+
+SIEHE AUCH
+----------
+
+ :doc:`HRegisterToHook`, :doc:`HUnregisterFromHook`, unions
+
+Letzte Aenderung: 06.10.2022, Bugfix