diff options
| author | Johnny Chen <johnny.chen@apple.com> | 2010-07-30 22:33:14 +0000 |
|---|---|---|
| committer | Johnny Chen <johnny.chen@apple.com> | 2010-07-30 22:33:14 +0000 |
| commit | 7dc2e4784ed3c2f428c992e36f0022253d0a6590 (patch) | |
| tree | d4664b6e9a111a26b3a14ddbf54b8f605b786bf5 /lldb/source/Interpreter/ScriptInterpreterPython.cpp | |
| parent | fe1a4944b18b702249115935234155047a4798c4 (diff) | |
We can do better when reporting the status of one-liner script execution.
Change the prototype of ScriptInterpreter::ExecuteOneLine() to return bool
instead of void and take one additional parameter as CommandReturnObject *.
Propagate the status of one-liner execution back appropriately.
llvm-svn: 109899
Diffstat (limited to 'lldb/source/Interpreter/ScriptInterpreterPython.cpp')
| -rw-r--r-- | lldb/source/Interpreter/ScriptInterpreterPython.cpp | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/lldb/source/Interpreter/ScriptInterpreterPython.cpp b/lldb/source/Interpreter/ScriptInterpreterPython.cpp index aac3dd814d9c..3d0dafa2545c 100644 --- a/lldb/source/Interpreter/ScriptInterpreterPython.cpp +++ b/lldb/source/Interpreter/ScriptInterpreterPython.cpp @@ -258,17 +258,28 @@ ScriptInterpreterPython::~ScriptInterpreterPython () Py_Finalize (); } -void -ScriptInterpreterPython::ExecuteOneLine (CommandInterpreter &interpreter, const char *command) +bool +ScriptInterpreterPython::ExecuteOneLine (CommandInterpreter &interpreter, + const char *command, + CommandReturnObject *result = 0) { if (command) { int success; success = PyRun_SimpleString (command); - if (success != 0) - interpreter.GetDebugger().GetErrorStream().Printf ("error: python failed attempting to evaluate '%s'\n", command); + if (success == 0) + return true; + + // The one-liner failed. Append the error message. + if (result) + result->AppendErrorWithFormat ("python failed attempting to evaluate '%s'\n", command); + return false; } + + if (result) + result->AppendError ("empty command passed to python\n"); + return false; } |
