new error handling system
[rsync/rsync.git] / util.c
diff --git a/util.c b/util.c
index b961696..48935cc 100644 (file)
--- a/util.c
+++ b/util.c
@@ -1,6 +1,7 @@
-/* 
-   Copyright (C) Andrew Tridgell 1996
-   Copyright (C) Paul Mackerras 1996
+/*  -*- c-file-style: "linux" -*-
+    
+    Copyright (C) 1996-2000 by Andrew Tridgell 
+    Copyright (C) Paul Mackerras 1996
    
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -929,7 +930,52 @@ char *timestring(time_t t)
        return(TimeBuf);
 }
 
-#ifdef __INSURE__
+
+/*******************************************************************
+sleep for a specified number of milliseconds
+********************************************************************/
+void msleep(int t)
+{
+       int tdiff=0;
+       struct timeval tval,t1,t2;  
+
+       gettimeofday(&t1, NULL);
+       gettimeofday(&t2, NULL);
+  
+       while (tdiff < t) {
+               tval.tv_sec = (t-tdiff)/1000;
+               tval.tv_usec = 1000*((t-tdiff)%1000);
+               errno = 0;
+               select(0,NULL,NULL, NULL, &tval);
+
+               gettimeofday(&t2, NULL);
+               tdiff = (t2.tv_sec - t1.tv_sec)*1000 + 
+                       (t2.tv_usec - t1.tv_usec)/1000;
+       }
+}
+
+
+/*******************************************************************
+ Determine if two file modification times are equivalent (either exact 
+ or in the modification timestamp window established by --modify-window) 
+ Returns 0 if the times should be treated as the same, 1 if the 
+ first is later and -1 if the 2nd is later
+ *******************************************************************/
+int cmp_modtime(time_t file1, time_t file2)
+{
+       extern int modify_window;
+
+       if (file2 > file1) {
+               if (file2 - file1 <= modify_window) return 0;
+               return -1;
+       }
+       if (file1 - file2 <= modify_window) return 0;
+       return 1;
+}
+
+
+#ifdef __INSURE__XX
 #include <dlfcn.h>
 
 /*******************************************************************