diff -rup ddrescue-1.12-rc1.orig/ddrescue.cc ddrescue-1.12-rc1/ddrescue.cc --- ddrescue-1.12-rc1.orig/ddrescue.cc 2010-01-03 01:08:17.000000000 +0100 +++ ddrescue-1.12-rc1/ddrescue.cc 2010-03-02 21:09:58.634125000 +0100 @@ -320,8 +320,12 @@ void set_signals() throw() { interrupted = false; signal( SIGINT, sighandler ); +#ifdef SIGHUP signal( SIGHUP, sighandler ); +#endif signal( SIGTERM, sighandler ); +#ifdef SIGUSR1 signal( SIGUSR1, SIG_IGN ); signal( SIGUSR2, SIG_IGN ); +#endif } diff -rup ddrescue-1.12-rc1.orig/ddrescue.h ddrescue-1.12-rc1/ddrescue.h --- ddrescue-1.12-rc1.orig/ddrescue.h 2010-01-03 01:08:17.000000000 +0100 +++ ddrescue-1.12-rc1/ddrescue.h 2010-03-02 22:42:38.212250000 +0100 @@ -181,3 +181,10 @@ void internal_error( const char * msg ) void show_error( const char * msg, const int errcode = 0, const bool help = false ) throw(); void write_logfile_header( FILE * f ) throw(); + +#ifdef _WIN32 +#include +#define lseek lseek64 +inline int fsync(int) { return 0; } +#endif + diff -rup ddrescue-1.12-rc1.orig/logbook.cc ddrescue-1.12-rc1/logbook.cc --- ddrescue-1.12-rc1.orig/logbook.cc 2010-01-03 01:08:17.000000000 +0100 +++ ddrescue-1.12-rc1/logbook.cc 2010-03-02 21:12:02.056000000 +0100 @@ -217,7 +217,11 @@ Logbook::Logbook( const long long ipos, final_msg_( 0 ), final_errno_( 0 ), index_( 0 ), ul_t1( std::time( 0 ) ) { +#ifdef _SC_PAGESIZE int alignment = sysconf( _SC_PAGESIZE ); +#else + int alignment = 4096; +#endif if( alignment < hardbs_ || alignment % hardbs_ ) alignment = hardbs_; if( alignment < 2 || alignment > 65536 ) alignment = 0; iobuf_ = iobuf_base = new char[ softbs_ + alignment ];