/** * @retval 0 if variant did not have a result * @retval 1 on success */ static int elektraResolveSystem (char variant, ElektraResolved * handle, ElektraResolveTempfile tmpDir, Key * warningsKey) { // hardcoded path wins against variants for now if (handle->relPath[0] == '/') { /* Use absolute path */ handle->fullPath = elektraStrDup (handle->relPath); elektraResolveFinishByFilename (handle, tmpDir); return 1; } if (handle->relPath[0] == '~') { if (elektraResolveSystemPasswd (handle, warningsKey) == -1) { return -1; } elektraResolveFinishByFilename (handle, tmpDir); return 1; } switch (variant) { case 'x': return elektraResolveSystemXDG (handle, tmpDir, warningsKey); case 'b': return elektraResolveSystemBuildin (handle, tmpDir, warningsKey); // TODO: also document in doc/COMPILE.md } return -1; }
/** * @retval 0 if variant did not have a result * @retval 1 on success */ static int elektraResolveSystem (char variant, resolverHandle * p, Key * warningsKey) { // hardcoded path wins against variants for now if (p->path[0] == '/') { /* Use absolute path */ size_t filenameSize = strlen (p->path) + 1; p->filename = elektraMalloc (filenameSize); strcpy (p->filename, p->path); elektraResolveFinishByFilename (p); return 1; } if (p->path[0] == '~') { if (elektraResolvePasswdHome (p, warningsKey) == -1) return -1; elektraResolveFinishByFilename (p); return 1; } switch (variant) { case 'x': return elektraResolveSystemXDG (p, warningsKey); case 'b': return elektraResolveSystemBuildin (p, warningsKey); // TODO: also document in doc/COMPILE.md } return -1; }