
nderungen:
===========
(Hinweis: Die Namenskrzel sind unten erlutert!)

ToDo:
- Erzeugung der Serververzeichnisse optionalisieren.
- mail.historywithUSER einfhren(?)

ToDo Later:
- NNTP: 'HDR' & 'OVER' nach {RFC3977}
- Fehlermeldungen unterdrcken wenn
   - Verbindung zum Server fehlschlgt (optional?)
   - SSL-Verbindung beendet wird
- IMAP-Suche: charset des MIME-Bodyparts bercksichtigen.

Vor dem Einspielen dieser Hamster-Version ber eine ltere (<2.1.0.11)
Version zuerst auf die letzte Stable 2.1.0.11 updaten und deren
fehlerfreie Lauffhigkeit sicherstellen.

V2.1.0.1515 (nightly snapshot {AP2})

- [GUI] Bugfix: "Newsgruppen - Zurcksetzen" lschte die Artikel aus der
   History aber nicht aus dem Datenfile, wenn die Haltedauer
   auf 0 (ewig) gesetzt war {AP2}
- [Aktionen] Bugfix: "Warten auf Programmende" funktionierte nicht bei
   Konsolen-Programmen (wie z.Bsp.: Only_KN.exe) {AP2}
- [Performance] Durch eine unntige Debug-Funktion kam es zum
   Performanceeinbruch beim Speichern von Artikeln {AP2}
- [NNTP-Client]
   - New: Workaround (2 Nachladeversuche) fr Server, die Artikel nach dem
     XOVER verzgert bereitstellen. {AP2}
   - Bugfix: Artikel mit nur einer Body-Zeile wurden nicht gespeichert. {AP2}
   - Bugfix: Fr ber die GetMids.txt nachgeladene Artikel, wurde die
     news.in.nntp Aktion nicht aufgerufen. {AP2}
   - Bugfix: Fr ber die GetMids.txt nachgeladene Artikel, wurde der
     PATH Header nicht erweitert. {AP2}
- Bugfix: [Log] Die Optionen Hamster.ini [Setup] logfilter.ThreadByKey bzw.
   logfilter.ThreadByText waren ohne Funktion {AP2}
- [NNTP - Server]
   - New: Der XOVER ist nun erweiterbar {TGL/RW}
        ({AP2} - LIST OVERVIEW.FMT response erweitert)
     Hamster.ini: [Setup]
     local.nntp.XOVERExtraFields= Header1, Header2
   - New: "AUTHINFO SIMPLE" {RFC2980 & INN-Variante} wird akzeptiert.{AP2}
   - New: "CAPABILITY" {RFC3977} wird untersttzt.{AP2}
   - Bugfix: ber eine SSL-Verbindung war die Benutzung von "nntpdefault"
     nicht mglich. {AP2}
   - Bugfix: "LIST"/"LIST ACTIVE" bercksichtigte nicht die individuellen
     post-rechte (ro/rw) des Users. {AP2}
   - Bugfix: "LIST"/"LIST ACTIVE" lieferte ohne Anmeldung trotz gesetztem
     local.List.require.auth=0 eine leere Gruppenliste. {AP2}
   - Bugfix: Bei gesetztem 'local.news.xpatDecodeHeaderBeforeSearch=1'
     lieferte der Hamster den dekodierten Header aus. {AP2}
- New: [SMTP/NNTP-Client] Versendet der Hamster Daten Zeilenweise, werden
   diese jetzt Blockweise bertragen. Die Anzahl der gesammelten Zeilen kann
    in der Hamster.ini eingestellt werden (default=10 Zeilen / aus=0) {AP2}
    [Setup]
    nntp.client.collect.sendlines=10
    smtp.client.collect.sendlines=10
- New: [SMTP/NNTP-Client] Wartezeit in msec (default=100) bei
   gescheitertem Sendeversuch. {AP2}
    Hamster.ini:  [Setup]
    extern.timewait.sendfails=100
- New: [NNTP/SMTP/POP3/IMAP-Server] Versendet der Hamster Daten, werden diese
   jetzt Blockweise bertragen. Die Anzahl der gecacheten Zeilen kann in der
   Hamster.ini eingestellt werden (default=10 Zeilen / aus=0) {AP2}
    [Setup]
    nntp.server.collect.sendlines=10
    (dito smtp. / pop3. / imap.)
- Change: [RegEx-Engine]
   - Upgrade auf die Version 7.9 (siehe PCRE_LICENCE.txt /
     <http://www.pcre.org/>)
- New/Change: (Filter) Nebenfelder ('@') konnten bislang bei E-Mail
   garnicht, bzw. bei News nur dann dekodiert werden, wenn das Hauptfeld
   dekodiert wurde. Jetzt kann und muss diese Option durch die optionale
   Tilde ('~') vor dem Nebenfeld festgelegt werden. {AP2}
    Syntax-bersicht MailFilter:
     MNebenfeld        =  [ "+" / "-" ] "@" [ "~" ] MEinzelfeld ":" Muster
    Syntax-bersicht NewsFilter:
     ScoreMuster     = ["+"/"-"] [ "@" [ "~" ] ScoreFeld ":" ] Suchmuster
- New: (MailFilter) neue Filterfunktionen: {AP2}
  - appendheader(<headername>:<Text>) hngt <Text> an den Header an.
- New: (MailFilter) bei Filterfunktionen mit Parameter kann dieser ber einen
   "benannten Subpattern" eines Regulren Ausdrucks gesetzt werden. {AP2}
   Bsp.: add(IMAPkonto/<localpart>) to:{<(?P<localpart>\S+)@example.com>}
    Speichert beispielsweise eine E-Mail an <mustermann@example.com> 
    (TO-Header) im Ordner "mustermann" vom IMAP-Konto "IMAPkonto".
    Achtung: Es findet keine Plausibilittsprfung des Ergebnisses statt!
- [HS2]
   - neue Scriptfunktionen {AP2}:
    <string> HamMainWindowGetLog( nTab [, logID] )
      Liefert den (gefilterten) Inhalt der Hamster Log-Fenster.
       nTab = 0: Thread-Tab   / nTab = 1: Job-Tab / nTab = 2: Protokoll-Tab
       nTab = 3: Warn/Err-Tab / nTab = 4: Protokoll-Tab Einzel-Thread
      Bei nTab 2-4 kann mit logID auf einzelne IDs gefiltert werden.
       LOGID_ERROR = 0x8000; / LOGID_WARN  = 0x4000; / LOGID_SYSTEM= 0x0800;
       LOGID_USER3 = 0x0400; / LOGID_USER2 = 0x0200; / LOGID_USER1 = 0x0100;
       LOGID_INFO  = 0x0080; / LOGID_DETAIL= 0x0040; / LOGID_DEBUG = 0x0008;
       LOGID_STATUS = 0x0004;
      Die Zahlen knnen addiert werden. Fehlt die Angabe, werden alle
      IDs geliefert.
    <utf8string> DecodeToUTF8(Text, Zeichensatz)
      Die Funktion gibt den vom bergebenen Zeichensatz nach UTF-8
      konvertierten Text zurck.
    <utf8string> DecodeMimeHeaderToUTF8(Text [, Zeichensatz])
      Liefert die dekodierte Version einer gem MIME base64 oder Quoted
      Printable kodierten Zeichenkette zurck. Die Variable <charset>
      liefert, falls vorhanden, den Zeichensatz zurck mit dem der String
      kodiert war.
      Der Rckgabewert ist UTF-8 kodiert.
      Der Zeichensatz, in dem der ursprngliche Text kodiert war, wird in
      der Variablen des optionalen zweiten Parameters, gespeichert.
    <ucs-2string>UTF7toUCS2(utf7string) / <ucs-4string>UTF8toUCS4(utf8string)
      Dekodiert einen UTF-7 / UTF-8 String in einen 2-Byte bzw.
      4-Byte WideString.
    <string> charsetconvert( Text,  ZeichensatzFrom,  ZeichensatzTo)
      ndert die Kodierung des Textes von ZeichensatzFrom nach
      ZeichensatzTo. Default-Wert ist jeweils der Standardzeichensatz.
   - Change: UTF-7 (De-)Kodierung:
      UTF-7 Sonderflle gem RFC2152 werden nun bercksichtigt. {AP2}
   - Change: DecodeToLocalCharset(Text, Zeichensatz)
      Die Funktion kann jetzt auch UCS-2/UCS-4 Strings umwandeln. {AP2}
   - Change: encodeBase64( <string>, <forHeader> ) {AP2}
      Wird der optionalen Parameter <forHeader> (default = 0) auf "1"
      gesetzt, kodiert die Funktion einige zustzliche Zeichen (' '->'_').
   - HamFetchMail, HamSendMail und HamSendMailAuth
      - Change: Der default-Wert fr die Parameter <SSLMode>, <SSLVerify> und
      <SSLCaFile> wird aus der Server.ini (wenn vorhanden) ausgelesen. {AP2}
      - New: ber den Parameter <SSLMode> lt sich der SSL-Type festlegen.
      dafr erhht sich der bisherige <SSLMode> um einen der folgenden Werte:
        0 (= default)   : Auto-Mode (wie bisher!)
        0x100 (= 1*256) : erzwinge SSL-Type Version SSL3
        0x200 (= 2*256) : erzwinge SSL-Type Version TLS1.0
   - Bugfix: DLLCall() {AP2}
      - Der Aufruf von Funktionen mit mereren Parametern und ohne Rckgabe-
        wert ('void') war nicht mglich.
      - Der Fehlerstatus fr die Funktion DLLLastError() wurde nicht
        korrekt gesetzt.
      - Die Angabe der falschen Parameteranzahl konnte zu Fehlern
        im Programmablauf fhren.
   - Bugfix: getEnvironment() generierte eine Exception, wenn die
      angeforderte Umgebungsvariable nicht existierte. {AP2}
   - HamScoreTest() {AP2}
      - Bugfix: Der Rckgabeparameter <matchlog> lieferte fr <scope>=0 ein
         unvollstndiges Ergebnis.
- [HS2/OLE]
   - Bugfix: HamChangePassword()/ControlChangePassword() war bei einem neuen
      User ohne Funktion {AP2}
   - Change: HamScoreTest( <scope> = 0 ) {AP2} / NewsScoreTest() {HR}
      Das Ergebnis entspricht nun dem realen Filterergebnis.
      Das heit, der After-Load-Score wird nur bercksichtigt, wenn der
      Overview-Score-Wert grer/gleich 0 ist.
   - Bugfix: HamScoreTest() / NewsScoreTest() {AP2}
      Der Rckgabeparameter <matchlog> lieferte ggf. eine zustzliche
      Leerzeile
- Change: (internal)
   - Die Meldungen ber das Cachen der Zeichenbersetzungstabellen werden
      von Log-Level "System" nach "Debug" Verlegt. {HR/WJ}
   - Die Meldung ber eine fehlende bersetzungstabellen-Datei wird von
      Log-Level "System" nach "Warnung" Verlegt.
      ber den die Option [Setup] Ignore.Missing.Translationtables kann
      die Warnung fr bestimmte Zeichenstze unterdrckt werden. {HR/AP2}
      default: Ignore.Missing.Translationtables=ASCII,US-ASCII
      GUI: Grundeinstellungen; Verschiedenes;
           "Bei fehlenden Tabellen nicht warnen fr:"
- Change: Hauptfenster: {AP2}
   - Die Option der Hamster.ini: [main] ColoredTabs hat eine zustzliche
     Einstellung ('2' = 'Farblos (einfache Darstellung)') bekommen.
     (GUI: Grundeinstellungen; Optik; Darstellung der Tabheader)
     (Diese Einstellung behebt Fehler in der Darstellung der Tabheader des
     Hauptfensters unter Windows Vista/Windows 7)
   - HS2-Shell: Breite des Labels an die Textgre angepasst. {AP2}
   - Korrektur des Anzeigefehlers (Zeilenhhe bei genderter Schriftgre)
     der Log-Listen im Hauptfenster. {AP2}
   - (Intern): Threadsicherheit beim Zugriff auf Zhlervariablen
     hergestellt. {AP2}
- Change: [Client]
   ber die jeweilige Server.ini kann fr eine SSL-Verbindung der SSL-Type
   vorgegeben werden. Dafr wird "SSLMethod" in der jeweiligen Protokoll-
   Sektion [POP3]/[SMTP]/[NNTP] auf einen der folgenden Werte gesetzt: {AP2}
      SSLMethod=0  - (= default) Auto-Mode (wie bisher!)
      SSLMethod=1  - erzwinge SSL-Type Version SSL3
      SSLMethod=2  - erzwinge SSL-Type Version TLS1.0
   (GUI: Servereinstellungen; SSL-Einstellungen; SSL-Methode)
- Change: [Server]
   ber die Hamster.ini kann fr eine SSL-Verbindung des jeweiligen Servers
   der SSL-Type vorgegeben werden. {AP2}
    [Setup] 
    local.NNTP.Server.SSLMethod=<method>
    local.POP3.Server.SSLMethod=<method>
    local.IMAP.Server.SSLMethod=<method>
    local.SMTP.Server.SSLMethod=<method>
   <method> kann einen der folgenden Werte annehmen:
      0  - (= default) Auto-Mode (wie bisher!)
      1  - erzwinge SSL-Type Version SSL3
      2  - erzwinge SSL-Type Version TLS1.0
   (GUI: Lokale Server; <Protokoll>; SSL-Einstellungen; SSL-Methode)
- Change: [Server]
   Begrenzung der Datenmenge (in Bytes), die in einem Rutsch gesendet werden
   darf. Der Default-Wert wurde auf 0 (=keine Begrenzung) gendert. {AP2}
    Hamster.ini [Setup] local.limit.bytessend=1024
- Change: [IMAP - Filter]
   - Zielordner einer Filterregel werden falls ntig automatisch angelegt.
     Mit der Pref: Hamster.ini [Setup]  IMAP.ForceFolders=0
     kann das alte Verhalten wieder hergestellt werden. {AP2}
   - Ein IMAP-Konto kann jetzt ber mehrere 'ADD'-Filter mehrere Kopien
     einer E-Mail erhalten, vorausgesetzt als Ziele sind verschiedene
     Folder angegeben. {AP2}
   - Der 'DEL'-Filter lscht nur das Ziel mit dem angegebenen Folder.
     Der pseudo-Folder '/*' lscht alle Ziele des Kontos. {AP2}
- Bugfix: [POP3-Client]
   - Bei Verwendung des Mailfilters: 'Log()' blieb das deaktivieren von
     "Bereits geladene E-Mails kein zweites Mal laden" 'mail.filterbyuidl'
     ohne Wirkung. {AP2}
   - Bei mehrere Konten auf einem Server wurden alle E-Mail gleich
     behandelt. Duplikate (UIDL) in verschiedenen Konten konnten nicht
     heruntergeladen werden, da sie bereits in der History
     eingetragen waren. {AP2}
     Neu: Nach setzen von: [Setup] mail.historywithalias=1
          arbeitet die History 'Alias'-spezifisch. Dazu muss der
          Server-Adresse ein eigener Alias angehngt werden z.B.:
          "pop3.server.example" -> "pop3.server.example/1"
          Die History von Servern ohne Alias bleibt erhalten.
     Achtung: Auf dem Server belassene E-Mails werden nach dem Umschalten
              als neu erkannt und deshalb erneut geladen.
- Bugfix: [ServerBase;GUI] Beim Herunterfahren eines Servers konnte
   es zu einem Deadlock kommen. Dabei fror der Hamster (GUI) ein. {AP2}
- Bugfix: Artikelvorschau: Artikel mit unerlaubten Zeichen konnten
   Anzeigefehler verursachen. {AP2}
- Diverse nderungen, um die Kompatibilitt zwischen den Delphi-Versionen
   zu gewhrleisten. {AP2}

V2.1.0.15 (enhanced {AP2})
- Change: [Log] Bei verwenden einer neuen Version wird der User-Loglevel
   automatisch einmalig aktiviert. {AP2}
- Bugfix: [RAS] Whrend des Aufbaus/der Trennung von Verbindungen durch
   den Hamster, kam es zu Script-Abbrchen. {AP2}
- Bugfix: [IMAP] Der Subscribed-Status der INBOX wurde (bei 'LSUB') nicht
   korrekt zurck geliefert. {AP2}

V2.1.0.14 (enhanced {AP2})
- Bugfix: [SMTP] Der Hamster hat die Reihenfolge der "!RCPT TO" und
   "!MAIL FROM" Header falsch gesetzt.
- Change: TestCase: [Log] ('WMPowerbroadcast')
   'PBT_APMPOWERSTATUSCHANGE' wurde vom loggen ausgenommen.

V2.1.0.13 (enhanced {AP2})
- New: Optional kann die Erzeugung von Cancel-Lock/-Key aktiviert werden.
   "Locale Server"->"NNTP"->"Header anpassen" (MID ist erforderlich) {AP2}
   http://tools.ietf.org/html/draft-ietf-usefor-cancel-lock-01/
- New: 3 neue (User-)Loglevel (ID: 8,9 & 10). Die Ausgabe der Script-Fkt.
   'Print' wurde auf Level 8 gelegt. Die anderen sind ber
   'AddLog(<text>,<ID>)' erreichbar. Per Hamster.ini/[Main]/
   color.user1.text ... color.user3.brush ist nun individuelles einfrben
   der Script-Ausgabe mglich. {AP2}
- New: (MailFilter) neue Filterfunktionen: {AP2}
  - addheader(<headername>: <Text>) erzeugt einen zustzlichen Header
  - clearheader(<headername>: )     lscht *alle* <headername> Header
  - setheader(<headername>: <Text>) = clearheader + addheader
- [HS2] neue Scriptfunktionen:
  - Change: digest( <typ> , <string> , <form> )
     <form> 3 = String mit Base64 kodiertem Inhalt.
  - New: encodeBase64( <string> )
  - New: encodeQP( <string> )
  - New: cancel_key( Secret, MessageID )
  - New: cancel_lock( Secret, MessageID )
  - New: cancel_verify( cancelKey, cancelLock )
- Change: (internal) Zwecks Performance-Steigerung wurde die Artikel-
   verarbeitung vereinheitlicht. {AP2}
- Change: [IMAP](internal) Zwecks Performance-Steigerung werden Artikel
   nur noch geparsed, wenn dieses erforderlich ist. {AP2}
- Change: Artikelvorschau {AP2}
   - Die bisher automatische entfernung der 'quoted-printable'-Codierung
   wurde optionalisiert (Menu). Zustzlich wird nun auch 'base64'
   untersttzt.
   - New: "Ansicht"->"decodeHeader" fhrt die Header-Dekodierung auf den
   Markierten Text bzw. alle angezeigten Header aus.
- Change: E-Mailfilter:
   Benachrichtigungs-E-Mail 'KILL'/'IGNOR': Die Header werden nun ggf.
   zustzlich dekodiert zitiert. {AP2}
- Bugfix: Fehler in der E-Mail Adressenerkennung (->'dummy') {HR}
- Bugfix: [Scorefile] Fehlerhafte nummerische Filter erzeugten eine
   unbehandelte Exception. {HR}
- Bugfix: [NNTP] Artikel, deren Message-ID Header berzhlige Leerzeichen
   enthielt, wurden falsch in die History eingetragen. {AP2}
- Bugfix: Offen Verbindungen beim Beenden verursachten eine Exception,
   und fhrten dadurch ggf. zu nicht gespeicherten Einstellungen. {AP2}
- Zeichensatzkonvertierung / 'cnv'-Dateien {AP2}
  -Bugfix: Fehlerhafte Zeilen in den 'cnv'-Dateien wurden nicht erkannt.
  -Change: Zeichen <128 (US-ASCII) werden nicht mehr eingelesen, da sie
    in allen Zeichenstzen identisch sind. Alte 'cnv'-Dateien bleiben
    kompatibel.
- [NNTP]"XPAT" {AP2}
  - Bugfix: Ein "Character-Set" filterte immer auf ']'.
  - New: Hamster.ini [Setup] neue Schalter:
    'local.news.xpatDecodeHeaderBeforeSearch=1' dekodiert die Header vor
      dem Durchsuchen.
    'local.news.xpatUtf8DecodeSearchstringBeforeSearch=1' entfernt, falls
      vorhanden, die 'utf-8' Codierung vom XPAT Suchstring.
- Bugfix: [IMAP] Bei parallelem Zugriff des HamsterPop3Client und des
   HamsterIMAPServer auf die selbe Mailbox wurden teilweise falsche
   'RECENT'-Meldungen versandt. {AP2}
- Bugfix: [IMAP] Nach einem fehlgeschlagenen Versuch eine MailBox
   umzubenennen, blieb die Mailbox gesperrt. {AP2}
- Bugfix: [SSL lokal] Der Hamster bot ein Feature (SSL-Session-Cach) an,
   welches er aber nicht untersttzt. {AP2}
- Bugfix: [NNTP] Obwohl ein Artikel nicht gespeichert wurde, wenn
   der Datenbestand ('DATA.DAT') 2GB berschritt bzw. die Festplatte voll
   war, wurde der Artikel trotzdem in der 'History' eingetragen. {AP2}
- TestCase: [Log] Der Hamster loggt die Betriebssystem-Mitteilungen
   ('WMPowerbroadcast') fr einen Wechsel im 'Energie'-Zustand
   (Standby/Ruhezustand).



Die Krzel bedeuten:
~~~~~~~~~~~~~~~~~~~~
AH  = Andreas Heim
AP1 = Alexander Plas
AP2 = Alfred Peters
AS1 = Alessandro Sebastianutti
AS2 = Arne Schloh
GD  = Graham Drabble
GG  = Gerold Grke
GLG = Gildas Le Gouic
GW  = Gnter Wukoutz
HB  = Hendrik Brummermann
HR  = Heiko Rost
HS  = Heiko Studt
JH  = Jrgen Haible
JW  = Jrn Weber
MB  = Michal Bartoszkiewicz
MG  = Martin Germann
MR  = Mathias Rllig
MS  = Max Sanzharov
MW  = Martin Winter
NBS = "NineBerry" Schwarz
OJB = Obbe-Jan Bakker
OZ  = Olivier Zolli
PW  = Philipp Wendler
RAY = 
SS  = Stefan Seth
TGL = Thomas G. Liesner

