Author: labath
Date: Thu Oct 10 05:40:27 2019
New Revision: 374331

URL: http://llvm.org/viewvc/llvm-project?rev=374331&view=rev
Log:
File: Handle more cases in GetOptionsFromMode

The "b" (binary) flag is meaningless most of the time, but the relevant
standars allow it. The standards permit one to spell it both as "r+b"
and "rb+", so handle both cases.

This fixes TestFileHandle.test_binary_inout with python2.

Modified:
    lldb/trunk/source/Host/common/File.cpp

Modified: lldb/trunk/source/Host/common/File.cpp
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Host/common/File.cpp?rev=374331&r1=374330&r2=374331&view=diff
==============================================================================
--- lldb/trunk/source/Host/common/File.cpp (original)
+++ lldb/trunk/source/Host/common/File.cpp Thu Oct 10 05:40:27 2019
@@ -70,15 +70,17 @@ static const char *GetStreamOpenModeFrom
 
 uint32_t File::GetOptionsFromMode(llvm::StringRef mode) {
   return llvm::StringSwitch<uint32_t>(mode)
-      .Case("r", File::eOpenOptionRead)
-      .Case("w", File::eOpenOptionWrite)
-      .Case("a", File::eOpenOptionWrite | File::eOpenOptionAppend |
-                     File::eOpenOptionCanCreate)
-      .Case("r+", File::eOpenOptionRead | File::eOpenOptionWrite)
-      .Case("w+", File::eOpenOptionRead | File::eOpenOptionWrite |
-                      File::eOpenOptionCanCreate | File::eOpenOptionTruncate)
-      .Case("a+", File::eOpenOptionRead | File::eOpenOptionWrite |
-                      File::eOpenOptionAppend | File::eOpenOptionCanCreate)
+      .Cases("r", "rb", eOpenOptionRead)
+      .Cases("w", "wb", eOpenOptionWrite)
+      .Cases("a", "ab",
+             eOpenOptionWrite | eOpenOptionAppend | eOpenOptionCanCreate)
+      .Cases("r+", "rb+", "r+b", eOpenOptionRead | eOpenOptionWrite)
+      .Cases("w+", "wb+", "w+b",
+             eOpenOptionRead | eOpenOptionWrite | eOpenOptionCanCreate |
+                 eOpenOptionTruncate)
+      .Cases("a+", "ab+", "a+b",
+             eOpenOptionRead | eOpenOptionWrite | eOpenOptionAppend |
+                 eOpenOptionCanCreate)
       .Default(0);
 }
 


_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to