From: ewt Date: Tue, 20 Feb 1996 21:54:19 +0000 (+0000) Subject: 1) added upgrade arg handling X-Git-Tag: rpm-4.4-release~5367 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=cffbf3f1d004135a3926d589ace685291a9c18a8;p=platform%2Fupstream%2Frpm.git 1) added upgrade arg handling 2) fixed verify of stdin handling CVS patchset: 368 CVS date: 1996/02/20 21:54:19 --- diff --git a/rpm.c b/rpm.c index 6227ee6..77d8d6f 100755 --- a/rpm.c +++ b/rpm.c @@ -191,6 +191,7 @@ int main(int argc, char ** argv) { char * prefix = "/"; char * specFile; char *passPhrase = ""; + char * smallArgv[2] = { NULL, NULL }; struct option options[] = { { "all", 0, 0, 'a' }, { "build", 1, 0, 'b' }, @@ -220,6 +221,7 @@ int main(int argc, char ** argv) { { "stdin-packages", 0, 0, 'P' }, { "stdin-query", 0, 0, 'Q' }, { "test", 0, &test, 0 }, + { "upgrade", 0, 0, 'U' }, { "uninstall", 0, 0, 'u' }, { "verbose", 0, 0, 'v' }, { "verify", 0, 0, 'V' }, @@ -231,7 +233,7 @@ int main(int argc, char ** argv) { exit(-1); while (1) { - arg = getopt_long(argc, argv, "QqVyYhpvPfFilsagGducr:b:", options, + arg = getopt_long(argc, argv, "QqVyUYhpvPfFilsagGducr:b:", options, &long_index); if (arg == -1) break; @@ -311,11 +313,18 @@ int main(int argc, char ** argv) { } else if (!strcmp(options[long_index].name, "info")) queryFor |= QUERY_FOR_INFO; - else + else bigMode = MODE_INSTALL; break; + case 'U': + if (bigMode != MODE_UNKNOWN && bigMode != MODE_INSTALL) + argerror("only one major mode may be specified"); + bigMode = MODE_INSTALL; + installFlags |= INSTALL_UPGRADE; + break; + case 's': queryFor |= QUERY_FOR_LIST | QUERY_FOR_STATE; break; @@ -548,11 +557,12 @@ int main(int argc, char ** argv) { char buffer[255]; int i; + smallArgv[0] = buffer; while (fgets(buffer, 255, stdin)) { i = strlen(buffer) - 1; if (buffer[i] == '\n') buffer[i] = 0; - if (strlen(buffer)) - doVerify(prefix, verifySource, buffer); + if (strlen(buffer)) + doVerify(prefix, verifySource, smallArgv); } } else { if (optind == argc)