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);
#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);
{ "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 },
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"));