]> git.ipfire.org Git - people/ms/libloc.git/blobdiff - src/python/as.c
python: Do not use any GNU-style initialisers for structs
[people/ms/libloc.git] / src / python / as.c
index ec1573b26bb8039f03dd967583f64e53d8a697f4..e3b716bc11fc71682ce4bf9980450e83f0b9f45d 100644 (file)
@@ -51,7 +51,7 @@ static int AS_init(ASObject* self, PyObject* args, PyObject* kwargs) {
                return -1;
 
        // Create the AS object
-       int r = loc_as_new(loc_ctx, NULL, &self->as, number);
+       int r = loc_as_new(loc_ctx, &self->as, number);
        if (r)
                return -1;
 
@@ -68,6 +68,16 @@ static PyObject* AS_repr(ASObject* self) {
        return PyUnicode_FromFormat("<AS %d>", number);
 }
 
+static PyObject* AS_str(ASObject* self) {
+       uint32_t number = loc_as_get_number(self->as);
+       const char* name = loc_as_get_name(self->as);
+
+       if (name)
+               return PyUnicode_FromFormat("AS%d (%s)", number, name);
+
+       return PyUnicode_FromFormat("AS%d", number);
+}
+
 static PyObject* AS_get_number(ASObject* self) {
        uint32_t number = loc_as_get_number(self->as);
 
@@ -135,14 +145,15 @@ static struct PyGetSetDef AS_getsetters[] = {
 
 PyTypeObject ASType = {
        PyVarObject_HEAD_INIT(NULL, 0)
-       tp_name:                "location.AS",
-       tp_basicsize:           sizeof(ASObject),
-       tp_flags:               Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE,
-       tp_new:                 AS_new,
-       tp_dealloc:             (destructor)AS_dealloc,
-       tp_init:                (initproc)AS_init,
-       tp_doc:                 "AS object",
-       tp_getset:              AS_getsetters,
-       tp_repr:                (reprfunc)AS_repr,
-       tp_richcompare:         (richcmpfunc)AS_richcompare,
+       .tp_name =               "location.AS",
+       .tp_basicsize =          sizeof(ASObject),
+       .tp_flags =              Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE,
+       .tp_new =                AS_new,
+       .tp_dealloc =            (destructor)AS_dealloc,
+       .tp_init =               (initproc)AS_init,
+       .tp_doc =                "AS object",
+       .tp_getset =             AS_getsetters,
+       .tp_repr =               (reprfunc)AS_repr,
+       .tp_str =                (reprfunc)AS_str,
+       .tp_richcompare =        (richcmpfunc)AS_richcompare,
 };