add --querybynumber

CVS patchset: 597
CVS date: 1996/06/02 18:04:36
This commit is contained in:
root 1996-06-02 18:04:36 +00:00
parent ceb25d98d5
commit 870b1ea849
3 changed files with 9 additions and 2 deletions

View File

@ -513,11 +513,11 @@ int doQuery(char * prefix, enum querysources source, int queryFlags,
case QUERY_SPACKAGE:
case QUERY_PACKAGE:
if (isdigit(arg[0])) {
if (queryFlags & QUERY_BY_NUMBER) {
char *end = NULL;
recNumber = strtoul(arg, &end, 10);
if ((*end) || (end == arg) || (recNumber == ULONG_MAX)) {
fprintf(stderr, "invalid package name: %s\n", arg);
fprintf(stderr, "invalid package number: %s\n", arg);
return 1;
}
message(MESS_DEBUG, "showing package: %d\n", recNumber);

View File

@ -13,6 +13,7 @@ enum querysources { QUERY_PATH, QUERY_PACKAGE, QUERY_ALL, QUERY_SPATH,
#define QUERY_FOR_DOCS (1 << 3)
#define QUERY_FOR_CONFIG (1 << 4)
#define QUERY_FOR_SCRIPTS (1 << 5)
#define QUERY_BY_NUMBER (1 << 6)
int doQuery(char * prefix, enum querysources source, int queryFlags,
char * arg, char * queryFormat);

6
rpm.c
View File

@ -268,6 +268,7 @@ int main(int argc, char ** argv) {
{ "package", 0, 0, 'p' },
{ "percent", 0, &showPercents, 0 },
{ "query", 0, 0, 'q' },
{ "querybynumber", 0, 0, 0 },
{ "queryformat", 1, 0, 0 },
{ "querytags", 0, &queryTags, 0 },
{ "quiet", 0, &quiet, 0 },
@ -525,6 +526,11 @@ int main(int argc, char ** argv) {
argerror(_("only one major mode may be specified"));
bigMode = MODE_RESIGN;
signIt = 1;
} else if (!strcmp(options[long_index].name, "querybynumber")) {
if (bigMode != MODE_UNKNOWN && bigMode != MODE_QUERY)
argerror(_("only one major mode may be specified"));
bigMode = MODE_QUERY;
queryFor |= QUERY_BY_NUMBER;
} else if (!strcmp(options[long_index].name, "queryformat")) {
if (bigMode != MODE_UNKNOWN && bigMode != MODE_QUERY)
argerror(_("only one major mode may be specified"));