diff options
Diffstat (limited to 'archivers/libcabinet/files/patch-cfcreate.cpp')
-rw-r--r-- | archivers/libcabinet/files/patch-cfcreate.cpp | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/archivers/libcabinet/files/patch-cfcreate.cpp b/archivers/libcabinet/files/patch-cfcreate.cpp new file mode 100644 index 000000000000..2e7bc80ea315 --- /dev/null +++ b/archivers/libcabinet/files/patch-cfcreate.cpp @@ -0,0 +1,38 @@ +--- cfcreate.cpp.orig Sun Oct 24 13:29:53 1999 ++++ cfcreate.cpp Tue Aug 19 21:16:05 2003 +@@ -29,6 +29,8 @@ + #include <unistd.h> + #endif + ++using std::ios; ++ + ///////////////////////////////////////*************************************** + + int cfc_fileinfo::write_entry(ostream& out) +@@ -129,7 +131,7 @@ + } + } + +- if(fstat(in.rdbuf()->fd(), &statbuf) != 0) return FSTAT_FAILURE; ++ if(stat(fname, &statbuf) != 0) return FSTAT_FAILURE; + #ifndef unix + if(getftime(in.rdbuf()->fd(), &datetime) != 0) return GETTIME_FAILURE; + #endif +@@ -194,7 +196,7 @@ + unprocessed_data = NULL; // Reset buffer holder + unprocessed_data_len = 0u; + +- if(in.read(buf + bytesread, len - bytesread).bad()) ++ if(in.read((char*)buf + bytesread, len - bytesread).bad()) + { + delete[] buf; + buf = NULL; +@@ -272,7 +274,7 @@ + return WRITE_ERROR; + } + +- tempfile->write(compdata, blockinfo.compressed_len); ++ tempfile->write((char*)compdata, blockinfo.compressed_len); + processed_bytes += sizeof(blockinfo) + blockinfo.compressed_len; + if(compdata != data) delete[] compdata; // If buffer was allocated, free it + data_blocks++; // Incriment block counter |