Index: freexp/ndiff.pas
===================================================================
RCS file: /server/cvs/freexp/ndiff.pas,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- freexp/ndiff.pas    1 Jan 2005 11:16:28 -0000       1.12
+++ freexp/ndiff.pas    4 Mar 2005 14:36:57 -0000       1.13
@@ -8,7 +8,7 @@
 { Die Nutzungsbedingungen fuer diesen Quelltext finden Sie in der }
 { Datei SLIZENZ.TXT oder auf www.crosspoint.de/oldlicense.html.   }
 { --------------------------------------------------------------- }
-{ $Id: ndiff.pas,v 1.12 2005/01/01 11:16:28 mw Exp $ }
+{ $Id: ndiff.pas,v 1.13 2005/03/04 14:36:57 mw Exp $ }
 
 { NodeDiff verarbeiten }
 
@@ -114,6 +114,26 @@
   TestEx(nd_file);
 end;
 
+procedure verifydiff;
+var t   : file of byte;
+    s1,s2 : byte;
+begin
+  assign(t,nd_file);
+  reset(t);
+  while not eof(t) do
+  begin
+    read(t,s1);
+    if s1=13 then begin
+      read(t,s2);
+      if s2<>10 then fehler('Nodediff korrupt');
+      s1:=s2;
+      s2:=13;
+    end;
+    if ((s1=10) and (s2<>13)) then fehler('Nodediff korrupt');
+    s2:=s1;
+  end;
+end;
+
 procedure testversion;
 var t    : text;
     s,s2 : string;
@@ -331,6 +351,7 @@
   if shrink then
     shrinklist
   else begin
+    verifydiff;
     testversion;
     processlist;
     { WriteCfg; }
@@ -339,6 +360,9 @@
 end.
 {
   $Log: ndiff.pas,v $
+  Revision 1.13  2005/03/04 14:36:57  mw
+  MW: - NDIFF gegen defekte Nodediffs abgesichert.
+
   Revision 1.12  2005/01/01 11:16:28  mw
   MW: - Willkommen im Jahr 2005
 
Index: freexp/xp2c.pas
===================================================================
RCS file: /server/cvs/freexp/xp2c.pas,v
retrieving revision 1.49
retrieving revision 1.50
diff -u -r1.49 -r1.50
--- freexp/xp2c.pas     3 Mar 2005 18:44:33 -0000       1.49
+++ freexp/xp2c.pas     4 Mar 2005 06:53:24 -0000       1.50
@@ -8,7 +8,7 @@
 { Die Nutzungsbedingungen fuer diesen Quelltext finden Sie in der }
 { Datei SLIZENZ.TXT oder auf www.crosspoint.de/oldlicense.html.   }
 { --------------------------------------------------------------- }
-{ $Id: xp2c.pas,v 1.49 2005/03/03 18:44:33 mw Exp $ }
+{ $Id: xp2c.pas,v 1.50 2005/03/04 06:53:24 mw Exp $ }
 { CrossPoint - Config bearbeiten }
 
 
@@ -1365,7 +1365,7 @@
 procedure GebuehrOptions;
 var x,y : byte;
     brk : boolean;
-    r,c : real;
+    r   : real;
 begin
   dialog(ival(getres2(1023,0)),8,getres2(1023,1),x,y);  { 
'Telefonkosten-Einstellungen' }
   r:=GebNoconn/100;
@@ -1551,6 +1551,9 @@
 
 {
   $Log: xp2c.pas,v $
+  Revision 1.50  2005/03/04 06:53:24  mw
+  MW: - Unn”tige Variable entfernt.
+
   Revision 1.49  2005/03/03 18:44:33  mw
   MW: - Gebhren„nderung zum 01.05.2005:
         Die T-Com verlangt fr Terminierung bei einem Citycarrier einen
Index: freexp/xp9.pas
===================================================================
RCS file: /server/cvs/freexp/xp9.pas,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -r1.23 -r1.24
--- freexp/xp9.pas      1 Jan 2005 11:16:30 -0000       1.23
+++ freexp/xp9.pas      4 Mar 2005 14:20:59 -0000       1.24
@@ -8,7 +8,7 @@
 { Die Nutzungsbedingungen fuer diesen Quelltext finden Sie in der }
 { Datei SLIZENZ.TXT oder auf www.crosspoint.de/oldlicense.html.   }
 { --------------------------------------------------------------- }
-{ $Id: xp9.pas,v 1.23 2005/01/01 11:16:30 mw Exp $ }
+{ $Id: xp9.pas,v 1.24 2005/03/04 14:20:59 mw Exp $ }
 
 
 { CrossPoint - UniSel (Boxen, Gruppen, Systeme, Kurznamen, Mime-Typen) }
@@ -74,7 +74,7 @@
 implementation  {---------------------------------------------------}
 
 uses
-  xp2b,xp2,xp3,xp3o,xp4rta,xp9bp,xp9sel,xp10,lister,xpterm,xpovl;
+  xp2b,xp2,xp3,xp3o,xp4rta,xp9bp,xp9sel,xp10,lister,xpterm,xpovl,xp9mime;
 
 
 {$IFDEF FPC }
@@ -691,125 +691,6 @@
       end;
   end;
 
-
-  { --- Bearbeitungs-Routinen fr MIME-Typen-Liste ------------------}
-
-  procedure ReadMimetyp(edit:boolean; var typ,ext,prog:string;
-                        var brk:boolean);
-  var x,y,add : byte;
-  begin
-    typ:=extmimetyp(typ);
-    add:=iif(typ='*/*',0,2);
-    dialog(ival(getres2(935,0)),5+add,getres2(935,iif(edit,2,1)),x,y);  { 
'Viewer „ndern' / 'Viewer hinzufgen' }
-    if typ='*/*' then begin
-      maddtext(3,2,getres2(935,3),0);                  { 'MIME-Typ         ' }
-      maddtext(3+length(getres2(935,3))+2,2,typ,col.coldiahigh);
-      end
-    else begin
-      maddstring(3,2,getres2(935,3),typ,33,40,         { 'MIME-Typ         ' }
-           '"!'+without(range('#','~'),'()<>@,;:\"[]?=')); { MK 12/99 Zeichen 
"/" zugelassen }
-        mhnr(821); {JG: 1051->821}
-      maddstring(3,4,getres2(935,4),ext,5,5,'<');              { 
'Dateierweiterung ' }
-      mhnr(822); {JG}
-      end;
-    maddstring(3,4+add,getres2(935,5),prog,33,ViewprogLen,''); mhnr(823); {JG} 
{ 'Viewer-Programm  ' }
-      msetvfunc(progtest);
-    freeres;
-    repeat
-      readmask(brk);
-      if not brk and (typ+ext='') then
-        rfehler(932);    { 'Es muá ein MIME-Typ oder eine Dateierweiterung 
angegeben werden!' }
-    until brk or (typ+ext<>'');
-    enddialog;
-    typ:=compmimetyp(typ);
-  end;
-
-  procedure EditMimetyp(isNew: Boolean);
-  var typ  : string[30];
-      ext  : string[5];
-      prog : string[ViewprogLen];
-      brk  : boolean;
-      isValid: boolean;
-  begin
-    if isNew then begin
-      typ:= ''; ext:= ''; prog:= '';
-    end else
-    begin
-      dbGo(d,drec[p]);
-      dbReadN(d,mimeb_typ,typ);
-      dbReadN(d,mimeb_extension,ext);
-      dbReadN(d,mimeb_programm,prog);
-    end;
-    if typ = '*/*' then
-    begin
-      RFehler(935); { 'Standardeintrag kann nicht editiert werden' }
-      exit;
-    end;
-    readmimetyp(not IsNew,typ,ext,prog,brk);
-    if not brk then
-    begin
-      {  check for duplicate entries }
-      isValid := true;
-      if typ <> '' then
-      begin
-        dbSeek(mimebase,mtiTyp,UStr(typ));
-        { duplicate is valid if Edit Mode and found rec = edited rec }
-        if IsNew or (dbRecNo(d) <> drec[p]) then
-          isValid := not (not dbBOF(mimebase) and not dbEOF(mimebase) and
-            stricmp(typ,dbReadStr(mimebase,'typ')));
-      end;
-      if Ext <> '' then
-      begin
-        dbSeek(mimebase,mtiExt,UStr(Ext));
-        { duplicate is valid if Edit Mode and found rec = edited rec }
-        if IsNew or (dbRecNo(d) <> drec[p]) then
-          isValid := isValid and not (not dbBOF(mimebase) and not 
dbEOF(mimebase) and
-            stricmp(ext,dbReadStr(mimebase,'extension')));
-      end;
-      if not IsNew and (typ = '*/*') then IsValid := true;
-
-      if isValid then
-      begin
-        if isNew then
-          dbAppend(d)
-        else
-          dbGo(d,drec[p]);
-        dbWriteN(d,mimeb_typ,typ);
-        dbWriteN(d,mimeb_extension,ext);
-        dbWriteN(d,mimeb_programm,prog);
-        ReadDefaultViewers;
-      end else
-        RFehler(934); { Doppelte MIME-Typen oder Dateierweiterungen sind nicht 
erlaubt! }
-      dbFlushClose(d);
-      dbGo(d,drec[1]);
-      if isNew then
-        dbSkip(d,-1);     {ein Feld zurueck, damit Neueintrag sichtbar ist}
-      aufbau:=true;
-    end;
-  end;
-
-  procedure DelMimetyp;
-  var
-    s     : string[40];
-  begin
-    dbGo(d,drec[p]);
-    s:=dbReadStr(d,'typ');
-    if s='*/*' then
-      rfehler(931)          { 'Standardeintrag kann nicht gel”scht werden' }
-    else begin
-      if s='' then s:=dbReadStr(d,'extension');
-      if ReadJN(getreps(906,s),true) then begin   { '"%s" l”schen' }
-        dbDelete(d);
-        dbFlushClose(d);
-        if p=1 then dbGoTop(d)
-        else dbGo(d,drec[1]);
-        aufbau:=true;
-        end;
-      end;
-    ReadDefaultViewers;
-  end;
-
-
   { sonstige Funktionen }
 
   procedure readbutt;
@@ -1224,6 +1105,10 @@
 end.
 {
   $Log: xp9.pas,v $
+  Revision 1.24  2005/03/04 14:20:59  mw
+  MW: - Speicherproblem in xp9.pas beseitigt.
+        (Unit xp9 wurde zu groá frs Overlay)
+
   Revision 1.23  2005/01/01 11:16:30  mw
   MW: - Willkommen im Jahr 2005
 
Index: freexp/xp9mime.pas
===================================================================
RCS file: freexp/xp9mime.pas
diff -N freexp/xp9mime.pas
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ freexp/xp9mime.pas  4 Mar 2005 14:20:59 -0000       1.1
@@ -0,0 +1,158 @@
+{ --------------------------------------------------------------- }
+{ Dieser Quelltext ist urheberrechtlich geschuetzt.               }
+{ (c) 2005      FreeXP, http://www.freexp.de                      }
+{ CrossPoint ist eine eingetragene Marke von Peter Mandrella.     }
+{                                                                 }
+{ Die Nutzungsbedingungen fuer diesen Quelltext finden Sie in der }
+{ Datei SLIZENZ.TXT oder auf www.crosspoint.de/oldlicense.html.   }
+{ --------------------------------------------------------------- }
+{ $Id: xp9mime.pas,v 1.1 2005/03/04 14:20:59 mw Exp $ }
+
+{ --- Bearbeitungs-Routinen fr MIME-Typen-Liste ---------------- }
+{$I XPDEFINE.INC}
+{F+}
+
+unit xp9mime;
+
+interface
+
+  procedure ReadMimetyp(edit:boolean; var typ,ext,prog:string;
+                        var brk:boolean);
+  procedure EditMimetyp(isNew: Boolean);
+  procedure DelMimetyp;
+
+implementation  {---------------------------------------------------}
+
+uses xp3,typeform,xp1,resource,maske,xp0,xp9sel,dbase,datadef,database,
+     xp2b,xp1input;
+
+const maxgl   = 40;
+var  d         : DB;
+     drec      : array[1..maxgl] of longint;
+     p0,p,gl   : integer;
+
+  { --- Bearbeitungs-Routinen fr MIME-Typen-Liste ------------------}
+
+  procedure ReadMimetyp(edit:boolean; var typ,ext,prog:string;
+                        var brk:boolean);
+  var x,y,add : byte;
+  begin
+    typ:=extmimetyp(typ);
+    add:=iif(typ='*/*',0,2);
+    dialog(ival(getres2(935,0)),5+add,getres2(935,iif(edit,2,1)),x,y);  { 
'Viewer „ndern' / 'Viewer hinzufgen' }
+    if typ='*/*' then begin
+      maddtext(3,2,getres2(935,3),0);                  { 'MIME-Typ         ' }
+      maddtext(3+length(getres2(935,3))+2,2,typ,col.coldiahigh);
+      end
+    else begin
+      maddstring(3,2,getres2(935,3),typ,33,40,         { 'MIME-Typ         ' }
+           '"!'+without(range('#','~'),'()<>@,;:\"[]?=')); { MK 12/99 Zeichen 
"/" zugelassen }
+        mhnr(821); {JG: 1051->821}
+      maddstring(3,4,getres2(935,4),ext,5,5,'<');              { 
'Dateierweiterung ' }
+      mhnr(822); {JG}
+      end;
+    maddstring(3,4+add,getres2(935,5),prog,33,ViewprogLen,''); mhnr(823); {JG} 
{ 'Viewer-Programm  ' }
+      msetvfunc(progtest);
+    freeres;
+    repeat
+      readmask(brk);
+      if not brk and (typ+ext='') then
+        rfehler(932);    { 'Es muá ein MIME-Typ oder eine Dateierweiterung 
angegeben werden!' }
+    until brk or (typ+ext<>'');
+    enddialog;
+    typ:=compmimetyp(typ);
+  end;
+
+  procedure EditMimetyp(isNew: Boolean);
+  var typ  : string[30];
+      ext  : string[5];
+      prog : string[ViewprogLen];
+      brk  : boolean;
+      isValid: boolean;
+  begin
+    if isNew then begin
+      typ:= ''; ext:= ''; prog:= '';
+    end else
+    begin
+      dbGo(d,drec[p]);
+      dbReadN(d,mimeb_typ,typ);
+      dbReadN(d,mimeb_extension,ext);
+      dbReadN(d,mimeb_programm,prog);
+    end;
+    if typ = '*/*' then
+    begin
+      RFehler(935); { 'Standardeintrag kann nicht editiert werden' }
+      exit;
+    end;
+    readmimetyp(not IsNew,typ,ext,prog,brk);
+    if not brk then
+    begin
+      {  check for duplicate entries }
+      isValid := true;
+      if typ <> '' then
+      begin
+        dbSeek(mimebase,mtiTyp,UStr(typ));
+        { duplicate is valid if Edit Mode and found rec = edited rec }
+        if IsNew or (dbRecNo(d) <> drec[p]) then
+          isValid := not (not dbBOF(mimebase) and not dbEOF(mimebase) and
+            stricmp(typ,dbReadStr(mimebase,'typ')));
+      end;
+      if Ext <> '' then
+      begin
+        dbSeek(mimebase,mtiExt,UStr(Ext));
+        { duplicate is valid if Edit Mode and found rec = edited rec }
+        if IsNew or (dbRecNo(d) <> drec[p]) then
+          isValid := isValid and not (not dbBOF(mimebase) and not 
dbEOF(mimebase) and
+            stricmp(ext,dbReadStr(mimebase,'extension')));
+      end;
+      if not IsNew and (typ = '*/*') then IsValid := true;
+
+      if isValid then
+      begin
+        if isNew then
+          dbAppend(d)
+        else
+          dbGo(d,drec[p]);
+        dbWriteN(d,mimeb_typ,typ);
+        dbWriteN(d,mimeb_extension,ext);
+        dbWriteN(d,mimeb_programm,prog);
+        ReadDefaultViewers;
+      end else
+        RFehler(934); { Doppelte MIME-Typen oder Dateierweiterungen sind nicht 
erlaubt! }
+      dbFlushClose(d);
+      dbGo(d,drec[1]);
+      if isNew then
+        dbSkip(d,-1);     {ein Feld zurueck, damit Neueintrag sichtbar ist}
+      aufbau:=true;
+    end;
+  end;
+
+  procedure DelMimetyp;
+  var
+    s     : string[40];
+  begin
+    dbGo(d,drec[p]);
+    s:=dbReadStr(d,'typ');
+    if s='*/*' then
+      rfehler(931)          { 'Standardeintrag kann nicht gel”scht werden' }
+    else begin
+      if s='' then s:=dbReadStr(d,'extension');
+      if ReadJN(getreps(906,s),true) then begin   { '"%s" l”schen' }
+        dbDelete(d);
+        dbFlushClose(d);
+        if p=1 then dbGoTop(d)
+        else dbGo(d,drec[1]);
+        aufbau:=true;
+        end;
+      end;
+    ReadDefaultViewers;
+  end;
+
+end.
+{
+  $Log: xp9mime.pas,v $
+  Revision 1.1  2005/03/04 14:20:59  mw
+  MW: - Speicherproblem in xp9.pas beseitigt.
+        (Unit xp9 wurde zu groá frs Overlay)
+
+}
\ No newline at end of file
Index: freexp/doc/snapshot.dq
===================================================================
RCS file: /server/cvs/freexp/doc/snapshot.dq,v
retrieving revision 1.35
retrieving revision 1.36
diff -u -r1.35 -r1.36
--- freexp/doc/snapshot.dq      3 Mar 2005 18:47:02 -0000       1.35
+++ freexp/doc/snapshot.dq      4 Mar 2005 14:43:41 -0000       1.36
@@ -4669,3 +4669,24 @@
   T-Com ab 01.05.2005 verlangt bercksichtigen.
   XP0.PAS, XP2CFG.INC, XP9BP.PAS, XP-D.RQ, XP-E.RQ,
   XP2C.PAS, XP9.INC, XP10.PAS, XP.IHQ, XP-E.IHQ
+
+þ  04.03.2005
+-------------
+MW:
+%*  Speicherproblem in einer Unit behoben.
+- Die Unit XP9 hat aufgrund der gestrigen Erweiterung ein
+  Speicherproblem im Zusammenhang mit dem Overlay erlitten.
+  Dieses konnte durch auslagern einiger Routinen in eine
+  neue Unit behoben werden.
+  XP9.PAS, XP9MIME.PAS
+
+MW:
+%*  Der Nodediff-Prozessor NDIFF bricht jetzt sauber bei defektem
+%   Nodediff ab.
+- Enth„lt ein Nodediff defekte Zeilenenden so fhrte dies
+  bisher zu einem unsch”nen Abstrurz mit anschlieáend unbrauchbarer
+  Nodelist-Konfiguration. Jetzt wird ein Nodediff erst einmal
+  berprft, ob alle Zeilenenden korrekt sind. Erst danach
+  erfolgen weitere Tests.
+  NDIFF.PAS
+

------------------------------------------------------------------------
FreeXP CVS-Mailingliste
CVS-List@freexp.de
http://www.freexp.de/cgi-bin/mailman/listinfo/cvs-list

Antwort per Email an