[Lldb-commits] [lldb] r374331 - File: Handle more cases in GetOptionsFromMode

Pavel Labath via lldb-commits lldb-commits at lists.llvm.org
Thu Oct 10 05:40:27 PDT 2019


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);
 }
 




More information about the lldb-commits mailing list