1) split query option parsing into popt subtables

2) moved query code into rpmlib

CVS patchset: 2502
CVS date: 1998/10/27 05:41:02
This commit is contained in:
ewt 1998-10-27 05:41:02 +00:00
parent 2796491ba3
commit 62efcbd3fc
9 changed files with 153 additions and 120 deletions

View File

@ -23,10 +23,10 @@ config_SCRIPTS = find-provides find-requires mkinstalldirs
noinst_HEADERS = \
acconfig.h build.h checksig.h ftp.h \
install.h query.h system.h url.h \
install.h system.h url.h \
verify.h
rpm_SOURCES = build.c checksig.c ftp.c install.c query.c rpm.c url.c \
rpm_SOURCES = build.c checksig.c ftp.c install.c rpm.c url.c \
verify.c
rpm_LDADD = -lrpmbuild -lpopt -lrpm @LIBMISC@

View File

@ -140,10 +140,10 @@ config_SCRIPTS = find-provides find-requires mkinstalldirs
noinst_HEADERS = \
acconfig.h build.h checksig.h ftp.h \
install.h query.h system.h url.h \
install.h system.h url.h \
verify.h
rpm_SOURCES = build.c checksig.c ftp.c install.c query.c rpm.c url.c \
rpm_SOURCES = build.c checksig.c ftp.c install.c rpm.c url.c \
verify.c
rpm_LDADD = -lrpmbuild -lpopt -lrpm @LIBMISC@
@ -169,8 +169,7 @@ rpm2cpio_LDFLAGS =
rpmconvert_OBJECTS = convertdb.o oldrpmdb.o
rpmconvert_DEPENDENCIES =
rpmconvert_LDFLAGS =
rpm_OBJECTS = build.o checksig.o ftp.o install.o query.o rpm.o url.o \
verify.o
rpm_OBJECTS = build.o checksig.o ftp.o install.o rpm.o url.o verify.o
rpm_DEPENDENCIES =
rpm_LDFLAGS =
SCRIPTS = $(bin_SCRIPTS) $(config_SCRIPTS)
@ -197,7 +196,7 @@ DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = tar
GZIP = --best
DEP_FILES = .deps/build.P .deps/checksig.P .deps/convertdb.P \
.deps/ftp.P .deps/install.P .deps/oldrpmdb.P .deps/query.P .deps/rpm.P \
.deps/ftp.P .deps/install.P .deps/oldrpmdb.P .deps/rpm.P \
.deps/rpm2cpio.P .deps/url.P .deps/verify.P
SOURCES = $(rpm2cpio_SOURCES) $(rpmconvert_SOURCES) $(rpm_SOURCES)
OBJECTS = $(rpm2cpio_OBJECTS) $(rpmconvert_OBJECTS) $(rpm_OBJECTS)

View File

@ -16,7 +16,7 @@ librpm_a_SOURCES = \
cpio.c dbindex.c depends.c falloc.c \
formats.c fs.c header.c install.c \
lookup.c macro.c md5.c md5sum.c \
messages.c misc.c oldheader.c package.c \
messages.c misc.c oldheader.c package.c query.c \
rebuilddb.c rpmdb.c rpmerr.c rpmlead.c \
rpmrc.c signature.c stringbuf.c tagtable.c \
tread.c uninstall.c verify.c

View File

@ -133,7 +133,7 @@ librpm_a_SOURCES = \
cpio.c dbindex.c depends.c falloc.c \
formats.c fs.c header.c install.c \
lookup.c macro.c md5.c md5sum.c \
messages.c misc.c oldheader.c package.c \
messages.c misc.c oldheader.c package.c query.c \
rebuilddb.c rpmdb.c rpmerr.c rpmlead.c \
rpmrc.c signature.c stringbuf.c tagtable.c \
tread.c uninstall.c verify.c
@ -151,8 +151,8 @@ LDFLAGS = @LDFLAGS@
librpm_a_LIBADD =
librpm_a_OBJECTS = cpio.o dbindex.o depends.o falloc.o formats.o fs.o \
header.o install.o lookup.o macro.o md5.o md5sum.o messages.o misc.o \
oldheader.o package.o rebuilddb.o rpmdb.o rpmerr.o rpmlead.o rpmrc.o \
signature.o stringbuf.o tagtable.o tread.o uninstall.o verify.o
oldheader.o package.o query.o rebuilddb.o rpmdb.o rpmerr.o rpmlead.o \
rpmrc.o signature.o stringbuf.o tagtable.o tread.o uninstall.o verify.o
CFLAGS = @CFLAGS@
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS)
LINK = $(CC) $(CFLAGS) $(LDFLAGS) -o $@
@ -169,9 +169,10 @@ DEP_FILES = .deps/cpio.P .deps/dbindex.P .deps/depends.P .deps/falloc.P \
.deps/formats.P .deps/fs.P .deps/header.P .deps/install.P \
.deps/lookup.P .deps/macro.P .deps/md5.P .deps/md5sum.P \
.deps/messages.P .deps/misc.P .deps/oldheader.P .deps/package.P \
.deps/rebuilddb.P .deps/rpmdb.P .deps/rpmerr.P .deps/rpmlead.P \
.deps/rpmrc.P .deps/signature.P .deps/stringbuf.P .deps/tagtable \
.deps/tagtable.P .deps/tread.P .deps/uninstall.P .deps/verify.P
.deps/query.P .deps/rebuilddb.P .deps/rpmdb.P .deps/rpmerr.P \
.deps/rpmlead.P .deps/rpmrc.P .deps/signature.P .deps/stringbuf.P \
.deps/tagtable .deps/tagtable.P .deps/tread.P .deps/uninstall.P \
.deps/verify.P
SOURCES = $(librpm_a_SOURCES)
OBJECTS = $(librpm_a_OBJECTS)

View File

@ -5,8 +5,7 @@
#endif
#include "build/rpmbuild.h"
#include "query.h"
#include "popt/popt.h"
#include "url.h"
static char * permsString(int mode);
@ -18,6 +17,88 @@ static void printFileInfo(char * name, unsigned int size, unsigned short mode,
char * owner, char * group, int uid, int gid,
char * linkto);
#define POPT_QUERYFORMAT 1000
#define POPT_WHATREQUIRES 1001
#define POPT_WHATPROVIDES 1002
#define POPT_QUERYBYNUMBER 1003
#define POPT_TRIGGEREDBY 1004
#define POPT_DUMP 1005
static void queryArgCallback(poptContext con, enum poptCallbackReason reason,
const struct poptOption * opt, const char * arg,
struct rpmQueryArguments * data);
struct poptOption rpmQuerySourcePoptTable[] = {
{ NULL, '\0', POPT_ARG_CALLBACK | POPT_CBFLAG_INC_DATA,
queryArgCallback, 0, NULL, NULL },
{ "file", 'f', 0, 0, 'f', "query package owning file", "FILE" },
{ "group", 'g', 0, 0, 'g', "query packages in group", "GROUP" },
{ "package", 'p', 0, 0, 'p', "query a package file" },
{ "triggeredby", '\0', 0, 0, POPT_TRIGGEREDBY,
"query the pacakges triggered by the package", "PACKAGE" },
{ "whatrequires", '\0', 0, 0, POPT_WHATREQUIRES,
"query the packages which require a capability", "CAPABILITY" },
{ "whatprovides", '\0', 0, 0, POPT_WHATPROVIDES,
"query the packages which provide a capability", "CAPABILITY" },
{ 0, 0, 0, 0, 0 }
};
struct poptOption rpmQueryPoptTable[] = {
{ NULL, '\0', POPT_ARG_CALLBACK | POPT_CBFLAG_INC_DATA,
queryArgCallback, 0, NULL, NULL },
{ "configfiles", 'c', 0, 0, 'c', "list all configuration files" },
{ "docfiles", 'd', 0, 0, 'd', "list all documetnation files" },
{ "dump", '\0', 0, 0, POPT_DUMP, "dump basic file information" },
{ "list", 'l', 0, 0, 'l', "list files in package" },
{ "qf", '\0', POPT_ARG_STRING | POPT_ARGFLAG_DOC_HIDDEN, 0,
POPT_QUERYFORMAT },
{ "querybynumber", '\0', POPT_ARGFLAG_DOC_HIDDEN, 0,
POPT_QUERYBYNUMBER },
{ "queryformat", '\0', POPT_ARG_STRING, 0, POPT_QUERYFORMAT,
"use the following query format", "QUERYFORMAT" },
{ "state", 's', 0, 0, 's', "display the states of the listed files" },
{ "verbose", 'v', 0, 0, 'v', "display a verbose filelisting" },
{ 0, 0, 0, 0, 0 }
};
static void queryArgCallback(poptContext con, enum poptCallbackReason reason,
const struct poptOption * opt, const char * arg,
struct rpmQueryArguments * data) {
int len;
switch (opt->val) {
case 'c': data->flags |= QUERY_FOR_CONFIG | QUERY_FOR_LIST; break;
case 'd': data->flags |= QUERY_FOR_DOCS | QUERY_FOR_LIST; break;
case 'l': data->flags |= QUERY_FOR_LIST; break;
case 's': data->flags |= QUERY_FOR_STATE | QUERY_FOR_LIST; break;
case POPT_DUMP: data->flags |= QUERY_FOR_DUMPFILES | QUERY_FOR_LIST; break;
case 'a': data->source |= QUERY_ALL; data->sourceCount++; break;
case 'f': data->source |= QUERY_PATH; data->sourceCount++; break;
case 'g': data->source |= QUERY_GROUP; data->sourceCount++; break;
case 'p': data->source |= QUERY_RPM; data->sourceCount++; break;
case POPT_WHATPROVIDES: data->source |= QUERY_WHATPROVIDES;
data->sourceCount++; break;
case POPT_WHATREQUIRES: data->source |= QUERY_WHATREQUIRES;
data->sourceCount++; break;
case POPT_QUERYBYNUMBER: data->source |= QUERY_DBOFFSET;
data->sourceCount++; break;
case POPT_TRIGGEREDBY: data->source |= QUERY_TRIGGEREDBY;
data->sourceCount++; break;
case POPT_QUERYFORMAT:
if (data->queryFormat) {
len = strlen(data->queryFormat) + strlen(arg) + 1;
data->queryFormat = realloc(data->queryFormat, len);
strcat(data->queryFormat, arg);
} else {
data->queryFormat = malloc(strlen(arg) + 1);
strcpy(data->queryFormat, arg);
}
break;
}
}
static int queryHeader(Header h, char * chptr) {
char * str;
char * error;
@ -328,7 +409,7 @@ static void showMatches(rpmdb db, dbiIndexSet matches, int queryFlags,
}
}
int doQuery(char * prefix, enum querysources source, int queryFlags,
int rpmQuery(char * prefix, enum rpmQuerySources source, int queryFlags,
char * arg, char * queryFormat) {
Header h;
int offset;
@ -534,18 +615,18 @@ int doQuery(char * prefix, enum querysources source, int queryFlags,
return retcode;
}
void queryPrintTags(void) {
void rpmDisplayQueryTags(FILE * f) {
const struct headerTagTableEntry * t;
int i;
const struct headerSprintfExtension * ext = rpmHeaderFormats;
for (i = 0, t = rpmTagTable; i < rpmTagTableSize; i++, t++) {
fprintf(stdout, "%s\n", t->name + 7);
fprintf(f, "%s\n", t->name + 7);
}
while (ext->name) {
if (ext->type == HEADER_EXT_TAG)
fprintf(stdout, "%s\n", ext->name + 7), ext++;
fprintf(f, "%s\n", ext->name + 7), ext++;
else if (ext->type == HEADER_EXT_MORE)
ext = ext->u.more;
else

View File

@ -518,6 +518,31 @@ int rpmGetFilesystemList(char *** listptr, int * num);
int rpmGetFilesystemUsage(char ** filelist, int_32 * fssizes, int numFiles,
uint_32 ** usagesPtr, int flags);
enum rpmQuerySources { QUERY_PACKAGE = 0, QUERY_PATH, QUERY_ALL, QUERY_RPM,
QUERY_GROUP, QUERY_WHATPROVIDES, QUERY_WHATREQUIRES,
QUERY_DBOFFSET, QUERY_TRIGGEREDBY };
#define QUERY_FOR_LIST (1 << 1)
#define QUERY_FOR_STATE (1 << 2)
#define QUERY_FOR_DOCS (1 << 3)
#define QUERY_FOR_CONFIG (1 << 4)
#define QUERY_FOR_DUMPFILES (1 << 8)
extern struct poptOption rpmQuerySourcePoptTable[];
extern struct poptOption rpmQueryPoptTable[];
struct rpmQueryArguments {
int flags;
enum rpmQuerySources source;
int sourceCount; /* > 1 is an error */
char * queryFormat;
int verbose;
};
int rpmQuery(char * prefix, enum rpmQuerySources source, int queryFlags,
char * arg, char * queryFormat);
void rpmDisplayQueryTags(FILE * f);
#ifdef __cplusplus
}
#endif

View File

@ -6,7 +6,6 @@ build.c
checksig.c
ftp.c
install.c
query.c
rpm.c
url.c
verify.c
@ -47,6 +46,7 @@ lib/messages.c
lib/misc.c
lib/oldheader.c
lib/package.c
lib/query.c
lib/rebuilddb.c
lib/rpmdb.c
lib/rpmerr.c

25
query.h
View File

@ -1,25 +0,0 @@
#ifndef H_QUERY
#define H_QUERY
#include <rpmlib.h>
enum querysources { QUERY_PATH, QUERY_PACKAGE, QUERY_ALL, QUERY_RPM,
QUERY_GROUP, QUERY_WHATPROVIDES, QUERY_WHATREQUIRES,
QUERY_DBOFFSET, QUERY_TRIGGEREDBY };
#define QUERY_FOR_LIST (1 << 1)
#define QUERY_FOR_STATE (1 << 2)
#define QUERY_FOR_DOCS (1 << 3)
#define QUERY_FOR_CONFIG (1 << 4)
#define QUERY_FOR_DUMPFILES (1 << 8)
int doQuery(char * prefix, enum querysources source, int queryFlags,
char * arg, char * queryFormat);
void queryPrintTags(void);
/* 0 found matches */
/* 1 no matches */
/* 2 error */
int findPackageByLabel(rpmdb db, char * arg, dbiIndexSet * matches);
#endif

100
rpm.c
View File

@ -10,22 +10,17 @@
#include "query.h"
#include "verify.h"
#define GETOPT_QUERYFORMAT 1000
#define GETOPT_WHATREQUIRES 1001
#define GETOPT_WHATPROVIDES 1002
#define GETOPT_REBUILD 1003
#define GETOPT_RECOMPILE 1004
#define GETOPT_ADDSIGN 1005
#define GETOPT_RESIGN 1006
#define GETOPT_BUILDROOT 1007
#define GETOPT_QUERYBYNUMBER 1009
#define GETOPT_DBPATH 1010
#define GETOPT_TIMECHECK 1012
#define GETOPT_REBUILDDB 1013
#define GETOPT_INSTALL 1014
#define GETOPT_RMSOURCE 1015
#define GETOPT_RELOCATE 1016
#define GETOPT_TRIGGEREDBY 1017
#define GETOPT_SHOWRC 1018
#define GETOPT_BUILDPLATFORM 1019
#define GETOPT_BUILDARCH 1020
@ -44,7 +39,6 @@ static int allMatches;
static char * arch;
static int badReloc;
static int clean;
static int dump;
static int excldocs;
static int force;
static char * ftpPort;
@ -82,6 +76,7 @@ static int test;
static int rpm_version;
static struct rpmQueryArguments queryArgs;
/* the structure describing the options we take and the defaults */
static struct poptOption optionsTable[] = {
{ "addsign", '\0', 0, 0, GETOPT_ADDSIGN },
@ -96,17 +91,12 @@ static struct poptOption optionsTable[] = {
{ "buildroot", '\0', POPT_ARG_STRING, 0, GETOPT_BUILDROOT },
{ "checksig", 'K', 0, 0, 'K' },
{ "clean", '\0', 0, &clean, 0 },
{ "configfiles", 'c', 0, 0, 'c' },
{ "dbpath", '\0', POPT_ARG_STRING, 0, GETOPT_DBPATH },
{ "docfiles", 'd', 0, 0, 'd' },
{ "dump", '\0', 0, &dump, 0 },
{ "erase", 'e', 0, 0, 'e' },
{ "excludedocs", '\0', 0, &excldocs, 0},
{ "file", 'f', 0, 0, 'f' },
{ "force", '\0', 0, &force, 0 },
{ "ftpport", '\0', POPT_ARG_STRING, &ftpPort, 0},
{ "ftpproxy", '\0', POPT_ARG_STRING, &ftpProxy, 0},
{ "group", 'g', 0, 0, 'g' },
{ "hash", 'h', 0, &showHash, 0 },
{ "help", '\0', 0, &help, 0 },
{ NULL, 'i', 0, 0, 'i' },
@ -117,7 +107,6 @@ static struct poptOption optionsTable[] = {
/* info and install both using 'i' is dumb */
{ "install", '\0', 0, 0, GETOPT_INSTALL },
{ "justdb", '\0', 0, &justdb, 0 },
{ "list", 'l', 0, 0, 'l' },
{ "nodeps", '\0', 0, &noDeps, 0 },
{ "nofiles", '\0', 0, &noFiles, 0 },
{ "nolang", '\0', 0, &noLang, 0 },
@ -127,14 +116,10 @@ static struct poptOption optionsTable[] = {
{ "noscripts", '\0', 0, &noScripts, 0 },
{ "notriggers", '\0', 0, &noTriggers, 0 },
{ "oldpackage", '\0', 0, &oldPackage, 0 },
{ "package", 'p', 0, 0, 'p' },
{ "percent", '\0', 0, &showPercents, 0 },
{ "pipe", '\0', POPT_ARG_STRING, &pipeOutput, 0 },
{ "prefix", '\0', POPT_ARG_STRING, &prefix, 0 },
{ "qf", '\0', POPT_ARG_STRING, 0, GETOPT_QUERYFORMAT },
{ "query", 'q', 0, 0, 'q' },
{ "querybynumber", '\0', 0, 0, GETOPT_QUERYBYNUMBER },
{ "queryformat", '\0', POPT_ARG_STRING, 0, GETOPT_QUERYFORMAT },
{ "query", 'q', 0, NULL, 'q' },
{ "querytags", '\0', 0, &queryTags, 0 },
{ "quiet", '\0', 0, &quiet, 0 },
{ "rcfile", '\0', POPT_ARG_STRING, &rcfile, 0 },
@ -150,19 +135,19 @@ static struct poptOption optionsTable[] = {
{ "short-circuit", '\0', 0, &shortCircuit, 0 },
{ "showrc", '\0', 0, &showrc, GETOPT_SHOWRC },
{ "sign", '\0', 0, &signIt, 0 },
{ "state", 's', 0, 0, 's' },
{ "tarball", 't', POPT_ARG_STRING, 0, 't' },
{ "test", '\0', 0, &test, 0 },
{ "timecheck", '\0', POPT_ARG_STRING, 0, GETOPT_TIMECHECK },
{ "triggeredby", '\0', 0, 0, GETOPT_TRIGGEREDBY },
{ "upgrade", 'U', 0, 0, 'U' },
{ "uninstall", 'u', 0, 0, 'u' },
{ "verbose", 'v', 0, 0, 'v' },
{ "verify", 'V', 0, 0, 'V' },
{ NULL, 'y', 0, 0, 'V' },
{ "version", '\0', 0, &rpm_version, 0 },
{ "whatrequires", '\0', 0, 0, GETOPT_WHATREQUIRES },
{ "whatprovides", '\0', 0, 0, GETOPT_WHATPROVIDES },
{ NULL, '\0', POPT_ARG_INCLUDE_TABLE,
rpmQuerySourcePoptTable, 0, (void *) &queryArgs, NULL },
{ NULL, '\0', POPT_ARG_INCLUDE_TABLE,
rpmQueryPoptTable, 0, (void *) &queryArgs, NULL },
{ 0, 0, 0, 0, 0 }
};
@ -501,10 +486,9 @@ static void printHelp(void) {
int main(int argc, char ** argv) {
enum modes bigMode = MODE_UNKNOWN;
enum querysources querySource = QUERY_PACKAGE;
enum rpmQuerySources querySource = QUERY_PACKAGE;
enum verifysources verifySource = VERIFY_PACKAGE;
int arg, len;
int queryFor = 0;
int installFlags = 0, uninstallFlags = 0, interfaceFlags = 0;
int buildAmount = 0;
int gotDbpath = 0, building = 0, verifyFlags;
@ -512,7 +496,6 @@ int main(int argc, char ** argv) {
int checksigFlags = 0;
int timeCheck = 0;
int addSign = NEW_SIGNATURE;
char * queryFormat = NULL;
char buildChar = ' ';
char * specFile;
char * tce;
@ -538,7 +521,6 @@ int main(int argc, char ** argv) {
arch = NULL;
badReloc = 0;
clean = 0;
dump = 0;
excldocs = 0;
force = 0;
ftpProxy = NULL;
@ -632,6 +614,8 @@ int main(int argc, char ** argv) {
rpmSetVerbosity(RPMMESS_NORMAL); /* XXX silly use by showrc */
poptResetContext(optCon);
if (queryArgs.queryFormat) free(queryArgs.queryFormat);
memset(&queryArgs, 0, sizeof(queryArgs));
while ((arg = poptGetNextOpt(optCon)) > 0) {
optArg = poptGetOptArg(optCon);
@ -731,22 +715,6 @@ int main(int argc, char ** argv) {
installFlags |= RPMINSTALL_UPGRADE;
break;
case 's':
queryFor |= QUERY_FOR_LIST | QUERY_FOR_STATE;
break;
case 'l':
queryFor |= QUERY_FOR_LIST;
break;
case 'd':
queryFor |= QUERY_FOR_DOCS | QUERY_FOR_LIST;
break;
case 'c':
queryFor |= QUERY_FOR_CONFIG | QUERY_FOR_LIST;
break;
case 'p':
if (querySource != QUERY_PACKAGE && querySource != QUERY_RPM)
argerror(_("one type of query/verify may be performed at a " "time"));
@ -778,17 +746,7 @@ int main(int argc, char ** argv) {
verifySource = VERIFY_EVERY;
break;
case GETOPT_QUERYFORMAT:
if (queryFormat) {
len = strlen(queryFormat) + strlen(optArg) + 1;
queryFormat = realloc(queryFormat, len);
strcat(queryFormat, optArg);
} else {
queryFormat = malloc(strlen(optArg) + 1);
strcpy(queryFormat, optArg);
}
break;
#ifdef FOO
case GETOPT_WHATREQUIRES:
if (querySource != QUERY_PACKAGE &&
querySource != QUERY_WHATREQUIRES)
@ -812,6 +770,7 @@ int main(int argc, char ** argv) {
"time"));
querySource = QUERY_TRIGGEREDBY;
break;
#endif
case GETOPT_REBUILD:
if (bigMode != MODE_UNKNOWN && bigMode != MODE_REBUILD)
@ -863,14 +822,6 @@ int main(int argc, char ** argv) {
gotDbpath = 1;
break;
case GETOPT_QUERYBYNUMBER:
if (querySource != QUERY_PACKAGE && querySource != QUERY_RPM)
argerror(_("one type of query may be performed at a "
"time"));
querySource = QUERY_DBOFFSET;
verifySource = VERIFY_RPM;
break;
case GETOPT_TIMECHECK:
tce = NULL;
timeCheck = strtoul(optArg, &tce, 10);
@ -941,6 +892,13 @@ int main(int argc, char ** argv) {
bigMode = MODE_QUERYTAGS;
}
if (queryArgs.sourceCount) {
if (querySource != QUERY_PACKAGE || queryArgs.sourceCount > 1)
argerror(_("one type of query/verify may be performed at a "
"time"));
querySource = queryArgs.source;
}
if (buildRootOverride && bigMode != MODE_BUILD &&
bigMode != MODE_REBUILD && bigMode != MODE_TARBUILD) {
argerror("--buildroot may only be used during package builds");
@ -956,10 +914,10 @@ int main(int argc, char ** argv) {
bigMode != MODE_RECOMPILE && bigMode != MODE_TARBUILD)
argerror(_("--timecheck may only be used during package builds"));
if (bigMode != MODE_QUERY && queryFor)
if (bigMode != MODE_QUERY && queryArgs.flags)
argerror(_("unexpected query specifiers"));
if (bigMode != MODE_QUERY && queryFormat)
if (bigMode != MODE_QUERY && queryArgs.queryFormat)
argerror(_("unexpected query specifiers"));
if (bigMode != MODE_QUERY && bigMode != MODE_VERIFY &&
@ -1082,12 +1040,6 @@ int main(int argc, char ** argv) {
if (oldPackage && !(installFlags & RPMINSTALL_UPGRADE))
argerror(_("--oldpackage may only be used during upgrades"));
if (bigMode != MODE_QUERY && dump)
argerror(_("--dump may only be used during queries"));
if (bigMode == MODE_QUERY && dump && !(queryFor & QUERY_FOR_LIST))
argerror(_("--dump of queries must be used with -l, -c, or -d"));
if ((ftpProxy || ftpPort) && !(bigMode == MODE_INSTALL ||
((bigMode == MODE_QUERY && querySource == QUERY_RPM)) ||
((bigMode == MODE_VERIFY && querySource == VERIFY_RPM))))
@ -1165,7 +1117,7 @@ int main(int argc, char ** argv) {
if (argc != 2)
argerror(_("unexpected arguments to --querytags "));
queryPrintTags();
rpmDisplayQueryTags(stdout);
break;
case MODE_INITDB:
@ -1328,18 +1280,18 @@ int main(int argc, char ** argv) {
break;
case MODE_QUERY:
if (dump) queryFor |= QUERY_FOR_DUMPFILES;
if (querySource == QUERY_ALL) {
if (poptPeekArg(optCon))
argerror(_("extra arguments given for query of all packages"));
ec = doQuery(rootdir, QUERY_ALL, queryFor, NULL, queryFormat);
ec = rpmQuery(rootdir, QUERY_ALL, queryArgs.flags, NULL,
queryArgs.queryFormat);
} else {
if (!poptPeekArg(optCon))
argerror(_("no arguments given for query"));
while ((pkg = poptGetArg(optCon)))
ec = doQuery(rootdir, querySource, queryFor, pkg, queryFormat);
ec = rpmQuery(rootdir, querySource, queryArgs.flags, pkg,
queryArgs.queryFormat);
}
break;
@ -1368,7 +1320,7 @@ int main(int argc, char ** argv) {
}
/* keeps memory leak checkers quiet */
if (queryFormat) free(queryFormat);
if (queryArgs.queryFormat) free(queryArgs.queryFormat);
return ec;
}