static void queryArgCallback(poptContext con, enum poptCallbackReason reason, const struct poptOption * opt, const char * arg, const void * data) { QVA_t qva = &rpmQVKArgs; switch (opt->val) { case 'c': qva->qva_flags |= QUERY_FOR_CONFIG | QUERY_FOR_LIST; break; case 'd': qva->qva_flags |= QUERY_FOR_DOCS | QUERY_FOR_LIST; break; case 'L': qva->qva_flags |= QUERY_FOR_LICENSE | QUERY_FOR_LIST; break; case 'l': qva->qva_flags |= QUERY_FOR_LIST; break; case 's': qva->qva_flags |= QUERY_FOR_STATE | QUERY_FOR_LIST; break; case POPT_DUMP: qva->qva_flags |= QUERY_FOR_DUMPFILES | QUERY_FOR_LIST; break; case POPT_QUERYFORMAT: rstrcat(&qva->qva_queryFormat, arg); break; case 'i': if (qva->qva_mode == 'q') { const char * infoCommand[] = { "--info", NULL }; (void) poptStuffArgs(con, infoCommand); } break; case RPMCLI_POPT_NODEPS: qva->qva_flags |= VERIFY_DEPS; break; case RPMCLI_POPT_NOFILEDIGEST: qva->qva_flags |= VERIFY_FILEDIGEST; break; case RPMCLI_POPT_NOCONTEXTS: qva->qva_flags |= VERIFY_CONTEXTS; break; #ifdef NOTYET case RPMCLI_POPT_FORCE: ia->probFilter |= ( RPMPROB_FILTER_REPLACEPKG | RPMPROB_FILTER_REPLACEOLDFILES | RPMPROB_FILTER_REPLACENEWFILES | RPMPROB_FILTER_OLDPACKAGE ); break; #endif case RPMCLI_POPT_NOSCRIPTS: qva->qva_flags |= VERIFY_SCRIPT; break; } }
static void queryArgCallback(poptContext con, enum poptCallbackReason reason, const struct poptOption * opt, const char * arg, const void * data) { QVA_t qva = &rpmQVKArgs; switch (opt->val) { case 'c': qva->qva_flags |= QUERY_FOR_CONFIG | QUERY_FOR_LIST; break; case 'd': qva->qva_flags |= QUERY_FOR_DOCS | QUERY_FOR_LIST; break; case 'l': qva->qva_flags |= QUERY_FOR_LIST; break; case 's': qva->qva_flags |= QUERY_FOR_STATE | QUERY_FOR_LIST; break; case POPT_DUMP: qva->qva_flags |= QUERY_FOR_DUMPFILES | QUERY_FOR_LIST; break; case POPT_QUERYFORMAT: if (arg) { char * qf = (char *)qva->qva_queryFormat; if (qf) { size_t len = strlen(qf) + strlen(arg) + 1; qf = xrealloc(qf, len); strcat(qf, arg); } else { qf = xmalloc(strlen(arg) + 1); strcpy(qf, arg); } qva->qva_queryFormat = qf; } break; case 'i': if (qva->qva_mode == 'q') { const char * infoCommand[] = { "--info", NULL }; (void) poptStuffArgs(con, infoCommand); } break; case RPMCLI_POPT_NODIGEST: qva->qva_flags |= VERIFY_DIGEST; break; case RPMCLI_POPT_NOSIGNATURE: qva->qva_flags |= VERIFY_SIGNATURE; break; case RPMCLI_POPT_NOHDRCHK: qva->qva_flags |= VERIFY_HDRCHK; break; case RPMCLI_POPT_NODEPS: qva->qva_flags |= VERIFY_DEPS; break; case RPMCLI_POPT_NOMD5: qva->qva_flags |= VERIFY_MD5; break; case RPMCLI_POPT_NOCONTEXTS: qva->qva_flags |= VERIFY_CONTEXTS; break; #ifdef NOTYET case RPMCLI_POPT_FORCE: ia->probFilter |= ( RPMPROB_FILTER_REPLACEPKG | RPMPROB_FILTER_REPLACEOLDFILES | RPMPROB_FILTER_REPLACENEWFILES | RPMPROB_FILTER_OLDPACKAGE ); break; #endif case RPMCLI_POPT_NOSCRIPTS: qva->qva_flags |= VERIFY_SCRIPT; break; } }