// Marth Lab, Department of Biology, Boston College\r
// All rights reserved.\r
// ---------------------------------------------------------------------------\r
-// Last modified: 9 July 2010 (DB)\r
+// Last modified: 19 July 2010 (DB)\r
// ---------------------------------------------------------------------------\r
// BGZF routines were adapted from the bgzf.c code developed at the Broad\r
// Institute.\r
// stdin/stdout option contributed by Aaron Quinlan (2010-Jan-03)\r
if ( (filename != "stdin") && (filename != "stdout") ) {\r
// read/write BGZF data to/from a file\r
- Stream = fopen64(filename.c_str(), mode);\r
+// Stream = fopen64(filename.c_str(), mode);\r
+ Stream = fopen(filename.c_str(), mode);\r
}\r
else if ( (filename == "stdin") && (strcmp(mode, "rb") == 0 ) ) { \r
// read BGZF data from stdin\r
- Stream = freopen64(NULL, mode, stdin);\r
+// Stream = freopen64(NULL, mode, stdin);\r
+ Stream = freopen(NULL, mode, stdin);\r
}\r
else if ( (filename == "stdout") && (strcmp(mode, "wb") == 0) ) { \r
// write BGZF data to stdout\r
- Stream = freopen64(NULL, mode, stdout);\r
+// Stream = freopen64(NULL, mode, stdout);\r
+ Stream = freopen(NULL, mode, stdout);\r
}\r
\r
if(!Stream) {\r
}\r
\r
if ( BlockOffset == BlockLength ) {\r
- BlockAddress = ftello(Stream);\r
+ BlockAddress = ftell64(Stream);\r
BlockOffset = 0;\r
BlockLength = 0;\r
}\r
bool BgzfData::ReadBlock(void) {\r
\r
char header[BLOCK_HEADER_LENGTH];\r
- int64_t blockAddress = ftello(Stream);\r
+ int64_t blockAddress = ftell64(Stream);\r
\r
int count = fread(header, 1, sizeof(header), Stream);\r
if (count == 0) {\r
int blockOffset = (position & 0xFFFF);\r
int64_t blockAddress = (position >> 16) & 0xFFFFFFFFFFFFLL;\r
\r
- if (fseeko(Stream, blockAddress, SEEK_SET) != 0) {\r
+ if (fseek64(Stream, blockAddress, SEEK_SET) != 0) {\r
printf("BGZF ERROR: unable to seek in file\n");\r
return false;\r
}\r
// Marth Lab, Department of Biology, Boston College\r
// All rights reserved.\r
// ---------------------------------------------------------------------------\r
-// Last modified: 9 July 2010 (DB)\r
+// Last modified: 19 July 2010 (DB)\r
// ---------------------------------------------------------------------------\r
// BGZF routines were adapted from the bgzf.c code developed at the Broad\r
// Institute.\r
// zlib includes\r
#include "zlib.h"\r
\r
+// Platform-specific large-file support\r
+#ifndef BAMTOOLS_LFS\r
+#define BAMTOOLS_LFS\r
+ #ifdef WIN32\r
+ #define ftell64(a) _ftelli64(a)\r
+ #define fseek64(a,b,c) _fseeki64(a,b,c)\r
+ #else\r
+ #define ftell64(a) ftello(a)\r
+ #define fseek64(a,b,c) fseeko(a,b,c) \r
+ #endif\r
+#endif // BAMTOOLS_LFS\r
+\r
// Platform-specific type definitions\r
#ifndef BAMTOOLS_TYPES\r
#define BAMTOOLS_TYPES\r