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>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
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;
}