Commit bbc7005b2a6509e0723b57f54718ca4a3dc7b99b

Peter Hutterer 2020-07-27T11:55:32

xkbcomp: simplify the include path handling Streamline the code a bit - instead of handling all the if (!file) conditions handle the case of where we have a file and jump to the end. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

diff --git a/src/xkbcomp/include.c b/src/xkbcomp/include.c
index ac2279f..88feab3 100644
--- a/src/xkbcomp/include.c
+++ b/src/xkbcomp/include.c
@@ -241,28 +241,21 @@ FindFileInXkbPath(struct xkb_context *ctx, const char *name,
         }
 
         file = fopen(buf, "rb");
-        if (!file) {
-            free(buf);
-            buf = NULL;
-        } else {
-            break;
+        if (file) {
+            if (pathRtrn) {
+                *pathRtrn = buf;
+                buf = NULL;
+            }
+            goto out;
         }
     }
 
-    if (!file) {
-        log_err(ctx, "Couldn't find file \"%s/%s\" in include paths\n",
-                typeDir, name);
+    log_err(ctx, "Couldn't find file \"%s/%s\" in include paths\n",
+            typeDir, name);
+    LogIncludePaths(ctx);
 
-        LogIncludePaths(ctx);
-
-        free(buf);
-        return NULL;
-    }
-
-    if (pathRtrn)
-        *pathRtrn = buf;
-    else
-        free(buf);
+out:
+    free(buf);
     return file;
 }