summaryrefslogtreecommitdiff
path: root/lldb/source/Interpreter/ScriptInterpreterPython.cpp
diff options
context:
space:
mode:
authorJohnny Chen <johnny.chen@apple.com>2010-07-30 22:33:14 +0000
committerJohnny Chen <johnny.chen@apple.com>2010-07-30 22:33:14 +0000
commit7dc2e4784ed3c2f428c992e36f0022253d0a6590 (patch)
treed4664b6e9a111a26b3a14ddbf54b8f605b786bf5 /lldb/source/Interpreter/ScriptInterpreterPython.cpp
parentfe1a4944b18b702249115935234155047a4798c4 (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.cpp19
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;
}