--- toast	2003/09/04 00:26:29	1.195
+++ toast	2003/09/04 02:51:19	1.196
@@ -1067,15 +1067,21 @@
 
 sub extractstdin($);
 
+sub autoextractstdin()
+{
+  my($buf) = readstdin(magicbufsize);
+  forkstdin ? extractstdin(magicstring($buf)) : dumpstdin($buf);
+}
+
 sub rpmextractstdin()
 {
-  extractstdin(".gz") if forkstdin;
+  autoextractstdin if forkstdin;
 
   local($_) = readstdin(96);
   /^\xed\xab\xee\xdb[\x03\x04]/ || error("not rpm v3 or v4");
 
   my($pad) = 0;
-  while(magicstring($_ = readstdin(16 + $pad)) ne ".gz")
+  while(magicstring($_ = readstdin(16 + $pad)) !~ /^\..z/i)
   {
     my($magic, $zero, $sections, $bytes) = unpack("x$pad N4", $_);
     $magic == 0x8eade801 || error(sprintf("bad rpm header: %08x", $magic));
@@ -1084,12 +1090,6 @@
   }
 
   dumpstdin($_);
-}
-
-sub autoextractstdin()
-{
-  my($buf) = readstdin(magicbufsize);
-  forkstdin ? extractstdin(magicstring($buf)) : dumpstdin($buf);
 }
 
 sub extractstdin($)