Martin Wodrich ([EMAIL PROTECTED]) wrote:

 > Hans-Juergen Taenzer <[EMAIL PROTECTED]> schrieb am
 > 21.09.06 um 19:34:

 >> bei einer base64-kodierten Pseudo-Multipart Nachricht mit Charset
 >> gb2312 schneidet FreeXP im Lister die Nachricht ab.

 > Kann ich mit deinem Puffer nachvollziehen.

Voraussetzung für das Fehlverhalten ist:

if (fname='') and (typ='text') and (subtyp<>'html')

Da fname bei dieser Art von Nachrichten in der Regel gegeben ist, tritt
der Fehler selten in Erscheinung.  Ich habe in meinem Nachrichtenbestand
auch nur wenige Fälle gefunden.

 >> Ich häng' die Nachricht uue-encoded mal an (BASE64_2.ZER).
 >> Zusätzlich auch die dekodierte Nachricht (K4514.TMP) und die
 >> Nachricht, wie sie korrekt dekodiert als utf-8 aussehen müsste
 >> (K2209.TMP).

UTF-8 oben im Beispielpuffer war natürlich Blödsinn, aber auf den
Zeichensatz kommt es bei dem Fehler nicht an.

Eine Quick- and Dirty Korrektur (die bei mir soweit funktioniert) in

procedure ExtractMultiPart

ist:

<--------------- alt ------------------------------------>
  if (p>0) or (length(s1)=255) then               { Daten schreiben }
  begin
    CharsetToIBM(charset,s1);

<--------------- neu ------------------------------------>
  if (p>0) or (length(s1)=255) or
                                    { HJT 01.10.06 Rest der letzten }
     ((lines=i) and (s1<>''))       { eingelesen Zeile ausgeben     }
  then                                  { Daten schreiben }
  begin
    CharsetToIBM(charset,s1);
<-------------------------------------------------------->

Sorry, ich kann's mangels aktueller CVS-Version nicht ausdiffen.

 > Und was muß ich da sehen:
 > Abgeschnitten wurde die letzte nach dem Decodieren nicht
 > abgeschlossene Zeile.

Ja, das ist der Fehler.  Die letzte eingelesene base64-Zeile wird nicht
(komplett) ausgegeben (wobei das ausgangsseitig durchaus mehrere Zeilen
sein können).  Oder meinst Du etwas anderes?

Hans-Jürgen
------------------------------------------------------------------------
FreeXP Support-Mailingliste
[email protected]
http://www.freexp.de/cgi-bin/mailman/listinfo/support-list

Antwort per Email an