FreeXP

CVS daily diff

FreeXP CVS-Server cvs-list at freexp.de
Son Mai 30 00:00:21 CEST 2004


Index: freexp/touch.pas
===================================================================
RCS file: /server/cvs/freexp/touch.pas,v
retrieving revision 1.7
retrieving revision 1.10
diff -u -r1.7 -r1.10
--- a/freexp/touch.pas	23 Sep 2003 17:26:11 -0000	1.7
+++ b/freexp/touch.pas	29 May 2004 07:43:56 -0000	1.10
@@ -1,6 +1,6 @@
 { --------------------------------------------------------------- }
 { Dieser Quelltext ist urheberrechtlich geschuetzt.               }
-{ (c) 2003      Martin Wodrich, http://www.martinwodrich.de       }
+{ (c) 2003-2004      Martin Wodrich, http://www.martinwodrich.de  }
 {                               software at martinwodrich.de         }
 {                                                                 }
 { Dieser Quelltext darf FreeXP beigelegt werden und ist dort      }
@@ -14,7 +14,7 @@
 { finden Sie in der Datei TOUCH.TXT oder auf                      }
 { http://www.martinwodrich.de/Software/Touch/nutzung.htm          }
 { --------------------------------------------------------------- }
-{ $Id: touch.pas,v 1.7 2003/09/23 17:26:11 mw Exp $ }
+{ $Id: touch.pas,v 1.10 2004/05/29 07:43:56 mw Exp $ }
 program touch;
 {Erstmal einiges definieren}
 
@@ -47,7 +47,7 @@
    end;
 
 const anyfile=$21;
-      version='1.1 Beta 1';
+      version='1.1 Beta 2';
 
 var f:file;
     g:text;
@@ -64,7 +64,7 @@
 {$ELSE }
    dt          : DateTime;
    DirInfo     : SearchRec;
-   FName       : Pathstr;
+   FName,own   : Pathstr;
    Dir         : DirStr;
    Name        : NameStr;
    Ext         : ExtStr;
@@ -82,10 +82,29 @@
    dateSet,timeSet : boolean;
    findone,uc,nt : boolean;
 
+function ownfile:Pathstr;
+var ps : pathstr;
+    ds : string;
+    ns : string;
+    es : string;
+begin
+  FName:=paramstr(0);
+  {$IFDEF WINDOWS }  
+  StrPCopy(fnamep,fname);
+  FileExpand(Dir,fnamep);
+  StrCopy(Dir,fnamep);
+  fname:=StrPas(fnamep);
+  {$ELSE}
+  fname:=FExpand(fname);
+  {$ENDIF}
+  ownfile:=fname;  
+end;
+
 procedure logo;
 begin
   writeln (g,'Touch '+version+' (c) 2003 by Martin Wodrich');
   writeln (g,'');
+  own:=ownfile;
 end;
 
 procedure hilfe;
@@ -519,33 +538,35 @@
            end
            {$ENDIF}
            else fname:=Dir+fname;
-           write(g,fname);
-           {Refdatei nicht touchen}
-           if ref and testname(reffile,fname) then writeln(g,' Referenz')
-           else begin
-             if (sim=false) then begin
-                Assign(f,fname);
-                if (nt and uc) then GetFtime(f,ftime);
-                {$I-}
-                if uc then begin
-                   rename(f,'temp.$$$');
-                   if IOResult <> 0 then writeln(g,' Umbenennen der Datei fehlgeschlagen');
-                   for i:=1 to length(fname) do fname[i]:=upcase(fname[i]);
-                   rename(f,fname);
-                   if IOResult <> 0 then begin
-                     writeln(g,' Umbenennen der Datei kritisch fehlgeschlagen');
-                     halt(1);
-                   end;
-                end;
-                Reset(f,1);
-                {$I+}
-                if IOResult <> 0 then writeln(g,' Oeffnen der Datei fehlgeschlagen');
-                if not (nt and uc) then ftime:=Testtime(ftime,dateset,timeset);
-                SetFtime(f,Ftime);
-                if Doserror<>0 then writeln(g,'!') else writeln(g,'');
-                close(f);
-             end
-             else writeln(g,'');
+           if fname<>own then begin
+             write(g,fname);
+             {Refdatei nicht touchen}
+             if ref and testname(reffile,fname) then writeln(g,' Referenz')
+             else begin
+               if (sim=false) then begin                
+                  Assign(f,fname);
+                  if (nt and uc) then GetFtime(f,ftime);
+                  {$I-}
+                  if uc then begin
+                     rename(f,'temp.$$$');
+                     if IOResult <> 0 then writeln(g,' Umbenennen der Datei fehlgeschlagen');
+                     for i:=1 to length(fname) do fname[i]:=upcase(fname[i]);
+                     rename(f,fname);
+                     if IOResult <> 0 then begin
+                       writeln(g,' Umbenennen der Datei kritisch fehlgeschlagen');
+                       halt(1);
+                     end;
+                  end;
+                  Reset(f,1);
+                  {$I+}
+                  if IOResult <> 0 then writeln(g,' Oeffnen der Datei fehlgeschlagen');
+                  if not (nt and uc) then ftime:=Testtime(ftime,dateset,timeset);
+                  SetFtime(f,Ftime);
+                  if Doserror<>0 then writeln(g,'!') else writeln(g,'');
+                  close(f);
+               end
+               else writeln(g,'');             
+             end;
            end;
            {$IFNDEF BP}
            FindNext(DirInfo);
@@ -590,9 +611,16 @@
 end.
 {
   $Log: touch.pas,v $
+  Revision 1.10  2004/05/29 07:43:56  mw
+  MW: - Logkosmetik
+
+  Revision 1.9  2004/05/29 07:33:12  mw
+  MW: - Übernahme von Touch 1.1 Beta 2:
+        - Touch erkennt sich jetzt selbst und versucht daher nicht
+          mehr sich selbst zu touchen oder gar großzuschreiben.
+
   Revision 1.7  2003/09/23 17:26:11  mw
   MW: - Übernahme von Touch 1.1 Beta 1:
-        - Touch benutzt jetzt die Standardausgabe udn ist damit
+        - Touch benutzt jetzt die Standardausgabe und ist damit
           per Ausgabeumleitung verfolgbar.
-
 }



Mehr Informationen über die CVS-List Mailingliste