Hallo,
Ich wurde im Usenet jetzt schon etliche Male - berechtigerweise - wegen meinen "gepl�tteten" References angesprochen. Sprich: Wenn ich eine Antwort schreibe, wird nur die erste Reference / BEZ �bernommen und dann noch die MID des beantworteten Postings angeh�ngt. Gefordert wird aber eigentlich, da� m�glichst alle References �bernommen werden und dann noch die MID des beantworteten Postings. Da ich nun gemerkt habe, da� der Quellcode von MD I zu haben ist, habe ich ihn mir angeschaut und so ge�ndert, da� neben der ersten BEZ-Zeile auch noch die letzten zehn �bernommen werden (sofern vorhanden). Die ge�nderten Dateien habe ich unter http://stephan.manske-net.de/md-neu.lha abgelegt. Nun habe ich zwei Bitten: 1) Da ich schon lange nicht mehr programmiert habe und ich mir auch nicht zu 100% sicher bin, ob ich den Code in seiner G�nze verstanden habe, m�ge sich doch bitte mal jemand versierteres (Oli!?) das ganze angucken. Die eigentlichen �nderungen habe ich in den Dateien msg.c und sendwin.c gemacht. Bei den anderen Dateien in dem Archiv mu�ten nur die dortigen Aufrufe von dosendwin an die neuen Variablen angepa�t werden. Alle ge�nderten Passagen werden wie folgt eingeleitet: /* stm: mehr BEZ-Zeilen - die Zahlen beginnen in der BEZ-Kette von "hinten": 1 ist der gequoteten Nachricht am "n�chsten" */ Kernst�ck ist der Ersatz von (msg.c) |hl2 = hl_findheader( hlist, "BEZ" ); |if( hl2 == hl_findlastheader( hlist, "BEZ" ) ) | hl2 = NULL; |/*if( !hl2 ) | hl2 = hl_findheader( hlist, "BEZ" );*/ | |hl = hl_findheader( hlist, "MID" ); |rc = dosendwin((public)?"�ffentliche Antwort...":"Private Antwort...", | betreff,0, | hl->data, emp, | flags, | 0,0, | bi->diskussionin[0] ? bi->diskussionin : NULL, | qc[0]?qc:NULL, | hl2 ? hl2->data : NULL, | NULL, | NULL, | fto[�0 ]�? fto : NULL |); durch |bez_root = hl_findheader( hlist, "BEZ" ); |if (bez_root) | { | xbez_root = bez_root->data; | hl_delheader(bez_root); | } |else | xbez_root=NULL; hier wird zuerst die allererste BEZ gelesen Zum hl_delheader: Ich gehe, nach einigem Querlesen davon aus, da� die hlist eine eigenst�ndige Instanz ist, die beliebig ver�ndert werden kann somit keine R�ckkopplung zum eigentlichen Header des Ursprungpostings hat. Sollte dem nicht so sein, dann sind meine diesbez�glichen Codezeilen nat�rlich wertlos, da sie im Header des Bezugspostings rumpfuschen w�rden. Ich m��te die hlist dann einmal als komplette by value-Kopie erstellen, damit ich damit arbeiten kann. |bez1 = hl_findlastheader( hlist, "BEZ" ); |if (bez1) | { | xbez1 = bez1->data; | hl_delheader(bez1); | } |else | xbez1=NULL; Nachdem die erste BEZ gelesen wurde - diese sollte ja idealerweise das allererste Posting im Thread bezeichen (deshalb auch _root) - sind von nun an die letzten BEZ wichig, da sie "n�her" am Bezugposting sind (quasie "j�nger" sind). Daf�r lese ich zuerst die letzte BEZ ein und l�sche sie dann. Danach ist die vorletzte BEZ zur nunmehr letzten geworden. |bez2 = hl_findlastheader( hlist, "BEZ" ); |if (bez2) | { | xbez2 = bez2->data; | hl_delheader(bez2); | } |else | xbez2=NULL; irgendwann sind in einem sehr jungen Thread vielleicht nicht einmal zehn BEZs vorhanden, dann wird eben ein NULL geliefert und sp�ter entsprechend nicht beachtet. |bez3 = hl_findlastheader( hlist, "BEZ" ); |if (bez3) | { | xbez3 = bez3->data; | hl_delheader(bez3); | } |else | xbez3=NULL; [...] |bez10 = hl_findlastheader( hlist, "BEZ" ); |if (bez10) | { | xbez10 = bez10->data; | hl_delheader(bez10); | } |else | xbez10=NULL; | |/* stm: Hat das Quoting nur ein BEZ, wird es nicht �bernommen!? */ | |/*if( hl2 == hl_findlastheader( hlist, "BEZ" ) ) | hl2 = NULL; */ | | |/*if( !hl2 ) | hl2 = hl_findheader( hlist, "BEZ" );*/ | |hl = hl_findheader( hlist, "MID" ); | | |/* stm: mehr BEZ-Zeilen - die Zahlen beginnen in der BEZ-Kette von "hinten": 1 ist |der gequoteten Nachricht am "n�chsten" */ | |rc = dosendwin((public)?"�ffentliche Antwort...":"Private Antwort...", | betreff,0, | hl->data, emp, | flags, | 0,0, | bi->diskussionin[0] ? bi->diskussionin : NULL, | qc[0]?qc:NULL, | xbez_root ? xbez_root : NULL, | xbez1 ? xbez1 : NULL, | xbez2 ? xbez2 : NULL, | xbez3 ? xbez3 : NULL, | xbez4 ? xbez4 : NULL, | xbez5 ? xbez5 : NULL, | xbez6 ? xbez6 : NULL, | xbez7 ? xbez7 : NULL, | xbez8 ? xbez8 : NULL, | xbez9 ? xbez9 : NULL, | xbez10 ? xbez10 : NULL, | NULL, | NULL, | fto[�0 ]�? fto : NULL |); sowie (sendwin.c) |/* Bezuge */ |if( mailbezug && !ogreValue( ogw, GID_CBCLEARBEZ ) ) |{ | if( mqbez ) | hl_addheader( hlist, "BEZ", mqbez ); | hl_addheader( hlist, "BEZ", mailbezug ); | if( mfto ) | hl_addheader( hlist, "F-TO", mfto ); |} durch |/* Bezuge */ |if( mailbezug && !ogreValue( ogw, GID_CBCLEARBEZ ) ) |{ | | /* stm: mehr BEZ-Zeilen - die Zahlen beginnen in der BEZ-Kette von "hinten": |1 ist der gequoteten Nachricht am "n�chsten" */ hier werden die BEZ nun wieder geschrieben, zuerst die root-BEZ, dann die zehntletzte, dann die neuntletzte usw. Nat�rlich immer nur, wenn existent. | if( mqbez_root ) | hl_addheader( hlist, "BEZ", mqbez_root ); | | if( mqbez10 ) | hl_addheader( hlist, "BEZ", mqbez10 ); | | if( mqbez9 ) | hl_addheader( hlist, "BEZ", mqbez9 ); | | if( mqbez8 ) | hl_addheader( hlist, "BEZ", mqbez8 ); | | if( mqbez7 ) | hl_addheader( hlist, "BEZ", mqbez7 ); | | if( mqbez6 ) | hl_addheader( hlist, "BEZ", mqbez6 ); | | if( mqbez5 ) | hl_addheader( hlist, "BEZ", mqbez5 ); | | if( mqbez4 ) | hl_addheader( hlist, "BEZ", mqbez4 ); | | if( mqbez3 ) | hl_addheader( hlist, "BEZ", mqbez3 ); | | if( mqbez2 ) | hl_addheader( hlist, "BEZ", mqbez2 ); | | if( mqbez1 ) | hl_addheader( hlist, "BEZ", mqbez1 ); | | | hl_addheader( hlist, "BEZ", mailbezug ); | if( mfto ) | hl_addheader( hlist, "F-TO", mfto ); |} 2) Da ich keinen sas/c-Compiler habe und mein gcc schon beim makefile Probleme hat, br�uchte ich jemanden, der mit das ver�nderte MD compiliert. Ciao, Stephan -- E-Mail: [EMAIL PROTECTED] // MicroDot V1.18 WWW : http://stephan.manske-net.de/ \X/ PGP-Key auf Wunsch Dienstgebaeude -> TELEKOMplex _____________________________________________________________ MicroDot-Mailing-Liste - Info & Archiv: http://www.vapor.com/ ML-Hilfe: <[EMAIL PROTECTED]>, Inhalt "HELP" ML-Abbestellen: <[EMAIL PROTECTED]>, "UNSUBSCRIBE"
