summaryrefslogtreecommitdiffstats
path: root/lldb/source/Interpreter/OptionValueSInt64.cpp
diff options
context:
space:
mode:
authorPavel Labath <labath@google.com>2015-02-16 13:13:39 +0000
committerPavel Labath <labath@google.com>2015-02-16 13:13:39 +0000
commitdf50f9440dc4a56a67d9150d24069f379dde74e5 (patch)
treef70f62fc69bb9406d1cc2c8c124d9d4dc97fdc63 /lldb/source/Interpreter/OptionValueSInt64.cpp
parent0247b970c4c988219f348601ea124da498f96822 (diff)
downloadbcm5719-llvm-df50f9440dc4a56a67d9150d24069f379dde74e5.tar.gz
bcm5719-llvm-df50f9440dc4a56a67d9150d24069f379dde74e5.zip
Handle trailing spaces on "settings set" command more correctly
Summary: Currently we have some settings which treat "\ " on settings set commands specially. E.g., it is a valid way of specifying an argument of " " to a target. However, this fails if "\ " is the last argument as CommandObjectSettingsSet strips trailing whitespace. This resulted in a surprising argument of "\" to the target. This patch disables the training whitespace removal at a global level. Instead, for each argument type we locally determine whether whitespace stripping makes sense. Currently, I strip whitespace for all simple object type except of regex and format-string, with the rationale that these two object types do their own complex parsing and we want to interfere with them as least as possible. Specifically, stripping the whitespace of a regex "\ " will result in a (surprising?) error "trailing backslash". Furthermore, the default value of dissasembly-format setting already contains a trailing space and there is no way for the user to type this in manually if we strip whitespace. Reviewers: clayborg, zturner Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D7592 llvm-svn: 229382
Diffstat (limited to 'lldb/source/Interpreter/OptionValueSInt64.cpp')
-rw-r--r--lldb/source/Interpreter/OptionValueSInt64.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/lldb/source/Interpreter/OptionValueSInt64.cpp b/lldb/source/Interpreter/OptionValueSInt64.cpp
index c69172921a6..d62353d93d4 100644
--- a/lldb/source/Interpreter/OptionValueSInt64.cpp
+++ b/lldb/source/Interpreter/OptionValueSInt64.cpp
@@ -51,7 +51,8 @@ OptionValueSInt64::SetValueFromCString (const char *value_cstr, VarSetOperationT
case eVarSetOperationAssign:
{
bool success = false;
- int64_t value = StringConvert::ToSInt64 (value_cstr, 0, 0, &success);
+ std::string value_str = llvm::StringRef(value_cstr).trim().str();
+ int64_t value = StringConvert::ToSInt64 (value_str.c_str(), 0, 0, &success);
if (success)
{
if (value >= m_min_value && value <= m_max_value)
OpenPOWER on IntegriCloud