- return PyString_FromFormat("<collectd.Config %snode %s>", self->parent == Py_None ? "root " : "", PyString_AsString(PyObject_Str(self->key)));
-}*/
+ /* This is ok because we have the GIL, so this is thread-save by default. */
+ if (node_prefix == NULL)
+ node_prefix = cpy_string_to_unicode_or_bytes("<collectd.Config node '");
+ if (root_prefix == NULL)
+ root_prefix = cpy_string_to_unicode_or_bytes("<collectd.Config root node '");
+ if (ending == NULL)
+ ending = cpy_string_to_unicode_or_bytes("'>");
+ if (node_prefix == NULL || root_prefix == NULL || ending == NULL)
+ return NULL;
+
+ name = PyObject_Str(self->key);
+ if (name == NULL)
+ return NULL;
+
+ if (self->parent == NULL || self->parent == Py_None)
+ tmp = CPY_STRCAT(root_prefix, name);
+ else
+ tmp = CPY_STRCAT(node_prefix, name);
+
+ Py_DECREF(name);
+ if (tmp != NULL)
+ ret = CPY_STRCAT(tmp, ending);
+ Py_DECREF(tmp);
+
+ return ret;
+}