Use class docstrings in "-builtin" Python case.
Put the docstring into tp_doc slot which exists exactly for this purpose.
This commit is contained in:
parent
410b508e9a
commit
d5c5cd4521
1 changed files with 13 additions and 10 deletions
|
|
@ -1573,7 +1573,7 @@ public:
|
||||||
/* ------------------------------------------------------------
|
/* ------------------------------------------------------------
|
||||||
* cdocstring()
|
* cdocstring()
|
||||||
* Get the docstring text as it would appear in C-language
|
* Get the docstring text as it would appear in C-language
|
||||||
* source code.
|
* source code (but without quotes around it).
|
||||||
* ------------------------------------------------------------ */
|
* ------------------------------------------------------------ */
|
||||||
|
|
||||||
String *cdocstring(Node *n, autodoc_t ad_type)
|
String *cdocstring(Node *n, autodoc_t ad_type)
|
||||||
|
|
@ -1581,7 +1581,7 @@ public:
|
||||||
String *ds = build_combined_docstring(n, ad_type);
|
String *ds = build_combined_docstring(n, ad_type);
|
||||||
Replaceall(ds, "\\", "\\\\");
|
Replaceall(ds, "\\", "\\\\");
|
||||||
Replaceall(ds, "\"", "\\\"");
|
Replaceall(ds, "\"", "\\\"");
|
||||||
Replaceall(ds, "\n", "\\n\"\n\t\t\"");
|
Replaceall(ds, "\n", "\\n\"\n\t\"");
|
||||||
return ds;
|
return ds;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -3734,7 +3734,16 @@ public:
|
||||||
Printv(f, "#else\n", NIL);
|
Printv(f, "#else\n", NIL);
|
||||||
printSlot(f, tp_flags, "tp_flags");
|
printSlot(f, tp_flags, "tp_flags");
|
||||||
Printv(f, "#endif\n", NIL);
|
Printv(f, "#endif\n", NIL);
|
||||||
printSlot(f, quoted_rname, "tp_doc");
|
if (have_docstring(n)) {
|
||||||
|
String *ds = cdocstring(n, AUTODOC_CLASS);
|
||||||
|
String *tp_doc = NewString("");
|
||||||
|
Printf(tp_doc, "\"%s\"", ds);
|
||||||
|
Delete(ds);
|
||||||
|
printSlot(f, tp_doc, "tp_doc");
|
||||||
|
Delete(tp_doc);
|
||||||
|
} else {
|
||||||
|
printSlot(f, quoted_rname, "tp_doc");
|
||||||
|
}
|
||||||
printSlot(f, getSlot(n, "feature:python:tp_traverse"), "tp_traverse", "traverseproc");
|
printSlot(f, getSlot(n, "feature:python:tp_traverse"), "tp_traverse", "traverseproc");
|
||||||
printSlot(f, getSlot(n, "feature:python:tp_clear"), "tp_clear", "inquiry");
|
printSlot(f, getSlot(n, "feature:python:tp_clear"), "tp_clear", "inquiry");
|
||||||
printSlot(f, richcompare_func, "feature:python:tp_richcompare", "richcmpfunc");
|
printSlot(f, richcompare_func, "feature:python:tp_richcompare", "richcmpfunc");
|
||||||
|
|
@ -4012,13 +4021,7 @@ public:
|
||||||
Printv(base_class, abcs, NIL);
|
Printv(base_class, abcs, NIL);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (builtin) {
|
if (!builtin) {
|
||||||
if (have_docstring(n)) {
|
|
||||||
String *str = cdocstring(n, AUTODOC_CLASS);
|
|
||||||
Setattr(n, "feature:python:tp_doc", str);
|
|
||||||
Delete(str);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
Printv(f_shadow, "class ", class_name, NIL);
|
Printv(f_shadow, "class ", class_name, NIL);
|
||||||
|
|
||||||
if (Len(base_class)) {
|
if (Len(base_class)) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue