poptQV.c | poptQV.c | |||
---|---|---|---|---|
skipping to change at line 72 | skipping to change at line 72 | |||
case 'A': /* from --addsign */ | case 'A': /* from --addsign */ | |||
case 'D': /* from --delsign */ | case 'D': /* from --delsign */ | |||
case 'I': /* from --import */ | case 'I': /* from --import */ | |||
case 'K': /* from --checksig, -K */ | case 'K': /* from --checksig, -K */ | |||
case 'R': /* from --resign */ | case 'R': /* from --resign */ | |||
if (qva->qva_mode == '\0' || strchr("qQ ", qva->qva_mode)) { | if (qva->qva_mode == '\0' || strchr("qQ ", qva->qva_mode)) { | |||
qva->qva_mode = opt->val; | qva->qva_mode = opt->val; | |||
qva->qva_char = ' '; | qva->qva_char = ' '; | |||
} | } | |||
break; | break; | |||
case 'a': qva->qva_source |= RPMQV_ALL; qva->qva_sourceCount++; break; | case 'a': *((unsigned *)&qva->qva_source) |= RPMQV_ALL; qva->qva_source | |||
case 'f': qva->qva_source |= RPMQV_PATH; qva->qva_sourceCount++; break; | Count++; break; | |||
case 'g': qva->qva_source |= RPMQV_GROUP; qva->qva_sourceCount++; break | case 'f': *((unsigned *)&qva->qva_source) |= RPMQV_PATH; qva->qva_sourc | |||
; | eCount++; break; | |||
case 'p': qva->qva_source |= RPMQV_RPM; qva->qva_sourceCount++; break; | case 'g': *((unsigned *)&qva->qva_source) |= RPMQV_GROUP; qva->qva_sour | |||
case POPT_WHATNEEDS: qva->qva_source |= RPMQV_WHATNEEDS; | ceCount++; break; | |||
case 'p': *((unsigned *)&qva->qva_source) |= RPMQV_RPM; qva->qva_source | ||||
Count++; break; | ||||
case POPT_WHATNEEDS: *((unsigned *)&qva->qva_source) |= RPMQV_WHATNEEDS | ||||
; | ||||
qva->qva_sourceCount++; break; | qva->qva_sourceCount++; break; | |||
case POPT_WHATPROVIDES: qva->qva_source |= RPMQV_WHATPROVIDES; | case POPT_WHATPROVIDES: *((unsigned *)&qva->qva_source) |= RPMQV_WHATPR OVIDES; | |||
qva->qva_sourceCount++; break; | qva->qva_sourceCount++; break; | |||
case POPT_WHATREQUIRES: qva->qva_source |= RPMQV_WHATREQUIRES; | case POPT_WHATREQUIRES: *((unsigned *)&qva->qva_source) |= RPMQV_WHATRE QUIRES; | |||
qva->qva_sourceCount++; break; | qva->qva_sourceCount++; break; | |||
case POPT_WHATCONFLICTS: qva->qva_source |= RPMQV_WHATCONFLICTS; | case POPT_WHATCONFLICTS: *((unsigned *)&qva->qva_source) |= RPMQV_WHATC ONFLICTS; | |||
qva->qva_sourceCount++; break; | qva->qva_sourceCount++; break; | |||
case POPT_WHATOBSOLETES: qva->qva_source |= RPMQV_WHATOBSOLETES; | case POPT_WHATOBSOLETES: *((unsigned *)&qva->qva_source) |= RPMQV_WHATO BSOLETES; | |||
qva->qva_sourceCount++; break; | qva->qva_sourceCount++; break; | |||
case POPT_TRIGGEREDBY: qva->qva_source |= RPMQV_TRIGGEREDBY; | case POPT_TRIGGEREDBY: *((unsigned *)&qva->qva_source) |= RPMQV_TRIGGER EDBY; | |||
qva->qva_sourceCount++; break; | qva->qva_sourceCount++; break; | |||
case POPT_QUERYBYSOURCEPKGID: qva->qva_source |= RPMQV_SOURCEPKGID; | case POPT_QUERYBYSOURCEPKGID: *((unsigned *)&qva->qva_source) |= RPMQV_ SOURCEPKGID; | |||
qva->qva_sourceCount++; break; | qva->qva_sourceCount++; break; | |||
case POPT_QUERYBYPKGID: qva->qva_source |= RPMQV_PKGID; | case POPT_QUERYBYPKGID: *((unsigned *)&qva->qva_source) |= RPMQV_PKGID; | |||
qva->qva_sourceCount++; break; | qva->qva_sourceCount++; break; | |||
case POPT_QUERYBYHDRID: qva->qva_source |= RPMQV_HDRID; | case POPT_QUERYBYHDRID: *((unsigned *)&qva->qva_source) |= RPMQV_HDRID; | |||
qva->qva_sourceCount++; break; | qva->qva_sourceCount++; break; | |||
case POPT_QUERYBYFILEID: qva->qva_source |= RPMQV_FILEID; | case POPT_QUERYBYFILEID: *((unsigned *)&qva->qva_source) |= RPMQV_FILEI D; | |||
qva->qva_sourceCount++; break; | qva->qva_sourceCount++; break; | |||
case POPT_QUERYBYTID: qva->qva_source |= RPMQV_TID; | case POPT_QUERYBYTID: *((unsigned *)&qva->qva_source) |= RPMQV_TID; | |||
qva->qva_sourceCount++; break; | qva->qva_sourceCount++; break; | |||
case POPT_HDLIST: qva->qva_source |= RPMQV_HDLIST; | case POPT_HDLIST: *((unsigned *)&qva->qva_source) |= RPMQV_HDLIST; | |||
qva->qva_sourceCount++; break; | qva->qva_sourceCount++; break; | |||
case POPT_FTSWALK:qva->qva_source |= RPMQV_FTSWALK; | case POPT_FTSWALK: *((unsigned *)&qva->qva_source) |= RPMQV_FTSWALK; | |||
qva->qva_sourceCount++; break; | qva->qva_sourceCount++; break; | |||
/* XXX SPECFILE is not verify sources */ | /* XXX SPECFILE is not verify sources */ | |||
case POPT_SPECFILE: | case POPT_SPECFILE: | |||
qva->qva_source |= RPMQV_SPECFILE; | *((unsigned *)&qva->qva_source) |= RPMQV_SPECFILE; | |||
qva->qva_sourceCount++; | qva->qva_sourceCount++; | |||
break; | break; | |||
/* XXX SPECSRPM is not verify sources */ | /* XXX SPECSRPM is not verify sources */ | |||
case POPT_SPECSRPM: | case POPT_SPECSRPM: | |||
qva->qva_source |= RPMQV_SPECSRPM; | *((unsigned *)&qva->qva_source) |= RPMQV_SPECSRPM; | |||
qva->qva_sourceCount++; | qva->qva_sourceCount++; | |||
break; | break; | |||
case POPT_QUERYBYNUMBER: | case POPT_QUERYBYNUMBER: | |||
qva->qva_source |= RPMQV_DBOFFSET; | *((unsigned *)&qva->qva_source) |= RPMQV_DBOFFSET; | |||
qva->qva_sourceCount++; | qva->qva_sourceCount++; | |||
break; | break; | |||
case POPT_NOPASSWORD: | case POPT_NOPASSWORD: | |||
qva->nopassword = 1; | qva->nopassword = 1; | |||
break; | break; | |||
} | } | |||
} | } | |||
/** | /** | |||
* Common query/verify mode options. | * Common query/verify mode options. | |||
*/ | */ | |||
/*@unchecked@*/ | /*@unchecked@*/ | |||
struct poptOption rpmQVSourcePoptTable[] = { | struct poptOption rpmQVSourcePoptTable[] = { | |||
/*@-type@*/ /* FIX: cast? */ | /*@-type@*/ /* FIX: cast? */ | |||
{ NULL, '\0', POPT_ARG_CALLBACK | POPT_CBFLAG_INC_DATA, | { NULL, '\0', POPT_ARG_CALLBACK | POPT_CBFLAG_INC_DATA, | |||
rpmQVSourceArgCallback, 0, NULL, NULL }, | (void *) rpmQVSourceArgCallback, 0, NULL, NULL }, | |||
/*@=type@*/ | /*@=type@*/ | |||
{ "all", 'a', 0, NULL, 'a', | { "all", 'a', 0, NULL, 'a', | |||
N_("query/verify all packages"), NULL }, | N_("query/verify all packages"), NULL }, | |||
{ "checksig", 'K', POPT_ARGFLAG_DOC_HIDDEN, NULL, 'K', | { "checksig", 'K', POPT_ARGFLAG_DOC_HIDDEN, NULL, 'K', | |||
N_("rpm checksig mode"), NULL }, | N_("rpm checksig mode"), NULL }, | |||
{ "file", 'f', 0, NULL, 'f', | { "file", 'f', 0, NULL, 'f', | |||
N_("query/verify package(s) owning file"), "FILE" }, | N_("query/verify package(s) owning file"), "FILE" }, | |||
{ "group", 'g', 0, NULL, 'g', | { "group", 'g', 0, NULL, 'g', | |||
N_("query/verify package(s) in group"), "GROUP" }, | N_("query/verify package(s) in group"), "GROUP" }, | |||
{ "package", 'p', 0, NULL, 'p', | { "package", 'p', 0, NULL, 'p', | |||
skipping to change at line 216 | skipping to change at line 216 | |||
const struct poptOption * opt, const char * arg, | const struct poptOption * opt, const char * arg, | |||
/*@unused@*/ const void * data) | /*@unused@*/ const void * data) | |||
/*@globals rpmQVKArgs @*/ | /*@globals rpmQVKArgs @*/ | |||
/*@modifies con, rpmQVKArgs @*/ | /*@modifies con, rpmQVKArgs @*/ | |||
{ | { | |||
QVA_t qva = &rpmQVKArgs; | QVA_t qva = &rpmQVKArgs; | |||
/* XXX avoid accidental collisions with POPT_BIT_SET for flags */ | /* XXX avoid accidental collisions with POPT_BIT_SET for flags */ | |||
if (opt->arg == NULL) | if (opt->arg == NULL) | |||
switch (opt->val) { | switch (opt->val) { | |||
case 'c': qva->qva_flags |= QUERY_FOR_CONFIG | QUERY_FOR_LIST; break; | case 'c': *((unsigned *)&qva->qva_flags) |= QUERY_FOR_CONFIG | QUERY_FO | |||
case 'd': qva->qva_flags |= QUERY_FOR_DOCS | QUERY_FOR_LIST; break; | R_LIST; break; | |||
case 'l': qva->qva_flags |= QUERY_FOR_LIST; break; | case 'd': *((unsigned *)&qva->qva_flags) |= QUERY_FOR_DOCS | QUERY_FOR_ | |||
case 's': qva->qva_flags |= QUERY_FOR_STATE | QUERY_FOR_LIST; | LIST; break; | |||
case 'l': *((unsigned *)&qva->qva_flags) |= QUERY_FOR_LIST; break; | ||||
case 's': *((unsigned *)&qva->qva_flags) |= QUERY_FOR_STATE | QUERY_FOR | ||||
_LIST; | ||||
break; | break; | |||
case POPT_DUMP: qva->qva_flags |= QUERY_FOR_DUMPFILES | QUERY_FOR_LIST; | case POPT_DUMP: *((unsigned *)&qva->qva_flags) |= QUERY_FOR_DUMPFILES | QUERY_FOR_LIST; | |||
break; | break; | |||
case POPT_QUERYFORMAT: | case POPT_QUERYFORMAT: | |||
if (arg) { | if (arg) { | |||
char * qf = (char *)qva->qva_queryFormat; | char * qf = (char *)qva->qva_queryFormat; | |||
char * b = NULL; | char * b = NULL; | |||
size_t nb = 0; | size_t nb = 0; | |||
/* Read queryformat from file. */ | /* Read queryformat from file. */ | |||
if (arg[0] == '/') { | if (arg[0] == '/') { | |||
skipping to change at line 253 | skipping to change at line 253 | |||
b[nb--] = '\0'; | b[nb--] = '\0'; | |||
b[nb] = '\0'; | b[nb] = '\0'; | |||
arg = b + 1; | arg = b + 1; | |||
} else | } else | |||
arg = b; | arg = b; | |||
} | } | |||
/* Append to existing queryformat. */ | /* Append to existing queryformat. */ | |||
if (qf) { | if (qf) { | |||
size_t len = strlen(qf) + strlen(arg) + 1; | size_t len = strlen(qf) + strlen(arg) + 1; | |||
qf = xrealloc(qf, len); | qf = (char *) xrealloc(qf, len); | |||
strcat(qf, arg); | strcat(qf, arg); | |||
} else { | } else { | |||
qf = xmalloc(strlen(arg) + 1); | qf = (char *) xmalloc(strlen(arg) + 1); | |||
strcpy(qf, arg); | strcpy(qf, arg); | |||
} | } | |||
qva->qva_queryFormat = qf; | qva->qva_queryFormat = qf; | |||
_qfexit: | _qfexit: | |||
b = _free(b); | b = _free(b); | |||
} | } | |||
break; | break; | |||
case 'i': | case 'i': | |||
if (qva->qva_mode == 'q') { | if (qva->qva_mode == 'q') { | |||
/*@-nullassign -readonlytrans@*/ | /*@-nullassign -readonlytrans@*/ | |||
const char * infoCommand[] = { "--info", NULL }; | const char * infoCommand[] = { "--info", NULL }; | |||
/*@=nullassign =readonlytrans@*/ | /*@=nullassign =readonlytrans@*/ | |||
(void) poptStuffArgs(con, infoCommand); | (void) poptStuffArgs(con, infoCommand); | |||
} | } | |||
break; | break; | |||
case RPMCLI_POPT_NODIGEST: | case RPMCLI_POPT_NODIGEST: | |||
qva->qva_flags |= VERIFY_DIGEST; | *((unsigned *)&qva->qva_flags) |= VERIFY_DIGEST; | |||
break; | break; | |||
case RPMCLI_POPT_NOSIGNATURE: | case RPMCLI_POPT_NOSIGNATURE: | |||
qva->qva_flags |= VERIFY_SIGNATURE; | *((unsigned *)&qva->qva_flags) |= VERIFY_SIGNATURE; | |||
break; | break; | |||
case RPMCLI_POPT_NOHDRCHK: | case RPMCLI_POPT_NOHDRCHK: | |||
qva->qva_flags |= VERIFY_HDRCHK; | *((unsigned *)&qva->qva_flags) |= VERIFY_HDRCHK; | |||
break; | break; | |||
case RPMCLI_POPT_NODEPS: | case RPMCLI_POPT_NODEPS: | |||
qva->qva_flags |= VERIFY_DEPS; | *((unsigned *)&qva->qva_flags) |= VERIFY_DEPS; | |||
break; | break; | |||
case RPMCLI_POPT_NOFDIGESTS: | case RPMCLI_POPT_NOFDIGESTS: | |||
qva->qva_flags |= VERIFY_FDIGEST; | *((unsigned *)&qva->qva_flags) |= VERIFY_FDIGEST; | |||
break; | break; | |||
case RPMCLI_POPT_NOCONTEXTS: | case RPMCLI_POPT_NOCONTEXTS: | |||
qva->qva_flags |= VERIFY_CONTEXTS; | *((unsigned *)&qva->qva_flags) |= VERIFY_CONTEXTS; | |||
break; | break; | |||
case RPMCLI_POPT_NOSCRIPTS: | case RPMCLI_POPT_NOSCRIPTS: | |||
qva->qva_flags |= VERIFY_SCRIPT; | *((unsigned *)&qva->qva_flags) |= VERIFY_SCRIPT; | |||
break; | break; | |||
case RPMCLI_POPT_NOHMACS: | case RPMCLI_POPT_NOHMACS: | |||
qva->qva_flags |= VERIFY_HMAC; | *((unsigned *)&qva->qva_flags) |= VERIFY_HMAC; | |||
break; | break; | |||
/* XXX perhaps POPT_ARG_INT instead of callback. */ | /* XXX perhaps POPT_ARG_INT instead of callback. */ | |||
case POPT_TRUST: | case POPT_TRUST: | |||
{ char * end = NULL; | { char * end = NULL; | |||
long trust = (int) strtol(arg, &end, 0); | long trust = (int) strtol(arg, &end, 0); | |||
/* XXX range checks on trust. */ | /* XXX range checks on trust. */ | |||
/* XXX if (end && *end) argerror(_("non-numeric trust metric.")); */ | /* XXX if (end && *end) argerror(_("non-numeric trust metric.")); */ | |||
qva->trust = trust; | qva->trust = trust; | |||
} break; | } break; | |||
} | } | |||
} | } | |||
/** | /** | |||
* Query mode options. | * Query mode options. | |||
*/ | */ | |||
/*@unchecked@*/ | /*@unchecked@*/ | |||
struct poptOption rpmQueryPoptTable[] = { | struct poptOption rpmQueryPoptTable[] = { | |||
/*@-type@*/ /* FIX: cast? */ | /*@-type@*/ /* FIX: cast? */ | |||
{ NULL, '\0', POPT_ARG_CALLBACK | POPT_CBFLAG_INC_DATA | POPT_CBFLAG_CONTI NUE, | { NULL, '\0', POPT_ARG_CALLBACK | POPT_CBFLAG_INC_DATA | POPT_CBFLAG_CONTI NUE, | |||
queryArgCallback, 0, NULL, NULL }, | (void *) queryArgCallback, 0, NULL, NULL }, | |||
/*@=type@*/ | /*@=type@*/ | |||
{ NULL, '\0', POPT_ARG_INCLUDE_TABLE, rpmQVSourcePoptTable, 0, | { NULL, '\0', POPT_ARG_INCLUDE_TABLE, rpmQVSourcePoptTable, 0, | |||
NULL, NULL }, | NULL, NULL }, | |||
{ "configfiles", 'c', 0, 0, 'c', | { "configfiles", 'c', 0, 0, 'c', | |||
N_("list all configuration files"), NULL }, | N_("list all configuration files"), NULL }, | |||
{ "docfiles", 'd', 0, 0, 'd', | { "docfiles", 'd', 0, 0, 'd', | |||
N_("list all documentation files"), NULL }, | N_("list all documentation files"), NULL }, | |||
{ "dump", '\0', 0, 0, POPT_DUMP, | { "dump", '\0', 0, 0, POPT_DUMP, | |||
N_("dump basic file information"), NULL }, | N_("dump basic file information"), NULL }, | |||
{ NULL, 'i', POPT_ARGFLAG_DOC_HIDDEN, 0, 'i', | { NULL, 'i', POPT_ARGFLAG_DOC_HIDDEN, 0, 'i', | |||
skipping to change at line 382 | skipping to change at line 382 | |||
N_("specify target platform"), N_("CPU-VENDOR-OS") }, | N_("specify target platform"), N_("CPU-VENDOR-OS") }, | |||
POPT_TABLEEND | POPT_TABLEEND | |||
}; | }; | |||
/** | /** | |||
* Verify mode options. | * Verify mode options. | |||
*/ | */ | |||
struct poptOption rpmVerifyPoptTable[] = { | struct poptOption rpmVerifyPoptTable[] = { | |||
/*@-type@*/ /* FIX: cast? */ | /*@-type@*/ /* FIX: cast? */ | |||
{ NULL, '\0', POPT_ARG_CALLBACK | POPT_CBFLAG_INC_DATA | POPT_CBFLAG_CONTI NUE, | { NULL, '\0', POPT_ARG_CALLBACK | POPT_CBFLAG_INC_DATA | POPT_CBFLAG_CONTI NUE, | |||
queryArgCallback, 0, NULL, NULL }, | (void *) queryArgCallback, 0, NULL, NULL }, | |||
/*@=type@*/ | /*@=type@*/ | |||
{ NULL, '\0', POPT_ARG_INCLUDE_TABLE, rpmQVSourcePoptTable, 0, | { NULL, '\0', POPT_ARG_INCLUDE_TABLE, rpmQVSourcePoptTable, 0, | |||
NULL, NULL }, | NULL, NULL }, | |||
{ "aid", '\0', POPT_BIT_SET|POPT_ARGFLAG_TOGGLE|POPT_ARGFLAG_DOC_HIDDEN, | { "aid", '\0', POPT_BIT_SET|POPT_ARGFLAG_TOGGLE|POPT_ARGFLAG_DOC_HIDDEN, | |||
&rpmQVKArgs.depFlags, RPMDEPS_FLAG_ADDINDEPS, | &rpmQVKArgs.depFlags, RPMDEPS_FLAG_ADDINDEPS, | |||
N_("add suggested packages to transaction"), NULL }, | N_("add suggested packages to transaction"), NULL }, | |||
/* Duplicate file attr flags from packages into command line options. */ | /* Duplicate file attr flags from packages into command line options. */ | |||
{ "noconfig", '\0', POPT_BIT_SET|POPT_ARGFLAG_DOC_HIDDEN, | { "noconfig", '\0', POPT_BIT_SET|POPT_ARGFLAG_DOC_HIDDEN, | |||
skipping to change at line 489 | skipping to change at line 489 | |||
POPT_TABLEEND | POPT_TABLEEND | |||
}; | }; | |||
/** | /** | |||
* Signature mode options. | * Signature mode options. | |||
*/ | */ | |||
/*@unchecked@*/ | /*@unchecked@*/ | |||
struct poptOption rpmSignPoptTable[] = { | struct poptOption rpmSignPoptTable[] = { | |||
/*@-type@*/ /* FIX: cast? */ | /*@-type@*/ /* FIX: cast? */ | |||
{ NULL, '\0', POPT_ARG_CALLBACK | POPT_CBFLAG_INC_DATA | POPT_CBFLAG_CONTI NUE, | { NULL, '\0', POPT_ARG_CALLBACK | POPT_CBFLAG_INC_DATA | POPT_CBFLAG_CONTI NUE, | |||
rpmQVSourceArgCallback, 0, NULL, NULL }, | (void *) rpmQVSourceArgCallback, 0, NULL, NULL }, | |||
/*@=type@*/ | /*@=type@*/ | |||
{ "addsign", '\0', 0, NULL, 'A', | { "addsign", '\0', 0, NULL, 'A', | |||
N_("sign package(s) (identical to --resign)"), NULL }, | N_("sign package(s) (identical to --resign)"), NULL }, | |||
{ "checksig", 'K', 0, NULL, 'K', | { "checksig", 'K', 0, NULL, 'K', | |||
N_("verify package signature(s)"), NULL }, | N_("verify package signature(s)"), NULL }, | |||
{ "delsign", '\0', 0, NULL, 'D', | { "delsign", '\0', 0, NULL, 'D', | |||
N_("delete package signatures"), NULL }, | N_("delete package signatures"), NULL }, | |||
{ "import", '\0', 0, NULL, 'I', | { "import", '\0', 0, NULL, 'I', | |||
N_("import an armored public key"), NULL }, | N_("import an armored public key"), NULL }, | |||
{ "resign", '\0', 0, NULL, 'R', | { "resign", '\0', 0, NULL, 'R', | |||
End of changes. 32 change blocks. | ||||
40 lines changed or deleted | 47 lines changed or added | |||
This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |