lets you query a package by record number
CVS patchset: 448 CVS date: 1996/03/01 03:29:18
This commit is contained in:
parent
55134cf737
commit
1da80ad8a5
29
query.c
29
query.c
|
@ -1,3 +1,4 @@
|
||||||
|
#include <ctype.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
@ -295,6 +296,7 @@ void doQuery(char * prefix, enum querysources source, int queryFlags,
|
||||||
int isSource;
|
int isSource;
|
||||||
rpmdb db;
|
rpmdb db;
|
||||||
dbIndexSet matches;
|
dbIndexSet matches;
|
||||||
|
int recNumber;
|
||||||
|
|
||||||
if (source != QUERY_SRPM && source != QUERY_RPM) {
|
if (source != QUERY_SRPM && source != QUERY_RPM) {
|
||||||
if (rpmdbOpen(prefix, &db, O_RDONLY, 0644)) {
|
if (rpmdbOpen(prefix, &db, O_RDONLY, 0644)) {
|
||||||
|
@ -359,14 +361,27 @@ void doQuery(char * prefix, enum querysources source, int queryFlags,
|
||||||
|
|
||||||
case QUERY_SPACKAGE:
|
case QUERY_SPACKAGE:
|
||||||
case QUERY_PACKAGE:
|
case QUERY_PACKAGE:
|
||||||
rc = findPackageByLabel(db, arg, &matches);
|
if (isdigit(arg[0])) {
|
||||||
if (rc == 1)
|
recNumber = atoi(arg);
|
||||||
fprintf(stderr, "package %s is not installed\n", arg);
|
message(MESS_DEBUG, "showing package: %d\n", recNumber);
|
||||||
else if (rc == 2) {
|
h = rpmdbGetRecord(db, recNumber);
|
||||||
fprintf(stderr, "error looking for package %s\n", arg);
|
|
||||||
|
if (!h)
|
||||||
|
fprintf(stderr, "record %d could not be read\n", recNumber);
|
||||||
|
else {
|
||||||
|
printHeader(h, queryFlags);
|
||||||
|
freeHeader(h);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
showMatches(db, matches, queryFlags);
|
rc = findPackageByLabel(db, arg, &matches);
|
||||||
freeDBIndexRecord(matches);
|
if (rc == 1)
|
||||||
|
fprintf(stderr, "package %s is not installed\n", arg);
|
||||||
|
else if (rc == 2) {
|
||||||
|
fprintf(stderr, "error looking for package %s\n", arg);
|
||||||
|
} else {
|
||||||
|
showMatches(db, matches, queryFlags);
|
||||||
|
freeDBIndexRecord(matches);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue