From: Michael Schroeder Date: Mon, 3 Mar 2014 14:01:48 +0000 (+0100) Subject: fix Datamatcher's idstr() method when calld for dirs X-Git-Tag: 0.6.4~79 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=88e1e4c8778561a0d2d9d75cb2b65191023298b3;p=thirdparty%2Flibsolv.git fix Datamatcher's idstr() method when calld for dirs --- diff --git a/bindings/solv.i b/bindings/solv.i index 5c0cfb8f..6bc34b1d 100644 --- a/bindings/solv.i +++ b/bindings/solv.i @@ -1902,7 +1902,11 @@ rb_eval_string( return $self->kv.id; } const char *idstr() { - return pool_id2str($self->pool, $self->kv.id); + if ($self->data && ($self->key->type == REPOKEY_TYPE_DIR || $self->key->type == REPOKEY_TYPE_DIRSTRARRAY || $self->key->type == REPOKEY_TYPE_DIRNUMNUMARRAY)) + return repodata_dir2str($self->data, $self->kv.id, 0); + if ($self->data && $self->data->localpool) + return stringpool_id2str(&self->data->spool, $self->kv.id); + return pool_id2str($self->pool, $self->kv.id); } const char *str() { return $self->kv.str;