From 57a1a181b87b311974db5d2e309d385c1d5f52b6 Mon Sep 17 00:00:00 2001 From: CismonX Date: Wed, 15 Jan 2025 22:44:08 +0800 Subject: [PATCH] fsck: minor refactor --- src/fsck.c | 15 ++++++++++----- src/fsck_handler_simple.c | 5 +++-- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/src/fsck.c b/src/fsck.c index 0d3e35d..afa3237 100644 --- a/src/fsck.c +++ b/src/fsck.c @@ -423,11 +423,16 @@ parse_opts ( } SUBOPT_OPT_FALLBACK() { char *opt = SUBOPT_STR; - if (opt[0] == '@') { - bookmarkfs_opts_add(&info->backend_opts, opt + 1); - } else if (opt[0] == '%') { - bookmarkfs_opts_add(&info->handler_opts, opt + 1); - } else { + switch (*(opt++)) { + case '@': + bookmarkfs_opts_add(&info->backend_opts, opt); + break; + + case '%': + bookmarkfs_opts_add(&info->handler_opts, opt); + break; + + default: return SUBOPT_ERR_BAD_KEY(); } } diff --git a/src/fsck_handler_simple.c b/src/fsck_handler_simple.c index d1db4bd..2513d1f 100644 --- a/src/fsck_handler_simple.c +++ b/src/fsck_handler_simple.c @@ -309,8 +309,9 @@ parse_opts ( } BACKEND_OPT_KEY("translit") { BACKEND_OPT_VAL_START - if (1 == strlen(BACKEND_OPT_VAL_STR)) { - translit = BACKEND_OPT_VAL_STR[0]; + char const *str = BACKEND_OPT_VAL_STR; + if (str[0] != '\0' && str[0] != '/' && str[1] == '\0') { + translit = str[0]; } BACKEND_OPT_VAL_END }