<rdar://problem/12188843> Fixing a problem where a Python command created in the same module where the target function is defined causes the help string not to come out

llvm-svn: 164172
This commit is contained in:
Enrico Granata
2012-09-18 21:53:02 +00:00
parent 14f082b69d
commit fac939e918
5 changed files with 40 additions and 18 deletions

View File

@@ -2542,9 +2542,12 @@ ScriptInterpreterPython::RunScriptBasedCommand(const char* impl_function,
// in Python, a special attribute __doc__ contains the docstring
// for an object (function, method, class, ...) if any is defined
// Otherwise, the attribute's value is None
std::string
ScriptInterpreterPython::GetDocumentationForItem(const char* item)
bool
ScriptInterpreterPython::GetDocumentationForItem(const char* item, std::string& dest)
{
dest.clear();
if (!item || !*item)
return false;
std::string command(item);
command += ".__doc__";
@@ -2554,10 +2557,16 @@ ScriptInterpreterPython::GetDocumentationForItem(const char* item)
ScriptInterpreter::eScriptReturnTypeCharStrOrNone,
&result_ptr, false) && result_ptr)
{
return std::string(result_ptr);
dest.assign(result_ptr);
return true;
}
else
return std::string("");
{
StreamString str_stream;
str_stream.Printf("Function %s was not found. Containing module might be missing.",item);
dest.assign(str_stream.GetData());
return false;
}
}
void