Ruediger Lahl <
ruedig...@gmx.de>:
>Der Editor ist in TB extrem verbugt.
>
[…]
>Dazu löscht er auch gerne mal beim Senden Leerzeilen weg.
>
>Hier einigermaßen sicher zu reproduzieren ist, wenn man den Inhalt
>einer Zeile im Quote löscht, sie also einfach als Leerzeile nimmt
>und in der nächsten Zeile weiter schreibt. Beim Senden wird dann
>die Leerzeile gelöscht, aus der man den Text entfernt hatte.
Schuss ins Blaue: Tritt das vielleicht
nur dann auf, wenn man Nachrichten im Fließtextformat
(«Content-Type: text/plain; "format=flowed"») verschickt? Dann
hätte ich einen Verdacht:
Texte im Fließtextformat haben folgende Struktur:
Alle Zeilen innerhalb eines Absatzes müssen dieselbe Quoting‐Tiefe
haben. Ist das nicht der Fall, hat der Verfasser des Textes einen
Fehler gemacht. (Newsreader sollten in diesem Fall aber möglichst
sinnvoll handeln.)
Alle Zeilen innerhalb eines Absatzes außer der letzten des Absatzes
erhalten ein Leerzeichen am Zeilenende. Dadurch erkennt der
Newsreader, dass der Absatz in der nächsten Zeile weiter geht (ich
rücke den Absatz hier nur zur Kenntlichmachung ein):
>Hier ist ein Fließtextabsatz, bestehend aus 3 Zeilen. Die erste
>Zeile erhält ein Leerzeichen am Zeilenende, ebenso die zweite.
>Nur die dritte Zeile des Absatzes hat keines am Ende.
>
>Und hier beginnt der nächste Absatz, der auch wieder…
Der empfangende Newsreader, der den Fließtext als Fließtext anzeigen
will, kann folgendermaßen vorgehen:
Bei jeder gequoteten Zeile entfernt er zunächst die Größerzeichen am
Zeilenanfang, merkt sich aber bei jeder Zeile, wie viele es waren.
Dann geht er vor, wie folgt:
Er liest die erste Zeile des Absatzes. Er erkennt das Leerzeichen
am Ende. Deshalb entfernt er den Zeilenvorschub, der nach dem
Leerzeichen folgt. Er fügt die zweite Zeile (weil der
Zeilenvorschub fehlt) hinten an die erste an. Er erkennt auch am
Ende der zweiten Zeile das Leerzeichen. Deshalb entfernt er den
Zeilenvorschub und fügt die dritte Zeile hinten dran. Die dritte
Zeile hat kein Leerzeichen am Zeilenende. Das ist im
Fließformattext das Zeichen, dass der Absatz mit dieser Zeile
endet. Deshalb entfernt der anzeigende Newsreader auch den
Zeilenvorschub nicht.
Jetzt hat der Newsreader eine sehr lange Zeile (mit Zeilenvorschub
am Ende) vorliegen. Zur Anzeige bricht er sie so neu um, dass die
angezeigten Zeilen nicht zu lang werden, etwa, dass sie höchstens
genau so lang sind, dass sie in der Breite ins Anzeigefenster
passen, oder, dass sie eine vom Anwender festgelegte Länge nicht
überschreiten.
Im einzelnen tut er dabei folgendes: Er zieht von der in der
Anzeige verfügbaren Zeilenbreite so viel Platz ab, wie er zur
Darstellung der Quote‐Ebenen (dargestellt durch Größerzeichen,
senkrechte Balken, …) braucht.
Er sucht die Zeile von links beginnend, nach Wörtern ab und bestimmt
das erste Wort, das nicht mehr vollständig in die gewünschte
Zeilenlänge passt. Das Leerzeichen unmittelbar vor diesem Wort
ersetzt er durch einen Zeilenvorschub, stellt an den Anfang der
Zeile die Darstellung der Quote‐Ebenen und bringt dahinter die Zeile
von links beginnend bis einschließlich des Zeilenvorschubs zur
Anzeige. Dann fährt er mit dem Rest der Zeile ebenso fort und gibt
sie folglich in der nächsten Zeile der Anzeige aus. Das wiederholt
er, bis das letzte Stück der ehemals langen Zeile so kurz ist, dass
er es nicht mehr teilen muss. Das gibt er dann auch noch mit seinem
Zeilenvorschub am Ende in die Anzeige.
Dann liest er die leere Zeile, den Absatz von seinem Nachfolger
trennende, Zeile und verfährt wieder entsprechend: Sie hat kein
Leerzeichen am Zeilenende, ist also gleichzeitig das Ende eines
Absatzes und ist sicherlich auch kurz genug. Er gibt sie aus. Dann
geht er zur nächsten Zeile, die einen neuen Absatz beginnt, weiter:
Das angezeigte Ergebnis könnte beispielsweise mit sehr kurzen Zeilen
(Smartphone, …) so aussehen:
>Hier ist ein Fließtextabsatz, bestehend
>aus 3 Zeilen. Die erste Zeile erhält
>ein Leerzeichen am Zeilenende, ebenso
>die zweite. Nur die dritte, letzte,
>Zeile des Absatzes hat keines am Ende.
>Und hier beginnt der nächste Absatz, der
>auch wieder…
Jetzt folgt der Fall, bei dem im Absatz die mittlere Zeile geleert
ist:
Wenn man im oben gezeigten Absatz die mittlere Zeile leert und in
der nächsten weiterschreibt (wie oben in der Anleitung beschrieben),
sieht der Text so aus:
>Hier ist ein Fließtextabsatz, bestehend aus 3 Zeilen. Die erste
Und hier wird weitergeschrieben.
>Nur die dritte Zeile des Absatzes hat keines am Ende.
>
>Und hier beginnt der nächste Absatz, der auch wieder…
Wieder geht der Newsreader des Empfängers so vor, wie oben
beschrieben:
Er liest die erste Zeile, entfernt den Zeilenvorschub und hängt die
zweite, leere, Zeile, die also nur aus einem Zeilenvorschub besteht,
hinten dran. Die zweite Zeile hat kein Leerzeichen am Zeilenende,
zeigt also das Ende eines Absatzes an.
Der Newsreader sucht wieder das erste Wort, das nicht mehr in die
gewünschte Ausgabebreite passt und ersetzt das davor stehende
Leerzeichen durch einen Zeilenvorschub und gibt die Zeile bis
einschließlich zum Zeilenvorschub aus. So fährt er fort, bis er zum
Schlussstück, das so kurz ist, dass es nicht mehr zerteilt werden
muss, kommt. Er gibt es mitsamt seinem Leerzeichen am Ende und dem
Zeilenvorschub aus.
Dann geht er zur dritten Zeile, die den Anfang eines Absatzes
darstellt. Im Beispiel ist sie so kurz, dass sie in eine
Ausgabezeile passt. Sie ist gleichzeitig auch das Ende des
Absatzes.
Dann kümmert er sich um die vierte Zeile, die den Anfang eines
neuen zitierten Absatzes darstellt: Er zerteilt sie und gibt sie
wieder entsprechend aus. Das Ergebnis könnte so aussehen:
>Hier ist ein Fließtextabsatz, bestehend
>aus 3 Zeilen. Die erste
Und hier wird weitergeschrieben.
>Nur die dritte Zeile des Absatzes hat
>keines am Ende.
>Und hier beginnt der nächste Absatz, der
>auch wieder…
Entspricht das dem, was du beobachtet hast? Verräterisch ist das
Leerzeichen am Ende der zweiten Zeile, und, dass die zweite Zeile
(hier zufällig) nicht so lang ist, wie sie sein könnte.
Hier sind also schon vier Absätze entstanden, aber zwischen dem
ersten und dem zweiten gibt es keine Leerzeile. Und das ist auch
korrekt so, weil im eingetippten Text der erste Absatz erst mit der
Zeile, die kein Leerzeichen am Ende hat, endet. Das ist in diesem
Fall die zweite, die Leerzeile. Dadurch wird die Leerzeile Teil des
Absatzes und verschwindet in ihm.
Würdest du mal so ein Beispiel provozieren und posten? Ich würde
gerne den Quelltext sehen.