FreeXP

CVS freexp

CVS User mw cvs-list at freexp.de
Son Dez 28 11:35:26 CET 2008


Update of /server/cvs/freexp
In directory m6s15:/tmp/cvs-serv28627

Modified Files:
	maggi.pas 
Log Message:
MW: - Es werden jetzt die langen Maus-IDs zur Verkettung verwendet.


--- /server/cvs/freexp/maggi.pas	2008/12/26 18:37:13	1.35
+++ /server/cvs/freexp/maggi.pas	2008/12/28 10:35:26	1.36
@@ -8,7 +8,7 @@
 { Die Nutzungsbedingungen fuer diesen Quelltext finden Sie in der }
 { Datei SLIZENZ.TXT oder auf www.crosspoint.de/oldlicense.html.   }
 { --------------------------------------------------------------- }
-{ $Id: maggi.pas,v 1.35 2008/12/26 18:37:13 mw Exp $ }
+{ $Id: maggi.pas,v 1.36 2008/12/28 10:35:26 mw Exp $ }
 
 { ZConnect <-> Magic/Quick - Konvertierer }
 { PM 04/92                                }
@@ -75,6 +75,7 @@
       mausKF    : boolean = true;    { fb: Filter f?r Kommentare }
       MausIT_files : boolean = false;   { ITI/ITG -> Box.IT* }
       OldXPComp : boolean = false; { XP 3.12 Kompatibilit„t: F-TO -> X-XP-FTO }
+      SmallMaus : boolean = false; { Kurze Maus-IDs verwenden }
 
       { attrCrash   = $0002; }        { header.attrib: Crashmail   }
       { attrFile    = $0010; }        { File attached              }
@@ -173,6 +174,7 @@
 var   f1,f2     : file;
       bretter   : integer;
       brettp    : array[1..maxbrett] of ^brett;
+      tstr      : string;
 
 
 { 01/2000 oh : wird zum Einlesen der Customizable Headerlines ben”tigt }
@@ -187,6 +189,7 @@
   writeln('MAGGI - Magic/Quick/Maus/ZConnect Converter  (c) 1992-1999 Peter Mandrella');
   writeln(xp_display,'-Version ',verstr,betastr,'  ',x_copyright,
             ' by ',author_name,' <',author_mail,'>');
+  writeln ('NextGeneration Maggi for Maustausch and FreeXP');
   writeln;
 end;
 
@@ -197,14 +200,15 @@
   writeln('QuickMail:  MAGGI [-qz|zq] [-g] <Eingabe> <Ausgabe>');
   writeln('MausTausch: MAGGI [-sz|zs] -bBox -hBretthierarchie [-i] <Eingabe> <Ausgabe>');
   writeln;
-  writeln('    -mz  =  MagicNET -> ZConnect       -sz  =  MausTausch -> ZConnect');
-  writeln('    -zm  =  ZConnect -> MagicNET       -zs  =  ZConnect -> MausTausch');
-  writeln('    -mn  =  MagicNET -> Netcall        -i   =  Infofiles bestellen');
-  writeln('    -m   =  Message-IDs erzeugen       -o   =  Outfile erzeugen');
+  writeln('    -mz  =  MagicNET -> ZConnect       -sz    =  MausTausch -> ZConnect');
+  writeln('    -zm  =  ZConnect -> MagicNET       -zs    =  ZConnect -> MausTausch');
+  writeln('    -mn  =  MagicNET -> Netcall        -i     =  Infofiles bestellen');
+  writeln('    -m   =  Message-IDs erzeugen       -o     =  Outfile erzeugen');
   writeln;
-  writeln('    -qz  =  QuickNET -> ZConnect       -pz  =  ProNET -> ZConnect');
-  writeln('    -zq  =  ZConnect -> QuickNet       -zp  =  ZConnect -> ProNet');
-  writeln('    -g   =  GS-Mailbox                 -312 =  Kompatibilit„tsmodus zu 3.12');
+  writeln('    -qz  =  QuickNET -> ZConnect       -pz    =  ProNET -> ZConnect');
+  writeln('    -zq  =  ZConnect -> QuickNet       -zp    =  ZConnect -> ProNet');
+  writeln('    -g   =  GS-Mailbox                 -312   =  Kompatibilit„tsmodus zu 3.12');
+  writeln('                                       -sMaus =  Kurze Maus MSGIDs verwenden');
   halt(1);
 end;
 
@@ -262,7 +266,12 @@
     else if _is('on') then MausON:=false
     else if _is('kf') then mausKF:=false
     else if _is('it') then MausIT_Files:=true
-    else if _is('312') then OldXPComp := true
+    else if _is('312') then
+         begin
+           OldXPComp := true;
+           SmallMaus := true;
+         end
+    else if _is('sMaus') then SmallMaus := true
     else if (left(s,1)='/') or (left(s,1)='-') then parerr
     else if infile='' then infile:=s
     else if outfile='' then outfile:=s
@@ -1236,6 +1245,25 @@
     writeln(t,':---');
   end;
 
+  function INT2MAUS(a:string):string;
+  var f:text;
+      r,s,t:string;
+  begin
+    if exist('INT2MAUS.IDS') then begin
+      assign(f,'INT2MAUS.IDS');
+      reset(f);
+      readln(f,t);   {Erstmal Kopf ueberlesen}
+      readln(f,t);
+      repeat
+        readln(f,r);
+        readln(f,s);
+        readln(f,t);
+      until ((r=a) or eof(f));
+      close (f);
+      if r=a then INT2MAUS:=s else INT2MAUS:='';
+    end else INT2MAUS:='';
+  end;
+
 begin
   new(buf);
   reset(f1,1);
@@ -1317,11 +1345,43 @@
                 writeln(t,'DL')
               else
                 writeln(t,'DN');
+              {ref = org_xref => INT2MAUS}
+              {MW 11/2003}
+              if ((ref<>'') and (ref=org_xref) and SmallMaus=false) then begin
+                 if (length(ref)-pos('@',ref)<5) then org_xref:=INT2MAUS(ref) else
+                 begin
+                  ref:='';
+                  org_xref:='';
+                 end;
+              end;
+
             if ref<>'' then begin
-              if org_xref<>'' then
-                writeln(t,'R',org_xref);
+               if SmallMaus then
+               begin
+                 if org_xref<>'' then
+                    writeln(t,'R',org_xref);
+               end
+               else
+                begin
+                  if length(org_xref)>length(ref) then
+                  begin
+                    {Kompatbilitätsmodus mit altem Maggi}
+                    tstr:=ref;
+                    ref:=org_xref;
+                    org_xref:=tstr;
+                    {Swap Variable}
+                  end;
+                  writeln(t,'R',ref);
+                end;
               if komzu then begin
-                if org_xref='' then writeln(t,'R',ref);
+                if SmallMaus then
+                begin
+                 if org_xref='' then writeln(t,'R',ref);
+                end
+                else
+                begin
+                 if org_xref='' then writeln(t,'-',ref);
+                end;
                 { fb: Wildwestverkettung nur bei G?K und PM. Ist nach
                 Maus-Specs. nicht n”tig, aber der Kompatiblit„t wegen }
                 if left(ustr(ReplyGroup),length(bretth))=bretth then
@@ -1329,9 +1389,16 @@
                   writeln(t,':Kommentar zu ',ref,' in der Gruppe ',
                             ustr(mid(ReplyGroup,length(bretth)+1)));
                 end
-              else
-                writeln(t,'-',ref);
+              else begin
+                if SmallMaus then
+                  writeln(t,'-',ref)
+                else
+                begin
+                  if org_xref<>'' then writeln(t,'-',org_xref) else
+                  if (length(ref)-pos('@',ref)<5) then writeln(t,'-',ref);
+                end;
               end;
+            end;
             if AmReplyTo<>'' then
               writeln(t,':Followup-To: ',mid(AmReplyTo,length(bretth)+1));
             end;
@@ -1686,8 +1753,17 @@
               nehmen }
             'Y' : gate:=left(s,80);
             { /fb }
-            'I' : org_msgid:=left(s,120);
-            'R' : org_xref:=left(s,120);
+            'I' : if SmallMaus then
+                     org_msgid:=left(s,120)
+                  else
+                  begin
+                     org_msgid:=msgid;                          {MW 11/2003}
+                     msgid:=left(s,120);
+                  end;
+            'R' : if SmallMaus then
+                     org_xref:=left(s,120)
+                  else
+                     ref:=left(s,120);
             'N' : realname:=left(s,40);
             'D' : if s<>'' then case s[1] of
                     'M' : distribution:='MausNet';
@@ -1711,7 +1787,10 @@
                        end;
                   end;
             {/fb}
-             '-' : ref:=left(s,120);
+             '-' : If SmallMaus then
+                     ref:=left(s,120);
+                   else
+                     org_xref:=left(s,120);  {MW 11/2003}
           end;
           s:=c+s;
         end;
@@ -1722,7 +1801,18 @@
         datum:=zdate; setzdate(hd); end;
       if msgid='#LOG' then
         for i:=1 to lines do
-          writeln(log,tbuf^[i].s^)
+          if SmallMaus then
+            writeln(log,tbuf^[i].s^)
+          else
+            begin                                     {MW 11/2003}
+             if tbuf^[i].s^[1]='=' then writeln(log,'!'+tbuf^[i].s^) else
+             if tbuf^[i].s^[1]+tbuf^[i].s^[2]='!=' then begin
+                    tstr:=tbuf^[i].s^;
+                    delete(tstr,1,1);
+                    writeln(log,tstr);
+                 end
+             else writeln(log,tbuf^[i].s^);
+            end
       else begin
         inc(nn);
         write(#13,'Nachrichten: ',nn);
@@ -1839,7 +1929,10 @@
 end.
 {
   $Log: maggi.pas,v $
-  Revision 1.35  2008/12/26 18:37:13  mw
+  Revision 1.36  2008/12/28 10:35:26  mw
+  MW: - Es werden jetzt die langen Maus-IDs zur Verkettung verwendet.
+
+  Revision 1.35  2008-12-26 18:37:13  mw
   - Aktualisierung auf Version 3.45
 
   Revision 1.34  2008-01-01 20:59:24  mw




Mehr Informationen über die CVS-List Mailingliste