]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
shared/kbd-util: simplify error handling in keymap_exists()
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Thu, 10 Aug 2023 08:02:34 +0000 (10:02 +0200)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Wed, 16 Aug 2023 10:52:56 +0000 (12:52 +0200)
Once we know the return value, we can just return it, no need to
exit the loop.

src/shared/kbd-util.c

index e4e7926bf96556d17d7c9089d2d9824414ba52eb..2f2d161ca68e4d7941719f7b4c5eaaad14e68151 100644 (file)
@@ -127,7 +127,7 @@ bool keymap_is_valid(const char *name) {
 }
 
 int keymap_exists(const char *name) {
-        int r = 0;
+        int r;
 
         if (!keymap_is_valid(name))
                 return -EINVAL;
@@ -143,17 +143,13 @@ int keymap_exists(const char *name) {
                                 &(struct recurse_dir_userdata) {
                                         .keymap_name = name,
                                 });
-                if (r < 0) {
-                        if (r == -ENOENT)
-                                continue;
-                        if (ERRNO_IS_RESOURCE(r))
-                                return r;
-                        log_debug_errno(r, "Failed to read keymap list from %s, ignoring: %m", dir);
-                        continue;
-                }
                 if (r > 0)
-                        break;
+                        return true;
+                if (ERRNO_IS_NEG_RESOURCE(r))
+                        return r;
+                if (r < 0 && r != -ENOENT)
+                        log_debug_errno(r, "Failed to read keymap list from %s, ignoring: %m", dir);
         }
 
-        return r > 0;
+        return false;
 }