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