diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2011-08-09 23:33:55 +0900 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2011-08-09 23:33:55 +0900 |
| commit | a10cda2f17916895d8c6bc3cd69a360947017771 (patch) | |
| tree | 0740833f77a3e239ea58e870a9dcb9086d43e516 /src/main.cc | |
| parent | 02307cee0a395d8405d0e160664d4a37c79fe16c (diff) | |
Use global::cout to output string to stdout.
In MinGW32 build, global::cout is WinConsoleFile. When outputing to
console, it uses WriteConsoleW, so Unicode characters are written.
Fixed memory leak in WChar<->MultiByte conversion functions. The
portion of code which uses std::cout is rewritten to use global::cout.
Diffstat (limited to 'src/main.cc')
| -rw-r--r-- | src/main.cc | 25 |
1 files changed, 12 insertions, 13 deletions
diff --git a/src/main.cc b/src/main.cc index 03f464f5..07f2ed60 100644 --- a/src/main.cc +++ b/src/main.cc @@ -38,10 +38,9 @@ #include <unistd.h> #include <getopt.h> -#include <fstream> -#include <iostream> #include <numeric> #include <vector> +#include <iostream> #include "SharedHandle.h" #include "LogFactory.h" @@ -69,6 +68,8 @@ #include "SocketCore.h" #include "DownloadContext.h" #include "fmt.h" +#include "NullOutputFile.h" +#include "console.h" #ifdef ENABLE_BITTORRENT # include "bittorrent_helper.h" #endif // ENABLE_BITTORRENT @@ -85,9 +86,6 @@ extern int optind, opterr, optopt; namespace aria2 { -// output stream to /dev/null -std::ofstream nullout(DEV_NULL); - SharedHandle<StatCalc> getStatCalc(const SharedHandle<Option>& op) { SharedHandle<StatCalc> statCalc; @@ -104,12 +102,12 @@ SharedHandle<StatCalc> getStatCalc(const SharedHandle<Option>& op) return statCalc; } -std::ostream& getSummaryOut(const SharedHandle<Option>& op) +SharedHandle<OutputFile> getSummaryOut(const SharedHandle<Option>& op) { if(op->getAsBool(PREF_QUIET)) { - return nullout; + return SharedHandle<OutputFile>(new NullOutputFile()); } else { - return std::cout; + return global::cout; } } @@ -120,7 +118,7 @@ void showTorrentFile(const std::string& uri) SharedHandle<Option> op(new Option()); SharedHandle<DownloadContext> dctx(new DownloadContext()); bittorrent::load(uri, dctx, op); - bittorrent::print(std::cout, dctx); + bittorrent::print(*global::cout, dctx); } } // namespace #endif // ENABLE_BITTORRENT @@ -135,8 +133,9 @@ void showMetalinkFile op->get(PREF_METALINK_BASE_URI)); std::vector<SharedHandle<FileEntry> > fileEntries; MetalinkEntry::toFileEntry(fileEntries, metalinkEntries); - util::toStream(fileEntries.begin(), fileEntries.end(), std::cout); - std::cout << std::endl; + util::toStream(fileEntries.begin(), fileEntries.end(), *global::cout); + global::cout->write("\n"); + global::cout->flush(); } } // namespace #endif // ENABLE_METALINK @@ -168,7 +167,7 @@ void showFiles printf("\n\n"); } } catch(RecoverableException& e) { - std::cout << e.stackTrace() << std::endl; + global::cout->printf("%s\n", e.stackTrace().c_str()); } } } @@ -269,7 +268,7 @@ error_code::Value main(int argc, char* argv[]) op->remove(PREF_SELECT_FILE); op->remove(PREF_PAUSE); if(!op->getAsBool(PREF_ENABLE_RPC) && requestGroups.empty()) { - std::cout << MSG_NO_FILES_TO_DOWNLOAD << std::endl; + global::cout->printf("%s\n", MSG_NO_FILES_TO_DOWNLOAD); } else { exitStatus = MultiUrlRequestInfo(requestGroups, op, getStatCalc(op), getSummaryOut(op)).execute(); |
