diff options
Diffstat (limited to 'lldb/source/Interpreter/OptionValueBoolean.cpp')
-rw-r--r-- | lldb/source/Interpreter/OptionValueBoolean.cpp | 182 |
1 files changed, 78 insertions, 104 deletions
diff --git a/lldb/source/Interpreter/OptionValueBoolean.cpp b/lldb/source/Interpreter/OptionValueBoolean.cpp index 4ba03d250ac..dbbd46ea093 100644 --- a/lldb/source/Interpreter/OptionValueBoolean.cpp +++ b/lldb/source/Interpreter/OptionValueBoolean.cpp @@ -1,4 +1,5 @@ -//===-- OptionValueBoolean.cpp ------------------------------------*- C++ -*-===// +//===-- OptionValueBoolean.cpp ------------------------------------*- C++ +//-*-===// // // The LLVM Compiler Infrastructure // @@ -22,117 +23,90 @@ using namespace lldb; using namespace lldb_private; -void -OptionValueBoolean::DumpValue (const ExecutionContext *exe_ctx, Stream &strm, uint32_t dump_mask) -{ +void OptionValueBoolean::DumpValue(const ExecutionContext *exe_ctx, + Stream &strm, uint32_t dump_mask) { + if (dump_mask & eDumpOptionType) + strm.Printf("(%s)", GetTypeAsCString()); + // if (dump_mask & eDumpOptionName) + // DumpQualifiedName (strm); + if (dump_mask & eDumpOptionValue) { if (dump_mask & eDumpOptionType) - strm.Printf ("(%s)", GetTypeAsCString ()); -// if (dump_mask & eDumpOptionName) -// DumpQualifiedName (strm); - if (dump_mask & eDumpOptionValue) - { - if (dump_mask & eDumpOptionType) - strm.PutCString (" = "); - strm.PutCString (m_current_value ? "true" : "false"); - } + strm.PutCString(" = "); + strm.PutCString(m_current_value ? "true" : "false"); + } } -Error -OptionValueBoolean::SetValueFromString (llvm::StringRef value_str, - VarSetOperationType op) -{ - Error error; - switch (op) - { - case eVarSetOperationClear: - Clear(); - NotifyValueChanged(); - break; - - case eVarSetOperationReplace: - case eVarSetOperationAssign: - { - bool success = false; - bool value = Args::StringToBoolean(value_str.str().c_str(), false, &success); - if (success) - { - m_value_was_set = true; - m_current_value = value; - NotifyValueChanged(); - } - else - { - if (value_str.size() == 0) - error.SetErrorString ("invalid boolean string value <empty>"); - else - error.SetErrorStringWithFormat ("invalid boolean string value: '%s'", - value_str.str().c_str()); - } - } - break; +Error OptionValueBoolean::SetValueFromString(llvm::StringRef value_str, + VarSetOperationType op) { + Error error; + switch (op) { + case eVarSetOperationClear: + Clear(); + NotifyValueChanged(); + break; - case eVarSetOperationInsertBefore: - case eVarSetOperationInsertAfter: - case eVarSetOperationRemove: - case eVarSetOperationAppend: - case eVarSetOperationInvalid: - error = OptionValue::SetValueFromString (value_str, op); - break; + case eVarSetOperationReplace: + case eVarSetOperationAssign: { + bool success = false; + bool value = + Args::StringToBoolean(value_str.str().c_str(), false, &success); + if (success) { + m_value_was_set = true; + m_current_value = value; + NotifyValueChanged(); + } else { + if (value_str.size() == 0) + error.SetErrorString("invalid boolean string value <empty>"); + else + error.SetErrorStringWithFormat("invalid boolean string value: '%s'", + value_str.str().c_str()); } - return error; -} + } break; -lldb::OptionValueSP -OptionValueBoolean::DeepCopy () const -{ - return OptionValueSP(new OptionValueBoolean(*this)); + case eVarSetOperationInsertBefore: + case eVarSetOperationInsertAfter: + case eVarSetOperationRemove: + case eVarSetOperationAppend: + case eVarSetOperationInvalid: + error = OptionValue::SetValueFromString(value_str, op); + break; + } + return error; } -size_t -OptionValueBoolean::AutoComplete (CommandInterpreter &interpreter, - const char *s, - int match_start_point, - int max_return_elements, - bool &word_complete, - StringList &matches) -{ - word_complete = false; - matches.Clear(); - struct StringEntry { - const char *string; - const size_t length; - }; - static const StringEntry g_autocomplete_entries[] = - { - { "true" , 4 }, - { "false", 5 }, - { "on" , 2 }, - { "off" , 3 }, - { "yes" , 3 }, - { "no" , 2 }, - { "1" , 1 }, - { "0" , 1 }, - }; - const size_t k_num_autocomplete_entries = llvm::array_lengthof(g_autocomplete_entries); - - if (s && s[0]) - { - const size_t s_len = strlen(s); - for (size_t i=0; i<k_num_autocomplete_entries; ++i) - { - if (s_len <= g_autocomplete_entries[i].length) - if (::strncasecmp(s, g_autocomplete_entries[i].string, s_len) == 0) - matches.AppendString(g_autocomplete_entries[i].string); - } - } - else - { - // only suggest "true" or "false" by default - for (size_t i=0; i<2; ++i) - matches.AppendString(g_autocomplete_entries[i].string); - } - return matches.GetSize(); +lldb::OptionValueSP OptionValueBoolean::DeepCopy() const { + return OptionValueSP(new OptionValueBoolean(*this)); } +size_t OptionValueBoolean::AutoComplete(CommandInterpreter &interpreter, + const char *s, int match_start_point, + int max_return_elements, + bool &word_complete, + StringList &matches) { + word_complete = false; + matches.Clear(); + struct StringEntry { + const char *string; + const size_t length; + }; + static const StringEntry g_autocomplete_entries[] = { + {"true", 4}, {"false", 5}, {"on", 2}, {"off", 3}, + {"yes", 3}, {"no", 2}, {"1", 1}, {"0", 1}, + }; + const size_t k_num_autocomplete_entries = + llvm::array_lengthof(g_autocomplete_entries); - + if (s && s[0]) { + const size_t s_len = strlen(s); + for (size_t i = 0; i < k_num_autocomplete_entries; ++i) { + if (s_len <= g_autocomplete_entries[i].length) + if (::strncasecmp(s, g_autocomplete_entries[i].string, s_len) == 0) + matches.AppendString(g_autocomplete_entries[i].string); + } + } else { + // only suggest "true" or "false" by default + for (size_t i = 0; i < 2; ++i) + matches.AppendString(g_autocomplete_entries[i].string); + } + return matches.GetSize(); +} |