Fix long-int overflow when calculating number of microseconds elapsed
[idzebra-moved-to-github.git] / index / main.c
index 11dbfb3..f5073a1 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: main.c,v 1.105 2003-06-30 19:37:12 adam Exp $
+/* $Id: main.c,v 1.108 2003-11-24 12:58:00 mike Exp $
    Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003
    Index Data Aps
 
@@ -35,6 +35,14 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
 #include <sys/times.h>
 #endif
 
+#if HAVE_TCL_H
+#include <tcl.h>
+#endif
+
+#if HAVE_EXPAT_H
+#include <expat.h>
+#endif
+
 #include <data1.h>
 #include "zebraapi.h"
 
@@ -54,7 +62,7 @@ int main (int argc, char **argv)
 #if HAVE_SYS_TIMES_H
     struct tms tms1, tms2;
     struct timeval start_time, end_time;
-    long usec;
+    double usec;
 #endif
 #ifndef WIN32
     char nbuf[100];
@@ -246,7 +254,7 @@ int main (int argc, char **argv)
         else if (ret == 'V')
         {
             printf("Zebra %s %s\n", ZEBRAVER, ZEBRADATE);
-           printf(" (C) 1994-2002, Index Data ApS\n");
+           printf(" (C) 1994-2003, Index Data ApS\n");
 #ifdef WIN32
 #ifdef _DEBUG
             printf(" WIN32 Debug\n");
@@ -255,8 +263,18 @@ int main (int argc, char **argv)
 #endif
 #endif
 #if HAVE_BZLIB_H
-            printf("libbzip2\n"
-                  " (C) 1996-1999 Julian R Seward.  All rights reserved.\n");
+            printf("Using: libbzip2, (C) 1996-1999 Julian R Seward.  All rights reserved.\n");
+#endif
+#if HAVE_TCL_H
+           printf("Using: Tcl %s\n", TCL_VERSION);
+#endif
+#if HAVE_EXPAT_H
+           if (1)
+           {
+               XML_Expat_Version v = XML_ExpatVersionInfo();
+               printf ("Using: Expat %d.%d.%d\n",
+                       v.major, v.minor, v.micro);
+           }
 #endif
         }
         else if (ret == 'v')
@@ -294,11 +312,11 @@ int main (int argc, char **argv)
     if (trans_started)
     {
         gettimeofday(&end_time, 0);
-        usec = (end_time.tv_sec - start_time.tv_sec) * 1000000L +
+        usec = (end_time.tv_sec - start_time.tv_sec) * 1000000.0 +
            end_time.tv_usec - start_time.tv_usec;
         times(&tms2);
         yaz_log (LOG_LOG, "zebraidx times: %5.2f %5.2f %5.2f",
-               (double) usec / 1000000.0,
+               usec / 1000000,
                (double) (tms2.tms_utime - tms1.tms_utime)/100,
                (double) (tms2.tms_stime - tms1.tms_stime)/100);
     }