Bläddra i källkod

mingw32: Fix bug that aria2 does not read piped stdin

Tatsuhiro Tsujikawa 11 år sedan
förälder
incheckning
bd0a3960df
2 ändrade filer med 6 tillägg och 3 borttagningar
  1. 3 1
      src/BufferedFile.cc
  2. 3 2
      src/GZipFile.cc

+ 3 - 1
src/BufferedFile.cc

@@ -46,7 +46,9 @@ namespace aria2 {
 BufferedFile::BufferedFile(const char* filename, const char* mode)
   :
 #ifdef __MINGW32__
-  fp_(a2fopen(utf8ToWChar(filename).c_str(), utf8ToWChar(mode).c_str())),
+  fp_(strcmp(DEV_STDIN, filename) == 0 ?
+      stdin : a2fopen(utf8ToWChar(filename).c_str(),
+                      utf8ToWChar(mode).c_str())),
 #else // !__MINGW32__
   fp_(a2fopen(filename, mode)),
 #endif // !__MINGW32__

+ 3 - 2
src/GZipFile.cc

@@ -49,9 +49,10 @@ GZipFile::GZipFile(const char* filename, const char* mode)
 {
   FILE* fp =
 #ifdef __MINGW32__
-  a2fopen(utf8ToWChar(filename).c_str(), utf8ToWChar(mode).c_str());
+    strcmp(DEV_STDIN, filename) == 0 ?
+    stdin : a2fopen(utf8ToWChar(filename).c_str(), utf8ToWChar(mode).c_str());
 #else // !__MINGW32__
-  a2fopen(filename, mode);
+    a2fopen(filename, mode);
 #endif // !__MINGW32__
 
   if (fp) {