Index: freexp/md5.pas
===================================================================
RCS file: /server/cvs/freexp/md5.pas,v
retrieving revision 1.3
retrieving revision 1.5
diff -u -r1.3 -r1.5
--- freexp/md5.pas      30 Mar 2006 07:21:09 -0000      1.3
+++ freexp/md5.pas      31 Mar 2006 10:41:18 -0000      1.5
@@ -1,4 +1,4 @@
-{ $Id: md5.pas,v 1.3 2006/03/30 07:21:09 mw Exp $ }
+{ $Id: md5.pas,v 1.5 2006/03/31 10:41:18 mw Exp $ }
 unit MD5;
 
 {MD5 - 128 bit Hash function}
@@ -51,11 +51,13 @@
  3.08     22.01.06  we          Removed HSelfTest from descriptor
  3.09     11.02.06  we          Descriptor as typed const
  3.09fxp1 20.02.06  fxp         STD.INC is now part of this file
- 3.09fxp2 28.03.06  fxp         md5sum generates MD5SUM as a String[32]  
+ 3.09fxp2 28.03.06  fxp         md5sum generates MD5SUM as a String[32]
+ 3.09fxp3 31.03.06  fxp         md5sum splitted in _file and _string
 **************************************************************************)
 
 (*-------------------------------------------------------------------------
  (C) Copyright 2002-2006 Wolfgang Ehrhardt
+ (C) Copyright 2006      FreeXP
 
  This software is provided 'as-is', without any express or implied warranty.
  In no event will the authors be held liable for any damages arising from
@@ -334,7 +336,11 @@
 
 type md5str  = string[32];
 
-function md5sum(const source:string;const isfile:boolean):md5str;
+function md5sum_file(const source:string):md5str;
+  {-initialize context}
+  {$ifdef DLL} stdcall; {$endif}
+
+function md5sum_str(const source:string):md5str;
   {-initialize context}
   {$ifdef DLL} stdcall; {$endif}
 
@@ -390,15 +396,6 @@
 {Internal types for type casting}
 type
   PByte   = ^byte;
-  {$ifdef UseWinDOS}
-  md5buf = array[1..$8000] of byte; 
-  {$else}
-  {$ifdef VER80}
-  md5buf = array[1..$8000] of byte;
-  {$else}
-  md5buf = array[1..$C000] of byte;
-  {$endif}
-  {$endif}
 
 {$ifdef StrictLong}
   {$warnings off}
@@ -430,54 +427,63 @@
   {$endif}
 {$endif}
 
-function md5sum(const source:string;const isfile:boolean):md5str;
-
-var f         : file;
-    context   : THashContext;
-    digest    : TMD5Digest;
-    StrDigest : md5str;
-    l         : longint;
-    n         : word;
-    w         : byte;
-    err       : integer;
-    md5bufp   : ^md5buf;
-
+function md5sum_file(const source:string):md5str;
+type md5buf = array[1..$FFFF] of byte;
+var  f         : file;
+     context   : THashContext;
+     digest    : TMD5Digest;
+     StrDigest : md5str;
+     l         : longint;
+     n         : word;
+     w         : byte;
+     err       : integer;
+     md5bufp   : ^md5buf;
 begin
-  md5sum:='';
+  md5sum_file:='';
   New(md5bufp);
   MD5Init(context);
-  if isfile then
+  w:=FileMode;
+  fm_ro;
+  assign(f,source);
+  reset(f,1);
+  err:=IOResult;
+  FileMode:=w;
+  if err<>0 then exit;
+  l:=FileSize(f);
+  if IOResult<>0 then exit;
+  while (err=0) and (l>0) do
   begin
-    w:=FileMode;
-    fm_ro;
-    assign(f,source);    
-    reset(f,1);
+    blockread(f,md5bufp^,SizeOf(md5buf),n);
     err:=IOResult;
-    FileMode:=w;
-    if err<>0 then exit;
-    l:=FileSize(f);
-    if IOResult<>0 then exit;
-    while (err=0) and (l>0) do
-    begin
-      blockread(f,md5bufp^,SizeOf(md5buf),n);
-      err:=IOResult;
-      dec(l,n);
-      MD5Update(context,md5bufp,n);
-    end;
-    close(f);
-    if IOResult=0 then;
-    if err<>0 then exit;
-  end
-  else begin
-    n:=length(source);
-    move(source,md5bufp^,n);
+    dec(l,n);
     MD5Update(context,md5bufp,n);
   end;
+  close(f);
+  if IOResult=0 then;
+  if err<>0 then exit;
   MD5Final(context,digest);
   Dispose(md5bufp);
   StrDigest:='';
   for n:=0 to 15 do StrDigest:=StrDigest+hex(digest[n],2);
-  md5sum:=StrDigest;
+  md5sum_file:=StrDigest;
+end;
+
+function md5sum_str(const source:string):md5str;
+var context   : THashContext;
+    digest    : TMD5Digest;
+    md5buf    : array[1..255] of byte;
+    StrDigest : md5str;
+    l         : byte;
+begin
+  md5sum_str:='';
+  MD5Init(context);
+  l:=length(source);
+  move(source[1],md5buf[1],l);
+  MD5Update(context,@md5buf,l);
+  MD5Final(context,digest);
+  StrDigest:='';
+  for l:=0 to 15 do StrDigest:=StrDigest+hex(digest[l],2);
+  md5sum_str:=StrDigest;
 end;
 
 {$ifdef BIT32}
@@ -936,6 +942,13 @@
 end.
 {
   $Log: md5.pas,v $
+  Revision 1.5  2006/03/31 10:41:18  mw
+  MW: - Copyright ergänzt (wir haben diese Datei modifiziert!!!)
+
+  Revision 1.4  2006/03/31 08:55:03  mw
+  MY: - Aufteilung von md5sum() in md5sum_file() für Dateien und
+        md5sum_str() für Strings.
+
   Revision 1.3  2006/03/30 07:21:09  mw
   MW: - Verlagerung von md5sum() um es bitbreitenunabhängig anzusprechen.
 
Index: freexp/servers.pas
===================================================================
RCS file: /server/cvs/freexp/servers.pas,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- freexp/servers.pas  30 Mar 2006 07:30:07 -0000      1.7
+++ freexp/servers.pas  31 Mar 2006 08:55:34 -0000      1.8
@@ -6,7 +6,7 @@
 { Die Nutzungsbedingungen fuer diesen Quelltext finden Sie in der }
 { Datei SLIZENZ.TXT oder auf www.crosspoint.de/oldlicense.html.   }
 { --------------------------------------------------------------- }
-{ $Id: servers.pas,v 1.7 2006/03/30 07:30:07 mw Exp $ }
+{ $Id: servers.pas,v 1.8 2006/03/31 08:55:34 mw Exp $ }
 
 {$I XPDEFINE.INC }
 {$O+,F+}
@@ -38,7 +38,7 @@
 
     begin
       {MD5-Summe der SERVERS.DAT berechnen}
-      StrDigest:=md5sum(servers,true);
+      StrDigest:=md5sum_file(servers);
       {MD5-Summe gegen alle alten SERVERS.DAT vergleichen}
       outdated:=false;
       for i:=1 to oldfile do
@@ -82,6 +82,9 @@
 end.
 {
   $Log: servers.pas,v $
+  Revision 1.8  2006/03/31 08:55:34  mw
+  MW: - Anpassung an md5.pas 3.09fxp3
+
   Revision 1.7  2006/03/30 07:30:07  mw
   MW: - Vergessener Debugcode entfernt.
 
Index: freexp/xp4o.inc
===================================================================
RCS file: /server/cvs/freexp/xp4o.inc,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -r1.26 -r1.27
--- freexp/xp4o.inc     13 Mar 2006 08:25:05 -0000      1.26
+++ freexp/xp4o.inc     31 Mar 2006 09:11:51 -0000      1.27
@@ -8,7 +8,7 @@
 { Die Nutzungsbedingungen fuer diesen Quelltext finden Sie in der }
 { Datei SLIZENZ.TXT oder auf www.crosspoint.de/oldlicense.html.   }
 { --------------------------------------------------------------- }
-{ $Id: xp4o.inc,v 1.26 2006/03/13 08:25:05 mw Exp $ }
+{ $Id: xp4o.inc,v 1.27 2006/03/31 09:11:51 mw Exp $ }
 
 { XP4O - Reorganisation }
 
@@ -276,7 +276,7 @@
           if ablage<ablagen then reobuf[ablage]:=true;
           end
         else
-          if ablage<ablagen then inc(bufsiz[ablage],msize);
+          if ablage<ablagen then bufsiz[ablage]:=bufsiz[ablage]+msize;
         dbSkip(mbase,iif(hzahl,-1,1));
         inc(nzahl);
         if n mod 10=0 then display;
@@ -729,6 +729,11 @@
 end;
 {
   $Log: xp4o.inc,v $
+  Revision 1.27  2006/03/31 09:11:51  mw
+  HJT: - fix for overflow error with big MPUFFER (reorg)
+  MW: - Anpassung an FreeXP, wo kein normaler 64 Integer-Datentyp zur
+        Verfügung steht.
+
   Revision 1.26  2006/03/13 08:25:05  mw
   MW: - Beseitigung eines Anzeigefehlers beim Reorg, bei sehr großem
         Datenbestand (mehr als 2 GB Gesamtgröße aller MPUFFER).
Index: freexp/xp4o.pas
===================================================================
RCS file: /server/cvs/freexp/xp4o.pas,v
retrieving revision 1.59
retrieving revision 1.60
diff -u -r1.59 -r1.60
--- freexp/xp4o.pas     13 Mar 2006 08:25:06 -0000      1.59
+++ freexp/xp4o.pas     31 Mar 2006 09:11:51 -0000      1.60
@@ -8,7 +8,7 @@
 { Die Nutzungsbedingungen fuer diesen Quelltext finden Sie in der }
 { Datei SLIZENZ.TXT oder auf www.crosspoint.de/oldlicense.html.   }
 { --------------------------------------------------------------- }
-{ $Id: xp4o.pas,v 1.59 2006/03/13 08:25:06 mw Exp $ }
+{ $Id: xp4o.pas,v 1.60 2006/03/31 09:11:51 mw Exp $ }
 
 { CrossPoint - Overlayroutinen, die von XP4 aufgerufen werden }
 
@@ -117,7 +117,7 @@
     history_changed   : boolean = false;
 
 var  reobuf : array[0..ablagen-1] of boolean;
-     bufsiz : array[0..ablagen-1] of longint;  { Größe nach Reorg }
+     bufsiz : array[0..ablagen-1] of integer64;  { Größe nach Reorg }
      abuf   : array[1..max_arc+1] of arcbp;
      exdir  : pathstr;
      arctyp_save : shortint;
@@ -2960,6 +2960,11 @@
 end.
 {
   $Log: xp4o.pas,v $
+  Revision 1.60  2006/03/31 09:11:51  mw
+  HJT: - fix for overflow error with big MPUFFER (reorg)
+  MW: - Anpassung an FreeXP, wo kein normaler 64 Integer-Datentyp zur
+        Verfügung steht.
+
   Revision 1.59  2006/03/13 08:25:06  mw
   MW: - Beseitigung eines Anzeigefehlers beim Reorg, bei sehr großem
         Datenbestand (mehr als 2 GB Gesamtgröße aller MPUFFER).
Index: freexp/Trial/newsnap.asc
===================================================================
RCS file: /server/cvs/freexp/Trial/newsnap.asc,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- freexp/Trial/newsnap.asc    19 Mar 2006 11:10:06 -0000      1.5
+++ freexp/Trial/newsnap.asc    31 Mar 2006 10:36:09 -0000      1.6
@@ -258,3 +258,43 @@
 MW: - Beseitigung eines Anzeigefehlers beim Einlesen von sehr vielen
       Nachrichten.
       XP3O.INC
+
+28.03.2006:
+
+MW: - Aktivierung der Compdate-Unit (sie enthält das eincompilierte
+      Compiledatum).
+      XP1.PAS
+
+MW: - Overlaytest benutzt jetzt das in der Compdate-Unit hinterlegte
+      Datum. Workaround gegen Fehlverhalten von Windows XP.
+      XPX.PAS
+
+MW: - Unterstützung für Textdatei mime.types (dosbedingt MIME.TYP)
+      XP6M.INC, MIME.TYP, BUILD.BAT
+
+30.03.2006:
+
+MY: - Neue Funktion md5sum zur leichteren Berechnung einer MD5-Summe
+      MD5.PAS
+
+MW: - Vereinfachung der SERVERS-Unit durch Benutzung von md5.md5sum()
+      und damit Weglassen allen doppelt aufgeführten Codes.
+      SERVERS.PAS
+
+31.03.2006:
+
+MY: - Aufteilung von md5sum() in md5sum_file() für Dateien und
+      md5sum_str() für Strings.
+      MD5.PAS
+
+MW: - Anpassung an md5.pas 3.09fxp3
+      SERVERS.PAS
+
+HJT: - fix for overflow error with big MPUFFER (reorg)
+MW: - Anpassung an FreeXP, wo kein normaler 64 Integer-Datentyp zur
+      Verfügung steht.
+      XP4O.PAS, XP4O.INC
+
+
+
+

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

Antwort per Email an