4b2f5c72d6
Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
141 lines
4.8 KiB
Diff
141 lines
4.8 KiB
Diff
From b69b77539089ce0759e64ae4de7ff9a10a3166db Mon Sep 17 00:00:00 2001
|
|
From: Igor Gnatenko <i.gnatenko.brain@gmail.com>
|
|
Date: Fri, 15 Jun 2018 15:40:11 +0200
|
|
Subject: [PATCH 4/6] bindings: expose repodata_str2dir, repodata_dir2str and
|
|
repodata_add_dirstr
|
|
|
|
Signed-off-by: Igor Gnatenko <i.gnatenko.brain@gmail.com>
|
|
(cherry picked from commit 316c436de3b57e1c22d8368b366ef62a66d72e8e)
|
|
---
|
|
bindings/solv.i | 12 ++++++++++
|
|
doc/gen/libsolv-bindings.3 | 47 ++++++++++++++++++++++++++++++++++++--
|
|
doc/libsolv-bindings.txt | 20 ++++++++++++++++
|
|
3 files changed, 77 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/bindings/solv.i b/bindings/solv.i
|
|
index acd01ac4..6f702803 100644
|
|
--- a/bindings/solv.i
|
|
+++ b/bindings/solv.i
|
|
@@ -3916,6 +3916,18 @@ rb_eval_string(
|
|
bool write(FILE *fp) {
|
|
return repodata_write(repo_id2repodata($self->repo, $self->id), fp) == 0;
|
|
}
|
|
+ Id str2dir(const char *dir, bool create=1) {
|
|
+ Repodata *data = repo_id2repodata($self->repo, $self->id);
|
|
+ return repodata_str2dir(data, dir, create);
|
|
+ }
|
|
+ const char dir2str(Id did, const char *suf = 0) {
|
|
+ Repodata *data = repo_id2repodata($self->repo, $self->id);
|
|
+ return repodata_dir2str(data, did, suf);
|
|
+ }
|
|
+ void add_dirstr(Id solvid, Id keyname, Id dir, const char *str) {
|
|
+ Repodata *data = repo_id2repodata($self->repo, $self->id);
|
|
+ repodata_add_dirstr(data, solvid, keyname, dir, str);
|
|
+ }
|
|
bool add_solv(FILE *fp, int flags = 0) {
|
|
Repodata *data = repo_id2repodata($self->repo, $self->id);
|
|
int r, oldstate = data->state;
|
|
diff --git a/doc/gen/libsolv-bindings.3 b/doc/gen/libsolv-bindings.3
|
|
index a6534aa2..38beb1c0 100644
|
|
--- a/doc/gen/libsolv-bindings.3
|
|
+++ b/doc/gen/libsolv-bindings.3
|
|
@@ -2,12 +2,12 @@
|
|
.\" Title: Libsolv-Bindings
|
|
.\" Author: [see the "Author" section]
|
|
.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
|
|
-.\" Date: 02/28/2018
|
|
+.\" Date: 06/15/2018
|
|
.\" Manual: LIBSOLV
|
|
.\" Source: libsolv
|
|
.\" Language: English
|
|
.\"
|
|
-.TH "LIBSOLV\-BINDINGS" "3" "02/28/2018" "libsolv" "LIBSOLV"
|
|
+.TH "LIBSOLV\-BINDINGS" "3" "06/15/2018" "libsolv" "LIBSOLV"
|
|
.\" -----------------------------------------------------------------
|
|
.\" * Define some portability stuff
|
|
.\" -----------------------------------------------------------------
|
|
@@ -5622,6 +5622,49 @@ Write the contents of the repodata area as solv file\&.
|
|
.RS 4
|
|
.\}
|
|
.nf
|
|
+\fBId str2dir(const char *\fR\fIdir\fR\fB, bool\fR \fIcreate\fR \fB= 1)\fR
|
|
+my \fI$did\fR \fB=\fR \fIdata\fR\fB\->str2dir(\fR\fI$dir\fR\fB)\fR;
|
|
+\fIdid\fR \fB=\fR \fIdata\fR\fB\&.str2dir(\fR\fIdir\fR\fB)\fR
|
|
+\fIdid\fR \fB=\fR \fIdata\fR\fB\&.str2dir(\fR\fIdir\fR\fB)\fR
|
|
+.fi
|
|
+.if n \{\
|
|
+.RE
|
|
+.\}
|
|
+.sp
|
|
+.if n \{\
|
|
+.RS 4
|
|
+.\}
|
|
+.nf
|
|
+\fBconst char *dir2str(Id\fR \fIdid\fR\fB, const char *\fR\fIsuffix\fR \fB= 0)\fR
|
|
+\fI$dir\fR \fB=\fR \fIpool\fR\fB\->dir2str(\fR\fI$did\fR\fB)\fR;
|
|
+\fIdir\fR \fB=\fR \fIpool\fR\fB\&.dir2str(\fR\fIdid\fR\fB)\fR
|
|
+\fIdir\fR \fB=\fR \fIpool\fR\fB\&.dir2str(\fR\fIdid\fR\fB)\fR
|
|
+.fi
|
|
+.if n \{\
|
|
+.RE
|
|
+.\}
|
|
+.sp
|
|
+Convert a string (directory) into an Id and back\&. If the string is currently not in the pool and \fIcreate\fR is false, zero is returned\&.
|
|
+.sp
|
|
+.if n \{\
|
|
+.RS 4
|
|
+.\}
|
|
+.nf
|
|
+\fBvoid add_dirstr(Id\fR \fIsolvid\fR\fB, Id\fR \fIkeyname\fR\fB, Id\fR \fIdir\fR\fB, const char *\fR\fIstr\fR\fB)\fR
|
|
+\fI$data\fR\fB\->add_dirstr(\fR\fI$solvid\fR\fB,\fR \fI$keyname\fR\fB,\fR \fI$dir\fR\fB,\fR \fI$string\fR\fB)\fR
|
|
+\fIdata\fR\fB\&.add_dirstr(\fR\fIsolvid\fR\fB,\fR \fIkeyname\fR\fB,\fR \fIdir\fR\fB,\fR \fIstring\fR\fB)\fR
|
|
+\fIdata\fR\fB\&.add_dirstr(\fR\fIsolvid\fR\fB,\fR \fIkeyname\fR\fB,\fR \fIdir\fR\fB,\fR \fIstring\fR\fB)\fR
|
|
+.fi
|
|
+.if n \{\
|
|
+.RE
|
|
+.\}
|
|
+.sp
|
|
+Add a file provide\&.
|
|
+.sp
|
|
+.if n \{\
|
|
+.RS 4
|
|
+.\}
|
|
+.nf
|
|
\fBbool add_solv(FILE *\fR\fIfp\fR\fB, int\fR \fIflags\fR \fB= 0)\fR;
|
|
\fI$data\fR\fB\->add_solv(\fR\fI$fp\fR\fB)\fR;
|
|
\fIdata\fR\fB\&.add_solv(\fR\fIfp\fR\fB)\fR
|
|
diff --git a/doc/libsolv-bindings.txt b/doc/libsolv-bindings.txt
|
|
index 1f6422f1..572ed92b 100644
|
|
--- a/doc/libsolv-bindings.txt
|
|
+++ b/doc/libsolv-bindings.txt
|
|
@@ -3457,6 +3457,26 @@ after it has been internalized.
|
|
|
|
Write the contents of the repodata area as solv file.
|
|
|
|
+ Id str2dir(const char *dir, bool create = 1)
|
|
+ my $did = data->str2dir($dir);
|
|
+ did = data.str2dir(dir)
|
|
+ did = data.str2dir(dir)
|
|
+
|
|
+ const char *dir2str(Id did, const char *suffix = 0)
|
|
+ $dir = pool->dir2str($did);
|
|
+ dir = pool.dir2str(did)
|
|
+ dir = pool.dir2str(did)
|
|
+
|
|
+Convert a string (directory) into an Id and back. If the string is currently not in the
|
|
+pool and _create_ is false, zero is returned.
|
|
+
|
|
+ void add_dirstr(Id solvid, Id keyname, Id dir, const char *str)
|
|
+ $data->add_dirstr($solvid, $keyname, $dir, $string)
|
|
+ data.add_dirstr(solvid, keyname, dir, string)
|
|
+ data.add_dirstr(solvid, keyname, dir, string)
|
|
+
|
|
+Add a file provide.
|
|
+
|
|
bool add_solv(FILE *fp, int flags = 0);
|
|
$data->add_solv($fp);
|
|
data.add_solv(fp)
|
|
--
|
|
2.18.0.rc2
|
|
|