diff options
| author | Ed Maste <emaste@FreeBSD.org> | 2015-07-03 16:57:06 +0000 | 
|---|---|---|
| committer | Ed Maste <emaste@FreeBSD.org> | 2015-07-03 16:57:06 +0000 | 
| commit | 5e95aa85bb660d45e9905ef1d7180b2678280660 (patch) | |
| tree | 3c2e41c3be19b7fc7666ed45a5f91ec3b6e35f2a /source/Interpreter/OptionValueString.cpp | |
| parent | 12bd4897ff0678fa663e09d78ebc22dd255ceb86 (diff) | |
Notes
Diffstat (limited to 'source/Interpreter/OptionValueString.cpp')
| -rw-r--r-- | source/Interpreter/OptionValueString.cpp | 32 | 
1 files changed, 16 insertions, 16 deletions
diff --git a/source/Interpreter/OptionValueString.cpp b/source/Interpreter/OptionValueString.cpp index a1b80d8fc4f6..63f006e643f9 100644 --- a/source/Interpreter/OptionValueString.cpp +++ b/source/Interpreter/OptionValueString.cpp @@ -51,30 +51,30 @@ OptionValueString::DumpValue (const ExecutionContext *exe_ctx, Stream &strm, uin  }  Error -OptionValueString::SetValueFromCString (const char *value_cstr, +OptionValueString::SetValueFromString (llvm::StringRef value,                                          VarSetOperationType op)  {      Error error; -    std::string value_str_no_quotes; -    if (value_cstr) +    std::string value_str = value.str(); +    value = value.trim(); +    if (value.size() > 0)      { -        switch (value_cstr[0]) +        switch (value.front())          {          case '"':          case '\'':              { -                size_t len = strlen(value_cstr); -                if (len <= 1 || value_cstr[len-1] != value_cstr[0]) +                if (value.size() <= 1 || value.back() != value.front())                  {                      error.SetErrorString("mismatched quotes");                      return error;                  } -                value_str_no_quotes.assign (value_cstr + 1, len - 2); -                value_cstr = value_str_no_quotes.c_str(); +                value = value.drop_front().drop_back();              }              break;          } +        value_str = value.str();      }      switch (op) @@ -85,26 +85,26 @@ OptionValueString::SetValueFromCString (const char *value_cstr,      case eVarSetOperationRemove:          if (m_validator)          { -            error = m_validator(value_cstr,m_validator_baton); +            error = m_validator(value_str.c_str(),m_validator_baton);              if (error.Fail())                  return error;          } -        error = OptionValue::SetValueFromCString (value_cstr, op); +        error = OptionValue::SetValueFromString (value, op);          break;      case eVarSetOperationAppend:          {              std::string new_value(m_current_value); -            if (value_cstr && value_cstr[0]) +            if (value.size() > 0)              {                  if (m_options.Test (eOptionEncodeCharacterEscapeSequences))                  {                      std::string str; -                    Args::EncodeEscapeSequences (value_cstr, str); +                    Args::EncodeEscapeSequences (value_str.c_str(), str);                      new_value.append(str);                  }                  else -                    new_value.append(value_cstr); +                    new_value.append(value);              }              if (m_validator)              { @@ -126,18 +126,18 @@ OptionValueString::SetValueFromCString (const char *value_cstr,      case eVarSetOperationAssign:          if (m_validator)          { -            error = m_validator(value_cstr,m_validator_baton); +            error = m_validator(value_str.c_str(), m_validator_baton);              if (error.Fail())                  return error;          }          m_value_was_set = true;          if (m_options.Test (eOptionEncodeCharacterEscapeSequences))          { -            Args::EncodeEscapeSequences (value_cstr, m_current_value); +            Args::EncodeEscapeSequences (value_str.c_str(), m_current_value);          }          else          { -            SetCurrentValue (value_cstr); +            SetCurrentValue (value_str.c_str());          }          NotifyValueChanged();          break;  | 
