home *** CD-ROM | disk | FTP | other *** search
/ ST-Computer Leser 1998 October / STC_CD_10_1998.iso / SYSTEM / WATCHDOG / WATCHDOG.TXT < prev   
Text File  |  1998-09-26  |  26KB  |  507 lines

  1.                                      WatchDog
  2.                         Version 1.41 vom 08. September 1993
  3.  
  4.                                   Stefan H. Rupp
  5.  
  6.                                 copyright 1992, 1993
  7.  
  8.        Version 1.0: Johannes Göttker-Schnetmann, Version 1.1: Dirk Steins
  9.  
  10.   Was ist ein Laberfilter?
  11.     Ein Laberfilter ist ein Werkzeug, welches einem einigen Ärger und Zeit
  12.     beim MausTausch ersparen kann.
  13.  
  14.     WatchDog erledigt diese Aufgabe in Zusammenarbeit mit dem Maustausch-
  15.     Frontend CAT ab Version 1.2. Jede Nachricht des letzten Maustauschs
  16.     wird vor ihrem Einfügen in die CAT-Datenbasis von WatchDog daraufhin
  17.     untersucht, ob sie bestimmte konfigurierbare Kriterien erfüllt und
  18.     daraufhin entweder eingefügt oder aber zurückgewiesen, soda₧ man
  19.     diese gar nicht erst zu Gesicht bekommt und sich über sie ärgern
  20.     braucht.
  21.  
  22.   Installation
  23.     WatchDog wird als Accessory installiert und läd die Konfigurationsdatei
  24.     WATCHDOG.DAT nach, nach der in verschiedenen Pfaden gesucht wird (s.u.).
  25.     WatchDog kann sowohl beim Booten mitgeladen werden als auch mit dem Tool
  26.     "The Chameleon┐" von Karsten Isakovic nachgeladen werden.
  27.  
  28.     Beim Anwählen des Accessory-Eintrags in der Menüzeile erscheint eine
  29.     Dialogbox, in der der Laberfilter global ein- und ausgeschaltet werden
  30.     kann. Weiterhin kann man sich über den Button "Zeige Statistik" eine
  31.     Kurzstatistik der bisher von WatchDog untersuchten Nachrichten anzeigen
  32.     lassen. Dazu öffnet sich eine weitere kleine Dialogbox, in der man diese
  33.     Informationen angezeigt bekommt. Die Daten sind im einzelnen:
  34.  
  35.     Gesamt :
  36.           Die Gesamtanzahl der von CAT an WatchDog zur Überprüfung
  37.           vorgelegten Nachrichten,
  38.     Gefiltert :
  39.           Die Anzahl der von WatchDog als zu Filternde erkannte Nachrichten,
  40.     Gelöscht :
  41.           Die Anzahl der von WatchDog als zu Löschende erkannte Nachrichten,
  42.           im Gegensatz zu den zu Filternden sowie
  43.     Tearlines :
  44.           Die Anzahl der von WatchDog erkannten und abgeschnittenen Tearlines
  45.     (s.u.).
  46.  
  47.     Man hat au₧erdem die Möglichkeit durch anklicken des Buttons "Zurücksetzen"
  48.     die Werte auf 0 zurückzusetzen. Wird diese Dialogbox mit dem Button
  49.     "Abbruch" verlassen, so werden die alten Statistikdaten von vor einem
  50.     eventuellen Zurücksetzen weiterverwendet.
  51.  
  52.     Auch die Hauptdialogbox von WatchDog lä₧t sich mit "Abbruch" verlassen.
  53.     Das hat die Wirkung, da₧ eine eventuell geänderte Einstellung des
  54.     globalen Schalters ("WatchDog aktiv") nicht berücksichtigt wird.
  55.  
  56.     Schlie₧lich kann man seit Version 1.2 nun auch die Konfigurationsdatei
  57.     durch Klicken auf den Button "laden" neuladen, was allerdings einigen
  58.     Einschränkungen unterliegt (s.u.). Das Neuladen der Konfiguration kann
  59.     auch nicht durch die Wahl von "Abbruch" rückgängig gemacht werden.
  60.     Au₧erdem wird stets nur in den normalen Pfaden nach der WATCHDOG.DAT-
  61.     Datei gesucht.
  62.  
  63.   Die Kofigurationsdatei WATCHDOG.DAT
  64.     Die Datei WATCHDOG.DAT wird während der Installationsphase in folgenden
  65.     Verzeichnissen des Dateibaums gesucht:
  66.       1. im aktuellen Verzeichnis (beim Booten meist identisch mit 2.),
  67.       2. im Wurzelverzeichnis des Bootlaufwerks,
  68.       3. unter allen Verzeichnissen, die durch die AES-Environment-Variable
  69.          PATH= angegeben sind,
  70.       4. im durch die Environment-Variable WATCHDOG= angegebenen Verzeichnis
  71.          und schlie₧lich
  72.       5. unter dem in der im Programmcode enthaltenen Patchvariablen dat_path
  73.          (s.u.).
  74.     Sollte die Datei nicht gefunden werden, wird in der Dialogbox in der
  75.     Statuszeile eine entsprechende Fehlermeldung eingetragen. Die Datei
  76.     WATCHDOG.DAT ist eine normale ASCII-Textdatei und kann mit jedem normalen
  77.     Texteditor erstellt und verändert werden. Jede Zeile der Datei enthält
  78.     einen Befehl oder einen Kommentar (mit dem Hash-Symbol "#" eingeleitet).
  79.     Alle Befehle (die Kommentare nicht unbedingt) enden mit einem Semikolen
  80.     ";".
  81.  
  82.   Die Befehle
  83.     Es gibt 5 verschiedene Befehle:
  84.       * GRUPPE=   - zum Wählen einer Gruppe für die folgenden Befehle,
  85.       * BETREFF=  - zur Bestimmung einer Betreffzeile,
  86.       * NAME=     - zur Bestimmung eines Absendernamens,
  87.       * ALLE      - zur Bestimmung von Filterkriterien für alle Gruppen
  88.                     und schlie"slich
  89.       * TEARLINE= - zur Bestimmung eines Tearline-Patterns.
  90.  
  91.     Die Befehle haben die im folgenden EBNF-Diagramm angegebene Syntax:
  92.  
  93.       watchdog.dat ::= kommentar | befehl
  94.       kommentar    ::= # <beliebiger Text>
  95.       befehl       ::= gruppe | eintrag | alle
  96.       gruppe       ::= GRUPPE= <gruppe> ; ( ON | OFF ) ;
  97.       alle         ::= ALLE ; ( ON | OFF ) ;
  98.       eintrag      ::= betreff | name | tearline
  99.       betreff      ::= BETREFF= <betreff> ; [ FILTER ; ]
  100.       name         ::= NAME= <name> ; [ FILTER ; ]
  101.       tearline     ::= TEARLINE= <tearline> ;
  102.  
  103.     Zu beachten sind grundsätzlich folgende drei Eigenschaften:
  104.       1. Es wird prinzipiell nicht zwischen Gro"s- und Kleinschrift
  105.          unterschieden, d.h. die W"orter "HAUS", "Haus" und "haus" sind für
  106.          WatchDog identisch.
  107.       2. Alle Suchwörter (Gruppennamen, Betreffs und Absendernamen) werden als
  108.          Teilstrings behandelt; d.h. es müssen nicht die kompletten
  109.          Zeichenketten identisch sein, sondern es reicht aus, wenn das Suchwort
  110.          in der zu untersuchenden Zeichenkette enthalten ist. Insofern wird
  111.          z.B. das Suchwort FIDO in jedem Absendernamen aus dem Fidonetz
  112.          gefunden. Allerdings wird es auch in dem (hypothetischen) Namen
  113.          "Elfidos" gefunden, was zu unerwünschten Nebeneffekten führen kann.
  114.       3. Wegen der oben erwähnten Eigenschaft kann es zu Pr"afix-Konflikten
  115.          kommen. Wenn z.B. sowohl in der Gruppe MAUS als auch in der Gruppe
  116.          MAUSTAUSCH gefiltert wird, ist es ratsam, die Gruppe MAUS ganz an
  117.          den Schlu₧ zu stellen, weil MAUS ein Pr"afix von MAUSTAUSCH ist.
  118.          Ansonsten wird auch in der Gruppe MAUSTAUSCH (und in allen anderen
  119.          Gruppen, die mit MAUS beginnen) nur nach den Filterkriterien für
  120.          die Gruppe MAUS gesucht, was nicht Sinn der Sache sein kann.
  121.          [Vielen Dank an Sebastian Bieber @ HH für diesen Tip.]
  122.  
  123.   GRUPPE=
  124.     Mit jedem Gruppenbefehl wird die Gruppe bestimmt, für die die auf den
  125.     Befehl folgenden Filterkriterien gelten sollen. Nach Möglichkeit sollte
  126.     die erste Befehlszeile einer Datei WATCHDOG.DAT immer einen Gruppenbefehl
  127.     sein, weil alle Befehle, die vor einem solchen stehen, dann wirkungslos
  128.     sind, weil sie sich auf keine Gruppe beziehen.
  129.  
  130.     Der Gruppenname wird mit einem Semikolon ";" abgeschlossen, gefolgt von
  131.     der Angabe über den Filtermodus, ON oder OFF, wieder mit einem Semikolon
  132.     abgeschlossen.
  133.  
  134.     Der Filtermodus ON bedeutet, da₧ die gesamte Gruppe gefiltert werden soll
  135.     und nur die Nachrichten in die Datenbasis übernommen werden sollen, die
  136.     den nachfolgenden Filterkriterien genügen. Umgekehrt bedeutet der
  137.     Filtermodus OFF, da₧ erstmal keine Nachricht gefiltert wird und nur dann
  138.     nicht eingefügt wird, wenn ein Filterkriterium auf sie zutrifft. Die
  139.     beiden Modi sind also genau einander entgegengesetzt.
  140.  
  141.     Entsprechend dem oben erwähnten Prinzip, die Suchwörter als Teilstrings
  142.     zu interpretieren, kann ein Gruppenname auf mehrere Gruppen zutreffen. So
  143.     wirkt der Befehl GRUPPE=MAUS;OFF; auf alle Gruppen, die das Wort MAUS im
  144.     Namen haben, unter anderem also auch für MAUSTAUSCH, MAUS-DOKU oder
  145.     MAUS.INFO.
  146.  
  147.   ALLE=
  148.     Mit diesem Schlüsselwort wird ein Abschnitt von Filterwörter eingeleitet,
  149.     nach denen in jeder Gruppe gesucht werden soll. Diese Kriterien haben
  150.     jedoch geringere Priorität, soda₧ sie erst dann herangezogen werden, wenn
  151.     die anderen für die aktuelle Gruppe ggfls. definierten Filterwörter
  152.     fehlschlagen. Auch hier kann zwischen ON und OFF gewählt werden (naja,
  153.     wer es mag).
  154.  
  155.   BETREFF=
  156.     Mit dem Betreffbefehl wird ein Teilstring angegeben, der in der
  157.     Betreffzeile jeder Nachricht der Gruppe gesucht wird, die als letztes
  158.     mit einem Gruppenbefehl ausgewählt wurde. Ein Betreffbefehl gilt also
  159.     immer nur für eine Gruppe. Soll ein Betreff in mehreren Gruppen gefiltert
  160.     werden, mu₧ dies für jede Gruppe extra angegeben werden.
  161.  
  162.     Hat WatchDog in der Betreffzeile einer Nachricht die angegebene
  163.     Zeichenkette gefunden, wird - abhängig vom für die aktuelle Gruppe
  164.     eingestellen Filtermodus - die jeweilige Nachricht eingefügt bzw.
  165.     zurückgewiesen.
  166.  
  167.     Neu ab Version 1.3 ist die Möglichkeit, in Verbindung mit einer CAT
  168.     -Version > 1.21 die erweiterte Möglichkeit des WatchDog-Protokolls bzgl.
  169.     des Filterns auszunutzen. Während die 1.2x-Versionen von WatchDog
  170.     Nachrichten nur ganz ablehnen konnten (diese wurden von CAT dann nicht
  171.     in die Datenbasis übernommen), ist es ab Version 1.3 auch möglich,
  172.     die Nachrichten als "gefiltert" zu kennzeichnen, soda₧ CAT diese
  173.     zwar in die Datenbank einfügt, aber nur auf explizites Verlangen
  174.     hin anzeigt; d.h. man bekommt solche Nachrichten normalerweise nicht zu
  175.     sehen, es sei denn, man weist CAT extra an "zeige mir auch die gefilterten
  176.     Nachrichten an". Das funktioniert natürlich nur mit CAT-Versionen > 1.21.
  177.  
  178.     Will man ein Filterwort so konfigurieren, da₧ WatchDog Nachrichten,
  179.     auf die das Kriterium zutrifft, als "gefiltert" an CAT zurückgibt, so
  180.     mu₧ man hinter das Filterwort und das Semikolon noch das Schlüsselwort
  181.     "FILTER", wieder mit abschlie₧endem Semikolon setzen (Beispiel siehe
  182.     unten).
  183.  
  184.     Beachte, da"s die Angabe "ON" bzw. "OFF" hinter dem Betreff, wie in
  185.     der Version 1.1 von WatchDog beschrieben, hier nicht nötig ist, da
  186.     die Filter-Art ("Alles löschen bis auf ..." bzw. "Lösche nur ...")
  187.     bereits eindeutig durch das Schlüsselwort "ON" bzw. "OFF" hinter dem
  188.     Gruppennamen definiert ist (abgesehen natürlich von der neuen Möglichkeit,
  189.     zwischen zu filternden und zu löschenden Nachrichten zu unterscheiden).
  190.     Allerdings schadet es auch nichts. Ein "ON" oder ein "OFF" wird von
  191.     WatchDog ignoriert. Soviel zum Thema "Kompatibilität".
  192.  
  193.   NAME=
  194.     Der Namensbefehl ermöglicht es - analog zum Betreffbefehl - einen Absender
  195.     anzugeben, dessen Nachrichten in der zuletzt gewählten Gruppe gefiltert
  196.     werden sollen. Das für den Betreffbefehl geschriebene gilt hier
  197.     entsprechend. Allerdings sollte man beachten, da₧ es schon etwas
  198.     gefährlich ist, eine Person in einen Laberfilter aufzunehmen. Dadurch
  199.     nimmt man sich jede Möglichkeit, auf Nachrichten dieser Person zu
  200.     reagieren.
  201.  
  202.     Eine Anwendung wäre es allerdings, in einer vernetzten Gruppe ein
  203.     ganzes angeschlossenes Mailboxnetz auszublenden. So werden etwa durch
  204.     die Zeile
  205.  
  206.       NAME=@ FIDO;
  207.  
  208.     in der selektierten Gruppe alle Nachrichten, die aus dem FIDO-Netz
  209.     kommen, ausgeblendet. Das mag unter Umständen ganz sinnvoll sein.
  210.  
  211.     Die beim Punkt "BETREFF" erwähnten Möglichkeiten bzgl. des Filterns
  212.     und des Löschens gelten entsprechend für den "NAME"-Befehl.
  213.  
  214.       #
  215.       # Gruppe Maustausch waehlen
  216.       GRUPPE=Maustausch;OFF;
  217.       # darin alle Nachrichten mit fuer mich uninteressantem
  218.       # Betreff (also alles bzgl. PCs und Amiga) filtern
  219.       # aber nicht l"oschen
  220.       BETREFF=MT:;FILTER;
  221.       BETREFF=XP:;FILTER;
  222.       BETREFF=MIN:;FILTER;
  223.       BETREFF=MB:;FILTER;
  224.       BETREFF=MAT:;FILTER;
  225.       BETREFF=UMS:;FILTER;
  226.       BETREFF=MF:;FILTER;
  227.       # Gruppe Tauschbau waehlen
  228.       GRUPPE=Tauschbau;ON;
  229.       # alles loeschen ausser...
  230.       # ...es geht um WatchDog
  231.       BETREFF=Watchdog;
  232.       # ...oder es ist von mir
  233.       # (Beachte: ein FILTER ist hier nicht sinnvoll)
  234.       NAME=Stefan Rupp;
  235.       # Alle Gruppen Atari waehlen; ATARI ST, ATARI FIDO etc.
  236.       GRUPPE=atari;OFF;
  237.       # ich habe kein ZYXEL-Modem
  238.       BETREFF=zyxel;
  239.       # Gruppe Kunterbunt waehlen
  240.       GRUPPE=Kunterbunt;OFF;
  241.       # und die Tearline des Minni-Footers abschneiden
  242.       TEARLINE=---;
  243.       # ausserdem moechte ich nichts von ihm lesen; nirgendwo!
  244.       ALLE;OFF;
  245.       NAME=Fred Feuerstein;
  246.       # der Name ist natuerich frei erfunden :-)
  247.  
  248.   TEARLINE=
  249.     Der Tearlinebefehl ist geeignet, ein Muster anzugeben, nach dem in jeder
  250.     Message der eingestellten Gruppe gesucht wird; und zwar im eigentlichen
  251.     Nachrichtenrumpf, nicht in der Absender- oder Betreffzeile. Findet
  252.     WatchDog dieses Muster alleine auf einer Zeile stehend (d.h. direkt am
  253.     Anfang der Zeile mit sofort folgendem Zeilenumbruch), so wird ab dieser
  254.     Zeile der Rest der Nachricht gelöscht.
  255.  
  256.     Manche Frontends erzeugen solche Tearlines automatisch, um darunter
  257.     beispielsweise Witze oder den eigenen Mailboxnamen zu setzen. Diese
  258.     Information ist allerdings unwesentlich und manchmal störend, zumal
  259.     es die CAT-Datenbasis unnötigerweise aufbläht. Deshalb kann man für
  260.     jede Gruppe Tearlines angeben.
  261.  
  262.     Allerdings hat das Tearline-Filtern zwei entscheidene Nachteile:
  263.       1. kann es passieren, da₧ tatsächlich Information irrtümlicherweise
  264.          abgeschnitten wird und
  265.       2. dauert das Einfügen des OUTFILEs unverhältnismä₧ig länger, weil jetzt
  266.          nicht nur der Nachrichtenkopf mit Betreff- und Absenderzeile
  267.          untersucht werden mu₧, sonderm auch der gesamte Nachrichtenrumpf, der
  268.          in der Regel grö₧er ist als der Kopf.
  269.     Die Verwendung des Tearlinefilters sollte also reiflich überlegt sein.
  270.     Ist für eine Gruppe keine Tearline angegeben, wird der Nachrichtenrumpf
  271.     überhaupt nicht untersucht.
  272.  
  273.     Es können pro Gruppe auch mehr als eine Tearline angegeben werden.
  274.     Dann untersucht WatchDog die Tearlines in umgekehrter Reihenfolge ihres
  275.     Vorkommens in der Datei WATCHDOG.DAT. Das kann zur Folge haben, da₧ bei
  276.     einer Nachricht, die mehr als eine Tearline hat, nicht die im
  277.     Nachrichtentext erste gefunden wird, sondern eine weiter untenstehende.
  278.     Um den ohnehin schon beträchtlichen Zeitaufwand des Tearline-Filterns
  279.     nicht noch zu vergrö₧ern, wird dieses Filtern abgebrochen, sobald eine
  280.     Tearline gefunden wurde.
  281.  
  282.   Beispiel WATCHDOG.DAT
  283.     Nach der grauen Theorie soll das folgende Beispiel einer WATCHDOG.DAT Datei
  284.     eventuelle Unklarheiten beseitigen:
  285.  
  286.       # Beispiel WATCHDOG.DAT
  287.       #
  288.       # Gruppe Maustausch waehlen
  289.       GRUPPE=Maustausch;OFF;
  290.       # darin alle Nachrichten mit fuer mich uninteressantem
  291.       # Betreff (also alles bzgl. PCs und Amiga) filtern
  292.       # aber nicht löschen
  293.       BETREFF=MT:;FILTER;
  294.       BETREFF=XP:;FILTER;
  295.       BETREFF=MIN:;FILTER;
  296.       BETREFF=MB:;FILTER;
  297.       BETREFF=MAT:;FILTER;
  298.       BETREFF=UMS:;FILTER;
  299.       BETREFF=MF:;FILTER;
  300.       # Gruppe Tauschbau waehlen
  301.       GRUPPE=Tauschbau;ON;
  302.       # alles loeschen ausser...
  303.       # ...es geht um WatchDog
  304.       BETREFF=Watchdog;
  305.       # ...oder es ist von mir
  306.       # (Beachte: ein FILTER ist hier nicht sinnvoll)
  307.       NAME=Stefan Rupp;
  308.       # Alle Gruppen Atari waehlen; ATARI ST, ATARI FIDO etc.
  309.       GRUPPE=atari;OFF;
  310.       # ich habe kein ZYXEL-Modem
  311.       BETREFF=zyxel;
  312.       # Gruppe Kunterbunt waehlen
  313.       GRUPPE=Kunterbunt;OFF;
  314.       # und die Tearline des Minni-Footers abschneiden
  315.       TEARLINE=---;
  316.       # ausserdem moechte ich nichts von ihm lesen; nirgendwo!
  317.       ALLE;OFF;
  318.       NAME=Fred Feuerstein;
  319.       # der Name ist natuerich frei erfunden :-)
  320.  
  321.   Einschränkungen beim Nachladen des WATCHDOG.DAT
  322.     Wie bereits kurz erwähnt, ist es ab Version 1.2 von WatchDog möglich, die
  323.     Konfigurationsdatei WATCHDOG.DAT nachzuladen. Klickt man in der Dialogbox
  324.     von WatchDog auf den Button "laden", so versucht WatchDog die Datei
  325.     WATCHDOG.DAT von den oben erwähnten Pfaden neu zu laden. Mi₧lingt der
  326.     Ladeversuch, so bleibt die alte Einstellung aktiv. Das kann aus mehreren
  327.     Gründen passieren:
  328.  
  329.     Zum Einen kann es sein, da₧ WatchDog die Datei nicht finden kann, weil sie
  330.     z.B. gelöscht wurde. Oder sie lä₧t sich nicht öffnen, weil sie z.B. von
  331.     einem anderen Programm "gelockt" wurde. Weiterhin kann es sein, da₧ die
  332.     neue Datei WATCHDOG.DAT wesentlich grö₧er ist, als die alte. Dazu ein
  333.     wenig Hintergrundinformationen:
  334.  
  335.     Das Betriebssystem der Atari Rechner, das TOS, behandelt Accessories
  336.     und andere, aus dem AUTO-Ordner, vom Desktop oder einer anderen Shell
  337.     gestarteten Programme etwas unterschiedlich: Bis auf Accessories bekommt
  338.     jedes Programm eine eigene sogenannte "Prozess-ID". Fordert nun ein
  339.     beliebiges Programm beim Betriebssystem Speicher an, merkt sich das TOS
  340.     die aktuelle Prozess-ID, damit der von diesem Prozess angeforderte
  341.     Speicher wieder freigegeben wird, sobald der Prozess terminiert (d.h.
  342.     beendet wird). Fordert aber ein Accessory Speicher an, so wird dieser
  343.     unter der Prozess-ID des gerade aktuellen Hauptprogramms geführt, weil das
  344.     Accessory ja kein eigener Prozess ist. Das führt dazu, da₧ dieser Speicher
  345.     wieder freigegeben wird, sobald das Hauptprogramm beendet wird und dem
  346.     Accessory damit sozusagen der Speicher wieder "geklaut" wird.
  347.  
  348.     Damit ein Accessory überhaupt Speicher anfordern kann, den es sicher
  349.     behalten kann, mu₧ es das ganz zu Beginn tun; d.h. während der Atari
  350.     Desktop gerade aktueller Prozess ist, der ja nie beendet wird. Später kann 
  351.     kein Speicher mehr dauerhaft angefordert werden.
  352.  
  353.     WatchDog fordert den beötigten Speicher also auch ganz zu Beginn, während
  354.     der Initialisierungs-Phase an; er untersucht die Datei WATCHDOG.DAT und
  355.     stellt dabei fest, wieviel Speicher benötigt wird. Über diesen
  356.     "Grundbedarf" hinaus reserviert sich WatchDog aber noch etwas Speicher
  357.     mehr, damit es möglich ist, später auch grö0ere Dateien nachzuladen.
  358.  
  359.     Dieser zusätzlich angeforderte Speicher ist in der Grundausstattung von
  360.     WatchDog ausreichend für 5 Gruppen und 10 Einträge (also Namen, Betreffs
  361.     oder Tearlines), wobei die Summe der Länge aller Zeichenketten nicht
  362.     länger als 1024 Bytes sein darf. Diese Voreinstellung lä₧t sich jedoch
  363.     ändern. Dazu existieren sogenannte "Patchvariablen".
  364.  
  365.   Die Patchvariablen
  366.     Einige Grundeinstellungen von WatchDog, die im Programm fest verdrahtet
  367.     sind, lassen sich in gewissen Grenzen den Wünschen des Benutzers anpassen.
  368.     So existiert gegen Ende der ausführbaren Programmdatei eine Struktur
  369.     von sogenannten Patchvariablen. Das sind fest definierte Stellen im
  370.     Programmtext, die vom Benutzer z.B. mit einem Diskmonitor geändert
  371.     werden können, um das Standardverhalten des Programms zu beeinflussen.
  372.  
  373.     Im Quellcode von WatchDog ist die Struktur der Patchvariablen
  374.     folgenderma₧en definiert:
  375.  
  376.         typedef struct {
  377.         unsigned long magic;
  378.         char dat_path[30];
  379.         int min_group;
  380.         int min_slots;
  381.         int min_pool;
  382.         int debug_level;
  383.         } patch_t;
  384.  
  385.     Dabei ist die Magic-Number "magic" als ASCII-Zeichenkette "PADB"
  386.     (entspricht 0x50414442L hexadezimal) zu erkennen.
  387.  
  388.     Um z.B. die Minimalanzahl der Gruppen zu erhöhen, suche man im Code
  389.     des ausführbaren Programms nach dem Vorkommen der ASCII-Zeichenkette
  390.     "PADB". Genau 30 Bytes dahinter beginnt die hexadezimale Darstellung des
  391.     voreingestellten Wertes als C-Integer; d.h. in der Grundversion sollte da
  392.     0x0005 stehen. Interpretiert man sich die zwei Bytes als ASCII, so findet
  393.     man erst das Nullbyte und danach das Zeichen, welches z.B. in GEM-Fenstern
  394.     in der linken oberen Ecke im "Close-Button" zu finden ist. Soll der Wert
  395.     auf z.B. 10 erhöht werden, so mu₧ statt des ASCII-Zeichens 0x05, das mit
  396.     der Nummer 0x0A eingetragen werden (im Zeichensatz des Atari die "Glocke"),
  397.     soda₧ sich für "min_group" insgesamt ein Wert von 0x000A ergibt, was
  398.     WatchDog interpretiert als 10.
  399.  
  400.     Neben den Grundeinstellungen für minimale Gruppen- und Eintragsanzahl
  401.     sowie die minimale String-Poolgrö₧e (Summe aller vorkommenden
  402.     Zeichenkettenlängen) kann noch der Pfad angegeben werden, unter dem
  403.     WatchDog versucht, die Konfigurationsdatei zu laden. Voreingestellt ist
  404.     dort der Wert "C:\WATCHDOG.DAT". Es kann aber ein bis zu 29 Zeichen langer
  405.     Pfad dort eingetragen werden. Wichtig ist nur, da₧ dieser Dateiname mit
  406.     einem Nullbyte abgeschlossen wird.
  407.  
  408.     Schlie₧lich kann noch ein Debug-Modus eingeschaltet werden, der aber
  409.     (hoffentlich) nicht benötigt wird. Möglicherweise wird dieser Modus
  410.     in kommenden Versionen von WatchDog wegfallen. Ist er eingeschaltet (der
  411.     Wert der Patchvariablen "debug_level" mu₧ dann grö₧er als 0 sein -
  412.     abhängig vom Umfang der Debugging-Ausgaben), so legt WatchDog eine Datei
  413.     mit dem Namen "C:\WATCHDOG.LOG" an, wo nach jedem Laden der
  414.     Konfigurationsdatei WATCHDOG.DAT die jeweils aktuelle Konfiguration
  415.     abgelegt wird. Das passiert sowohl beim Initialisieren von WatchDog sofort
  416.     während der Bootphase des Rechners, als auch bei jedem Versuch,
  417.     WATCHDOG.DAT neu zu laden (mit Hilfe des Buttons "laden").
  418.  
  419.     Ist der Debug-Level auf 1 eingestellt, so werden nur diese Informationen
  420.     im Logfile gespeichert. Wird der Debug-Level erhöht (höher als 1), so
  421.     werden weitere Informationen im Logfile gespeichert. Die Art der
  422.     Information ist hier unwesentlich und sollte nur im Bedarfsfall mit dem
  423.     Autor abgesprochen werden.
  424.  
  425.     Normalerweise sollten Sie also keinen Bedarf haben, diese Patchvariable
  426.     zu ändern. Sie ist für den Fall vorgesehen, da₧ Sie einmal Probleme mit
  427.     WatchDog haben. Dann kann man durch die Ausgabe der Konfiguration in
  428.     die Datei WATCHDOG.LOG möglicherweise den Fehler einkreisen.
  429.  
  430.     Beachten Sie auch, da₧ die Datei immer im Root-Directory des
  431.     Festplattenlaufwerkes C: angelegt wird. Haben Sie keine Festplatte (und
  432.     auch keine RAM-Disk als Laufwerk C:) oder kann WatchDog die Datei aus
  433.     anderen Gründen nicht zum Schreiben öffnen, so gibt WatchDog die
  434.     Debug-Informationen einfach auf dem Bildschirm aus. Dadurch wird zwar
  435.     der Bildschirmaufbau zerstört, aber für den vorgesehenen Zweck reicht
  436.     es aus.
  437.  
  438.   copyright
  439.     WatchDog ist Freeware. Die Weitergabe ist gestattet, sofern stets das
  440.     komplette WatchDog Paket weitergegeben wird. Dazu gehören die Dateien
  441.     WATCHDOG.ACC (das Accessory selbst), WATCHDOG.TEX (diese Anleitung als
  442.     TeX-Dokument), WATCHDOG.TXT (das Gleiche als reine ASCII-Datei) sowie
  443.     eine README.TXT-Datei (Änderungen und wichtige Hinweise). Der Vertrieb
  444.     über einen PD-Versand ist nicht gestattet. WatchDog darf (und sollte)
  445.     in möglichst allen Mailboxen des Mausnetzes im Programmteil abgelegt
  446.     und zum Download angeboten werden.
  447.  
  448.     Alle Rechte am Programm verbleiben beim Autor.
  449.  
  450.     Weil ich so gerne Post bekomme, werden alle Benutzer von WatchDog hiermit
  451.     aufgefordert, mir eine E-mail oder eine Postkarte zu schicken - letzteres
  452.     wird bevorzugt. Meine Adresse (Achtung, ich bin umgezogen!) lautet:
  453.  
  454.       Stefan H. Rupp
  455.       Turpinstr. 140
  456.       D - 52066 Aachen
  457.  
  458.       Tel.: (0 24 1) 53 60 02 (voice)
  459.  
  460.       Mausnet : Stefan Rupp @ AC2
  461.       Internet: struppi@pool.informatik.rwth-aachen.de
  462.  
  463.   Disclaimer
  464.     Ich übernehme keine Haftung für irgendwelche direkten oder indirekten
  465.     Schäden, einschlie₧lich aber nicht beschränkt auf materielle oder
  466.     finanzielle, die durch die Benutzung dieses Programms oder die
  467.     Untauglichkeit dieses Programms für einen bestimmten Zweck entstehen.
  468.  
  469.   Bekannte Fehler
  470.     Der WatchDog funktioniert nicht, wenn in CAT der Autostart für das
  471.     Terminalprogramm eingestellt ist oder dieser über das Drücken der
  472.     Alternate-Taste beim Start von CAT erzwungen wird. Dies liegt daran,
  473.     da₧ CAT dann nicht lange genug wartet und nachsieht, ob WatchDog vorhanden
  474.     ist. Dies ist ein Fehler in der CAT-Version 1.21, der in der nächsten
  475.     Version behoben sein wird.
  476.  
  477.     Die erweiterte Funktionalität von WatchDog 1.3 gegenüber 1.2 (die
  478.     Unterscheidung zwischen Filtern und Löschen) ist mit CAT 1.21 nicht
  479.     nutzbar.
  480.  
  481.   History
  482.     WatchDog ist bis zur Version 1.1 von Johannes Göttker-Schnetmann bzw.
  483.     Dirk Steins geschrieben und in Modula 2 implementiert. Die Version 1.2
  484.     sowie alle weiteren sind von mir dann von Grund auf neu in Pure C
  485.     entwickelt worden.
  486.  
  487.       25.06.91: Version 1.0 mit WATCHDOG.DAT statt festverdrahteter
  488.                 Filterung (copyright Johannes Göttker-Schnetmann).
  489.       09.08.91: Version 1.1 mit kleiner Dialogbox zum An-/Abschalten
  490.                 und Ministatistik (copyright Dirk Steins).
  491.       09.07.92: Version 1.2h mit nachladbarem WATCHDOG.DAT und Tearline-
  492.                 Filtern. Neu in C geschrieben.
  493.       17.11.92: Version 1.2i mit einigen Bug-Fixes, sowie der Möglichkeit,
  494.                 in allen Gruppen nach Kriterien filtern zu lassen.
  495.       11.02.93: Version 1.3 mit Unterstützung der WatchDog-Protokollstufe 2,
  496.                 zweiter Dialogbox für Statistikdaten und weiteren behobenen
  497.                 Fehlern, vor allem beim Nachladen von WATCHDOG.DAT.
  498.       13.02.93: Version 1.31 mit behobenem Redraw-Fehler beim Schlie₧en
  499.                 der Statistik-Dialogbox.
  500.       18.02.93: Version 1.32 mit verbesserten Debug-Informationen und
  501.                 behobenem Fehler bei Behandlung von ALLE= Einträgen.
  502.       26.03.93: Version 1.33 versteht Whitespaces an einigen Stellen im
  503.                 WATCHDOG.DAT.
  504.       14.08.93: Version 1.4 funktioniert jetzt auch unter MultiTOS und Mag!X.
  505.       08.09.93: Version 1.41 mit funktionierendem XACC-Protokoll unter
  506.                 singletasking Betriebssystem.
  507.