if (!type || (type & XLAT_FUNC)) {
ret = walker(node, uctx);
if (ret < 0) return ret;
+ if (ret > 0) return 0;
}
break;
if (!type || (type & XLAT_FUNC_UNRESOLVED)) {
ret = walker(node, uctx);
if (ret < 0) return ret;
+ if (ret > 0) return 0;
}
/*
if (!type || (type & XLAT_ALTERNATE)) {
ret = walker(node, uctx);
if (ret < 0) return ret;
+ if (ret > 0) return 0;
}
/*
if (!type || (type & XLAT_GROUP)) {
ret = walker(node, uctx);
if (ret < 0) return ret;
+ if (ret > 0) return 0;
}
/*
if (!type || (type & node->type)) {
ret = walker(node, uctx);
if (ret < 0) return ret;
+ if (ret > 0) return 0;
}
}
}
* @param[in] exp being evaluated.
* @param[in] uctx passed to xlat_walk.
* @return
+ * - 1 for "prune walk here".
* - 0 on success.
* - <0 if node evaluation failed. Causes xlat_walk to return the negative integer.
*/