aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPer Øyvind Karlsen <peroyvind@mandriva.org>2010-12-14 04:03:18 +0000
committerPer Øyvind Karlsen <peroyvind@mandriva.org>2010-12-14 04:03:18 +0000
commit5e053344882beb71bf1dcf7d51a218cada3ce124 (patch)
tree6a5aa879e0c8b8911eccc235574c1d5ed9f445ee
parente584dda49e2bbf6c9f8ff506ca4bbc019b1876f3 (diff)
downloadperl-URPM-5e053344882beb71bf1dcf7d51a218cada3ce124.tar
perl-URPM-5e053344882beb71bf1dcf7d51a218cada3ce124.tar.gz
perl-URPM-5e053344882beb71bf1dcf7d51a218cada3ce124.tar.bz2
perl-URPM-5e053344882beb71bf1dcf7d51a218cada3ce124.tar.xz
perl-URPM-5e053344882beb71bf1dcf7d51a218cada3ce124.zip
check rpmqvsources context as well for tag names
-rw-r--r--URPM.xs54
1 files changed, 33 insertions, 21 deletions
diff --git a/URPM.xs b/URPM.xs
index ac23b98..7270c74 100644
--- a/URPM.xs
+++ b/URPM.xs
@@ -100,16 +100,20 @@ typedef struct s_Package* URPM__Package;
#define FILTER_MODE_ALL_FILES 0
#define FILTER_MODE_CONF_FILES 2
-static ssize_t write_nocheck(int fd, const void *buf, size_t count) {
+static ssize_t
+write_nocheck(int fd, const void *buf, size_t count) {
return write(fd, buf, count);
}
-static const void* unused_variable(const void *p) {
+
+static const void*
+unused_variable(const void *p) {
return p;
}
static int rpmError_callback_data;
-int rpmError_callback() {
+static int
+rpmError_callback() {
write_nocheck(rpmError_callback_data, rpmlogMessage(), strlen(rpmlogMessage()));
return RPMLOG_DEFAULT;
}
@@ -225,17 +229,25 @@ do_rpmEVRcompare(const char *a, const char *b) {
static rpmTag
rpmtag_from_string(const char *tag)
{
- static rpmconst c = NULL;
- static const char context[] = "rpmtag";
-
- if(c == NULL) {
- c = rpmconstNew();
- if(!rpmconstInitToContext(c, context))
- croak("unknown context [%s]", context);
- }
- if(rpmconstFindName(c, tag, 0))
- return rpmconstValue(c);
- else croak("unknown tag [%s]", tag);
+ static rpmconst tag_c = NULL,
+ qv_c = NULL;
+ static const char tag_context[] = "rpmtag",
+ qv_context[] = "rpmqvsources";
+ if(tag_c == NULL) {
+ tag_c = rpmconstNew();
+ if(!rpmconstInitToContext(tag_c, tag_context))
+ croak("unknown context [%s]", tag_context);
+ }
+ if(rpmconstFindName(tag_c, tag, 0))
+ return rpmconstValue(tag_c);
+ if(qv_c == NULL) {
+ qv_c = rpmconstNew();
+ if(!rpmconstInitToContext(qv_c, qv_context))
+ croak("unknown context [%s]", qv_context);
+ }
+ if(rpmconstFindName(qv_c, tag, 0))
+ return rpmconstValue(qv_c);
+ croak("unknown tag [%s]", tag);
}
static const char *
@@ -623,7 +635,7 @@ xpush_simple_list_str(Header header, rpmTag tag_name) {
} else return 0;
}
-void
+static void
return_list_int32_t(Header header, rpmTag tag_name) {
dSP;
if (header) {
@@ -640,7 +652,7 @@ return_list_int32_t(Header header, rpmTag tag_name) {
PUTBACK;
}
-void
+static void
return_list_uint_16(Header header, rpmTag tag_name) {
dSP;
if (header) {
@@ -657,7 +669,7 @@ return_list_uint_16(Header header, rpmTag tag_name) {
PUTBACK;
}
-void
+static void
return_list_tag_modifier(Header header, const char *tag_name) {
dSP;
HE_t he = memset(alloca(sizeof(*he)), 0, sizeof(*he));
@@ -696,7 +708,7 @@ return_list_tag_modifier(Header header, const char *tag_name) {
PUTBACK;
}
-void
+static void
return_list_tag(URPM__Package pkg, const char *tag_name) {
dSP;
rpmTag tag = isdigit(*tag_name) ? (rpmTag)atoi(tag_name) : rpmtag_from_string(tag_name);
@@ -813,7 +825,7 @@ return_list_tag(URPM__Package pkg, const char *tag_name) {
}
-void
+static void
return_files(Header header, int filter_mode) {
dSP;
if (header) {
@@ -850,7 +862,7 @@ return_files(Header header, int filter_mode) {
PUTBACK;
}
-void
+static void
return_problems(rpmps ps, int translate_message, int raw_message) {
dSP;
if (ps && rpmpsNumProblems(ps) > 0) {
@@ -1144,7 +1156,7 @@ update_provides_files(URPM__Package pkg, HV *provides) {
}
}
-int
+static int
open_archive(char *filename, pid_t *pid, int *empty_archive) {
int fd;
struct {