summaryrefslogtreecommitdiff
path: root/src/WinConsoleFile.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2011-08-10 00:38:48 +0900
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2011-08-10 00:38:48 +0900
commit97f34ab6682d83d9a0265a4291b44eaf45703493 (patch)
treed91197441426fc303e4803c859c6b784c848d5bc /src/WinConsoleFile.cc
parenta10cda2f17916895d8c6bc3cd69a360947017771 (diff)
Added global::cerr. windows.h now included from common.h
We replaced most of std::cerr with global::cerr. windows.h is now included from common.h. Before including it, we define WINVER. We renamed some variable name because some macros in windows.h collide with them.
Diffstat (limited to 'src/WinConsoleFile.cc')
-rw-r--r--src/WinConsoleFile.cc25
1 files changed, 11 insertions, 14 deletions
diff --git a/src/WinConsoleFile.cc b/src/WinConsoleFile.cc
index 81755fe1..fecd55fd 100644
--- a/src/WinConsoleFile.cc
+++ b/src/WinConsoleFile.cc
@@ -39,37 +39,34 @@
#include <cstdarg>
#include <string>
-#ifdef __MINGW32__
-# define WIN32_LEAN_AND_MEAN
-# include <windows.h>
-#endif // __MINGW32__
-
#include "a2io.h"
#include "util.h"
namespace aria2 {
-WinConsoleFile::WinConsoleFile() {}
+WinConsoleFile::WinConsoleFile(DWORD stdHandle)
+ : stdHandle_(stdHandle)
+{}
WinConsoleFile::~WinConsoleFile() {}
namespace {
-bool console()
+bool console(DWORD stdHandle)
{
DWORD mode;
- return GetConsoleMode(GetStdHandle(STD_OUTPUT_HANDLE), &mode);
+ return GetConsoleMode(GetStdHandle(stdHandle), &mode);
}
} // namespace
size_t WinConsoleFile::write(const char* str)
{
DWORD written;
- if(console()) {
+ if(console(stdHandle_)) {
std::wstring msg = utf8ToWChar(str);
- WriteConsoleW(GetStdHandle(STD_OUTPUT_HANDLE),
+ WriteConsoleW(GetStdHandle(stdHandle_),
msg.c_str(), msg.size(), &written, 0);
} else {
- WriteFile(GetStdHandle(STD_OUTPUT_HANDLE),
+ WriteFile(GetStdHandle(stdHandle_),
str, strlen(str), &written, 0);
}
return written;
@@ -86,12 +83,12 @@ int WinConsoleFile::printf(const char* format, ...)
return 0;
}
DWORD written;
- if(console()) {
+ if(console(stdHandle_)) {
std::wstring msg = utf8ToWChar(buf);
- WriteConsoleW(GetStdHandle(STD_OUTPUT_HANDLE),
+ WriteConsoleW(GetStdHandle(stdHandle_),
msg.c_str(), msg.size(), &written, 0);
} else {
- WriteFile(GetStdHandle(STD_OUTPUT_HANDLE),
+ WriteFile(GetStdHandle(stdHandle_),
buf, r, &written, 0);
}
return written;