binkpoint - FidoNet/fsxNet Point-Software
Copyright (c) 2026 Michael Geller
Alle Rechte vorbehalten.

Aenderungen in binkpoint 0.8 (gegenueber 0.7)
=============================================

Sysop-Name und Origin (Einstellungen, F9)
- Neue rechte Spalte "Sysop - Vorgaben fuer alle Bosse": Name (sysop=) und
  Origin-Text (system=), global vor dem ersten Abschnitt gespeichert
  (vorhandene Zeile an Ort und Stelle ersetzt, sonst vor dem ersten "["
  eingefuegt). Gelten fuer alle Bosse ohne eigene Werte.
- Je Boss: Kontrollkaestchen "eigenen Namen/Origin verwenden" (ohne Theme,
  lesbar) mit Name/Origin-Text dieses Bosses. Mit Haken: sysop=/system= im
  Abschnitt [boss NAME] (leeres Feld = Vorgabe). Ohne Haken: beide Zeilen
  werden aus dem Abschnitt entfernt, es gilt die Vorgabe. Im Einzelformat
  (ohne Abschnitte) gesperrt.
- Kommentare, Leerzeilen und uebrige Zeilen bleiben bytegleich.
- Wirkt sofort nach dem Speichern (ohne Neustart) auf den Absender von
  Echomail, Netmail und AreaFix-Anfragen, die Origin-Zeile (Editor und von
  scan ergaenzt) und ZYZ/SYS beim Binkp-Login. Lastread-Benutzer: weiter
  globales sysop= vom Programmstart.
- Origin-Laenge: " * Origin: <Text> (<AKA>)" hoechstens 79 Zeichen, also
  Text hoechstens 79 - 14 - Laenge(AKA). Der Dialog zeigt die Grenze an und
  speichert zu lange Texte nicht (Meldung, nichts geschrieben) - er aendert
  keine Eingabe stillschweigend. Von Hand zu lang eingetragen: beim
  Schreiben gekuerzt (Editor auf die Grenze, scan wie bisher max. 50),
  Leerzeichen vor "(" entfernt, AKA immer vollstaendig. Nur ASCII, Name
  max. 35 Zeichen.
- Schluessel: sysop=, system= (global = Vorgabe; im [boss ...]-Abschnitt =
  nur dieser Boss). Dokumentiert in binkpoint.cfg.example und den READMEs.

Info-Fenster
- Zusaetzlich: "Autor: Michael Geller · E-Mail: michael@g00r00.com" und
  "FidoNet/fsxNet-BBS: 21:1/177 (Sysop: Michael Geller)". Kontakt auch in
  README.md/README.en.md.

Korrektur
- AreaFix-Anfrage ueber die Kommandozeile (binkpoint areafix BOSS ...):
  MSGID-CRC und UserCRC im JAM-Kopf waren 0 (CRC-Tabelle nicht aufgebaut).

Tests
- Neu: test/gui08/run_gui08_tests.sh (cfg-Rundlauf nur Vorgabe /
  Ueberschreibung je Boss / Haken weg / Einzelformat, Kommentare
  bytegleich; Origin-Laengenpruefung; Absender/Origin in neuer Echomail und
  Netmail sofort und nach Neustart; AreaFix-Absender; scan-Origin je Boss;
  Kuerzung zu langer Origin; Kontrollkaestchen ohne Theme; Info-Fenster;
  Englisch). Bilder: screens/v08/.
- winprobe.exe gibt zusaetzlich Haken/Sperre und Textfelder aus
  (Passwortfelder nie). Aeltere Tests: Versionsstrings 0.8, Koordinaten
  Speichern/Abbrechen im breiteren Einstellungsfenster, 4 Kontrollkaestchen.

Nicht getestet
- Echtes Windows (nur wine64), kein echter Poll (ZYZ/SYS je Boss nur im
  Code), Umlaute in Namen werden abgewiesen, "Neuer Boss..." mit eigenem
  Namen nicht eigens.

Aenderungen in binkpoint 0.7 (gegenueber 0.6)
=============================================

Nachrichten loeschen (GUI)
- Liste mit Mehrfachauswahl (Umschalt/Strg). Loeschen ueber Entf, Menue
  Nachricht -> Loeschen ... und Kontextmenue der Liste (rechte Maustaste,
  Umschalt+F10) -> Loeschen. Rueckfrage mit Anzahl ("3 Nachrichten
  loeschen?", Ja/Nein).
- Markiert wird wie smapi JamKillMsg (hpt/sqpack/GoldED): MSG_DELETED +
  TxtLen 0 im Kopf, .jdx-Eintrag FFFFFFFF/FFFFFFFF, ActiveMsgs - n,
  ModCounter + 1; unter der JAM-Sperre. Liste und Zaehler werden neu
  geladen, geloeschte Nachrichten verborgen und nie exportiert. Endgueltig
  entfernt beim Packen (z. B. sqpack). Netmail- und Echo-Areas.

Log-Bereich
- Standardmaessig verborgen; Ansicht -> Log anzeigen (Strg+L) ist ein
  Haken-Menuepunkt, das Layout passt sich sofort an.
- Die Liste/Leser-Teilung wird beim Groessenwechsel gerundet statt
  abgeschnitten mitgenommen (wanderte sonst beim Umschalten um 1 px).

Fenstereinstellungen (binkpoint.ini)
- Neu: binkpoint.ini im Verzeichnis der benutzten cfg (Abschnitt [window]).
  Beim Beenden gespeichert, beim Start wiederhergestellt: Lage/Groesse,
  maximiert, Trennbalken, Spaltenbreiten, Sortierung, Leser-Schriftgroesse,
  Log sichtbar. Die binkpoint.cfg wird dafuer nicht veraendert.
- Lage ausserhalb aller Monitore -> Vorgabelage; zu gross -> auf den
  Arbeitsbereich verkleinert; unsinnige Werte -> Vorgaben.

Kontrollkaestchen lesbar (Windows 11, dunkle Dialoge)
- Alle Kontrollkaestchen (AreaFix "mit Rescan, R =", Einstellungen
  "Auto-Poll", "Neue Areas automatisch anlegen", "Bad-Nachrichten
  uebernehmen") ohne Visual-Styles-Theme (SetWindowTheme), damit die helle
  Textfarbe gilt. Optionsfelder gibt es keine. Neu gelinkt: uxtheme.
- AreaFix-Hinweis: "Erstellen & pollen" wurde ohne "&" angezeigt (behoben).

Tests
- Neu: test/gui07/run_gui07_tests.sh (in run_all.sh), Abschnitt 4 in
  test/interop/run_interop_tests.sh (GUI-Loeschen gegen smapi MsgKillMsg,
  sqpack), jamtool "kill". Bestehende Tests: Version 0.7, Log-Bereich in
  den Tests, die Log-Texte lesen, per binkpoint.ini eingeblendet;
  layoutcheck kennt den verborgenen Log.
- Bilder: screens/v07/.

Sonstiges
- Version 0.7 (Banner, PID/Tearline, Via, binkp-VER, Manifest).
- Nicht auf echtem Windows 11 getestet (siehe README, Abschnitt 0.7).

Aenderungen in binkpoint 0.6 (gegenueber 0.5)
=============================================

JAM-Interoperabilitaet (getestet gegen husky smapi/hpt/hptlink/sqpack und GoldED+)
- Scanner: In Echo-Areas wird eine eigene, noch nicht versandte Nachricht
  (LOCAL, nicht SENT) jetzt auch dann exportiert, wenn im JAM-Kopf das
  Netmail-Typ-Bit statt des Echo-Bits steht. Grund: hptlink und sqpack
  (smapi) schreiben Echomail-Koepfe beim Verlinken/Packen mit TYPENET zurueck;
  eine eigene Antwort wurde danach stillschweigend nie exportiert.
  Netmail-Areas unveraendert (Nachrichten mit Echo-Bit werden dort nicht
  exportiert).
- Neue Tests test/interop/run_interop_tests.sh (nicht in run_all.sh, braucht
  husky): binkpoint -> smapi (Kopf, Kludges, Text, CRCs, hptlink-Verlinkung),
  hpt -> binkpoint (areas, Tossen in hpt-Basen, Export von smapi-Nachrichten,
  sqpack, BaseMsgNum), Sperre binkpoint <-> smapi inkl. gleichzeitigem
  Schreiben. GoldED+- und GUI-Gegenproben: screens/interop2/.

JAM-Hinweis
- README.md / README.en.md und das Fenster "Ueber binkpoint" (beide Sprachen)
  enthalten jetzt den von JAM-001 verlangten Hinweis:
  "JAM(mbp) - Copyright 1993 Joaquim Homrighausen, Andrew Milner,
  Mats Birch, Mats Wallin. ALL RIGHTS RESERVED."

Sonstiges
- Version 0.6 (Banner, PID/Tearline, Via, binkp-VER, Manifest); Tests auf
  0.6 angepasst.

Aenderungen in binkpoint 0.5 (gegenueber 0.4)
=============================================

Echo-Areas per AreaFix (Fenster Mail -> Areas / AreaFix, Strg+E, Knopf "Areas")
- Je Boss eine Liste der Areas: Tag, Beschreibung, Status beim Boss
  (verbunden / nicht verbunden / unbekannt) und ob die Area lokal
  eingetragen ist.  Quelle: die AreaFix-Antworten in der Netmail-Area des
  Bosses, zwischengespeichert in areas_<boss>.lst neben der cfg.
- Knoepfe fuer %LIST, %LINKED (bzw. areafix_query), %HELP, %RESCAN [R=n],
  Abonnieren (+TAG, optional ,R=n) und Abbestellen (-TAG); die Anfrage steht
  in einem frei bearbeitbaren Feld (ein Befehl je Zeile).
- "Netmail erstellen": private Netmail (Local+Private) an areafix_name beim
  Boss, Betreff = areafix_password; "Erstellen & pollen" startet danach sofort
  Export + Poll + Toss fuer diesen Boss.
- Abbestellen einer lokal eingetragenen Area: Rueckfrage, ob die Zeile
  echoarea= aus der cfg entfernt werden soll; die JAM-Basis bleibt immer.
- Antworten werden nach jedem Poll/Toss automatisch neu ausgewertet.
- Der Betreff von AreaFix-Netmails (= Passwort) wird in Liste, Leser und Log
  nur als ******** angezeigt.

Neue Areas automatisch anlegen (Tosser)
- Kommt vom Boss (Paket von boss_address) Echomail einer unbekannten Area,
  wird sie angelegt statt nach Bad zu gehen: Zeile "echoarea=TAG
  <areadir>\<tag klein>" im Abschnitt des Bosses (hinter der letzten
  Einstellungszeile, Rest der Datei bytegleich), JAM-Basis anlegen, hinein
  tossen.  Die GUI baut den Baum danach ohne Neustart neu auf.
- Vorhandene Bad-Nachrichten dieses Tags werden uebernommen (movebad, ohne
  AREA-Kludge) und in Bad als geloescht markiert.
- Pakete anderer Absender legen nie Areas an.

Konfiguration (je Boss, alles optional)
- areafix_name (Standard AreaFix), areafix_password (Betreff; leer = leerer
  Betreff, kein Rueckgriff auf password=), areafix_query (Standard %LINKED),
  autocreate=yes|no (Standard yes), movebad=yes|no (Standard yes),
  areadir (Standard: Verzeichnis von netmail=).
- Einstellungsfenster: AreaFix-Name, AreaFix-Passwort (maskiert, nur neu
  setzen, wie das Sitzungspasswort), "Neue Echo-Areas: automatisch anlegen /
  Bad-Nachrichten uebernehmen".

Kommandozeile
- binkpoint.exe areafix <boss> "%LIST;+TAG;-TAG"  (Anfrage-Netmail schreiben)
- binkpoint.exe areas <boss>  (Antworten auswerten, Liste ausgeben, Cache)

Sonstiges
- Version 0.5.
- Tastenkuerzel: die Tabelle hatte eine feste Laenge (Strg+Num0 fehlte);
  jetzt wird die Anzahl berechnet.
- Tests: neue Suite test/areafix (falscher Mystic-AreaFix fakefix.py);
  der Tosser-Test meldet Fehler jetzt auch im Exit-Code.

Aenderungen in binkpoint 0.4 (gegenueber 0.3)
=============================================

Sprache Deutsch / Englisch
- Alle sichtbaren Texte gibt es auf Deutsch und Englisch: Menues,
  Werkzeugleiste, Spalten, Baum, Leserkopf, Statuszeile, Poll-Zeile,
  Log-Bereich, Einstellungen, Neuer Boss, Rueckfragen, Fehlermeldungen,
  Info-Fenster, Schreibfenster, Kludge-Ansicht, Hilfe/Aufruf und die
  Log-Zeilen von poll/toss/scan/all.
- Zentrale Texttabellen src/lang_de.inc und src/lang_en.inc (Text-IDs,
  UTF-16 fuer die GUI); Auswahl beim Start in src/lang.asm.
- Neuer cfg-Schluessel language=de|en|auto im globalen Teil (Standard auto:
  Windows-Anzeigesprache Deutsch -> Deutsch, sonst Englisch).
- Kommandozeile: -lang de|en (hat Vorrang vor der cfg).
- Einstellungsfenster: Auswahl "Sprache / Language" (Automatisch, Deutsch,
  English).  Gespeichert wird nur die Zeile language=, der Rest der cfg
  bleibt unveraendert.  Wirksam nach einem Neustart (Hinweis im Fenster).
- Poll/Toss/Export aus der GUI laufen in derselben Sprache wie die GUI.
- Nicht uebersetzt: Kludges, Tearline, PID, Origin, Nachrichtentexte.

Anwendungssymbol
- Neues Anwendungssymbol (res/binkpoint.ico, 8 Groessen 16-256 px, 256 als
  PNG): als Ressource in binkpoint.exe (RT_GROUP_ICON 1 + RT_ICON), damit der
  Explorer es anzeigt; Hauptfenster, Einstellungen, Schreibfenster und
  Meldungsfenster zeigen es in der Titelleiste, das Info-Fenster zusaetzlich
  im Text.

Sonstiges
- Version 0.4 (src/version.inc).
- Englische Dokumentation: README.en.md, CHANGES.txt.

Aenderungen in binkpoint 0.3 (gegenueber 0.2)
=============================================

Nachrichtenliste
- Nur noch die gewaehlte Zeile wird blau markiert (vorher alle Zeilen blau).
- Sortierung: Standard ist die JAM-Nachrichtennummer (Nr) aufsteigend; Klick
  auf einen Spaltenkopf sortiert nach dieser Spalte, erneuter Klick kehrt die
  Richtung um.  Neu: ein Pfeil im Spaltenkopf zeigt Spalte und Richtung an
  (vorher war eine per Klick gewaehlte Sortierung, z. B. nach Datum, nicht
  erkennbar und blieb fuer alle Areas bestehen).

Fenster und Layout
- Baum, Liste, Leser und Log passen sich beim Vergroessern, Maximieren und
  Wiederherstellen an; die Spalte Betreff fuellt die Listenbreite.
- Startgroesse wird auf den Arbeitsbereich des Bildschirms begrenzt; Start
  maximiert (Verknuepfung "Maximiert") wird beachtet.

Einstellungen (Mail -> Einstellungen)
- Boss/Server je Abschnitt: eigene AKA, Boss-Adresse, Host, Port, Passwort
  (verdeckt), CRAM-MD5, Auto-Poll, Inbound/Outbound/Netmail-Pfade, Netzname.
- Neuen Boss anlegen, Boss loeschen (mit Rueckfrage; der letzte bleibt).
- Pruefung von FTN-Adressen und Port (1-65535); die Konfigurationsdatei wird
  nur in den geaenderten Zeilen umgeschrieben.

Leser
- Schriftgroesse passt sich der Fensterbreite an (80 Spalten fuellen den
  Leser, ganzzahlige Pixel, 16 bis 48 px).
- Strg+Mausrad, Strg+Plus/Strg+Minus stellen die Groesse von Hand ein
  (10 bis 72 px), Strg+0 kehrt zur automatischen Anpassung zurueck.
- Wortumbruch: lange Textzeilen werden am letzten Leerzeichen vor Spalte 80
  umbrochen statt mitten im Wort ("brewe" / "d"); ohne Leerzeichen harter
  Umbruch; Folgezeilen von Zitaten erhalten wieder das Praefix ("R> ").
  Zeilen mit ANSI-Steuerfolgen oder CP437-Rahmen/Blockzeichen bleiben wie
  bisher (harter Umbruch nach Spalte 80), damit ANSI-Grafiken intakt bleiben.

Sonstiges
- Version 0.3 an einer Stelle (src/version.inc): Banner, Info-Fenster,
  Logzeile "bereit", PID/Tearline/Via-Kludges, binkp-VER, Manifest.
