Index: freexp/md5.pas
===================================================================
RCS file: /server/cvs/freexp/md5.pas,v
retrieving revision 1.5
retrieving revision 1.8
diff -u -r1.5 -r1.8
--- freexp/md5.pas      31 Mar 2006 10:41:18 -0000      1.5
+++ freexp/md5.pas      16 Apr 2006 16:15:09 -0000      1.8
@@ -1,6 +1,6 @@
-{ $Id: md5.pas,v 1.5 2006/03/31 10:41:18 mw Exp $ }
+{ $Id: md5.pas,v 1.8 2006/04/16 16:15:09 mw Exp $ }
 unit MD5;
-
+{$I-}
 {MD5 - 128 bit Hash function}
 
 
@@ -448,9 +448,15 @@
   reset(f,1);
   err:=IOResult;
   FileMode:=w;
-  if err<>0 then exit;
+  if err<>0 then begin
+    Dispose(md5bufp);
+    exit;
+  end;
   l:=FileSize(f);
-  if IOResult<>0 then exit;
+  if IOResult<>0 then begin
+     Dispose(md5bufp);
+     exit;
+  end;
   while (err=0) and (l>0) do
   begin
     blockread(f,md5bufp^,SizeOf(md5buf),n);
@@ -460,7 +466,10 @@
   end;
   close(f);
   if IOResult=0 then;
-  if err<>0 then exit;
+  if err<>0 then begin
+    Dispose(md5bufp);
+    exit;
+  end;
   MD5Final(context,digest);
   Dispose(md5bufp);
   StrDigest:='';
@@ -942,6 +951,15 @@
 end.
 {
   $Log: md5.pas,v $
+  Revision 1.8  2006/04/16 16:15:09  mw
+  MW: - Memory-Leak beseitigt.
+
+  Revision 1.7  2006/04/16 15:45:56  mw
+  MW: - Globales Abschalten der Io-Prüfung (I-)
+
+  Revision 1.6  2006/04/16 14:13:04  mw
+  MW: - IO-Fehler beseitigt.
+
   Revision 1.5  2006/03/31 10:41:18  mw
   MW: - Copyright ergänzt (wir haben diese Datei modifiziert!!!)
 
Index: freexp/touch.pas
===================================================================
RCS file: /server/cvs/freexp/touch.pas,v
retrieving revision 1.24
retrieving revision 1.27
diff -u -r1.24 -r1.27
--- freexp/touch.pas    2 Jan 2006 09:46:11 -0000       1.24
+++ freexp/touch.pas    16 Apr 2006 16:15:41 -0000      1.27
@@ -9,25 +9,26 @@
 { finden Sie in der Datei TOUCH.TXT oder auf                      }
 { http://www.martinwodrich.de/Software/Touch/nutzung.htm          }
 { --------------------------------------------------------------- }
-{ $Id: touch.pas,v 1.24 2006/01/02 09:46:11 mw Exp $ }
+{ $Id: touch.pas,v 1.27 2006/04/16 16:15:41 mw Exp $ }
+{$IFDEF MSDOS}{$M 32768,131072,655360}{$ENDIF}
 program touch;
 {$I TOUCH.INC }
 
 { Betriebsystemabhaeniges }
 {$IFNDEF WINDOWS }
 {$IFDEF VPOS2}
-uses use32,dos,crt;
+uses use32,dos,crt,md5,fileio;
 {$ELSE }
-uses dos,crt{$IFDEF BPLFN},touchlfn{$ENDIF};
+uses dos,crt{$IFDEF BPLFN},touchlfn{$ENDIF},md5,fileio;
 {$ENDIF }
 {$ELSE }
-uses windos,wincrt,strings;
+uses windos,wincrt,strings,md5,fileio;
 {$ENDIF }
 
 const anyfile=$21;
       {$IFNDEF DPMI}
       {$IFNDEF unix}
-      beta='.3';  {Patchlevel 1}
+      beta='.3fxp1';  {Patchlevel 3}
       {$ELSE}
       !!! Touch 1.2 lΣuft nicht auf unixartigen Betriebsystemen !!
       beta=' Alpha 7';
@@ -90,6 +91,7 @@
 
 var f:file;
     g:text;
+    md5f:text;
 {$IFDEF WINDOWS }
    dt          : TDateTime;
    DirInfo     : TSearchRec;
@@ -117,6 +119,7 @@
    ref         : boolean;
    s,u         : string[100];
    sim,zcout   : boolean;
+   md5b        : boolean;
    files       : byte;
    st,n        : macrop;
    dateSet,timeSet : boolean;
@@ -213,6 +216,7 @@
     writeln (' '+Paramark+'J=Jobfile     Dateiliste verwenden, statt lange 
Argumentliste'+CR);
     writeln (' '+Paramark+'ZC            Neue Dateien als ZConnect-PUFFER 
erstellen'+CR);
     writeln (' '+Paramark+'I             Interaktiver Modus (Lesen der 
Dateiinfos von Standard-Input)'+CR);
+    writeln (' '+Paramark+'MD5           Pruefsummendatei md5sums mit 
MD5-Summen erstellen'+CR);
 end;
 
 procedure isok(meldung:integer);
@@ -442,6 +446,7 @@
   {$IFDEF WINDOWS}
   nc:=false;
   {$ENDIF}
+  md5b:=false;
 end;
 
 {$IFDEF BPLFN}
@@ -553,6 +558,7 @@
       if (copy(s,1,1)=Paramark) then begin
        s[2]:=UpCase(s[2]);
        s[3]:=UpCase(s[3]);
+       s[4]:=UpCase(s[4]);
        {Parameter gefunden}
        if (copy(s,2,2)='T=') then begin
          {Uhrzeit lesen}
@@ -657,6 +663,16 @@
           Readln(s);
         end;
        end;
+       if (copy(s,2,3)='MD5') then begin
+         {MD5-Summen einschalten}
+         md5b:=true;
+         {$IFDEF unix}
+         assign(md5f,'md5sums');
+         {$ELSE}
+         assign(md5f,'MD5SUMS');
+         {$ENDIF}
+         if existf(md5f) then append(md5f) else rewrite(md5f);
+       end;
       end
       else newmacro;
     end;
@@ -728,6 +744,9 @@
            else fname:=Dir+fname;
            if fname<>own then begin
              write(fname);
+             if md5b then begin
+               writeln(md5f,md5sum_file(fname)+' *'+fname); 
+             end;
              {Refdatei nicht touchen}
              if ref and testname(reffile,fname) then writeln(' Referenz'+CR)
              else begin
@@ -811,9 +830,19 @@
   if nc then Readln;
   DoneWinCrt;
   {$ENDIF}
+  if md5b then close(md5f);
 end.
 {
   $Log: touch.pas,v $
+  Revision 1.27  2006/04/16 16:15:41  mw
+  MW: - Bugfix: fehlerhafte Übergabe von Dateinamen an die md5-Funktionen
+
+  Revision 1.26  2006/04/16 15:08:53  mw
+  MW: - Kleiner Fix (nicht für FreeXP relevant)
+
+  Revision 1.25  2006/04/16 14:13:47  mw
+  MW: - FreeXP-Extension (MD5-Summe) eingebaut.
+
   Revision 1.24  2006/01/02 09:46:11  mw
   MW: - Update auf Touch 1.2.3
 
Index: freexp/build/DOS16/build.bat
===================================================================
RCS file: /server/cvs/freexp/build/DOS16/build.bat,v
retrieving revision 1.43
retrieving revision 1.44
diff -u -r1.43 -r1.44
--- freexp/build/DOS16/build.bat        2 Apr 2006 13:40:45 -0000       1.43
+++ freexp/build/DOS16/build.bat        16 Apr 2006 16:21:06 -0000      1.44
@@ -1,5 +1,5 @@
 @ECHO OFF
-:REM $Id: build.bat,v 1.43 2006/04/02 13:40:45 mw Exp $
+:REM $Id: build.bat,v 1.44 2006/04/16 16:21:06 mw Exp $
 :REM
 :REM ╔══════════ BUILD.BAT ═════════════════════════════════════════════════╗
 :REM ║                                                                      ║
@@ -293,7 +293,7 @@
 ECHO ┌────────────────────────────────────────────────────────────────────────┐
 ECHO │ Schritt 5: Einheitlichen Timestamp für compilierte Dateien setzen ...  │
 ECHO └────────────────────────────────────────────────────────────────────────┘
-TOUCH.EXE .\#\*.* /R=..\..\..\COMPDATE.PAS /G
+TOUCH.EXE .\#\*.* /R=..\..\..\COMPDATE.PAS /G /MD5
 
 :REM compdate.pas restaurieren
 CD ..
@@ -439,6 +439,9 @@
 
 {
   $Log: build.bat,v $
+  Revision 1.44  2006/04/16 16:21:06  mw
+  MW: - MD5-Summen in Binärarchiven
+
   Revision 1.43  2006/04/02 13:40:45  mw
   MW: - Helper wird nach Erstellen von COMPDATE erstellt.
 

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

Antwort per Email an