From 48d2065e4b74e0796dad3f0cbd80885e7304cf85 Mon Sep 17 00:00:00 2001
From: Aaron <aaronquinlan@gmail.com>
Date: Thu, 1 Sep 2011 10:49:23 -0400
Subject: [PATCH] Proper Gzip check

---
 src/utils/bedFile/bedFile.cpp           | 2 +-
 src/utils/bedFilePE/bedFilePE.cpp       | 5 +----
 src/utils/bedGraphFile/bedGraphFile.cpp | 4 ----
 3 files changed, 2 insertions(+), 9 deletions(-)

diff --git a/src/utils/bedFile/bedFile.cpp b/src/utils/bedFile/bedFile.cpp
index 2d6104d9..c43969c3 100644
--- a/src/utils/bedFile/bedFile.cpp
+++ b/src/utils/bedFile/bedFile.cpp
@@ -135,7 +135,7 @@ void BedFile::Open(void) {
     else {
         _bedStream = new ifstream(bedFile.c_str(), ios::in);
         
-        if(bedFile.substr(bedFile.find_last_of(".") + 1) == "gz") {
+        if( isGzipFile(_bedStream) ) {
             delete _bedStream;
             _bedStream = new igzstream(bedFile.c_str(), ios::in);
         }
diff --git a/src/utils/bedFilePE/bedFilePE.cpp b/src/utils/bedFilePE/bedFilePE.cpp
index 08f8a456..19ab2b1a 100644
--- a/src/utils/bedFilePE/bedFilePE.cpp
+++ b/src/utils/bedFilePE/bedFilePE.cpp
@@ -35,10 +35,6 @@ void BedFilePE::Open(void) {
             delete _bedStream;
             _bedStream = new igzstream(bedFile.c_str(), ios::in);
         }
-        
-        // bytes were consumed.  rewind.
-        _bedStream->seekg(0);
-        
         // can we open the file?
         if ( !(_bedStream->good()) ) {
             cerr << "Error: The requested bed file (" << bedFile << ") could not be opened. Exiting!" << endl;
@@ -48,6 +44,7 @@ void BedFilePE::Open(void) {
 }
 
 
+
 // Close the BEDPE file
 void BedFilePE::Close(void) {
     if (bedFile != "stdin") delete _bedStream;
diff --git a/src/utils/bedGraphFile/bedGraphFile.cpp b/src/utils/bedGraphFile/bedGraphFile.cpp
index d9e618f7..f3df5402 100644
--- a/src/utils/bedGraphFile/bedGraphFile.cpp
+++ b/src/utils/bedGraphFile/bedGraphFile.cpp
@@ -37,10 +37,6 @@ void BedGraphFile::Open() {
             delete _bedGraphStream;
             _bedGraphStream = new igzstream(bedGraphFile.c_str(), ios::in);
         }
-        
-        // bytes were consumed.  rewind.
-        _bedGraphStream->seekg(0);
-        
         // can we open the file?
         if ( !(_bedGraphStream->good()) ) {
             cerr << "Error: The requested bed file (" << bedGraphFile << ") could not be opened. Exiting!" << endl;
-- 
GitLab