gzip --no-name: avoid spurious warning
[debian/gzip] / zip.c
diff --git a/zip.c b/zip.c
index 793cf4257f33a4176d64caad846591de70a3a225..a3b4559fdd5febe1d0825f9f26e28b8cdbc2ab7e 100644 (file)
--- a/zip.c
+++ b/zip.c
@@ -54,9 +54,17 @@ int zip(in, out)
         flags |= ORIG_NAME;
     }
     put_byte(flags);         /* general flags */
-    stamp = (0 <= time_stamp.tv_sec && time_stamp.tv_sec <= 0xffffffff
-             ? (ulg) time_stamp.tv_sec
-             : (ulg) 0);
+    if (time_stamp.tv_nsec < 0)
+      stamp = 0;
+    else if (0 < time_stamp.tv_sec && time_stamp.tv_sec <= 0xffffffff)
+      stamp = time_stamp.tv_sec;
+    else
+      {
+        /* It's intended that time stamp 0 generates this warning,
+           since gzip format reserves 0 for something else.  */
+        warning ("file time stamp out of range for gzip format");
+        stamp = 0;
+      }
     put_long (stamp);
 
     /* Write deflated file to zip file */