From 21a2350ecab485726c63d4269986808fc291fa61 Mon Sep 17 00:00:00 2001 From: muramura Date: Tue, 17 Sep 2024 20:12:43 +0900 Subject: [PATCH] version: Change this IF statement to a SWITCH statement --- src/lib/version/version.c | 90 ++++++++++++++++++++++++++++----------- 1 file changed, 66 insertions(+), 24 deletions(-) diff --git a/src/lib/version/version.c b/src/lib/version/version.c index 593c799e33..6144ca46c1 100644 --- a/src/lib/version/version.c +++ b/src/lib/version/version.c @@ -75,27 +75,48 @@ uint32_t version_tag_to_number(const char *tag) int firmware_type = FIRMWARE_TYPE_RELEASE; for (size_t i = 0; i < strlen(tag); i++) { - if (tag[i] == '-') { + switch (tag[i]) { + case '-': dash_count++; + break; - } else if (tag[i] == '.') { + case '.': point_count++; - } + break; - if (tag[i] == 'r' && i < strlen(tag) - 1 && tag[i + 1] == 'c') { - firmware_type = FIRMWARE_TYPE_RC; + case 'r': + if (i < strlen(tag) - 1 && tag[i + 1] == 'c') { + firmware_type = FIRMWARE_TYPE_RC; - } else if (tag[i] == 'p') { + } + + break; + + case 'p': firmware_type = FIRMWARE_TYPE_ALPHA; + break; - } else if (tag[i] == 't' && i < strlen(tag) - 1 && tag[i + 1] == 'y') { - firmware_type = FIRMWARE_TYPE_DEV; + case 't': + if (i < strlen(tag) - 1 && tag[i + 1] == 'y') { + firmware_type = FIRMWARE_TYPE_DEV; - } else if (tag[i] == 't') { - firmware_type = FIRMWARE_TYPE_BETA; + } else { + firmware_type = FIRMWARE_TYPE_BETA; - } else if (tag[i] == 'v' && i > 0) { - firmware_type = FIRMWARE_TYPE_DEV; + } + + break; + + case 'v': + if (i > 0) { + firmware_type = FIRMWARE_TYPE_DEV; + + } + + break; + + default: + break; } } @@ -163,27 +184,48 @@ uint32_t version_tag_to_vendor_version_number(const char *tag) int firmware_type = FIRMWARE_TYPE_RELEASE; for (size_t i = 0; i < strlen(tag); i++) { - if (tag[i] == '-') { + switch (tag[i]) { + case '-': dash_count++; + break; - } else if (tag[i] == '.') { + case '.': point_count++; - } + break; - if (tag[i] == 'r' && i < strlen(tag) - 1 && tag[i + 1] == 'c') { - firmware_type = FIRMWARE_TYPE_RC; + case 'r': + if (i < strlen(tag) - 1 && tag[i + 1] == 'c') { + firmware_type = FIRMWARE_TYPE_RC; - } else if (tag[i] == 'p') { + } + + break; + + case 'p': firmware_type = FIRMWARE_TYPE_ALPHA; + break; - } else if (tag[i] == 't' && i < strlen(tag) - 1 && tag[i + 1] == 'y') { - firmware_type = FIRMWARE_TYPE_DEV; + case 't': + if (i < strlen(tag) - 1 && tag[i + 1] == 'y') { + firmware_type = FIRMWARE_TYPE_DEV; - } else if (tag[i] == 't') { - firmware_type = FIRMWARE_TYPE_BETA; + } else { + firmware_type = FIRMWARE_TYPE_BETA; - } else if (tag[i] == 'v' && i > 0) { - firmware_type = FIRMWARE_TYPE_DEV; + } + + break; + + case 'v': + if (i > 0) { + firmware_type = FIRMWARE_TYPE_DEV; + + } + + break; + + default: + break; } }