Thomas Barghahn <
Th.Ba...@t-online.de>:
[Es geht um den MIME‐Typ «text/plain; Format=Flowed;
DelSp=Yes»]
> Der Parameter "DelSp=Yes" soll laut RFC 3676 dazu dienen, dass
> aus einem Soft-Break auch ein Hard-Break werden darf, was in
> manchen Situationen durchaus sinnvoll ist.
Zeilenwechsel, die wahlweise als soft (also beim Neuumbrechen
verschwinden dürfen) oder als hard (beim Neuumbrechen erhalten
bleiben) interpretiert werden dürfen, gibt es nicht. Von jedem
Zeilenwechsel ist genau festgelegt, ob er beim Neuumbrechen
verschwinden darf oder erhalten bleiben muss: Zeilenwechsel an
Fließformatzeilen, also an solchen, die (nach Entfernung eines
eventuell vorhandenen Space‐Stuffing‐Leerzeichens) mit einem
Leerzeichen enden, dürfen beim Neuumbrechen verschwinden.
Zeilenwechsel an Festformatzeilen, also an solchen, die (nach
Entfernung eines eventuell vorhandenen
Space‐Stuffing‐Leerzeichens) nicht mit einem Leerzeichen enden,
müssen beim Neuumbrechen erhalten bleiben.
Der Sinn von «DelSp=Yes» ist, das Fließformat auch in
Schriftstücken von (menschlichen) Sprachen, in denen
Leerzeichen nur sehr selten oder nie vorkommen, anwenden zu
können (siehe im folgenden).
>Aus RFC 3676 - 4.1 ab 3. Absatz
>
>| If the line is flowed and DelSp is "yes", the trailing space
>| immediately prior to the line's CRLF is logically deleted. If the
>| DelSp parameter is "no" (or not specified, or set to an unrecognized
>| value), the trailing space is not deleted.
>|
>| Any remaining trailing spaces are part of the line's content, but the
>| CRLF of a soft line break is not.
Man muss diesen dritten Absatz im Zusammenhang des ganzen
Abschnitts 4.1
(<
https://datatracker.ietf.org/doc/html/rfc3676#section-4.1>)
lesen: Der Abschnitt beschreibt, wie ein Newsreader Stück für
Stück vorgeht, wenn er eine Fließformat‐Nachricht anzeigen (und
dabei möglicherweise neuumbrechen) will:
Er nimmt sich jede Textzeile zur Brust und bearbeitet sie in
folgenden Schritten:
Als erstes schaut er, wieviele Zitatmarken («>») vorne an der
Zeile stehen. Er merkt sich die Anzahl und entfernt die
Zitatmarken.
Dann schaut er, ob die so bearbeitete Zeile mit einem
Leerzeichen beginnt. Ist das der Fall, betrachtet er das
Leerzeichen als Space‐Stuffing‐Leerzeichen. Er entfernt es.
Dann schaut er, ob die so bearbeitete Zeile mit einem
Leerzeichen endet. Ist das der Fall, betrachtet er die Zeile
als Fließformat‐Zeile, die Teil eines Absatzes, der neu
umbrochen werden darf, ist. Endet die Zeile nicht mit einem
Leerzeichen, betrachtet er die Zeile als Festformat‐Zeile.
(Eine Ausnahme ist die Signaturtrennerzeile: Obwohl sie mit
einem Leerzeichen endet, wird sie weder als im Fließformat noch
als im Festformat stehend betrachtet, siehe Abschnitt 4.3.)
Wenn die Zeile als im Fließformat stehend erkannt worden ist
und der MIME‐Typ‐Parameter «DelSp» auf «Yes» steht, entfernt er
das Leerzeichen am Zeilenende.
Beachte: Das bedeutet nicht, dass diese Zeile ins Festformat
übergehen soll; es bedeutet nur, dass diese Fließformat‐Zeile
dieses Leerzeichen am Zeilenende, das normalerweise
alle Fließformat‐Zeilen haben, nicht mehr hat.
Halte kurz inne und überlege: Jede Fließformatzeile endet in
unbearbeitetem Zustand mit einem Leerzeichen, und ohne
«DelSp=Yes» ist das Leerzeichen auch nach einem Neuumbrechen
des Absatzes noch im Text vorhanden (nur möglicherweise nicht
mehr an einem Zeilenende).
Nun gibt es (anscheinend) Sprachen, in deren Schrift
Leerzeichen nur sehr selten oder überhaupt nicht vorkommen. Um
es diesen Sprachen zu ermöglichen, einerseits Fließformattext
verwenden zu können, trotzdem aber nicht mit den für den
Fließformattext technisch notwendigen Leerzeichen belästigt zu
werden, wurde der Parameter «DelSp=Yes» erfunden.
Nun weiter in der Bearbeitung des Absatzes:
Der Newsreader umbricht den Absatz wird neu. Das bedeutet, er
entfernt Zeilenwechsel oder fügt welche ein, um Zeilen passender
Länge zu erhalten.
Und das macht der Newsreader so, dass jede Zeile außer der
letzten mit einem Leerzeichen endet. Das ist natürlich bei
Sprachen, in denen Leerzeichen rar sind oder ganz fehlen,
schwierig bis unmöglich.
Um das trotzdem zu ermöglichen, fügt der Newsreader an jedes
Fließformatzeilen‐Ende ein Leerzeichen an und gibt dem MIME‐Typ
«text/plain» den Parameter «DelSp=Yes» mit. Genaueres steht im
Abschnitt 4.2
(<
https://datatracker.ietf.org/doc/html/rfc3676#section-4.2>) des
RFCs 3676.
Er hängt vor jede Zeile, die es nötig hat, (alternativ: vor jede
Zeile) ein Space‐Stuffing‐Leerzeichen.
Als letztes werden die gemerkten Zitatzeichen (siehe oben) vor
jeden Zeilenanfang innerhalb des Absatzes gesetzt.
Falls weiteres Interesse an der Diskussion, wie das Fließformat
funktioniert, besteht, bitte ich um einen Umzug nach
«de.comp.text.misc».
Crosspost & Followup-To: de.comp.text.misc