mirror of https://github.com/aria2/aria2
				
				
				
			2008-03-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Now download line is printed nicely with no garbage at the end of line. I use ioctl to get the columns of terminal. If stdout is redirected to another device, instead of carriage return, end of line '\n' character is used. This is feature request#1909659 * src/ConsoleStatCalc.cc (calculateStat)pull/1/head
							parent
							
								
									102ce611d1
								
							
						
					
					
						commit
						34df2cc416
					
				| 
						 | 
				
			
			@ -1,3 +1,11 @@
 | 
			
		|||
2008-03-12  Tatsuhiro Tsujikawa  <tujikawa at rednoah dot com>
 | 
			
		||||
 | 
			
		||||
	Now download line is printed nicely with no garbage at the end of
 | 
			
		||||
	line. I use ioctl to get the columns of terminal.
 | 
			
		||||
	If stdout is redirected to another device, instead of carriage return,
 | 
			
		||||
	end of line '\n' character is used. This is feature request#1909659
 | 
			
		||||
	* src/ConsoleStatCalc.cc (calculateStat)
 | 
			
		||||
 | 
			
		||||
2008-03-11  Tatsuhiro Tsujikawa  <tujikawa at rednoah dot com>
 | 
			
		||||
 | 
			
		||||
	Included a2time.h
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -43,6 +43,9 @@
 | 
			
		|||
#ifdef ENABLE_BITTORRENT
 | 
			
		||||
# include "BtContext.h"
 | 
			
		||||
#endif // ENABLE_BITTORRENT
 | 
			
		||||
#include <termios.h>
 | 
			
		||||
#include <sys/ioctl.h>
 | 
			
		||||
#include <unistd.h>
 | 
			
		||||
#include <iomanip>
 | 
			
		||||
#include <iostream>
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -57,9 +60,14 @@ ConsoleStatCalc::calculateStat(const RequestGroupManHandle& requestGroupMan,
 | 
			
		|||
    return;
 | 
			
		||||
  }
 | 
			
		||||
  _cp.reset();
 | 
			
		||||
 | 
			
		||||
  std::cout << "\r                                                                             ";
 | 
			
		||||
  std::cout << "\r";
 | 
			
		||||
  bool isTTY = isatty(STDOUT_FILENO) == 1;
 | 
			
		||||
  if(isTTY) {
 | 
			
		||||
    struct winsize size;
 | 
			
		||||
    if(ioctl(STDOUT_FILENO, TIOCGWINSZ, &size) == -1) {
 | 
			
		||||
      size.ws_col = 80;
 | 
			
		||||
    }
 | 
			
		||||
    std::cout << '\r' << std::setw(size.ws_col) << ' ' << '\r';
 | 
			
		||||
  }
 | 
			
		||||
  if(requestGroupMan->countRequestGroup() > 0) {
 | 
			
		||||
    RequestGroupHandle firstRequestGroup = requestGroupMan->getRequestGroup(0);
 | 
			
		||||
    TransferStat stat = firstRequestGroup->calculateStat();
 | 
			
		||||
| 
						 | 
				
			
			@ -177,7 +185,11 @@ ConsoleStatCalc::calculateStat(const RequestGroupManHandle& requestGroupMan,
 | 
			
		|||
    }
 | 
			
		||||
  }
 | 
			
		||||
#endif // ENABLE_MESSAGE_DIGEST
 | 
			
		||||
  std::cout << std::flush;
 | 
			
		||||
  if(isTTY) {
 | 
			
		||||
    std::cout << std::flush;
 | 
			
		||||
  } else {
 | 
			
		||||
    std::cout << std::endl;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
} // namespace aria2
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue