Groups | Search | Server Info | Keyboard shortcuts | Login | Register


Groups > de.comp.text.misc > #57

Wie «text/plain; Format=Flowed; DelSp=Yes» funktioniert (was: [TB/BB] "f=f" und der Parameter "DelSp=Yes")

From Helmut Waitzmann <nn.throttle@xoxy.net>
Newsgroups de.comm.software.mozilla.mailnews, de.comp.text.misc
Subject Wie «text/plain; Format=Flowed; DelSp=Yes» funktioniert (was: [TB/BB] "f=f" und der Parameter "DelSp=Yes")
Followup-To de.comp.text.misc
Date 2022-09-20 23:50 +0200
Organization Aioe.org NNTP Server
Message-ID <83v8phyaub.fsf@helmutwaitzmann.news.arcor.de> (permalink)
References <af17/cc00/dcsmm/211bbird@barghahn-online.de>

Cross-posted to 2 groups.

Followups directed to: de.comp.text.misc

Show all headers | View raw


 Thomas Barghahn <Th.Barghahn@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 

Back to de.comp.text.misc | Previous | NextNext in thread | Find similar


Thread

Wie «text/plain; Format=Flowed; DelSp=Yes» funktioniert (was: [TB/BB] "f=f" und der Parameter "DelSp=Yes") Helmut Waitzmann <nn.throttle@xoxy.net> - 2022-09-20 23:50 +0200
  Re: Wie «text/plain; Format=Flowed; DelSp=Yes» funktioniert Jörg Knobloch <jorgk@jorgk.com> - 2022-09-21 00:33 +0200
    Re: Wie «text/plain; Format=Flowed; DelSp=Yes» funktioniert Thomas Barghahn <Th.Barghahn@t-online.de> - 2022-09-21 01:02 +0200
    Re: Wie «text/plain; Format=Flowed; DelSp=Yes» funktioniert Thomas Barghahn <Th.Barghahn@t-online.de> - 2022-09-21 01:08 +0200
      Re: Wie «text/plain; Format=Flowed; DelSp=Yes» funktioniert Michael Bäuerle <michael.baeuerle@stz-e.de> - 2022-09-21 10:51 +0200
        Re: Wie «text/plain; Format=Flowed; DelSp=Yes» funktioniert Thomas Barghahn <Th.Barghahn@t-online.de> - 2022-09-21 14:06 +0200
          Re: Wie «text/plain; Format=Flowed; DelSp=Yes» funktioniert Michael Bäuerle <michael.baeuerle@stz-e.de> - 2022-09-21 14:35 +0200
            Re: Wie «text/plain; Format=Flowed; DelSp=Yes» funktioniert Thomas Barghahn <Th.Barghahn@t-online.de> - 2022-09-21 16:26 +0200
              Re: Wie «text/plain; Format=Flowed; DelSp=Yes» funktioniert Michael Bäuerle <michael.baeuerle@stz-e.de> - 2022-09-21 17:16 +0200
                Re: Wie «text/plain; Format=Flowed; DelSp=Yes» funktioniert Thomas Barghahn <Th.Barghahn@t-online.de> - 2022-09-21 18:12 +0200
                Re: Wie «text/plain; Format=Flowed; DelSp=Yes» funktioniert Michael Bäuerle <michael.baeuerle@gmx.net> - 2022-09-21 21:01 +0000
                Zitiermarken mit Leerzeichen von einander trennen? (was: Wie «text/plain; Format=Flowed; DelSp=Yes» funktioniert) Helmut Waitzmann <nn.throttle@xoxy.net> - 2022-09-22 23:49 +0200
                Re: Zitiermarken mit Leerzeichen von einander trennen? Michael Bäuerle <michael.baeuerle@stz-e.de> - 2022-09-23 10:25 +0200
                Zitiermarken mit Leerzeichen von einander trennen? (was: Wie «text/plain; Format=Flowed; DelSp=Yes» funktioniert) Helmut Waitzmann <nn.throttle@xoxy.net> - 2022-09-22 22:39 +0200
                Re: Zitiermarken mit Leerzeichen von einander trennen? Thomas Barghahn <Th.Barghahn@t-online.de> - 2022-09-23 06:18 +0200
                Re: Zitiermarken mit Leerzeichen von einander trennen? Thomas Barghahn <Th.Barghahn@t-online.de> - 2022-09-23 06:35 +0200

csiph-web