From 7dc2e4784ed3c2f428c992e36f0022253d0a6590 Mon Sep 17 00:00:00 2001 From: Johnny Chen Date: Fri, 30 Jul 2010 22:33:14 +0000 Subject: 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 --- lldb/source/Interpreter/ScriptInterpreterPython.cpp | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) (limited to 'lldb/source/Interpreter/ScriptInterpreterPython.cpp') 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; } -- cgit v1.2.3