Make OptionParser::Parse() take StringRef.
authorZachary Turner <zturner@google.com>
Sun, 13 Nov 2016 04:24:38 +0000 (04:24 +0000)
committerZachary Turner <zturner@google.com>
Sun, 13 Nov 2016 04:24:38 +0000 (04:24 +0000)
llvm-svn: 286747

lldb/include/lldb/Host/OptionParser.h
lldb/source/Host/common/OptionParser.cpp
lldb/source/Interpreter/Args.cpp

index b390e45..1b0dc4a 100644 (file)
@@ -13,6 +13,8 @@
 #include <mutex>
 #include <string>
 
+#include "llvm/ADT/StringRef.h"
+
 struct option;
 
 namespace lldb_private {
@@ -36,7 +38,7 @@ public:
 
   static void EnableError(bool error);
 
-  static int Parse(int argc, char *const argv[], const char *optstring,
+  static int Parse(int argc, char *const argv[], llvm::StringRef optstring,
                    const Option *longopts, int *longindex);
 
   static char *GetOptionArgument();
index 053179c..d78bf33 100644 (file)
@@ -28,7 +28,7 @@ void OptionParser::Prepare(std::unique_lock<std::mutex> &lock) {
 
 void OptionParser::EnableError(bool error) { opterr = error ? 1 : 0; }
 
-int OptionParser::Parse(int argc, char *const argv[], const char *optstring,
+int OptionParser::Parse(int argc, char *const argv[], llvm::StringRef optstring,
                         const Option *longopts, int *longindex) {
   std::vector<option> opts;
   while (longopts->definition != nullptr) {
@@ -41,7 +41,8 @@ int OptionParser::Parse(int argc, char *const argv[], const char *optstring,
     ++longopts;
   }
   opts.push_back(option());
-  return getopt_long_only(argc, argv, optstring, &opts[0], longindex);
+  std::string opt_cstr = optstring;
+  return getopt_long_only(argc, argv, opt_cstr.c_str(), &opts[0], longindex);
 }
 
 char *OptionParser::GetOptionArgument() { return optarg; }
index a2f1888..b989ee1 100644 (file)
@@ -457,9 +457,9 @@ Error Args::ParseOptions(Options &options, ExecutionContext *execution_context,
   int val;
   while (1) {
     int long_options_index = -1;
-    val =
-        OptionParser::Parse(GetArgumentCount(), GetArgumentVector(),
-                            sstr.GetData(), long_options, &long_options_index);
+    val = OptionParser::Parse(GetArgumentCount(), GetArgumentVector(),
+                              sstr.GetString(), long_options,
+                              &long_options_index);
     if (val == -1)
       break;
 
@@ -1175,9 +1175,9 @@ void Args::ParseArgsForCompletion(Options &options,
     bool missing_argument = false;
     int long_options_index = -1;
 
-    val =
-        OptionParser::Parse(dummy_vec.size() - 1, &dummy_vec[0], sstr.GetData(),
-                            long_options, &long_options_index);
+    val = OptionParser::Parse(dummy_vec.size() - 1, &dummy_vec[0],
+                              sstr.GetString(), long_options,
+                              &long_options_index);
 
     if (val == -1) {
       // When we're completing a "--" which is the last option on line,