blob: 804a62731df84b05e8db1b981b99641f61035e1b [file] [log] [blame]
From: Marco Nenciarini <marco.nenciarini@devise.it>
Date: Wed, 27 Jan 2010 19:46:21 +0100
Subject: [PATCH] uuid: preserve -m option status in -v option handling
Bug: 531396
---
uuid_cli.c | 19 ++++++++++---------
1 files changed, 10 insertions(+), 9 deletions(-)
----
Upstream-Status: Inappropriate [not author]
This patch is from debian ossp-uuid 1.6.2 integration.
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
diff --git a/uuid_cli.c b/uuid_cli.c
index d1b0b11..14a67fe 100644
--- a/uuid_cli.c
+++ b/uuid_cli.c
@@ -140,11 +140,12 @@ int main(int argc, char *argv[])
i = strtol(optarg, &p, 10);
if (*p != '\0')
usage("invalid argument to option 'v'");
+ version &= ~(UUID_MAKE_V1|UUID_MAKE_V3|UUID_MAKE_V4|UUID_MAKE_V5);
switch (i) {
- case 1: version = UUID_MAKE_V1; break;
- case 3: version = UUID_MAKE_V3; break;
- case 4: version = UUID_MAKE_V4; break;
- case 5: version = UUID_MAKE_V5; break;
+ case 1: version |= UUID_MAKE_V1; break;
+ case 3: version |= UUID_MAKE_V3; break;
+ case 4: version |= UUID_MAKE_V4; break;
+ case 5: version |= UUID_MAKE_V5; break;
default:
usage("invalid version on option 'v'");
break;
@@ -213,10 +214,10 @@ int main(int argc, char *argv[])
}
else {
/* encoding */
- if ( (version == UUID_MAKE_V1 && argc != 0)
- || (version == UUID_MAKE_V3 && argc != 2)
- || (version == UUID_MAKE_V4 && argc != 0)
- || (version == UUID_MAKE_V5 && argc != 2))
+ if ( (version & UUID_MAKE_V1 && argc != 0)
+ || (version & UUID_MAKE_V3 && argc != 2)
+ || (version & UUID_MAKE_V4 && argc != 0)
+ || (version & UUID_MAKE_V5 && argc != 2))
usage("invalid number of arguments");
if ((rc = uuid_create(&uuid)) != UUID_RC_OK)
error(1, "uuid_create: %s", uuid_error(rc));
@@ -232,7 +233,7 @@ int main(int argc, char *argv[])
if ((rc = uuid_load(uuid, "nil")) != UUID_RC_OK)
error(1, "uuid_load: %s", uuid_error(rc));
}
- if (version == UUID_MAKE_V3 || version == UUID_MAKE_V5) {
+ if (version & UUID_MAKE_V3 || version & UUID_MAKE_V5) {
if ((rc = uuid_create(&uuid_ns)) != UUID_RC_OK)
error(1, "uuid_create: %s", uuid_error(rc));
if ((rc = uuid_load(uuid_ns, argv[0])) != UUID_RC_OK) {
--