From 870b1ea849237faab38da0be44270cd5e812ff27 Mon Sep 17 00:00:00 2001 From: root Date: Sun, 2 Jun 1996 18:04:36 +0000 Subject: [PATCH] add --querybynumber CVS patchset: 597 CVS date: 1996/06/02 18:04:36 --- query.c | 4 ++-- query.h | 1 + rpm.c | 6 ++++++ 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/query.c b/query.c index 8a4aa0b..ec76e4a 100644 --- a/query.c +++ b/query.c @@ -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); diff --git a/query.h b/query.h index e4d11a9..a38dc0b 100644 --- a/query.h +++ b/query.h @@ -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); diff --git a/rpm.c b/rpm.c index d1c12ab..86e119a 100755 --- a/rpm.c +++ b/rpm.c @@ -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")); -- 2.7.4