mirror of https://github.com/aria2/aria2
				
				
				
			2010-01-24 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Fixed compile error with i586-mingw32msvc-g++. Always Cut console readout by 80 characters in mingw32 build. Catch exception in DHTMessageReceiver::receiveMessage(). * src/AbstractDiskWriter.cc * src/ConsoleStatCalc.cc * src/DHTMessageReceiver.cc * src/File.cc * src/RequestGroupMan.cc * src/a2io.h * test/FileTest.ccpull/1/head
							parent
							
								
									46605f66c3
								
							
						
					
					
						commit
						b39ede01a7
					
				
							
								
								
									
										13
									
								
								ChangeLog
								
								
								
								
							
							
						
						
									
										13
									
								
								ChangeLog
								
								
								
								
							|  | @ -1,3 +1,16 @@ | |||
| 2010-01-24  Tatsuhiro Tsujikawa  <t-tujikawa@users.sourceforge.net> | ||||
| 
 | ||||
| 	Fixed compile error with i586-mingw32msvc-g++.  Always Cut console | ||||
| 	readout by 80 characters in mingw32 build.  Catch exception in | ||||
| 	DHTMessageReceiver::receiveMessage(). | ||||
| 	* src/AbstractDiskWriter.cc | ||||
| 	* src/ConsoleStatCalc.cc | ||||
| 	* src/DHTMessageReceiver.cc | ||||
| 	* src/File.cc | ||||
| 	* src/RequestGroupMan.cc | ||||
| 	* src/a2io.h | ||||
| 	* test/FileTest.cc | ||||
| 
 | ||||
| 2010-01-24  Tatsuhiro Tsujikawa  <t-tujikawa@users.sourceforge.net> | ||||
| 
 | ||||
| 	Fixed compile error with intel compiler | ||||
|  |  | |||
|  | @ -139,7 +139,7 @@ ssize_t AbstractDiskWriter::readDataInternal(unsigned char* data, size_t len) | |||
| 
 | ||||
| void AbstractDiskWriter::seek(off_t offset) | ||||
| { | ||||
|   if(lseek(fd, offset, SEEK_SET) == (off_t)-1) { | ||||
|   if(a2lseek(fd, offset, SEEK_SET) == (off_t)-1) { | ||||
|     throw DL_ABORT_EX | ||||
|       (StringFormat(EX_FILE_SEEK, _filename.c_str(), strerror(errno)).str()); | ||||
|   } | ||||
|  |  | |||
|  | @ -42,6 +42,7 @@ | |||
| #endif // HAVE_SYS_IOCTL_H
 | ||||
| #include <unistd.h> | ||||
| 
 | ||||
| #include <cstdio> | ||||
| #include <iomanip> | ||||
| #include <iostream> | ||||
| #include <algorithm> | ||||
|  | @ -218,25 +219,25 @@ ConsoleStatCalc::calculateStat(const DownloadEngine* e) | |||
|   } | ||||
|   _cp.reset(); | ||||
|   const SizeFormatter& sizeFormatter = *_sizeFormatter.get(); | ||||
| 
 | ||||
| #ifdef __MINGW32__ | ||||
|   bool isTTY = true; | ||||
|   // Windows terminal cannot handle at the end of line properly.
 | ||||
|   unsigned short int cols = 79; | ||||
| #else // !__MINGW32__
 | ||||
|   bool isTTY = isatty(STDOUT_FILENO) == 1; | ||||
|   unsigned short int cols = 80; | ||||
| #ifdef __MINGW32__ | ||||
|   // Windows terminal cannot handle at the end of line properly.
 | ||||
|   --cols; | ||||
| #endif // __MINGW32__
 | ||||
| #endif // !__MINGW32__
 | ||||
| 
 | ||||
|   if(isTTY) { | ||||
| #ifndef __MINGW32__ | ||||
| #ifdef HAVE_TERMIOS_H | ||||
|     struct winsize size; | ||||
|     if(ioctl(STDOUT_FILENO, TIOCGWINSZ, &size) == 0) { | ||||
|       cols = size.ws_col; | ||||
| #ifdef __MINGW32__ | ||||
|       if(cols > 0) { | ||||
|         // Windows terminal cannot handle at the end of line properly.
 | ||||
|         --cols; | ||||
|       } | ||||
| #endif // __MINGW32__
 | ||||
|     } | ||||
| #endif // HAVE_TERMIOS_H
 | ||||
| #endif // !__MINGW32__
 | ||||
|     std::cout << '\r' << std::setfill(' ') << std::setw(cols) << ' ' << '\r'; | ||||
|   } | ||||
|   std::ostringstream o; | ||||
|  |  | |||
|  | @ -66,13 +66,13 @@ SharedHandle<DHTMessage> DHTMessageReceiver::receiveMessage() | |||
|   std::string remoteAddr; | ||||
|   uint16_t remotePort; | ||||
|   unsigned char data[64*1024]; | ||||
|   ssize_t length = _connection->receiveMessage(data, sizeof(data), | ||||
|                                                remoteAddr, | ||||
|                                                remotePort); | ||||
|   if(length <= 0) { | ||||
|     return SharedHandle<DHTMessage>(); | ||||
|   } | ||||
|   try { | ||||
|     ssize_t length = _connection->receiveMessage(data, sizeof(data), | ||||
|                                                  remoteAddr, | ||||
|                                                  remotePort); | ||||
|     if(length <= 0) { | ||||
|       return SharedHandle<DHTMessage>(); | ||||
|     } | ||||
|     bool isReply = false; | ||||
|     const BDE dict = bencode::decode(data, length); | ||||
|     if(dict.isDict()) { | ||||
|  |  | |||
|  | @ -59,7 +59,7 @@ File::File(const std::string& name):name(name) {} | |||
| File::~File() {} | ||||
| 
 | ||||
| int File::fillStat(a2_struct_stat& fstat) { | ||||
|   return stat(name.c_str(), &fstat); | ||||
|   return a2stat(name.c_str(), &fstat); | ||||
| } | ||||
| 
 | ||||
| bool File::exists() { | ||||
|  |  | |||
|  | @ -577,8 +577,13 @@ void RequestGroupMan::showDownloadResults(std::ostream& o) const | |||
|   o << "\n" | ||||
|     <<_("Download Results:") << "\n" | ||||
|     << "gid|stat|avg speed  |path/URI" << "\n" | ||||
|     << "===+====+===========+===========================================================" << "\n"; | ||||
| 
 | ||||
|     << "===+====+===========+"; | ||||
| #ifdef __MINGW32__ | ||||
|   int pathRowSize = 58; | ||||
| #else // !__MINGW32__
 | ||||
|   int pathRowSize = 59; | ||||
| #endif // !__MINGW32__
 | ||||
|   o << std::setfill('=') << std::setw(pathRowSize) << '=' << "\n"; | ||||
|   int ok = 0; | ||||
|   int err = 0; | ||||
|   int inpr = 0; | ||||
|  |  | |||
							
								
								
									
										23
									
								
								src/a2io.h
								
								
								
								
							
							
						
						
									
										23
									
								
								src/a2io.h
								
								
								
								
							|  | @ -113,22 +113,27 @@ | |||
| #endif // HAVE_WINSOCK2_H
 | ||||
| 
 | ||||
| #ifdef __MINGW32__ | ||||
| # define lseek(fd, offset, origin) _lseeki64(fd, offset, origin) | ||||
| # define fseek(fd, offset, origin) _fseeki64(fd, offset, origin) | ||||
| # define fstat(fd, buf) _fstati64(fd, buf) | ||||
| # define ftell(fd) _ftelli64(fd) | ||||
| # define wstat(path, buf) _wstati64(path, buf) | ||||
| # define a2lseek(fd, offset, origin) _lseeki64(fd, offset, origin) | ||||
| # define a2fseek(fd, offset, origin) _fseeki64(fd, offset, origin) | ||||
| # define a2fstat(fd, buf) _fstati64(fd, buf) | ||||
| # define a2ftell(fd) _ftelli64(fd) | ||||
| # define a2wstat(path, buf) _wstati64(path, buf) | ||||
| # ifdef stat | ||||
| #  undef stat | ||||
| # endif // stat
 | ||||
| # define a2_struct_stat struct _stati64 | ||||
| # define stat(path, buf)  _stati64(path, buf) | ||||
| # define tell(handle) _telli64(handle) | ||||
| # define a2stat(path, buf)  _stati64(path, buf) | ||||
| # define a2tell(handle) _telli64(handle) | ||||
| # define a2mkdir(path, openMode) mkdir(path) | ||||
| #else | ||||
| #else // !__MINGW32__
 | ||||
| # define a2lseek(fd, offset, origin) lseek(fd, offset, origin) | ||||
| # define a2fseek(fp, offset, origin) fseek(fp, offset, origin) | ||||
| # define a2fstat(fp, buf) fstat(fp, buf) | ||||
| # define a2ftell(fp) ftell(fp) | ||||
| # define a2_struct_stat struct stat | ||||
| # define a2stat(path, buf) stat(path, buf) | ||||
| # define a2mkdir(path, openMode) mkdir(path, openMode) | ||||
| #endif // __MINGW32__
 | ||||
| #endif // !__MINGW32__
 | ||||
| 
 | ||||
| #if defined HAVE_POSIX_MEMALIGN && defined O_DIRECT | ||||
| # define ENABLE_DIRECT_IO 1 | ||||
|  |  | |||
|  | @ -222,7 +222,7 @@ void FileTest::testUtime() | |||
|   CPPUNIT_ASSERT(f.utime(Time(atime), Time(mtime))); | ||||
|    | ||||
|   a2_struct_stat buf; | ||||
|   CPPUNIT_ASSERT(0 == stat(f.getPath().c_str(), &buf)); | ||||
|   CPPUNIT_ASSERT(0 == a2stat(f.getPath().c_str(), &buf)); | ||||
|   CPPUNIT_ASSERT_EQUAL((time_t)atime, buf.st_atime); | ||||
|   CPPUNIT_ASSERT_EQUAL((time_t)mtime, f.getModifiedTime().getTime()); | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Tatsuhiro Tsujikawa
						Tatsuhiro Tsujikawa