[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-block] [PATCH 1/5] qapi: Add qapi_enum_parse_full
From: |
Fam Zheng |
Subject: |
[Qemu-block] [PATCH 1/5] qapi: Add qapi_enum_parse_full |
Date: |
Wed, 9 May 2018 13:57:58 +0800 |
This variant of qapi_enum_parse can do case insensitive compare.
Signed-off-by: Fam Zheng <address@hidden>
---
include/qapi/util.h | 2 ++
qapi/qapi-util.c | 20 ++++++++++++++++----
2 files changed, 18 insertions(+), 4 deletions(-)
diff --git a/include/qapi/util.h b/include/qapi/util.h
index a7c3c64148..2cec231919 100644
--- a/include/qapi/util.h
+++ b/include/qapi/util.h
@@ -19,6 +19,8 @@ typedef struct QEnumLookup {
const char *qapi_enum_lookup(const QEnumLookup *lookup, int val);
int qapi_enum_parse(const QEnumLookup *lookup, const char *buf,
int def, Error **errp);
+int qapi_enum_parse_full(const QEnumLookup *lookup, const char *buf,
+ int def, bool ignore_case, Error **errp);
int parse_qapi_name(const char *name, bool complete);
diff --git a/qapi/qapi-util.c b/qapi/qapi-util.c
index e9b266bb70..6180957edb 100644
--- a/qapi/qapi-util.c
+++ b/qapi/qapi-util.c
@@ -21,8 +21,8 @@ const char *qapi_enum_lookup(const QEnumLookup *lookup, int
val)
return lookup->array[val];
}
-int qapi_enum_parse(const QEnumLookup *lookup, const char *buf,
- int def, Error **errp)
+int qapi_enum_parse_full(const QEnumLookup *lookup, const char *buf,
+ int def, bool ignore_case, Error **errp)
{
int i;
@@ -31,8 +31,14 @@ int qapi_enum_parse(const QEnumLookup *lookup, const char
*buf,
}
for (i = 0; i < lookup->size; i++) {
- if (!strcmp(buf, lookup->array[i])) {
- return i;
+ if (ignore_case) {
+ if (!strcasecmp(buf, lookup->array[i])) {
+ return i;
+ }
+ } else {
+ if (!strcmp(buf, lookup->array[i])) {
+ return i;
+ }
}
}
@@ -40,6 +46,12 @@ int qapi_enum_parse(const QEnumLookup *lookup, const char
*buf,
return def;
}
+int qapi_enum_parse(const QEnumLookup *lookup, const char *buf,
+ int def, Error **errp)
+{
+ return qapi_enum_parse_full(lookup, buf, def, false, errp);
+}
+
/*
* Parse a valid QAPI name from @str.
* A valid name consists of letters, digits, hyphen and underscore.
--
2.14.3
- [Qemu-block] [PATCH 0/5] vmdk: Implement x-blockdev-create, Fam Zheng, 2018/05/09
- [Qemu-block] [PATCH 4/5] iotests: Filter cid numbers in VMDK extent info, Fam Zheng, 2018/05/09
- [Qemu-block] [PATCH 5/5] iotests: Add VMDK tests for blockdev-create, Fam Zheng, 2018/05/09
- Re: [Qemu-block] [Qemu-devel] [PATCH 0/5] vmdk: Implement x-blockdev-create, no-reply, 2018/05/09
- Re: [Qemu-block] [Qemu-devel] [PATCH 0/5] vmdk: Implement x-blockdev-create, no-reply, 2018/05/09