Obey virt-top --end-time down to near millisecond accuracy (RHBZ#637964).
[virt-top.git] / virt-top / virt_top_calendar2.ml
index dd00c79..cb0ebec 100755 (executable)
@@ -1,5 +1,5 @@
 (* 'top'-like tool for libvirt domains.
-   (C) Copyright 2007 Richard W.M. Jones, Red Hat Inc.
+   (C) Copyright 2007-2009 Richard W.M. Jones, Red Hat Inc.
    http://libvirt.org/
 
    This program is free software; you can redistribute it and/or modify
@@ -22,7 +22,9 @@
 open CalendarLib
 
 open Printf
-open ExtString ;;
+open ExtString
+
+open Virt_top_gettext.Gettext ;;
 
 Virt_top.parse_date_time :=
 fun time ->
@@ -49,5 +51,8 @@ fun time ->
 
   eprintf "end time: %s\n" (Printer.CalendarPrinter.to_string cal);
 
-  (* Convert to a time_t, adjusting for the current timezone. *)
-  fst (Unix.mktime (Calendar.to_unixtm cal))
+  (* Convert to a time_t.  Note that we compare this against
+   * Unix.gettimeofday in the main module, so this must be returned as
+   * plain seconds from 1970 with no timezone adjustment.  (RHBZ#637964)
+   *)
+  Calendar.to_unixfloat cal