+/** @brief Search the include path */
+char *mx_find(const char *name) {
+ char *path;
+ int n;
+
+ if(name[0] == '/') {
+ if(access(name, O_RDONLY) < 0) {
+ error(errno, "cannot read %s", name);
+ return 0;
+ }
+ path = xstrdup(name);
+ } else {
+ /* Search the include path */
+ for(n = 0; n < include_path.nvec; ++n) {
+ byte_xasprintf(&path, "%s/%s", include_path.vec[n], name);
+ if(access(path, O_RDONLY) == 0)
+ break;
+ }
+ if(n >= include_path.nvec) {
+ error(0, "cannot find '%s' in search path", name);
+ return 0;
+ }
+ }
+ return path;
+}
+
+/* @include{TEMPLATE}@