     XPFilter (c) 1994-1997 by Robin Sommer, 

     XPFilter wurde mit Versionsstand 1.41 Anfang 2000 durch Robin Sommer
     unter die GNU General Public License (GPL) gestellt.

     nderungen und Erweiterungen fr die Versionen grer 1.41 durch
     Hans-Jrgen Tnzer (hans-juergen.taenzer@t-online.de)

     Die aktuellsten Programmversionen liegen jeweils auf:
     
        http://people.freenet.de/hj.taenzer/xpfilter.html



     nderungen 1.42.8 -> 1.42.9
     ---------------------------

     o XPFilter ist jetzt auch unter FreeBSD kompilierbar und lauffhig

       Danke an  Stefan 'Steve' Tell  fr die Initiative dazu und die Unter-
       sttzung bei der Realisierung, sowie der Bereitstellung eines 
       FreeBSD-Package auf:
       
       http://www.crashmail.de/crosspoint.html

     o Fehlerkorrektur an der Linux- und FreeBSD-Version: bei BATCH-Aktionen
       werden jetzt die durch Filter-Muster freiversorgbaren Environmentvari-
       ablen $XPFx korrekt in das Environment des aufgerufenen Programms bzw. 
       der aufgerufenen Shell exportiert.


     nderungen 1.42.7 -> 1.42.8
     ---------------------------

     o MARKIEREN funktioniert jetzt auch bei den genderten Spaltenbreiten
       des Listers unter FreeXP (allerdings naturgem nur bei den Standard-
       einstellungen).
       
       Danke an Frank Winkelmann fr die Bugmeldung.
     
     o Altfehlerkorrektur: wurde in einem Muster die Aktion bzw. 
       der Schalter REIMPORT benutzt, brach XPFilter mit einem 
       segmentation fault ab.

       Danke an Andreas Kaune fr die Bugmeldung.

     nderungen 1.42.6 -> 1.42.7
     ---------------------------
     o Altfehlerkorrektur: wurde in einem Muster die Aktion bzw. 
       der Schalter REIMPORT benutzt, brach XPFilter mit einem 
       segmentation fault ab.

       Danke an Andreas Kaune fr die Bugmeldung.

     
     nderungen 1.42.5 -> 1.42.6
     ---------------------------
     o Korrektur eines ziemlich heftigen Bugs: Hufigkeits- und Bereichs-
       angaben  in Mustern funktionierten berhaupt nicht in den 32Bit-
       Versionen.
       
       Danke an Uwe Morgener fr die Bugmeldung.
     
     
     nderungen 1.42.4 -> 1.42.5
     ---------------------------

     o Das leidige Problem unter Linux, dass der Puffer nicht gefunden
       wird, ist jetzt hoffentlich endgueltig behoben (die DOS und
       Windows-Versionen hatten das Problem nicht)


     nderungen 1.42.3 -> 1.42.4
     ---------------------------
     
     o XPFilter kompiliert jetzt mit dem gcc 3.3.2 unter Linux


     nderungen 1.42.2 -> 1.42.3
     ---------------------------

     o Die Konfigurationsdatei XPFILTER.CFG wurde nicht gefunden, wenn der
       Aufruf von XPFilter nicht vollqualifiziert erfolgte, oder XPFilter
       beim Aufruf ber den PATH gefunden wurde, und die XPFILTER.CFG 
       nicht im aktuellen Verzeichnis lag. Das Problem wurde in der WIN32-
       Version behoben (die DOS-Versionen hatten dieses Problem nicht).


     nderungen 1.42.2 -> 1.42.3
     ---------------------------

     o Nur interne nderungen (Zhlstatistik im Trace des DEBUG-Builds)
     

     nderungen 1.42 -> 1.42.1
     -------------------------

     o Die Konfigurationsdatei XPFILTER.DEF wurde nicht gefunden, wenn der
       Aufruf von XPFilter nicht vollqualifiziert erfolgte, oder XPFilter
       beim Aufruf ber den PATH gefunden wurde, und die XPFILTER.DEF 
       nicht im aktuellen Verzeichnis lag. Das Problem wurde in der WIN32-
       Version behoben (die DOS-Versionen hatten dieses Problem nicht).
       
       Das Problem besteht auch weiterhin in der Linux-Version, hier sollte
       XPFilter vollqualifiziert aufgerufen werden.
       
     o Bei einer Zeile lnger als 4100 Bytes im Body einer Nachricht und 
       einem Suchmuster in der Art: a.*b, wobei das Muster nicht innerhalb
       der 4100 Bytes gefunden wurde, beendete sich XPFilter mit dem 
       Fehlertext: "Ungueltiger Regulaerer Ausdruck: a.*b" und 
       "Syntaxfehler ('*' an falscher Stelle ?)".
       
       Das Problem wurde in allen XPFilter-Versionen behoben.

     

     nderungen 1.41 -> 1.42
     -----------------------
     
     o die 16-Bit DOS-Version wurde auf den Compiler VC++ 1.51 umgestellt
       
     o auf Basis der bereits frher nach WIN32 und Linux portierten
       XPFilter-Sourcen wurde eine neue 32-bittige DOS-Version mittels 
       DJGPP (gcc 3.2) erstellt.
       
       Die DOS32-Version bentigt extended Memory (XMS). Sie ist lauffhig
       unter plain-DOS, OS/2, WIN16 und WIN32. Die Version ist deutlich 
       performanter als die DOS16-Version. Unter WIN9X und W2K werden lange 
       Dateinamen untersttzt (nicht unter Windows NT). 
       
       Einschrnkungen bei allen 32-Bit-Versionen: 
       - Parameter, die ber die Umgebungsvariable XPFOPT gesetzt sind,
         werden ignoriert (diese Parameter mssen entweder beim Aufruf 
         direkt angegeben, oder in der XPFILTER.CFG gesetzt werden)
       - der Parameter SWAP wird ignoriert (und wird auch nicht bentigt)
       - das Vorgeben einer bestimmten Wartezeit auf Anwendereingaben 
         (Aufrufparameter -e, bzw. der Eintrag ERROR in der .CFG) wird 
         ignoriert, es wird immer auf <RETURN> gewartet (betrifft nur Linux
         und WIN32) 
       - der Parameter -p bzw. der Eintrag VERBOSESCREEN zum Lschen des
         Bildschirms wird ignoriert

     o neue Kennung F-TO. Die Verarbeitung erfolgt analog zur Kennung 
       X-XP-FTO

     o die Headerzeilen: ABS, MID, EDA, X-XP-FTO, Antwort-An, U-Content-
       Disposition und LAST-BEZ sind in der Lnge nicht mehr auf 80 bzw.
       120 Stellen begrenzt. Diese Begrenzung wirkte sich aus, wenn auf 
       die jeweilige Nachricht eine Filterregel passte. 
       Alle Headerzeilen werden jetzt immer bis zu einer Lnge von knapp 
       64 KB verarbeitet, was darber hinausgeht, wird abgeschnitten. 
       Fr die 32-Bit-Versionen gibt es keinerlei Lngenbeschrnkungen mehr
       (vom Hauptspeicher abgesehen)

     o es wird nur noch das Sonderzeichen hex 00 in Headerzeilen unter-
       drckt anstatt wie bisher alle Zeichen < hex 09

     o wenn der Speicher nicht mehr ausreicht, wird jetzt in der Regel eine
       entsprechende Fehlermeldung ausgegeben, und XPFilter ordnungsgem 
       beendet. Die vorherige Version beendete sich bisweilen unkontrol-
       liert (DOS16)

     o Bugfix beim Vorkommen des Zeichens hex 0A mitten in einer Header-
       zeile. Die Version 1.41 strzte in der Regel kommentarlos ab
       
     o verschiedene Bugfixes in der Speicherverwaltung
     
     o Fix beim Einlesen von defekten Puffern. In der vorherigen Version 
       konnte es vorkommen, da XPFilter in eine Endlosschleife geriet

     o in Musterdateien fhren die Zeichen hex 1A und FF nicht mehr zum 
       Beenden des Einlesens

     o Hitcount in der laufenden Bildschirm-Ausgabe, Msg/sec and KB/sec in
       der Endbildschirmausgabe
       
     o alle 32-Bit-Versionen erzeugen auf Wunsch eine Tracedatei. Hierzu
       muss der Aufrufparameter "-_[NameTraceDatei]" angegeben werden. 
       Default fr den Namen der Tracedatei ist "XPFDEB.TXT" im aktuellem 
       Verzeichnis.
     
       
     Bedanken mchte ich mich bei
     
          Christian Bttger 
          
     fr seine Tests von XPFilter unter Linux,
          
          Joachim Merkel,
          Michael Heydekamp und
          Johann H. Addicks
       
     fr die Anregungen zu den beiden DOS-Versionen und das intensive 
     Testen unter diversen Betriebssystemen.
       
     Sicherlich noch vorhandene Fehler in XPFilter gehen aber natrlich auf
     mein Konto.


     nderungen 1.4 -> 1.41
     ---------------------

     XPFilter 1.41 stellt ein fast reines Bugfix-Update dar.

     Behoben sind folgende, im Vergleich zu XPFilter 1.3 neuen Bugs:

     o EINMAL  und  IN-ADRBUCH  liefen  nicht mit Adressen, die Leerzeichen
       enthielten (wie z.B. im Fido und im Maus-Netz blich)

     o LAST-BEZ    konvertierte    den    jeweiligen     BEZ-Inhalt     bei
       Variablenzuweisungen in Kleinbuchstaben

     Ebenfalls  entfernt  ist  folgender  Bug,  der  auch  bereits  in  1.3
     enthalten waren:

     o Falls in XPFILTER.DEF Headerkennungen definiert waren, die  XPFilter
       bereits   intern  als  "fest  verdrahtet"  kannte,  so  traten  u.U.
       Fehlermeldungen der Art "Fehlerhafter Header" auf, selbst  wenn  der
       Puffer in Ordnung war

     Desweiteren    enthlt   auch   XPFilter   1.41   noch   zwei   i.d.R.
     unproblematische Schwierigkeiten, die aber beide schon seit Ewigkeiten
     vorhanden sind. Nheres siehe beiliegende FAQ.

     Zwei (oder drei :-) kleinere Neuerungen gibt es auch:

     o EINMAL ist etwas erweitert worden. Wenn der angegebene Dateiname mit
       '~' beginnt, dreht sich die Bedeutung um: Das  entsprechende  Muster
       passt nur noch fr die Absender, deren Adressen in der Datei stehen.
       Diese Datei wird nicht automatisch erweitert, sondern muss per  Hand
       angelegt werden (Format: pro Zeile eine Adresse ohne Realname).

     o Die  Optionen -L (LOGX in XPFILTER.CFG) bzw. -V (VERBOSEMAILX) haben
       dieselbe Funktion wie -l  bzw.  -v  mit  der  Ausnahme,  dass  keine
       Berichte  erzeugt  werden,  wenn keine Nachrichten bearbeitet worden
       sind.

     Die mit  '|'  markierten  Neuerungen  in  XPFILTER.DOC  beziehen  sich
     brigends  immer  noch auf den Vergleich mit XPFilter 1.3, da sich von
     1.40 auf 1.41 da nicht viel getan hat.

     nderungen 1.3 -> 1.4
     ---------------------

     Dieser  Text  enthlt  eine  knappe  Aufzhlung  der  nderungen   und
     Neuerungen im Vergleich zu XPFilter 1.3.

     In XPFILTER.DOC sind alle wichtigen Ergnzungen mit einem '|' am Rande
     markiert, so da sie sich leicht finden lassen. Dort findet sich  eine
     wesentlich ausfhrlichere Beschreibung.

     Alle Bugfixes (im weitesten Sinne):

     o XBET=~... funktioniert wieder

     o Die  zweite  Musterdatei  darf auch leer sein, ohne weitere damit zu
       beeinflussen

     o Ein kleineres Speicherproblem in der RE-Routine wird umgangen

     o Steuerzeichen innerhalb einer Headerzeile werden mit  Ausgabe  einer
       entsprechenden Warnung entfernt

     o Die ausgegebene Nachrichtennr. ist auch korrekt, wenn noch nicht der
       gesamte Header gelesen worden ist

     o EINMAL sichert (wie bei XPF < 1.3)  wieder  nur  noch  die  Adresse,
       nicht mehr zustzlich den Realnamen. Auerdem wird, falls vorhanden,
       die Antwort-An- statt der Absender-Adresse genommen

     o Bei SENDEN=* werden innerhalb  des  Nachrichtentextes  keine  Makros
       mehr ersetzt

     Neue Dinge:

     o XPF  nutzt jetzt die neue XP-Fhigkeit, mehr als eine Diskussion-In-
       Headerzeile auswerten zu knnen. Damit ist es mglich, die  leidigen
       Adressierungsprobleme  bei  Crosspostings zu umgehen, da XPF nun als
       Default  beim  Verschieben/Kopieren  eine  Diskussion-In-Zeile   fr
       *jeden* ursprnglichen EMP erzeugt.

       Falls  einem  trotzdem  das bisherige Verhalten, Diskussion-In immer
       nur auf einen EMP setzen zu lassen, lieber ist, kann dafr weiterhin
       die  Option  -f  (bzw.  FOLLOWUP  in  XPFILTER.CFG)  benutzt werden.
       Umgekehrt sollte man nicht  vergessen,  diese  Option  rauszunehmen,
       wenn sie nun nicht mehr gebraucht wird.

     o Die  Suchkennung  LAST-BEZ  arbeitet  wie  BEZ, nur bezieht sie sich
       ausschlielich auf den letzen BEZ-Header einer Nachricht, d.h.   auf
       den direkten Bezug.

     o IN-ADRBUCH:  Eine  Pseudo-Headerzeile,  die  entweder den Inhalt "1"
       oder "0" enthlt. "1" bedeutet, der  Absender  der  Nachricht  steht
       bereits  in XPs Adrebuch, "0" dagegen zeigt an, da dies ein neuer,
       bisher nicht registrierter Absender ist.

     nderungen bei bestehenden Kennungen/Optionen:

     o LOESCHEN ist erweitert worden  um  die  Fhigkeit,  *einzelne*  EMPs
       entfernen  zu  knnen.  Die Syntax benutzt natrlich wieder Regulre
       Ausdrcke:

       LOESCHEN=^/comp/windows/

       Das entfernt alle EMPs, die die angegebene Hierarchie enthalten.

       LOSCHEN=~^/comp/os/linux

       Damit werden alle EMPs  rausgeworfen,  die  *nicht*  in  der  Linux-
       Hierarchie liegen.

       Variablen innerhalb des REs sind mglich.

     o Bei  EXPORT  werden Dateinamen innerhalb einer FILE-Headerzeile, die
       nicht den kaputt^H^H^H^H^H^Hblichen  DOS-Konventionen  entsprechen,
       besser konvertiert: Es werden die ersten acht Zeichen direkt vor dem
       Punkt sowie die ersten drei danach genommen.

       Auerdem wird, falls  zwar  kein  FILE-Header,  dafr  aber  ein  U-
       Content-Disposition vorhanden ist, daraus der Dateiname ermittelt.

       Dritte  nderung  bei EXPORT: Bei Binrnachrichten werden Kommentare
       nicht mehr mit exportiert.

     o N-DISKUSSION-IN lt sich auch bei Mails benutzen

     o Bei SERVER sind Variablen mglich

     o Die Option -i (INIT) funktioniert auch ohne -c (CHECK)  und  erzeugt
       nun auch fr via Variablen erzeugte Bretter Initmails. Vorsicht: Das
       bringt i.d.R. nichts, wenn der Puffer  *nach*  dem  Filterlauf  noch
       sortiert wird.

     Ansonsten  gibt es noch diverse kleinere optische nderungen, u.a. die
     Ausgabe der aktuellen MID bei Fehlern und die Angabe  der  Puffergre
     in den Berichten.

     nderungen 1.21 -> 1.3
     ----------------------

     Mgliche Inkompatibilitten zur Vorgngerversion:

     o Bei  REs,  die  mit  einem  String beginnen, der jetzt als Bereichs-
       und/oder Hufigkeitsangabe interpretiert wird,  drfte  es  Probleme
       geben. Nheres siehe unten.

     o Die   Cfg-Dateien  werden  jetzt  vor  allen  anderen  Optionen  der
       Kommandozeile eingelesen und ausgefhrt. Dementsprechend werden auch
       alle   PATTERN   vor   den  beim  Aufruf  bergebenen  Musterdateien
       eingelesen. Durch diese nderung  in  der  Reihenfolge  kann  es  zu
       Problemen bei ABBRUCH kommen...

     o Sollte  ein  Brettname  fr  einen der Berichte (Optionen -l/-v bzw.
       LOG/VERBOSEMAIL)  einen  Doppelpunkt  enthalten,  wird  dieses   neu
       interpretiert.  Nheres siehe unten.

     o EINMAL  bezieht  sich  ab  sofort  auf  alle  Aktionen,  nicht  mehr
       ausschlielich auf SENDEN

     Alle im weitesten Sinne Bugfixes:

     o Ctrl-C wird vernnftig abgefangen und behandelt

     o bei Fehlern werden alle *.tmp gelscht

     o bei SENDEN wird Antwort-An beachtet

     o gleichzeitiges LOESCHEN und MARKIEREN gibt einen Fehler

     o IMPORT kann beliebig groe Dateien verarbeiten

     o BODY/BODY-I beachten fhrende Leerzeichen in einer Nachrichtenzeile

     o die Kommandozeile  bei  BATCH  wird  nicht  mehr  in  Grobuchstaben
       konvertiert

     o die   Probleme   mit  diversen  merkwrdigen  Dateienden  bei  Cfg-/
       Musterdateien sollten behoben sein

     o von  XPF  erzeugte  EDAs   sind   auch   korrekt,   wenn   bei   der
       Zeitzonenanpassung  die  0.00-Uhr  Grenze berschritten wird (netter
       Effekt bei XPF <=1.21 :-)

     o STOP funktioniert auch korrekt, wenn  das  letzte  Muster  derselben
       Datei ein ABBRUCH enthlt

     o Bei  REs wie "abc[1&2]def" wird das '&' nicht mehr als Steuerzeichen
       interpretiert

     o Umleitungen bei BATCH, die in Anfhrungszeichen stehen,  werden  bei
       SWAP nicht mehr beachtet

     o diverse kleinere Probleme mit dem RE-Steuerzeichen '&' sind behoben

     o Bei  Variablenzuweisungen mit BODY-I wird das CR am Zeilenende nicht
       mehr beachtet

     An neuen Aktionen htten wir die folgenden:

     o ATTRIBUT: Setzt den ab XP 3.1 untersttzten X-XP_F  Header,  mittels
       dessen  man  Nachrichten  auf  "gelesen",  "lschen",  "halten"  und
       "farbig" hervorgehoben setzen kann. Syntax:

       ATTRIBUT=farbig
       ATTRIBUT=farbig+halten+gelesen

       Abkrzungen sind mglich:

       ATTRIBUT=f
       ATTRIBUT=farbig+h+g

     o N-HEADER: Eine etwas gefhrliche Kennung, mit  der  man  *beliebige*
       Headerzeilen einer Nachrichten setzen oder lschen kann. Syntax:

       N-HEADER=ABS:lisa@simpson.edu
       N-HEADER=STICHWORT:Simpsons

       Headerzeilen, die nur einmal vorkommen drfen, werden, falls bereits
       vorhanden, gegen den neuen Inhalt ausgetauscht. Alle anderen  werden
       als neuer Header zugefgt.

       Es  knnen  auch  die  in XPFILTER.DEF definierten Kennungen benutzt
       werden.  Sollte eine dort  angegebene  Kennung  nur  einmal  erlaubt
       sein, mu in der *.def Datei ein ":1" dahinter. Beispiel:

       U-MIME-VERSION:1

       Syntax zum Lschen eines Headers:

       N-HEADER=~ABS

       Es gibt ein paar Sonderflle:

       o Mit  N-HEADER  lassen  sich  keine EMPs beeinflussen, dafr gibt's
         BRETT in Kombination mit LOESCHEN und VERSCHIEBEN

       o N-HEADER=~KOP  bewirkt  neben  dem  Lschen,  da  XPF  fr  diese
         Nachricht beim Verschieben keine KOPs erzeugt (quasi ein NOKOP auf
         Musterbasis)

       o Gleiches gilt fr von XPF erzeugte DISKUSSION-IN, die sich mit  N-
         HEADER ebenfalls unterdrcken lassen

       Allgemein  gilt:  N-HEADER hat Prioritt ber alle anderen Aktionen,
       die denselben Header beinflussen.

       Mit  N-HEADER  hat  man  praktisch  volle   Kontrolle   ber   einen
       Nachrichtenkopf,  entsprechend  kann man ohne grere Probleme einen
       Puffer bis auf weiteres unbrauchbar machen (N-HEADER=~LEN :-). Daher
       sollte man es mit *besonderer Vorsicht* benutzen !

     o N-ANTWORT-AN:  Arbeitet  hnlich  wie  N-DISKUSSION-IN, nur setzt es
       eben ANTWORT-AN. Vorhandene ANTWORT-AN werden nicht berschrieben.

     o INAKTIV: XPF ignoriert das entsprechende Muster einfach komplett.

     o DEBUG: Ein Step-by-Step-Modus fr Prfzwecke.

       Sobald das Muster auf eine Nachricht pat, stoppt XPF und  gibt  auf
       dem  Bildschirm  eine  Zusammenfassung hnlich der im "Ausfhrlichen
       Bericht" aus. Anschliessend kann man per Taste whlen, ob das Muster
       diesmal,  diesmal  nicht,  immer  oder  nie  ausgefhrt werden soll.
       Auerdem kann XPF ohne nderung des Puffers beendet werden.

     o LOWPRIO: Beeinflut das Kopieren/Verschieben in dem Sinne,  da  die
       neuen BRETTer eine Art niedrige Prioriatet bekommen, d.h. sie werden
       im  Wesentlichen  so  behandelt,  als  ob   sie   bereits   in   der
       Originalnachricht  vorhanden gewesen wren. Die Hauptkonsequenz ist,
       da  sie   bei   "normalem",   von   anderen   Mustern   ausgelstem
       Verschieben/Lschen wieder entfernt bzw. in KOP gewandelt werden.

     Neuerungen, die bestehende Kennungen betreffen:

     o Bei  allen  nicht-numerischen Suchkennungen lassen sich Hufigkeits-
       und Bereichseinschrnkungen angeben. Damit sind  Formulierungen  der
       Art  "In  der  Nachricht  soll  fnf bis zehnmal der Text 'Simpsons'
       stehen" mglich:

       BODY-I=H5-10:Simpsons

       Oder auch "Von  den  Zeilen  24  bis  42  sollen  mind.  fnf  nicht
       "Simpsons" enthalten":

       BODY-I=Z24-42:H>4:~Simpsons

       Nheres dazu in der Doku.

     o Mit    BODY/BODY-I    lassen    sich    jetzt   eingeschrnkt   auch
       Binrnachrichten durchsuchen.

       XPF  versucht  selber  herauszufinden,  ob  eine  als   "TYP:   BIN"
       bezeichnete  Nachricht  nicht vielleicht doch eine reine Textmessage
       ist (max. 100 Zeichen pro Zeile,  max.  30  nicht-ASCII-Zeichen  pro
       Zeile)

       Weiterhin  gilt aber, da alle Body-Vernderungen (z.B. mittels TEXT
       oder GRUND) nicht bei Binrnachrichten durchgefhrt werden,  da  die
       Gefahr zu gro ist, etwas "echt" binres zu zerstren.

     o Wenn in Regulren Ausdrcken eine der Kombinationen "||", "|)", "|("
       auftritt oder wenn "|" als erstes/letztes Zeichen erscheint, gibt es
       eine Warnung, denn diese REs passen *immer*.

       Ebenso gibt es aufgrund der hufigen Probleme eine Warnung, wenn ein
       '~' irgendwo anders als  an  erster  Stelle  eines  REs  steht.  Die
       Warnung lt sich durch ein '\' davor unterdrcken.

     o Bei   SENDEN/IMPORT   sind   Wildcards   erlaubt.   Es  werden  dann
       entsprechend viele Nachrichten verschickt/importiert.

     o Bei BATCH wird jetzt ausschlielich  die  Routine  zum  Starten  der
       Programme   benutzt,   die   auch   fr   das   Auslagern  bei  SWAP
       verantwortlich  ist.   Wenn  SWAP  nicht  vorhanden  ist,  ist   das
       praktisch gleichbedeutend mit SWAP und 0KB bentigtem Speicher.

       Dadurch  knnen  einige Features der leistungsfhigeren Swap-Routine
       benutzt werden, z.B. erhlt jede gestartete BATCH zustzlich zu  den
       von  XPF  gesetzten  Env-Variablen einen *freien* Environmentbereich
       von 256 Bytes

     o Bei EXPORT: Wenn durch die "$"-Nummerierung ein Dateiname  entsteht,
       der  bereits  vorhanden  ist,  wird  die  Datei nicht berschrieben,
       sondern die nchste freie Nummer genommen.

       Das  hat  zwei  Vorteile:  Lcken  in  einer   Nummernfolge   werden
       irgendwann  wieder aufgefllt. Auerdem gibt es keine Probleme mehr,
       wenn zwei Muster dieselbe  Nummernschablone  benutzen  und  sich  so
       gegenseitig die Dateien berschreiben.

       Nachteil: Wenn alle Nummern vergeben sind, werden keine Dateien mehr
       exportiert. XPF gibt dann eine Warnung aus.

     Neuerungen, die nicht spezielle Kennungen betreffen:

     o Die Berichte ersetzen jetzt endlich die Variablen.

       Beim "Ausfhrlichen Bericht" hat sich in  der  Hinsicht  am  meisten
       gendert.  Die BATCH-Aufrufe werden so angezeigt, wie sie ausgefhrt
       worden sind (incl.  evtl.  angehngtem  EXPORT-Argument)  und  falls
       mglich  wird  auch  ein evtl. zurckgegebener Errorlevel angezeigt.
       Dies funktioniert aber  nur  fr  "echte"  Programme  (*.exe,*.com),
       nicht  fr  Dinge,  die  via  COMMAND.COM  ausgefhrt werden mssen:
       Batches, Pipes u..  Ebenfalls wegen COMMAND.COM werden zwar  einige
       beim  Start  evtl.   auftretenden Fehler ausgegeben, aber nicht alle
       (ein Hoch auf DOS !).

       Bei SENDEN, IMPORT, EXPORT werden alle Dateinamen  angezeigt,  evtl.
       mit einem "Fehler", wenn es Probleme gab.

       Bei  allen  Aktionen werden die Variablen durch ihren Inhalt ersetzt
       angezeigt, d.h. es erscheint nicht mehr "verschoben nach $1" sondern
       "verschoben nach /alt/fan/simpsons".

       Die  einzige  nderung  im  "normalen",  kurzen Bericht liegt in der
       Ersetzung der Variablen im zweiten Teil (der Bretterauflistung).

     o Eine neue Aufrufoption  "-@"  bzw.  Cfgfile-Kennung  "WORKDIR":  Das
       leidige  Problem, welches Verzeichnis beim Filtern das aktuelle sein
       soll, lt sich damit individuell lsen.

       Als Default sieht XPF weiterhin  alle  Pfade  als  relativ  zum  XP-
       Directory  an.   Wird  die  Option  ohne  Argument  angegeben,  wird
       stattdessen das beim Aufruf aktuelle Verzeichnis  genommen  (wie  es
       XPF ganz zu Anfang tat, wie es eigentlich Standard ist und wie viele
       es  gerne  htten  :-).  Als  dritte  Mglichkeit  lt   sich   das
       Arbeitsverzeichnis     direkt    als    Argument    angeben,    z.B.
       -@c:\xp\xpfilter.

     o Eine neue Umgebungsvariable: XPFOPT.  Darin  lassen  sich  beliebige
       Aufrufoptionen angeben, die XPF interpretiert als seinen sie auf der
       Kommandozeile eingetippt worden. Wenn man  also  z.B.  grundstzlich
       die    Cfg-Datei   einlesen   und   das   aktuelle   Directory   als
       Arbeitsverzeichnis haben mchte, benutzt man geschickterweise

       set XPFOPT=-n -@

       In Verbindung mit dieser Env-Variable gibt es jetzt eine  definierte
       Reihenfolge, in der die Optionen ausgewertet werden.

       Als   erstes  werden  der  Reihe  nach  die  angegenben  Cfg-Dateien
       eingelesen und ausgefhrt. Danach kommen die  Optionen  aus  XPFOPT,
       dann die von der Kommandozeile.

       Auerdem  lassen  sich  alle  Optionen  wieder auf ihre Defaultwerte
       zurcksetzen, in dem ein '!' davor gesetzt wird. Wenn  man  z.B.  in
       XPFOPT  wie  oben  die  Option  "-n"  stehen  hat,  aber  bei  einem
       speziellen Aufruf die Cfg-Datei nicht einlesen mchte, kann man  auf
       der Kommandozeile "-!n" benutzen.

     o Die mit -l/-v bzw. LOG/VERBOSEMAIL erzeugten Berichte lassen sich in
       einen eigenen Puffer schreiben, so da sie nicht an den  gefilterten
       angehngt  werden.  Dazu  kann  bei  den Optionen ein entsprechender
       Filename - durch Doppelpunkt abgetrennt -  angegeben  werden.  Dabei
       ist auch die '$'-Nummerierung von EXPORT benutzbar. Wird statt eines
       Files ein Verzeichnis angegeben, erzeugt XPF  dort  eine  Datei  mit
       eindeutigem,  auf  ".zer"  endendem  Namen.  Dadurch kann direkt das
       AUTOEXEC benutzt werden. Beispiele:

       LOG=/Berichte:c:\xpfilter\bericht.dat
       LOG=/Berichte:c:\xpfilter\bericht.$$$
       LOG=:c:\xpfilter\bericht.$$$
       LOG=:c:\xp\autoexec

       Die letzen  beiden  erzeugen  wie  gewohnt  die  Berichte  im  Brett
       "/Netzanruf".

     nderungen 1.2 -> 1.21
     ----------------------

     XPFilter  1.21 ist ein (fast) reines Bugfixupdate zu XPFilter 1.2, das
     folgende Fehler behebt:

     o SWAP funktionierte aufgrund eines Linkfehlers nicht

     o EINMAL=<File> funktionierte  nicht  mit  Adressen,  die  Leerzeichen
       enthielten

     o in den Berichten stimmte die Zeitangabe fr den Puffer nicht

     o wenn eine EXPORT-Datei nicht geffnet werden konnte, verhinderte das
       u.U. nachfolgende Exports (bereits in 1.1 enthalten...)

     o wenn mehr BATCH- als EXPORT-Aktionen vorhanden  waren,  bekamen  die
       "berschssigen"  BATCH-Aufrufe - entgegen den Angaben in der Doku -
       den jeweils letzen EXPORT-Dateinamen  mit  als  Parameter  bergeben
       (bereits in 1.1 enthalten...)

     Die  einzige  Neuerung  besteht darin, da bei von XPFilter erstellten
     Nachrichten jetzt versucht wird, die Domain des Servers  als  Absender
     zu  benutzen.  Wahlweise  lt sich ber die Option -j (bzw. DOMAIN im
     Cfg-File) eine beliebige andere Domain dafr einstellen.

     Alle  weiteren  Updatehinweise  beziehen  sich  auf  den  Wechsel  von
     XPFilter 1.1 auf XPFilter >= 1.2

     nderungen 1.1 -> 1.2
     ---------------------

     Die   Kompatibilitt   zur  1.1  sollte  bis  auf  folgende  Ausnahmen
     gewhrleistet sein:

     o ***GANZ WICHTIG***: Der Puffer wird jetzt nicht mehr mit  Hilfe  des
       ersten Dateinamens bergeben, sondern mit der Option -u, z.B.

          XPFILTER -u$PUFFER -n muster1.xpf muster2.xpf

       bzw. in einer Batch

          XPFILTER -u%1 -n muster1.xpf muster2.xpf

       Alle Dateinamen ohne Option werden als Musterdateien betrachtet. Der
       Aufruf mu also auf alle Flle gendert werden.

       Damit drfte sich das Problem der Nichtunterscheidbarkeit von Puffer
       und Mustern endgltig erledigt haben.

     o in  Cfg  und  Musterfiles knnen Zeilen umgebrochen werden, wenn sie
       mit mind. einem Leerzeichen/Tab gefolgt von einem '\'  enden.  Dabei
       werden Spaces am Beginn der fortsetzenden Zeile berlesen. Beispiel:

       SUCHEN=       abs = "xyz"    \
               || emp = "zyx"    \
               && bez = "abcdef"

       wird interpretiert als

       SUCHEN=    abs = "xyz"|| emp = "zyx"&& bez = "abcdef"

       Sollte also in einer  alten  Musterdatei  zufllig  eine  Zeile  mit
       dieser Umbruchmarkierung enden, gbe es Probleme...

       Durch  die Bedingung "mind. ein Space vor dem \" sind Pfade wie z.B.
       EXPORT=c:\tmp\ davon nicht betroffen.

     o bei REs werden jetzt auch die deutschen Umlaute bei \<  und  \>  als
       Wortbuchstaben behandelt, d.h. genau wie die "normalen" Buchstaben

     o bei  Aktionen,  die  Variablen  (neu!)  verwenden knnen, werden die
       Zeichenkombinationen $0,  $1,  ...,  $9,  \$,  \\  nicht  "wrtlich"
       interpretiert.  Nheres  bei  der  Beschreibung der Variablen in der
       Doku.

     In XPF 1.1  sind  mir  vier  Bugs  bekannt,  die  bei  dieser  Version
     natrlich behoben sind:

     o ein  Problem  bei  LEN,  das XPF in ganz seltenen Fllen zum Absturz
       brachte

     o die Umwandlung des letzten Bytes einer Textnachricht in CR

     o ein hnliches Problem bei Musterdateien: Wenn nach dem  letzten  END
       kein   CR/LF   kam,   wurde  dort  ebenfalls  der  letzte  Buchstabe
       abgeschnitten, (i.d.R. also das "D")

     o eine u.U. falsche Zhlung der Nachrichten

     Folgende kleineren nderungen  gibt  es,  die  in  XPFILTER.DOC  nicht
     explizit erwhnt sind:

     o von  XPFilter  erstellte Nachrichten besitzen jetzt eine ZC-konforme
       Adresse (formal, nicht inhaltlich... :-) Auerdem ist die EDA Angabe
       auch ohne TZ-Environment-Variable korrekt.

     o leere Musterdateien erzeugen nur noch eine Warnung

     o Im  "Ausfhrlichen  Bericht" sowie bei der GRUND-Ausgabe werden auch
       die auf Ungleichheit testenden ( != bzw. ~) Bedingungen angegeben  -
       allerdings ohne den auf darauf passenden Text.

       Die  Anzahl  der  ausgegebenen  Textteile  ist  jetzt  auf  max.  15
       begrenzt.

     o im "Ausfhrlichen Bericht" erscheint im Headerauszug zustzlich  die
       MID

     o in Berichten werden die Musternamen durch "*" hervorgehoben

     o CHECK  gibt  jetzt  fr  jede  fehlerfreie  Musterdatei  eine eigene
       Korrektheitsmeldung aus
