add pool_selection2str() and use it in the bindings
[platform/upstream/libsolv.git] / bindings / solv.i
index 021ca6f..4401752 100644 (file)
@@ -784,11 +784,11 @@ typedef struct {
   %rename("str") __str__;
 #endif
   const char *__str__() {
-    int i;
-    char *s = pool_tmpjoin($self->pool, 0, 0, 0);
-    for (i = 0; i < $self->q.count; i += 2)
-      s = pool_tmpappend($self->pool, s, " | ", solver_select2str($self->pool, $self->q.elements[i] & SOLVER_SELECTMASK, $self->q.elements[i + 1]));
-    return *s ? s + 3 : s;
+    return pool_selection2str($self->pool, &$self->q, 0);
+  }
+  const char *__repr__() {
+    const char *str = pool_selection2str($self->pool, &$self->q, ~0);
+    return pool_tmpjoin($self->pool, "<Selection ", str, ">");
   }
 }